From c8520eaf84996fed8d931cc848c800f8ac431885 Mon Sep 17 00:00:00 2001 From: lmammino Date: Wed, 15 Nov 2023 20:12:33 +0000 Subject: [PATCH] deploy: 82e635eed7660d0f7456b944b26912e44bf50ca3 --- 404.html | 13 +- assets/css/styles.6b8e1c13.css | 1 + assets/css/styles.f9928c2a.css | 1 - assets/js/01c9695c.39e499f3.js | 1 + assets/js/01c9695c.fd5ef393.js | 1 - assets/js/028754be.0bb6ca4a.js | 1 + assets/js/028754be.f1113f4c.js | 1 - assets/js/0480b142.2ce6d116.js | 1 - assets/js/0480b142.6b37e640.js | 1 + assets/js/08eadb91.076ac5fc.js | 1 - assets/js/08eadb91.d414cd0e.js | 1 + assets/js/08f83687.0ddc2d24.js | 1 - assets/js/08f83687.7ceb497d.js | 1 + assets/js/0976e874.199a929a.js | 1 + assets/js/0976e874.32d84b32.js | 1 - assets/js/0ce61a91.6c5ba8ab.js | 1 + assets/js/0ce61a91.b731cc1e.js | 1 - assets/js/0d245e6a.058d9fad.js | 1 - assets/js/0d245e6a.c757d31e.js | 1 + assets/js/0e90e864.08a6bb8d.js | 1 + assets/js/0e90e864.476fdb3c.js | 1 - assets/js/1124057e.0ebbb85e.js | 1 - assets/js/1124057e.7d43e3f2.js | 1 + assets/js/14eb3368.6c38f63d.js | 1 + assets/js/14eb3368.78fc892f.js | 1 - assets/js/171930c3.6836c4c9.js | 1 - assets/js/171930c3.ec33f3de.js | 1 + assets/js/17896441.bb50e585.js | 1 - assets/js/17896441.eaee85e9.js | 1 + assets/js/18dc5a76.443b3252.js | 1 + assets/js/18dc5a76.e97c80ec.js | 1 - assets/js/19606b2d.a301c5d4.js | 1 + assets/js/19606b2d.bf0a0fac.js | 1 - assets/js/1be78505.3f195a9f.js | 1 - assets/js/1c88510b.7435c9cb.js | 1 - assets/js/1c88510b.b5e5e8bb.js | 1 + assets/js/1e42f3f3.078e0838.js | 1 - assets/js/1e42f3f3.82514db2.js | 1 + assets/js/1ea8ecd6.2a0a1656.js | 1 - assets/js/1ea8ecd6.92667eab.js | 1 + assets/js/1f391b9e.d00ef048.js | 1 - assets/js/1f391b9e.f610db05.js | 1 + assets/js/211396ae.3f74e82d.js | 1 - assets/js/211396ae.75d36224.js | 1 + assets/js/24a252b9.22d35c69.js | 1 - assets/js/24a252b9.8e7b66d3.js | 1 + assets/js/28b74e92.7ddaf793.js | 1 - assets/js/28b74e92.a703bf53.js | 1 + assets/js/2b234cfe.881f7894.js | 1 + assets/js/2b234cfe.c2d39616.js | 1 - assets/js/2e6cdb22.6a9600b9.js | 1 - assets/js/2e6cdb22.ba5d7686.js | 1 + assets/js/2f4f2e7a.566d032e.js | 1 - assets/js/2f4f2e7a.ef75f68a.js | 1 + assets/js/340d0816.1d815217.js | 1 - assets/js/340d0816.b964de2f.js | 1 + assets/js/34ad80cb.03c7cf95.js | 1 - assets/js/34ad80cb.2d1ee7d2.js | 1 + assets/js/34ebece8.76fec6af.js | 1 + assets/js/34ebece8.a2ae2b0f.js | 1 - assets/js/3673b941.491936f4.js | 1 + assets/js/3673b941.c5c1061b.js | 1 - assets/js/393be207.7430aae8.js | 1 + assets/js/393be207.9244bc8a.js | 1 - assets/js/3a74057e.02bbb660.js | 1 - assets/js/3a74057e.9b8516e3.js | 1 + assets/js/3db93d31.2b51f15a.js | 1 - assets/js/3db93d31.cc672540.js | 1 + assets/js/3f569cdf.559ba438.js | 1 + assets/js/3f569cdf.8982d424.js | 1 - assets/js/4149078a.2278715d.js | 1 + assets/js/4149078a.8c2f92fe.js | 1 - assets/js/41b3f383.27922243.js | 1 + assets/js/41b3f383.75a2c1b8.js | 1 - assets/js/4204.f4712634.js | 1 - assets/js/4204.f9b87e33.js | 1 + assets/js/436b299f.45d677cc.js | 1 - assets/js/436b299f.c2d57882.js | 1 + ...63d41.285d08bf.js => 44063d41.44e09010.js} | 2 +- assets/js/447662a1.8b02ebcf.js | 1 - assets/js/447662a1.aeee1bc5.js | 1 + .../js/{4611.41e855eb.js => 4611.70d0184b.js} | 4 +- ...CENSE.txt => 4611.70d0184b.js.LICENSE.txt} | 0 assets/js/4924cac4.c95f2d0e.js | 1 - assets/js/4924cac4.cf1fb87d.js | 1 + assets/js/49fe1afb.02921dd7.js | 1 - assets/js/49fe1afb.0a61e2bb.js | 1 + assets/js/4f3a9363.4298b16b.js | 1 + assets/js/4f3a9363.c52828e7.js | 1 - assets/js/5018e04c.8b337323.js | 1 - assets/js/5018e04c.ea56202a.js | 1 + assets/js/52912c74.167c51c0.js | 1 + assets/js/52912c74.ef791cbf.js | 1 - assets/js/53f1e98a.4aba1086.js | 1 + assets/js/53f1e98a.d91ee413.js | 1 - assets/js/54ed1cf2.5990bf7a.js | 1 + assets/js/54ed1cf2.b7de75e2.js | 1 - assets/js/54fc444e.0c42a823.js | 1 - assets/js/54fc444e.0c797511.js | 1 + assets/js/56ed1c64.6a27c727.js | 1 + assets/js/56ed1c64.7b4da069.js | 1 - assets/js/58ba397f.3fb458fa.js | 1 - assets/js/58ba397f.7c21f350.js | 1 + assets/js/590578cb.2e0473b3.js | 1 + assets/js/590578cb.3cdcc18c.js | 1 - assets/js/59ac4306.a60dbbe2.js | 1 + assets/js/59ac4306.c8fe2288.js | 1 - assets/js/5a01598e.205a3971.js | 1 + assets/js/5a01598e.3a78e8b4.js | 1 - assets/js/5afe45f2.49392e1d.js | 1 - assets/js/5afe45f2.a47a34d1.js | 1 + assets/js/5e80d65e.cbb9295d.js | 1 + assets/js/5e80d65e.ffabbe17.js | 1 - assets/js/5e95c892.601ebc7c.js | 1 + assets/js/614.f05f7964.js | 1 - assets/js/632f0854.1a482285.js | 1 + assets/js/632f0854.25f656ed.js | 1 - assets/js/646b055a.39a57bde.js | 1 - assets/js/646b055a.e743fb12.js | 1 + assets/js/654635c7.104154c4.js | 1 - assets/js/654635c7.dc35b4f1.js | 1 + assets/js/65ce35be.70a66fc9.js | 1 + assets/js/65ce35be.ada22df1.js | 1 - assets/js/667584a0.b4226377.js | 1 - assets/js/667584a0.c856e970.js | 1 + assets/js/68318e94.b49dc391.js | 1 - assets/js/68318e94.f0552e72.js | 1 + assets/js/687b60fb.12305578.js | 1 + assets/js/687b60fb.c6dbbab9.js | 1 - assets/js/6a1376e9.81fc68cb.js | 1 + assets/js/6a1376e9.f2e2eda2.js | 1 - assets/js/6c4d050a.93c2ac11.js | 1 - assets/js/6c4d050a.c509b4ce.js | 1 + assets/js/70761510.54dab7d8.js | 1 + assets/js/70761510.57516ede.js | 1 - assets/js/7076eee1.c00cdf79.js | 1 + assets/js/7076eee1.cddaa659.js | 1 - assets/js/71d5009c.8aa8b59c.js | 1 - assets/js/71d5009c.d9df73e2.js | 1 + assets/js/73083085.12ad991c.js | 1 - assets/js/73083085.4ed98a51.js | 1 + assets/js/7745d517.16dc1797.js | 1 + assets/js/7745d517.2d2d7514.js | 1 - assets/js/7908.7f651888.js | 1 + assets/js/79674995.11a9a6a4.js | 1 + assets/js/79674995.b354a8ed.js | 1 - assets/js/796ad5a5.48948616.js | 1 + assets/js/796ad5a5.678cffcd.js | 1 - assets/js/7cb784f6.1d2f8128.js | 1 - assets/js/7cb784f6.f1547972.js | 1 + assets/js/817.acd323f2.js | 1 - assets/js/89ce8835.11025618.js | 1 - assets/js/89ce8835.2c537261.js | 1 + assets/js/9286.2ea53de4.js | 1 + assets/js/935f2afb.786a574b.js | 1 + assets/js/935f2afb.a874467f.js | 1 - assets/js/949815f5.49d9a0c3.js | 1 + assets/js/949815f5.a2e0521d.js | 1 - assets/js/958c573d.1bb3f8f4.js | 1 - assets/js/958c573d.2c60aa10.js | 1 + assets/js/9d43f09c.080e48a0.js | 1 + assets/js/9d43f09c.a980de4d.js | 1 - assets/js/9d560f77.5b92a322.js | 1 - assets/js/9d560f77.b2ec2bf6.js | 1 + assets/js/a0697f1b.34b26408.js | 1 - assets/js/a0697f1b.8503c09e.js | 1 + assets/js/a07e9812.09648006.js | 1 + assets/js/a07e9812.570f67a7.js | 1 - assets/js/a17e0e42.13707390.js | 1 + assets/js/a17e0e42.956b919b.js | 1 - assets/js/a2b2d33a.938a0662.js | 1 + assets/js/a2b2d33a.aacf6f8a.js | 1 - assets/js/a3787fd8.36df0bd8.js | 1 - assets/js/a3787fd8.f9a8a6d5.js | 1 + assets/js/a7630442.2196a043.js | 1 - assets/js/a7630442.30bdd835.js | 1 + assets/js/a7bd4aaa.baf2abb2.js | 1 + assets/js/a7c9f8b5.6238d387.js | 1 + assets/js/a7c9f8b5.b66d0f76.js | 1 - assets/js/a8e9225e.69182c73.js | 1 - assets/js/a8e9225e.cbd3d422.js | 1 + assets/js/a94703ab.20bd98ab.js | 1 + assets/js/acb7d57c.a6d16426.js | 1 + assets/js/acb7d57c.ee753c93.js | 1 - assets/js/ace0032f.1ea8d713.js | 1 - assets/js/ace0032f.98acff1b.js | 1 + assets/js/ad1e712e.2fe9c84a.js | 1 - assets/js/ad1e712e.e1378430.js | 1 + assets/js/aecdbf7e.b4cde063.js | 1 - assets/js/aecdbf7e.bfba9e83.js | 1 + assets/js/b3edb814.faade522.js | 1 + assets/js/b3edb814.fcce4aa8.js | 1 - assets/js/b5163cd3.646f42cd.js | 1 + assets/js/b5163cd3.99517f24.js | 1 - assets/js/b5584809.02995ad9.js | 1 - assets/js/b5584809.8fa6684e.js | 1 + assets/js/b5aee65c.3e1c117a.js | 1 - assets/js/b5aee65c.86e1a1d5.js | 1 + assets/js/b6105e9b.16794ff2.js | 1 + assets/js/b6105e9b.de5af768.js | 1 - assets/js/b6b85ed9.e8d23ec7.js | 1 - assets/js/b6b85ed9.f56259e2.js | 1 + assets/js/b83c886a.8851a69b.js | 1 + assets/js/b83c886a.e5d69ed5.js | 1 - assets/js/b9c75af0.985970de.js | 1 - assets/js/b9c75af0.f4f3ac3f.js | 1 + assets/js/bb2b8b33.e13464cf.js | 1 + assets/js/bff6c11b.16281dcd.js | 1 - assets/js/bff6c11b.fdf7cd1a.js | 1 + assets/js/c0ad98a5.0edd04da.js | 1 + assets/js/c0ad98a5.bc335e82.js | 1 - assets/js/c1378803.cea9a565.js | 1 + assets/js/c1378803.fdca63ad.js | 1 - assets/js/c21432a2.2489ca26.js | 1 + assets/js/c21432a2.6e01ed11.js | 1 - assets/js/c2371ba7.0fb54ba7.js | 1 + assets/js/c2371ba7.35440969.js | 1 - assets/js/c4f5d8e4.1d23cb3f.js | 1 - assets/js/c4f5d8e4.900ed3bc.js | 1 + assets/js/c4fefc0c.8bf57f85.js | 1 - assets/js/c4fefc0c.9e140cb7.js | 1 + assets/js/cb00b214.2e003555.js | 1 - assets/js/cb00b214.db675edd.js | 1 + assets/js/cc16eb0f.468376e3.js | 1 - assets/js/cc16eb0f.4d3bf260.js | 1 + assets/js/cd47eedf.79840171.js | 1 + assets/js/cd47eedf.d0d50040.js | 1 - assets/js/ce7003dc.662df6b1.js | 1 + assets/js/ce7003dc.d69c5693.js | 1 - assets/js/d0953a14.2238c9da.js | 1 - assets/js/d0953a14.7e6317fb.js | 1 + assets/js/d80baa5c.65c4f622.js | 1 - assets/js/d80baa5c.ab51e3fa.js | 1 + assets/js/da0b5c8a.0de36f7f.js | 1 + assets/js/da0b5c8a.53dc03b6.js | 1 - assets/js/dbc9373d.0bc90701.js | 1 - assets/js/dbc9373d.2213d515.js | 1 + assets/js/e0fb88b0.13cf6a48.js | 1 - assets/js/e0fb88b0.5d442774.js | 1 + assets/js/e1c77d88.474a5a04.js | 1 + assets/js/e1c77d88.b21dea5d.js | 1 - assets/js/ea2a30f2.99e73e03.js | 1 + assets/js/ea2a30f2.a26dfc1f.js | 1 - assets/js/ec96ff11.563bae6b.js | 1 + assets/js/ec96ff11.a57baaba.js | 1 - assets/js/ecbeea21.4b05f2ec.js | 1 - assets/js/ecbeea21.66be3876.js | 1 + assets/js/f0136a98.691c2e87.js | 1 - assets/js/f0136a98.e82a8d57.js | 1 + assets/js/f0886e87.66e9b30c.js | 1 - assets/js/f0886e87.a7b07d9a.js | 1 + assets/js/f20815ad.2b91d0ca.js | 1 - assets/js/f20815ad.322794e6.js | 1 + assets/js/f33bafb6.1c03333a.js | 1 + assets/js/f33bafb6.b10790f1.js | 1 - assets/js/f795adf5.157f790c.js | 1 - assets/js/f795adf5.dcb256e5.js | 1 + assets/js/f9850e34.5fcff5e5.js | 1 - assets/js/f9850e34.e053ea41.js | 1 + assets/js/faf674c6.4f86d2d2.js | 1 - assets/js/faf674c6.f8055c7b.js | 1 + assets/js/ff488875.5e716e72.js | 1 - assets/js/ff488875.61c29dc9.js | 1 + assets/js/main.a6ba7aa7.js | 2 - assets/js/main.be3ccd6b.js | 2 + ...CENSE.txt => main.be3ccd6b.js.LICENSE.txt} | 54 +++--- assets/js/runtime~main.52b6407d.js | 1 - assets/js/runtime~main.e978780c.js | 1 + docs/best-practices/bundling/index.html | 48 ++++- .../connection-reuse/index.html | 18 +- .../internal-context/index.html | 18 +- docs/best-practices/intro/index.html | 16 +- docs/best-practices/profiling/index.html | 28 +-- .../small-node-modules/index.html | 18 +- docs/category/aws-event-examples/index.html | 15 +- docs/category/best-practices/index.html | 15 +- docs/category/integrations/index.html | 15 +- docs/category/intro-to-middy/index.html | 15 +- docs/category/middlewares/index.html | 15 +- docs/category/routers/index.html | 15 +- docs/category/upgrade/index.html | 15 +- docs/category/writing-middlewares/index.html | 15 +- docs/events/alexa/index.html | 21 +- docs/events/api-gateway-authorizer/index.html | 22 ++- docs/events/api-gateway-http/index.html | 22 ++- docs/events/api-gateway-rest/index.html | 22 ++- docs/events/api-gateway-ws/index.html | 22 ++- .../application-load-balancer/index.html | 22 ++- docs/events/appsync/index.html | 21 +- docs/events/cloud-formation/index.html | 21 +- docs/events/cloud-front/index.html | 21 +- docs/events/cloud-trail/index.html | 21 +- docs/events/cloud-watch-logs/index.html | 21 +- docs/events/code-commit/index.html | 21 +- docs/events/code-pipeline/index.html | 21 +- docs/events/cognito/index.html | 21 +- docs/events/config/index.html | 21 +- docs/events/connect/index.html | 21 +- docs/events/documentdb/index.html | 21 +- docs/events/dynamodb/index.html | 21 +- docs/events/ec2/index.html | 21 +- docs/events/event-bridge/index.html | 21 +- docs/events/function-url/index.html | 22 ++- docs/events/intro/index.html | 21 +- docs/events/iot-events/index.html | 21 +- docs/events/iot/index.html | 21 +- .../events/kafka-managed-streaming/index.html | 21 +- docs/events/kafka-self-managed/index.html | 21 +- docs/events/kinesis-firehose/index.html | 21 +- docs/events/kinesis-streams/index.html | 21 +- docs/events/lex/index.html | 22 ++- docs/events/mq/index.html | 21 +- docs/events/rds/index.html | 21 +- docs/events/s3-batch/index.html | 21 +- docs/events/s3-object/index.html | 22 ++- docs/events/s3/index.html | 21 +- docs/events/secrets-manager/index.html | 21 +- docs/events/ses/index.html | 21 +- docs/events/sns/index.html | 21 +- docs/events/sqs/index.html | 21 +- docs/events/vpc-lattice/index.html | 22 ++- docs/events/workmail/index.html | 21 +- docs/faq/index.html | 16 +- docs/index.html | 41 ++-- docs/integrations/RDS/index.html | 21 +- docs/integrations/apollo-server/index.html | 16 +- docs/integrations/intro/index.html | 15 +- .../integrations/lambda-powertools/index.html | 154 ++++++++++++++- docs/integrations/pino/index.html | 15 +- .../serverless-framework/index.html | 16 +- docs/integrations/serverless-stack/index.html | 15 +- docs/intro/contributing/index.html | 16 +- docs/intro/early-interrupt/index.html | 21 +- docs/intro/getting-started/index.html | 39 ++-- docs/intro/handling-errors/index.html | 26 +-- docs/intro/history/index.html | 32 +++- docs/intro/hooks/index.html | 24 ++- docs/intro/how-it-works/index.html | 48 +++-- docs/intro/influence/index.html | 21 +- docs/intro/release-cycle/index.html | 20 +- docs/intro/sponsoring/index.html | 16 +- docs/intro/streamify-response/index.html | 34 +++- docs/intro/testing/index.html | 28 ++- docs/intro/typescript/index.html | 20 +- docs/intro/utilities/index.html | 15 +- docs/middlewares/appconfig/index.html | 45 ++++- .../middlewares/cloudwatch-metrics/index.html | 27 ++- .../index.html | 31 +-- docs/middlewares/dynamodb/index.html | 45 ++++- docs/middlewares/error-logger/index.html | 27 ++- docs/middlewares/event-normalizer/index.html | 33 ++-- .../http-content-encoding/index.html | 33 +++- .../http-content-negotiation/index.html | 48 +++-- docs/middlewares/http-cors/index.html | 37 +++- .../middlewares/http-error-handler/index.html | 28 ++- .../http-event-normalizer/index.html | 29 +-- .../http-header-normalizer/index.html | 37 ++-- .../http-json-body-parser/index.html | 30 +-- .../http-multipart-body-parser/index.html | 33 ++-- .../http-partial-response/index.html | 25 ++- .../http-response-serializer/index.html | 44 ++++- .../http-security-headers/index.html | 32 +++- .../http-urlencode-body-parser/index.html | 26 ++- .../http-urlencode-path-parser/index.html | 22 ++- .../input-output-logger/index.html | 30 ++- docs/middlewares/intro/index.html | 63 +++++- docs/middlewares/rds-signer/index.html | 36 +++- .../middlewares/s3-object-response/index.html | 39 +++- docs/middlewares/s3/index.html | 46 ++++- docs/middlewares/secrets-manager/index.html | 50 ++++- docs/middlewares/service-discovery/index.html | 38 +++- .../sqs-partial-batch-failure/index.html | 26 ++- docs/middlewares/ssm/index.html | 51 ++++- docs/middlewares/sts/index.html | 38 +++- docs/middlewares/third-party/index.html | 67 ++++++- docs/middlewares/validator/index.html | 82 ++++++-- docs/middlewares/warmup/index.html | 35 +++- .../ws-json-body-parser/index.html | 30 +-- docs/middlewares/ws-response/index.html | 39 +++- docs/routers/http-router/index.html | 37 +++- docs/routers/ws-router/index.html | 34 +++- docs/upgrade/0-1/index.html | 42 +++- docs/upgrade/1-2/index.html | 115 +++++++++-- docs/upgrade/2-3/index.html | 180 +++++++++++++++++- docs/upgrade/3-4/index.html | 130 ++++++++++++- docs/upgrade/4-5/index.html | 123 ++++++++++++ .../configurable-middlewares/index.html | 21 +- .../inline-middlewares/index.html | 25 +-- .../internal-storage/index.html | 19 +- docs/writing-middlewares/intro/index.html | 28 ++- .../more-examples/index.html | 15 +- docs/writing-middlewares/timeouts/index.html | 17 +- .../with-typescript/index.html | 20 +- img/logo-square/aporia-ai.png | Bin 20065 -> 0 bytes img/logo-square/auth0.png | Bin 6272 -> 0 bytes img/logo-square/awslabs.png | Bin 5503 -> 0 bytes img/logo-square/datastream.png | Bin 7405 -> 0 bytes img/logo-square/dazn.png | Bin 8752 -> 0 bytes img/logo-square/distinction-dev.png | Bin 13631 -> 0 bytes img/logo-square/fourthereom.svg | 1 - img/logo-square/nx-serverless.png | Bin 59049 -> 0 bytes img/logo-square/redwoodjs.png | Bin 16179 -> 0 bytes img/logo-square/serverless-stack.png | Bin 3970 -> 0 bytes img/logo-square/serverless.png | Bin 6580 -> 0 bytes img/logo-square/supertokens.png | Bin 8199 -> 0 bytes img/logo-square/tacobell.png | Bin 35705 -> 0 bytes img/logo-square/uniswap.png | Bin 13016 -> 0 bytes img/logo/amazon-web-services.svg | 4 +- index.html | 13 +- lunr-index-1699550506581.json | 1 - lunr-index-1700079117944.json | 1 + lunr-index.json | 2 +- markdown-page/index.html | 14 +- search-doc-1699550506581.json | 1 - search-doc-1700079117944.json | 1 + search-doc.json | 2 +- sitemap.xml | 2 +- 417 files changed, 2895 insertions(+), 1377 deletions(-) create mode 100644 assets/css/styles.6b8e1c13.css delete mode 100644 assets/css/styles.f9928c2a.css create mode 100644 assets/js/01c9695c.39e499f3.js delete mode 100644 assets/js/01c9695c.fd5ef393.js create mode 100644 assets/js/028754be.0bb6ca4a.js delete mode 100644 assets/js/028754be.f1113f4c.js delete mode 100644 assets/js/0480b142.2ce6d116.js create mode 100644 assets/js/0480b142.6b37e640.js delete mode 100644 assets/js/08eadb91.076ac5fc.js create mode 100644 assets/js/08eadb91.d414cd0e.js delete mode 100644 assets/js/08f83687.0ddc2d24.js create mode 100644 assets/js/08f83687.7ceb497d.js create mode 100644 assets/js/0976e874.199a929a.js delete mode 100644 assets/js/0976e874.32d84b32.js create mode 100644 assets/js/0ce61a91.6c5ba8ab.js delete mode 100644 assets/js/0ce61a91.b731cc1e.js delete mode 100644 assets/js/0d245e6a.058d9fad.js create mode 100644 assets/js/0d245e6a.c757d31e.js create mode 100644 assets/js/0e90e864.08a6bb8d.js delete mode 100644 assets/js/0e90e864.476fdb3c.js delete mode 100644 assets/js/1124057e.0ebbb85e.js create mode 100644 assets/js/1124057e.7d43e3f2.js create mode 100644 assets/js/14eb3368.6c38f63d.js delete mode 100644 assets/js/14eb3368.78fc892f.js delete mode 100644 assets/js/171930c3.6836c4c9.js create mode 100644 assets/js/171930c3.ec33f3de.js delete mode 100644 assets/js/17896441.bb50e585.js create mode 100644 assets/js/17896441.eaee85e9.js create mode 100644 assets/js/18dc5a76.443b3252.js delete mode 100644 assets/js/18dc5a76.e97c80ec.js create mode 100644 assets/js/19606b2d.a301c5d4.js delete mode 100644 assets/js/19606b2d.bf0a0fac.js delete mode 100644 assets/js/1be78505.3f195a9f.js delete mode 100644 assets/js/1c88510b.7435c9cb.js create mode 100644 assets/js/1c88510b.b5e5e8bb.js delete mode 100644 assets/js/1e42f3f3.078e0838.js create mode 100644 assets/js/1e42f3f3.82514db2.js delete mode 100644 assets/js/1ea8ecd6.2a0a1656.js create mode 100644 assets/js/1ea8ecd6.92667eab.js delete mode 100644 assets/js/1f391b9e.d00ef048.js create mode 100644 assets/js/1f391b9e.f610db05.js delete mode 100644 assets/js/211396ae.3f74e82d.js create mode 100644 assets/js/211396ae.75d36224.js delete mode 100644 assets/js/24a252b9.22d35c69.js create mode 100644 assets/js/24a252b9.8e7b66d3.js delete mode 100644 assets/js/28b74e92.7ddaf793.js create mode 100644 assets/js/28b74e92.a703bf53.js create mode 100644 assets/js/2b234cfe.881f7894.js delete mode 100644 assets/js/2b234cfe.c2d39616.js delete mode 100644 assets/js/2e6cdb22.6a9600b9.js create mode 100644 assets/js/2e6cdb22.ba5d7686.js delete mode 100644 assets/js/2f4f2e7a.566d032e.js create mode 100644 assets/js/2f4f2e7a.ef75f68a.js delete mode 100644 assets/js/340d0816.1d815217.js create mode 100644 assets/js/340d0816.b964de2f.js delete mode 100644 assets/js/34ad80cb.03c7cf95.js create mode 100644 assets/js/34ad80cb.2d1ee7d2.js create mode 100644 assets/js/34ebece8.76fec6af.js delete mode 100644 assets/js/34ebece8.a2ae2b0f.js create mode 100644 assets/js/3673b941.491936f4.js delete mode 100644 assets/js/3673b941.c5c1061b.js create mode 100644 assets/js/393be207.7430aae8.js delete mode 100644 assets/js/393be207.9244bc8a.js delete mode 100644 assets/js/3a74057e.02bbb660.js create mode 100644 assets/js/3a74057e.9b8516e3.js delete mode 100644 assets/js/3db93d31.2b51f15a.js create mode 100644 assets/js/3db93d31.cc672540.js create mode 100644 assets/js/3f569cdf.559ba438.js delete mode 100644 assets/js/3f569cdf.8982d424.js create mode 100644 assets/js/4149078a.2278715d.js delete mode 100644 assets/js/4149078a.8c2f92fe.js create mode 100644 assets/js/41b3f383.27922243.js delete mode 100644 assets/js/41b3f383.75a2c1b8.js delete mode 100644 assets/js/4204.f4712634.js create mode 100644 assets/js/4204.f9b87e33.js delete mode 100644 assets/js/436b299f.45d677cc.js create mode 100644 assets/js/436b299f.c2d57882.js rename assets/js/{44063d41.285d08bf.js => 44063d41.44e09010.js} (71%) delete mode 100644 assets/js/447662a1.8b02ebcf.js create mode 100644 assets/js/447662a1.aeee1bc5.js rename assets/js/{4611.41e855eb.js => 4611.70d0184b.js} (58%) rename assets/js/{4611.41e855eb.js.LICENSE.txt => 4611.70d0184b.js.LICENSE.txt} (100%) delete mode 100644 assets/js/4924cac4.c95f2d0e.js create mode 100644 assets/js/4924cac4.cf1fb87d.js delete mode 100644 assets/js/49fe1afb.02921dd7.js create mode 100644 assets/js/49fe1afb.0a61e2bb.js create mode 100644 assets/js/4f3a9363.4298b16b.js delete mode 100644 assets/js/4f3a9363.c52828e7.js delete mode 100644 assets/js/5018e04c.8b337323.js create mode 100644 assets/js/5018e04c.ea56202a.js create mode 100644 assets/js/52912c74.167c51c0.js delete mode 100644 assets/js/52912c74.ef791cbf.js create mode 100644 assets/js/53f1e98a.4aba1086.js delete mode 100644 assets/js/53f1e98a.d91ee413.js create mode 100644 assets/js/54ed1cf2.5990bf7a.js delete mode 100644 assets/js/54ed1cf2.b7de75e2.js delete mode 100644 assets/js/54fc444e.0c42a823.js create mode 100644 assets/js/54fc444e.0c797511.js create mode 100644 assets/js/56ed1c64.6a27c727.js delete mode 100644 assets/js/56ed1c64.7b4da069.js delete mode 100644 assets/js/58ba397f.3fb458fa.js create mode 100644 assets/js/58ba397f.7c21f350.js create mode 100644 assets/js/590578cb.2e0473b3.js delete mode 100644 assets/js/590578cb.3cdcc18c.js create mode 100644 assets/js/59ac4306.a60dbbe2.js delete mode 100644 assets/js/59ac4306.c8fe2288.js create mode 100644 assets/js/5a01598e.205a3971.js delete mode 100644 assets/js/5a01598e.3a78e8b4.js delete mode 100644 assets/js/5afe45f2.49392e1d.js create mode 100644 assets/js/5afe45f2.a47a34d1.js create mode 100644 assets/js/5e80d65e.cbb9295d.js delete mode 100644 assets/js/5e80d65e.ffabbe17.js create mode 100644 assets/js/5e95c892.601ebc7c.js delete mode 100644 assets/js/614.f05f7964.js create mode 100644 assets/js/632f0854.1a482285.js delete mode 100644 assets/js/632f0854.25f656ed.js delete mode 100644 assets/js/646b055a.39a57bde.js create mode 100644 assets/js/646b055a.e743fb12.js delete mode 100644 assets/js/654635c7.104154c4.js create mode 100644 assets/js/654635c7.dc35b4f1.js create mode 100644 assets/js/65ce35be.70a66fc9.js delete mode 100644 assets/js/65ce35be.ada22df1.js delete mode 100644 assets/js/667584a0.b4226377.js create mode 100644 assets/js/667584a0.c856e970.js delete mode 100644 assets/js/68318e94.b49dc391.js create mode 100644 assets/js/68318e94.f0552e72.js create mode 100644 assets/js/687b60fb.12305578.js delete mode 100644 assets/js/687b60fb.c6dbbab9.js create mode 100644 assets/js/6a1376e9.81fc68cb.js delete mode 100644 assets/js/6a1376e9.f2e2eda2.js delete mode 100644 assets/js/6c4d050a.93c2ac11.js create mode 100644 assets/js/6c4d050a.c509b4ce.js create mode 100644 assets/js/70761510.54dab7d8.js delete mode 100644 assets/js/70761510.57516ede.js create mode 100644 assets/js/7076eee1.c00cdf79.js delete mode 100644 assets/js/7076eee1.cddaa659.js delete mode 100644 assets/js/71d5009c.8aa8b59c.js create mode 100644 assets/js/71d5009c.d9df73e2.js delete mode 100644 assets/js/73083085.12ad991c.js create mode 100644 assets/js/73083085.4ed98a51.js create mode 100644 assets/js/7745d517.16dc1797.js delete mode 100644 assets/js/7745d517.2d2d7514.js create mode 100644 assets/js/7908.7f651888.js create mode 100644 assets/js/79674995.11a9a6a4.js delete mode 100644 assets/js/79674995.b354a8ed.js create mode 100644 assets/js/796ad5a5.48948616.js delete mode 100644 assets/js/796ad5a5.678cffcd.js delete mode 100644 assets/js/7cb784f6.1d2f8128.js create mode 100644 assets/js/7cb784f6.f1547972.js delete mode 100644 assets/js/817.acd323f2.js delete mode 100644 assets/js/89ce8835.11025618.js create mode 100644 assets/js/89ce8835.2c537261.js create mode 100644 assets/js/9286.2ea53de4.js create mode 100644 assets/js/935f2afb.786a574b.js delete mode 100644 assets/js/935f2afb.a874467f.js create mode 100644 assets/js/949815f5.49d9a0c3.js delete mode 100644 assets/js/949815f5.a2e0521d.js delete mode 100644 assets/js/958c573d.1bb3f8f4.js create mode 100644 assets/js/958c573d.2c60aa10.js create mode 100644 assets/js/9d43f09c.080e48a0.js delete mode 100644 assets/js/9d43f09c.a980de4d.js delete mode 100644 assets/js/9d560f77.5b92a322.js create mode 100644 assets/js/9d560f77.b2ec2bf6.js delete mode 100644 assets/js/a0697f1b.34b26408.js create mode 100644 assets/js/a0697f1b.8503c09e.js create mode 100644 assets/js/a07e9812.09648006.js delete mode 100644 assets/js/a07e9812.570f67a7.js create mode 100644 assets/js/a17e0e42.13707390.js delete mode 100644 assets/js/a17e0e42.956b919b.js create mode 100644 assets/js/a2b2d33a.938a0662.js delete mode 100644 assets/js/a2b2d33a.aacf6f8a.js delete mode 100644 assets/js/a3787fd8.36df0bd8.js create mode 100644 assets/js/a3787fd8.f9a8a6d5.js delete mode 100644 assets/js/a7630442.2196a043.js create mode 100644 assets/js/a7630442.30bdd835.js create mode 100644 assets/js/a7bd4aaa.baf2abb2.js create mode 100644 assets/js/a7c9f8b5.6238d387.js delete mode 100644 assets/js/a7c9f8b5.b66d0f76.js delete mode 100644 assets/js/a8e9225e.69182c73.js create mode 100644 assets/js/a8e9225e.cbd3d422.js create mode 100644 assets/js/a94703ab.20bd98ab.js create mode 100644 assets/js/acb7d57c.a6d16426.js delete mode 100644 assets/js/acb7d57c.ee753c93.js delete mode 100644 assets/js/ace0032f.1ea8d713.js create mode 100644 assets/js/ace0032f.98acff1b.js delete mode 100644 assets/js/ad1e712e.2fe9c84a.js create mode 100644 assets/js/ad1e712e.e1378430.js delete mode 100644 assets/js/aecdbf7e.b4cde063.js create mode 100644 assets/js/aecdbf7e.bfba9e83.js create mode 100644 assets/js/b3edb814.faade522.js delete mode 100644 assets/js/b3edb814.fcce4aa8.js create mode 100644 assets/js/b5163cd3.646f42cd.js delete mode 100644 assets/js/b5163cd3.99517f24.js delete mode 100644 assets/js/b5584809.02995ad9.js create mode 100644 assets/js/b5584809.8fa6684e.js delete mode 100644 assets/js/b5aee65c.3e1c117a.js create mode 100644 assets/js/b5aee65c.86e1a1d5.js create mode 100644 assets/js/b6105e9b.16794ff2.js delete mode 100644 assets/js/b6105e9b.de5af768.js delete mode 100644 assets/js/b6b85ed9.e8d23ec7.js create mode 100644 assets/js/b6b85ed9.f56259e2.js create mode 100644 assets/js/b83c886a.8851a69b.js delete mode 100644 assets/js/b83c886a.e5d69ed5.js delete mode 100644 assets/js/b9c75af0.985970de.js create mode 100644 assets/js/b9c75af0.f4f3ac3f.js create mode 100644 assets/js/bb2b8b33.e13464cf.js delete mode 100644 assets/js/bff6c11b.16281dcd.js create mode 100644 assets/js/bff6c11b.fdf7cd1a.js create mode 100644 assets/js/c0ad98a5.0edd04da.js delete mode 100644 assets/js/c0ad98a5.bc335e82.js create mode 100644 assets/js/c1378803.cea9a565.js delete mode 100644 assets/js/c1378803.fdca63ad.js create mode 100644 assets/js/c21432a2.2489ca26.js delete mode 100644 assets/js/c21432a2.6e01ed11.js create mode 100644 assets/js/c2371ba7.0fb54ba7.js delete mode 100644 assets/js/c2371ba7.35440969.js delete mode 100644 assets/js/c4f5d8e4.1d23cb3f.js create mode 100644 assets/js/c4f5d8e4.900ed3bc.js delete mode 100644 assets/js/c4fefc0c.8bf57f85.js create mode 100644 assets/js/c4fefc0c.9e140cb7.js delete mode 100644 assets/js/cb00b214.2e003555.js create mode 100644 assets/js/cb00b214.db675edd.js delete mode 100644 assets/js/cc16eb0f.468376e3.js create mode 100644 assets/js/cc16eb0f.4d3bf260.js create mode 100644 assets/js/cd47eedf.79840171.js delete mode 100644 assets/js/cd47eedf.d0d50040.js create mode 100644 assets/js/ce7003dc.662df6b1.js delete mode 100644 assets/js/ce7003dc.d69c5693.js delete mode 100644 assets/js/d0953a14.2238c9da.js create mode 100644 assets/js/d0953a14.7e6317fb.js delete mode 100644 assets/js/d80baa5c.65c4f622.js create mode 100644 assets/js/d80baa5c.ab51e3fa.js create mode 100644 assets/js/da0b5c8a.0de36f7f.js delete mode 100644 assets/js/da0b5c8a.53dc03b6.js delete mode 100644 assets/js/dbc9373d.0bc90701.js create mode 100644 assets/js/dbc9373d.2213d515.js delete mode 100644 assets/js/e0fb88b0.13cf6a48.js create mode 100644 assets/js/e0fb88b0.5d442774.js create mode 100644 assets/js/e1c77d88.474a5a04.js delete mode 100644 assets/js/e1c77d88.b21dea5d.js create mode 100644 assets/js/ea2a30f2.99e73e03.js delete mode 100644 assets/js/ea2a30f2.a26dfc1f.js create mode 100644 assets/js/ec96ff11.563bae6b.js delete mode 100644 assets/js/ec96ff11.a57baaba.js delete mode 100644 assets/js/ecbeea21.4b05f2ec.js create mode 100644 assets/js/ecbeea21.66be3876.js delete mode 100644 assets/js/f0136a98.691c2e87.js create mode 100644 assets/js/f0136a98.e82a8d57.js delete mode 100644 assets/js/f0886e87.66e9b30c.js create mode 100644 assets/js/f0886e87.a7b07d9a.js delete mode 100644 assets/js/f20815ad.2b91d0ca.js create mode 100644 assets/js/f20815ad.322794e6.js create mode 100644 assets/js/f33bafb6.1c03333a.js delete mode 100644 assets/js/f33bafb6.b10790f1.js delete mode 100644 assets/js/f795adf5.157f790c.js create mode 100644 assets/js/f795adf5.dcb256e5.js delete mode 100644 assets/js/f9850e34.5fcff5e5.js create mode 100644 assets/js/f9850e34.e053ea41.js delete mode 100644 assets/js/faf674c6.4f86d2d2.js create mode 100644 assets/js/faf674c6.f8055c7b.js delete mode 100644 assets/js/ff488875.5e716e72.js create mode 100644 assets/js/ff488875.61c29dc9.js delete mode 100644 assets/js/main.a6ba7aa7.js create mode 100644 assets/js/main.be3ccd6b.js rename assets/js/{main.a6ba7aa7.js.LICENSE.txt => main.be3ccd6b.js.LICENSE.txt} (66%) delete mode 100644 assets/js/runtime~main.52b6407d.js create mode 100644 assets/js/runtime~main.e978780c.js create mode 100644 docs/upgrade/4-5/index.html delete mode 100644 img/logo-square/aporia-ai.png delete mode 100644 img/logo-square/auth0.png delete mode 100644 img/logo-square/awslabs.png delete mode 100644 img/logo-square/datastream.png delete mode 100644 img/logo-square/dazn.png delete mode 100644 img/logo-square/distinction-dev.png delete mode 100644 img/logo-square/fourthereom.svg delete mode 100644 img/logo-square/nx-serverless.png delete mode 100644 img/logo-square/redwoodjs.png delete mode 100644 img/logo-square/serverless-stack.png delete mode 100644 img/logo-square/serverless.png delete mode 100644 img/logo-square/supertokens.png delete mode 100644 img/logo-square/tacobell.png delete mode 100644 img/logo-square/uniswap.png delete mode 100644 lunr-index-1699550506581.json create mode 100644 lunr-index-1700079117944.json delete mode 100644 search-doc-1699550506581.json create mode 100644 search-doc-1700079117944.json diff --git a/404.html b/404.html index cde8c29c4..51749dde2 100644 --- a/404.html +++ b/404.html @@ -2,15 +2,12 @@ - -Page Not Found | Middy.js - - + +Page Not Found | Middy.js + + -
-
Skip to main content

404

Sorry, we could not find what you were looking for!

Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

Go to the homeRead the docs

- - +
Skip to main content

404

Sorry, we could not find what you were looking for!

Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

Go to the homeRead the docs

\ No newline at end of file diff --git a/assets/css/styles.6b8e1c13.css b/assets/css/styles.6b8e1c13.css new file mode 100644 index 000000000..77a91cd0a --- /dev/null +++ b/assets/css/styles.6b8e1c13.css @@ -0,0 +1 @@ +.col,.container{padding:0 var(--ifm-spacing-horizontal);width:100%}.markdown>h2,.markdown>h3,.markdown>h4,.markdown>h5,.markdown>h6{margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading))}body,ol ol,ol ul,ul ol,ul ul{margin:0}blockquote,pre{margin:0 0 var(--ifm-spacing-vertical)}.breadcrumbs__link,.button{transition-timing-function:var(--ifm-transition-timing-default)}.button,code{vertical-align:middle}.button--outline.button--active,.button--outline:active,.button--outline:hover,:root{--ifm-button-color:var(--ifm-font-color-base-inverse)}.menu__link:hover,a{transition:color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.navbar--dark,:root{--ifm-navbar-link-hover-color:var(--ifm-color-primary)}.menu,.navbar-sidebar{overflow-x:hidden}:root,html[data-theme=dark]{--ifm-color-emphasis-500:var(--ifm-color-gray-500)}.toggleButton_gllP,html{-webkit-tap-highlight-color:transparent}.searchbox__reset:focus,.searchbox__submit:focus,body:not(.navigation-with-keyboard) :not(input):focus{outline:0}pre,table{overflow:auto}.markdown li,body{word-wrap:break-word}.clean-list,.containsTaskList_mC6p,.details_lb9f>summary,.dropdown__menu,.menu__list{list-style:none}:root{--ifm-color-scheme:light;--ifm-dark-value:10%;--ifm-darker-value:15%;--ifm-darkest-value:30%;--ifm-light-value:15%;--ifm-lighter-value:30%;--ifm-lightest-value:50%;--ifm-contrast-background-value:90%;--ifm-contrast-foreground-value:70%;--ifm-contrast-background-dark-value:70%;--ifm-contrast-foreground-dark-value:90%;--ifm-color-primary:#3578e5;--ifm-color-secondary:#ebedf0;--ifm-color-success:#00a400;--ifm-color-info:#54c7ec;--ifm-color-warning:#ffba00;--ifm-color-danger:#fa383e;--ifm-color-primary-dark:#306cce;--ifm-color-primary-darker:#2d66c3;--ifm-color-primary-darkest:#2554a0;--ifm-color-primary-light:#538ce9;--ifm-color-primary-lighter:#72a1ed;--ifm-color-primary-lightest:#9abcf2;--ifm-color-primary-contrast-background:#ebf2fc;--ifm-color-primary-contrast-foreground:#102445;--ifm-color-secondary-dark:#d4d5d8;--ifm-color-secondary-darker:#c8c9cc;--ifm-color-secondary-darkest:#a4a6a8;--ifm-color-secondary-light:#eef0f2;--ifm-color-secondary-lighter:#f1f2f5;--ifm-color-secondary-lightest:#f5f6f8;--ifm-color-secondary-contrast-background:#fdfdfe;--ifm-color-secondary-contrast-foreground:#474748;--ifm-color-success-dark:#009400;--ifm-color-success-darker:#008b00;--ifm-color-success-darkest:#007300;--ifm-color-success-light:#26b226;--ifm-color-success-lighter:#4dbf4d;--ifm-color-success-lightest:#80d280;--ifm-color-success-contrast-background:#e6f6e6;--ifm-color-success-contrast-foreground:#003100;--ifm-color-info-dark:#4cb3d4;--ifm-color-info-darker:#47a9c9;--ifm-color-info-darkest:#3b8ba5;--ifm-color-info-light:#6ecfef;--ifm-color-info-lighter:#87d8f2;--ifm-color-info-lightest:#aae3f6;--ifm-color-info-contrast-background:#eef9fd;--ifm-color-info-contrast-foreground:#193c47;--ifm-color-warning-dark:#e6a700;--ifm-color-warning-darker:#d99e00;--ifm-color-warning-darkest:#b38200;--ifm-color-warning-light:#ffc426;--ifm-color-warning-lighter:#ffcf4d;--ifm-color-warning-lightest:#ffdd80;--ifm-color-warning-contrast-background:#fff8e6;--ifm-color-warning-contrast-foreground:#4d3800;--ifm-color-danger-dark:#e13238;--ifm-color-danger-darker:#d53035;--ifm-color-danger-darkest:#af272b;--ifm-color-danger-light:#fb565b;--ifm-color-danger-lighter:#fb7478;--ifm-color-danger-lightest:#fd9c9f;--ifm-color-danger-contrast-background:#ffebec;--ifm-color-danger-contrast-foreground:#4b1113;--ifm-color-white:#fff;--ifm-color-black:#000;--ifm-color-gray-0:var(--ifm-color-white);--ifm-color-gray-100:#f5f6f7;--ifm-color-gray-200:#ebedf0;--ifm-color-gray-300:#dadde1;--ifm-color-gray-400:#ccd0d5;--ifm-color-gray-500:#bec3c9;--ifm-color-gray-600:#8d949e;--ifm-color-gray-700:#606770;--ifm-color-gray-800:#444950;--ifm-color-gray-900:#1c1e21;--ifm-color-gray-1000:var(--ifm-color-black);--ifm-color-emphasis-0:var(--ifm-color-gray-0);--ifm-color-emphasis-100:var(--ifm-color-gray-100);--ifm-color-emphasis-200:var(--ifm-color-gray-200);--ifm-color-emphasis-300:var(--ifm-color-gray-300);--ifm-color-emphasis-400:var(--ifm-color-gray-400);--ifm-color-emphasis-600:var(--ifm-color-gray-600);--ifm-color-emphasis-700:var(--ifm-color-gray-700);--ifm-color-emphasis-800:var(--ifm-color-gray-800);--ifm-color-emphasis-900:var(--ifm-color-gray-900);--ifm-color-emphasis-1000:var(--ifm-color-gray-1000);--ifm-color-content:var(--ifm-color-emphasis-900);--ifm-color-content-inverse:var(--ifm-color-emphasis-0);--ifm-color-content-secondary:#525860;--ifm-background-color:#0000;--ifm-background-surface-color:var(--ifm-color-content-inverse);--ifm-global-border-width:1px;--ifm-global-radius:0.4rem;--ifm-hover-overlay:#0000000d;--ifm-font-color-base:var(--ifm-color-content);--ifm-font-color-base-inverse:var(--ifm-color-content-inverse);--ifm-font-color-secondary:var(--ifm-color-content-secondary);--ifm-font-family-base:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--ifm-font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--ifm-font-size-base:100%;--ifm-font-weight-light:300;--ifm-font-weight-normal:400;--ifm-font-weight-semibold:500;--ifm-font-weight-bold:700;--ifm-font-weight-base:var(--ifm-font-weight-normal);--ifm-line-height-base:1.65;--ifm-global-spacing:1rem;--ifm-spacing-vertical:var(--ifm-global-spacing);--ifm-spacing-horizontal:var(--ifm-global-spacing);--ifm-transition-fast:200ms;--ifm-transition-slow:400ms;--ifm-transition-timing-default:cubic-bezier(0.08,0.52,0.52,1);--ifm-global-shadow-lw:0 1px 2px 0 #0000001a;--ifm-global-shadow-md:0 5px 40px #0003;--ifm-global-shadow-tl:0 12px 28px 0 #0003,0 2px 4px 0 #0000001a;--ifm-z-index-dropdown:100;--ifm-z-index-fixed:200;--ifm-z-index-overlay:400;--ifm-container-width:1140px;--ifm-container-width-xl:1320px;--ifm-code-background:#f6f7f8;--ifm-code-border-radius:var(--ifm-global-radius);--ifm-code-font-size:90%;--ifm-code-padding-horizontal:0.1rem;--ifm-code-padding-vertical:0.1rem;--ifm-pre-background:var(--ifm-code-background);--ifm-pre-border-radius:var(--ifm-code-border-radius);--ifm-pre-color:inherit;--ifm-pre-line-height:1.45;--ifm-pre-padding:1rem;--ifm-heading-color:inherit;--ifm-heading-margin-top:0;--ifm-heading-margin-bottom:var(--ifm-spacing-vertical);--ifm-heading-font-family:var(--ifm-font-family-base);--ifm-heading-font-weight:var(--ifm-font-weight-bold);--ifm-heading-line-height:1.25;--ifm-h1-font-size:2rem;--ifm-h2-font-size:1.5rem;--ifm-h3-font-size:1.25rem;--ifm-h4-font-size:1rem;--ifm-h5-font-size:0.875rem;--ifm-h6-font-size:0.85rem;--ifm-image-alignment-padding:1.25rem;--ifm-leading-desktop:1.25;--ifm-leading:calc(var(--ifm-leading-desktop)*1rem);--ifm-list-left-padding:2rem;--ifm-list-margin:1rem;--ifm-list-item-margin:0.25rem;--ifm-list-paragraph-margin:1rem;--ifm-table-cell-padding:0.75rem;--ifm-table-background:#0000;--ifm-table-stripe-background:#00000008;--ifm-table-border-width:1px;--ifm-table-border-color:var(--ifm-color-emphasis-300);--ifm-table-head-background:inherit;--ifm-table-head-color:inherit;--ifm-table-head-font-weight:var(--ifm-font-weight-bold);--ifm-table-cell-color:inherit;--ifm-link-color:var(--ifm-color-primary);--ifm-link-decoration:none;--ifm-link-hover-color:var(--ifm-link-color);--ifm-link-hover-decoration:underline;--ifm-paragraph-margin-bottom:var(--ifm-leading);--ifm-blockquote-font-size:var(--ifm-font-size-base);--ifm-blockquote-border-left-width:2px;--ifm-blockquote-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-blockquote-padding-vertical:0;--ifm-blockquote-shadow:none;--ifm-blockquote-color:var(--ifm-color-emphasis-800);--ifm-blockquote-border-color:var(--ifm-color-emphasis-300);--ifm-hr-background-color:var(--ifm-color-emphasis-500);--ifm-hr-height:1px;--ifm-hr-margin-vertical:1.5rem;--ifm-scrollbar-size:7px;--ifm-scrollbar-track-background-color:#f1f1f1;--ifm-scrollbar-thumb-background-color:silver;--ifm-scrollbar-thumb-hover-background-color:#a7a7a7;--ifm-alert-background-color:inherit;--ifm-alert-border-color:inherit;--ifm-alert-border-radius:var(--ifm-global-radius);--ifm-alert-border-width:0px;--ifm-alert-border-left-width:5px;--ifm-alert-color:var(--ifm-font-color-base);--ifm-alert-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-alert-padding-vertical:var(--ifm-spacing-vertical);--ifm-alert-shadow:var(--ifm-global-shadow-lw);--ifm-avatar-intro-margin:1rem;--ifm-avatar-intro-alignment:inherit;--ifm-avatar-photo-size:3rem;--ifm-badge-background-color:inherit;--ifm-badge-border-color:inherit;--ifm-badge-border-radius:var(--ifm-global-radius);--ifm-badge-border-width:var(--ifm-global-border-width);--ifm-badge-color:var(--ifm-color-white);--ifm-badge-padding-horizontal:calc(var(--ifm-spacing-horizontal)*0.5);--ifm-badge-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-breadcrumb-border-radius:1.5rem;--ifm-breadcrumb-spacing:0.5rem;--ifm-breadcrumb-color-active:var(--ifm-color-primary);--ifm-breadcrumb-item-background-active:var(--ifm-hover-overlay);--ifm-breadcrumb-padding-horizontal:0.8rem;--ifm-breadcrumb-padding-vertical:0.4rem;--ifm-breadcrumb-size-multiplier:1;--ifm-breadcrumb-separator:url('data:image/svg+xml;utf8,');--ifm-breadcrumb-separator-filter:none;--ifm-breadcrumb-separator-size:0.5rem;--ifm-breadcrumb-separator-size-multiplier:1.25;--ifm-button-background-color:inherit;--ifm-button-border-color:var(--ifm-button-background-color);--ifm-button-border-width:var(--ifm-global-border-width);--ifm-button-font-weight:var(--ifm-font-weight-bold);--ifm-button-padding-horizontal:1.5rem;--ifm-button-padding-vertical:0.375rem;--ifm-button-size-multiplier:1;--ifm-button-transition-duration:var(--ifm-transition-fast);--ifm-button-border-radius:calc(var(--ifm-global-radius)*var(--ifm-button-size-multiplier));--ifm-button-group-spacing:2px;--ifm-card-background-color:var(--ifm-background-surface-color);--ifm-card-border-radius:calc(var(--ifm-global-radius)*2);--ifm-card-horizontal-spacing:var(--ifm-global-spacing);--ifm-card-vertical-spacing:var(--ifm-global-spacing);--ifm-toc-border-color:var(--ifm-color-emphasis-300);--ifm-toc-link-color:var(--ifm-color-content-secondary);--ifm-toc-padding-vertical:0.5rem;--ifm-toc-padding-horizontal:0.5rem;--ifm-dropdown-background-color:var(--ifm-background-surface-color);--ifm-dropdown-font-weight:var(--ifm-font-weight-semibold);--ifm-dropdown-link-color:var(--ifm-font-color-base);--ifm-dropdown-hover-background-color:var(--ifm-hover-overlay);--ifm-footer-background-color:var(--ifm-color-emphasis-100);--ifm-footer-color:inherit;--ifm-footer-link-color:var(--ifm-color-emphasis-700);--ifm-footer-link-hover-color:var(--ifm-color-primary);--ifm-footer-link-horizontal-spacing:0.5rem;--ifm-footer-padding-horizontal:calc(var(--ifm-spacing-horizontal)*2);--ifm-footer-padding-vertical:calc(var(--ifm-spacing-vertical)*2);--ifm-footer-title-color:inherit;--ifm-footer-logo-max-width:min(30rem,90vw);--ifm-hero-background-color:var(--ifm-background-surface-color);--ifm-hero-text-color:var(--ifm-color-emphasis-800);--ifm-menu-color:var(--ifm-color-emphasis-700);--ifm-menu-color-active:var(--ifm-color-primary);--ifm-menu-color-background-active:var(--ifm-hover-overlay);--ifm-menu-color-background-hover:var(--ifm-hover-overlay);--ifm-menu-link-padding-horizontal:0.75rem;--ifm-menu-link-padding-vertical:0.375rem;--ifm-menu-link-sublist-icon:url('data:image/svg+xml;utf8,');--ifm-menu-link-sublist-icon-filter:none;--ifm-navbar-background-color:var(--ifm-background-surface-color);--ifm-navbar-height:3.75rem;--ifm-navbar-item-padding-horizontal:0.75rem;--ifm-navbar-item-padding-vertical:0.25rem;--ifm-navbar-link-color:var(--ifm-font-color-base);--ifm-navbar-link-active-color:var(--ifm-link-color);--ifm-navbar-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-navbar-padding-vertical:calc(var(--ifm-spacing-vertical)*0.5);--ifm-navbar-shadow:var(--ifm-global-shadow-lw);--ifm-navbar-search-input-background-color:var(--ifm-color-emphasis-200);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-800);--ifm-navbar-search-input-placeholder-color:var(--ifm-color-emphasis-500);--ifm-navbar-search-input-icon:url('data:image/svg+xml;utf8,');--ifm-navbar-sidebar-width:83vw;--ifm-pagination-border-radius:var(--ifm-global-radius);--ifm-pagination-color-active:var(--ifm-color-primary);--ifm-pagination-font-size:1rem;--ifm-pagination-item-active-background:var(--ifm-hover-overlay);--ifm-pagination-page-spacing:0.2em;--ifm-pagination-padding-horizontal:calc(var(--ifm-spacing-horizontal)*1);--ifm-pagination-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-pagination-nav-border-radius:var(--ifm-global-radius);--ifm-pagination-nav-color-hover:var(--ifm-color-primary);--ifm-pills-color-active:var(--ifm-color-primary);--ifm-pills-color-background-active:var(--ifm-hover-overlay);--ifm-pills-spacing:0.125rem;--ifm-tabs-color:var(--ifm-font-color-secondary);--ifm-tabs-color-active:var(--ifm-color-primary);--ifm-tabs-color-active-border:var(--ifm-tabs-color-active);--ifm-tabs-padding-horizontal:1rem;--ifm-tabs-padding-vertical:1rem;--docusaurus-progress-bar-color:var(--ifm-color-primary);--ifm-color-primary:#2e8555;--ifm-color-primary-dark:#29784c;--ifm-color-primary-darker:#277148;--ifm-color-primary-darkest:#205d3b;--ifm-color-primary-light:#33925d;--ifm-color-primary-lighter:#359962;--ifm-color-primary-lightest:#3cad6e;--ifm-code-font-size:95%;--docusaurus-announcement-bar-height:auto;--docusaurus-tag-list-border:var(--ifm-color-emphasis-300);--docusaurus-collapse-button-bg:#0000;--docusaurus-collapse-button-bg-hover:#0000001a;--doc-sidebar-width:300px;--doc-sidebar-hidden-width:30px}.badge--danger,.badge--info,.badge--primary,.badge--secondary,.badge--success,.badge--warning{--ifm-badge-border-color:var(--ifm-badge-background-color)}.button--link,.button--outline{--ifm-button-background-color:#0000}*,.algolia-autocomplete .ds-dropdown-menu *{box-sizing:border-box}html{-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;text-size-adjust:100%;background-color:var(--ifm-background-color);color:var(--ifm-font-color-base);color-scheme:var(--ifm-color-scheme);font:var(--ifm-font-size-base)/var(--ifm-line-height-base) var(--ifm-font-family-base);text-rendering:optimizelegibility}iframe{border:0;color-scheme:auto}.container{margin:0 auto;max-width:var(--ifm-container-width)}.container--fluid{max-width:inherit}.row{display:flex;flex-wrap:wrap;margin:0 calc(var(--ifm-spacing-horizontal)*-1)}.list_eTzJ article:last-child,.margin-bottom--none,.margin-vert--none,.markdown>:last-child{margin-bottom:0!important}.margin-top--none,.margin-vert--none,.tabItem_LNqP{margin-top:0!important}.row--no-gutters{margin-left:0;margin-right:0}.margin-horiz--none,.margin-right--none{margin-right:0!important}.row--no-gutters>.col{padding-left:0;padding-right:0}.row--align-top{align-items:flex-start}.row--align-bottom{align-items:flex-end}.menuExternalLink_NmtK,.row--align-center{align-items:center}.row--align-stretch{align-items:stretch}.row--align-baseline{align-items:baseline}.col{--ifm-col-width:100%;flex:1 0;margin-left:0;max-width:var(--ifm-col-width)}.padding-bottom--none,.padding-vert--none{padding-bottom:0!important}.padding-top--none,.padding-vert--none{padding-top:0!important}.padding-horiz--none,.padding-left--none{padding-left:0!important}.padding-horiz--none,.padding-right--none{padding-right:0!important}.col[class*=col--]{flex:0 0 var(--ifm-col-width)}.col--1{--ifm-col-width:8.33333%}.col--offset-1{margin-left:8.33333%}.col--2{--ifm-col-width:16.66667%}.col--offset-2{margin-left:16.66667%}.col--3{--ifm-col-width:25%}.col--offset-3{margin-left:25%}.col--4{--ifm-col-width:33.33333%}.col--offset-4{margin-left:33.33333%}.col--5{--ifm-col-width:41.66667%}.col--offset-5{margin-left:41.66667%}.col--6{--ifm-col-width:50%}.col--offset-6{margin-left:50%}.col--7{--ifm-col-width:58.33333%}.col--offset-7{margin-left:58.33333%}.col--8{--ifm-col-width:66.66667%}.col--offset-8{margin-left:66.66667%}.col--9{--ifm-col-width:75%}.col--offset-9{margin-left:75%}.col--10{--ifm-col-width:83.33333%}.col--offset-10{margin-left:83.33333%}.col--11{--ifm-col-width:91.66667%}.col--offset-11{margin-left:91.66667%}.col--12{--ifm-col-width:100%}.col--offset-12{margin-left:100%}.margin-horiz--none,.margin-left--none{margin-left:0!important}.margin--none{margin:0!important}.margin-bottom--xs,.margin-vert--xs{margin-bottom:.25rem!important}.margin-top--xs,.margin-vert--xs{margin-top:.25rem!important}.margin-horiz--xs,.margin-left--xs{margin-left:.25rem!important}.margin-horiz--xs,.margin-right--xs{margin-right:.25rem!important}.margin--xs{margin:.25rem!important}.margin-bottom--sm,.margin-vert--sm{margin-bottom:.5rem!important}.margin-top--sm,.margin-vert--sm{margin-top:.5rem!important}.margin-horiz--sm,.margin-left--sm{margin-left:.5rem!important}.margin-horiz--sm,.margin-right--sm{margin-right:.5rem!important}.margin--sm{margin:.5rem!important}.margin-bottom--md,.margin-vert--md{margin-bottom:1rem!important}.margin-top--md,.margin-vert--md{margin-top:1rem!important}.margin-horiz--md,.margin-left--md{margin-left:1rem!important}.margin-horiz--md,.margin-right--md{margin-right:1rem!important}.margin--md{margin:1rem!important}.margin-bottom--lg,.margin-vert--lg{margin-bottom:2rem!important}.margin-top--lg,.margin-vert--lg{margin-top:2rem!important}.margin-horiz--lg,.margin-left--lg{margin-left:2rem!important}.margin-horiz--lg,.margin-right--lg{margin-right:2rem!important}.margin--lg{margin:2rem!important}.margin-bottom--xl,.margin-vert--xl{margin-bottom:5rem!important}.margin-top--xl,.margin-vert--xl{margin-top:5rem!important}.margin-horiz--xl,.margin-left--xl{margin-left:5rem!important}.margin-horiz--xl,.margin-right--xl{margin-right:5rem!important}.margin--xl{margin:5rem!important}.padding--none{padding:0!important}.padding-bottom--xs,.padding-vert--xs{padding-bottom:.25rem!important}.padding-top--xs,.padding-vert--xs{padding-top:.25rem!important}.padding-horiz--xs,.padding-left--xs{padding-left:.25rem!important}.padding-horiz--xs,.padding-right--xs{padding-right:.25rem!important}.padding--xs{padding:.25rem!important}.padding-bottom--sm,.padding-vert--sm{padding-bottom:.5rem!important}.padding-top--sm,.padding-vert--sm{padding-top:.5rem!important}.padding-horiz--sm,.padding-left--sm{padding-left:.5rem!important}.padding-horiz--sm,.padding-right--sm{padding-right:.5rem!important}.padding--sm{padding:.5rem!important}.padding-bottom--md,.padding-vert--md{padding-bottom:1rem!important}.padding-top--md,.padding-vert--md{padding-top:1rem!important}.padding-horiz--md,.padding-left--md{padding-left:1rem!important}.padding-horiz--md,.padding-right--md{padding-right:1rem!important}.padding--md{padding:1rem!important}.padding-bottom--lg,.padding-vert--lg{padding-bottom:2rem!important}.padding-top--lg,.padding-vert--lg{padding-top:2rem!important}.padding-horiz--lg,.padding-left--lg{padding-left:2rem!important}.padding-horiz--lg,.padding-right--lg{padding-right:2rem!important}.padding--lg{padding:2rem!important}.padding-bottom--xl,.padding-vert--xl{padding-bottom:5rem!important}.padding-top--xl,.padding-vert--xl{padding-top:5rem!important}.padding-horiz--xl,.padding-left--xl{padding-left:5rem!important}.padding-horiz--xl,.padding-right--xl{padding-right:5rem!important}.padding--xl{padding:5rem!important}code{background-color:var(--ifm-code-background);border:.1rem solid #0000001a;border-radius:var(--ifm-code-border-radius);font-family:var(--ifm-font-family-monospace);font-size:var(--ifm-code-font-size);padding:var(--ifm-code-padding-vertical) var(--ifm-code-padding-horizontal)}a code{color:inherit}pre{background-color:var(--ifm-pre-background);border-radius:var(--ifm-pre-border-radius);color:var(--ifm-pre-color);font:var(--ifm-code-font-size)/var(--ifm-pre-line-height) var(--ifm-font-family-monospace);padding:var(--ifm-pre-padding)}pre code{background-color:initial;border:none;font-size:100%;line-height:inherit;padding:0}kbd{background-color:var(--ifm-color-emphasis-0);border:1px solid var(--ifm-color-emphasis-400);border-radius:.2rem;box-shadow:inset 0 -1px 0 var(--ifm-color-emphasis-400);color:var(--ifm-color-emphasis-800);font:80% var(--ifm-font-family-monospace);padding:.15rem .3rem}h1,h2,h3,h4,h5,h6{color:var(--ifm-heading-color);font-family:var(--ifm-heading-font-family);font-weight:var(--ifm-heading-font-weight);line-height:var(--ifm-heading-line-height);margin:var(--ifm-heading-margin-top) 0 var(--ifm-heading-margin-bottom) 0}h1{font-size:var(--ifm-h1-font-size)}h2{font-size:var(--ifm-h2-font-size)}h3{font-size:var(--ifm-h3-font-size)}h4{font-size:var(--ifm-h4-font-size)}h5{font-size:var(--ifm-h5-font-size)}h6{font-size:var(--ifm-h6-font-size)}img{max-width:100%}img[align=right]{padding-left:var(--image-alignment-padding)}img[align=left]{padding-right:var(--image-alignment-padding)}.markdown{--ifm-h1-vertical-rhythm-top:3;--ifm-h2-vertical-rhythm-top:2;--ifm-h3-vertical-rhythm-top:1.5;--ifm-heading-vertical-rhythm-top:1.25;--ifm-h1-vertical-rhythm-bottom:1.25;--ifm-heading-vertical-rhythm-bottom:1}.markdown:after,.markdown:before{content:"";display:table}.markdown:after{clear:both}.markdown h1:first-child{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-h1-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown>h2{--ifm-h2-font-size:2rem;margin-top:calc(var(--ifm-h2-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h3{--ifm-h3-font-size:1.5rem;margin-top:calc(var(--ifm-h3-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h4,.markdown>h5,.markdown>h6{margin-top:calc(var(--ifm-heading-vertical-rhythm-top)*var(--ifm-leading))}.markdown>p,.markdown>pre,.markdown>ul,.tabList__CuJ{margin-bottom:var(--ifm-leading)}.markdown li>p{margin-top:var(--ifm-list-paragraph-margin)}.markdown li+li{margin-top:var(--ifm-list-item-margin)}ol,ul{margin:0 0 var(--ifm-list-margin);padding-left:var(--ifm-list-left-padding)}ol ol,ul ol{list-style-type:lower-roman}ol ol ol,ol ul ol,ul ol ol,ul ul ol{list-style-type:lower-alpha}table{border-collapse:collapse;display:block;margin-bottom:var(--ifm-spacing-vertical)}table thead tr{border-bottom:2px solid var(--ifm-table-border-color)}table thead,table tr:nth-child(2n){background-color:var(--ifm-table-stripe-background)}table tr{background-color:var(--ifm-table-background);border-top:var(--ifm-table-border-width) solid var(--ifm-table-border-color)}table td,table th{border:var(--ifm-table-border-width) solid var(--ifm-table-border-color);padding:var(--ifm-table-cell-padding)}table th{background-color:var(--ifm-table-head-background);color:var(--ifm-table-head-color);font-weight:var(--ifm-table-head-font-weight)}table td{color:var(--ifm-table-cell-color)}strong{font-weight:var(--ifm-font-weight-bold)}a{color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}a:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button:hover,.text--no-decoration,.text--no-decoration:hover,a:not([href]){text-decoration:none}p{margin:0 0 var(--ifm-paragraph-margin-bottom)}blockquote{border-left:var(--ifm-blockquote-border-left-width) solid var(--ifm-blockquote-border-color);box-shadow:var(--ifm-blockquote-shadow);color:var(--ifm-blockquote-color);font-size:var(--ifm-blockquote-font-size);padding:var(--ifm-blockquote-padding-vertical) var(--ifm-blockquote-padding-horizontal)}blockquote>:first-child{margin-top:0}blockquote>:last-child{margin-bottom:0}hr{background-color:var(--ifm-hr-background-color);border:0;height:var(--ifm-hr-height);margin:var(--ifm-hr-margin-vertical) 0}.shadow--lw{box-shadow:var(--ifm-global-shadow-lw)!important}.shadow--md{box-shadow:var(--ifm-global-shadow-md)!important}.shadow--tl{box-shadow:var(--ifm-global-shadow-tl)!important}.text--primary,.wordWrapButtonEnabled_EoeP .wordWrapButtonIcon_Bwma{color:var(--ifm-color-primary)}.text--secondary{color:var(--ifm-color-secondary)}.text--success{color:var(--ifm-color-success)}.text--info{color:var(--ifm-color-info)}.text--warning{color:var(--ifm-color-warning)}.text--danger{color:var(--ifm-color-danger)}.text--center{text-align:center}.text--left{text-align:left}.text--justify{text-align:justify}.text--right{text-align:right}.text--capitalize{text-transform:capitalize}.text--lowercase{text-transform:lowercase}.admonitionHeading_Gvgb,.alert__heading,.text--uppercase{text-transform:uppercase}.text--light{font-weight:var(--ifm-font-weight-light)}.text--normal{font-weight:var(--ifm-font-weight-normal)}.text--semibold{font-weight:var(--ifm-font-weight-semibold)}.text--bold{font-weight:var(--ifm-font-weight-bold)}.text--italic{font-style:italic}.text--truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text--break{word-wrap:break-word!important;word-break:break-word!important}.clean-btn{background:none;border:none;color:inherit;cursor:pointer;font-family:inherit;padding:0}.alert,.alert .close{color:var(--ifm-alert-foreground-color)}.clean-list{padding-left:0}.alert--primary{--ifm-alert-background-color:var(--ifm-color-primary-contrast-background);--ifm-alert-background-color-highlight:#3578e526;--ifm-alert-foreground-color:var(--ifm-color-primary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-primary-dark)}.alert--secondary{--ifm-alert-background-color:var(--ifm-color-secondary-contrast-background);--ifm-alert-background-color-highlight:#ebedf026;--ifm-alert-foreground-color:var(--ifm-color-secondary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-secondary-dark)}.alert--success{--ifm-alert-background-color:var(--ifm-color-success-contrast-background);--ifm-alert-background-color-highlight:#00a40026;--ifm-alert-foreground-color:var(--ifm-color-success-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-success-dark)}.alert--info{--ifm-alert-background-color:var(--ifm-color-info-contrast-background);--ifm-alert-background-color-highlight:#54c7ec26;--ifm-alert-foreground-color:var(--ifm-color-info-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-info-dark)}.alert--warning{--ifm-alert-background-color:var(--ifm-color-warning-contrast-background);--ifm-alert-background-color-highlight:#ffba0026;--ifm-alert-foreground-color:var(--ifm-color-warning-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-warning-dark)}.alert--danger{--ifm-alert-background-color:var(--ifm-color-danger-contrast-background);--ifm-alert-background-color-highlight:#fa383e26;--ifm-alert-foreground-color:var(--ifm-color-danger-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-danger-dark)}.alert{--ifm-code-background:var(--ifm-alert-background-color-highlight);--ifm-link-color:var(--ifm-alert-foreground-color);--ifm-link-hover-color:var(--ifm-alert-foreground-color);--ifm-link-decoration:underline;--ifm-tabs-color:var(--ifm-alert-foreground-color);--ifm-tabs-color-active:var(--ifm-alert-foreground-color);--ifm-tabs-color-active-border:var(--ifm-alert-border-color);background-color:var(--ifm-alert-background-color);border:var(--ifm-alert-border-width) solid var(--ifm-alert-border-color);border-left-width:var(--ifm-alert-border-left-width);border-radius:var(--ifm-alert-border-radius);box-shadow:var(--ifm-alert-shadow);padding:var(--ifm-alert-padding-vertical) var(--ifm-alert-padding-horizontal)}.alert__heading{align-items:center;display:flex;font:700 var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);margin-bottom:.5rem}.alert__icon{display:inline-flex;margin-right:.4em}.alert__icon svg{fill:var(--ifm-alert-foreground-color);stroke:var(--ifm-alert-foreground-color);stroke-width:0}.alert .close{margin:calc(var(--ifm-alert-padding-vertical)*-1) calc(var(--ifm-alert-padding-horizontal)*-1) 0 0;opacity:.75}.alert .close:focus,.alert .close:hover{opacity:1}.alert a{text-decoration-color:var(--ifm-alert-border-color)}.alert a:hover{text-decoration-thickness:2px}.avatar{column-gap:var(--ifm-avatar-intro-margin);display:flex}.avatar__photo{border-radius:50%;display:block;height:var(--ifm-avatar-photo-size);overflow:hidden;width:var(--ifm-avatar-photo-size)}.card--full-height,.navbar__logo img,body,html{height:100%}.avatar__photo--sm{--ifm-avatar-photo-size:2rem}.avatar__photo--lg{--ifm-avatar-photo-size:4rem}.avatar__photo--xl{--ifm-avatar-photo-size:6rem}.avatar__intro{display:flex;flex:1 1;flex-direction:column;justify-content:center;text-align:var(--ifm-avatar-intro-alignment)}.badge,.breadcrumbs__item,.breadcrumbs__link,.button,.dropdown>.navbar__link:after{display:inline-block}.avatar__name{font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base)}.avatar__subtitle{margin-top:.25rem}.avatar--vertical{--ifm-avatar-intro-alignment:center;--ifm-avatar-intro-margin:0.5rem;align-items:center;flex-direction:column}.badge{background-color:var(--ifm-badge-background-color);border:var(--ifm-badge-border-width) solid var(--ifm-badge-border-color);border-radius:var(--ifm-badge-border-radius);color:var(--ifm-badge-color);font-size:75%;font-weight:var(--ifm-font-weight-bold);line-height:1;padding:var(--ifm-badge-padding-vertical) var(--ifm-badge-padding-horizontal)}.badge--primary{--ifm-badge-background-color:var(--ifm-color-primary)}.badge--secondary{--ifm-badge-background-color:var(--ifm-color-secondary);color:var(--ifm-color-black)}.breadcrumbs__link,.button.button--secondary.button--outline:not(.button--active):not(:hover){color:var(--ifm-font-color-base)}.badge--success{--ifm-badge-background-color:var(--ifm-color-success)}.badge--info{--ifm-badge-background-color:var(--ifm-color-info)}.badge--warning{--ifm-badge-background-color:var(--ifm-color-warning)}.badge--danger{--ifm-badge-background-color:var(--ifm-color-danger)}.breadcrumbs{margin-bottom:0;padding-left:0}.breadcrumbs__item:not(:last-child):after{background:var(--ifm-breadcrumb-separator) center;content:" ";display:inline-block;filter:var(--ifm-breadcrumb-separator-filter);height:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier));margin:0 var(--ifm-breadcrumb-spacing);opacity:.5;width:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier))}.breadcrumbs__item--active .breadcrumbs__link{background:var(--ifm-breadcrumb-item-background-active);color:var(--ifm-breadcrumb-color-active)}.breadcrumbs__link{border-radius:var(--ifm-breadcrumb-border-radius);font-size:calc(1rem*var(--ifm-breadcrumb-size-multiplier));padding:calc(var(--ifm-breadcrumb-padding-vertical)*var(--ifm-breadcrumb-size-multiplier)) calc(var(--ifm-breadcrumb-padding-horizontal)*var(--ifm-breadcrumb-size-multiplier));transition-duration:var(--ifm-transition-fast);transition-property:background,color}.breadcrumbs__link:any-link:hover,.breadcrumbs__link:link:hover,.breadcrumbs__link:visited:hover,area[href].breadcrumbs__link:hover{background:var(--ifm-breadcrumb-item-background-active);text-decoration:none}.breadcrumbs--sm{--ifm-breadcrumb-size-multiplier:0.8}.breadcrumbs--lg{--ifm-breadcrumb-size-multiplier:1.2}.button{background-color:var(--ifm-button-background-color);border:var(--ifm-button-border-width) solid var(--ifm-button-border-color);border-radius:var(--ifm-button-border-radius);cursor:pointer;font-size:calc(.875rem*var(--ifm-button-size-multiplier));font-weight:var(--ifm-button-font-weight);line-height:1.5;padding:calc(var(--ifm-button-padding-vertical)*var(--ifm-button-size-multiplier)) calc(var(--ifm-button-padding-horizontal)*var(--ifm-button-size-multiplier));text-align:center;transition-duration:var(--ifm-button-transition-duration);transition-property:color,background,border-color;-webkit-user-select:none;user-select:none;white-space:nowrap}.button,.button:hover{color:var(--ifm-button-color)}.button--outline{--ifm-button-color:var(--ifm-button-border-color)}.button--outline:hover{--ifm-button-background-color:var(--ifm-button-border-color)}.button--link{--ifm-button-border-color:#0000;color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}.button--link.button--active,.button--link:active,.button--link:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button.disabled,.button:disabled,.button[disabled]{opacity:.65;pointer-events:none}.button--sm{--ifm-button-size-multiplier:0.8}.button--lg{--ifm-button-size-multiplier:1.35}.button--block{display:block;width:100%}.button.button--secondary{color:var(--ifm-color-gray-900)}:where(.button--primary){--ifm-button-background-color:var(--ifm-color-primary);--ifm-button-border-color:var(--ifm-color-primary)}:where(.button--primary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-primary-dark);--ifm-button-border-color:var(--ifm-color-primary-dark)}.button--primary.button--active,.button--primary:active{--ifm-button-background-color:var(--ifm-color-primary-darker);--ifm-button-border-color:var(--ifm-color-primary-darker)}:where(.button--secondary){--ifm-button-background-color:var(--ifm-color-secondary);--ifm-button-border-color:var(--ifm-color-secondary)}:where(.button--secondary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-secondary-dark);--ifm-button-border-color:var(--ifm-color-secondary-dark)}.button--secondary.button--active,.button--secondary:active{--ifm-button-background-color:var(--ifm-color-secondary-darker);--ifm-button-border-color:var(--ifm-color-secondary-darker)}:where(.button--success){--ifm-button-background-color:var(--ifm-color-success);--ifm-button-border-color:var(--ifm-color-success)}:where(.button--success):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-success-dark);--ifm-button-border-color:var(--ifm-color-success-dark)}.button--success.button--active,.button--success:active{--ifm-button-background-color:var(--ifm-color-success-darker);--ifm-button-border-color:var(--ifm-color-success-darker)}:where(.button--info){--ifm-button-background-color:var(--ifm-color-info);--ifm-button-border-color:var(--ifm-color-info)}:where(.button--info):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-info-dark);--ifm-button-border-color:var(--ifm-color-info-dark)}.button--info.button--active,.button--info:active{--ifm-button-background-color:var(--ifm-color-info-darker);--ifm-button-border-color:var(--ifm-color-info-darker)}:where(.button--warning){--ifm-button-background-color:var(--ifm-color-warning);--ifm-button-border-color:var(--ifm-color-warning)}:where(.button--warning):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-warning-dark);--ifm-button-border-color:var(--ifm-color-warning-dark)}.button--warning.button--active,.button--warning:active{--ifm-button-background-color:var(--ifm-color-warning-darker);--ifm-button-border-color:var(--ifm-color-warning-darker)}:where(.button--danger){--ifm-button-background-color:var(--ifm-color-danger);--ifm-button-border-color:var(--ifm-color-danger)}:where(.button--danger):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-danger-dark);--ifm-button-border-color:var(--ifm-color-danger-dark)}.button--danger.button--active,.button--danger:active{--ifm-button-background-color:var(--ifm-color-danger-darker);--ifm-button-border-color:var(--ifm-color-danger-darker)}.button-group{display:inline-flex;gap:var(--ifm-button-group-spacing)}.button-group>.button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.button-group>.button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.button-group--block{display:flex;justify-content:stretch}.button-group--block>.button{flex-grow:1}.card{background-color:var(--ifm-card-background-color);border-radius:var(--ifm-card-border-radius);box-shadow:var(--ifm-global-shadow-lw);display:flex;flex-direction:column;overflow:hidden}.card__image{padding-top:var(--ifm-card-vertical-spacing)}.card__image:first-child{padding-top:0}.card__body,.card__footer,.card__header{padding:var(--ifm-card-vertical-spacing) var(--ifm-card-horizontal-spacing)}.card__body:not(:last-child),.card__footer:not(:last-child),.card__header:not(:last-child){padding-bottom:0}.card__body>:last-child,.card__footer>:last-child,.card__header>:last-child{margin-bottom:0}.card__footer{margin-top:auto}.table-of-contents{font-size:.8rem;margin-bottom:0;padding:var(--ifm-toc-padding-vertical) 0}.table-of-contents,.table-of-contents ul{list-style:none;padding-left:var(--ifm-toc-padding-horizontal)}.table-of-contents li{margin:var(--ifm-toc-padding-vertical) var(--ifm-toc-padding-horizontal)}.table-of-contents__left-border{border-left:1px solid var(--ifm-toc-border-color)}.table-of-contents__link{color:var(--ifm-toc-link-color);display:block}.table-of-contents__link--active,.table-of-contents__link--active code,.table-of-contents__link:hover,.table-of-contents__link:hover code{color:var(--ifm-color-primary);text-decoration:none}.close{color:var(--ifm-color-black);float:right;font-size:1.5rem;font-weight:var(--ifm-font-weight-bold);line-height:1;opacity:.5;padding:1rem;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.close:hover{opacity:.7}.close:focus,.theme-code-block-highlighted-line .codeLineNumber_Tfdd:before{opacity:.8}.dropdown{display:inline-flex;font-weight:var(--ifm-dropdown-font-weight);position:relative;vertical-align:top}.dropdown--hoverable:hover .dropdown__menu,.dropdown--show .dropdown__menu{opacity:1;pointer-events:all;transform:translateY(-1px);visibility:visible}#nprogress,.dropdown__menu,.navbar__item.dropdown .navbar__link:not([href]){pointer-events:none}.dropdown--right .dropdown__menu{left:inherit;right:0}.dropdown--nocaret .navbar__link:after{content:none!important}.dropdown__menu{background-color:var(--ifm-dropdown-background-color);border-radius:var(--ifm-global-radius);box-shadow:var(--ifm-global-shadow-md);left:0;max-height:80vh;min-width:10rem;opacity:0;overflow-y:auto;padding:.5rem;position:absolute;top:calc(100% - var(--ifm-navbar-item-padding-vertical) + .3rem);transform:translateY(-.625rem);transition-duration:var(--ifm-transition-fast);transition-property:opacity,transform,visibility;transition-timing-function:var(--ifm-transition-timing-default);visibility:hidden;z-index:var(--ifm-z-index-dropdown)}.menu__caret,.menu__link,.menu__list-item-collapsible{border-radius:.25rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.dropdown__link{border-radius:.25rem;color:var(--ifm-dropdown-link-color);display:block;font-size:.875rem;margin-top:.2rem;padding:.25rem .5rem;white-space:nowrap}.dropdown__link--active,.dropdown__link:hover{background-color:var(--ifm-dropdown-hover-background-color);color:var(--ifm-dropdown-link-color);text-decoration:none}.dropdown__link--active,.dropdown__link--active:hover{--ifm-dropdown-link-color:var(--ifm-link-color)}.dropdown>.navbar__link:after{border-color:currentcolor #0000;border-style:solid;border-width:.4em .4em 0;content:"";margin-left:.3em;position:relative;top:2px;transform:translateY(-50%)}.footer{background-color:var(--ifm-footer-background-color);color:var(--ifm-footer-color);padding:var(--ifm-footer-padding-vertical) var(--ifm-footer-padding-horizontal)}.footer--dark{--ifm-footer-background-color:#303846;--ifm-footer-color:var(--ifm-footer-link-color);--ifm-footer-link-color:var(--ifm-color-secondary);--ifm-footer-title-color:var(--ifm-color-white)}.footer__links{margin-bottom:1rem}.footer__link-item{color:var(--ifm-footer-link-color);line-height:2}.footer__link-item:hover{color:var(--ifm-footer-link-hover-color)}.footer__link-separator{margin:0 var(--ifm-footer-link-horizontal-spacing)}.footer__logo{margin-top:1rem;max-width:var(--ifm-footer-logo-max-width)}.footer__title{color:var(--ifm-footer-title-color);font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base);margin-bottom:var(--ifm-heading-margin-bottom)}.menu,.navbar__link{font-weight:var(--ifm-font-weight-semibold)}.docItemContainer_Djhp article>:first-child,.docItemContainer_Djhp header+*,.footer__item{margin-top:0}.admonitionContent_BuS1>:last-child,.cardContainer_fWXF :last-child,.collapsibleContent_i85q p:last-child,.details_lb9f>summary>p:last-child,.footer__items,.tabItem_Ymn6>:last-child{margin-bottom:0}.codeBlockStandalone_MEMb,[type=checkbox]{padding:0}.hero{align-items:center;background-color:var(--ifm-hero-background-color);color:var(--ifm-hero-text-color);display:flex;padding:4rem 2rem}.hero--primary{--ifm-hero-background-color:var(--ifm-color-primary);--ifm-hero-text-color:var(--ifm-font-color-base-inverse)}.hero--dark{--ifm-hero-background-color:#303846;--ifm-hero-text-color:var(--ifm-color-white)}.hero__title{font-size:3rem}.hero__subtitle{font-size:1.5rem}.menu__list{margin:0;padding-left:0}.menu__caret,.menu__link{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu__list .menu__list{flex:0 0 100%;margin-top:.25rem;padding-left:var(--ifm-menu-link-padding-horizontal)}.menu__list-item:not(:first-child){margin-top:.25rem}.menu__list-item--collapsed .menu__list{height:0;overflow:hidden}.details_lb9f[data-collapsed=false].isBrowser_bmU9>summary:before,.details_lb9f[open]:not(.isBrowser_bmU9)>summary:before,.menu__list-item--collapsed .menu__caret:before,.menu__list-item--collapsed .menu__link--sublist:after{transform:rotate(90deg)}.menu__list-item-collapsible{display:flex;flex-wrap:wrap;position:relative}.menu__caret:hover,.menu__link:hover,.menu__list-item-collapsible--active,.menu__list-item-collapsible:hover{background:var(--ifm-menu-color-background-hover)}.menu__list-item-collapsible .menu__link--active,.menu__list-item-collapsible .menu__link:hover{background:none!important}.menu__caret,.menu__link{align-items:center;display:flex}.menu__link{color:var(--ifm-menu-color);flex:1;line-height:1.25}.menu__link:hover{color:var(--ifm-menu-color);text-decoration:none}.menu__caret:before,.menu__link--sublist-caret:after{content:"";height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast) linear;width:1.25rem;filter:var(--ifm-menu-link-sublist-icon-filter)}.menu__link--sublist-caret:after{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem;margin-left:auto;min-width:1.25rem}.menu__link--active,.menu__link--active:hover{color:var(--ifm-menu-color-active)}.navbar__brand,.navbar__link{color:var(--ifm-navbar-link-color)}.menu__link--active:not(.menu__link--sublist){background-color:var(--ifm-menu-color-background-active)}.menu__caret:before{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem}.navbar--dark,html[data-theme=dark]{--ifm-menu-link-sublist-icon-filter:invert(100%) sepia(94%) saturate(17%) hue-rotate(223deg) brightness(104%) contrast(98%)}.navbar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-navbar-shadow);height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar,.navbar>.container,.navbar>.container-fluid{display:flex}.navbar--fixed-top{position:sticky;top:0;z-index:var(--ifm-z-index-fixed)}.navbar-sidebar,.navbar-sidebar__backdrop{bottom:0;opacity:0;position:fixed;transition-duration:var(--ifm-transition-fast);transition-timing-function:ease-in-out;left:0;top:0;visibility:hidden}.navbar__inner{display:flex;flex-wrap:wrap;justify-content:space-between;width:100%}.navbar__brand{align-items:center;display:flex;margin-right:1rem;min-width:0}.navbar__brand:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.announcementBarContent_xLdY,.navbar__title{flex:1 1 auto}.navbar__toggle{display:none;margin-right:.5rem}.navbar__logo{flex:0 0 auto;height:2rem;margin-right:.5rem}.navbar__items{align-items:center;display:flex;flex:1;min-width:0}.navbar__items--center{flex:0 0 auto}.navbar__items--center .navbar__brand{margin:0}.navbar__items--center+.navbar__items--right{flex:1}.navbar__items--right{flex:0 0 auto;justify-content:flex-end}.navbar__items--right>:last-child{padding-right:0}.navbar__item{display:inline-block;padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.navbar__link--active,.navbar__link:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.navbar--dark,.navbar--primary{--ifm-menu-color:var(--ifm-color-gray-300);--ifm-navbar-link-color:var(--ifm-color-gray-100);--ifm-navbar-search-input-background-color:#ffffff1a;--ifm-navbar-search-input-placeholder-color:#ffffff80;color:var(--ifm-color-white)}.navbar--dark{--ifm-navbar-background-color:#242526;--ifm-menu-color-background-active:#ffffff0d;--ifm-navbar-search-input-color:var(--ifm-color-white)}.navbar--primary{--ifm-navbar-background-color:var(--ifm-color-primary);--ifm-navbar-link-hover-color:var(--ifm-color-white);--ifm-menu-color-active:var(--ifm-color-white);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-500)}.navbar__search-input{-webkit-appearance:none;appearance:none;background:var(--ifm-navbar-search-input-background-color) var(--ifm-navbar-search-input-icon) no-repeat .75rem center/1rem 1rem;border:none;border-radius:2rem;color:var(--ifm-navbar-search-input-color);cursor:text;display:inline-block;font-size:.9rem;height:2rem;padding:0 .5rem 0 2.25rem;width:12.5rem}.navbar__search-input::placeholder{color:var(--ifm-navbar-search-input-placeholder-color)}.navbar-sidebar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-global-shadow-md);transform:translate3d(-100%,0,0);transition-property:opacity,visibility,transform;width:var(--ifm-navbar-sidebar-width)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar__items{transform:translateZ(0)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar--show .navbar-sidebar__backdrop{opacity:1;visibility:visible}.navbar-sidebar__backdrop{background-color:#0009;right:0;transition-property:opacity,visibility}.navbar-sidebar__brand{align-items:center;box-shadow:var(--ifm-navbar-shadow);display:flex;flex:1;height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar-sidebar__items{display:flex;height:calc(100% - var(--ifm-navbar-height));transition:transform var(--ifm-transition-fast) ease-in-out}.navbar-sidebar__items--show-secondary{transform:translate3d(calc((var(--ifm-navbar-sidebar-width))*-1),0,0)}.navbar-sidebar__item{flex-shrink:0;padding:.5rem;width:calc(var(--ifm-navbar-sidebar-width))}.navbar-sidebar__back{background:var(--ifm-menu-color-background-active);font-size:15px;font-weight:var(--ifm-button-font-weight);margin:0 0 .2rem -.5rem;padding:.6rem 1.5rem;position:relative;text-align:left;top:-.5rem;width:calc(100% + 1rem)}.navbar-sidebar__close{display:flex;margin-left:auto}.pagination{column-gap:var(--ifm-pagination-page-spacing);display:flex;font-size:var(--ifm-pagination-font-size);padding-left:0}.pagination--sm{--ifm-pagination-font-size:0.8rem;--ifm-pagination-padding-horizontal:0.8rem;--ifm-pagination-padding-vertical:0.2rem}.pagination--lg{--ifm-pagination-font-size:1.2rem;--ifm-pagination-padding-horizontal:1.2rem;--ifm-pagination-padding-vertical:0.3rem}.pagination__item{display:inline-flex}.pagination__item>span{padding:var(--ifm-pagination-padding-vertical)}.pagination__item--active .pagination__link{color:var(--ifm-pagination-color-active)}.pagination__item--active .pagination__link,.pagination__item:not(.pagination__item--active):hover .pagination__link{background:var(--ifm-pagination-item-active-background)}.pagination__item--disabled,.pagination__item[disabled]{opacity:.25;pointer-events:none}.pagination__link{border-radius:var(--ifm-pagination-border-radius);color:var(--ifm-font-color-base);display:inline-block;padding:var(--ifm-pagination-padding-vertical) var(--ifm-pagination-padding-horizontal);transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination__link:hover{text-decoration:none}.pagination-nav{grid-gap:var(--ifm-spacing-horizontal);display:grid;gap:var(--ifm-spacing-horizontal);grid-template-columns:repeat(2,1fr)}.pagination-nav__link{border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-pagination-nav-border-radius);display:block;height:100%;line-height:var(--ifm-heading-line-height);padding:var(--ifm-global-spacing);transition:border-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination-nav__link:hover{border-color:var(--ifm-pagination-nav-color-hover);text-decoration:none}.pagination-nav__link--next{grid-column:2/3;text-align:right}.pagination-nav__label{font-size:var(--ifm-h4-font-size);font-weight:var(--ifm-heading-font-weight);word-break:break-word}.pagination-nav__link--prev .pagination-nav__label:before{content:"« "}.pagination-nav__link--next .pagination-nav__label:after{content:" »"}.pagination-nav__sublabel{color:var(--ifm-color-content-secondary);font-size:var(--ifm-h5-font-size);font-weight:var(--ifm-font-weight-semibold);margin-bottom:.25rem}.pills__item,.tabs{font-weight:var(--ifm-font-weight-bold)}.pills{display:flex;gap:var(--ifm-pills-spacing);padding-left:0}.pills__item{border-radius:.5rem;cursor:pointer;display:inline-block;padding:.25rem 1rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pills__item--active{color:var(--ifm-pills-color-active)}.pills__item--active,.pills__item:not(.pills__item--active):hover{background:var(--ifm-pills-color-background-active)}.pills--block{justify-content:stretch}.pills--block .pills__item{flex-grow:1;text-align:center}.tabs{color:var(--ifm-tabs-color);display:flex;margin-bottom:0;overflow-x:auto;padding-left:0}.tabs__item{border-bottom:3px solid #0000;border-radius:var(--ifm-global-radius);cursor:pointer;display:inline-flex;padding:var(--ifm-tabs-padding-vertical) var(--ifm-tabs-padding-horizontal);transition:background-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs__item--active{border-bottom-color:var(--ifm-tabs-color-active-border);border-bottom-left-radius:0;border-bottom-right-radius:0;color:var(--ifm-tabs-color-active)}.tabs__item:hover{background-color:var(--ifm-hover-overlay)}.tabs--block{justify-content:stretch}.tabs--block .tabs__item{flex-grow:1;justify-content:center}html[data-theme=dark]{--ifm-color-scheme:dark;--ifm-color-emphasis-0:var(--ifm-color-gray-1000);--ifm-color-emphasis-100:var(--ifm-color-gray-900);--ifm-color-emphasis-200:var(--ifm-color-gray-800);--ifm-color-emphasis-300:var(--ifm-color-gray-700);--ifm-color-emphasis-400:var(--ifm-color-gray-600);--ifm-color-emphasis-600:var(--ifm-color-gray-400);--ifm-color-emphasis-700:var(--ifm-color-gray-300);--ifm-color-emphasis-800:var(--ifm-color-gray-200);--ifm-color-emphasis-900:var(--ifm-color-gray-100);--ifm-color-emphasis-1000:var(--ifm-color-gray-0);--ifm-background-color:#1b1b1d;--ifm-background-surface-color:#242526;--ifm-hover-overlay:#ffffff0d;--ifm-color-content:#e3e3e3;--ifm-color-content-secondary:#fff;--ifm-breadcrumb-separator-filter:invert(64%) sepia(11%) saturate(0%) hue-rotate(149deg) brightness(99%) contrast(95%);--ifm-code-background:#ffffff1a;--ifm-scrollbar-track-background-color:#444;--ifm-scrollbar-thumb-background-color:#686868;--ifm-scrollbar-thumb-hover-background-color:#7a7a7a;--ifm-table-stripe-background:#ffffff12;--ifm-toc-border-color:var(--ifm-color-emphasis-200);--ifm-color-primary-contrast-background:#102445;--ifm-color-primary-contrast-foreground:#ebf2fc;--ifm-color-secondary-contrast-background:#474748;--ifm-color-secondary-contrast-foreground:#fdfdfe;--ifm-color-success-contrast-background:#003100;--ifm-color-success-contrast-foreground:#e6f6e6;--ifm-color-info-contrast-background:#193c47;--ifm-color-info-contrast-foreground:#eef9fd;--ifm-color-warning-contrast-background:#4d3800;--ifm-color-warning-contrast-foreground:#fff8e6;--ifm-color-danger-contrast-background:#4b1113;--ifm-color-danger-contrast-foreground:#ffebec;--ifm-color-primary:#25c2a0;--ifm-color-primary-dark:#21af90;--ifm-color-primary-darker:#1fa588;--ifm-color-primary-darkest:#1a8870;--ifm-color-primary-light:#29d5b0;--ifm-color-primary-lighter:#32d8b4;--ifm-color-primary-lightest:#4fddbf}#nprogress .bar{background:var(--docusaurus-progress-bar-color);height:2px;left:0;position:fixed;top:0;width:100%;z-index:1031}#nprogress .peg{box-shadow:0 0 10px var(--docusaurus-progress-bar-color),0 0 5px var(--docusaurus-progress-bar-color);height:100%;opacity:1;position:absolute;right:0;transform:rotate(3deg) translateY(-4px);width:100px}.docusaurus-highlight-code-line{background-color:#0000001a;display:block;margin:0 calc(var(--ifm-pre-padding)*-1);padding:0 var(--ifm-pre-padding)}html[data-theme=dark] .docusaurus-highlight-code-line{background-color:#b518184d}html[data-theme=dark] .navbar__logo img,html[data-theme=dark] img[alt="Middy middleware engine diagram"]{filter:invert(1)}.token-line.theme-code-block-highlighted-line{background-color:rgba(245,203,67,.154)!important}#__docusaurus-base-url-issue-banner-container,.docSidebarContainer_YfHR,.navbarSearchContainer_Bca1:not(:has(>*)),.sidebarLogo_isFc,.themedComponent_mlkZ,[data-theme=dark] .lightToggleIcon_pyhR,[data-theme=light] .darkToggleIcon_wfgR,html[data-announcement-bar-initially-dismissed=true] .announcementBar_mb4j{display:none}.skipToContent_fXgn{background-color:var(--ifm-background-surface-color);color:var(--ifm-color-emphasis-900);left:100%;padding:calc(var(--ifm-global-spacing)/2) var(--ifm-global-spacing);position:fixed;top:1rem;z-index:calc(var(--ifm-z-index-fixed) + 1)}.skipToContent_fXgn:focus{box-shadow:var(--ifm-global-shadow-md);left:1rem}.closeButton_CVFx{line-height:0;padding:0}.content_knG7{font-size:85%;padding:5px 0;text-align:center}.content_knG7 a{color:inherit;text-decoration:underline}.announcementBar_mb4j{align-items:center;background-color:var(--ifm-color-white);border-bottom:1px solid var(--ifm-color-emphasis-100);color:var(--ifm-color-black);display:flex;height:var(--docusaurus-announcement-bar-height)}.announcementBarPlaceholder_vyr4{flex:0 0 10px}.announcementBarClose_gvF7{align-self:stretch;flex:0 0 30px}.toggle_vylO{height:2rem;width:2rem}.toggleButton_gllP{align-items:center;border-radius:50%;display:flex;height:100%;justify-content:center;transition:background var(--ifm-transition-fast);width:100%}.toggleButton_gllP:hover{background:var(--ifm-color-emphasis-200)}.toggleButtonDisabled_aARS{cursor:not-allowed}.darkNavbarColorModeToggle_X3D1:hover{background:var(--ifm-color-gray-800)}[data-theme=dark] .themedComponent--dark_xIcU,[data-theme=light] .themedComponent--light_NVdE,html:not([data-theme]) .themedComponent--light_NVdE{display:initial}.iconExternalLink_nPIU{margin-left:.3rem}.iconLanguage_nlXk{margin-right:5px;vertical-align:text-bottom}.navbarHideable_m1mJ{transition:transform var(--ifm-transition-fast) ease}.navbarHidden_jGov{transform:translate3d(0,calc(-100% - 2px),0)}.errorBoundaryError_a6uf{color:red;white-space:pre-wrap}.errorBoundaryFallback_VBag{color:red;padding:.55rem}.footerLogoLink_BH7S{opacity:.5;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.footerLogoLink_BH7S:hover,.hash-link:focus,:hover>.hash-link{opacity:1}.anchorWithStickyNavbar_LWe7{scroll-margin-top:calc(var(--ifm-navbar-height) + .5rem)}.anchorWithHideOnScrollNavbar_WYt5{scroll-margin-top:.5rem}.hash-link{opacity:0;padding-left:.5rem;transition:opacity var(--ifm-transition-fast);-webkit-user-select:none;user-select:none}.hash-link:before{content:"#"}.mainWrapper_z2l0{display:flex;flex:1 0 auto;flex-direction:column}.docusaurus-mt-lg{margin-top:3rem}#__docusaurus{display:flex;flex-direction:column;min-height:100%}.cardContainer_fWXF{--ifm-link-color:var(--ifm-color-emphasis-800);--ifm-link-hover-color:var(--ifm-color-emphasis-700);--ifm-link-hover-decoration:none;border:1px solid var(--ifm-color-emphasis-200);box-shadow:0 1.5px 3px 0 #00000026;transition:all var(--ifm-transition-fast) ease;transition-property:border,box-shadow}.cardContainer_fWXF:hover{border-color:var(--ifm-color-primary);box-shadow:0 3px 6px 0 #0003}.cardTitle_rnsV{font-size:1.2rem}.cardDescription_PWke{font-size:.8rem}.iconEdit_Z9Sw{margin-right:.3em;vertical-align:sub}.tag_zVej{border:1px solid var(--docusaurus-tag-list-border);transition:border var(--ifm-transition-fast)}.tag_zVej:hover{--docusaurus-tag-list-border:var(--ifm-link-color);text-decoration:none}.tagRegular_sFm0{border-radius:var(--ifm-global-radius);font-size:90%;padding:.2rem .5rem .3rem}.tagWithCount_h2kH{align-items:center;border-left:0;display:flex;padding:0 .5rem 0 1rem;position:relative}.tagWithCount_h2kH:after,.tagWithCount_h2kH:before{border:1px solid var(--docusaurus-tag-list-border);content:"";position:absolute;top:50%;transition:inherit}.tagWithCount_h2kH:before{border-bottom:0;border-right:0;height:1.18rem;right:100%;transform:translate(50%,-50%) rotate(-45deg);width:1.18rem}.tagWithCount_h2kH:after{border-radius:50%;height:.5rem;left:0;transform:translateY(-50%);width:.5rem}.tagWithCount_h2kH span{background:var(--ifm-color-secondary);border-radius:var(--ifm-global-radius);color:var(--ifm-color-black);font-size:.7rem;line-height:1.2;margin-left:.3rem;padding:.1rem .4rem}.tags_jXut{display:inline}.tag_QGVx{display:inline-block;margin:0 .4rem .5rem 0}.lastUpdated_vwxv{font-size:smaller;font-style:italic;margin-top:.2rem}.tocCollapsibleButton_TO0P{align-items:center;display:flex;font-size:inherit;justify-content:space-between;padding:.4rem .8rem;width:100%}.tocCollapsibleButton_TO0P:after{background:var(--ifm-menu-link-sublist-icon) 50% 50%/2rem 2rem no-repeat;content:"";filter:var(--ifm-menu-link-sublist-icon-filter);height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast);width:1.25rem}.tocCollapsibleButtonExpanded_MG3E:after,.tocCollapsibleExpanded_sAul{transform:none}.tocCollapsible_ETCw{background-color:var(--ifm-menu-color-background-active);border-radius:var(--ifm-global-radius);margin:1rem 0}.tocCollapsibleContent_vkbj>ul{border-left:none;border-top:1px solid var(--ifm-color-emphasis-300);font-size:15px;padding:.2rem 0}.tocCollapsibleContent_vkbj ul li{margin:.4rem .8rem}.tocCollapsibleContent_vkbj a{display:block}.backToTopButton_sjWU{background-color:var(--ifm-color-emphasis-200);border-radius:50%;bottom:1.3rem;box-shadow:var(--ifm-global-shadow-lw);height:3rem;opacity:0;position:fixed;right:1.3rem;transform:scale(0);transition:all var(--ifm-transition-fast) var(--ifm-transition-timing-default);visibility:hidden;width:3rem;z-index:calc(var(--ifm-z-index-fixed) - 1)}.backToTopButton_sjWU:after{background-color:var(--ifm-color-emphasis-1000);content:" ";display:inline-block;height:100%;-webkit-mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;width:100%}.backToTopButtonShow_xfvO{opacity:1;transform:scale(1);visibility:visible}[data-theme=dark]:root{--docusaurus-collapse-button-bg:#ffffff0d;--docusaurus-collapse-button-bg-hover:#ffffff1a}.collapseSidebarButton_PEFL{display:none;margin:0}.docMainContainer_TBSr,.docRoot_UBD9{display:flex;width:100%}.docsWrapper_hBAB{display:flex;flex:1 0 auto}.heroBanner_ME4k,.heroBanner_qdFl{overflow:hidden;padding:4rem 0;position:relative;text-align:center}.buttons_AeoN{align-items:center;display:flex;justify-content:center}.features_ALof,.features_xdhU{align-items:center;display:flex;padding:2rem 0}.logo_Ukns{max-width:360px;width:100%}.features_xdhU{margin:6em 0;width:100%}.featureSvg__8YW{height:64px;width:64px}.features_ALof{text-align:center;width:100%}.searchbox,.searchbox__input{box-sizing:border-box;display:inline-block}.features_ALof h2{font-size:2.5rem;margin-bottom:2.75rem}.featureSvg_K4k2{max-height:100px;max-width:250px;width:100%}.example_XiTW{margin:6em 0}.heading2_Pha7{font-size:3em;margin-bottom:2rem;text-align:center}.heading3_HQJr{font-size:2.5em;margin-bottom:1.5rem;text-align:center}.buttons_list_tJKG{line-height:3rem;text-align:center}.algolia-docsearch-suggestion{border-bottom-color:#3a3dd1}.algolia-docsearch-suggestion--category-header{background-color:#4b54de}.algolia-docsearch-suggestion--highlight{color:#3a33d1}.algolia-docsearch-suggestion--category-header .algolia-docsearch-suggestion--highlight{background-color:#4d47d5}.aa-cursor .algolia-docsearch-suggestion--content{color:#272296}.aa-cursor .algolia-docsearch-suggestion{background:#ebebfb}.searchbox{height:32px!important;position:relative;visibility:visible!important;white-space:nowrap;width:200px}.searchbox .algolia-autocomplete{display:block;height:100%;width:100%}.searchbox__wrapper{height:100%;position:relative;width:100%;z-index:999}.searchbox__input{-webkit-appearance:none;appearance:none;background:#fff!important;border:0;border-radius:16px;box-shadow:inset 0 0 0 1px #ccc;font-size:12px;height:100%;padding:0 26px 0 32px;transition:box-shadow .4s,background .4s;vertical-align:middle;white-space:normal;width:100%}.searchbox__input::-webkit-search-cancel-button,.searchbox__input::-webkit-search-decoration,.searchbox__input::-webkit-search-results-button,.searchbox__input::-webkit-search-results-decoration{display:none}.searchbox__input:hover{box-shadow:inset 0 0 0 1px #b3b3b3}.searchbox__input:active,.searchbox__input:focus{background:#fff;box-shadow:inset 0 0 0 1px #aaa;outline:0}.searchbox__input::placeholder{color:#aaa}.searchbox__submit{background-color:#458ee100;border:0;border-radius:16px 0 0 16px;font-size:inherit;height:100%;left:0;margin:0;padding:0;position:absolute;right:inherit;text-align:center;top:0;-webkit-user-select:none;user-select:none;vertical-align:middle;width:32px}.searchbox__submit:before{content:"";display:inline-block;height:100%;margin-right:-4px;vertical-align:middle}.algolia-autocomplete .ds-dropdown-menu .ds-suggestion,.searchbox__submit:active,.searchbox__submit:hover{cursor:pointer}.searchbox__submit svg{fill:#6d7e96;height:14px;vertical-align:middle;width:14px}.searchbox__reset{fill:#00000080;background:none;border:0;cursor:pointer;display:block;font-size:inherit;margin:0;padding:0;position:absolute;right:8px;top:8px;-webkit-user-select:none;user-select:none}.buttonGroup__atx button,.codeBlockContainer_Ckt0{background:var(--prism-background-color);color:var(--prism-color)}.searchbox__reset.hide{display:none}.searchbox__reset svg{display:block;height:8px;margin:4px;width:8px}.searchbox__input:valid~.searchbox__reset{animation-duration:.15s;animation-name:a;display:block}@keyframes a{0%{opacity:0;transform:translate3d(-20%,0,0)}to{opacity:1;transform:none}}.algolia-autocomplete .ds-dropdown-menu:before{background:#373940;border-radius:2px;border-right:1px solid #373940;border-top:1px solid #373940;content:"";display:block;height:14px;position:absolute;top:-7px;transform:rotate(-45deg);width:14px;z-index:1000}.algolia-autocomplete .ds-dropdown-menu{box-shadow:0 1px 0 0 #0003,0 2px 3px 0 #0000001a}.algolia-autocomplete .ds-dropdown-menu .ds-suggestions{position:relative;z-index:1000}.algolia-autocomplete .ds-dropdown-menu [class^=ds-dataset-]{background:#fff;border-radius:4px;overflow:auto;padding:0;position:relative}.algolia-autocomplete .algolia-docsearch-suggestion{display:block;overflow:hidden;padding:0;position:relative;text-decoration:none}.algolia-autocomplete .ds-cursor .algolia-docsearch-suggestion--wrapper{background:#f1f1f1;box-shadow:inset -2px 0 0 #61dafb}.algolia-autocomplete .algolia-docsearch-suggestion--highlight{background:#ffe564;padding:.1em .05em}.algolia-autocomplete .algolia-docsearch-suggestion--category-header .algolia-docsearch-suggestion--category-header-lvl0 .algolia-docsearch-suggestion--highlight,.algolia-autocomplete .algolia-docsearch-suggestion--category-header .algolia-docsearch-suggestion--category-header-lvl1 .algolia-docsearch-suggestion--highlight{background:inherit;color:inherit}.algolia-autocomplete .algolia-docsearch-suggestion--text .algolia-docsearch-suggestion--highlight{background:inherit;box-shadow:inset 0 -2px 0 0 #458ee1cc;color:inherit;padding:0 0 1px}.algolia-autocomplete .algolia-docsearch-suggestion--content{cursor:pointer;display:block;float:right;padding:5.33333px 0 5.33333px 10.66667px;position:relative;width:70%}.algolia-autocomplete .algolia-docsearch-suggestion--content:before{background:#ececec;content:"";display:block;height:100%;left:-1px;position:absolute;top:0;width:1px}.algolia-autocomplete .algolia-docsearch-suggestion--category-header{background-color:#373940;color:#fff;display:none;font-size:14px;font-weight:700;letter-spacing:.08em;margin:0;padding:5px 8px;position:relative;text-transform:uppercase}.algolia-autocomplete .algolia-docsearch-suggestion--wrapper{background-color:#fff;float:left;padding:8px 0 0;width:100%}.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-column{word-wrap:break-word;color:#777;display:none;float:left;font-size:.9em;padding:5.33333px 10.66667px;position:relative;text-align:right;width:30%}.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-column:before{background:#ececec;content:"";display:block;height:100%;position:absolute;right:0;top:0;width:1px}.algolia-autocomplete .algolia-docsearch-suggestion.algolia-docsearch-suggestion__main .algolia-docsearch-suggestion--category-header,.algolia-autocomplete .algolia-docsearch-suggestion.algolia-docsearch-suggestion__secondary{display:block}.algolia-autocomplete .algolia-docsearch-suggestion--no-results:before,.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-inline{display:none}.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-column .algolia-docsearch-suggestion--highlight{background-color:inherit;color:inherit}.algolia-autocomplete .algolia-docsearch-suggestion--title{color:#02060c;font-size:.9em;font-weight:700;margin-bottom:4px}.algolia-autocomplete .algolia-docsearch-suggestion--text{color:#63676d;display:block;font-size:.85em;line-height:1.2em;padding-right:2px}.algolia-autocomplete .algolia-docsearch-suggestion--version{color:#a6aab1;display:block;font-size:.65em;padding-right:2px;padding-top:2px}.algolia-autocomplete .algolia-docsearch-suggestion--no-results{background-color:#373940;font-size:1.2em;margin-top:-8px;padding:8px 0;text-align:center;width:100%}.algolia-autocomplete .algolia-docsearch-suggestion--no-results .algolia-docsearch-suggestion--text{color:#fff;margin-top:4px}.algolia-autocomplete .algolia-docsearch-suggestion code{background-color:#ebebeb;border:none;border-radius:3px;color:#222;font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace;font-size:90%;padding:1px 5px}.algolia-autocomplete .algolia-docsearch-suggestion code .algolia-docsearch-suggestion--highlight{background:none}.algolia-autocomplete .algolia-docsearch-suggestion.algolia-docsearch-suggestion__main .algolia-docsearch-suggestion--category-header{color:#fff;display:block}.algolia-autocomplete .algolia-docsearch-suggestion.algolia-docsearch-suggestion__secondary .algolia-docsearch-suggestion--subcategory-column{display:block}.algolia-autocomplete .algolia-docsearch-footer{background-color:#fff;float:right;font-size:0;height:30px;line-height:0;width:100%;z-index:2000}.algolia-autocomplete .algolia-docsearch-footer--logo{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 130 18'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath fill='url(%2523a)' d='M59.4.02h13.3a2.37 2.37 0 0 1 2.38 2.37V15.6a2.37 2.37 0 0 1-2.38 2.36H59.4a2.37 2.37 0 0 1-2.38-2.36V2.38A2.37 2.37 0 0 1 59.4.02z'/%3E%3Cpath fill='%2523FFF' d='M66.26 4.56c-2.82 0-5.1 2.27-5.1 5.08 0 2.8 2.28 5.07 5.1 5.07 2.8 0 5.1-2.26 5.1-5.07 0-2.8-2.28-5.07-5.1-5.07zm0 8.65c-2 0-3.6-1.6-3.6-3.56 0-1.97 1.6-3.58 3.6-3.58 1.98 0 3.6 1.6 3.6 3.58a3.58 3.58 0 0 1-3.6 3.57zm0-6.4v2.66c0 .07.08.13.15.1l2.4-1.24c.04-.02.06-.1.03-.14a2.96 2.96 0 0 0-2.46-1.5.1.1 0 0 0-.1.1zm-3.33-1.96-.3-.3a.78.78 0 0 0-1.12 0l-.36.36a.77.77 0 0 0 0 1.1l.3.3c.05.05.13.04.17 0 .2-.25.4-.5.6-.7.23-.23.46-.43.7-.6.07-.04.07-.1.03-.16zm5-.8V3.4a.78.78 0 0 0-.78-.78h-1.83a.78.78 0 0 0-.78.78v.63c0 .07.06.12.14.1a5.74 5.74 0 0 1 1.58-.22c.52 0 1.04.07 1.54.2a.1.1 0 0 0 .13-.1z'/%3E%3Cpath fill='%2523182359' d='M102.16 13.76c0 1.46-.37 2.52-1.12 3.2-.75.67-1.9 1-3.44 1-.56 0-1.74-.1-2.67-.3l.34-1.7c.78.17 1.82.2 2.36.2.86 0 1.48-.16 1.84-.5.37-.36.55-.88.55-1.57v-.35a6.37 6.37 0 0 1-.84.3 4.15 4.15 0 0 1-1.2.17 4.5 4.5 0 0 1-1.6-.28 3.38 3.38 0 0 1-1.26-.82 3.74 3.74 0 0 1-.8-1.35c-.2-.54-.3-1.5-.3-2.2 0-.67.1-1.5.3-2.06a3.92 3.92 0 0 1 .9-1.43 4.12 4.12 0 0 1 1.45-.92 5.3 5.3 0 0 1 1.94-.37c.7 0 1.35.1 1.97.2a15.86 15.86 0 0 1 1.6.33v8.46zm-5.95-4.2c0 .9.2 1.88.6 2.3.4.4.9.62 1.53.62.34 0 .66-.05.96-.15a2.75 2.75 0 0 0 .73-.33V6.7a8.53 8.53 0 0 0-1.42-.17c-.76-.02-1.36.3-1.77.8-.4.5-.62 1.4-.62 2.23zm16.13 0c0 .72-.1 1.26-.32 1.85a4.4 4.4 0 0 1-.9 1.53c-.38.42-.85.75-1.4.98-.54.24-1.4.37-1.8.37-.43 0-1.27-.13-1.8-.36a4.1 4.1 0 0 1-1.4-.97 4.5 4.5 0 0 1-.92-1.52 5.04 5.04 0 0 1-.33-1.84c0-.72.1-1.4.32-2 .22-.6.53-1.1.92-1.5.4-.43.86-.75 1.4-.98a4.55 4.55 0 0 1 1.78-.34 4.7 4.7 0 0 1 1.8.34c.54.23 1 .55 1.4.97.38.42.68.92.9 1.5.23.6.35 1.3.35 2zm-2.2 0c0-.92-.2-1.7-.6-2.22-.38-.54-.94-.8-1.64-.8-.72 0-1.27.26-1.67.8-.4.54-.58 1.3-.58 2.22 0 .93.2 1.56.6 2.1.38.54.94.8 1.64.8s1.25-.26 1.65-.8c.4-.55.6-1.17.6-2.1zm6.97 4.7c-3.5.02-3.5-2.8-3.5-3.27L113.57.92l2.15-.34v10c0 .25 0 1.87 1.37 1.88v1.8zm3.77 0h-2.15v-9.2l2.15-.33v9.54zM119.8 3.74c.7 0 1.3-.58 1.3-1.3 0-.7-.58-1.3-1.3-1.3-.73 0-1.3.6-1.3 1.3 0 .72.58 1.3 1.3 1.3zm6.43 1c.7 0 1.3.1 1.78.27.5.18.88.42 1.17.73.28.3.5.74.6 1.18.13.46.2.95.2 1.5v5.47a25.24 25.24 0 0 1-1.5.25c-.67.1-1.42.15-2.25.15a6.83 6.83 0 0 1-1.52-.16 3.2 3.2 0 0 1-1.18-.5 2.46 2.46 0 0 1-.76-.9c-.18-.37-.27-.9-.27-1.44 0-.52.1-.85.3-1.2.2-.37.48-.67.83-.9a3.6 3.6 0 0 1 1.23-.5 7.07 7.07 0 0 1 2.2-.1l.83.16V8.4c0-.25-.03-.48-.1-.7a1.5 1.5 0 0 0-.3-.58c-.15-.18-.34-.3-.58-.4a2.54 2.54 0 0 0-.92-.17c-.5 0-.94.06-1.35.13-.4.08-.75.16-1 .25l-.27-1.74c.27-.1.67-.18 1.2-.28a9.34 9.34 0 0 1 1.65-.14zm.18 7.74c.66 0 1.15-.04 1.5-.1V10.2a5.1 5.1 0 0 0-2-.1c-.23.03-.45.1-.64.2a1.17 1.17 0 0 0-.47.38c-.13.17-.18.26-.18.52 0 .5.17.8.5.98.32.2.74.3 1.3.3zM84.1 4.8c.72 0 1.3.08 1.8.26.48.17.87.42 1.15.73.3.3.5.72.6 1.17.14.45.2.94.2 1.47v5.48a25.24 25.24 0 0 1-1.5.26c-.67.1-1.42.14-2.25.14a6.83 6.83 0 0 1-1.52-.16 3.2 3.2 0 0 1-1.18-.5 2.46 2.46 0 0 1-.76-.9c-.18-.38-.27-.9-.27-1.44 0-.53.1-.86.3-1.22.2-.36.5-.65.84-.88a3.6 3.6 0 0 1 1.24-.5 7.07 7.07 0 0 1 2.2-.1c.26.03.54.08.84.15v-.35c0-.24-.03-.48-.1-.7a1.5 1.5 0 0 0-.3-.58c-.15-.17-.34-.3-.58-.4a2.54 2.54 0 0 0-.9-.15c-.5 0-.96.05-1.37.12-.4.07-.75.15-1 .24l-.26-1.75c.27-.08.67-.17 1.18-.26a8.9 8.9 0 0 1 1.66-.15zm.2 7.73c.65 0 1.14-.04 1.48-.1v-2.17a5.1 5.1 0 0 0-1.98-.1c-.24.03-.46.1-.65.18a1.17 1.17 0 0 0-.47.4c-.12.17-.17.26-.17.52 0 .5.18.8.5.98.32.2.75.3 1.3.3zm8.68 1.74c-3.5 0-3.5-2.82-3.5-3.28L89.45.92 91.6.6v10c0 .25 0 1.87 1.38 1.88v1.8z'/%3E%3Cpath fill='%25231D3657' d='M5.03 11.03c0 .7-.26 1.24-.76 1.64-.5.4-1.2.6-2.1.6-.88 0-1.6-.14-2.17-.42v-1.2c.36.16.74.3 1.14.38.4.1.78.15 1.13.15.5 0 .88-.1 1.12-.3a.94.94 0 0 0 .35-.77.98.98 0 0 0-.33-.74c-.22-.2-.68-.44-1.37-.72-.72-.3-1.22-.62-1.52-1C.23 8.27.1 7.82.1 7.3c0-.65.22-1.17.7-1.55.46-.37 1.08-.56 1.86-.56.76 0 1.5.16 2.25.48l-.4 1.05c-.7-.3-1.32-.44-1.87-.44-.4 0-.73.08-.94.26a.9.9 0 0 0-.33.72c0 .2.04.38.12.52.08.15.22.3.42.4.2.14.55.3 1.06.52.58.24 1 .47 1.27.67.27.2.47.44.6.7.12.26.18.57.18.92zM9 13.27c-.92 0-1.64-.27-2.16-.8-.52-.55-.78-1.3-.78-2.24 0-.97.24-1.73.72-2.3.5-.54 1.15-.82 2-.82.78 0 1.4.25 1.85.72.46.48.7 1.14.7 1.97v.67H7.35c0 .58.17 1.02.46 1.33.3.3.7.47 1.24.47.36 0 .68-.04.98-.1a5.1 5.1 0 0 0 .98-.33v1.02a3.87 3.87 0 0 1-.94.32 5.72 5.72 0 0 1-1.08.1zm-.22-5.2c-.4 0-.73.12-.97.38s-.37.62-.42 1.1h2.7c0-.48-.13-.85-.36-1.1-.23-.26-.54-.38-.94-.38zm7.7 5.1-.26-.84h-.05c-.28.36-.57.6-.86.74-.28.13-.65.2-1.1.2-.6 0-1.05-.16-1.38-.48-.32-.32-.5-.77-.5-1.34 0-.62.24-1.08.7-1.4.45-.3 1.14-.47 2.07-.5l1.02-.03V9.2c0-.37-.1-.65-.27-.84-.17-.2-.45-.28-.82-.28-.3 0-.6.04-.88.13a6.68 6.68 0 0 0-.8.33l-.4-.9a4.4 4.4 0 0 1 1.05-.4 4.86 4.86 0 0 1 1.08-.12c.76 0 1.33.18 1.7.5.4.33.6.85.6 1.56v4h-.9zm-1.9-.87c.47 0 .83-.13 1.1-.38.3-.26.43-.62.43-1.08v-.52l-.76.03c-.6.03-1.02.13-1.3.3s-.4.45-.4.82c0 .26.08.47.24.6.16.16.4.23.7.23zm7.57-5.2c.25 0 .46.03.62.06l-.12 1.18a2.38 2.38 0 0 0-.56-.06c-.5 0-.92.16-1.24.5-.3.32-.47.75-.47 1.27v3.1h-1.27V7.23h1l.16 1.05h.05c.2-.36.45-.64.77-.85a1.83 1.83 0 0 1 1.02-.3zm4.12 6.17c-.9 0-1.58-.27-2.05-.8-.47-.52-.7-1.27-.7-2.25 0-1 .24-1.77.73-2.3.5-.54 1.2-.8 2.12-.8.63 0 1.2.1 1.7.34l-.4 1c-.52-.2-.96-.3-1.3-.3-1.04 0-1.55.68-1.55 2.05 0 .67.13 1.17.38 1.5.26.34.64.5 1.13.5a3.23 3.23 0 0 0 1.6-.4v1.1a2.53 2.53 0 0 1-.73.28 4.36 4.36 0 0 1-.93.08zm8.28-.1h-1.27V9.5c0-.45-.1-.8-.28-1.02-.18-.23-.47-.34-.88-.34-.53 0-.9.16-1.16.48-.25.3-.38.85-.38 1.6v2.94h-1.26V4.8h1.26v2.12c0 .34-.02.7-.06 1.1h.08a1.76 1.76 0 0 1 .72-.67c.3-.16.66-.24 1.07-.24 1.43 0 2.15.74 2.15 2.2v3.86zM42.2 7.1c.74 0 1.32.28 1.73.82.4.53.62 1.3.62 2.26 0 .97-.2 1.73-.63 2.27-.42.54-1 .82-1.75.82s-1.33-.27-1.75-.8h-.08l-.23.7h-.94V4.8h1.26v2l-.02.64-.03.56h.05c.4-.6 1-.9 1.78-.9zm-.33 1.04c-.5 0-.88.15-1.1.45-.22.3-.34.8-.35 1.5v.08c0 .72.12 1.24.35 1.57.23.32.6.48 1.12.48.44 0 .78-.17 1-.53.24-.35.36-.87.36-1.53 0-1.35-.47-2.03-1.4-2.03zm3.24-.92h1.4l1.2 3.37c.18.47.3.92.36 1.34h.04l.18-.72 1.37-4H51l-2.53 6.73c-.46 1.23-1.23 1.85-2.3 1.85-.3 0-.56-.03-.83-.1v-1c.2.05.4.08.65.08.6 0 1.03-.36 1.28-1.06l.22-.56-2.4-5.94z'/%3E%3C/g%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:100%;display:block;height:100%;margin-left:auto;margin-right:5px;overflow:hidden;text-indent:-9000px;width:110px}html[data-theme=dark] .algolia-docsearch-footer,html[data-theme=dark] .algolia-docsearch-suggestion--category-header,html[data-theme=dark] .algolia-docsearch-suggestion--wrapper{background:var(--ifm-background-color)!important;color:var(--ifm-font-color-base)!important}html[data-theme=dark] .algolia-docsearch-suggestion--title{color:var(--ifm-font-color-base)!important}html[data-theme=dark] .ds-cursor .algolia-docsearch-suggestion--wrapper{background:var(--ifm-background-surface-color)!important}mark{background-color:#add8e6}.codeBlockContainer_Ckt0{border-radius:var(--ifm-code-border-radius);box-shadow:var(--ifm-global-shadow-lw);margin-bottom:var(--ifm-leading)}.codeBlockContent_biex{border-radius:inherit;direction:ltr;position:relative}.codeBlockTitle_Ktv7{border-bottom:1px solid var(--ifm-color-emphasis-300);border-top-left-radius:inherit;border-top-right-radius:inherit;font-size:var(--ifm-code-font-size);font-weight:500;padding:.75rem var(--ifm-pre-padding)}.codeBlock_bY9V{--ifm-pre-background:var(--prism-background-color);margin:0;padding:0}.codeBlockTitle_Ktv7+.codeBlockContent_biex .codeBlock_bY9V{border-top-left-radius:0;border-top-right-radius:0}.codeBlockLines_e6Vv{float:left;font:inherit;min-width:100%;padding:var(--ifm-pre-padding)}.codeBlockLinesWithNumbering_o6Pm{display:table;padding:var(--ifm-pre-padding) 0}.buttonGroup__atx{column-gap:.2rem;display:flex;position:absolute;right:calc(var(--ifm-pre-padding)/2);top:calc(var(--ifm-pre-padding)/2)}.buttonGroup__atx button{align-items:center;border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-global-radius);display:flex;line-height:0;opacity:0;padding:.4rem;transition:opacity var(--ifm-transition-fast) ease-in-out}.buttonGroup__atx button:focus-visible,.buttonGroup__atx button:hover{opacity:1!important}.theme-code-block:hover .buttonGroup__atx button{opacity:.4}:where(:root){--docusaurus-highlighted-code-line-bg:#484d5b}:where([data-theme=dark]){--docusaurus-highlighted-code-line-bg:#646464}.theme-code-block-highlighted-line{background-color:var(--docusaurus-highlighted-code-line-bg);display:block;margin:0 calc(var(--ifm-pre-padding)*-1);padding:0 var(--ifm-pre-padding)}.codeLine_lJS_{counter-increment:a;display:table-row}.codeLineNumber_Tfdd{background:var(--ifm-pre-background);display:table-cell;left:0;overflow-wrap:normal;padding:0 var(--ifm-pre-padding);position:sticky;text-align:right;width:1%}.codeLineNumber_Tfdd:before{content:counter(a);opacity:.4}.codeLineContent_feaV{padding-right:var(--ifm-pre-padding)}.theme-code-block:hover .copyButtonCopied_obH4{opacity:1!important}.copyButtonIcons_eSgA{height:1.125rem;position:relative;width:1.125rem}.copyButtonIcon_y97N,.copyButtonSuccessIcon_LjdS{fill:currentColor;height:inherit;left:0;opacity:inherit;position:absolute;top:0;transition:all var(--ifm-transition-fast) ease;width:inherit}.copyButtonSuccessIcon_LjdS{color:#00d600;left:50%;opacity:0;top:50%;transform:translate(-50%,-50%) scale(.33)}.copyButtonCopied_obH4 .copyButtonIcon_y97N{opacity:0;transform:scale(.33)}.copyButtonCopied_obH4 .copyButtonSuccessIcon_LjdS{opacity:1;transform:translate(-50%,-50%) scale(1);transition-delay:75ms}.wordWrapButtonIcon_Bwma{height:1.2rem;width:1.2rem}.details_lb9f{--docusaurus-details-summary-arrow-size:0.38rem;--docusaurus-details-transition:transform 200ms ease;--docusaurus-details-decoration-color:grey}.details_lb9f>summary{cursor:pointer;padding-left:1rem;position:relative}.details_lb9f>summary::-webkit-details-marker{display:none}.details_lb9f>summary:before{border-color:#0000 #0000 #0000 var(--docusaurus-details-decoration-color);border-style:solid;border-width:var(--docusaurus-details-summary-arrow-size);content:"";left:0;position:absolute;top:.45rem;transform:rotate(0);transform-origin:calc(var(--docusaurus-details-summary-arrow-size)/2) 50%;transition:var(--docusaurus-details-transition)}.collapsibleContent_i85q{border-top:1px solid var(--docusaurus-details-decoration-color);margin-top:1rem;padding-top:1rem}.details_b_Ee{--docusaurus-details-decoration-color:var(--ifm-alert-border-color);--docusaurus-details-transition:transform var(--ifm-transition-fast) ease;border:1px solid var(--ifm-alert-border-color);margin:0 0 var(--ifm-spacing-vertical)}:not(.containsTaskList_mC6p>li)>.containsTaskList_mC6p{padding-left:0}.img_ev3q{height:auto}.tableOfContents_bqdL{max-height:calc(100vh - var(--ifm-navbar-height) - 2rem);overflow-y:auto;position:sticky;top:calc(var(--ifm-navbar-height) + 1rem)}.admonition_xJq3{margin-bottom:1em}.admonitionHeading_Gvgb{font:var(--ifm-heading-font-weight) var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family)}.admonitionHeading_Gvgb:not(:last-child){margin-bottom:.3rem}.admonitionHeading_Gvgb code{text-transform:none}.admonitionIcon_Rf37{display:inline-block;margin-right:.4em;vertical-align:middle}.admonitionIcon_Rf37 svg{fill:var(--ifm-alert-foreground-color);display:inline-block;height:1.6em;width:1.6em}.breadcrumbHomeIcon_YNFT{height:1.1rem;position:relative;top:1px;vertical-align:top;width:1.1rem}.breadcrumbsContainer_Z_bl{--ifm-breadcrumb-size-multiplier:0.8;margin-bottom:.8rem}.title_kItE{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-leading)*1.25)}.mdxPageWrapper_j9I6{justify-content:center}@media (min-width:601px){.algolia-autocomplete.algolia-autocomplete-right .ds-dropdown-menu{left:inherit!important;right:0!important}.algolia-autocomplete.algolia-autocomplete-right .ds-dropdown-menu:before{right:48px}.algolia-autocomplete .ds-dropdown-menu{background:#0000;border:none;border-radius:4px;height:auto;margin:6px 0 0;max-width:600px;min-width:500px;padding:0;position:relative;text-align:left;top:-6px;z-index:999}}@media (min-width:768px){.algolia-docsearch-suggestion{border-bottom-color:#7671df}.algolia-docsearch-suggestion--subcategory-column{border-right-color:#7671df;color:#4e4726}}@media (min-width:997px){.collapseSidebarButton_PEFL,.expandButton_TmdG{background-color:var(--docusaurus-collapse-button-bg)}:root{--docusaurus-announcement-bar-height:30px}.announcementBarClose_gvF7,.announcementBarPlaceholder_vyr4{flex-basis:50px}.navbarSearchContainer_Bca1{padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.lastUpdated_vwxv{text-align:right}.tocMobile_ITEo{display:none}.collapseSidebarButton_PEFL{border:1px solid var(--ifm-toc-border-color);border-radius:0;bottom:0;display:block!important;height:40px;position:sticky}.collapseSidebarButtonIcon_kv0_{margin-top:4px;transform:rotate(180deg)}.expandButtonIcon_i1dp,[dir=rtl] .collapseSidebarButtonIcon_kv0_{transform:rotate(0)}.collapseSidebarButton_PEFL:focus,.collapseSidebarButton_PEFL:hover,.expandButton_TmdG:focus,.expandButton_TmdG:hover{background-color:var(--docusaurus-collapse-button-bg-hover)}.menuHtmlItem_M9Kj{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu_SIkG{flex-grow:1;padding:.5rem}@supports (scrollbar-gutter:stable){.menu_SIkG{padding:.5rem 0 .5rem .5rem;scrollbar-gutter:stable}}.menuWithAnnouncementBar_GW3s{margin-bottom:var(--docusaurus-announcement-bar-height)}.sidebar_njMd{display:flex;flex-direction:column;height:100%;padding-top:var(--ifm-navbar-height);width:var(--doc-sidebar-width)}.sidebarWithHideableNavbar_wUlq{padding-top:0}.sidebarHidden_VK0M{opacity:0;visibility:hidden}.sidebarLogo_isFc{align-items:center;color:inherit!important;display:flex!important;margin:0 var(--ifm-navbar-padding-horizontal);max-height:var(--ifm-navbar-height);min-height:var(--ifm-navbar-height);text-decoration:none!important}.sidebarLogo_isFc img{height:2rem;margin-right:.5rem}.expandButton_TmdG{align-items:center;display:flex;height:100%;justify-content:center;position:absolute;right:0;top:0;transition:background-color var(--ifm-transition-fast) ease;width:100%}[dir=rtl] .expandButtonIcon_i1dp{transform:rotate(180deg)}.docSidebarContainer_YfHR{border-right:1px solid var(--ifm-toc-border-color);-webkit-clip-path:inset(0);clip-path:inset(0);display:block;margin-top:calc(var(--ifm-navbar-height)*-1);transition:width var(--ifm-transition-fast) ease;width:var(--doc-sidebar-width);will-change:width}.docSidebarContainerHidden_DPk8{cursor:pointer;width:var(--doc-sidebar-hidden-width)}.sidebarViewport_aRkj{height:100%;max-height:100vh;position:sticky;top:0}.docMainContainer_TBSr{flex-grow:1;max-width:calc(100% - var(--doc-sidebar-width))}.docMainContainerEnhanced_lQrH{max-width:calc(100% - var(--doc-sidebar-hidden-width))}.docItemWrapperEnhanced_JWYK{max-width:calc(var(--ifm-container-width) + var(--doc-sidebar-width))!important}.docItemCol_VOVn,.generatedIndexPage_vN6x{max-width:75%!important}.list_eTzJ article:nth-last-child(-n+2){margin-bottom:0!important}}@media (min-width:1440px){.container{max-width:var(--ifm-container-width-xl)}}@media (max-width:996px){.col{--ifm-col-width:100%;flex-basis:var(--ifm-col-width);margin-left:0}.footer{--ifm-footer-padding-horizontal:0}.colorModeToggle_DEke,.footer__link-separator,.navbar__item,.tableOfContents_bqdL{display:none}.footer__col{margin-bottom:calc(var(--ifm-spacing-vertical)*3)}.footer__link-item{display:block}.hero{padding-left:0;padding-right:0}.navbar>.container,.navbar>.container-fluid{padding:0}.navbar__toggle{display:inherit}.navbar__search-input{width:9rem}.pills--block,.tabs--block{flex-direction:column}.navbarSearchContainer_Bca1{position:absolute;right:var(--ifm-navbar-padding-horizontal)}.docItemContainer_F8PC{padding:0 .3rem}}@media screen and (max-width:966px){.heroBanner_ME4k,.heroBanner_qdFl{padding:2rem}}@media (max-width:600px){.algolia-autocomplete .ds-dropdown-menu{display:block;left:auto!important;max-height:calc(100% - 5rem);max-width:calc(100% - 2rem);position:fixed!important;right:1rem!important;top:50px!important;width:600px;z-index:100}.algolia-autocomplete .ds-dropdown-menu:before{right:6rem}}@media (max-width:576px){.markdown h1:first-child{--ifm-h1-font-size:2rem}.markdown>h2{--ifm-h2-font-size:1.5rem}.markdown>h3{--ifm-h3-font-size:1.25rem}}@media (hover:hover){.backToTopButton_sjWU:hover{background-color:var(--ifm-color-emphasis-300)}}@media (pointer:fine){.thin-scrollbar{scrollbar-width:thin}.thin-scrollbar::-webkit-scrollbar{height:var(--ifm-scrollbar-size);width:var(--ifm-scrollbar-size)}.thin-scrollbar::-webkit-scrollbar-track{background:var(--ifm-scrollbar-track-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb{background:var(--ifm-scrollbar-thumb-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--ifm-scrollbar-thumb-hover-background-color)}}@media (prefers-reduced-motion:reduce){:root{--ifm-transition-fast:0ms;--ifm-transition-slow:0ms}}@media print{.announcementBar_mb4j,.footer,.menu,.navbar,.pagination-nav,.table-of-contents,.tocMobile_ITEo{display:none}.tabs{page-break-inside:avoid}.codeBlockLines_e6Vv{white-space:pre-wrap}} \ No newline at end of file diff --git a/assets/css/styles.f9928c2a.css b/assets/css/styles.f9928c2a.css deleted file mode 100644 index 265f0a6a8..000000000 --- a/assets/css/styles.f9928c2a.css +++ /dev/null @@ -1 +0,0 @@ -.col,.container{padding:0 var(--ifm-spacing-horizontal);width:100%}.markdown>h2,.markdown>h3,.markdown>h4,.markdown>h5,.markdown>h6{margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading))}body,ol ol,ol ul,ul ol,ul ul{margin:0}blockquote,pre{margin:0 0 var(--ifm-spacing-vertical)}.breadcrumbs__link,.button{transition-timing-function:var(--ifm-transition-timing-default)}.button,code{vertical-align:middle}.button--outline.button--active,.button--outline:active,.button--outline:hover,:root{--ifm-button-color:var(--ifm-font-color-base-inverse)}.menu__link:hover,a{transition:color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.navbar--dark,:root{--ifm-navbar-link-hover-color:var(--ifm-color-primary)}.menu,.navbar-sidebar{overflow-x:hidden}:root,html[data-theme=dark]{--ifm-color-emphasis-500:var(--ifm-color-gray-500)}.toggleButton_gllP,html{-webkit-tap-highlight-color:transparent}.searchbox__reset:focus,.searchbox__submit:focus,body:not(.navigation-with-keyboard) :not(input):focus{outline:0}pre,table{overflow:auto}.markdown li,body{word-wrap:break-word}.clean-list,.containsTaskList_mC6p,.details_lb9f>summary,.dropdown__menu,.menu__list{list-style:none}:root{--ifm-color-scheme:light;--ifm-dark-value:10%;--ifm-darker-value:15%;--ifm-darkest-value:30%;--ifm-light-value:15%;--ifm-lighter-value:30%;--ifm-lightest-value:50%;--ifm-contrast-background-value:90%;--ifm-contrast-foreground-value:70%;--ifm-contrast-background-dark-value:70%;--ifm-contrast-foreground-dark-value:90%;--ifm-color-primary:#3578e5;--ifm-color-secondary:#ebedf0;--ifm-color-success:#00a400;--ifm-color-info:#54c7ec;--ifm-color-warning:#ffba00;--ifm-color-danger:#fa383e;--ifm-color-primary-dark:#306cce;--ifm-color-primary-darker:#2d66c3;--ifm-color-primary-darkest:#2554a0;--ifm-color-primary-light:#538ce9;--ifm-color-primary-lighter:#72a1ed;--ifm-color-primary-lightest:#9abcf2;--ifm-color-primary-contrast-background:#ebf2fc;--ifm-color-primary-contrast-foreground:#102445;--ifm-color-secondary-dark:#d4d5d8;--ifm-color-secondary-darker:#c8c9cc;--ifm-color-secondary-darkest:#a4a6a8;--ifm-color-secondary-light:#eef0f2;--ifm-color-secondary-lighter:#f1f2f5;--ifm-color-secondary-lightest:#f5f6f8;--ifm-color-secondary-contrast-background:#fdfdfe;--ifm-color-secondary-contrast-foreground:#474748;--ifm-color-success-dark:#009400;--ifm-color-success-darker:#008b00;--ifm-color-success-darkest:#007300;--ifm-color-success-light:#26b226;--ifm-color-success-lighter:#4dbf4d;--ifm-color-success-lightest:#80d280;--ifm-color-success-contrast-background:#e6f6e6;--ifm-color-success-contrast-foreground:#003100;--ifm-color-info-dark:#4cb3d4;--ifm-color-info-darker:#47a9c9;--ifm-color-info-darkest:#3b8ba5;--ifm-color-info-light:#6ecfef;--ifm-color-info-lighter:#87d8f2;--ifm-color-info-lightest:#aae3f6;--ifm-color-info-contrast-background:#eef9fd;--ifm-color-info-contrast-foreground:#193c47;--ifm-color-warning-dark:#e6a700;--ifm-color-warning-darker:#d99e00;--ifm-color-warning-darkest:#b38200;--ifm-color-warning-light:#ffc426;--ifm-color-warning-lighter:#ffcf4d;--ifm-color-warning-lightest:#ffdd80;--ifm-color-warning-contrast-background:#fff8e6;--ifm-color-warning-contrast-foreground:#4d3800;--ifm-color-danger-dark:#e13238;--ifm-color-danger-darker:#d53035;--ifm-color-danger-darkest:#af272b;--ifm-color-danger-light:#fb565b;--ifm-color-danger-lighter:#fb7478;--ifm-color-danger-lightest:#fd9c9f;--ifm-color-danger-contrast-background:#ffebec;--ifm-color-danger-contrast-foreground:#4b1113;--ifm-color-white:#fff;--ifm-color-black:#000;--ifm-color-gray-0:var(--ifm-color-white);--ifm-color-gray-100:#f5f6f7;--ifm-color-gray-200:#ebedf0;--ifm-color-gray-300:#dadde1;--ifm-color-gray-400:#ccd0d5;--ifm-color-gray-500:#bec3c9;--ifm-color-gray-600:#8d949e;--ifm-color-gray-700:#606770;--ifm-color-gray-800:#444950;--ifm-color-gray-900:#1c1e21;--ifm-color-gray-1000:var(--ifm-color-black);--ifm-color-emphasis-0:var(--ifm-color-gray-0);--ifm-color-emphasis-100:var(--ifm-color-gray-100);--ifm-color-emphasis-200:var(--ifm-color-gray-200);--ifm-color-emphasis-300:var(--ifm-color-gray-300);--ifm-color-emphasis-400:var(--ifm-color-gray-400);--ifm-color-emphasis-600:var(--ifm-color-gray-600);--ifm-color-emphasis-700:var(--ifm-color-gray-700);--ifm-color-emphasis-800:var(--ifm-color-gray-800);--ifm-color-emphasis-900:var(--ifm-color-gray-900);--ifm-color-emphasis-1000:var(--ifm-color-gray-1000);--ifm-color-content:var(--ifm-color-emphasis-900);--ifm-color-content-inverse:var(--ifm-color-emphasis-0);--ifm-color-content-secondary:#525860;--ifm-background-color:#0000;--ifm-background-surface-color:var(--ifm-color-content-inverse);--ifm-global-border-width:1px;--ifm-global-radius:0.4rem;--ifm-hover-overlay:#0000000d;--ifm-font-color-base:var(--ifm-color-content);--ifm-font-color-base-inverse:var(--ifm-color-content-inverse);--ifm-font-color-secondary:var(--ifm-color-content-secondary);--ifm-font-family-base:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--ifm-font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--ifm-font-size-base:100%;--ifm-font-weight-light:300;--ifm-font-weight-normal:400;--ifm-font-weight-semibold:500;--ifm-font-weight-bold:700;--ifm-font-weight-base:var(--ifm-font-weight-normal);--ifm-line-height-base:1.65;--ifm-global-spacing:1rem;--ifm-spacing-vertical:var(--ifm-global-spacing);--ifm-spacing-horizontal:var(--ifm-global-spacing);--ifm-transition-fast:200ms;--ifm-transition-slow:400ms;--ifm-transition-timing-default:cubic-bezier(0.08,0.52,0.52,1);--ifm-global-shadow-lw:0 1px 2px 0 #0000001a;--ifm-global-shadow-md:0 5px 40px #0003;--ifm-global-shadow-tl:0 12px 28px 0 #0003,0 2px 4px 0 #0000001a;--ifm-z-index-dropdown:100;--ifm-z-index-fixed:200;--ifm-z-index-overlay:400;--ifm-container-width:1140px;--ifm-container-width-xl:1320px;--ifm-code-background:#f6f7f8;--ifm-code-border-radius:var(--ifm-global-radius);--ifm-code-font-size:90%;--ifm-code-padding-horizontal:0.1rem;--ifm-code-padding-vertical:0.1rem;--ifm-pre-background:var(--ifm-code-background);--ifm-pre-border-radius:var(--ifm-code-border-radius);--ifm-pre-color:inherit;--ifm-pre-line-height:1.45;--ifm-pre-padding:1rem;--ifm-heading-color:inherit;--ifm-heading-margin-top:0;--ifm-heading-margin-bottom:var(--ifm-spacing-vertical);--ifm-heading-font-family:var(--ifm-font-family-base);--ifm-heading-font-weight:var(--ifm-font-weight-bold);--ifm-heading-line-height:1.25;--ifm-h1-font-size:2rem;--ifm-h2-font-size:1.5rem;--ifm-h3-font-size:1.25rem;--ifm-h4-font-size:1rem;--ifm-h5-font-size:0.875rem;--ifm-h6-font-size:0.85rem;--ifm-image-alignment-padding:1.25rem;--ifm-leading-desktop:1.25;--ifm-leading:calc(var(--ifm-leading-desktop)*1rem);--ifm-list-left-padding:2rem;--ifm-list-margin:1rem;--ifm-list-item-margin:0.25rem;--ifm-list-paragraph-margin:1rem;--ifm-table-cell-padding:0.75rem;--ifm-table-background:#0000;--ifm-table-stripe-background:#00000008;--ifm-table-border-width:1px;--ifm-table-border-color:var(--ifm-color-emphasis-300);--ifm-table-head-background:inherit;--ifm-table-head-color:inherit;--ifm-table-head-font-weight:var(--ifm-font-weight-bold);--ifm-table-cell-color:inherit;--ifm-link-color:var(--ifm-color-primary);--ifm-link-decoration:none;--ifm-link-hover-color:var(--ifm-link-color);--ifm-link-hover-decoration:underline;--ifm-paragraph-margin-bottom:var(--ifm-leading);--ifm-blockquote-font-size:var(--ifm-font-size-base);--ifm-blockquote-border-left-width:2px;--ifm-blockquote-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-blockquote-padding-vertical:0;--ifm-blockquote-shadow:none;--ifm-blockquote-color:var(--ifm-color-emphasis-800);--ifm-blockquote-border-color:var(--ifm-color-emphasis-300);--ifm-hr-background-color:var(--ifm-color-emphasis-500);--ifm-hr-height:1px;--ifm-hr-margin-vertical:1.5rem;--ifm-scrollbar-size:7px;--ifm-scrollbar-track-background-color:#f1f1f1;--ifm-scrollbar-thumb-background-color:silver;--ifm-scrollbar-thumb-hover-background-color:#a7a7a7;--ifm-alert-background-color:inherit;--ifm-alert-border-color:inherit;--ifm-alert-border-radius:var(--ifm-global-radius);--ifm-alert-border-width:0px;--ifm-alert-border-left-width:5px;--ifm-alert-color:var(--ifm-font-color-base);--ifm-alert-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-alert-padding-vertical:var(--ifm-spacing-vertical);--ifm-alert-shadow:var(--ifm-global-shadow-lw);--ifm-avatar-intro-margin:1rem;--ifm-avatar-intro-alignment:inherit;--ifm-avatar-photo-size:3rem;--ifm-badge-background-color:inherit;--ifm-badge-border-color:inherit;--ifm-badge-border-radius:var(--ifm-global-radius);--ifm-badge-border-width:var(--ifm-global-border-width);--ifm-badge-color:var(--ifm-color-white);--ifm-badge-padding-horizontal:calc(var(--ifm-spacing-horizontal)*0.5);--ifm-badge-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-breadcrumb-border-radius:1.5rem;--ifm-breadcrumb-spacing:0.5rem;--ifm-breadcrumb-color-active:var(--ifm-color-primary);--ifm-breadcrumb-item-background-active:var(--ifm-hover-overlay);--ifm-breadcrumb-padding-horizontal:0.8rem;--ifm-breadcrumb-padding-vertical:0.4rem;--ifm-breadcrumb-size-multiplier:1;--ifm-breadcrumb-separator:url('data:image/svg+xml;utf8,');--ifm-breadcrumb-separator-filter:none;--ifm-breadcrumb-separator-size:0.5rem;--ifm-breadcrumb-separator-size-multiplier:1.25;--ifm-button-background-color:inherit;--ifm-button-border-color:var(--ifm-button-background-color);--ifm-button-border-width:var(--ifm-global-border-width);--ifm-button-font-weight:var(--ifm-font-weight-bold);--ifm-button-padding-horizontal:1.5rem;--ifm-button-padding-vertical:0.375rem;--ifm-button-size-multiplier:1;--ifm-button-transition-duration:var(--ifm-transition-fast);--ifm-button-border-radius:calc(var(--ifm-global-radius)*var(--ifm-button-size-multiplier));--ifm-button-group-spacing:2px;--ifm-card-background-color:var(--ifm-background-surface-color);--ifm-card-border-radius:calc(var(--ifm-global-radius)*2);--ifm-card-horizontal-spacing:var(--ifm-global-spacing);--ifm-card-vertical-spacing:var(--ifm-global-spacing);--ifm-toc-border-color:var(--ifm-color-emphasis-300);--ifm-toc-link-color:var(--ifm-color-content-secondary);--ifm-toc-padding-vertical:0.5rem;--ifm-toc-padding-horizontal:0.5rem;--ifm-dropdown-background-color:var(--ifm-background-surface-color);--ifm-dropdown-font-weight:var(--ifm-font-weight-semibold);--ifm-dropdown-link-color:var(--ifm-font-color-base);--ifm-dropdown-hover-background-color:var(--ifm-hover-overlay);--ifm-footer-background-color:var(--ifm-color-emphasis-100);--ifm-footer-color:inherit;--ifm-footer-link-color:var(--ifm-color-emphasis-700);--ifm-footer-link-hover-color:var(--ifm-color-primary);--ifm-footer-link-horizontal-spacing:0.5rem;--ifm-footer-padding-horizontal:calc(var(--ifm-spacing-horizontal)*2);--ifm-footer-padding-vertical:calc(var(--ifm-spacing-vertical)*2);--ifm-footer-title-color:inherit;--ifm-footer-logo-max-width:min(30rem,90vw);--ifm-hero-background-color:var(--ifm-background-surface-color);--ifm-hero-text-color:var(--ifm-color-emphasis-800);--ifm-menu-color:var(--ifm-color-emphasis-700);--ifm-menu-color-active:var(--ifm-color-primary);--ifm-menu-color-background-active:var(--ifm-hover-overlay);--ifm-menu-color-background-hover:var(--ifm-hover-overlay);--ifm-menu-link-padding-horizontal:0.75rem;--ifm-menu-link-padding-vertical:0.375rem;--ifm-menu-link-sublist-icon:url('data:image/svg+xml;utf8,');--ifm-menu-link-sublist-icon-filter:none;--ifm-navbar-background-color:var(--ifm-background-surface-color);--ifm-navbar-height:3.75rem;--ifm-navbar-item-padding-horizontal:0.75rem;--ifm-navbar-item-padding-vertical:0.25rem;--ifm-navbar-link-color:var(--ifm-font-color-base);--ifm-navbar-link-active-color:var(--ifm-link-color);--ifm-navbar-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-navbar-padding-vertical:calc(var(--ifm-spacing-vertical)*0.5);--ifm-navbar-shadow:var(--ifm-global-shadow-lw);--ifm-navbar-search-input-background-color:var(--ifm-color-emphasis-200);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-800);--ifm-navbar-search-input-placeholder-color:var(--ifm-color-emphasis-500);--ifm-navbar-search-input-icon:url('data:image/svg+xml;utf8,');--ifm-navbar-sidebar-width:83vw;--ifm-pagination-border-radius:var(--ifm-global-radius);--ifm-pagination-color-active:var(--ifm-color-primary);--ifm-pagination-font-size:1rem;--ifm-pagination-item-active-background:var(--ifm-hover-overlay);--ifm-pagination-page-spacing:0.2em;--ifm-pagination-padding-horizontal:calc(var(--ifm-spacing-horizontal)*1);--ifm-pagination-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-pagination-nav-border-radius:var(--ifm-global-radius);--ifm-pagination-nav-color-hover:var(--ifm-color-primary);--ifm-pills-color-active:var(--ifm-color-primary);--ifm-pills-color-background-active:var(--ifm-hover-overlay);--ifm-pills-spacing:0.125rem;--ifm-tabs-color:var(--ifm-font-color-secondary);--ifm-tabs-color-active:var(--ifm-color-primary);--ifm-tabs-color-active-border:var(--ifm-tabs-color-active);--ifm-tabs-padding-horizontal:1rem;--ifm-tabs-padding-vertical:1rem;--docusaurus-progress-bar-color:var(--ifm-color-primary);--ifm-color-primary:#2e8555;--ifm-color-primary-dark:#29784c;--ifm-color-primary-darker:#277148;--ifm-color-primary-darkest:#205d3b;--ifm-color-primary-light:#33925d;--ifm-color-primary-lighter:#359962;--ifm-color-primary-lightest:#3cad6e;--ifm-code-font-size:95%;--docusaurus-announcement-bar-height:auto;--docusaurus-tag-list-border:var(--ifm-color-emphasis-300);--docusaurus-collapse-button-bg:#0000;--docusaurus-collapse-button-bg-hover:#0000001a;--doc-sidebar-width:300px;--doc-sidebar-hidden-width:30px}.badge--danger,.badge--info,.badge--primary,.badge--secondary,.badge--success,.badge--warning{--ifm-badge-border-color:var(--ifm-badge-background-color)}.button--link,.button--outline{--ifm-button-background-color:#0000}*,.algolia-autocomplete .ds-dropdown-menu *{box-sizing:border-box}html{-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;text-size-adjust:100%;background-color:var(--ifm-background-color);color:var(--ifm-font-color-base);color-scheme:var(--ifm-color-scheme);font:var(--ifm-font-size-base)/var(--ifm-line-height-base) var(--ifm-font-family-base);text-rendering:optimizelegibility}iframe{border:0;color-scheme:auto}.container{margin:0 auto;max-width:var(--ifm-container-width)}.container--fluid{max-width:inherit}.row{display:flex;flex-wrap:wrap;margin:0 calc(var(--ifm-spacing-horizontal)*-1)}.list_eTzJ article:last-child,.margin-bottom--none,.margin-vert--none,.markdown>:last-child{margin-bottom:0!important}.margin-top--none,.margin-vert--none,.tabItem_LNqP{margin-top:0!important}.row--no-gutters{margin-left:0;margin-right:0}.margin-horiz--none,.margin-right--none{margin-right:0!important}.row--no-gutters>.col{padding-left:0;padding-right:0}.row--align-top{align-items:flex-start}.row--align-bottom{align-items:flex-end}.menuExternalLink_NmtK,.row--align-center{align-items:center}.row--align-stretch{align-items:stretch}.row--align-baseline{align-items:baseline}.col{--ifm-col-width:100%;flex:1 0;margin-left:0;max-width:var(--ifm-col-width)}.padding-bottom--none,.padding-vert--none{padding-bottom:0!important}.padding-top--none,.padding-vert--none{padding-top:0!important}.padding-horiz--none,.padding-left--none{padding-left:0!important}.padding-horiz--none,.padding-right--none{padding-right:0!important}.col[class*=col--]{flex:0 0 var(--ifm-col-width)}.col--1{--ifm-col-width:8.33333%}.col--offset-1{margin-left:8.33333%}.col--2{--ifm-col-width:16.66667%}.col--offset-2{margin-left:16.66667%}.col--3{--ifm-col-width:25%}.col--offset-3{margin-left:25%}.col--4{--ifm-col-width:33.33333%}.col--offset-4{margin-left:33.33333%}.col--5{--ifm-col-width:41.66667%}.col--offset-5{margin-left:41.66667%}.col--6{--ifm-col-width:50%}.col--offset-6{margin-left:50%}.col--7{--ifm-col-width:58.33333%}.col--offset-7{margin-left:58.33333%}.col--8{--ifm-col-width:66.66667%}.col--offset-8{margin-left:66.66667%}.col--9{--ifm-col-width:75%}.col--offset-9{margin-left:75%}.col--10{--ifm-col-width:83.33333%}.col--offset-10{margin-left:83.33333%}.col--11{--ifm-col-width:91.66667%}.col--offset-11{margin-left:91.66667%}.col--12{--ifm-col-width:100%}.col--offset-12{margin-left:100%}.margin-horiz--none,.margin-left--none{margin-left:0!important}.margin--none{margin:0!important}.margin-bottom--xs,.margin-vert--xs{margin-bottom:.25rem!important}.margin-top--xs,.margin-vert--xs{margin-top:.25rem!important}.margin-horiz--xs,.margin-left--xs{margin-left:.25rem!important}.margin-horiz--xs,.margin-right--xs{margin-right:.25rem!important}.margin--xs{margin:.25rem!important}.margin-bottom--sm,.margin-vert--sm{margin-bottom:.5rem!important}.margin-top--sm,.margin-vert--sm{margin-top:.5rem!important}.margin-horiz--sm,.margin-left--sm{margin-left:.5rem!important}.margin-horiz--sm,.margin-right--sm{margin-right:.5rem!important}.margin--sm{margin:.5rem!important}.margin-bottom--md,.margin-vert--md{margin-bottom:1rem!important}.margin-top--md,.margin-vert--md{margin-top:1rem!important}.margin-horiz--md,.margin-left--md{margin-left:1rem!important}.margin-horiz--md,.margin-right--md{margin-right:1rem!important}.margin--md{margin:1rem!important}.margin-bottom--lg,.margin-vert--lg{margin-bottom:2rem!important}.margin-top--lg,.margin-vert--lg{margin-top:2rem!important}.margin-horiz--lg,.margin-left--lg{margin-left:2rem!important}.margin-horiz--lg,.margin-right--lg{margin-right:2rem!important}.margin--lg{margin:2rem!important}.margin-bottom--xl,.margin-vert--xl{margin-bottom:5rem!important}.margin-top--xl,.margin-vert--xl{margin-top:5rem!important}.margin-horiz--xl,.margin-left--xl{margin-left:5rem!important}.margin-horiz--xl,.margin-right--xl{margin-right:5rem!important}.margin--xl{margin:5rem!important}.padding--none{padding:0!important}.padding-bottom--xs,.padding-vert--xs{padding-bottom:.25rem!important}.padding-top--xs,.padding-vert--xs{padding-top:.25rem!important}.padding-horiz--xs,.padding-left--xs{padding-left:.25rem!important}.padding-horiz--xs,.padding-right--xs{padding-right:.25rem!important}.padding--xs{padding:.25rem!important}.padding-bottom--sm,.padding-vert--sm{padding-bottom:.5rem!important}.padding-top--sm,.padding-vert--sm{padding-top:.5rem!important}.padding-horiz--sm,.padding-left--sm{padding-left:.5rem!important}.padding-horiz--sm,.padding-right--sm{padding-right:.5rem!important}.padding--sm{padding:.5rem!important}.padding-bottom--md,.padding-vert--md{padding-bottom:1rem!important}.padding-top--md,.padding-vert--md{padding-top:1rem!important}.padding-horiz--md,.padding-left--md{padding-left:1rem!important}.padding-horiz--md,.padding-right--md{padding-right:1rem!important}.padding--md{padding:1rem!important}.padding-bottom--lg,.padding-vert--lg{padding-bottom:2rem!important}.padding-top--lg,.padding-vert--lg{padding-top:2rem!important}.padding-horiz--lg,.padding-left--lg{padding-left:2rem!important}.padding-horiz--lg,.padding-right--lg{padding-right:2rem!important}.padding--lg{padding:2rem!important}.padding-bottom--xl,.padding-vert--xl{padding-bottom:5rem!important}.padding-top--xl,.padding-vert--xl{padding-top:5rem!important}.padding-horiz--xl,.padding-left--xl{padding-left:5rem!important}.padding-horiz--xl,.padding-right--xl{padding-right:5rem!important}.padding--xl{padding:5rem!important}code{background-color:var(--ifm-code-background);border:.1rem solid #0000001a;border-radius:var(--ifm-code-border-radius);font-family:var(--ifm-font-family-monospace);font-size:var(--ifm-code-font-size);padding:var(--ifm-code-padding-vertical) var(--ifm-code-padding-horizontal)}a code{color:inherit}pre{background-color:var(--ifm-pre-background);border-radius:var(--ifm-pre-border-radius);color:var(--ifm-pre-color);font:var(--ifm-code-font-size)/var(--ifm-pre-line-height) var(--ifm-font-family-monospace);padding:var(--ifm-pre-padding)}pre code{background-color:initial;border:none;font-size:100%;line-height:inherit;padding:0}kbd{background-color:var(--ifm-color-emphasis-0);border:1px solid var(--ifm-color-emphasis-400);border-radius:.2rem;box-shadow:inset 0 -1px 0 var(--ifm-color-emphasis-400);color:var(--ifm-color-emphasis-800);font:80% var(--ifm-font-family-monospace);padding:.15rem .3rem}h1,h2,h3,h4,h5,h6{color:var(--ifm-heading-color);font-family:var(--ifm-heading-font-family);font-weight:var(--ifm-heading-font-weight);line-height:var(--ifm-heading-line-height);margin:var(--ifm-heading-margin-top) 0 var(--ifm-heading-margin-bottom) 0}h1{font-size:var(--ifm-h1-font-size)}h2{font-size:var(--ifm-h2-font-size)}h3{font-size:var(--ifm-h3-font-size)}h4{font-size:var(--ifm-h4-font-size)}h5{font-size:var(--ifm-h5-font-size)}h6{font-size:var(--ifm-h6-font-size)}img{max-width:100%}img[align=right]{padding-left:var(--image-alignment-padding)}img[align=left]{padding-right:var(--image-alignment-padding)}.markdown{--ifm-h1-vertical-rhythm-top:3;--ifm-h2-vertical-rhythm-top:2;--ifm-h3-vertical-rhythm-top:1.5;--ifm-heading-vertical-rhythm-top:1.25;--ifm-h1-vertical-rhythm-bottom:1.25;--ifm-heading-vertical-rhythm-bottom:1}.markdown:after,.markdown:before{content:"";display:table}.markdown:after{clear:both}.markdown h1:first-child{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-h1-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown>h2{--ifm-h2-font-size:2rem;margin-top:calc(var(--ifm-h2-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h3{--ifm-h3-font-size:1.5rem;margin-top:calc(var(--ifm-h3-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h4,.markdown>h5,.markdown>h6{margin-top:calc(var(--ifm-heading-vertical-rhythm-top)*var(--ifm-leading))}.markdown>p,.markdown>pre,.markdown>ul,.tabList__CuJ{margin-bottom:var(--ifm-leading)}.markdown li>p{margin-top:var(--ifm-list-paragraph-margin)}.markdown li+li{margin-top:var(--ifm-list-item-margin)}ol,ul{margin:0 0 var(--ifm-list-margin);padding-left:var(--ifm-list-left-padding)}ol ol,ul ol{list-style-type:lower-roman}ol ol ol,ol ul ol,ul ol ol,ul ul ol{list-style-type:lower-alpha}table{border-collapse:collapse;display:block;margin-bottom:var(--ifm-spacing-vertical)}table thead tr{border-bottom:2px solid var(--ifm-table-border-color)}table thead,table tr:nth-child(2n){background-color:var(--ifm-table-stripe-background)}table tr{background-color:var(--ifm-table-background);border-top:var(--ifm-table-border-width) solid var(--ifm-table-border-color)}table td,table th{border:var(--ifm-table-border-width) solid var(--ifm-table-border-color);padding:var(--ifm-table-cell-padding)}table th{background-color:var(--ifm-table-head-background);color:var(--ifm-table-head-color);font-weight:var(--ifm-table-head-font-weight)}table td{color:var(--ifm-table-cell-color)}strong{font-weight:var(--ifm-font-weight-bold)}a{color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}a:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button:hover,.text--no-decoration,.text--no-decoration:hover,a:not([href]){text-decoration:none}p{margin:0 0 var(--ifm-paragraph-margin-bottom)}blockquote{border-left:var(--ifm-blockquote-border-left-width) solid var(--ifm-blockquote-border-color);box-shadow:var(--ifm-blockquote-shadow);color:var(--ifm-blockquote-color);font-size:var(--ifm-blockquote-font-size);padding:var(--ifm-blockquote-padding-vertical) var(--ifm-blockquote-padding-horizontal)}blockquote>:first-child{margin-top:0}blockquote>:last-child{margin-bottom:0}hr{background-color:var(--ifm-hr-background-color);border:0;height:var(--ifm-hr-height);margin:var(--ifm-hr-margin-vertical) 0}.shadow--lw{box-shadow:var(--ifm-global-shadow-lw)!important}.shadow--md{box-shadow:var(--ifm-global-shadow-md)!important}.shadow--tl{box-shadow:var(--ifm-global-shadow-tl)!important}.text--primary,.wordWrapButtonEnabled_EoeP .wordWrapButtonIcon_Bwma{color:var(--ifm-color-primary)}.text--secondary{color:var(--ifm-color-secondary)}.text--success{color:var(--ifm-color-success)}.text--info{color:var(--ifm-color-info)}.text--warning{color:var(--ifm-color-warning)}.text--danger{color:var(--ifm-color-danger)}.text--center{text-align:center}.text--left{text-align:left}.text--justify{text-align:justify}.text--right{text-align:right}.text--capitalize{text-transform:capitalize}.text--lowercase{text-transform:lowercase}.admonitionHeading_tbUL,.alert__heading,.text--uppercase{text-transform:uppercase}.text--light{font-weight:var(--ifm-font-weight-light)}.text--normal{font-weight:var(--ifm-font-weight-normal)}.text--semibold{font-weight:var(--ifm-font-weight-semibold)}.text--bold{font-weight:var(--ifm-font-weight-bold)}.text--italic{font-style:italic}.text--truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text--break{word-wrap:break-word!important;word-break:break-word!important}.clean-btn{background:none;border:none;color:inherit;cursor:pointer;font-family:inherit;padding:0}.alert,.alert .close{color:var(--ifm-alert-foreground-color)}.clean-list{padding-left:0}.alert--primary{--ifm-alert-background-color:var(--ifm-color-primary-contrast-background);--ifm-alert-background-color-highlight:#3578e526;--ifm-alert-foreground-color:var(--ifm-color-primary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-primary-dark)}.alert--secondary{--ifm-alert-background-color:var(--ifm-color-secondary-contrast-background);--ifm-alert-background-color-highlight:#ebedf026;--ifm-alert-foreground-color:var(--ifm-color-secondary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-secondary-dark)}.alert--success{--ifm-alert-background-color:var(--ifm-color-success-contrast-background);--ifm-alert-background-color-highlight:#00a40026;--ifm-alert-foreground-color:var(--ifm-color-success-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-success-dark)}.alert--info{--ifm-alert-background-color:var(--ifm-color-info-contrast-background);--ifm-alert-background-color-highlight:#54c7ec26;--ifm-alert-foreground-color:var(--ifm-color-info-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-info-dark)}.alert--warning{--ifm-alert-background-color:var(--ifm-color-warning-contrast-background);--ifm-alert-background-color-highlight:#ffba0026;--ifm-alert-foreground-color:var(--ifm-color-warning-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-warning-dark)}.alert--danger{--ifm-alert-background-color:var(--ifm-color-danger-contrast-background);--ifm-alert-background-color-highlight:#fa383e26;--ifm-alert-foreground-color:var(--ifm-color-danger-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-danger-dark)}.alert{--ifm-code-background:var(--ifm-alert-background-color-highlight);--ifm-link-color:var(--ifm-alert-foreground-color);--ifm-link-hover-color:var(--ifm-alert-foreground-color);--ifm-link-decoration:underline;--ifm-tabs-color:var(--ifm-alert-foreground-color);--ifm-tabs-color-active:var(--ifm-alert-foreground-color);--ifm-tabs-color-active-border:var(--ifm-alert-border-color);background-color:var(--ifm-alert-background-color);border:var(--ifm-alert-border-width) solid var(--ifm-alert-border-color);border-left-width:var(--ifm-alert-border-left-width);border-radius:var(--ifm-alert-border-radius);box-shadow:var(--ifm-alert-shadow);padding:var(--ifm-alert-padding-vertical) var(--ifm-alert-padding-horizontal)}.alert__heading{align-items:center;display:flex;font:700 var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);margin-bottom:.5rem}.alert__icon{display:inline-flex;margin-right:.4em}.alert__icon svg{fill:var(--ifm-alert-foreground-color);stroke:var(--ifm-alert-foreground-color);stroke-width:0}.alert .close{margin:calc(var(--ifm-alert-padding-vertical)*-1) calc(var(--ifm-alert-padding-horizontal)*-1) 0 0;opacity:.75}.alert .close:focus,.alert .close:hover{opacity:1}.alert a{text-decoration-color:var(--ifm-alert-border-color)}.alert a:hover{text-decoration-thickness:2px}.avatar{column-gap:var(--ifm-avatar-intro-margin);display:flex}.avatar__photo{border-radius:50%;display:block;height:var(--ifm-avatar-photo-size);overflow:hidden;width:var(--ifm-avatar-photo-size)}.card--full-height,.navbar__logo img,body,html{height:100%}.avatar__photo--sm{--ifm-avatar-photo-size:2rem}.avatar__photo--lg{--ifm-avatar-photo-size:4rem}.avatar__photo--xl{--ifm-avatar-photo-size:6rem}.avatar__intro{display:flex;flex:1 1;flex-direction:column;justify-content:center;text-align:var(--ifm-avatar-intro-alignment)}.badge,.breadcrumbs__item,.breadcrumbs__link,.button,.dropdown>.navbar__link:after{display:inline-block}.avatar__name{font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base)}.avatar__subtitle{margin-top:.25rem}.avatar--vertical{--ifm-avatar-intro-alignment:center;--ifm-avatar-intro-margin:0.5rem;align-items:center;flex-direction:column}.badge{background-color:var(--ifm-badge-background-color);border:var(--ifm-badge-border-width) solid var(--ifm-badge-border-color);border-radius:var(--ifm-badge-border-radius);color:var(--ifm-badge-color);font-size:75%;font-weight:var(--ifm-font-weight-bold);line-height:1;padding:var(--ifm-badge-padding-vertical) var(--ifm-badge-padding-horizontal)}.badge--primary{--ifm-badge-background-color:var(--ifm-color-primary)}.badge--secondary{--ifm-badge-background-color:var(--ifm-color-secondary);color:var(--ifm-color-black)}.breadcrumbs__link,.button.button--secondary.button--outline:not(.button--active):not(:hover){color:var(--ifm-font-color-base)}.badge--success{--ifm-badge-background-color:var(--ifm-color-success)}.badge--info{--ifm-badge-background-color:var(--ifm-color-info)}.badge--warning{--ifm-badge-background-color:var(--ifm-color-warning)}.badge--danger{--ifm-badge-background-color:var(--ifm-color-danger)}.breadcrumbs{margin-bottom:0;padding-left:0}.breadcrumbs__item:not(:last-child):after{background:var(--ifm-breadcrumb-separator) center;content:" ";display:inline-block;filter:var(--ifm-breadcrumb-separator-filter);height:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier));margin:0 var(--ifm-breadcrumb-spacing);opacity:.5;width:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier))}.breadcrumbs__item--active .breadcrumbs__link{background:var(--ifm-breadcrumb-item-background-active);color:var(--ifm-breadcrumb-color-active)}.breadcrumbs__link{border-radius:var(--ifm-breadcrumb-border-radius);font-size:calc(1rem*var(--ifm-breadcrumb-size-multiplier));padding:calc(var(--ifm-breadcrumb-padding-vertical)*var(--ifm-breadcrumb-size-multiplier)) calc(var(--ifm-breadcrumb-padding-horizontal)*var(--ifm-breadcrumb-size-multiplier));transition-duration:var(--ifm-transition-fast);transition-property:background,color}.breadcrumbs__link:any-link:hover,.breadcrumbs__link:link:hover,.breadcrumbs__link:visited:hover,area[href].breadcrumbs__link:hover{background:var(--ifm-breadcrumb-item-background-active);text-decoration:none}.breadcrumbs--sm{--ifm-breadcrumb-size-multiplier:0.8}.breadcrumbs--lg{--ifm-breadcrumb-size-multiplier:1.2}.button{background-color:var(--ifm-button-background-color);border:var(--ifm-button-border-width) solid var(--ifm-button-border-color);border-radius:var(--ifm-button-border-radius);cursor:pointer;font-size:calc(.875rem*var(--ifm-button-size-multiplier));font-weight:var(--ifm-button-font-weight);line-height:1.5;padding:calc(var(--ifm-button-padding-vertical)*var(--ifm-button-size-multiplier)) calc(var(--ifm-button-padding-horizontal)*var(--ifm-button-size-multiplier));text-align:center;transition-duration:var(--ifm-button-transition-duration);transition-property:color,background,border-color;-webkit-user-select:none;user-select:none;white-space:nowrap}.button,.button:hover{color:var(--ifm-button-color)}.button--outline{--ifm-button-color:var(--ifm-button-border-color)}.button--outline:hover{--ifm-button-background-color:var(--ifm-button-border-color)}.button--link{--ifm-button-border-color:#0000;color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}.button--link.button--active,.button--link:active,.button--link:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button.disabled,.button:disabled,.button[disabled]{opacity:.65;pointer-events:none}.button--sm{--ifm-button-size-multiplier:0.8}.button--lg{--ifm-button-size-multiplier:1.35}.button--block{display:block;width:100%}.button.button--secondary{color:var(--ifm-color-gray-900)}:where(.button--primary){--ifm-button-background-color:var(--ifm-color-primary);--ifm-button-border-color:var(--ifm-color-primary)}:where(.button--primary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-primary-dark);--ifm-button-border-color:var(--ifm-color-primary-dark)}.button--primary.button--active,.button--primary:active{--ifm-button-background-color:var(--ifm-color-primary-darker);--ifm-button-border-color:var(--ifm-color-primary-darker)}:where(.button--secondary){--ifm-button-background-color:var(--ifm-color-secondary);--ifm-button-border-color:var(--ifm-color-secondary)}:where(.button--secondary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-secondary-dark);--ifm-button-border-color:var(--ifm-color-secondary-dark)}.button--secondary.button--active,.button--secondary:active{--ifm-button-background-color:var(--ifm-color-secondary-darker);--ifm-button-border-color:var(--ifm-color-secondary-darker)}:where(.button--success){--ifm-button-background-color:var(--ifm-color-success);--ifm-button-border-color:var(--ifm-color-success)}:where(.button--success):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-success-dark);--ifm-button-border-color:var(--ifm-color-success-dark)}.button--success.button--active,.button--success:active{--ifm-button-background-color:var(--ifm-color-success-darker);--ifm-button-border-color:var(--ifm-color-success-darker)}:where(.button--info){--ifm-button-background-color:var(--ifm-color-info);--ifm-button-border-color:var(--ifm-color-info)}:where(.button--info):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-info-dark);--ifm-button-border-color:var(--ifm-color-info-dark)}.button--info.button--active,.button--info:active{--ifm-button-background-color:var(--ifm-color-info-darker);--ifm-button-border-color:var(--ifm-color-info-darker)}:where(.button--warning){--ifm-button-background-color:var(--ifm-color-warning);--ifm-button-border-color:var(--ifm-color-warning)}:where(.button--warning):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-warning-dark);--ifm-button-border-color:var(--ifm-color-warning-dark)}.button--warning.button--active,.button--warning:active{--ifm-button-background-color:var(--ifm-color-warning-darker);--ifm-button-border-color:var(--ifm-color-warning-darker)}:where(.button--danger){--ifm-button-background-color:var(--ifm-color-danger);--ifm-button-border-color:var(--ifm-color-danger)}:where(.button--danger):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-danger-dark);--ifm-button-border-color:var(--ifm-color-danger-dark)}.button--danger.button--active,.button--danger:active{--ifm-button-background-color:var(--ifm-color-danger-darker);--ifm-button-border-color:var(--ifm-color-danger-darker)}.button-group{display:inline-flex;gap:var(--ifm-button-group-spacing)}.button-group>.button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.button-group>.button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.button-group--block{display:flex;justify-content:stretch}.button-group--block>.button{flex-grow:1}.card{background-color:var(--ifm-card-background-color);border-radius:var(--ifm-card-border-radius);box-shadow:var(--ifm-global-shadow-lw);display:flex;flex-direction:column;overflow:hidden}.card__image{padding-top:var(--ifm-card-vertical-spacing)}.card__image:first-child{padding-top:0}.card__body,.card__footer,.card__header{padding:var(--ifm-card-vertical-spacing) var(--ifm-card-horizontal-spacing)}.card__body:not(:last-child),.card__footer:not(:last-child),.card__header:not(:last-child){padding-bottom:0}.card__body>:last-child,.card__footer>:last-child,.card__header>:last-child{margin-bottom:0}.card__footer{margin-top:auto}.table-of-contents{font-size:.8rem;margin-bottom:0;padding:var(--ifm-toc-padding-vertical) 0}.table-of-contents,.table-of-contents ul{list-style:none;padding-left:var(--ifm-toc-padding-horizontal)}.table-of-contents li{margin:var(--ifm-toc-padding-vertical) var(--ifm-toc-padding-horizontal)}.table-of-contents__left-border{border-left:1px solid var(--ifm-toc-border-color)}.table-of-contents__link{color:var(--ifm-toc-link-color);display:block}.table-of-contents__link--active,.table-of-contents__link--active code,.table-of-contents__link:hover,.table-of-contents__link:hover code{color:var(--ifm-color-primary);text-decoration:none}.close{color:var(--ifm-color-black);float:right;font-size:1.5rem;font-weight:var(--ifm-font-weight-bold);line-height:1;opacity:.5;padding:1rem;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.close:hover{opacity:.7}.close:focus,.theme-code-block-highlighted-line .codeLineNumber_Tfdd:before{opacity:.8}.dropdown{display:inline-flex;font-weight:var(--ifm-dropdown-font-weight);position:relative;vertical-align:top}.dropdown--hoverable:hover .dropdown__menu,.dropdown--show .dropdown__menu{opacity:1;pointer-events:all;transform:translateY(-1px);visibility:visible}#nprogress,.dropdown__menu,.navbar__item.dropdown .navbar__link:not([href]){pointer-events:none}.dropdown--right .dropdown__menu{left:inherit;right:0}.dropdown--nocaret .navbar__link:after{content:none!important}.dropdown__menu{background-color:var(--ifm-dropdown-background-color);border-radius:var(--ifm-global-radius);box-shadow:var(--ifm-global-shadow-md);left:0;max-height:80vh;min-width:10rem;opacity:0;overflow-y:auto;padding:.5rem;position:absolute;top:calc(100% - var(--ifm-navbar-item-padding-vertical) + .3rem);transform:translateY(-.625rem);transition-duration:var(--ifm-transition-fast);transition-property:opacity,transform,visibility;transition-timing-function:var(--ifm-transition-timing-default);visibility:hidden;z-index:var(--ifm-z-index-dropdown)}.menu__caret,.menu__link,.menu__list-item-collapsible{border-radius:.25rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.dropdown__link{border-radius:.25rem;color:var(--ifm-dropdown-link-color);display:block;font-size:.875rem;margin-top:.2rem;padding:.25rem .5rem;white-space:nowrap}.dropdown__link--active,.dropdown__link:hover{background-color:var(--ifm-dropdown-hover-background-color);color:var(--ifm-dropdown-link-color);text-decoration:none}.dropdown__link--active,.dropdown__link--active:hover{--ifm-dropdown-link-color:var(--ifm-link-color)}.dropdown>.navbar__link:after{border-color:currentcolor #0000;border-style:solid;border-width:.4em .4em 0;content:"";margin-left:.3em;position:relative;top:2px;transform:translateY(-50%)}.footer{background-color:var(--ifm-footer-background-color);color:var(--ifm-footer-color);padding:var(--ifm-footer-padding-vertical) var(--ifm-footer-padding-horizontal)}.footer--dark{--ifm-footer-background-color:#303846;--ifm-footer-color:var(--ifm-footer-link-color);--ifm-footer-link-color:var(--ifm-color-secondary);--ifm-footer-title-color:var(--ifm-color-white)}.footer__links{margin-bottom:1rem}.footer__link-item{color:var(--ifm-footer-link-color);line-height:2}.footer__link-item:hover{color:var(--ifm-footer-link-hover-color)}.footer__link-separator{margin:0 var(--ifm-footer-link-horizontal-spacing)}.footer__logo{margin-top:1rem;max-width:var(--ifm-footer-logo-max-width)}.footer__title{color:var(--ifm-footer-title-color);font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base);margin-bottom:var(--ifm-heading-margin-bottom)}.menu,.navbar__link{font-weight:var(--ifm-font-weight-semibold)}.docItemContainer_Djhp article>:first-child,.docItemContainer_Djhp header+*,.footer__item{margin-top:0}.admonitionContent_S0QG>:last-child,.cardContainer_fWXF :last-child,.collapsibleContent_i85q>:last-child,.footer__items,.tabItem_Ymn6>:last-child{margin-bottom:0}.codeBlockStandalone_MEMb,[type=checkbox]{padding:0}.hero{align-items:center;background-color:var(--ifm-hero-background-color);color:var(--ifm-hero-text-color);display:flex;padding:4rem 2rem}.hero--primary{--ifm-hero-background-color:var(--ifm-color-primary);--ifm-hero-text-color:var(--ifm-font-color-base-inverse)}.hero--dark{--ifm-hero-background-color:#303846;--ifm-hero-text-color:var(--ifm-color-white)}.hero__title{font-size:3rem}.hero__subtitle{font-size:1.5rem}.menu__list{margin:0;padding-left:0}.menu__caret,.menu__link{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu__list .menu__list{flex:0 0 100%;margin-top:.25rem;padding-left:var(--ifm-menu-link-padding-horizontal)}.menu__list-item:not(:first-child){margin-top:.25rem}.menu__list-item--collapsed .menu__list{height:0;overflow:hidden}.details_lb9f[data-collapsed=false].isBrowser_bmU9>summary:before,.details_lb9f[open]:not(.isBrowser_bmU9)>summary:before,.menu__list-item--collapsed .menu__caret:before,.menu__list-item--collapsed .menu__link--sublist:after{transform:rotate(90deg)}.menu__list-item-collapsible{display:flex;flex-wrap:wrap;position:relative}.menu__caret:hover,.menu__link:hover,.menu__list-item-collapsible--active,.menu__list-item-collapsible:hover{background:var(--ifm-menu-color-background-hover)}.menu__list-item-collapsible .menu__link--active,.menu__list-item-collapsible .menu__link:hover{background:none!important}.menu__caret,.menu__link{align-items:center;display:flex}.menu__link{color:var(--ifm-menu-color);flex:1;line-height:1.25}.menu__link:hover{color:var(--ifm-menu-color);text-decoration:none}.menu__caret:before,.menu__link--sublist-caret:after{height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast) linear;width:1.25rem;content:"";filter:var(--ifm-menu-link-sublist-icon-filter)}.menu__link--sublist-caret:after{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem;margin-left:auto;min-width:1.25rem}.menu__link--active,.menu__link--active:hover{color:var(--ifm-menu-color-active)}.navbar__brand,.navbar__link{color:var(--ifm-navbar-link-color)}.menu__link--active:not(.menu__link--sublist){background-color:var(--ifm-menu-color-background-active)}.menu__caret:before{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem}.navbar--dark,html[data-theme=dark]{--ifm-menu-link-sublist-icon-filter:invert(100%) sepia(94%) saturate(17%) hue-rotate(223deg) brightness(104%) contrast(98%)}.navbar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-navbar-shadow);height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar,.navbar>.container,.navbar>.container-fluid{display:flex}.navbar--fixed-top{position:sticky;top:0;z-index:var(--ifm-z-index-fixed)}.navbar-sidebar,.navbar-sidebar__backdrop{bottom:0;opacity:0;position:fixed;transition-duration:var(--ifm-transition-fast);transition-timing-function:ease-in-out;left:0;top:0;visibility:hidden}.navbar__inner{display:flex;flex-wrap:wrap;justify-content:space-between;width:100%}.navbar__brand{align-items:center;display:flex;margin-right:1rem;min-width:0}.navbar__brand:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.announcementBarContent_xLdY,.navbar__title{flex:1 1 auto}.navbar__toggle{display:none;margin-right:.5rem}.navbar__logo{flex:0 0 auto;height:2rem;margin-right:.5rem}.navbar__items{align-items:center;display:flex;flex:1;min-width:0}.navbar__items--center{flex:0 0 auto}.navbar__items--center .navbar__brand{margin:0}.navbar__items--center+.navbar__items--right{flex:1}.navbar__items--right{flex:0 0 auto;justify-content:flex-end}.navbar__items--right>:last-child{padding-right:0}.navbar__item{display:inline-block;padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.navbar__link--active,.navbar__link:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.navbar--dark,.navbar--primary{--ifm-menu-color:var(--ifm-color-gray-300);--ifm-navbar-link-color:var(--ifm-color-gray-100);--ifm-navbar-search-input-background-color:#ffffff1a;--ifm-navbar-search-input-placeholder-color:#ffffff80;color:var(--ifm-color-white)}.navbar--dark{--ifm-navbar-background-color:#242526;--ifm-menu-color-background-active:#ffffff0d;--ifm-navbar-search-input-color:var(--ifm-color-white)}.navbar--primary{--ifm-navbar-background-color:var(--ifm-color-primary);--ifm-navbar-link-hover-color:var(--ifm-color-white);--ifm-menu-color-active:var(--ifm-color-white);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-500)}.navbar__search-input{-webkit-appearance:none;appearance:none;background:var(--ifm-navbar-search-input-background-color) var(--ifm-navbar-search-input-icon) no-repeat .75rem center/1rem 1rem;border:none;border-radius:2rem;color:var(--ifm-navbar-search-input-color);cursor:text;display:inline-block;font-size:.9rem;height:2rem;padding:0 .5rem 0 2.25rem;width:12.5rem}.navbar__search-input::placeholder{color:var(--ifm-navbar-search-input-placeholder-color)}.navbar-sidebar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-global-shadow-md);transform:translate3d(-100%,0,0);transition-property:opacity,visibility,transform;width:var(--ifm-navbar-sidebar-width)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar__items{transform:translateZ(0)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar--show .navbar-sidebar__backdrop{opacity:1;visibility:visible}.navbar-sidebar__backdrop{background-color:#0009;right:0;transition-property:opacity,visibility}.navbar-sidebar__brand{align-items:center;box-shadow:var(--ifm-navbar-shadow);display:flex;flex:1;height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar-sidebar__items{display:flex;height:calc(100% - var(--ifm-navbar-height));transition:transform var(--ifm-transition-fast) ease-in-out}.navbar-sidebar__items--show-secondary{transform:translate3d(calc((var(--ifm-navbar-sidebar-width))*-1),0,0)}.navbar-sidebar__item{flex-shrink:0;padding:.5rem;width:calc(var(--ifm-navbar-sidebar-width))}.navbar-sidebar__back{background:var(--ifm-menu-color-background-active);font-size:15px;font-weight:var(--ifm-button-font-weight);margin:0 0 .2rem -.5rem;padding:.6rem 1.5rem;position:relative;text-align:left;top:-.5rem;width:calc(100% + 1rem)}.navbar-sidebar__close{display:flex;margin-left:auto}.pagination{column-gap:var(--ifm-pagination-page-spacing);display:flex;font-size:var(--ifm-pagination-font-size);padding-left:0}.pagination--sm{--ifm-pagination-font-size:0.8rem;--ifm-pagination-padding-horizontal:0.8rem;--ifm-pagination-padding-vertical:0.2rem}.pagination--lg{--ifm-pagination-font-size:1.2rem;--ifm-pagination-padding-horizontal:1.2rem;--ifm-pagination-padding-vertical:0.3rem}.pagination__item{display:inline-flex}.pagination__item>span{padding:var(--ifm-pagination-padding-vertical)}.pagination__item--active .pagination__link{color:var(--ifm-pagination-color-active)}.pagination__item--active .pagination__link,.pagination__item:not(.pagination__item--active):hover .pagination__link{background:var(--ifm-pagination-item-active-background)}.pagination__item--disabled,.pagination__item[disabled]{opacity:.25;pointer-events:none}.pagination__link{border-radius:var(--ifm-pagination-border-radius);color:var(--ifm-font-color-base);display:inline-block;padding:var(--ifm-pagination-padding-vertical) var(--ifm-pagination-padding-horizontal);transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination__link:hover{text-decoration:none}.pagination-nav{grid-gap:var(--ifm-spacing-horizontal);display:grid;gap:var(--ifm-spacing-horizontal);grid-template-columns:repeat(2,1fr)}.pagination-nav__link{border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-pagination-nav-border-radius);display:block;height:100%;line-height:var(--ifm-heading-line-height);padding:var(--ifm-global-spacing);transition:border-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination-nav__link:hover{border-color:var(--ifm-pagination-nav-color-hover);text-decoration:none}.pagination-nav__link--next{grid-column:2/3;text-align:right}.pagination-nav__label{font-size:var(--ifm-h4-font-size);font-weight:var(--ifm-heading-font-weight);word-break:break-word}.pagination-nav__link--prev .pagination-nav__label:before{content:"« "}.pagination-nav__link--next .pagination-nav__label:after{content:" »"}.pagination-nav__sublabel{color:var(--ifm-color-content-secondary);font-size:var(--ifm-h5-font-size);font-weight:var(--ifm-font-weight-semibold);margin-bottom:.25rem}.pills__item,.tabs{font-weight:var(--ifm-font-weight-bold)}.pills{display:flex;gap:var(--ifm-pills-spacing);padding-left:0}.pills__item{border-radius:.5rem;cursor:pointer;display:inline-block;padding:.25rem 1rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pills__item--active{color:var(--ifm-pills-color-active)}.pills__item--active,.pills__item:not(.pills__item--active):hover{background:var(--ifm-pills-color-background-active)}.pills--block{justify-content:stretch}.pills--block .pills__item{flex-grow:1;text-align:center}.tabs{color:var(--ifm-tabs-color);display:flex;margin-bottom:0;overflow-x:auto;padding-left:0}.tabs__item{border-bottom:3px solid #0000;border-radius:var(--ifm-global-radius);cursor:pointer;display:inline-flex;padding:var(--ifm-tabs-padding-vertical) var(--ifm-tabs-padding-horizontal);transition:background-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs__item--active{border-bottom-color:var(--ifm-tabs-color-active-border);border-bottom-left-radius:0;border-bottom-right-radius:0;color:var(--ifm-tabs-color-active)}.tabs__item:hover{background-color:var(--ifm-hover-overlay)}.tabs--block{justify-content:stretch}.tabs--block .tabs__item{flex-grow:1;justify-content:center}html[data-theme=dark]{--ifm-color-scheme:dark;--ifm-color-emphasis-0:var(--ifm-color-gray-1000);--ifm-color-emphasis-100:var(--ifm-color-gray-900);--ifm-color-emphasis-200:var(--ifm-color-gray-800);--ifm-color-emphasis-300:var(--ifm-color-gray-700);--ifm-color-emphasis-400:var(--ifm-color-gray-600);--ifm-color-emphasis-600:var(--ifm-color-gray-400);--ifm-color-emphasis-700:var(--ifm-color-gray-300);--ifm-color-emphasis-800:var(--ifm-color-gray-200);--ifm-color-emphasis-900:var(--ifm-color-gray-100);--ifm-color-emphasis-1000:var(--ifm-color-gray-0);--ifm-background-color:#1b1b1d;--ifm-background-surface-color:#242526;--ifm-hover-overlay:#ffffff0d;--ifm-color-content:#e3e3e3;--ifm-color-content-secondary:#fff;--ifm-breadcrumb-separator-filter:invert(64%) sepia(11%) saturate(0%) hue-rotate(149deg) brightness(99%) contrast(95%);--ifm-code-background:#ffffff1a;--ifm-scrollbar-track-background-color:#444;--ifm-scrollbar-thumb-background-color:#686868;--ifm-scrollbar-thumb-hover-background-color:#7a7a7a;--ifm-table-stripe-background:#ffffff12;--ifm-toc-border-color:var(--ifm-color-emphasis-200);--ifm-color-primary-contrast-background:#102445;--ifm-color-primary-contrast-foreground:#ebf2fc;--ifm-color-secondary-contrast-background:#474748;--ifm-color-secondary-contrast-foreground:#fdfdfe;--ifm-color-success-contrast-background:#003100;--ifm-color-success-contrast-foreground:#e6f6e6;--ifm-color-info-contrast-background:#193c47;--ifm-color-info-contrast-foreground:#eef9fd;--ifm-color-warning-contrast-background:#4d3800;--ifm-color-warning-contrast-foreground:#fff8e6;--ifm-color-danger-contrast-background:#4b1113;--ifm-color-danger-contrast-foreground:#ffebec;--ifm-color-primary:#25c2a0;--ifm-color-primary-dark:#21af90;--ifm-color-primary-darker:#1fa588;--ifm-color-primary-darkest:#1a8870;--ifm-color-primary-light:#29d5b0;--ifm-color-primary-lighter:#32d8b4;--ifm-color-primary-lightest:#4fddbf}#nprogress .bar{background:var(--docusaurus-progress-bar-color);height:2px;left:0;position:fixed;top:0;width:100%;z-index:1031}#nprogress .peg{box-shadow:0 0 10px var(--docusaurus-progress-bar-color),0 0 5px var(--docusaurus-progress-bar-color);height:100%;opacity:1;position:absolute;right:0;transform:rotate(3deg) translateY(-4px);width:100px}.docusaurus-highlight-code-line{background-color:#0000001a;display:block;margin:0 calc(var(--ifm-pre-padding)*-1);padding:0 var(--ifm-pre-padding)}html[data-theme=dark] .docusaurus-highlight-code-line{background-color:#0000004d}html[data-theme=dark] .navbar__logo img,html[data-theme=dark] img[alt="Middy middleware engine diagram"]{filter:invert(1)}#__docusaurus-base-url-issue-banner-container,.docSidebarContainer_b6E3,.sidebarLogo_isFc,.themedImage_ToTc,[data-theme=dark] .lightToggleIcon_pyhR,[data-theme=light] .darkToggleIcon_wfgR,html[data-announcement-bar-initially-dismissed=true] .announcementBar_mb4j{display:none}.skipToContent_fXgn{background-color:var(--ifm-background-surface-color);color:var(--ifm-color-emphasis-900);left:100%;padding:calc(var(--ifm-global-spacing)/2) var(--ifm-global-spacing);position:fixed;top:1rem;z-index:calc(var(--ifm-z-index-fixed) + 1)}.skipToContent_fXgn:focus{box-shadow:var(--ifm-global-shadow-md);left:1rem}.closeButton_CVFx{line-height:0;padding:0}.content_knG7{font-size:85%;padding:5px 0;text-align:center}.content_knG7 a{color:inherit;text-decoration:underline}.announcementBar_mb4j{align-items:center;background-color:var(--ifm-color-white);border-bottom:1px solid var(--ifm-color-emphasis-100);color:var(--ifm-color-black);display:flex;height:var(--docusaurus-announcement-bar-height)}.announcementBarPlaceholder_vyr4{flex:0 0 10px}.announcementBarClose_gvF7{align-self:stretch;flex:0 0 30px}.toggle_vylO{height:2rem;width:2rem}.toggleButton_gllP{align-items:center;border-radius:50%;display:flex;height:100%;justify-content:center;transition:background var(--ifm-transition-fast);width:100%}.toggleButton_gllP:hover{background:var(--ifm-color-emphasis-200)}.toggleButtonDisabled_aARS{cursor:not-allowed}.darkNavbarColorModeToggle_X3D1:hover{background:var(--ifm-color-gray-800)}[data-theme=dark] .themedImage--dark_i4oU,[data-theme=light] .themedImage--light_HNdA,html:not([data-theme]) .themedComponent--light_NU7w{display:initial}.iconExternalLink_nPIU{margin-left:.3rem}.iconLanguage_nlXk{margin-right:5px;vertical-align:text-bottom}.navbarHideable_m1mJ{transition:transform var(--ifm-transition-fast) ease}.navbarHidden_jGov{transform:translate3d(0,calc(-100% - 2px),0)}.errorBoundaryError_a6uf{color:red;white-space:pre-wrap}.footerLogoLink_BH7S{opacity:.5;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.footerLogoLink_BH7S:hover,.hash-link:focus,:hover>.hash-link{opacity:1}.mainWrapper_z2l0{display:flex;flex:1 0 auto;flex-direction:column}.docusaurus-mt-lg{margin-top:3rem}#__docusaurus{display:flex;flex-direction:column;min-height:100%}.cardContainer_fWXF{--ifm-link-color:var(--ifm-color-emphasis-800);--ifm-link-hover-color:var(--ifm-color-emphasis-700);--ifm-link-hover-decoration:none;border:1px solid var(--ifm-color-emphasis-200);box-shadow:0 1.5px 3px 0 #00000026;transition:all var(--ifm-transition-fast) ease;transition-property:border,box-shadow}.cardContainer_fWXF:hover{border-color:var(--ifm-color-primary);box-shadow:0 3px 6px 0 #0003}.cardTitle_rnsV{font-size:1.2rem}.cardDescription_PWke{font-size:.8rem}.iconEdit_Z9Sw{margin-right:.3em;vertical-align:sub}.tag_zVej{border:1px solid var(--docusaurus-tag-list-border);transition:border var(--ifm-transition-fast)}.tag_zVej:hover{--docusaurus-tag-list-border:var(--ifm-link-color);text-decoration:none}.tagRegular_sFm0{border-radius:var(--ifm-global-radius);font-size:90%;padding:.2rem .5rem .3rem}.tagWithCount_h2kH{align-items:center;border-left:0;display:flex;padding:0 .5rem 0 1rem;position:relative}.tagWithCount_h2kH:after,.tagWithCount_h2kH:before{border:1px solid var(--docusaurus-tag-list-border);content:"";position:absolute;top:50%;transition:inherit}.tagWithCount_h2kH:before{border-bottom:0;border-right:0;height:1.18rem;right:100%;transform:translate(50%,-50%) rotate(-45deg);width:1.18rem}.tagWithCount_h2kH:after{border-radius:50%;height:.5rem;left:0;transform:translateY(-50%);width:.5rem}.tagWithCount_h2kH span{background:var(--ifm-color-secondary);border-radius:var(--ifm-global-radius);color:var(--ifm-color-black);font-size:.7rem;line-height:1.2;margin-left:.3rem;padding:.1rem .4rem}.tags_jXut{display:inline}.tag_QGVx{display:inline-block;margin:0 .4rem .5rem 0}.lastUpdated_vwxv{font-size:smaller;font-style:italic;margin-top:.2rem}.tocCollapsibleButton_TO0P{align-items:center;display:flex;font-size:inherit;justify-content:space-between;padding:.4rem .8rem;width:100%}.tocCollapsibleButton_TO0P:after{background:var(--ifm-menu-link-sublist-icon) 50% 50%/2rem 2rem no-repeat;content:"";filter:var(--ifm-menu-link-sublist-icon-filter);height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast);width:1.25rem}.tocCollapsibleButtonExpanded_MG3E:after,.tocCollapsibleExpanded_sAul{transform:none}.tocCollapsible_ETCw{background-color:var(--ifm-menu-color-background-active);border-radius:var(--ifm-global-radius);margin:1rem 0}.tocCollapsibleContent_vkbj>ul{border-left:none;border-top:1px solid var(--ifm-color-emphasis-300);font-size:15px;padding:.2rem 0}.tocCollapsibleContent_vkbj ul li{margin:.4rem .8rem}.tocCollapsibleContent_vkbj a{display:block}.backToTopButton_sjWU{background-color:var(--ifm-color-emphasis-200);border-radius:50%;bottom:1.3rem;box-shadow:var(--ifm-global-shadow-lw);height:3rem;opacity:0;position:fixed;right:1.3rem;transform:scale(0);transition:all var(--ifm-transition-fast) var(--ifm-transition-timing-default);visibility:hidden;width:3rem;z-index:calc(var(--ifm-z-index-fixed) - 1)}.backToTopButton_sjWU:after{background-color:var(--ifm-color-emphasis-1000);content:" ";display:inline-block;height:100%;-webkit-mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;width:100%}.backToTopButtonShow_xfvO{opacity:1;transform:scale(1);visibility:visible}[data-theme=dark]:root{--docusaurus-collapse-button-bg:#ffffff0d;--docusaurus-collapse-button-bg-hover:#ffffff1a}.collapseSidebarButton_PEFL{display:none;margin:0}.docMainContainer_gTbr,.docPage__5DB{display:flex;width:100%}.docPage__5DB{flex:1 0}.docsWrapper_BCFX{display:flex;flex:1 0 auto}.heroBanner_ME4k,.heroBanner_qdFl{overflow:hidden;padding:4rem 0;position:relative;text-align:center}.buttons_AeoN{align-items:center;display:flex;justify-content:center}.features_ALof,.features_xdhU{align-items:center;display:flex;padding:2rem 0}.logo_Ukns{max-width:360px;width:100%}.features_xdhU{margin:6em 0;width:100%}.featureSvg__8YW{height:64px;width:64px}.features_ALof{text-align:center;width:100%}.searchbox,.searchbox__input{box-sizing:border-box;display:inline-block}.features_ALof h2{font-size:2.5rem;margin-bottom:2.75rem}.featureSvg_K4k2{max-height:100px;max-width:250px;width:100%}.example_XiTW{margin:6em 0}.heading2_Pha7{font-size:3em;margin-bottom:2rem;text-align:center}.heading3_HQJr{font-size:2.5em;margin-bottom:1.5rem;text-align:center}.buttons_list_tJKG{line-height:3rem;text-align:center}.algolia-docsearch-suggestion{border-bottom-color:#3a3dd1}.algolia-docsearch-suggestion--category-header{background-color:#4b54de}.algolia-docsearch-suggestion--highlight{color:#3a33d1}.algolia-docsearch-suggestion--category-header .algolia-docsearch-suggestion--highlight{background-color:#4d47d5}.aa-cursor .algolia-docsearch-suggestion--content{color:#272296}.aa-cursor .algolia-docsearch-suggestion{background:#ebebfb}.searchbox{height:32px!important;position:relative;visibility:visible!important;white-space:nowrap;width:200px}.searchbox .algolia-autocomplete{display:block;height:100%;width:100%}.searchbox__wrapper{height:100%;position:relative;width:100%;z-index:999}.searchbox__input{-webkit-appearance:none;appearance:none;background:#fff!important;border:0;border-radius:16px;box-shadow:inset 0 0 0 1px #ccc;font-size:12px;height:100%;padding:0 26px 0 32px;transition:box-shadow .4s,background .4s;vertical-align:middle;white-space:normal;width:100%}.searchbox__reset,.searchbox__submit{font-size:inherit;-webkit-user-select:none;position:absolute}.searchbox__input::-webkit-search-cancel-button,.searchbox__input::-webkit-search-decoration,.searchbox__input::-webkit-search-results-button,.searchbox__input::-webkit-search-results-decoration{display:none}.searchbox__input:hover{box-shadow:inset 0 0 0 1px #b3b3b3}.searchbox__input:active,.searchbox__input:focus{background:#fff;box-shadow:inset 0 0 0 1px #aaa;outline:0}.searchbox__input::placeholder{color:#aaa}.searchbox__submit{background-color:#458ee100;border:0;border-radius:16px 0 0 16px;height:100%;left:0;margin:0;padding:0;right:inherit;text-align:center;top:0;user-select:none;vertical-align:middle;width:32px}.searchbox__submit:before{content:"";display:inline-block;height:100%;margin-right:-4px;vertical-align:middle}.algolia-autocomplete .ds-dropdown-menu .ds-suggestion,.searchbox__submit:active,.searchbox__submit:hover{cursor:pointer}.searchbox__submit svg{fill:#6d7e96;height:14px;vertical-align:middle;width:14px}.searchbox__reset{fill:#00000080;background:none;border:0;cursor:pointer;display:block;margin:0;padding:0;right:8px;top:8px;user-select:none}.buttonGroup__atx button,.codeBlockContainer_Ckt0{background:var(--prism-background-color);color:var(--prism-color)}.searchbox__reset.hide{display:none}.searchbox__reset svg{display:block;height:8px;margin:4px;width:8px}.searchbox__input:valid~.searchbox__reset{animation-duration:.15s;animation-name:a;display:block}@keyframes a{0%{opacity:0;transform:translate3d(-20%,0,0)}to{opacity:1;transform:none}}.algolia-autocomplete .ds-dropdown-menu:before{background:#373940;border-radius:2px;border-right:1px solid #373940;border-top:1px solid #373940;content:"";display:block;height:14px;position:absolute;top:-7px;transform:rotate(-45deg);width:14px;z-index:1000}.algolia-autocomplete .ds-dropdown-menu{box-shadow:0 1px 0 0 #0003,0 2px 3px 0 #0000001a}.algolia-autocomplete .ds-dropdown-menu .ds-suggestions{position:relative;z-index:1000}.algolia-autocomplete .ds-dropdown-menu [class^=ds-dataset-]{background:#fff;border-radius:4px;overflow:auto;padding:0;position:relative}.algolia-autocomplete .algolia-docsearch-suggestion{display:block;overflow:hidden;padding:0;position:relative;text-decoration:none}.algolia-autocomplete .ds-cursor .algolia-docsearch-suggestion--wrapper{background:#f1f1f1;box-shadow:inset -2px 0 0 #61dafb}.algolia-autocomplete .algolia-docsearch-suggestion--highlight{background:#ffe564;padding:.1em .05em}.algolia-autocomplete .algolia-docsearch-suggestion--category-header .algolia-docsearch-suggestion--category-header-lvl0 .algolia-docsearch-suggestion--highlight,.algolia-autocomplete .algolia-docsearch-suggestion--category-header .algolia-docsearch-suggestion--category-header-lvl1 .algolia-docsearch-suggestion--highlight{background:inherit;color:inherit}.algolia-autocomplete .algolia-docsearch-suggestion--text .algolia-docsearch-suggestion--highlight{background:inherit;box-shadow:inset 0 -2px 0 0 #458ee1cc;color:inherit;padding:0 0 1px}.algolia-autocomplete .algolia-docsearch-suggestion--content{cursor:pointer;display:block;float:right;padding:5.33333px 0 5.33333px 10.66667px;position:relative;width:70%}.algolia-autocomplete .algolia-docsearch-suggestion--content:before{background:#ececec;content:"";display:block;height:100%;left:-1px;position:absolute;top:0;width:1px}.algolia-autocomplete .algolia-docsearch-suggestion--category-header{background-color:#373940;color:#fff;display:none;font-size:14px;font-weight:700;letter-spacing:.08em;margin:0;padding:5px 8px;position:relative;text-transform:uppercase}.algolia-autocomplete .algolia-docsearch-suggestion--wrapper{background-color:#fff;float:left;padding:8px 0 0;width:100%}.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-column{word-wrap:break-word;color:#777;display:none;float:left;font-size:.9em;padding:5.33333px 10.66667px;position:relative;text-align:right;width:30%}.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-column:before{background:#ececec;content:"";display:block;height:100%;position:absolute;right:0;top:0;width:1px}.algolia-autocomplete .algolia-docsearch-suggestion.algolia-docsearch-suggestion__main .algolia-docsearch-suggestion--category-header,.algolia-autocomplete .algolia-docsearch-suggestion.algolia-docsearch-suggestion__secondary{display:block}.algolia-autocomplete .algolia-docsearch-suggestion--no-results:before,.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-inline{display:none}.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-column .algolia-docsearch-suggestion--highlight{background-color:inherit;color:inherit}.algolia-autocomplete .algolia-docsearch-suggestion--title{color:#02060c;font-size:.9em;font-weight:700;margin-bottom:4px}.algolia-autocomplete .algolia-docsearch-suggestion--text{color:#63676d;display:block;font-size:.85em;line-height:1.2em;padding-right:2px}.algolia-autocomplete .algolia-docsearch-suggestion--version{color:#a6aab1;display:block;font-size:.65em;padding-right:2px;padding-top:2px}.algolia-autocomplete .algolia-docsearch-suggestion--no-results{background-color:#373940;font-size:1.2em;margin-top:-8px;padding:8px 0;text-align:center;width:100%}.algolia-autocomplete .algolia-docsearch-suggestion--no-results .algolia-docsearch-suggestion--text{color:#fff;margin-top:4px}.algolia-autocomplete .algolia-docsearch-suggestion code{background-color:#ebebeb;border:none;border-radius:3px;color:#222;font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace;font-size:90%;padding:1px 5px}.algolia-autocomplete .algolia-docsearch-suggestion code .algolia-docsearch-suggestion--highlight{background:none}.algolia-autocomplete .algolia-docsearch-suggestion.algolia-docsearch-suggestion__main .algolia-docsearch-suggestion--category-header{color:#fff;display:block}.algolia-autocomplete .algolia-docsearch-suggestion.algolia-docsearch-suggestion__secondary .algolia-docsearch-suggestion--subcategory-column{display:block}.algolia-autocomplete .algolia-docsearch-footer{background-color:#fff;float:right;font-size:0;height:30px;line-height:0;width:100%;z-index:2000}.algolia-autocomplete .algolia-docsearch-footer--logo{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 130 18'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath fill='url(%2523a)' d='M59.4.02h13.3a2.37 2.37 0 0 1 2.38 2.37V15.6a2.37 2.37 0 0 1-2.38 2.36H59.4a2.37 2.37 0 0 1-2.38-2.36V2.38A2.37 2.37 0 0 1 59.4.02z'/%3E%3Cpath fill='%2523FFF' d='M66.26 4.56c-2.82 0-5.1 2.27-5.1 5.08 0 2.8 2.28 5.07 5.1 5.07 2.8 0 5.1-2.26 5.1-5.07 0-2.8-2.28-5.07-5.1-5.07zm0 8.65c-2 0-3.6-1.6-3.6-3.56 0-1.97 1.6-3.58 3.6-3.58 1.98 0 3.6 1.6 3.6 3.58a3.58 3.58 0 0 1-3.6 3.57zm0-6.4v2.66c0 .07.08.13.15.1l2.4-1.24c.04-.02.06-.1.03-.14a2.96 2.96 0 0 0-2.46-1.5.1.1 0 0 0-.1.1zm-3.33-1.96-.3-.3a.78.78 0 0 0-1.12 0l-.36.36a.77.77 0 0 0 0 1.1l.3.3c.05.05.13.04.17 0 .2-.25.4-.5.6-.7.23-.23.46-.43.7-.6.07-.04.07-.1.03-.16zm5-.8V3.4a.78.78 0 0 0-.78-.78h-1.83a.78.78 0 0 0-.78.78v.63c0 .07.06.12.14.1a5.74 5.74 0 0 1 1.58-.22c.52 0 1.04.07 1.54.2a.1.1 0 0 0 .13-.1z'/%3E%3Cpath fill='%2523182359' d='M102.16 13.76c0 1.46-.37 2.52-1.12 3.2-.75.67-1.9 1-3.44 1-.56 0-1.74-.1-2.67-.3l.34-1.7c.78.17 1.82.2 2.36.2.86 0 1.48-.16 1.84-.5.37-.36.55-.88.55-1.57v-.35a6.37 6.37 0 0 1-.84.3 4.15 4.15 0 0 1-1.2.17 4.5 4.5 0 0 1-1.6-.28 3.38 3.38 0 0 1-1.26-.82 3.74 3.74 0 0 1-.8-1.35c-.2-.54-.3-1.5-.3-2.2 0-.67.1-1.5.3-2.06a3.92 3.92 0 0 1 .9-1.43 4.12 4.12 0 0 1 1.45-.92 5.3 5.3 0 0 1 1.94-.37c.7 0 1.35.1 1.97.2a15.86 15.86 0 0 1 1.6.33v8.46zm-5.95-4.2c0 .9.2 1.88.6 2.3.4.4.9.62 1.53.62.34 0 .66-.05.96-.15a2.75 2.75 0 0 0 .73-.33V6.7a8.53 8.53 0 0 0-1.42-.17c-.76-.02-1.36.3-1.77.8-.4.5-.62 1.4-.62 2.23zm16.13 0c0 .72-.1 1.26-.32 1.85a4.4 4.4 0 0 1-.9 1.53c-.38.42-.85.75-1.4.98-.54.24-1.4.37-1.8.37-.43 0-1.27-.13-1.8-.36a4.1 4.1 0 0 1-1.4-.97 4.5 4.5 0 0 1-.92-1.52 5.04 5.04 0 0 1-.33-1.84c0-.72.1-1.4.32-2 .22-.6.53-1.1.92-1.5.4-.43.86-.75 1.4-.98a4.55 4.55 0 0 1 1.78-.34 4.7 4.7 0 0 1 1.8.34c.54.23 1 .55 1.4.97.38.42.68.92.9 1.5.23.6.35 1.3.35 2zm-2.2 0c0-.92-.2-1.7-.6-2.22-.38-.54-.94-.8-1.64-.8-.72 0-1.27.26-1.67.8-.4.54-.58 1.3-.58 2.22 0 .93.2 1.56.6 2.1.38.54.94.8 1.64.8s1.25-.26 1.65-.8c.4-.55.6-1.17.6-2.1zm6.97 4.7c-3.5.02-3.5-2.8-3.5-3.27L113.57.92l2.15-.34v10c0 .25 0 1.87 1.37 1.88v1.8zm3.77 0h-2.15v-9.2l2.15-.33v9.54zM119.8 3.74c.7 0 1.3-.58 1.3-1.3 0-.7-.58-1.3-1.3-1.3-.73 0-1.3.6-1.3 1.3 0 .72.58 1.3 1.3 1.3zm6.43 1c.7 0 1.3.1 1.78.27.5.18.88.42 1.17.73.28.3.5.74.6 1.18.13.46.2.95.2 1.5v5.47a25.24 25.24 0 0 1-1.5.25c-.67.1-1.42.15-2.25.15a6.83 6.83 0 0 1-1.52-.16 3.2 3.2 0 0 1-1.18-.5 2.46 2.46 0 0 1-.76-.9c-.18-.37-.27-.9-.27-1.44 0-.52.1-.85.3-1.2.2-.37.48-.67.83-.9a3.6 3.6 0 0 1 1.23-.5 7.07 7.07 0 0 1 2.2-.1l.83.16V8.4c0-.25-.03-.48-.1-.7a1.5 1.5 0 0 0-.3-.58c-.15-.18-.34-.3-.58-.4a2.54 2.54 0 0 0-.92-.17c-.5 0-.94.06-1.35.13-.4.08-.75.16-1 .25l-.27-1.74c.27-.1.67-.18 1.2-.28a9.34 9.34 0 0 1 1.65-.14zm.18 7.74c.66 0 1.15-.04 1.5-.1V10.2a5.1 5.1 0 0 0-2-.1c-.23.03-.45.1-.64.2a1.17 1.17 0 0 0-.47.38c-.13.17-.18.26-.18.52 0 .5.17.8.5.98.32.2.74.3 1.3.3zM84.1 4.8c.72 0 1.3.08 1.8.26.48.17.87.42 1.15.73.3.3.5.72.6 1.17.14.45.2.94.2 1.47v5.48a25.24 25.24 0 0 1-1.5.26c-.67.1-1.42.14-2.25.14a6.83 6.83 0 0 1-1.52-.16 3.2 3.2 0 0 1-1.18-.5 2.46 2.46 0 0 1-.76-.9c-.18-.38-.27-.9-.27-1.44 0-.53.1-.86.3-1.22.2-.36.5-.65.84-.88a3.6 3.6 0 0 1 1.24-.5 7.07 7.07 0 0 1 2.2-.1c.26.03.54.08.84.15v-.35c0-.24-.03-.48-.1-.7a1.5 1.5 0 0 0-.3-.58c-.15-.17-.34-.3-.58-.4a2.54 2.54 0 0 0-.9-.15c-.5 0-.96.05-1.37.12-.4.07-.75.15-1 .24l-.26-1.75c.27-.08.67-.17 1.18-.26a8.9 8.9 0 0 1 1.66-.15zm.2 7.73c.65 0 1.14-.04 1.48-.1v-2.17a5.1 5.1 0 0 0-1.98-.1c-.24.03-.46.1-.65.18a1.17 1.17 0 0 0-.47.4c-.12.17-.17.26-.17.52 0 .5.18.8.5.98.32.2.75.3 1.3.3zm8.68 1.74c-3.5 0-3.5-2.82-3.5-3.28L89.45.92 91.6.6v10c0 .25 0 1.87 1.38 1.88v1.8z'/%3E%3Cpath fill='%25231D3657' d='M5.03 11.03c0 .7-.26 1.24-.76 1.64-.5.4-1.2.6-2.1.6-.88 0-1.6-.14-2.17-.42v-1.2c.36.16.74.3 1.14.38.4.1.78.15 1.13.15.5 0 .88-.1 1.12-.3a.94.94 0 0 0 .35-.77.98.98 0 0 0-.33-.74c-.22-.2-.68-.44-1.37-.72-.72-.3-1.22-.62-1.52-1C.23 8.27.1 7.82.1 7.3c0-.65.22-1.17.7-1.55.46-.37 1.08-.56 1.86-.56.76 0 1.5.16 2.25.48l-.4 1.05c-.7-.3-1.32-.44-1.87-.44-.4 0-.73.08-.94.26a.9.9 0 0 0-.33.72c0 .2.04.38.12.52.08.15.22.3.42.4.2.14.55.3 1.06.52.58.24 1 .47 1.27.67.27.2.47.44.6.7.12.26.18.57.18.92zM9 13.27c-.92 0-1.64-.27-2.16-.8-.52-.55-.78-1.3-.78-2.24 0-.97.24-1.73.72-2.3.5-.54 1.15-.82 2-.82.78 0 1.4.25 1.85.72.46.48.7 1.14.7 1.97v.67H7.35c0 .58.17 1.02.46 1.33.3.3.7.47 1.24.47.36 0 .68-.04.98-.1a5.1 5.1 0 0 0 .98-.33v1.02a3.87 3.87 0 0 1-.94.32 5.72 5.72 0 0 1-1.08.1zm-.22-5.2c-.4 0-.73.12-.97.38s-.37.62-.42 1.1h2.7c0-.48-.13-.85-.36-1.1-.23-.26-.54-.38-.94-.38zm7.7 5.1-.26-.84h-.05c-.28.36-.57.6-.86.74-.28.13-.65.2-1.1.2-.6 0-1.05-.16-1.38-.48-.32-.32-.5-.77-.5-1.34 0-.62.24-1.08.7-1.4.45-.3 1.14-.47 2.07-.5l1.02-.03V9.2c0-.37-.1-.65-.27-.84-.17-.2-.45-.28-.82-.28-.3 0-.6.04-.88.13a6.68 6.68 0 0 0-.8.33l-.4-.9a4.4 4.4 0 0 1 1.05-.4 4.86 4.86 0 0 1 1.08-.12c.76 0 1.33.18 1.7.5.4.33.6.85.6 1.56v4h-.9zm-1.9-.87c.47 0 .83-.13 1.1-.38.3-.26.43-.62.43-1.08v-.52l-.76.03c-.6.03-1.02.13-1.3.3s-.4.45-.4.82c0 .26.08.47.24.6.16.16.4.23.7.23zm7.57-5.2c.25 0 .46.03.62.06l-.12 1.18a2.38 2.38 0 0 0-.56-.06c-.5 0-.92.16-1.24.5-.3.32-.47.75-.47 1.27v3.1h-1.27V7.23h1l.16 1.05h.05c.2-.36.45-.64.77-.85a1.83 1.83 0 0 1 1.02-.3zm4.12 6.17c-.9 0-1.58-.27-2.05-.8-.47-.52-.7-1.27-.7-2.25 0-1 .24-1.77.73-2.3.5-.54 1.2-.8 2.12-.8.63 0 1.2.1 1.7.34l-.4 1c-.52-.2-.96-.3-1.3-.3-1.04 0-1.55.68-1.55 2.05 0 .67.13 1.17.38 1.5.26.34.64.5 1.13.5a3.23 3.23 0 0 0 1.6-.4v1.1a2.53 2.53 0 0 1-.73.28 4.36 4.36 0 0 1-.93.08zm8.28-.1h-1.27V9.5c0-.45-.1-.8-.28-1.02-.18-.23-.47-.34-.88-.34-.53 0-.9.16-1.16.48-.25.3-.38.85-.38 1.6v2.94h-1.26V4.8h1.26v2.12c0 .34-.02.7-.06 1.1h.08a1.76 1.76 0 0 1 .72-.67c.3-.16.66-.24 1.07-.24 1.43 0 2.15.74 2.15 2.2v3.86zM42.2 7.1c.74 0 1.32.28 1.73.82.4.53.62 1.3.62 2.26 0 .97-.2 1.73-.63 2.27-.42.54-1 .82-1.75.82s-1.33-.27-1.75-.8h-.08l-.23.7h-.94V4.8h1.26v2l-.02.64-.03.56h.05c.4-.6 1-.9 1.78-.9zm-.33 1.04c-.5 0-.88.15-1.1.45-.22.3-.34.8-.35 1.5v.08c0 .72.12 1.24.35 1.57.23.32.6.48 1.12.48.44 0 .78-.17 1-.53.24-.35.36-.87.36-1.53 0-1.35-.47-2.03-1.4-2.03zm3.24-.92h1.4l1.2 3.37c.18.47.3.92.36 1.34h.04l.18-.72 1.37-4H51l-2.53 6.73c-.46 1.23-1.23 1.85-2.3 1.85-.3 0-.56-.03-.83-.1v-1c.2.05.4.08.65.08.6 0 1.03-.36 1.28-1.06l.22-.56-2.4-5.94z'/%3E%3C/g%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:100%;display:block;height:100%;margin-left:auto;margin-right:5px;overflow:hidden;text-indent:-9000px;width:110px}html[data-theme=dark] .algolia-docsearch-footer,html[data-theme=dark] .algolia-docsearch-suggestion--category-header,html[data-theme=dark] .algolia-docsearch-suggestion--wrapper{background:var(--ifm-background-color)!important;color:var(--ifm-font-color-base)!important}html[data-theme=dark] .algolia-docsearch-suggestion--title{color:var(--ifm-font-color-base)!important}html[data-theme=dark] .ds-cursor .algolia-docsearch-suggestion--wrapper{background:var(--ifm-background-surface-color)!important}.codeBlockContainer_Ckt0{border-radius:var(--ifm-code-border-radius);box-shadow:var(--ifm-global-shadow-lw);margin-bottom:var(--ifm-leading)}.codeBlockContent_biex{border-radius:inherit;direction:ltr;position:relative}.codeBlockTitle_Ktv7{border-bottom:1px solid var(--ifm-color-emphasis-300);border-top-left-radius:inherit;border-top-right-radius:inherit;font-size:var(--ifm-code-font-size);font-weight:500;padding:.75rem var(--ifm-pre-padding)}.codeBlock_bY9V{--ifm-pre-background:var(--prism-background-color);margin:0;padding:0}.codeBlockTitle_Ktv7+.codeBlockContent_biex .codeBlock_bY9V{border-top-left-radius:0;border-top-right-radius:0}.codeBlockLines_e6Vv{float:left;font:inherit;min-width:100%;padding:var(--ifm-pre-padding)}.codeBlockLinesWithNumbering_o6Pm{display:table;padding:var(--ifm-pre-padding) 0}.buttonGroup__atx{column-gap:.2rem;display:flex;position:absolute;right:calc(var(--ifm-pre-padding)/2);top:calc(var(--ifm-pre-padding)/2)}.buttonGroup__atx button{align-items:center;border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-global-radius);display:flex;line-height:0;opacity:0;padding:.4rem;transition:opacity var(--ifm-transition-fast) ease-in-out}.buttonGroup__atx button:focus-visible,.buttonGroup__atx button:hover{opacity:1!important}.theme-code-block:hover .buttonGroup__atx button{opacity:.4}:where(:root){--docusaurus-highlighted-code-line-bg:#484d5b}:where([data-theme=dark]){--docusaurus-highlighted-code-line-bg:#646464}.theme-code-block-highlighted-line{background-color:var(--docusaurus-highlighted-code-line-bg);display:block;margin:0 calc(var(--ifm-pre-padding)*-1);padding:0 var(--ifm-pre-padding)}.codeLine_lJS_{counter-increment:a;display:table-row}.codeLineNumber_Tfdd{background:var(--ifm-pre-background);display:table-cell;left:0;overflow-wrap:normal;padding:0 var(--ifm-pre-padding);position:sticky;text-align:right;width:1%}.codeLineNumber_Tfdd:before{content:counter(a);opacity:.4}.codeLineContent_feaV{padding-right:var(--ifm-pre-padding)}.theme-code-block:hover .copyButtonCopied_obH4{opacity:1!important}.copyButtonIcons_eSgA{height:1.125rem;position:relative;width:1.125rem}.copyButtonIcon_y97N,.copyButtonSuccessIcon_LjdS{fill:currentColor;height:inherit;left:0;opacity:inherit;position:absolute;top:0;transition:all var(--ifm-transition-fast) ease;width:inherit}.copyButtonSuccessIcon_LjdS{color:#00d600;left:50%;opacity:0;top:50%;transform:translate(-50%,-50%) scale(.33)}.copyButtonCopied_obH4 .copyButtonIcon_y97N{opacity:0;transform:scale(.33)}.copyButtonCopied_obH4 .copyButtonSuccessIcon_LjdS{opacity:1;transform:translate(-50%,-50%) scale(1);transition-delay:75ms}.wordWrapButtonIcon_Bwma{height:1.2rem;width:1.2rem}.details_lb9f{--docusaurus-details-summary-arrow-size:0.38rem;--docusaurus-details-transition:transform 200ms ease;--docusaurus-details-decoration-color:grey}.details_lb9f>summary{cursor:pointer;padding-left:1rem;position:relative}.details_lb9f>summary::-webkit-details-marker{display:none}.details_lb9f>summary:before{border-color:#0000 #0000 #0000 var(--docusaurus-details-decoration-color);border-style:solid;border-width:var(--docusaurus-details-summary-arrow-size);content:"";left:0;position:absolute;top:.45rem;transform:rotate(0);transform-origin:calc(var(--docusaurus-details-summary-arrow-size)/2) 50%;transition:var(--docusaurus-details-transition)}.collapsibleContent_i85q{border-top:1px solid var(--docusaurus-details-decoration-color);margin-top:1rem;padding-top:1rem}.details_b_Ee{--docusaurus-details-decoration-color:var(--ifm-alert-border-color);--docusaurus-details-transition:transform var(--ifm-transition-fast) ease;border:1px solid var(--ifm-alert-border-color);margin:0 0 var(--ifm-spacing-vertical)}.anchorWithStickyNavbar_LWe7{scroll-margin-top:calc(var(--ifm-navbar-height) + .5rem)}.anchorWithHideOnScrollNavbar_WYt5{scroll-margin-top:.5rem}.hash-link{opacity:0;padding-left:.5rem;transition:opacity var(--ifm-transition-fast);-webkit-user-select:none;user-select:none}.hash-link:before{content:"#"}:not(.containsTaskList_mC6p>li)>.containsTaskList_mC6p{padding-left:0}.img_ev3q{height:auto}.tableOfContents_bqdL{max-height:calc(100vh - var(--ifm-navbar-height) - 2rem);overflow-y:auto;position:sticky;top:calc(var(--ifm-navbar-height) + 1rem)}.admonition_LlT9{margin-bottom:1em}.admonitionHeading_tbUL{font:var(--ifm-heading-font-weight) var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);margin-bottom:.3rem}.admonitionHeading_tbUL code{text-transform:none}.admonitionIcon_kALy{display:inline-block;margin-right:.4em;vertical-align:middle}.admonitionIcon_kALy svg{fill:var(--ifm-alert-foreground-color);display:inline-block;height:1.6em;width:1.6em}.breadcrumbHomeIcon_YNFT{height:1.1rem;position:relative;top:1px;vertical-align:top;width:1.1rem}.breadcrumbsContainer_Z_bl{--ifm-breadcrumb-size-multiplier:0.8;margin-bottom:.8rem}.title_kItE{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-leading)*1.25)}.mdxPageWrapper_j9I6{justify-content:center}@media (min-width:601px){.algolia-autocomplete.algolia-autocomplete-right .ds-dropdown-menu{left:inherit!important;right:0!important}.algolia-autocomplete.algolia-autocomplete-right .ds-dropdown-menu:before{right:48px}.algolia-autocomplete .ds-dropdown-menu{background:#0000;border:none;border-radius:4px;height:auto;margin:6px 0 0;max-width:600px;min-width:500px;padding:0;position:relative;text-align:left;top:-6px;z-index:999}}@media (min-width:768px){.algolia-docsearch-suggestion{border-bottom-color:#7671df}.algolia-docsearch-suggestion--subcategory-column{border-right-color:#7671df;color:#4e4726}}@media (min-width:997px){.collapseSidebarButton_PEFL,.expandButton_m80_{background-color:var(--docusaurus-collapse-button-bg)}:root{--docusaurus-announcement-bar-height:30px}.announcementBarClose_gvF7,.announcementBarPlaceholder_vyr4{flex-basis:50px}.searchBox_ZlJk{padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.lastUpdated_vwxv{text-align:right}.tocMobile_ITEo{display:none}.collapseSidebarButton_PEFL{border:1px solid var(--ifm-toc-border-color);border-radius:0;bottom:0;display:block!important;height:40px;position:sticky}.collapseSidebarButtonIcon_kv0_{margin-top:4px;transform:rotate(180deg)}.expandButtonIcon_BlDH,[dir=rtl] .collapseSidebarButtonIcon_kv0_{transform:rotate(0)}.collapseSidebarButton_PEFL:focus,.collapseSidebarButton_PEFL:hover,.expandButton_m80_:focus,.expandButton_m80_:hover{background-color:var(--docusaurus-collapse-button-bg-hover)}.menuHtmlItem_M9Kj{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu_SIkG{flex-grow:1;padding:.5rem}@supports (scrollbar-gutter:stable){.menu_SIkG{padding:.5rem 0 .5rem .5rem;scrollbar-gutter:stable}}.menuWithAnnouncementBar_GW3s{margin-bottom:var(--docusaurus-announcement-bar-height)}.sidebar_njMd{display:flex;flex-direction:column;height:100%;padding-top:var(--ifm-navbar-height);width:var(--doc-sidebar-width)}.sidebarWithHideableNavbar_wUlq{padding-top:0}.sidebarHidden_VK0M{opacity:0;visibility:hidden}.sidebarLogo_isFc{align-items:center;color:inherit!important;display:flex!important;margin:0 var(--ifm-navbar-padding-horizontal);max-height:var(--ifm-navbar-height);min-height:var(--ifm-navbar-height);text-decoration:none!important}.sidebarLogo_isFc img{height:2rem;margin-right:.5rem}.expandButton_m80_{align-items:center;display:flex;height:100%;justify-content:center;position:absolute;right:0;top:0;transition:background-color var(--ifm-transition-fast) ease;width:100%}[dir=rtl] .expandButtonIcon_BlDH{transform:rotate(180deg)}.docSidebarContainer_b6E3{border-right:1px solid var(--ifm-toc-border-color);-webkit-clip-path:inset(0);clip-path:inset(0);display:block;margin-top:calc(var(--ifm-navbar-height)*-1);transition:width var(--ifm-transition-fast) ease;width:var(--doc-sidebar-width);will-change:width}.docSidebarContainerHidden_b3ry{cursor:pointer;width:var(--doc-sidebar-hidden-width)}.sidebarViewport_Xe31{height:100%;max-height:100vh;position:sticky;top:0}.docMainContainer_gTbr{flex-grow:1;max-width:calc(100% - var(--doc-sidebar-width))}.docMainContainerEnhanced_Uz_u{max-width:calc(100% - var(--doc-sidebar-hidden-width))}.docItemWrapperEnhanced_czyv{max-width:calc(var(--ifm-container-width) + var(--doc-sidebar-width))!important}.docItemCol_VOVn,.generatedIndexPage_vN6x{max-width:75%!important}.list_eTzJ article:nth-last-child(-n+2){margin-bottom:0!important}}@media (min-width:1440px){.container{max-width:var(--ifm-container-width-xl)}}@media (max-width:996px){.col{--ifm-col-width:100%;flex-basis:var(--ifm-col-width);margin-left:0}.footer{--ifm-footer-padding-horizontal:0}.colorModeToggle_DEke,.footer__link-separator,.navbar__item,.tableOfContents_bqdL{display:none}.footer__col{margin-bottom:calc(var(--ifm-spacing-vertical)*3)}.footer__link-item{display:block}.hero{padding-left:0;padding-right:0}.navbar>.container,.navbar>.container-fluid{padding:0}.navbar__toggle{display:inherit}.navbar__search-input{width:9rem}.pills--block,.tabs--block{flex-direction:column}.searchBox_ZlJk{position:absolute;right:var(--ifm-navbar-padding-horizontal)}.docItemContainer_F8PC{padding:0 .3rem}}@media screen and (max-width:966px){.heroBanner_ME4k,.heroBanner_qdFl{padding:2rem}}@media (max-width:600px){.algolia-autocomplete .ds-dropdown-menu{display:block;left:auto!important;max-height:calc(100% - 5rem);max-width:calc(100% - 2rem);position:fixed!important;right:1rem!important;top:50px!important;width:600px;z-index:100}.algolia-autocomplete .ds-dropdown-menu:before{right:6rem}}@media (max-width:576px){.markdown h1:first-child{--ifm-h1-font-size:2rem}.markdown>h2{--ifm-h2-font-size:1.5rem}.markdown>h3{--ifm-h3-font-size:1.25rem}}@media (hover:hover){.backToTopButton_sjWU:hover{background-color:var(--ifm-color-emphasis-300)}}@media (pointer:fine){.thin-scrollbar{scrollbar-width:thin}.thin-scrollbar::-webkit-scrollbar{height:var(--ifm-scrollbar-size);width:var(--ifm-scrollbar-size)}.thin-scrollbar::-webkit-scrollbar-track{background:var(--ifm-scrollbar-track-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb{background:var(--ifm-scrollbar-thumb-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--ifm-scrollbar-thumb-hover-background-color)}}@media (prefers-reduced-motion:reduce){:root{--ifm-transition-fast:0ms;--ifm-transition-slow:0ms}}@media print{.announcementBar_mb4j,.footer,.menu,.navbar,.pagination-nav,.table-of-contents,.tocMobile_ITEo{display:none}.tabs{page-break-inside:avoid}.codeBlockLines_e6Vv{white-space:pre-wrap}} \ No newline at end of file diff --git a/assets/js/01c9695c.39e499f3.js b/assets/js/01c9695c.39e499f3.js new file mode 100644 index 000000000..99510718c --- /dev/null +++ b/assets/js/01c9695c.39e499f3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[3295],{2339:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>h,frontMatter:()=>l,metadata:()=>d,toc:()=>c});var r=n(5893),a=n(1151),s=n(4866),o=n(5162);const l={title:"http-json-body-parser"},i=void 0,d={id:"middlewares/http-json-body-parser",title:"http-json-body-parser",description:"This middleware automatically parses HTTP requests with a JSON body and converts the body into an",source:"@site/docs/middlewares/http-json-body-parser.md",sourceDirName:"middlewares",slug:"/middlewares/http-json-body-parser",permalink:"/docs/middlewares/http-json-body-parser",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/middlewares/http-json-body-parser.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",frontMatter:{title:"http-json-body-parser"},sidebar:"tutorialSidebar",previous:{title:"http-header-normalizer",permalink:"/docs/middlewares/http-header-normalizer"},next:{title:"http-multipart-body-parser",permalink:"/docs/middlewares/http-multipart-body-parser"}},u={},c=[{value:"Install",id:"install",level:2},{value:"Options",id:"options",level:2},{value:"Sample usage",id:"sample-usage",level:2}];function p(e){const t={a:"a",code:"code",em:"em",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,a.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(t.p,{children:["This middleware automatically parses HTTP requests with a JSON body and converts the body into an\nobject. Also handles gracefully broken JSON as ",(0,r.jsx)(t.em,{children:"Unsupported Media Type"})," (415 errors)\nif used in combination with ",(0,r.jsx)(t.code,{children:"httpErrorHandler"}),"."]}),"\n",(0,r.jsx)(t.p,{children:"It can also be used in combination with validator as a prior step to normalize the\nevent body input as an object so that the content can be validated."}),"\n",(0,r.jsx)(t.h2,{id:"install",children:"Install"}),"\n",(0,r.jsx)(t.p,{children:"To install this middleware you can use NPM:"}),"\n",(0,r.jsxs)(s.Z,{groupId:"npm2yarn",children:[(0,r.jsx)(o.Z,{value:"npm",children:(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-bash",children:"npm install --save @middy/http-json-body-parser\n"})})}),(0,r.jsx)(o.Z,{value:"yarn",label:"Yarn",children:(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-bash",children:"yarn add @middy/http-json-body-parser\n"})})}),(0,r.jsx)(o.Z,{value:"pnpm",label:"pnpm",children:(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-bash",children:"pnpm add @middy/http-json-body-parser\n"})})})]}),"\n",(0,r.jsx)(t.h2,{id:"options",children:"Options"}),"\n",(0,r.jsxs)(t.ul,{children:["\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:"reviver"})," (",(0,r.jsx)(t.code,{children:"function"}),") (optional): A ",(0,r.jsx)(t.a,{href:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse#Parameters",children:"reviver"})," parameter may be passed which will be used ",(0,r.jsx)(t.code,{children:"JSON.parse"}),"ing the body."]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:"disableContentTypeError"})," (",(0,r.jsx)(t.code,{children:"boolean"}),") (optional): Skip throwing 415 when ",(0,r.jsx)(t.code,{children:"Content-Type"})," is invalid. Default: ",(0,r.jsx)(t.code,{children:"true"}),", will default to ",(0,r.jsx)(t.code,{children:"false"})," in next major version."]}),"\n"]}),"\n",(0,r.jsx)(t.h2,{id:"sample-usage",children:"Sample usage"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-javascript",children:"import middy from '@middy/core'\nimport httpHeaderNormalizer from '@middy/http-header-normalizer'\nimport httpJsonBodyParser from '@middy/http-json-body-parser'\n\nconst lambdaHandler = (event, context) => {\n return {}\n}\n\nexport const handler = middy()\n .use(httpHeaderNormalizer())\n .use(httpJsonBodyParser())\n .handler(lambdaHandler)\n\n// invokes the handler\nconst event = {\n headers: {\n 'Content-Type': 'application/json'\n // It is important that the request has the proper content type.\n },\n body: JSON.stringify({ foo: 'bar' })\n}\nhandler(event, {}, (_, body) => {\n t.is(body, { foo: 'bar' })\n})\n"})})]})}function h(e={}){const{wrapper:t}={...(0,a.a)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(p,{...e})}):p(e)}},5162:(e,t,n)=>{n.d(t,{Z:()=>o});n(7294);var r=n(6010);const a={tabItem:"tabItem_Ymn6"};var s=n(5893);function o(e){let{children:t,hidden:n,className:o}=e;return(0,s.jsx)("div",{role:"tabpanel",className:(0,r.Z)(a.tabItem,o),hidden:n,children:t})}},4866:(e,t,n)=>{n.d(t,{Z:()=>w});var r=n(7294),a=n(6010),s=n(2466),o=n(6550),l=n(469),i=n(1980),d=n(7392),u=n(12);function c(e){return r.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function p(e){const{values:t,children:n}=e;return(0,r.useMemo)((()=>{const e=t??function(e){return c(e).map((e=>{let{props:{value:t,label:n,attributes:r,default:a}}=e;return{value:t,label:n,attributes:r,default:a}}))}(n);return function(e){const t=(0,d.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[t,n])}function h(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function m(e){let{queryString:t=!1,groupId:n}=e;const a=(0,o.k6)(),s=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,i._X)(s),(0,r.useCallback)((e=>{if(!s)return;const t=new URLSearchParams(a.location.search);t.set(s,e),a.replace({...a.location,search:t.toString()})}),[s,a])]}function b(e){const{defaultValue:t,queryString:n=!1,groupId:a}=e,s=p(e),[o,i]=(0,r.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the component requires at least one children component");if(t){if(!h({value:t,tabValues:n}))throw new Error(`Docusaurus error: The has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const r=n.find((e=>e.default))??n[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:t,tabValues:s}))),[d,c]=m({queryString:n,groupId:a}),[b,f]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[a,s]=(0,u.Nk)(n);return[a,(0,r.useCallback)((e=>{n&&s.set(e)}),[n,s])]}({groupId:a}),v=(()=>{const e=d??b;return h({value:e,tabValues:s})?e:null})();(0,l.Z)((()=>{v&&i(v)}),[v]);return{selectedValue:o,selectValue:(0,r.useCallback)((e=>{if(!h({value:e,tabValues:s}))throw new Error(`Can't select invalid tab value=${e}`);i(e),c(e),f(e)}),[c,f,s]),tabValues:s}}var f=n(2389);const v={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var y=n(5893);function j(e){let{className:t,block:n,selectedValue:r,selectValue:o,tabValues:l}=e;const i=[],{blockElementScrollPositionUntilNextRender:d}=(0,s.o5)(),u=e=>{const t=e.currentTarget,n=i.indexOf(t),a=l[n].value;a!==r&&(d(t),o(a))},c=e=>{let t=null;switch(e.key){case"Enter":u(e);break;case"ArrowRight":{const n=i.indexOf(e.currentTarget)+1;t=i[n]??i[0];break}case"ArrowLeft":{const n=i.indexOf(e.currentTarget)-1;t=i[n]??i[i.length-1];break}}t?.focus()};return(0,y.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,a.Z)("tabs",{"tabs--block":n},t),children:l.map((e=>{let{value:t,label:n,attributes:s}=e;return(0,y.jsx)("li",{role:"tab",tabIndex:r===t?0:-1,"aria-selected":r===t,ref:e=>i.push(e),onKeyDown:c,onClick:u,...s,className:(0,a.Z)("tabs__item",v.tabItem,s?.className,{"tabs__item--active":r===t}),children:n??t},t)}))})}function x(e){let{lazy:t,children:n,selectedValue:a}=e;const s=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=s.find((e=>e.props.value===a));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return(0,y.jsx)("div",{className:"margin-top--md",children:s.map(((e,t)=>(0,r.cloneElement)(e,{key:t,hidden:e.props.value!==a})))})}function g(e){const t=b(e);return(0,y.jsxs)("div",{className:(0,a.Z)("tabs-container",v.tabList),children:[(0,y.jsx)(j,{...e,...t}),(0,y.jsx)(x,{...e,...t})]})}function w(e){const t=(0,f.Z)();return(0,y.jsx)(g,{...e,children:c(e.children)},String(t))}},1151:(e,t,n)=>{n.d(t,{Z:()=>l,a:()=>o});var r=n(7294);const a={},s=r.createContext(a);function o(e){const t=r.useContext(s);return r.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:o(e.components),r.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/01c9695c.fd5ef393.js b/assets/js/01c9695c.fd5ef393.js deleted file mode 100644 index fe04e08b7..000000000 --- a/assets/js/01c9695c.fd5ef393.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[3295],{3905:(e,t,r)=>{r.d(t,{Zo:()=>d,kt:()=>b});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=n.createContext({}),u=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},d=function(e){var t=u(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),p=u(r),m=a,b=p["".concat(s,".").concat(m)]||p[m]||c[m]||o;return r?n.createElement(b,l(l({ref:t},d),{},{components:r})):n.createElement(b,l({ref:t},d))}));function b(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=m;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[p]="string"==typeof e?e:a,l[1]=i;for(var u=2;u{r.d(t,{Z:()=>l});var n=r(7294),a=r(6010);const o={tabItem:"tabItem_Ymn6"};function l(e){let{children:t,hidden:r,className:l}=e;return n.createElement("div",{role:"tabpanel",className:(0,a.Z)(o.tabItem,l),hidden:r},t)}},4866:(e,t,r)=>{r.d(t,{Z:()=>w});var n=r(7462),a=r(7294),o=r(6010),l=r(2466),i=r(6550),s=r(1980),u=r(7392),d=r(12);function p(e){return function(e){return a.Children.map(e,(e=>{if(!e||(0,a.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:r,attributes:n,default:a}}=e;return{value:t,label:r,attributes:n,default:a}}))}function c(e){const{values:t,children:r}=e;return(0,a.useMemo)((()=>{const e=t??p(r);return function(e){const t=(0,u.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[t,r])}function m(e){let{value:t,tabValues:r}=e;return r.some((e=>e.value===t))}function b(e){let{queryString:t=!1,groupId:r}=e;const n=(0,i.k6)(),o=function(e){let{queryString:t=!1,groupId:r}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!r)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return r??null}({queryString:t,groupId:r});return[(0,s._X)(o),(0,a.useCallback)((e=>{if(!o)return;const t=new URLSearchParams(n.location.search);t.set(o,e),n.replace({...n.location,search:t.toString()})}),[o,n])]}function h(e){const{defaultValue:t,queryString:r=!1,groupId:n}=e,o=c(e),[l,i]=(0,a.useState)((()=>function(e){let{defaultValue:t,tabValues:r}=e;if(0===r.length)throw new Error("Docusaurus error: the component requires at least one children component");if(t){if(!m({value:t,tabValues:r}))throw new Error(`Docusaurus error: The has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${r.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const n=r.find((e=>e.default))??r[0];if(!n)throw new Error("Unexpected error: 0 tabValues");return n.value}({defaultValue:t,tabValues:o}))),[s,u]=b({queryString:r,groupId:n}),[p,h]=function(e){let{groupId:t}=e;const r=function(e){return e?`docusaurus.tab.${e}`:null}(t),[n,o]=(0,d.Nk)(r);return[n,(0,a.useCallback)((e=>{r&&o.set(e)}),[r,o])]}({groupId:n}),f=(()=>{const e=s??p;return m({value:e,tabValues:o})?e:null})();(0,a.useLayoutEffect)((()=>{f&&i(f)}),[f]);return{selectedValue:l,selectValue:(0,a.useCallback)((e=>{if(!m({value:e,tabValues:o}))throw new Error(`Can't select invalid tab value=${e}`);i(e),u(e),h(e)}),[u,h,o]),tabValues:o}}var f=r(2389);const y={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};function v(e){let{className:t,block:r,selectedValue:i,selectValue:s,tabValues:u}=e;const d=[],{blockElementScrollPositionUntilNextRender:p}=(0,l.o5)(),c=e=>{const t=e.currentTarget,r=d.indexOf(t),n=u[r].value;n!==i&&(p(t),s(n))},m=e=>{let t=null;switch(e.key){case"Enter":c(e);break;case"ArrowRight":{const r=d.indexOf(e.currentTarget)+1;t=d[r]??d[0];break}case"ArrowLeft":{const r=d.indexOf(e.currentTarget)-1;t=d[r]??d[d.length-1];break}}t?.focus()};return a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,o.Z)("tabs",{"tabs--block":r},t)},u.map((e=>{let{value:t,label:r,attributes:l}=e;return a.createElement("li",(0,n.Z)({role:"tab",tabIndex:i===t?0:-1,"aria-selected":i===t,key:t,ref:e=>d.push(e),onKeyDown:m,onClick:c},l,{className:(0,o.Z)("tabs__item",y.tabItem,l?.className,{"tabs__item--active":i===t})}),r??t)})))}function g(e){let{lazy:t,children:r,selectedValue:n}=e;const o=(Array.isArray(r)?r:[r]).filter(Boolean);if(t){const e=o.find((e=>e.props.value===n));return e?(0,a.cloneElement)(e,{className:"margin-top--md"}):null}return a.createElement("div",{className:"margin-top--md"},o.map(((e,t)=>(0,a.cloneElement)(e,{key:t,hidden:e.props.value!==n}))))}function k(e){const t=h(e);return a.createElement("div",{className:(0,o.Z)("tabs-container",y.tabList)},a.createElement(v,(0,n.Z)({},e,t)),a.createElement(g,(0,n.Z)({},e,t)))}function w(e){const t=(0,f.Z)();return a.createElement(k,(0,n.Z)({key:String(t)},e))}},4284:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>d,contentTitle:()=>s,default:()=>b,frontMatter:()=>i,metadata:()=>u,toc:()=>p});var n=r(7462),a=(r(7294),r(3905)),o=r(4866),l=r(5162);const i={title:"http-json-body-parser"},s=void 0,u={unversionedId:"middlewares/http-json-body-parser",id:"middlewares/http-json-body-parser",title:"http-json-body-parser",description:"This middleware automatically parses HTTP requests with a JSON body and converts the body into an",source:"@site/docs/middlewares/http-json-body-parser.md",sourceDirName:"middlewares",slug:"/middlewares/http-json-body-parser",permalink:"/docs/middlewares/http-json-body-parser",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/middlewares/http-json-body-parser.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",frontMatter:{title:"http-json-body-parser"},sidebar:"tutorialSidebar",previous:{title:"http-header-normalizer",permalink:"/docs/middlewares/http-header-normalizer"},next:{title:"http-multipart-body-parser",permalink:"/docs/middlewares/http-multipart-body-parser"}},d={},p=[{value:"Install",id:"install",level:2},{value:"Options",id:"options",level:2},{value:"Sample usage",id:"sample-usage",level:2}],c={toc:p},m="wrapper";function b(e){let{components:t,...r}=e;return(0,a.kt)(m,(0,n.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"This middleware automatically parses HTTP requests with a JSON body and converts the body into an\nobject. Also handles gracefully broken JSON as ",(0,a.kt)("em",{parentName:"p"},"Unsupported Media Type")," (415 errors)\nif used in combination with ",(0,a.kt)("inlineCode",{parentName:"p"},"httpErrorHandler"),"."),(0,a.kt)("p",null,"It can also be used in combination with validator as a prior step to normalize the\nevent body input as an object so that the content can be validated."),(0,a.kt)("h2",{id:"install"},"Install"),(0,a.kt)("p",null,"To install this middleware you can use NPM:"),(0,a.kt)(o.Z,{groupId:"npm2yarn",mdxType:"Tabs"},(0,a.kt)(l.Z,{value:"npm",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-bash"},"npm install --save @middy/http-json-body-parser\n"))),(0,a.kt)(l.Z,{value:"yarn",label:"Yarn",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-bash"},"yarn add @middy/http-json-body-parser\n"))),(0,a.kt)(l.Z,{value:"pnpm",label:"pnpm",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-bash"},"pnpm add @middy/http-json-body-parser\n")))),(0,a.kt)("h2",{id:"options"},"Options"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"reviver")," (",(0,a.kt)("inlineCode",{parentName:"li"},"function"),") (optional): A ",(0,a.kt)("a",{parentName:"li",href:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse#Parameters"},"reviver")," parameter may be passed which will be used ",(0,a.kt)("inlineCode",{parentName:"li"},"JSON.parse"),"ing the body."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"disableContentTypeError")," (",(0,a.kt)("inlineCode",{parentName:"li"},"boolean"),") (optional): Skip throwing 415 when ",(0,a.kt)("inlineCode",{parentName:"li"},"Content-Type")," is invalid. Default: ",(0,a.kt)("inlineCode",{parentName:"li"},"true"),", will default to ",(0,a.kt)("inlineCode",{parentName:"li"},"false")," in next major version.")),(0,a.kt)("h2",{id:"sample-usage"},"Sample usage"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\nimport httpHeaderNormalizer from '@middy/http-header-normalizer'\nimport httpJsonBodyParser from '@middy/http-json-body-parser'\n\nconst handler = middy((event, context) => {\n return {}\n})\n\nhandler.use(httpHeaderNormalizer()).use(httpJsonBodyParser())\n\n// invokes the handler\nconst event = {\n headers: {\n 'Content-Type': 'application/json'\n // It is important that the request has the proper content type.\n },\n body: JSON.stringify({ foo: 'bar' })\n}\nhandler(event, {}, (_, body) => {\n t.is(body, { foo: 'bar' })\n})\n")))}b.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/028754be.0bb6ca4a.js b/assets/js/028754be.0bb6ca4a.js new file mode 100644 index 000000000..be9ae5da5 --- /dev/null +++ b/assets/js/028754be.0bb6ca4a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[6238],{3568:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>o,default:()=>m,frontMatter:()=>a,metadata:()=>r,toc:()=>l});var s=n(5893),i=n(1151);const a={title:"SQS"},o=void 0,r={id:"events/sqs",title:"SQS",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/events/sqs.md",sourceDirName:"events",slug:"/events/sqs",permalink:"/docs/events/sqs",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/events/sqs.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",frontMatter:{title:"SQS"},sidebar:"tutorialSidebar",previous:{title:"SNS",permalink:"/docs/events/sns"},next:{title:"VPC Lattice",permalink:"/docs/events/vpc-lattice"}},d={},l=[{value:"AWS Documentation",id:"aws-documentation",level:2},{value:"Example",id:"example",level:2}];function c(e){const t={a:"a",admonition:"admonition",code:"code",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,i.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.admonition,{type:"caution",children:(0,s.jsx)(t.p,{children:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub."})}),"\n",(0,s.jsx)(t.h2,{id:"aws-documentation",children:"AWS Documentation"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html",children:"Using AWS Lambda with Amazon SQS"})}),"\n"]}),"\n",(0,s.jsx)(t.h2,{id:"example",children:"Example"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-javascript",children:"import middy from '@middy/core'\nimport eventNormalizerMiddleware from '@middy/event-normalizer'\nimport sqsPartialBatchFailure from '@middy/sqs-partial-batch-failure'\n\nexport const handler = middy()\n .use(eventNormalizerMiddleware())\n .use(sqsPartialBatchFailure())\n .handler((event, context, {signal}) => {\n // ...\n })\n"})})]})}function m(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>r,a:()=>o});var s=n(7294);const i={},a=s.createContext(i);function o(e){const t=s.useContext(a);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),s.createElement(a.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/028754be.f1113f4c.js b/assets/js/028754be.f1113f4c.js deleted file mode 100644 index 534cc330f..000000000 --- a/assets/js/028754be.f1113f4c.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[6238],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>f});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var l=n.createContext({}),c=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=c(e.components);return n.createElement(l.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),u=c(r),m=a,f=u["".concat(l,".").concat(m)]||u[m]||d[m]||o;return r?n.createElement(f,i(i({ref:t},p),{},{components:r})):n.createElement(f,i({ref:t},p))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=m;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[u]="string"==typeof e?e:a,i[1]=s;for(var c=2;c{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>s,toc:()=>c});var n=r(7462),a=(r(7294),r(3905));const o={title:"SQS"},i=void 0,s={unversionedId:"events/sqs",id:"events/sqs",title:"SQS",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/events/sqs.md",sourceDirName:"events",slug:"/events/sqs",permalink:"/docs/events/sqs",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/events/sqs.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",frontMatter:{title:"SQS"},sidebar:"tutorialSidebar",previous:{title:"SNS",permalink:"/docs/events/sns"},next:{title:"VPC Lattice",permalink:"/docs/events/vpc-lattice"}},l={},c=[{value:"AWS Documentation",id:"aws-documentation",level:2},{value:"Example",id:"example",level:2}],p={toc:c},u="wrapper";function d(e){let{components:t,...r}=e;return(0,a.kt)(u,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.")),(0,a.kt)("h2",{id:"aws-documentation"},"AWS Documentation"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html"},"Using AWS Lambda with Amazon SQS"))),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\nimport eventNormalizerMiddleware from '@middy/event-normalizer'\nimport sqsPartialBatchFailure from '@middy/sqs-partial-batch-failure'\n\nexport const handler = middy()\n .use(eventNormalizerMiddleware())\n .use(sqsPartialBatchFailure())\n .handler((event, context, {signal}) => {\n // ...\n })\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0480b142.2ce6d116.js b/assets/js/0480b142.2ce6d116.js deleted file mode 100644 index 555438fd1..000000000 --- a/assets/js/0480b142.2ce6d116.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[836],{3905:(e,t,r)=>{r.d(t,{Zo:()=>d,kt:()=>f});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),l=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},d=function(e){var t=l(e.components);return n.createElement(c.Provider,{value:t},e.children)},s="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,c=e.parentName,d=p(e,["components","mdxType","originalType","parentName"]),s=l(r),m=o,f=s["".concat(c,".").concat(m)]||s[m]||u[m]||i;return r?n.createElement(f,a(a({ref:t},d),{},{components:r})):n.createElement(f,a({ref:t},d))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,a=new Array(i);a[0]=m;var p={};for(var c in t)hasOwnProperty.call(t,c)&&(p[c]=t[c]);p.originalType=e,p[s]="string"==typeof e?e:o,a[1]=p;for(var l=2;l{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>u,frontMatter:()=>i,metadata:()=>p,toc:()=>l});var n=r(7462),o=(r(7294),r(3905));const i={title:"FAQ",sidebar_position:10},a=void 0,p={unversionedId:"faq",id:"faq",title:"FAQ",description:"My lambda keep timing out without responding, what do I do?",source:"@site/docs/faq.md",sourceDirName:".",slug:"/faq",permalink:"/docs/faq",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/faq.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",sidebarPosition:10,frontMatter:{title:"FAQ",sidebar_position:10},sidebar:"tutorialSidebar",previous:{title:"Profiling",permalink:"/docs/best-practices/profiling"}},c={},l=[{value:"My lambda keep timing out without responding, what do I do?",id:"my-lambda-keep-timing-out-without-responding-what-do-i-do",level:3}],d={toc:l},s="wrapper";function u(e){let{components:t,...r}=e;return(0,o.kt)(s,(0,n.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h3",{id:"my-lambda-keep-timing-out-without-responding-what-do-i-do"},"My lambda keep timing out without responding, what do I do?"),(0,o.kt)("p",null,"Likely your event loop is not empty. This happens when you have a database connect still open for example. Checkout ",(0,o.kt)("inlineCode",{parentName:"p"},"@middy/do-not-wait-for-empty-event-loop"),"."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0480b142.6b37e640.js b/assets/js/0480b142.6b37e640.js new file mode 100644 index 000000000..f70cc38e5 --- /dev/null +++ b/assets/js/0480b142.6b37e640.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[836],{8976:(t,e,o)=>{o.r(e),o.d(e,{assets:()=>r,contentTitle:()=>a,default:()=>u,frontMatter:()=>d,metadata:()=>s,toc:()=>c});var n=o(5893),i=o(1151);const d={title:"FAQ",sidebar_position:10},a=void 0,s={id:"faq",title:"FAQ",description:"My lambda keep timing out without responding, what do I do?",source:"@site/docs/faq.md",sourceDirName:".",slug:"/faq",permalink:"/docs/faq",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/faq.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",sidebarPosition:10,frontMatter:{title:"FAQ",sidebar_position:10},sidebar:"tutorialSidebar",previous:{title:"Profiling",permalink:"/docs/best-practices/profiling"}},r={},c=[{value:"My lambda keep timing out without responding, what do I do?",id:"my-lambda-keep-timing-out-without-responding-what-do-i-do",level:3}];function p(t){const e={code:"code",h3:"h3",p:"p",...(0,i.a)(),...t.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(e.h3,{id:"my-lambda-keep-timing-out-without-responding-what-do-i-do",children:"My lambda keep timing out without responding, what do I do?"}),"\n",(0,n.jsxs)(e.p,{children:["Likely your event loop is not empty. This happens when you have a database connect still open for example. Checkout ",(0,n.jsx)(e.code,{children:"@middy/do-not-wait-for-empty-event-loop"}),"."]})]})}function u(t={}){const{wrapper:e}={...(0,i.a)(),...t.components};return e?(0,n.jsx)(e,{...t,children:(0,n.jsx)(p,{...t})}):p(t)}},1151:(t,e,o)=>{o.d(e,{Z:()=>s,a:()=>a});var n=o(7294);const i={},d=n.createContext(i);function a(t){const e=n.useContext(d);return n.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function s(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(i):t.components||i:a(t.components),n.createElement(d.Provider,{value:e},t.children)}}}]); \ No newline at end of file diff --git a/assets/js/08eadb91.076ac5fc.js b/assets/js/08eadb91.076ac5fc.js deleted file mode 100644 index bd79a9786..000000000 --- a/assets/js/08eadb91.076ac5fc.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[1428],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),d=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},c=function(e){var t=d(e.components);return r.createElement(s.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,s=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),p=d(n),m=a,f=p["".concat(s,".").concat(m)]||p[m]||u[m]||i;return n?r.createElement(f,o(o({ref:t},c),{},{components:n})):r.createElement(f,o({ref:t},c))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,o=new Array(i);o[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[p]="string"==typeof e?e:a,o[1]=l;for(var d=2;d{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>u,frontMatter:()=>i,metadata:()=>l,toc:()=>d});var r=n(7462),a=(n(7294),n(3905));const i={title:"Custom Middlewares",position:1},o=void 0,l={unversionedId:"writing-middlewares/intro",id:"writing-middlewares/intro",title:"Custom Middlewares",description:"A middleware is an object that should contain at least 1 of 3 possible keys:",source:"@site/docs/writing-middlewares/01-intro.md",sourceDirName:"writing-middlewares",slug:"/writing-middlewares/intro",permalink:"/docs/writing-middlewares/intro",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/writing-middlewares/01-intro.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",sidebarPosition:1,frontMatter:{title:"Custom Middlewares",position:1},sidebar:"tutorialSidebar",previous:{title:"Writing Middlewares",permalink:"/docs/category/writing-middlewares"},next:{title:"Configurable Middlewares",permalink:"/docs/writing-middlewares/configurable-middlewares"}},s={},d=[],c={toc:d},p="wrapper";function u(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"A middleware is an object that should contain at least 1 of 3 possible keys:"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("inlineCode",{parentName:"li"},"before"),": a function that is executed in the before phase"),(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("inlineCode",{parentName:"li"},"after"),": a function that is executed in the after phase"),(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("inlineCode",{parentName:"li"},"onError"),": a function that is executed in case of errors")),(0,a.kt)("p",null,(0,a.kt)("inlineCode",{parentName:"p"},"before"),", ",(0,a.kt)("inlineCode",{parentName:"p"},"after")," and ",(0,a.kt)("inlineCode",{parentName:"p"},"onError")," functions need to have the following signature:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-javascript"},"const defaults = {\n // ...\n}\n\nconst nameMiddleware = (opts = {}) => {\n const options = { ...defaults, ...opts }\n\n const nameMiddlewareBefore = async (request) => {\n // ...\n }\n \n const nameMiddlewareAfter = async (request) => {\n // ...\n }\n \n const nameMiddlewareOnError = async (request) => {\n // ...\n }\n \n return {\n before: nameMiddlewareBefore,\n after: nameMiddlewareAfter,\n onError: nameMiddlewareOnError\n }\n}\n\nexport default nameMiddleware\n")),(0,a.kt)("p",null,"Where:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"request"),": is a reference to the current context and allows access to (and modification of)\nthe current ",(0,a.kt)("inlineCode",{parentName:"li"},"event")," (request), the ",(0,a.kt)("inlineCode",{parentName:"li"},"response")," (in the ",(0,a.kt)("em",{parentName:"li"},"after")," phase), and ",(0,a.kt)("inlineCode",{parentName:"li"},"error"),"\n(in case of an error).")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/08eadb91.d414cd0e.js b/assets/js/08eadb91.d414cd0e.js new file mode 100644 index 000000000..625a7f654 --- /dev/null +++ b/assets/js/08eadb91.d414cd0e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[1428],{7702:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>a,contentTitle:()=>o,default:()=>u,frontMatter:()=>s,metadata:()=>d,toc:()=>c});var r=t(5893),i=t(1151);const s={title:"Custom Middlewares",position:1},o=void 0,d={id:"writing-middlewares/intro",title:"Custom Middlewares",description:"A middleware is an object that should contain at least 1 of 3 possible keys:",source:"@site/docs/writing-middlewares/01-intro.md",sourceDirName:"writing-middlewares",slug:"/writing-middlewares/intro",permalink:"/docs/writing-middlewares/intro",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/writing-middlewares/01-intro.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",sidebarPosition:1,frontMatter:{title:"Custom Middlewares",position:1},sidebar:"tutorialSidebar",previous:{title:"Writing Middlewares",permalink:"/docs/category/writing-middlewares"},next:{title:"Configurable Middlewares",permalink:"/docs/writing-middlewares/configurable-middlewares"}},a={},c=[];function l(e){const n={code:"code",em:"em",li:"li",ol:"ol",p:"p",pre:"pre",ul:"ul",...(0,i.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.p,{children:"A middleware is an object that should contain at least 1 of 3 possible keys:"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"before"}),": a function that is executed in the before phase"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"after"}),": a function that is executed in the after phase"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"onError"}),": a function that is executed in case of errors"]}),"\n"]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.code,{children:"before"}),", ",(0,r.jsx)(n.code,{children:"after"})," and ",(0,r.jsx)(n.code,{children:"onError"})," functions need to have the following signature:"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-javascript",children:"const defaults = {\n // ...\n}\n\nconst nameMiddleware = (opts = {}) => {\n const options = { ...defaults, ...opts }\n\n const nameMiddlewareBefore = async (request) => {\n // ...\n }\n \n const nameMiddlewareAfter = async (request) => {\n // ...\n }\n \n const nameMiddlewareOnError = async (request) => {\n // ...\n }\n \n return {\n before: nameMiddlewareBefore,\n after: nameMiddlewareAfter,\n onError: nameMiddlewareOnError\n }\n}\n\nexport default nameMiddleware\n"})}),"\n",(0,r.jsx)(n.p,{children:"Where:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"request"}),": is a reference to the current context and allows access to (and modification of)\nthe current ",(0,r.jsx)(n.code,{children:"event"})," (request), the ",(0,r.jsx)(n.code,{children:"response"})," (in the ",(0,r.jsx)(n.em,{children:"after"})," phase), and ",(0,r.jsx)(n.code,{children:"error"}),"\n(in case of an error)."]}),"\n"]})]})}function u(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(l,{...e})}):l(e)}},1151:(e,n,t)=>{t.d(n,{Z:()=>d,a:()=>o});var r=t(7294);const i={},s=r.createContext(i);function o(e){const n=r.useContext(s);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),r.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/08f83687.0ddc2d24.js b/assets/js/08f83687.0ddc2d24.js deleted file mode 100644 index b5c12dd96..000000000 --- a/assets/js/08f83687.0ddc2d24.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[5409],{3905:(e,t,n)=>{n.d(t,{Zo:()=>m,kt:()=>f});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=r.createContext({}),s=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},m=function(e){var t=s(e.components);return r.createElement(l.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,m=c(e,["components","mdxType","originalType","parentName"]),p=s(n),u=o,f=p["".concat(l,".").concat(u)]||p[u]||d[u]||a;return n?r.createElement(f,i(i({ref:t},m),{},{components:n})):r.createElement(f,i({ref:t},m))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=u;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[p]="string"==typeof e?e:o,i[1]=c;for(var s=2;s{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>s});var r=n(7462),o=(n(7294),n(3905));const a={title:"Code Commit"},i=void 0,c={unversionedId:"events/code-commit",id:"events/code-commit",title:"Code Commit",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/events/code-commit.md",sourceDirName:"events",slug:"/events/code-commit",permalink:"/docs/events/code-commit",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/events/code-commit.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",frontMatter:{title:"Code Commit"},sidebar:"tutorialSidebar",previous:{title:"Cloud Watch Logs",permalink:"/docs/events/cloud-watch-logs"},next:{title:"CodePipeline",permalink:"/docs/events/code-pipeline"}},l={},s=[{value:"AWS Documentation",id:"aws-documentation",level:2},{value:"Example",id:"example",level:2}],m={toc:s},p="wrapper";function d(e){let{components:t,...n}=e;return(0,o.kt)(p,(0,r.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("admonition",{type:"caution"},(0,o.kt)("p",{parentName:"admonition"},"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.")),(0,o.kt)("h2",{id:"aws-documentation"},"AWS Documentation"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://docs.aws.amazon.com/lambda/latest/dg/services-codecommit.html"},"Using AWS Lambda with AWS CodeCommit"))),(0,o.kt)("h2",{id:"example"},"Example"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\n\nexport const handler = middy()\n .handler((event, context, {signal}) => {\n // ...\n })\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/08f83687.7ceb497d.js b/assets/js/08f83687.7ceb497d.js new file mode 100644 index 000000000..197724875 --- /dev/null +++ b/assets/js/08f83687.7ceb497d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[5409],{2423:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>l,frontMatter:()=>s,metadata:()=>d,toc:()=>r});var o=n(5893),i=n(1151);const s={title:"Code Commit"},a=void 0,d={id:"events/code-commit",title:"Code Commit",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/events/code-commit.md",sourceDirName:"events",slug:"/events/code-commit",permalink:"/docs/events/code-commit",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/events/code-commit.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",frontMatter:{title:"Code Commit"},sidebar:"tutorialSidebar",previous:{title:"Cloud Watch Logs",permalink:"/docs/events/cloud-watch-logs"},next:{title:"CodePipeline",permalink:"/docs/events/code-pipeline"}},c={},r=[{value:"AWS Documentation",id:"aws-documentation",level:2},{value:"Example",id:"example",level:2}];function m(e){const t={a:"a",admonition:"admonition",code:"code",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,i.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.admonition,{type:"caution",children:(0,o.jsx)(t.p,{children:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub."})}),"\n",(0,o.jsx)(t.h2,{id:"aws-documentation",children:"AWS Documentation"}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsx)(t.li,{children:(0,o.jsx)(t.a,{href:"https://docs.aws.amazon.com/lambda/latest/dg/services-codecommit.html",children:"Using AWS Lambda with AWS CodeCommit"})}),"\n"]}),"\n",(0,o.jsx)(t.h2,{id:"example",children:"Example"}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-javascript",children:"import middy from '@middy/core'\n\nexport const handler = middy()\n .handler((event, context, {signal}) => {\n // ...\n })\n"})})]})}function l(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(m,{...e})}):m(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>d,a:()=>a});var o=n(7294);const i={},s=o.createContext(i);function a(e){const t=o.useContext(s);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function d(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),o.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/0976e874.199a929a.js b/assets/js/0976e874.199a929a.js new file mode 100644 index 000000000..b7fe0c214 --- /dev/null +++ b/assets/js/0976e874.199a929a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[4267],{8369:(e,r,t)=>{t.r(r),t.d(r,{assets:()=>d,contentTitle:()=>i,default:()=>m,frontMatter:()=>s,metadata:()=>u,toc:()=>c});var n=t(5893),a=t(1151),o=t(4866),l=t(5162);const s={title:"error-logger"},i=void 0,u={id:"middlewares/error-logger",title:"error-logger",description:"Logs the error and propagates it to the next middleware.",source:"@site/docs/middlewares/error-logger.md",sourceDirName:"middlewares",slug:"/middlewares/error-logger",permalink:"/docs/middlewares/error-logger",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/middlewares/error-logger.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",frontMatter:{title:"error-logger"},sidebar:"tutorialSidebar",previous:{title:"dynamodb",permalink:"/docs/middlewares/dynamodb"},next:{title:"event-normalizer",permalink:"/docs/middlewares/event-normalizer"}},d={},c=[{value:"Install",id:"install",level:2},{value:"Options",id:"options",level:2},{value:"Sample usage",id:"sample-usage",level:2}];function h(e){const r={code:"code",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,a.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(r.p,{children:"Logs the error and propagates it to the next middleware."}),"\n",(0,n.jsxs)(r.p,{children:["By default AWS Lambda does not print errors in the CloudWatch logs. If you want to make sure that you don't miss error logs, you would have to catch any error and pass it through ",(0,n.jsx)(r.code,{children:"console.error"})," yourself."]}),"\n",(0,n.jsx)(r.p,{children:"This middleware will take care to intercept any error and log it for you. The middleware is not going to interfere with other error handlers because it will propagate the error to the next error handler middleware without handling it. You just have to make sure to attach this middleware before any other error handling middleware."}),"\n",(0,n.jsxs)(r.p,{children:["By default, the logging operate by using the ",(0,n.jsx)(r.code,{children:"console.error"})," function. You can pass as a parameter a custom logger with additional logic if you need. It can be useful if you want to process the log by doing a http call or anything else."]}),"\n",(0,n.jsx)(r.h2,{id:"install",children:"Install"}),"\n",(0,n.jsx)(r.p,{children:"To install this middleware you can use NPM:"}),"\n",(0,n.jsxs)(o.Z,{groupId:"npm2yarn",children:[(0,n.jsx)(l.Z,{value:"npm",children:(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-bash",children:"npm install --save @middy/error-logger\n"})})}),(0,n.jsx)(l.Z,{value:"yarn",label:"Yarn",children:(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-bash",children:"yarn add @middy/error-logger\n"})})}),(0,n.jsx)(l.Z,{value:"pnpm",label:"pnpm",children:(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-bash",children:"pnpm add @middy/error-logger\n"})})})]}),"\n",(0,n.jsx)(r.h2,{id:"options",children:"Options"}),"\n",(0,n.jsxs)(r.ul,{children:["\n",(0,n.jsxs)(r.li,{children:[(0,n.jsx)(r.code,{children:"logger"})," property: a function (default ",(0,n.jsx)(r.code,{children:"(request) => console.error(request.error)"}),") that is used to define the logging logic. It receives the Error object as first and only parameter."]}),"\n"]}),"\n",(0,n.jsx)(r.h2,{id:"sample-usage",children:"Sample usage"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-javascript",children:"import middy from '@middy/core'\nimport errorLogger from '@middy/error-logger'\n\nconst lambdaHandler = (event, context) => {\n // your handler logic\n}\n\nexport const handler = middy().use(errorLogger()).handler(lambdaHandler)\n"})})]})}function m(e={}){const{wrapper:r}={...(0,a.a)(),...e.components};return r?(0,n.jsx)(r,{...e,children:(0,n.jsx)(h,{...e})}):h(e)}},5162:(e,r,t)=>{t.d(r,{Z:()=>l});t(7294);var n=t(6010);const a={tabItem:"tabItem_Ymn6"};var o=t(5893);function l(e){let{children:r,hidden:t,className:l}=e;return(0,o.jsx)("div",{role:"tabpanel",className:(0,n.Z)(a.tabItem,l),hidden:t,children:r})}},4866:(e,r,t)=>{t.d(r,{Z:()=>j});var n=t(7294),a=t(6010),o=t(2466),l=t(6550),s=t(469),i=t(1980),u=t(7392),d=t(12);function c(e){return n.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,n.isValidElement)(e)&&function(e){const{props:r}=e;return!!r&&"object"==typeof r&&"value"in r}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function h(e){const{values:r,children:t}=e;return(0,n.useMemo)((()=>{const e=r??function(e){return c(e).map((e=>{let{props:{value:r,label:t,attributes:n,default:a}}=e;return{value:r,label:t,attributes:n,default:a}}))}(t);return function(e){const r=(0,u.l)(e,((e,r)=>e.value===r.value));if(r.length>0)throw new Error(`Docusaurus error: Duplicate values "${r.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[r,t])}function m(e){let{value:r,tabValues:t}=e;return t.some((e=>e.value===r))}function p(e){let{queryString:r=!1,groupId:t}=e;const a=(0,l.k6)(),o=function(e){let{queryString:r=!1,groupId:t}=e;if("string"==typeof r)return r;if(!1===r)return null;if(!0===r&&!t)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:r,groupId:t});return[(0,i._X)(o),(0,n.useCallback)((e=>{if(!o)return;const r=new URLSearchParams(a.location.search);r.set(o,e),a.replace({...a.location,search:r.toString()})}),[o,a])]}function g(e){const{defaultValue:r,queryString:t=!1,groupId:a}=e,o=h(e),[l,i]=(0,n.useState)((()=>function(e){let{defaultValue:r,tabValues:t}=e;if(0===t.length)throw new Error("Docusaurus error: the component requires at least one children component");if(r){if(!m({value:r,tabValues:t}))throw new Error(`Docusaurus error: The has a defaultValue "${r}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return r}const n=t.find((e=>e.default))??t[0];if(!n)throw new Error("Unexpected error: 0 tabValues");return n.value}({defaultValue:r,tabValues:o}))),[u,c]=p({queryString:t,groupId:a}),[g,f]=function(e){let{groupId:r}=e;const t=function(e){return e?`docusaurus.tab.${e}`:null}(r),[a,o]=(0,d.Nk)(t);return[a,(0,n.useCallback)((e=>{t&&o.set(e)}),[t,o])]}({groupId:a}),b=(()=>{const e=u??g;return m({value:e,tabValues:o})?e:null})();(0,s.Z)((()=>{b&&i(b)}),[b]);return{selectedValue:l,selectValue:(0,n.useCallback)((e=>{if(!m({value:e,tabValues:o}))throw new Error(`Can't select invalid tab value=${e}`);i(e),c(e),f(e)}),[c,f,o]),tabValues:o}}var f=t(2389);const b={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var v=t(5893);function y(e){let{className:r,block:t,selectedValue:n,selectValue:l,tabValues:s}=e;const i=[],{blockElementScrollPositionUntilNextRender:u}=(0,o.o5)(),d=e=>{const r=e.currentTarget,t=i.indexOf(r),a=s[t].value;a!==n&&(u(r),l(a))},c=e=>{let r=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{const t=i.indexOf(e.currentTarget)+1;r=i[t]??i[0];break}case"ArrowLeft":{const t=i.indexOf(e.currentTarget)-1;r=i[t]??i[i.length-1];break}}r?.focus()};return(0,v.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,a.Z)("tabs",{"tabs--block":t},r),children:s.map((e=>{let{value:r,label:t,attributes:o}=e;return(0,v.jsx)("li",{role:"tab",tabIndex:n===r?0:-1,"aria-selected":n===r,ref:e=>i.push(e),onKeyDown:c,onClick:d,...o,className:(0,a.Z)("tabs__item",b.tabItem,o?.className,{"tabs__item--active":n===r}),children:t??r},r)}))})}function x(e){let{lazy:r,children:t,selectedValue:a}=e;const o=(Array.isArray(t)?t:[t]).filter(Boolean);if(r){const e=o.find((e=>e.props.value===a));return e?(0,n.cloneElement)(e,{className:"margin-top--md"}):null}return(0,v.jsx)("div",{className:"margin-top--md",children:o.map(((e,r)=>(0,n.cloneElement)(e,{key:r,hidden:e.props.value!==a})))})}function w(e){const r=g(e);return(0,v.jsxs)("div",{className:(0,a.Z)("tabs-container",b.tabList),children:[(0,v.jsx)(y,{...e,...r}),(0,v.jsx)(x,{...e,...r})]})}function j(e){const r=(0,f.Z)();return(0,v.jsx)(w,{...e,children:c(e.children)},String(r))}},1151:(e,r,t)=>{t.d(r,{Z:()=>s,a:()=>l});var n=t(7294);const a={},o=n.createContext(a);function l(e){const r=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function s(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:l(e.components),n.createElement(o.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/0976e874.32d84b32.js b/assets/js/0976e874.32d84b32.js deleted file mode 100644 index 8c1a4e541..000000000 --- a/assets/js/0976e874.32d84b32.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[4267],{3905:(e,t,r)=>{r.d(t,{Zo:()=>c,kt:()=>g});var a=r(7294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function l(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var u=a.createContext({}),s=function(e){var t=a.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},c=function(e){var t=s(e.components);return a.createElement(u.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,u=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),d=s(r),m=n,g=d["".concat(u,".").concat(m)]||d[m]||p[m]||o;return r?a.createElement(g,l(l({ref:t},c),{},{components:r})):a.createElement(g,l({ref:t},c))}));function g(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,l=new Array(o);l[0]=m;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[d]="string"==typeof e?e:n,l[1]=i;for(var s=2;s{r.d(t,{Z:()=>l});var a=r(7294),n=r(6010);const o={tabItem:"tabItem_Ymn6"};function l(e){let{children:t,hidden:r,className:l}=e;return a.createElement("div",{role:"tabpanel",className:(0,n.Z)(o.tabItem,l),hidden:r},t)}},4866:(e,t,r)=>{r.d(t,{Z:()=>k});var a=r(7462),n=r(7294),o=r(6010),l=r(2466),i=r(6550),u=r(1980),s=r(7392),c=r(12);function d(e){return function(e){return n.Children.map(e,(e=>{if(!e||(0,n.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:r,attributes:a,default:n}}=e;return{value:t,label:r,attributes:a,default:n}}))}function p(e){const{values:t,children:r}=e;return(0,n.useMemo)((()=>{const e=t??d(r);return function(e){const t=(0,s.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[t,r])}function m(e){let{value:t,tabValues:r}=e;return r.some((e=>e.value===t))}function g(e){let{queryString:t=!1,groupId:r}=e;const a=(0,i.k6)(),o=function(e){let{queryString:t=!1,groupId:r}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!r)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return r??null}({queryString:t,groupId:r});return[(0,u._X)(o),(0,n.useCallback)((e=>{if(!o)return;const t=new URLSearchParams(a.location.search);t.set(o,e),a.replace({...a.location,search:t.toString()})}),[o,a])]}function f(e){const{defaultValue:t,queryString:r=!1,groupId:a}=e,o=p(e),[l,i]=(0,n.useState)((()=>function(e){let{defaultValue:t,tabValues:r}=e;if(0===r.length)throw new Error("Docusaurus error: the component requires at least one children component");if(t){if(!m({value:t,tabValues:r}))throw new Error(`Docusaurus error: The has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${r.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const a=r.find((e=>e.default))??r[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:t,tabValues:o}))),[u,s]=g({queryString:r,groupId:a}),[d,f]=function(e){let{groupId:t}=e;const r=function(e){return e?`docusaurus.tab.${e}`:null}(t),[a,o]=(0,c.Nk)(r);return[a,(0,n.useCallback)((e=>{r&&o.set(e)}),[r,o])]}({groupId:a}),b=(()=>{const e=u??d;return m({value:e,tabValues:o})?e:null})();(0,n.useLayoutEffect)((()=>{b&&i(b)}),[b]);return{selectedValue:l,selectValue:(0,n.useCallback)((e=>{if(!m({value:e,tabValues:o}))throw new Error(`Can't select invalid tab value=${e}`);i(e),s(e),f(e)}),[s,f,o]),tabValues:o}}var b=r(2389);const h={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};function y(e){let{className:t,block:r,selectedValue:i,selectValue:u,tabValues:s}=e;const c=[],{blockElementScrollPositionUntilNextRender:d}=(0,l.o5)(),p=e=>{const t=e.currentTarget,r=c.indexOf(t),a=s[r].value;a!==i&&(d(t),u(a))},m=e=>{let t=null;switch(e.key){case"Enter":p(e);break;case"ArrowRight":{const r=c.indexOf(e.currentTarget)+1;t=c[r]??c[0];break}case"ArrowLeft":{const r=c.indexOf(e.currentTarget)-1;t=c[r]??c[c.length-1];break}}t?.focus()};return n.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,o.Z)("tabs",{"tabs--block":r},t)},s.map((e=>{let{value:t,label:r,attributes:l}=e;return n.createElement("li",(0,a.Z)({role:"tab",tabIndex:i===t?0:-1,"aria-selected":i===t,key:t,ref:e=>c.push(e),onKeyDown:m,onClick:p},l,{className:(0,o.Z)("tabs__item",h.tabItem,l?.className,{"tabs__item--active":i===t})}),r??t)})))}function v(e){let{lazy:t,children:r,selectedValue:a}=e;const o=(Array.isArray(r)?r:[r]).filter(Boolean);if(t){const e=o.find((e=>e.props.value===a));return e?(0,n.cloneElement)(e,{className:"margin-top--md"}):null}return n.createElement("div",{className:"margin-top--md"},o.map(((e,t)=>(0,n.cloneElement)(e,{key:t,hidden:e.props.value!==a}))))}function w(e){const t=f(e);return n.createElement("div",{className:(0,o.Z)("tabs-container",h.tabList)},n.createElement(y,(0,a.Z)({},e,t)),n.createElement(v,(0,a.Z)({},e,t)))}function k(e){const t=(0,b.Z)();return n.createElement(w,(0,a.Z)({key:String(t)},e))}},6252:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>u,default:()=>g,frontMatter:()=>i,metadata:()=>s,toc:()=>d});var a=r(7462),n=(r(7294),r(3905)),o=r(4866),l=r(5162);const i={title:"error-logger"},u=void 0,s={unversionedId:"middlewares/error-logger",id:"middlewares/error-logger",title:"error-logger",description:"Logs the error and propagates it to the next middleware.",source:"@site/docs/middlewares/error-logger.md",sourceDirName:"middlewares",slug:"/middlewares/error-logger",permalink:"/docs/middlewares/error-logger",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/middlewares/error-logger.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",frontMatter:{title:"error-logger"},sidebar:"tutorialSidebar",previous:{title:"dynamodb",permalink:"/docs/middlewares/dynamodb"},next:{title:"event-normalizer",permalink:"/docs/middlewares/event-normalizer"}},c={},d=[{value:"Install",id:"install",level:2},{value:"Options",id:"options",level:2},{value:"Sample usage",id:"sample-usage",level:2}],p={toc:d},m="wrapper";function g(e){let{components:t,...r}=e;return(0,n.kt)(m,(0,a.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"Logs the error and propagates it to the next middleware."),(0,n.kt)("p",null,"By default AWS Lambda does not print errors in the CloudWatch logs. If you want to make sure that you don't miss error logs, you would have to catch any error and pass it through ",(0,n.kt)("inlineCode",{parentName:"p"},"console.error")," yourself."),(0,n.kt)("p",null,"This middleware will take care to intercept any error and log it for you. The middleware is not going to interfere with other error handlers because it will propagate the error to the next error handler middleware without handling it. You just have to make sure to attach this middleware before any other error handling middleware."),(0,n.kt)("p",null,"By default, the logging operate by using the ",(0,n.kt)("inlineCode",{parentName:"p"},"console.error")," function. You can pass as a parameter a custom logger with additional logic if you need. It can be useful if you want to process the log by doing a http call or anything else."),(0,n.kt)("h2",{id:"install"},"Install"),(0,n.kt)("p",null,"To install this middleware you can use NPM:"),(0,n.kt)(o.Z,{groupId:"npm2yarn",mdxType:"Tabs"},(0,n.kt)(l.Z,{value:"npm",mdxType:"TabItem"},(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-bash"},"npm install --save @middy/error-logger\n"))),(0,n.kt)(l.Z,{value:"yarn",label:"Yarn",mdxType:"TabItem"},(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-bash"},"yarn add @middy/error-logger\n"))),(0,n.kt)(l.Z,{value:"pnpm",label:"pnpm",mdxType:"TabItem"},(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-bash"},"pnpm add @middy/error-logger\n")))),(0,n.kt)("h2",{id:"options"},"Options"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"logger")," property: a function (default ",(0,n.kt)("inlineCode",{parentName:"li"},"console.error"),") that is used to define the logging logic. It receives the Error object as first and only parameter.")),(0,n.kt)("h2",{id:"sample-usage"},"Sample usage"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\nimport errorLogger from '@middy/error-logger'\n\nconst handler = middy((event, context) => {\n // your handler logic\n})\n\nhandler\n .use(errorLogger())\n")))}g.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0ce61a91.6c5ba8ab.js b/assets/js/0ce61a91.6c5ba8ab.js new file mode 100644 index 000000000..58ffe8fb2 --- /dev/null +++ b/assets/js/0ce61a91.6c5ba8ab.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[6540],{8593:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>r,contentTitle:()=>d,default:()=>p,frontMatter:()=>t,metadata:()=>o,toc:()=>a});var i=s(5893),l=s(1151);const t={title:"Bundling Lambda packages",sidebar_position:5},d=void 0,o={id:"best-practices/bundling",title:"Bundling Lambda packages",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/best-practices/05-bundling.md",sourceDirName:"best-practices",slug:"/best-practices/bundling",permalink:"/docs/best-practices/bundling",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/best-practices/05-bundling.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",sidebarPosition:5,frontMatter:{title:"Bundling Lambda packages",sidebar_position:5},sidebar:"tutorialSidebar",previous:{title:"Internal Context",permalink:"/docs/best-practices/internal-context"},next:{title:"Small node_modules",permalink:"/docs/best-practices/small-node-modules"}},r={},a=[{value:"Compilers",id:"compilers",level:2},{value:"typescript",id:"typescript",level:3},{value:"tsconfig.json",id:"tsconfigjson",level:4},{value:"Bundlers",id:"bundlers",level:2},{value:"esbuild",id:"esbuild",level:3},{value:"rollup",id:"rollup",level:3},{value:"rollup.config.mjs",id:"rollupconfigmjs",level:4},{value:"swc/pack",id:"swcpack",level:3},{value:"webpack",id:"webpack",level:3},{value:"webpack.config.mjs",id:"webpackconfigmjs",level:4},{value:"Transpilers",id:"transpilers",level:2},{value:"babel",id:"babel",level:3},{value:"babel.config.json",id:"babelconfigjson",level:4},{value:"esbuild",id:"esbuild-1",level:3},{value:"swc",id:"swc",level:3},{value:".swcrc",id:"swcrc",level:4}];function c(e){const n={admonition:"admonition",code:"code",h2:"h2",h3:"h3",h4:"h4",p:"p",pre:"pre",...(0,l.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.admonition,{type:"caution",children:(0,i.jsx)(n.p,{children:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub."})}),"\n",(0,i.jsxs)(n.p,{children:["Always bundle the ",(0,i.jsx)(n.code,{children:"@aws-sdk/*"})," with your project eventhough the Lambda runtime already includes it by default (Note: nodejs16.x does not have AWS SDK v3 included).\nThis gives you full control of when to update the SDK to prevent unexpected errors from a bad SDK version, allows you to ensure that you are running the latest version with the most up to date fixes and features, and has been shown to decrease cold start times."]}),"\n",(0,i.jsx)(n.h2,{id:"compilers",children:"Compilers"}),"\n",(0,i.jsx)(n.h3,{id:"typescript",children:"typescript"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"npm i -D typescript\nnode_modules/.bin/tsc\n"})}),"\n",(0,i.jsx)(n.h4,{id:"tsconfigjson",children:"tsconfig.json"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-json",children:'{\n "compilerOptions": {\n "baseUrl": "./",\n "esModuleInterop": true,\n "preserveConstEnums": true,\n "strictNullChecks": true,\n "allowJs": false,\n "target": "es2021",\n "typeRoots": ["node_modules/@types"],\n "resolveJsonModule": true,\n "moduleResolution": "node"\n }\n}\n'})}),"\n",(0,i.jsx)(n.h2,{id:"bundlers",children:"Bundlers"}),"\n",(0,i.jsx)(n.h3,{id:"esbuild",children:"esbuild"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"npm i -D esbuild\n\n# --banner:js hack from https://github.com/evanw/esbuild/pull/2067\nnode_modules/.bin/esbuild index.js \\\n --platform=node --format=esm --target=node18 --bundle --minify \\\n --banner:js=\"import { createRequire } from 'module';const require = createRequire(import.meta.url);\" \\\n --legal-comments=external --sourcemap=external \\\n --allow-overwrite --outfile=index.mjs\n\n"})}),"\n",(0,i.jsx)(n.h3,{id:"rollup",children:"rollup"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"npm i -D rollup @rollup/plugin-node-resolve @rollup/plugin-commonjs\nnode_modules/.bin/rollup --config\n"})}),"\n",(0,i.jsx)(n.h4,{id:"rollupconfigmjs",children:"rollup.config.mjs"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-javascript",children:"import { nodeResolve } from '@rollup/plugin-node-resolve'\nimport commonjs from '@rollup/plugin-commonjs'\n\nconst plugins = [nodeResolve({ preferBuiltins: true }), commonjs()]\n\nexport default (input) => ({\n input: 'index.js',\n output: {\n file: 'index.bundle.rollup.mjs',\n format: 'es' // cjs, es\n },\n plugins,\n external: [\n // AWS SDK\n '@aws-sdk/client-apigatewaymanagementapi', // @middy/ws-response\n '@aws-sdk/client-rds', // @middy/rds-signer\n '@aws-sdk/client-s3', // @middy/s3-object-response\n '@aws-sdk/client-secretsmanager', // @middy/sercrets-manager\n '@aws-sdk/client-servicediscovery', // @middy/service-discovery\n '@aws-sdk/client-ssm', // @middy/ssm\n '@aws-sdk/client-sts' // @middy/sts\n ]\n})\n"})}),"\n",(0,i.jsx)(n.h3,{id:"swcpack",children:"swc/pack"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"npm i -D @swc/cli @swc/core\nnode_modules/.bin/spack\n"})}),"\n",(0,i.jsx)(n.admonition,{type:"caution",children:(0,i.jsx)(n.p,{children:"Incomplete"})}),"\n",(0,i.jsx)(n.h3,{id:"webpack",children:"webpack"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"npm i -D webpack-cli webpack\nnode_modules/.bin/webpack\n"})}),"\n",(0,i.jsx)(n.h4,{id:"webpackconfigmjs",children:"webpack.config.mjs"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-javascript",children:"import path from 'node:path'\nimport { fileURLToPath } from 'node:url'\n\nconst __filename = fileURLToPath(import.meta.url)\nconst __dirname = path.dirname(__filename)\n\nexport default {\n mode: 'development',\n entry: './index.js',\n output: {\n filename: 'index.bundle.webpack.mjs',\n path: __dirname\n },\n experiments: {\n outputModule: true\n },\n externals: [\n // NodeJS modules\n 'events', // @middy/core\n 'https', // @middy/s3-object-response\n 'stream', // @middy/http-content-encoding @middy/s3-object-response\n 'util', // @middy/http-content-encoding\n 'zlib', // @middy/http-content-encoding\n // AWS SDK\n '@aws-sdk/client-apigatewaymanagementapi', // @middy/ws-response\n '@aws-sdk/client-rds', // @middy/rds-signer\n '@aws-sdk/client-s3', // @middy/s3-object-response\n '@aws-sdk/client-secretsmanager', // @middy/sercrets-manager\n '@aws-sdk/client-servicediscovery', // @middy/service-discovery\n '@aws-sdk/client-ssm', // @middy/ssm\n '@aws-sdk/client-sts' // @middy/sts\n ]\n}\n"})}),"\n",(0,i.jsx)(n.h2,{id:"transpilers",children:"Transpilers"}),"\n",(0,i.jsx)(n.h3,{id:"babel",children:"babel"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"npm i -D @babel/cli @babel/core @babel/preset-env\nnode_modules/.bin/babel index.js --out-file index.transpile.babel.cjs\n"})}),"\n",(0,i.jsx)(n.h4,{id:"babelconfigjson",children:"babel.config.json"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-json",children:'{\n "presets": [\n [\n "@babel/preset-env",\n {\n "targets": {\n "node": "16"\n }\n }\n ]\n ]\n}\n'})}),"\n",(0,i.jsx)(n.h3,{id:"esbuild-1",children:"esbuild"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"npm i -D esbuild\nnode_modules/.bin/esbuild --platform=node --target=node16 --format=cjs index.js --outfile=index.cjs\n"})}),"\n",(0,i.jsx)(n.h3,{id:"swc",children:"swc"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"npm i -D @swc/cli @swc/core\nnode_modules/.bin/swc index.js --out-file index.transpile.swc.cjs\n"})}),"\n",(0,i.jsx)(n.h4,{id:"swcrc",children:".swcrc"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-json",children:'{\n "jsc": {\n "parser": {\n "syntax": "ecmascript"\n },\n "target": "es2021"\n },\n "module": {\n "type": "commonjs"\n }\n}\n'})})]})}function p(e={}){const{wrapper:n}={...(0,l.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},1151:(e,n,s)=>{s.d(n,{Z:()=>o,a:()=>d});var i=s(7294);const l={},t=i.createContext(l);function d(e){const n=i.useContext(t);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:d(e.components),i.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/0ce61a91.b731cc1e.js b/assets/js/0ce61a91.b731cc1e.js deleted file mode 100644 index 29da78258..000000000 --- a/assets/js/0ce61a91.b731cc1e.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[6540],{3905:(e,n,t)=>{t.d(n,{Zo:()=>c,kt:()=>b});var s=t(7294);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function a(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);n&&(s=s.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,s)}return t}function l(e){for(var n=1;n=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(s=0;s=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var o=s.createContext({}),d=function(e){var n=s.useContext(o),t=n;return e&&(t="function"==typeof e?e(n):l(l({},n),e)),t},c=function(e){var n=d(e.components);return s.createElement(o.Provider,{value:n},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return s.createElement(s.Fragment,{},n)}},m=s.forwardRef((function(e,n){var t=e.components,r=e.mdxType,a=e.originalType,o=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),p=d(t),m=r,b=p["".concat(o,".").concat(m)]||p[m]||u[m]||a;return t?s.createElement(b,l(l({ref:n},c),{},{components:t})):s.createElement(b,l({ref:n},c))}));function b(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var a=t.length,l=new Array(a);l[0]=m;var i={};for(var o in n)hasOwnProperty.call(n,o)&&(i[o]=n[o]);i.originalType=e,i[p]="string"==typeof e?e:r,l[1]=i;for(var d=2;d{t.r(n),t.d(n,{assets:()=>o,contentTitle:()=>l,default:()=>u,frontMatter:()=>a,metadata:()=>i,toc:()=>d});var s=t(7462),r=(t(7294),t(3905));const a={title:"Bundling Lambda packages",sidebar_position:5},l=void 0,i={unversionedId:"best-practices/bundling",id:"best-practices/bundling",title:"Bundling Lambda packages",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/best-practices/05-bundling.md",sourceDirName:"best-practices",slug:"/best-practices/bundling",permalink:"/docs/best-practices/bundling",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/best-practices/05-bundling.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",sidebarPosition:5,frontMatter:{title:"Bundling Lambda packages",sidebar_position:5},sidebar:"tutorialSidebar",previous:{title:"Internal Context",permalink:"/docs/best-practices/internal-context"},next:{title:"Small node_modules",permalink:"/docs/best-practices/small-node-modules"}},o={},d=[{value:"Compilers",id:"compilers",level:2},{value:"typescript",id:"typescript",level:3},{value:"tsconfig.json",id:"tsconfigjson",level:4},{value:"Bundlers",id:"bundlers",level:2},{value:"esbuild",id:"esbuild",level:3},{value:"rollup",id:"rollup",level:3},{value:"rollup.config.mjs",id:"rollupconfigmjs",level:4},{value:"swc/pack",id:"swcpack",level:3},{value:"webpack",id:"webpack",level:3},{value:"webpack.config.mjs",id:"webpackconfigmjs",level:4},{value:"Transpilers",id:"transpilers",level:2},{value:"babel",id:"babel",level:3},{value:"babel.config.json",id:"babelconfigjson",level:4},{value:"esbuild",id:"esbuild-1",level:3},{value:"swc",id:"swc",level:3},{value:".swcrc",id:"swcrc",level:4}],c={toc:d},p="wrapper";function u(e){let{components:n,...t}=e;return(0,r.kt)(p,(0,s.Z)({},c,t,{components:n,mdxType:"MDXLayout"}),(0,r.kt)("admonition",{type:"caution"},(0,r.kt)("p",{parentName:"admonition"},"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.")),(0,r.kt)("p",null,"Always bundle the ",(0,r.kt)("inlineCode",{parentName:"p"},"@aws-sdk/*")," with your project eventhough the Lambda runtime already includes it by default (Note: nodejs16.x does not have AWS SDK v3 included).\nThis gives you full control of when to update the SDK to prevent unexpected errors from a bad SDK version, allows you to ensure that you are running the latest version with the most up to date fixes and features, and has been shown to decrease cold start times."),(0,r.kt)("h2",{id:"compilers"},"Compilers"),(0,r.kt)("h3",{id:"typescript"},"typescript"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"npm i -D typescript\nnode_modules/.bin/tsc\n")),(0,r.kt)("h4",{id:"tsconfigjson"},"tsconfig.json"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-json"},'{\n "compilerOptions": {\n "baseUrl": "./",\n "esModuleInterop": true,\n "preserveConstEnums": true,\n "strictNullChecks": true,\n "allowJs": false,\n "target": "es2021",\n "typeRoots": ["node_modules/@types"],\n "resolveJsonModule": true,\n "moduleResolution": "node"\n }\n}\n')),(0,r.kt)("h2",{id:"bundlers"},"Bundlers"),(0,r.kt)("h3",{id:"esbuild"},"esbuild"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"npm i -D esbuild\n\n# --banner:js hack from https://github.com/evanw/esbuild/pull/2067\nnode_modules/.bin/esbuild index.js \\\n --platform=node --format=esm --target=node18 --bundle --minify \\\n --banner:js=\"import { createRequire } from 'module';const require = createRequire(import.meta.url);\" \\\n --legal-comments=external --sourcemap=external \\\n --allow-overwrite --outfile=index.mjs\n\n")),(0,r.kt)("h3",{id:"rollup"},"rollup"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"npm i -D rollup @rollup/plugin-node-resolve @rollup/plugin-commonjs\nnode_modules/.bin/rollup --config\n")),(0,r.kt)("h4",{id:"rollupconfigmjs"},"rollup.config.mjs"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-javascript"},"import { nodeResolve } from '@rollup/plugin-node-resolve'\nimport commonjs from '@rollup/plugin-commonjs'\n\nconst plugins = [nodeResolve({ preferBuiltins: true }), commonjs()]\n\nexport default (input) => ({\n input: 'index.js',\n output: {\n file: 'index.bundle.rollup.mjs',\n format: 'es' // cjs, es\n },\n plugins,\n external: [\n // AWS SDK\n '@aws-sdk/client-apigatewaymanagementapi', // @middy/ws-response\n '@aws-sdk/client-rds', // @middy/rds-signer\n '@aws-sdk/client-s3', // @middy/s3-object-response\n '@aws-sdk/client-secretsmanager', // @middy/sercrets-manager\n '@aws-sdk/client-servicediscovery', // @middy/service-discovery\n '@aws-sdk/client-ssm', // @middy/ssm\n '@aws-sdk/client-sts' // @middy/sts\n ]\n})\n")),(0,r.kt)("h3",{id:"swcpack"},"swc/pack"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"npm i -D @swc/cli @swc/core\nnode_modules/.bin/spack\n")),(0,r.kt)("admonition",{type:"caution"},(0,r.kt)("p",{parentName:"admonition"},"Incomplete")),(0,r.kt)("h3",{id:"webpack"},"webpack"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"npm i -D webpack-cli webpack\nnode_modules/.bin/webpack\n")),(0,r.kt)("h4",{id:"webpackconfigmjs"},"webpack.config.mjs"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-javascript"},"import path from 'node:path'\nimport { fileURLToPath } from 'node:url'\n\nconst __filename = fileURLToPath(import.meta.url)\nconst __dirname = path.dirname(__filename)\n\nexport default {\n mode: 'development',\n entry: './index.js',\n output: {\n filename: 'index.bundle.webpack.mjs',\n path: __dirname\n },\n experiments: {\n outputModule: true\n },\n externals: [\n // NodeJS modules\n 'events', // @middy/core\n 'https', // @middy/s3-object-response\n 'stream', // @middy/http-content-encoding @middy/s3-object-response\n 'util', // @middy/http-content-encoding\n 'zlib', // @middy/http-content-encoding\n // AWS SDK\n '@aws-sdk/client-apigatewaymanagementapi', // @middy/ws-response\n '@aws-sdk/client-rds', // @middy/rds-signer\n '@aws-sdk/client-s3', // @middy/s3-object-response\n '@aws-sdk/client-secretsmanager', // @middy/sercrets-manager\n '@aws-sdk/client-servicediscovery', // @middy/service-discovery\n '@aws-sdk/client-ssm', // @middy/ssm\n '@aws-sdk/client-sts' // @middy/sts\n ]\n}\n")),(0,r.kt)("h2",{id:"transpilers"},"Transpilers"),(0,r.kt)("h3",{id:"babel"},"babel"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"npm i -D @babel/cli @babel/core @babel/preset-env\nnode_modules/.bin/babel index.js --out-file index.transpile.babel.cjs\n")),(0,r.kt)("h4",{id:"babelconfigjson"},"babel.config.json"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-json"},'{\n "presets": [\n [\n "@babel/preset-env",\n {\n "targets": {\n "node": "16"\n }\n }\n ]\n ]\n}\n')),(0,r.kt)("h3",{id:"esbuild-1"},"esbuild"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"npm i -D esbuild\nnode_modules/.bin/esbuild --platform=node --target=node16 --format=cjs index.js --outfile=index.cjs\n")),(0,r.kt)("h3",{id:"swc"},"swc"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"npm i -D @swc/cli @swc/core\nnode_modules/.bin/swc index.js --out-file index.transpile.swc.cjs\n")),(0,r.kt)("h4",{id:"swcrc"},".swcrc"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-json"},'{\n "jsc": {\n "parser": {\n "syntax": "ecmascript"\n },\n "target": "es2021"\n },\n "module": {\n "type": "commonjs"\n }\n}\n')))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0d245e6a.058d9fad.js b/assets/js/0d245e6a.058d9fad.js deleted file mode 100644 index 5049450de..000000000 --- a/assets/js/0d245e6a.058d9fad.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[8481],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>f});var r=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var l=r.createContext({}),c=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},p=function(e){var t=c(e.components);return r.createElement(l.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,i=e.mdxType,a=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),d=c(n),u=i,f=d["".concat(l,".").concat(u)]||d[u]||m[u]||a;return n?r.createElement(f,o(o({ref:t},p),{},{components:n})):r.createElement(f,o({ref:t},p))}));function f(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=n.length,o=new Array(a);o[0]=u;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[d]="string"==typeof e?e:i,o[1]=s;for(var c=2;c{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>m,frontMatter:()=>a,metadata:()=>s,toc:()=>c});var r=n(7462),i=(n(7294),n(3905));const a={title:"Kinesis Firehose"},o=void 0,s={unversionedId:"events/kinesis-firehose",id:"events/kinesis-firehose",title:"Kinesis Firehose",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/events/kinesis-firehose.md",sourceDirName:"events",slug:"/events/kinesis-firehose",permalink:"/docs/events/kinesis-firehose",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/events/kinesis-firehose.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",frontMatter:{title:"Kinesis Firehose"},sidebar:"tutorialSidebar",previous:{title:"Kafka, Self-Managed",permalink:"/docs/events/kafka-self-managed"},next:{title:"Kinesis Streams",permalink:"/docs/events/kinesis-streams"}},l={},c=[{value:"AWS Documentation",id:"aws-documentation",level:2},{value:"Example",id:"example",level:2}],p={toc:c},d="wrapper";function m(e){let{components:t,...n}=e;return(0,i.kt)(d,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("admonition",{type:"caution"},(0,i.kt)("p",{parentName:"admonition"},"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.")),(0,i.kt)("h2",{id:"aws-documentation"},"AWS Documentation"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://docs.aws.amazon.com/lambda/latest/dg/services-kinesisfirehose.html"},"Using AWS Lambda with Amazon Kinesis Data Firehose"))),(0,i.kt)("h2",{id:"example"},"Example"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\nimport eventNormalizerMiddleware from '@middy/event-normalizer'\n\nexport const handler = middy()\n .use(eventNormalizerMiddleware())\n .handler((event, context, {signal}) => {\n // ...\n })\n")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0d245e6a.c757d31e.js b/assets/js/0d245e6a.c757d31e.js new file mode 100644 index 000000000..4d2301141 --- /dev/null +++ b/assets/js/0d245e6a.c757d31e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[8481],{9081:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>a,default:()=>m,frontMatter:()=>o,metadata:()=>r,toc:()=>l});var i=t(5893),s=t(1151);const o={title:"Kinesis Firehose"},a=void 0,r={id:"events/kinesis-firehose",title:"Kinesis Firehose",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/events/kinesis-firehose.md",sourceDirName:"events",slug:"/events/kinesis-firehose",permalink:"/docs/events/kinesis-firehose",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/events/kinesis-firehose.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",frontMatter:{title:"Kinesis Firehose"},sidebar:"tutorialSidebar",previous:{title:"Kafka, Self-Managed",permalink:"/docs/events/kafka-self-managed"},next:{title:"Kinesis Streams",permalink:"/docs/events/kinesis-streams"}},d={},l=[{value:"AWS Documentation",id:"aws-documentation",level:2},{value:"Example",id:"example",level:2}];function c(e){const n={a:"a",admonition:"admonition",code:"code",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,s.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.admonition,{type:"caution",children:(0,i.jsx)(n.p,{children:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub."})}),"\n",(0,i.jsx)(n.h2,{id:"aws-documentation",children:"AWS Documentation"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://docs.aws.amazon.com/lambda/latest/dg/services-kinesisfirehose.html",children:"Using AWS Lambda with Amazon Kinesis Data Firehose"})}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"example",children:"Example"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-javascript",children:"import middy from '@middy/core'\nimport eventNormalizerMiddleware from '@middy/event-normalizer'\n\nexport const handler = middy()\n .use(eventNormalizerMiddleware())\n .handler((event, context, {signal}) => {\n // ...\n })\n"})})]})}function m(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},1151:(e,n,t)=>{t.d(n,{Z:()=>r,a:()=>a});var i=t(7294);const s={},o=i.createContext(s);function a(e){const n=i.useContext(o);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),i.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/0e90e864.08a6bb8d.js b/assets/js/0e90e864.08a6bb8d.js new file mode 100644 index 000000000..74ab5f07b --- /dev/null +++ b/assets/js/0e90e864.08a6bb8d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[1469],{3048:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>i,default:()=>m,frontMatter:()=>l,metadata:()=>o,toc:()=>u});var s=n(5893),r=n(1151),a=n(4866),c=n(5162);const l={title:"secrets-manager"},i=void 0,o={id:"middlewares/secrets-manager",title:"secrets-manager",description:"This middleware fetches secrets from AWS Secrets Manager.",source:"@site/docs/middlewares/secrets-manager.md",sourceDirName:"middlewares",slug:"/middlewares/secrets-manager",permalink:"/docs/middlewares/secrets-manager",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/middlewares/secrets-manager.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",frontMatter:{title:"secrets-manager"},sidebar:"tutorialSidebar",previous:{title:"s3",permalink:"/docs/middlewares/s3"},next:{title:"service-discovery",permalink:"/docs/middlewares/service-discovery"}},d={},u=[{value:"Install",id:"install",level:2},{value:"Options",id:"options",level:2},{value:"Sample usage",id:"sample-usage",level:2},{value:"Bundling",id:"bundling",level:2},{value:"Usage with TypeScript",id:"usage-with-typescript",level:2}];function h(e){const t={a:"a",code:"code",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(t.p,{children:["This middleware fetches secrets from ",(0,s.jsx)(t.a,{href:"https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html",children:"AWS Secrets Manager"}),"."]}),"\n",(0,s.jsxs)(t.p,{children:["Secrets to fetch can be defined by by name. See AWS docs ",(0,s.jsx)(t.a,{href:"https://docs.aws.amazon.com/secretsmanager/latest/userguide/tutorials_basic.html",children:"here"}),"."]}),"\n",(0,s.jsxs)(t.p,{children:["Secrets are assigned to the function handler's ",(0,s.jsx)(t.code,{children:"context"})," object."]}),"\n",(0,s.jsxs)(t.p,{children:["The Middleware makes a single ",(0,s.jsx)(t.a,{href:"https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_GetSecretValue.html",children:"API request"})," for each secret as Secrets Manager does not support batch get."]}),"\n",(0,s.jsxs)(t.p,{children:["For each secret, you also provide the name under which its value should be added to ",(0,s.jsx)(t.code,{children:"context"}),"."]}),"\n",(0,s.jsx)(t.h2,{id:"install",children:"Install"}),"\n",(0,s.jsx)(t.p,{children:"To install this middleware you can use NPM:"}),"\n",(0,s.jsxs)(a.Z,{groupId:"npm2yarn",children:[(0,s.jsx)(c.Z,{value:"npm",children:(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-bash",children:"npm install --save @middy/secrets-manager\nnpm install --save-dev @aws-sdk/client-secrets-manager\n"})})}),(0,s.jsx)(c.Z,{value:"yarn",label:"Yarn",children:(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-bash",children:"yarn add @middy/secrets-manager\nyarn add --dev @aws-sdk/client-secrets-manager\n"})})}),(0,s.jsx)(c.Z,{value:"pnpm",label:"pnpm",children:(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-bash",children:"pnpm add @middy/secrets-manager\npnpm add --save-dev @aws-sdk/client-secrets-manager\n"})})})]}),"\n",(0,s.jsx)(t.h2,{id:"options",children:"Options"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.code,{children:"AwsClient"})," (object) (default ",(0,s.jsx)(t.code,{children:"SecretsManagerClient"}),"): SecretsManagerClient class constructor (i.e. that has been instrumented with AWS XRay). Must be from ",(0,s.jsx)(t.code,{children:"@aws-sdk/client-secrets-manager"}),"."]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.code,{children:"awsClientOptions"})," (object) (optional): Options to pass to SecretsManagerClient class constructor."]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.code,{children:"awsClientAssumeRole"})," (string) (optional): Internal key where secrets are stored. See ",(0,s.jsx)(t.a,{href:"/docs/middlewares/sts",children:"@middy/sts"})," on to set this."]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.code,{children:"awsClientCapture"})," (function) (optional): Enable XRay by passing ",(0,s.jsx)(t.code,{children:"captureAWSv3Client"})," from ",(0,s.jsx)(t.code,{children:"aws-xray-sdk"})," in."]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.code,{children:"fetchData"})," (object) (required): Mapping of internal key name to API request parameter ",(0,s.jsx)(t.code,{children:"SecretId"}),"."]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.code,{children:"fetchRotationDate"})," (boolean|object) (default ",(0,s.jsx)(t.code,{children:"false"}),"): Boolean to apply to all or mapping of internal key name to boolean. This indicates what secrets should fetch and cached based on ",(0,s.jsx)(t.code,{children:"NextRotationDate"}),"/",(0,s.jsx)(t.code,{children:"LastRotationDate"}),"/",(0,s.jsx)(t.code,{children:"LastChangedDate"}),". ",(0,s.jsx)(t.code,{children:"cacheExpiry"})," of ",(0,s.jsx)(t.code,{children:"-1"})," will use ",(0,s.jsx)(t.code,{children:"NextRotationDate"}),", while any other value will be added to the ",(0,s.jsx)(t.code,{children:"LastRotationDate"})," or ",(0,s.jsx)(t.code,{children:"LastChangedDate"}),", whichever is more recent. If secrets have different rotation schedules, use multiple instances of this middleware."]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.code,{children:"disablePrefetch"})," (boolean) (default ",(0,s.jsx)(t.code,{children:"false"}),"): On cold start requests will trigger early if they can. Setting ",(0,s.jsx)(t.code,{children:"awsClientAssumeRole"})," disables prefetch."]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.code,{children:"cacheKey"})," (string) (default ",(0,s.jsx)(t.code,{children:"secrets-manager"}),"): Cache key for the fetched data responses. Must be unique across all middleware."]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.code,{children:"cacheExpiry"})," (number) (default ",(0,s.jsx)(t.code,{children:"-1"}),"): How long fetch data responses should be cached for. ",(0,s.jsx)(t.code,{children:"-1"}),": cache forever, ",(0,s.jsx)(t.code,{children:"0"}),": never cache, ",(0,s.jsx)(t.code,{children:"n"}),": cache for n ms."]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.code,{children:"setToContext"})," (boolean) (default ",(0,s.jsx)(t.code,{children:"false"}),"): Store secrets to ",(0,s.jsx)(t.code,{children:"request.context"}),"."]}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:"NOTES:"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["Lambda is required to have IAM permission for ",(0,s.jsx)(t.code,{children:"secretsmanager:GetSecretValue"}),". If using ",(0,s.jsx)(t.code,{children:"fetchRotationDate"})," add ",(0,s.jsx)(t.code,{children:"secretsmanager:DescribeSecret"})," in as well."]}),"\n"]}),"\n",(0,s.jsx)(t.h2,{id:"sample-usage",children:"Sample usage"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-javascript",children:"import middy from '@middy/core'\nimport secretsManager from '@middy/secrets-manager'\n\nconst lambdaHandler = (event, context) => {\n return {}\n}\n\nexport const handler = middy()\n .use(\n secretsManager({\n fetchData: {\n apiToken: 'dev/api_token'\n },\n awsClientOptions: {\n region: 'us-east-1'\n },\n setToContext: true\n })\n )\n .handler(lambdaHandler)\n\n// Before running the function handler, the middleware will fetch from Secrets Manager\nhandler(event, context, (_, response) => {\n // assuming the dev/api_token has two keys, 'Username' and 'Password'\n t.is(context.apiToken.Username, 'username')\n t.is(context.apiToken.Password, 'password')\n})\n"})}),"\n",(0,s.jsx)(t.h2,{id:"bundling",children:"Bundling"}),"\n",(0,s.jsxs)(t.p,{children:["To exclude ",(0,s.jsx)(t.code,{children:"@aws-sdk"})," add ",(0,s.jsx)(t.code,{children:"@aws-sdk/client-secrets-manager"})," to the exclude list."]}),"\n",(0,s.jsx)(t.h2,{id:"usage-with-typescript",children:"Usage with TypeScript"}),"\n",(0,s.jsxs)(t.p,{children:["Data stored in SecretsManager can be stored as arbitrary structured data. It's not possible to know in advance what shape the fetched data will have, so by default the fetched secrets will have type ",(0,s.jsx)(t.code,{children:"unknown"}),"."]}),"\n",(0,s.jsxs)(t.p,{children:["You can provide some type hints by leveraging the ",(0,s.jsx)(t.code,{children:"secret"})," utility function. This function allows you to specify what's the expected type that will be fetched for every SecretsManager request."]}),"\n",(0,s.jsxs)(t.p,{children:["The idea is that, for every request specified in the ",(0,s.jsx)(t.code,{children:"fetchData"})," option, rather than just providing the parameter configuration as an object, you can wrap it in a ",(0,s.jsx)(t.code,{children:"secret(key)"})," call. Internally, ",(0,s.jsx)(t.code,{children:"secret"})," is a function that will return ",(0,s.jsx)(t.code,{children:"key"})," as received, but it allows you to use generics to provide type hints for the expected fetched value type for that request."]}),"\n",(0,s.jsx)(t.p,{children:"This way TypeScript can understand how to treat the additional data attached to the context and stored in the internal storage."}),"\n",(0,s.jsxs)(t.p,{children:["The following example illustrates how to use ",(0,s.jsx)(t.code,{children:"secret"}),":"]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-typescript",children:"import middy from '@middy/core'\nimport secretsManager, { secret } from '@middy/secrets-manager'\n\nconst lambdaHandler = (event, context) => {\n console.log(context.config)\n const response = {\n statusCode: 200,\n headers: {},\n body: JSON.stringify({ message: 'hello world' })\n }\n\n return response\n}\n\nexport const handler = middy()\n.use(\n secretsManager({\n fetchData: {\n someSecret: secret<{User: string, Password: string}>('someHiddenSecret')\n }),\n setToContext: true\n })\n)\n.before(async (request) => {\n const data = await getInternal('someSecret', request)\n // data.someSecret.User (string)\n // data.someSecret.Password (string)\n // or, since we have `setToContext: true`\n // request.context.someSecret.User (string)\n // request.context.someSecret.Password (string)\n})\n.handler(lambdaHandler)\n"})})]})}function m(e={}){const{wrapper:t}={...(0,r.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}},5162:(e,t,n)=>{n.d(t,{Z:()=>c});n(7294);var s=n(6010);const r={tabItem:"tabItem_Ymn6"};var a=n(5893);function c(e){let{children:t,hidden:n,className:c}=e;return(0,a.jsx)("div",{role:"tabpanel",className:(0,s.Z)(r.tabItem,c),hidden:n,children:t})}},4866:(e,t,n)=>{n.d(t,{Z:()=>y});var s=n(7294),r=n(6010),a=n(2466),c=n(6550),l=n(469),i=n(1980),o=n(7392),d=n(12);function u(e){return s.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,s.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function h(e){const{values:t,children:n}=e;return(0,s.useMemo)((()=>{const e=t??function(e){return u(e).map((e=>{let{props:{value:t,label:n,attributes:s,default:r}}=e;return{value:t,label:n,attributes:s,default:r}}))}(n);return function(e){const t=(0,o.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[t,n])}function m(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function p(e){let{queryString:t=!1,groupId:n}=e;const r=(0,c.k6)(),a=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,i._X)(a),(0,s.useCallback)((e=>{if(!a)return;const t=new URLSearchParams(r.location.search);t.set(a,e),r.replace({...r.location,search:t.toString()})}),[a,r])]}function f(e){const{defaultValue:t,queryString:n=!1,groupId:r}=e,a=h(e),[c,i]=(0,s.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the component requires at least one children component");if(t){if(!m({value:t,tabValues:n}))throw new Error(`Docusaurus error: The has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const s=n.find((e=>e.default))??n[0];if(!s)throw new Error("Unexpected error: 0 tabValues");return s.value}({defaultValue:t,tabValues:a}))),[o,u]=p({queryString:n,groupId:r}),[f,x]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[r,a]=(0,d.Nk)(n);return[r,(0,s.useCallback)((e=>{n&&a.set(e)}),[n,a])]}({groupId:r}),g=(()=>{const e=o??f;return m({value:e,tabValues:a})?e:null})();(0,l.Z)((()=>{g&&i(g)}),[g]);return{selectedValue:c,selectValue:(0,s.useCallback)((e=>{if(!m({value:e,tabValues:a}))throw new Error(`Can't select invalid tab value=${e}`);i(e),u(e),x(e)}),[u,x,a]),tabValues:a}}var x=n(2389);const g={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var j=n(5893);function b(e){let{className:t,block:n,selectedValue:s,selectValue:c,tabValues:l}=e;const i=[],{blockElementScrollPositionUntilNextRender:o}=(0,a.o5)(),d=e=>{const t=e.currentTarget,n=i.indexOf(t),r=l[n].value;r!==s&&(o(t),c(r))},u=e=>{let t=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{const n=i.indexOf(e.currentTarget)+1;t=i[n]??i[0];break}case"ArrowLeft":{const n=i.indexOf(e.currentTarget)-1;t=i[n]??i[i.length-1];break}}t?.focus()};return(0,j.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,r.Z)("tabs",{"tabs--block":n},t),children:l.map((e=>{let{value:t,label:n,attributes:a}=e;return(0,j.jsx)("li",{role:"tab",tabIndex:s===t?0:-1,"aria-selected":s===t,ref:e=>i.push(e),onKeyDown:u,onClick:d,...a,className:(0,r.Z)("tabs__item",g.tabItem,a?.className,{"tabs__item--active":s===t}),children:n??t},t)}))})}function v(e){let{lazy:t,children:n,selectedValue:r}=e;const a=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=a.find((e=>e.props.value===r));return e?(0,s.cloneElement)(e,{className:"margin-top--md"}):null}return(0,j.jsx)("div",{className:"margin-top--md",children:a.map(((e,t)=>(0,s.cloneElement)(e,{key:t,hidden:e.props.value!==r})))})}function w(e){const t=f(e);return(0,j.jsxs)("div",{className:(0,r.Z)("tabs-container",g.tabList),children:[(0,j.jsx)(b,{...e,...t}),(0,j.jsx)(v,{...e,...t})]})}function y(e){const t=(0,x.Z)();return(0,j.jsx)(w,{...e,children:u(e.children)},String(t))}},1151:(e,t,n)=>{n.d(t,{Z:()=>l,a:()=>c});var s=n(7294);const r={},a=s.createContext(r);function c(e){const t=s.useContext(a);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:c(e.components),s.createElement(a.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/0e90e864.476fdb3c.js b/assets/js/0e90e864.476fdb3c.js deleted file mode 100644 index cce68bb83..000000000 --- a/assets/js/0e90e864.476fdb3c.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[1469],{3905:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>f});var n=a(7294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var o=n.createContext({}),c=function(e){var t=n.useContext(o),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},u=function(e){var t=c(e.components);return n.createElement(o.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},p=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,l=e.originalType,o=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),d=c(a),p=r,f=d["".concat(o,".").concat(p)]||d[p]||m[p]||l;return a?n.createElement(f,i(i({ref:t},u),{},{components:a})):n.createElement(f,i({ref:t},u))}));function f(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=a.length,i=new Array(l);i[0]=p;var s={};for(var o in t)hasOwnProperty.call(t,o)&&(s[o]=t[o]);s.originalType=e,s[d]="string"==typeof e?e:r,i[1]=s;for(var c=2;c{a.d(t,{Z:()=>i});var n=a(7294),r=a(6010);const l={tabItem:"tabItem_Ymn6"};function i(e){let{children:t,hidden:a,className:i}=e;return n.createElement("div",{role:"tabpanel",className:(0,r.Z)(l.tabItem,i),hidden:a},t)}},4866:(e,t,a)=>{a.d(t,{Z:()=>w});var n=a(7462),r=a(7294),l=a(6010),i=a(2466),s=a(6550),o=a(1980),c=a(7392),u=a(12);function d(e){return function(e){return r.Children.map(e,(e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:a,attributes:n,default:r}}=e;return{value:t,label:a,attributes:n,default:r}}))}function m(e){const{values:t,children:a}=e;return(0,r.useMemo)((()=>{const e=t??d(a);return function(e){const t=(0,c.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[t,a])}function p(e){let{value:t,tabValues:a}=e;return a.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:a}=e;const n=(0,s.k6)(),l=function(e){let{queryString:t=!1,groupId:a}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!a)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return a??null}({queryString:t,groupId:a});return[(0,o._X)(l),(0,r.useCallback)((e=>{if(!l)return;const t=new URLSearchParams(n.location.search);t.set(l,e),n.replace({...n.location,search:t.toString()})}),[l,n])]}function h(e){const{defaultValue:t,queryString:a=!1,groupId:n}=e,l=m(e),[i,s]=(0,r.useState)((()=>function(e){let{defaultValue:t,tabValues:a}=e;if(0===a.length)throw new Error("Docusaurus error: the component requires at least one children component");if(t){if(!p({value:t,tabValues:a}))throw new Error(`Docusaurus error: The has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${a.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const n=a.find((e=>e.default))??a[0];if(!n)throw new Error("Unexpected error: 0 tabValues");return n.value}({defaultValue:t,tabValues:l}))),[o,c]=f({queryString:a,groupId:n}),[d,h]=function(e){let{groupId:t}=e;const a=function(e){return e?`docusaurus.tab.${e}`:null}(t),[n,l]=(0,u.Nk)(a);return[n,(0,r.useCallback)((e=>{a&&l.set(e)}),[a,l])]}({groupId:n}),b=(()=>{const e=o??d;return p({value:e,tabValues:l})?e:null})();(0,r.useLayoutEffect)((()=>{b&&s(b)}),[b]);return{selectedValue:i,selectValue:(0,r.useCallback)((e=>{if(!p({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);s(e),c(e),h(e)}),[c,h,l]),tabValues:l}}var b=a(2389);const k={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};function g(e){let{className:t,block:a,selectedValue:s,selectValue:o,tabValues:c}=e;const u=[],{blockElementScrollPositionUntilNextRender:d}=(0,i.o5)(),m=e=>{const t=e.currentTarget,a=u.indexOf(t),n=c[a].value;n!==s&&(d(t),o(n))},p=e=>{let t=null;switch(e.key){case"Enter":m(e);break;case"ArrowRight":{const a=u.indexOf(e.currentTarget)+1;t=u[a]??u[0];break}case"ArrowLeft":{const a=u.indexOf(e.currentTarget)-1;t=u[a]??u[u.length-1];break}}t?.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":a},t)},c.map((e=>{let{value:t,label:a,attributes:i}=e;return r.createElement("li",(0,n.Z)({role:"tab",tabIndex:s===t?0:-1,"aria-selected":s===t,key:t,ref:e=>u.push(e),onKeyDown:p,onClick:m},i,{className:(0,l.Z)("tabs__item",k.tabItem,i?.className,{"tabs__item--active":s===t})}),a??t)})))}function y(e){let{lazy:t,children:a,selectedValue:n}=e;const l=(Array.isArray(a)?a:[a]).filter(Boolean);if(t){const e=l.find((e=>e.props.value===n));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},l.map(((e,t)=>(0,r.cloneElement)(e,{key:t,hidden:e.props.value!==n}))))}function v(e){const t=h(e);return r.createElement("div",{className:(0,l.Z)("tabs-container",k.tabList)},r.createElement(g,(0,n.Z)({},e,t)),r.createElement(y,(0,n.Z)({},e,t)))}function w(e){const t=(0,b.Z)();return r.createElement(v,(0,n.Z)({key:String(t)},e))}},5891:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>u,contentTitle:()=>o,default:()=>f,frontMatter:()=>s,metadata:()=>c,toc:()=>d});var n=a(7462),r=(a(7294),a(3905)),l=a(4866),i=a(5162);const s={title:"secrets-manager"},o=void 0,c={unversionedId:"middlewares/secrets-manager",id:"middlewares/secrets-manager",title:"secrets-manager",description:"This middleware fetches secrets from AWS Secrets Manager.",source:"@site/docs/middlewares/secrets-manager.md",sourceDirName:"middlewares",slug:"/middlewares/secrets-manager",permalink:"/docs/middlewares/secrets-manager",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/middlewares/secrets-manager.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",frontMatter:{title:"secrets-manager"},sidebar:"tutorialSidebar",previous:{title:"s3",permalink:"/docs/middlewares/s3"},next:{title:"service-discovery",permalink:"/docs/middlewares/service-discovery"}},u={},d=[{value:"Install",id:"install",level:2},{value:"Options",id:"options",level:2},{value:"Sample usage",id:"sample-usage",level:2},{value:"Bundling",id:"bundling",level:2}],m={toc:d},p="wrapper";function f(e){let{components:t,...a}=e;return(0,r.kt)(p,(0,n.Z)({},m,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"This middleware fetches secrets from ",(0,r.kt)("a",{parentName:"p",href:"https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html"},"AWS Secrets Manager"),"."),(0,r.kt)("p",null,"Secrets to fetch can be defined by by name. See AWS docs ",(0,r.kt)("a",{parentName:"p",href:"https://docs.aws.amazon.com/secretsmanager/latest/userguide/tutorials_basic.html"},"here"),"."),(0,r.kt)("p",null,"Secrets are assigned to the function handler's ",(0,r.kt)("inlineCode",{parentName:"p"},"context")," object."),(0,r.kt)("p",null,"The Middleware makes a single ",(0,r.kt)("a",{parentName:"p",href:"https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_GetSecretValue.html"},"API request")," for each secret as Secrets Manager does not support batch get."),(0,r.kt)("p",null,"For each secret, you also provide the name under which its value should be added to ",(0,r.kt)("inlineCode",{parentName:"p"},"context"),"."),(0,r.kt)("h2",{id:"install"},"Install"),(0,r.kt)("p",null,"To install this middleware you can use NPM:"),(0,r.kt)(l.Z,{groupId:"npm2yarn",mdxType:"Tabs"},(0,r.kt)(i.Z,{value:"npm",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"npm install --save @middy/secrets-manager\nnpm install --save-dev @aws-sdk/client-secrets-manager\n"))),(0,r.kt)(i.Z,{value:"yarn",label:"Yarn",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"yarn add @middy/secrets-manager\nyarn add --dev @aws-sdk/client-secrets-manager\n"))),(0,r.kt)(i.Z,{value:"pnpm",label:"pnpm",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"pnpm add @middy/secrets-manager\npnpm add --save-dev @aws-sdk/client-secrets-manager\n")))),(0,r.kt)("h2",{id:"options"},"Options"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"AwsClient")," (object) (default ",(0,r.kt)("inlineCode",{parentName:"li"},"SecretsManagerClient"),"): SecretsManagerClient class constructor (i.e. that has been instrumented with AWS XRay). Must be from ",(0,r.kt)("inlineCode",{parentName:"li"},"@aws-sdk/client-secrets-manager"),"."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"awsClientOptions")," (object) (optional): Options to pass to SecretsManagerClient class constructor."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"awsClientAssumeRole")," (string) (optional): Internal key where secrets are stored. See ",(0,r.kt)("a",{parentName:"li",href:"/docs/middlewares/sts"},"@middy/sts")," on to set this."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"awsClientCapture")," (function) (optional): Enable XRay by passing ",(0,r.kt)("inlineCode",{parentName:"li"},"captureAWSv3Client")," from ",(0,r.kt)("inlineCode",{parentName:"li"},"aws-xray-sdk")," in."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"fetchData")," (object) (required): Mapping of internal key name to API request parameter ",(0,r.kt)("inlineCode",{parentName:"li"},"SecretId"),"."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"fetchRotationDate")," (boolean|object) (default ",(0,r.kt)("inlineCode",{parentName:"li"},"false"),"): Boolean to apply to all or mapping of internal key name to boolean. This indicates what secrets should fetch and cached based on ",(0,r.kt)("inlineCode",{parentName:"li"},"NextRotationDate"),"/",(0,r.kt)("inlineCode",{parentName:"li"},"LastRotationDate"),"/",(0,r.kt)("inlineCode",{parentName:"li"},"LastChangedDate"),". ",(0,r.kt)("inlineCode",{parentName:"li"},"cacheExpiry")," of ",(0,r.kt)("inlineCode",{parentName:"li"},"-1")," will use ",(0,r.kt)("inlineCode",{parentName:"li"},"NextRotationDate"),", while any other value will be added to the ",(0,r.kt)("inlineCode",{parentName:"li"},"LastRotationDate")," or ",(0,r.kt)("inlineCode",{parentName:"li"},"LastChangedDate"),", whichever is more recent. If secrets have different rotation schedules, use multiple instances of this middleware."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"disablePrefetch")," (boolean) (default ",(0,r.kt)("inlineCode",{parentName:"li"},"false"),"): On cold start requests will trigger early if they can. Setting ",(0,r.kt)("inlineCode",{parentName:"li"},"awsClientAssumeRole")," disables prefetch."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"cacheKey")," (string) (default ",(0,r.kt)("inlineCode",{parentName:"li"},"secrets-manager"),"): Cache key for the fetched data responses. Must be unique across all middleware."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"cacheExpiry")," (number) (default ",(0,r.kt)("inlineCode",{parentName:"li"},"-1"),"): How long fetch data responses should be cached for. ",(0,r.kt)("inlineCode",{parentName:"li"},"-1"),": cache forever, ",(0,r.kt)("inlineCode",{parentName:"li"},"0"),": never cache, ",(0,r.kt)("inlineCode",{parentName:"li"},"n"),": cache for n ms."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"setToContext")," (boolean) (default ",(0,r.kt)("inlineCode",{parentName:"li"},"false"),"): Store secrets to ",(0,r.kt)("inlineCode",{parentName:"li"},"request.context"),".")),(0,r.kt)("p",null,"NOTES:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Lambda is required to have IAM permission for ",(0,r.kt)("inlineCode",{parentName:"li"},"secretsmanager:GetSecretValue"),". If using ",(0,r.kt)("inlineCode",{parentName:"li"},"fetchRotationDate")," add ",(0,r.kt)("inlineCode",{parentName:"li"},"secretsmanager:DescribeSecret")," in as well.")),(0,r.kt)("h2",{id:"sample-usage"},"Sample usage"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\nimport secretsManager from '@middy/secrets-manager'\n\nconst handler = middy((event, context) => {\n return {}\n})\n\nhandler.use(\n secretsManager({\n fetchData: {\n apiToken: 'dev/api_token'\n },\n awsClientOptions: {\n region: 'us-east-1'\n },\n setToContext: true\n })\n)\n\n// Before running the function handler, the middleware will fetch from Secrets Manager\nhandler(event, context, (_, response) => {\n // assuming the dev/api_token has two keys, 'Username' and 'Password'\n t.is(context.apiToken.Username, 'username')\n t.is(context.apiToken.Password, 'password')\n})\n")),(0,r.kt)("h2",{id:"bundling"},"Bundling"),(0,r.kt)("p",null,"To exclude ",(0,r.kt)("inlineCode",{parentName:"p"},"@aws-sdk")," add ",(0,r.kt)("inlineCode",{parentName:"p"},"@aws-sdk/client-secrets-manager")," to the exclude list."))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1124057e.0ebbb85e.js b/assets/js/1124057e.0ebbb85e.js deleted file mode 100644 index a3e3e17e8..000000000 --- a/assets/js/1124057e.0ebbb85e.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[2308],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>b});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=a.createContext({}),d=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},u=function(e){var t=d(e.components);return a.createElement(s.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,l=e.originalType,s=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),c=d(n),p=r,b=c["".concat(s,".").concat(p)]||c[p]||m[p]||l;return n?a.createElement(b,o(o({ref:t},u),{},{components:n})):a.createElement(b,o({ref:t},u))}));function b(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=n.length,o=new Array(l);o[0]=p;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[c]="string"==typeof e?e:r,o[1]=i;for(var d=2;d{n.d(t,{Z:()=>o});var a=n(7294),r=n(6010);const l={tabItem:"tabItem_Ymn6"};function o(e){let{children:t,hidden:n,className:o}=e;return a.createElement("div",{role:"tabpanel",className:(0,r.Z)(l.tabItem,o),hidden:n},t)}},4866:(e,t,n)=>{n.d(t,{Z:()=>w});var a=n(7462),r=n(7294),l=n(6010),o=n(2466),i=n(6550),s=n(1980),d=n(7392),u=n(12);function c(e){return function(e){return r.Children.map(e,(e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:a,default:r}}=e;return{value:t,label:n,attributes:a,default:r}}))}function m(e){const{values:t,children:n}=e;return(0,r.useMemo)((()=>{const e=t??c(n);return function(e){const t=(0,d.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[t,n])}function p(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function b(e){let{queryString:t=!1,groupId:n}=e;const a=(0,i.k6)(),l=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,s._X)(l),(0,r.useCallback)((e=>{if(!l)return;const t=new URLSearchParams(a.location.search);t.set(l,e),a.replace({...a.location,search:t.toString()})}),[l,a])]}function f(e){const{defaultValue:t,queryString:n=!1,groupId:a}=e,l=m(e),[o,i]=(0,r.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the component requires at least one children component");if(t){if(!p({value:t,tabValues:n}))throw new Error(`Docusaurus error: The has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const a=n.find((e=>e.default))??n[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:t,tabValues:l}))),[s,d]=b({queryString:n,groupId:a}),[c,f]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[a,l]=(0,u.Nk)(n);return[a,(0,r.useCallback)((e=>{n&&l.set(e)}),[n,l])]}({groupId:a}),y=(()=>{const e=s??c;return p({value:e,tabValues:l})?e:null})();(0,r.useLayoutEffect)((()=>{y&&i(y)}),[y]);return{selectedValue:o,selectValue:(0,r.useCallback)((e=>{if(!p({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);i(e),d(e),f(e)}),[d,f,l]),tabValues:l}}var y=n(2389);const k={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};function h(e){let{className:t,block:n,selectedValue:i,selectValue:s,tabValues:d}=e;const u=[],{blockElementScrollPositionUntilNextRender:c}=(0,o.o5)(),m=e=>{const t=e.currentTarget,n=u.indexOf(t),a=d[n].value;a!==i&&(c(t),s(a))},p=e=>{let t=null;switch(e.key){case"Enter":m(e);break;case"ArrowRight":{const n=u.indexOf(e.currentTarget)+1;t=u[n]??u[0];break}case"ArrowLeft":{const n=u.indexOf(e.currentTarget)-1;t=u[n]??u[u.length-1];break}}t?.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":n},t)},d.map((e=>{let{value:t,label:n,attributes:o}=e;return r.createElement("li",(0,a.Z)({role:"tab",tabIndex:i===t?0:-1,"aria-selected":i===t,key:t,ref:e=>u.push(e),onKeyDown:p,onClick:m},o,{className:(0,l.Z)("tabs__item",k.tabItem,o?.className,{"tabs__item--active":i===t})}),n??t)})))}function v(e){let{lazy:t,children:n,selectedValue:a}=e;const l=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=l.find((e=>e.props.value===a));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},l.map(((e,t)=>(0,r.cloneElement)(e,{key:t,hidden:e.props.value!==a}))))}function g(e){const t=f(e);return r.createElement("div",{className:(0,l.Z)("tabs-container",k.tabList)},r.createElement(h,(0,a.Z)({},e,t)),r.createElement(v,(0,a.Z)({},e,t)))}function w(e){const t=(0,y.Z)();return r.createElement(g,(0,a.Z)({key:String(t)},e))}},4724:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>s,default:()=>b,frontMatter:()=>i,metadata:()=>d,toc:()=>c});var a=n(7462),r=(n(7294),n(3905)),l=n(4866),o=n(5162);const i={title:"dynamodb"},s=void 0,d={unversionedId:"middlewares/dynamodb",id:"middlewares/dynamodb",title:"dynamodb",description:"Fetches DynamoDB stored configuration and parses out JSON.",source:"@site/docs/middlewares/dynamodb.md",sourceDirName:"middlewares",slug:"/middlewares/dynamodb",permalink:"/docs/middlewares/dynamodb",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/middlewares/dynamodb.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",frontMatter:{title:"dynamodb"},sidebar:"tutorialSidebar",previous:{title:"do-not-wait-for-empty-event-loop",permalink:"/docs/middlewares/do-not-wait-for-empty-event-loop"},next:{title:"error-logger",permalink:"/docs/middlewares/error-logger"}},u={},c=[{value:"Install",id:"install",level:2},{value:"Options",id:"options",level:2},{value:"Sample usage",id:"sample-usage",level:2},{value:"Bundling",id:"bundling",level:2}],m={toc:c},p="wrapper";function b(e){let{components:t,...n}=e;return(0,r.kt)(p,(0,a.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"Fetches DynamoDB stored configuration and parses out JSON."),(0,r.kt)("h2",{id:"install"},"Install"),(0,r.kt)("p",null,"To install this middleware you can use NPM:"),(0,r.kt)(l.Z,{groupId:"npm2yarn",mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"npm",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"npm install --save @middy/dynamodb\nnpm install --save-dev @aws-sdk/client-dynamodb @aws-sdk/util-dynamodb\n"))),(0,r.kt)(o.Z,{value:"yarn",label:"Yarn",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"yarn add @middy/dynamodb\nyarn add --dev @aws-sdk/client-dynamodb @aws-sdk/util-dynamodb\n"))),(0,r.kt)(o.Z,{value:"pnpm",label:"pnpm",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"pnpm add @middy/dynamodb\npnpm add --save-dev @aws-sdk/client-dynamodb @aws-sdk/util-dynamodb\n")))),(0,r.kt)("h2",{id:"options"},"Options"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"AwsClient")," (object) (default ",(0,r.kt)("inlineCode",{parentName:"li"},"DynamoDBClient"),"): DynamoDBClient class constructor (i.e. that has been instrumented with AWS XRay). Must be from ",(0,r.kt)("inlineCode",{parentName:"li"},"@aws-sdk/client-dynamodb"),"."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"awsClientOptions")," (object) (default ",(0,r.kt)("inlineCode",{parentName:"li"},"undefined"),"): Options to pass to DynamoDBClient class constructor."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"awsClientAssumeRole")," (string) (default ",(0,r.kt)("inlineCode",{parentName:"li"},"undefined"),"): Internal key where secrets are stored. See ",(0,r.kt)("a",{parentName:"li",href:"/docs/middlewares/sts"},"@middy/sts")," on to set this."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"awsClientCapture")," (function) (default ",(0,r.kt)("inlineCode",{parentName:"li"},"undefined"),"): Enable XRay by passing ",(0,r.kt)("inlineCode",{parentName:"li"},"captureAWSv3Client")," from ",(0,r.kt)("inlineCode",{parentName:"li"},"aws-xray-sdk")," in."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"fetchData")," (object) (required): Mapping of internal key name to API request parameters."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"disablePrefetch")," (boolean) (default ",(0,r.kt)("inlineCode",{parentName:"li"},"false"),"): On cold start requests will trigger early if they can. Setting ",(0,r.kt)("inlineCode",{parentName:"li"},"awsClientAssumeRole")," disables prefetch."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"cacheKey")," (string) (default ",(0,r.kt)("inlineCode",{parentName:"li"},"dynamodb"),"): Cache key for the fetched data responses. Must be unique across all middleware."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"cacheExpiry")," (number) (default ",(0,r.kt)("inlineCode",{parentName:"li"},"-1"),"): How long fetch data responses should be cached for. ",(0,r.kt)("inlineCode",{parentName:"li"},"-1"),": cache forever, ",(0,r.kt)("inlineCode",{parentName:"li"},"0"),": never cache, ",(0,r.kt)("inlineCode",{parentName:"li"},"n"),": cache for n ms."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"setToContext")," (boolean) (default ",(0,r.kt)("inlineCode",{parentName:"li"},"false"),"): Store credentials to ",(0,r.kt)("inlineCode",{parentName:"li"},"request.context"),".")),(0,r.kt)("p",null,"NOTES:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Lambda is required to have IAM permission for ",(0,r.kt)("inlineCode",{parentName:"li"},"dynamodb:BatchGetItemCommand"))),(0,r.kt)("h2",{id:"sample-usage"},"Sample usage"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\nimport dynamodb from '@middy/dynamodb'\n\nconst handler = middy((event, context) => {\n const response = {\n statusCode: 200,\n headers: {},\n body: JSON.stringify({ message: 'hello world' })\n }\n\n return response\n})\n\nhandler.use(\n dynamodb({\n fetchData: {\n config: {\n TableName: '...'\n Key: {\n pk: '0000'\n }\n }\n }\n })\n)\n")),(0,r.kt)("h2",{id:"bundling"},"Bundling"),(0,r.kt)("p",null,"To exclude ",(0,r.kt)("inlineCode",{parentName:"p"},"@aws-sdk")," add ",(0,r.kt)("inlineCode",{parentName:"p"},"@aws-sdk/client-dynamodb")," to the exclude list."))}b.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1124057e.7d43e3f2.js b/assets/js/1124057e.7d43e3f2.js new file mode 100644 index 000000000..5e605719c --- /dev/null +++ b/assets/js/1124057e.7d43e3f2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[2308],{8625:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>o,default:()=>m,frontMatter:()=>l,metadata:()=>i,toc:()=>u});var a=t(5893),r=t(1151),s=t(4866),d=t(5162);const l={title:"dynamodb"},o=void 0,i={id:"middlewares/dynamodb",title:"dynamodb",description:"Fetches DynamoDB stored configuration and parses out JSON.",source:"@site/docs/middlewares/dynamodb.md",sourceDirName:"middlewares",slug:"/middlewares/dynamodb",permalink:"/docs/middlewares/dynamodb",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/middlewares/dynamodb.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",frontMatter:{title:"dynamodb"},sidebar:"tutorialSidebar",previous:{title:"do-not-wait-for-empty-event-loop",permalink:"/docs/middlewares/do-not-wait-for-empty-event-loop"},next:{title:"error-logger",permalink:"/docs/middlewares/error-logger"}},c={},u=[{value:"Install",id:"install",level:2},{value:"Options",id:"options",level:2},{value:"Sample usage",id:"sample-usage",level:2},{value:"Bundling",id:"bundling",level:2},{value:"Usage with TypeScript",id:"usage-with-typescript",level:2}];function h(e){const n={a:"a",code:"code",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(n.p,{children:"Fetches DynamoDB stored configuration and parses out JSON."}),"\n",(0,a.jsx)(n.h2,{id:"install",children:"Install"}),"\n",(0,a.jsx)(n.p,{children:"To install this middleware you can use NPM:"}),"\n",(0,a.jsxs)(s.Z,{groupId:"npm2yarn",children:[(0,a.jsx)(d.Z,{value:"npm",children:(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-bash",children:"npm install --save @middy/dynamodb\nnpm install --save-dev @aws-sdk/client-dynamodb @aws-sdk/util-dynamodb\n"})})}),(0,a.jsx)(d.Z,{value:"yarn",label:"Yarn",children:(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-bash",children:"yarn add @middy/dynamodb\nyarn add --dev @aws-sdk/client-dynamodb @aws-sdk/util-dynamodb\n"})})}),(0,a.jsx)(d.Z,{value:"pnpm",label:"pnpm",children:(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-bash",children:"pnpm add @middy/dynamodb\npnpm add --save-dev @aws-sdk/client-dynamodb @aws-sdk/util-dynamodb\n"})})})]}),"\n",(0,a.jsx)(n.h2,{id:"options",children:"Options"}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"AwsClient"})," (object) (default ",(0,a.jsx)(n.code,{children:"DynamoDBClient"}),"): DynamoDBClient class constructor (i.e. that has been instrumented with AWS XRay). Must be from ",(0,a.jsx)(n.code,{children:"@aws-sdk/client-dynamodb"}),"."]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"awsClientOptions"})," (object) (default ",(0,a.jsx)(n.code,{children:"undefined"}),"): Options to pass to DynamoDBClient class constructor."]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"awsClientAssumeRole"})," (string) (default ",(0,a.jsx)(n.code,{children:"undefined"}),"): Internal key where secrets are stored. See ",(0,a.jsx)(n.a,{href:"/docs/middlewares/sts",children:"@middy/sts"})," on to set this."]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"awsClientCapture"})," (function) (default ",(0,a.jsx)(n.code,{children:"undefined"}),"): Enable XRay by passing ",(0,a.jsx)(n.code,{children:"captureAWSv3Client"})," from ",(0,a.jsx)(n.code,{children:"aws-xray-sdk"})," in."]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"fetchData"})," (object) (required): Mapping of internal key name to API request parameters."]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"disablePrefetch"})," (boolean) (default ",(0,a.jsx)(n.code,{children:"false"}),"): On cold start requests will trigger early if they can. Setting ",(0,a.jsx)(n.code,{children:"awsClientAssumeRole"})," disables prefetch."]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"cacheKey"})," (string) (default ",(0,a.jsx)(n.code,{children:"dynamodb"}),"): Cache key for the fetched data responses. Must be unique across all middleware."]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"cacheExpiry"})," (number) (default ",(0,a.jsx)(n.code,{children:"-1"}),"): How long fetch data responses should be cached for. ",(0,a.jsx)(n.code,{children:"-1"}),": cache forever, ",(0,a.jsx)(n.code,{children:"0"}),": never cache, ",(0,a.jsx)(n.code,{children:"n"}),": cache for n ms."]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"setToContext"})," (boolean) (default ",(0,a.jsx)(n.code,{children:"false"}),"): Store credentials to ",(0,a.jsx)(n.code,{children:"request.context"}),"."]}),"\n"]}),"\n",(0,a.jsx)(n.p,{children:"NOTES:"}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsxs)(n.li,{children:["Lambda is required to have IAM permission for ",(0,a.jsx)(n.code,{children:"dynamodb:BatchGetItemCommand"})]}),"\n"]}),"\n",(0,a.jsx)(n.h2,{id:"sample-usage",children:"Sample usage"}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-javascript",children:"import middy from '@middy/core'\nimport dynamodb from '@middy/dynamodb'\n\nconst lambdaHandler = (event, context) => {\n const response = {\n statusCode: 200,\n headers: {},\n body: JSON.stringify({ message: 'hello world' })\n }\n\n return response\n}\n\nexport const handler = middy()\n .use(\n dynamodb({\n fetchData: {\n config: {\n TableName: '...',\n Key: {\n pk: '0000'\n }\n }\n }\n })\n )\n .handler(lambdaHandler)\n"})}),"\n",(0,a.jsx)(n.h2,{id:"bundling",children:"Bundling"}),"\n",(0,a.jsxs)(n.p,{children:["To exclude ",(0,a.jsx)(n.code,{children:"@aws-sdk"})," add ",(0,a.jsx)(n.code,{children:"@aws-sdk/client-dynamodb"})," to the exclude list."]}),"\n",(0,a.jsx)(n.h2,{id:"usage-with-typescript",children:"Usage with TypeScript"}),"\n",(0,a.jsxs)(n.p,{children:["Data in DynamoDB can be stored as arbitrary structured data. It's not possible to know in advance what shape the fetched data will have, so by default the fetched parameters will have type ",(0,a.jsx)(n.code,{children:"Record"}),"."]}),"\n",(0,a.jsxs)(n.p,{children:["You can provide some type hints by leveraging the ",(0,a.jsx)(n.code,{children:"dynamoDbReq"})," utility function. This function allows you to specify what's the expected type that will be fetched for every DynamoDB request."]}),"\n",(0,a.jsxs)(n.p,{children:["The idea is that, for every request specified in the ",(0,a.jsx)(n.code,{children:"fetchData"})," option, rather than just providing the parameter configuration as an object, you can wrap it in a ",(0,a.jsx)(n.code,{children:"dynamoDbReq(config)"})," call. Internally, ",(0,a.jsx)(n.code,{children:"dynamoDbReq"})," is a function that will return ",(0,a.jsx)(n.code,{children:"config"})," as received, but it allows you to use generics to provide type hints for the expected fetched value type for that request."]}),"\n",(0,a.jsx)(n.p,{children:"This way TypeScript can understand how to treat the additional data attached to the context and stored in the internal storage."}),"\n",(0,a.jsxs)(n.p,{children:["The following example illustrates how to use ",(0,a.jsx)(n.code,{children:"dynamoDbReq"}),":"]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-typescript",children:"import middy from '@middy/core'\nimport dynamodb, { dynamoDbReq } from '@middy/dynamodb'\n\nconst handler = middy((event, context) => {\n const response = {\n statusCode: 200,\n headers: {},\n body: JSON.stringify({ message: 'hello world' })\n }\n\n return response\n})\n\nhandler.use(\n dynamodb({\n fetchData: {\n config: dynamoDbReq<{field1: string, field2: string, field3: number}>({\n TableName: '...'\n Key: {\n pk: '0000'\n }\n })\n }\n })\n)\n.before(async (request) => {\n const data = await getInternal('config', request)\n // data.config.field1 (string)\n // data.config.field2 (string)\n // data.config.field3 (number)\n})\n"})})]})}function m(e={}){const{wrapper:n}={...(0,r.a)(),...e.components};return n?(0,a.jsx)(n,{...e,children:(0,a.jsx)(h,{...e})}):h(e)}},5162:(e,n,t)=>{t.d(n,{Z:()=>d});t(7294);var a=t(6010);const r={tabItem:"tabItem_Ymn6"};var s=t(5893);function d(e){let{children:n,hidden:t,className:d}=e;return(0,s.jsx)("div",{role:"tabpanel",className:(0,a.Z)(r.tabItem,d),hidden:t,children:n})}},4866:(e,n,t)=>{t.d(n,{Z:()=>w});var a=t(7294),r=t(6010),s=t(2466),d=t(6550),l=t(469),o=t(1980),i=t(7392),c=t(12);function u(e){return a.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,a.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function h(e){const{values:n,children:t}=e;return(0,a.useMemo)((()=>{const e=n??function(e){return u(e).map((e=>{let{props:{value:n,label:t,attributes:a,default:r}}=e;return{value:n,label:t,attributes:a,default:r}}))}(t);return function(e){const n=(0,i.l)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[n,t])}function m(e){let{value:n,tabValues:t}=e;return t.some((e=>e.value===n))}function p(e){let{queryString:n=!1,groupId:t}=e;const r=(0,d.k6)(),s=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t});return[(0,o._X)(s),(0,a.useCallback)((e=>{if(!s)return;const n=new URLSearchParams(r.location.search);n.set(s,e),r.replace({...r.location,search:n.toString()})}),[s,r])]}function f(e){const{defaultValue:n,queryString:t=!1,groupId:r}=e,s=h(e),[d,o]=(0,a.useState)((()=>function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw new Error("Docusaurus error: the component requires at least one children component");if(n){if(!m({value:n,tabValues:t}))throw new Error(`Docusaurus error: The has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const a=t.find((e=>e.default))??t[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:n,tabValues:s}))),[i,u]=p({queryString:t,groupId:r}),[f,b]=function(e){let{groupId:n}=e;const t=function(e){return e?`docusaurus.tab.${e}`:null}(n),[r,s]=(0,c.Nk)(t);return[r,(0,a.useCallback)((e=>{t&&s.set(e)}),[t,s])]}({groupId:r}),y=(()=>{const e=i??f;return m({value:e,tabValues:s})?e:null})();(0,l.Z)((()=>{y&&o(y)}),[y]);return{selectedValue:d,selectValue:(0,a.useCallback)((e=>{if(!m({value:e,tabValues:s}))throw new Error(`Can't select invalid tab value=${e}`);o(e),u(e),b(e)}),[u,b,s]),tabValues:s}}var b=t(2389);const y={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var x=t(5893);function j(e){let{className:n,block:t,selectedValue:a,selectValue:d,tabValues:l}=e;const o=[],{blockElementScrollPositionUntilNextRender:i}=(0,s.o5)(),c=e=>{const n=e.currentTarget,t=o.indexOf(n),r=l[t].value;r!==a&&(i(n),d(r))},u=e=>{let n=null;switch(e.key){case"Enter":c(e);break;case"ArrowRight":{const t=o.indexOf(e.currentTarget)+1;n=o[t]??o[0];break}case"ArrowLeft":{const t=o.indexOf(e.currentTarget)-1;n=o[t]??o[o.length-1];break}}n?.focus()};return(0,x.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,r.Z)("tabs",{"tabs--block":t},n),children:l.map((e=>{let{value:n,label:t,attributes:s}=e;return(0,x.jsx)("li",{role:"tab",tabIndex:a===n?0:-1,"aria-selected":a===n,ref:e=>o.push(e),onKeyDown:u,onClick:c,...s,className:(0,r.Z)("tabs__item",y.tabItem,s?.className,{"tabs__item--active":a===n}),children:t??n},n)}))})}function g(e){let{lazy:n,children:t,selectedValue:r}=e;const s=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){const e=s.find((e=>e.props.value===r));return e?(0,a.cloneElement)(e,{className:"margin-top--md"}):null}return(0,x.jsx)("div",{className:"margin-top--md",children:s.map(((e,n)=>(0,a.cloneElement)(e,{key:n,hidden:e.props.value!==r})))})}function v(e){const n=f(e);return(0,x.jsxs)("div",{className:(0,r.Z)("tabs-container",y.tabList),children:[(0,x.jsx)(j,{...e,...n}),(0,x.jsx)(g,{...e,...n})]})}function w(e){const n=(0,b.Z)();return(0,x.jsx)(v,{...e,children:u(e.children)},String(n))}},1151:(e,n,t)=>{t.d(n,{Z:()=>l,a:()=>d});var a=t(7294);const r={},s=a.createContext(r);function d(e){const n=a.useContext(s);return a.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:d(e.components),a.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/14eb3368.6c38f63d.js b/assets/js/14eb3368.6c38f63d.js new file mode 100644 index 000000000..dce26c649 --- /dev/null +++ b/assets/js/14eb3368.6c38f63d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[9817],{1310:(e,t,s)=>{s.d(t,{Z:()=>p});s(7294);var n=s(6010),i=s(5281),a=s(3438),r=s(8596),c=s(9960),l=s(5999),o=s(4996),d=s(5893);function m(e){return(0,d.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,d.jsx)("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z",fill:"currentColor"})})}const u={breadcrumbHomeIcon:"breadcrumbHomeIcon_YNFT"};function h(){const e=(0,o.Z)("/");return(0,d.jsx)("li",{className:"breadcrumbs__item",children:(0,d.jsx)(c.Z,{"aria-label":(0,l.I)({id:"theme.docs.breadcrumbs.home",message:"Home page",description:"The ARIA label for the home page in the breadcrumbs"}),className:"breadcrumbs__link",href:e,children:(0,d.jsx)(m,{className:u.breadcrumbHomeIcon})})})}const b={breadcrumbsContainer:"breadcrumbsContainer_Z_bl"};function x(e){let{children:t,href:s,isLast:n}=e;const i="breadcrumbs__link";return n?(0,d.jsx)("span",{className:i,itemProp:"name",children:t}):s?(0,d.jsx)(c.Z,{className:i,href:s,itemProp:"item",children:(0,d.jsx)("span",{itemProp:"name",children:t})}):(0,d.jsx)("span",{className:i,children:t})}function v(e){let{children:t,active:s,index:i,addMicrodata:a}=e;return(0,d.jsxs)("li",{...a&&{itemScope:!0,itemProp:"itemListElement",itemType:"https://schema.org/ListItem"},className:(0,n.Z)("breadcrumbs__item",{"breadcrumbs__item--active":s}),children:[t,(0,d.jsx)("meta",{itemProp:"position",content:String(i+1)})]})}function p(){const e=(0,a.s1)(),t=(0,r.Ns)();return e?(0,d.jsx)("nav",{className:(0,n.Z)(i.k.docs.docBreadcrumbs,b.breadcrumbsContainer),"aria-label":(0,l.I)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"}),children:(0,d.jsxs)("ul",{className:"breadcrumbs",itemScope:!0,itemType:"https://schema.org/BreadcrumbList",children:[t&&(0,d.jsx)(h,{}),e.map(((t,s)=>{const n=s===e.length-1,i="category"===t.type&&t.linkUnlisted?void 0:t.href;return(0,d.jsx)(v,{active:n,index:s,addMicrodata:!!i,children:(0,d.jsx)(x,{href:i,isLast:n,children:t.label})},s)}))]})}):null}},4228:(e,t,s)=>{s.r(t),s.d(t,{default:()=>y});s(7294);var n=s(1944),i=s(3438),a=s(4996),r=s(6010),c=s(9960),l=s(3919),o=s(5999),d=s(2503);const m={cardContainer:"cardContainer_fWXF",cardTitle:"cardTitle_rnsV",cardDescription:"cardDescription_PWke"};var u=s(5893);function h(e){let{href:t,children:s}=e;return(0,u.jsx)(c.Z,{href:t,className:(0,r.Z)("card padding--lg",m.cardContainer),children:s})}function b(e){let{href:t,icon:s,title:n,description:i}=e;return(0,u.jsxs)(h,{href:t,children:[(0,u.jsxs)(d.Z,{as:"h2",className:(0,r.Z)("text--truncate",m.cardTitle),title:n,children:[s," ",n]}),i&&(0,u.jsx)("p",{className:(0,r.Z)("text--truncate",m.cardDescription),title:i,children:i})]})}function x(e){let{item:t}=e;const s=(0,i.LM)(t);return s?(0,u.jsx)(b,{href:s,icon:"\ud83d\uddc3\ufe0f",title:t.label,description:t.description??(0,o.I)({message:"{count} items",id:"theme.docs.DocCard.categoryDescription",description:"The default description for a category card in the generated index about how many items this category includes"},{count:t.items.length})}):null}function v(e){let{item:t}=e;const s=(0,l.Z)(t.href)?"\ud83d\udcc4\ufe0f":"\ud83d\udd17",n=(0,i.xz)(t.docId??void 0);return(0,u.jsx)(b,{href:t.href,icon:s,title:t.label,description:t.description??n?.description})}function p(e){let{item:t}=e;switch(t.type){case"link":return(0,u.jsx)(v,{item:t});case"category":return(0,u.jsx)(x,{item:t});default:throw new Error(`unknown item type ${JSON.stringify(t)}`)}}function g(e){let{className:t}=e;const s=(0,i.jA)();return(0,u.jsx)(j,{items:s.items,className:t})}function j(e){const{items:t,className:s}=e;if(!t)return(0,u.jsx)(g,{...e});const n=(0,i.MN)(t);return(0,u.jsx)("section",{className:(0,r.Z)("row",s),children:n.map(((e,t)=>(0,u.jsx)("article",{className:"col col--6 margin-bottom--lg",children:(0,u.jsx)(p,{item:e})},t)))})}var f=s(4966),N=s(3120),Z=s(4364),L=s(1310);const _={generatedIndexPage:"generatedIndexPage_vN6x",list:"list_eTzJ",title:"title_kItE"};function k(e){let{categoryGeneratedIndex:t}=e;return(0,u.jsx)(n.d,{title:t.title,description:t.description,keywords:t.keywords,image:(0,a.Z)(t.image)})}function T(e){let{categoryGeneratedIndex:t}=e;const s=(0,i.jA)();return(0,u.jsxs)("div",{className:_.generatedIndexPage,children:[(0,u.jsx)(N.Z,{}),(0,u.jsx)(L.Z,{}),(0,u.jsx)(Z.Z,{}),(0,u.jsxs)("header",{children:[(0,u.jsx)(d.Z,{as:"h1",className:_.title,children:t.title}),t.description&&(0,u.jsx)("p",{children:t.description})]}),(0,u.jsx)("article",{className:"margin-top--lg",children:(0,u.jsx)(j,{items:s.items,className:_.list})}),(0,u.jsx)("footer",{className:"margin-top--lg",children:(0,u.jsx)(f.Z,{previous:t.navigation.previous,next:t.navigation.next})})]})}function y(e){return(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(k,{...e}),(0,u.jsx)(T,{...e})]})}},4966:(e,t,s)=>{s.d(t,{Z:()=>l});s(7294);var n=s(5999),i=s(6010),a=s(9960),r=s(5893);function c(e){const{permalink:t,title:s,subLabel:n,isNext:c}=e;return(0,r.jsxs)(a.Z,{className:(0,i.Z)("pagination-nav__link",c?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t,children:[n&&(0,r.jsx)("div",{className:"pagination-nav__sublabel",children:n}),(0,r.jsx)("div",{className:"pagination-nav__label",children:s})]})}function l(e){const{previous:t,next:s}=e;return(0,r.jsxs)("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,n.I)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages",description:"The ARIA label for the docs pagination"}),children:[t&&(0,r.jsx)(c,{...t,subLabel:(0,r.jsx)(n.Z,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc",children:"Previous"})}),s&&(0,r.jsx)(c,{...s,subLabel:(0,r.jsx)(n.Z,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc",children:"Next"}),isNext:!0})]})}},4364:(e,t,s)=>{s.d(t,{Z:()=>l});s(7294);var n=s(6010),i=s(5999),a=s(5281),r=s(4477),c=s(5893);function l(e){let{className:t}=e;const s=(0,r.E)();return s.badge?(0,c.jsx)("span",{className:(0,n.Z)(t,a.k.docs.docVersionBadge,"badge badge--secondary"),children:(0,c.jsx)(i.Z,{id:"theme.docs.versionBadge.label",values:{versionLabel:s.label},children:"Version: {versionLabel}"})}):null}},3120:(e,t,s)=>{s.d(t,{Z:()=>v});s(7294);var n=s(6010),i=s(2263),a=s(9960),r=s(5999),c=s(4104),l=s(5281),o=s(373),d=s(4477),m=s(5893);const u={unreleased:function(e){let{siteTitle:t,versionMetadata:s}=e;return(0,m.jsx)(r.Z,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:t,versionLabel:(0,m.jsx)("b",{children:s.label})},children:"This is unreleased documentation for {siteTitle} {versionLabel} version."})},unmaintained:function(e){let{siteTitle:t,versionMetadata:s}=e;return(0,m.jsx)(r.Z,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:t,versionLabel:(0,m.jsx)("b",{children:s.label})},children:"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained."})}};function h(e){const t=u[e.versionMetadata.banner];return(0,m.jsx)(t,{...e})}function b(e){let{versionLabel:t,to:s,onClick:n}=e;return(0,m.jsx)(r.Z,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:t,latestVersionLink:(0,m.jsx)("b",{children:(0,m.jsx)(a.Z,{to:s,onClick:n,children:(0,m.jsx)(r.Z,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label",children:"latest version"})})})},children:"For up-to-date documentation, see the {latestVersionLink} ({versionLabel})."})}function x(e){let{className:t,versionMetadata:s}=e;const{siteConfig:{title:a}}=(0,i.Z)(),{pluginId:r}=(0,c.gA)({failfast:!0}),{savePreferredVersionName:d}=(0,o.J)(r),{latestDocSuggestion:u,latestVersionSuggestion:x}=(0,c.Jo)(r),v=u??(p=x).docs.find((e=>e.id===p.mainDocId));var p;return(0,m.jsxs)("div",{className:(0,n.Z)(t,l.k.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert",children:[(0,m.jsx)("div",{children:(0,m.jsx)(h,{siteTitle:a,versionMetadata:s})}),(0,m.jsx)("div",{className:"margin-top--md",children:(0,m.jsx)(b,{versionLabel:x.label,to:v.path,onClick:()=>d(x.name)})})]})}function v(e){let{className:t}=e;const s=(0,d.E)();return s.banner?(0,m.jsx)(x,{className:t,versionMetadata:s}):null}}}]); \ No newline at end of file diff --git a/assets/js/14eb3368.78fc892f.js b/assets/js/14eb3368.78fc892f.js deleted file mode 100644 index dd1b4ddf3..000000000 --- a/assets/js/14eb3368.78fc892f.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[9817],{1310:(e,t,a)=>{a.d(t,{Z:()=>E});var n=a(7462),r=a(7294),i=a(6010),l=a(5281),s=a(3438),c=a(8596),o=a(9960),m=a(5999),d=a(4996);function u(e){return r.createElement("svg",(0,n.Z)({viewBox:"0 0 24 24"},e),r.createElement("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z",fill:"currentColor"}))}const h={breadcrumbHomeIcon:"breadcrumbHomeIcon_YNFT"};function b(){const e=(0,d.Z)("/");return r.createElement("li",{className:"breadcrumbs__item"},r.createElement(o.Z,{"aria-label":(0,m.I)({id:"theme.docs.breadcrumbs.home",message:"Home page",description:"The ARIA label for the home page in the breadcrumbs"}),className:"breadcrumbs__link",href:e},r.createElement(u,{className:h.breadcrumbHomeIcon})))}const v={breadcrumbsContainer:"breadcrumbsContainer_Z_bl"};function g(e){let{children:t,href:a,isLast:n}=e;const i="breadcrumbs__link";return n?r.createElement("span",{className:i,itemProp:"name"},t):a?r.createElement(o.Z,{className:i,href:a,itemProp:"item"},r.createElement("span",{itemProp:"name"},t)):r.createElement("span",{className:i},t)}function p(e){let{children:t,active:a,index:l,addMicrodata:s}=e;return r.createElement("li",(0,n.Z)({},s&&{itemScope:!0,itemProp:"itemListElement",itemType:"https://schema.org/ListItem"},{className:(0,i.Z)("breadcrumbs__item",{"breadcrumbs__item--active":a})}),t,r.createElement("meta",{itemProp:"position",content:String(l+1)}))}function E(){const e=(0,s.s1)(),t=(0,c.Ns)();return e?r.createElement("nav",{className:(0,i.Z)(l.k.docs.docBreadcrumbs,v.breadcrumbsContainer),"aria-label":(0,m.I)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"})},r.createElement("ul",{className:"breadcrumbs",itemScope:!0,itemType:"https://schema.org/BreadcrumbList"},t&&r.createElement(b,null),e.map(((t,a)=>{const n=a===e.length-1;return r.createElement(p,{key:a,active:n,index:a,addMicrodata:!!t.href},r.createElement(g,{href:t.href,isLast:n},t.label))})))):null}},4228:(e,t,a)=>{a.r(t),a.d(t,{default:()=>x});var n=a(7294),r=a(1944),i=a(3438),l=a(4996),s=a(6010),c=a(9960),o=a(3919),m=a(5999);const d={cardContainer:"cardContainer_fWXF",cardTitle:"cardTitle_rnsV",cardDescription:"cardDescription_PWke"};function u(e){let{href:t,children:a}=e;return n.createElement(c.Z,{href:t,className:(0,s.Z)("card padding--lg",d.cardContainer)},a)}function h(e){let{href:t,icon:a,title:r,description:i}=e;return n.createElement(u,{href:t},n.createElement("h2",{className:(0,s.Z)("text--truncate",d.cardTitle),title:r},a," ",r),i&&n.createElement("p",{className:(0,s.Z)("text--truncate",d.cardDescription),title:i},i))}function b(e){let{item:t}=e;const a=(0,i.Wl)(t);return a?n.createElement(h,{href:a,icon:"\ud83d\uddc3\ufe0f",title:t.label,description:t.description??(0,m.I)({message:"{count} items",id:"theme.docs.DocCard.categoryDescription",description:"The default description for a category card in the generated index about how many items this category includes"},{count:t.items.length})}):null}function v(e){let{item:t}=e;const a=(0,o.Z)(t.href)?"\ud83d\udcc4\ufe0f":"\ud83d\udd17",r=(0,i.xz)(t.docId??void 0);return n.createElement(h,{href:t.href,icon:a,title:t.label,description:t.description??r?.description})}function g(e){let{item:t}=e;switch(t.type){case"link":return n.createElement(v,{item:t});case"category":return n.createElement(b,{item:t});default:throw new Error(`unknown item type ${JSON.stringify(t)}`)}}function p(e){let{className:t}=e;const a=(0,i.jA)();return n.createElement(E,{items:a.items,className:t})}function E(e){const{items:t,className:a}=e;if(!t)return n.createElement(p,e);const r=(0,i.MN)(t);return n.createElement("section",{className:(0,s.Z)("row",a)},r.map(((e,t)=>n.createElement("article",{key:t,className:"col col--6 margin-bottom--lg"},n.createElement(g,{item:e})))))}var f=a(4966),N=a(3120),Z=a(4364),k=a(1310),L=a(2503);const _={generatedIndexPage:"generatedIndexPage_vN6x",list:"list_eTzJ",title:"title_kItE"};function T(e){let{categoryGeneratedIndex:t}=e;return n.createElement(r.d,{title:t.title,description:t.description,keywords:t.keywords,image:(0,l.Z)(t.image)})}function y(e){let{categoryGeneratedIndex:t}=e;const a=(0,i.jA)();return n.createElement("div",{className:_.generatedIndexPage},n.createElement(N.Z,null),n.createElement(k.Z,null),n.createElement(Z.Z,null),n.createElement("header",null,n.createElement(L.Z,{as:"h1",className:_.title},t.title),t.description&&n.createElement("p",null,t.description)),n.createElement("article",{className:"margin-top--lg"},n.createElement(E,{items:a.items,className:_.list})),n.createElement("footer",{className:"margin-top--lg"},n.createElement(f.Z,{previous:t.navigation.previous,next:t.navigation.next})))}function x(e){return n.createElement(n.Fragment,null,n.createElement(T,e),n.createElement(y,e))}},4966:(e,t,a)=>{a.d(t,{Z:()=>o});var n=a(7462),r=a(7294),i=a(5999),l=a(6010),s=a(9960);function c(e){const{permalink:t,title:a,subLabel:n,isNext:i}=e;return r.createElement(s.Z,{className:(0,l.Z)("pagination-nav__link",i?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t},n&&r.createElement("div",{className:"pagination-nav__sublabel"},n),r.createElement("div",{className:"pagination-nav__label"},a))}function o(e){const{previous:t,next:a}=e;return r.createElement("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,i.I)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages",description:"The ARIA label for the docs pagination"})},t&&r.createElement(c,(0,n.Z)({},t,{subLabel:r.createElement(i.Z,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc"},"Previous")})),a&&r.createElement(c,(0,n.Z)({},a,{subLabel:r.createElement(i.Z,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc"},"Next"),isNext:!0})))}},4364:(e,t,a)=>{a.d(t,{Z:()=>c});var n=a(7294),r=a(6010),i=a(5999),l=a(5281),s=a(4477);function c(e){let{className:t}=e;const a=(0,s.E)();return a.badge?n.createElement("span",{className:(0,r.Z)(t,l.k.docs.docVersionBadge,"badge badge--secondary")},n.createElement(i.Z,{id:"theme.docs.versionBadge.label",values:{versionLabel:a.label}},"Version: {versionLabel}")):null}},3120:(e,t,a)=>{a.d(t,{Z:()=>g});var n=a(7294),r=a(6010),i=a(2263),l=a(9960),s=a(5999),c=a(4104),o=a(5281),m=a(373),d=a(4477);const u={unreleased:function(e){let{siteTitle:t,versionMetadata:a}=e;return n.createElement(s.Z,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:t,versionLabel:n.createElement("b",null,a.label)}},"This is unreleased documentation for {siteTitle} {versionLabel} version.")},unmaintained:function(e){let{siteTitle:t,versionMetadata:a}=e;return n.createElement(s.Z,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:t,versionLabel:n.createElement("b",null,a.label)}},"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained.")}};function h(e){const t=u[e.versionMetadata.banner];return n.createElement(t,e)}function b(e){let{versionLabel:t,to:a,onClick:r}=e;return n.createElement(s.Z,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:t,latestVersionLink:n.createElement("b",null,n.createElement(l.Z,{to:a,onClick:r},n.createElement(s.Z,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label"},"latest version")))}},"For up-to-date documentation, see the {latestVersionLink} ({versionLabel}).")}function v(e){let{className:t,versionMetadata:a}=e;const{siteConfig:{title:l}}=(0,i.Z)(),{pluginId:s}=(0,c.gA)({failfast:!0}),{savePreferredVersionName:d}=(0,m.J)(s),{latestDocSuggestion:u,latestVersionSuggestion:v}=(0,c.Jo)(s),g=u??(p=v).docs.find((e=>e.id===p.mainDocId));var p;return n.createElement("div",{className:(0,r.Z)(t,o.k.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert"},n.createElement("div",null,n.createElement(h,{siteTitle:l,versionMetadata:a})),n.createElement("div",{className:"margin-top--md"},n.createElement(b,{versionLabel:v.label,to:g.path,onClick:()=>d(v.name)})))}function g(e){let{className:t}=e;const a=(0,d.E)();return a.banner?n.createElement(v,{className:t,versionMetadata:a}):null}},2503:(e,t,a)=>{a.d(t,{Z:()=>m});var n=a(7462),r=a(7294),i=a(6010),l=a(5999),s=a(6668),c=a(9960);const o={anchorWithStickyNavbar:"anchorWithStickyNavbar_LWe7",anchorWithHideOnScrollNavbar:"anchorWithHideOnScrollNavbar_WYt5"};function m(e){let{as:t,id:a,...m}=e;const{navbar:{hideOnScroll:d}}=(0,s.L)();if("h1"===t||!a)return r.createElement(t,(0,n.Z)({},m,{id:void 0}));const u=(0,l.I)({id:"theme.common.headingLinkTitle",message:"Direct link to {heading}",description:"Title for link to heading"},{heading:"string"==typeof m.children?m.children:a});return r.createElement(t,(0,n.Z)({},m,{className:(0,i.Z)("anchor",d?o.anchorWithHideOnScrollNavbar:o.anchorWithStickyNavbar,m.className),id:a}),m.children,r.createElement(c.Z,{className:"hash-link",to:`#${a}`,"aria-label":u,title:u},"\u200b"))}}}]); \ No newline at end of file diff --git a/assets/js/171930c3.6836c4c9.js b/assets/js/171930c3.6836c4c9.js deleted file mode 100644 index 82af1ac3f..000000000 --- a/assets/js/171930c3.6836c4c9.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[2786],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>f});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var c=r.createContext({}),l=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=l(e.components);return r.createElement(c.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),u=l(n),m=o,f=u["".concat(c,".").concat(m)]||u[m]||d[m]||a;return n?r.createElement(f,i(i({ref:t},p),{},{components:n})):r.createElement(f,i({ref:t},p))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=m;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s[u]="string"==typeof e?e:o,i[1]=s;for(var l=2;l{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>s,toc:()=>l});var r=n(7462),o=(n(7294),n(3905));const a={title:"AWS Relational Database Service (RDS)"},i=void 0,s={unversionedId:"integrations/RDS",id:"integrations/RDS",title:"AWS Relational Database Service (RDS)",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/integrations/RDS.md",sourceDirName:"integrations",slug:"/integrations/RDS",permalink:"/docs/integrations/RDS",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/integrations/RDS.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",frontMatter:{title:"AWS Relational Database Service (RDS)"},sidebar:"tutorialSidebar",previous:{title:"Integrations",permalink:"/docs/integrations/intro"},next:{title:"Apollo Server",permalink:"/docs/integrations/apollo-server"}},c={},l=[],p={toc:l},u="wrapper";function d(e){let{components:t,...n}=e;return(0,o.kt)(u,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("admonition",{type:"caution"},(0,o.kt)("p",{parentName:"admonition"},"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.")),(0,o.kt)("p",null,"First, you need to pass in a password. In order from most secure to least: ",(0,o.kt)("inlineCode",{parentName:"p"},"RDS.Signer"),", ",(0,o.kt)("inlineCode",{parentName:"p"},"SecretsManager"),", ",(0,o.kt)("inlineCode",{parentName:"p"},"SSM")," using SecureString.\n",(0,o.kt)("inlineCode",{parentName:"p"},"SSM")," can be considered equally secure to ",(0,o.kt)("inlineCode",{parentName:"p"},"SecretsManager")," if you have your own password rotation system."),(0,o.kt)("p",null,"Additionally, you will want to verify the RDS certificate and the domain of your connection. You can use this sudo code to get you started:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-javascript"},"import tls from 'tls'\n\n// https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html\nconst ca = `-----BEGIN CERTIFICATE----- ...` \n\nconnectionOptions = {\n ...,\n ssl: {\n rejectUnauthorized: true,\n ca,\n checkServerIdentity: (host, cert) => {\n const error = tls.checkServerIdentity(host, cert)\n if (\n error &&\n !cert.subject.CN.endsWith('.rds.amazonaws.com')\n ) {\n return error\n }\n }\n }\n}\n")),(0,o.kt)("p",null,"Corresponding ",(0,o.kt)("inlineCode",{parentName:"p"},"RDS.ParameterGroups")," values should be set to enforce TLS connections."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/171930c3.ec33f3de.js b/assets/js/171930c3.ec33f3de.js new file mode 100644 index 000000000..1c417312e --- /dev/null +++ b/assets/js/171930c3.ec33f3de.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[2786],{3158:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>u,frontMatter:()=>s,metadata:()=>a,toc:()=>d});var o=n(5893),r=n(1151);const s={title:"AWS Relational Database Service (RDS)"},i=void 0,a={id:"integrations/RDS",title:"AWS Relational Database Service (RDS)",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/integrations/RDS.md",sourceDirName:"integrations",slug:"/integrations/RDS",permalink:"/docs/integrations/RDS",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/integrations/RDS.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",frontMatter:{title:"AWS Relational Database Service (RDS)"},sidebar:"tutorialSidebar",previous:{title:"Integrations",permalink:"/docs/integrations/intro"},next:{title:"Apollo Server",permalink:"/docs/integrations/apollo-server"}},c={},d=[];function l(e){const t={admonition:"admonition",code:"code",p:"p",pre:"pre",...(0,r.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.admonition,{type:"caution",children:(0,o.jsx)(t.p,{children:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub."})}),"\n",(0,o.jsxs)(t.p,{children:["First, you need to pass in a password. In order from most secure to least: ",(0,o.jsx)(t.code,{children:"RDS.Signer"}),", ",(0,o.jsx)(t.code,{children:"SecretsManager"}),", ",(0,o.jsx)(t.code,{children:"SSM"})," using SecureString.\n",(0,o.jsx)(t.code,{children:"SSM"})," can be considered equally secure to ",(0,o.jsx)(t.code,{children:"SecretsManager"})," if you have your own password rotation system."]}),"\n",(0,o.jsx)(t.p,{children:"Additionally, you will want to verify the RDS certificate and the domain of your connection. You can use this sudo code to get you started:"}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-javascript",children:"import tls from 'tls'\n\n// https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html\nconst ca = `-----BEGIN CERTIFICATE----- ...` \n\nconnectionOptions = {\n ...,\n ssl: {\n rejectUnauthorized: true,\n ca,\n checkServerIdentity: (host, cert) => {\n const error = tls.checkServerIdentity(host, cert)\n if (\n error &&\n !cert.subject.CN.endsWith('.rds.amazonaws.com')\n ) {\n return error\n }\n }\n }\n}\n"})}),"\n",(0,o.jsxs)(t.p,{children:["Corresponding ",(0,o.jsx)(t.code,{children:"RDS.ParameterGroups"})," values should be set to enforce TLS connections."]})]})}function u(e={}){const{wrapper:t}={...(0,r.a)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(l,{...e})}):l(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>a,a:()=>i});var o=n(7294);const r={},s=o.createContext(r);function i(e){const t=o.useContext(s);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:i(e.components),o.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/17896441.bb50e585.js b/assets/js/17896441.bb50e585.js deleted file mode 100644 index 16aa2d7ce..000000000 --- a/assets/js/17896441.bb50e585.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[7918],{1310:(e,t,a)=>{a.d(t,{Z:()=>g});var n=a(7462),l=a(7294),r=a(6010),o=a(5281),s=a(3438),c=a(8596),i=a(9960),d=a(5999),m=a(4996);function u(e){return l.createElement("svg",(0,n.Z)({viewBox:"0 0 24 24"},e),l.createElement("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z",fill:"currentColor"}))}const b={breadcrumbHomeIcon:"breadcrumbHomeIcon_YNFT"};function p(){const e=(0,m.Z)("/");return l.createElement("li",{className:"breadcrumbs__item"},l.createElement(i.Z,{"aria-label":(0,d.I)({id:"theme.docs.breadcrumbs.home",message:"Home page",description:"The ARIA label for the home page in the breadcrumbs"}),className:"breadcrumbs__link",href:e},l.createElement(u,{className:b.breadcrumbHomeIcon})))}const E={breadcrumbsContainer:"breadcrumbsContainer_Z_bl"};function h(e){let{children:t,href:a,isLast:n}=e;const r="breadcrumbs__link";return n?l.createElement("span",{className:r,itemProp:"name"},t):a?l.createElement(i.Z,{className:r,href:a,itemProp:"item"},l.createElement("span",{itemProp:"name"},t)):l.createElement("span",{className:r},t)}function v(e){let{children:t,active:a,index:o,addMicrodata:s}=e;return l.createElement("li",(0,n.Z)({},s&&{itemScope:!0,itemProp:"itemListElement",itemType:"https://schema.org/ListItem"},{className:(0,r.Z)("breadcrumbs__item",{"breadcrumbs__item--active":a})}),t,l.createElement("meta",{itemProp:"position",content:String(o+1)}))}function g(){const e=(0,s.s1)(),t=(0,c.Ns)();return e?l.createElement("nav",{className:(0,r.Z)(o.k.docs.docBreadcrumbs,E.breadcrumbsContainer),"aria-label":(0,d.I)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"})},l.createElement("ul",{className:"breadcrumbs",itemScope:!0,itemType:"https://schema.org/BreadcrumbList"},t&&l.createElement(p,null),e.map(((t,a)=>{const n=a===e.length-1;return l.createElement(v,{key:a,active:n,index:a,addMicrodata:!!t.href},l.createElement(h,{href:t.href,isLast:n},t.label))})))):null}},230:(e,t,a)=>{a.r(t),a.d(t,{default:()=>X});var n=a(7294),l=a(1944),r=a(902);const o=n.createContext(null);function s(e){let{children:t,content:a}=e;const l=function(e){return(0,n.useMemo)((()=>({metadata:e.metadata,frontMatter:e.frontMatter,assets:e.assets,contentTitle:e.contentTitle,toc:e.toc})),[e])}(a);return n.createElement(o.Provider,{value:l},t)}function c(){const e=(0,n.useContext)(o);if(null===e)throw new r.i6("DocProvider");return e}function i(){const{metadata:e,frontMatter:t,assets:a}=c();return n.createElement(l.d,{title:e.title,description:e.description,keywords:t.keywords,image:a.image??t.image})}var d=a(6010),m=a(7524),u=a(4966);function b(){const{metadata:e}=c();return n.createElement(u.Z,{previous:e.previous,next:e.next})}var p=a(3120),E=a(4364),h=a(5281),v=a(5999);function g(e){let{lastUpdatedAt:t,formattedLastUpdatedAt:a}=e;return n.createElement(v.Z,{id:"theme.lastUpdated.atDate",description:"The words used to describe on which date a page has been last updated",values:{date:n.createElement("b",null,n.createElement("time",{dateTime:new Date(1e3*t).toISOString()},a))}}," on {date}")}function f(e){let{lastUpdatedBy:t}=e;return n.createElement(v.Z,{id:"theme.lastUpdated.byUser",description:"The words used to describe by who the page has been last updated",values:{user:n.createElement("b",null,t)}}," by {user}")}function Z(e){let{lastUpdatedAt:t,formattedLastUpdatedAt:a,lastUpdatedBy:l}=e;return n.createElement("span",{className:h.k.common.lastUpdated},n.createElement(v.Z,{id:"theme.lastUpdated.lastUpdatedAtBy",description:"The sentence used to display when a page has been last updated, and by who",values:{atDate:t&&a?n.createElement(g,{lastUpdatedAt:t,formattedLastUpdatedAt:a}):"",byUser:l?n.createElement(f,{lastUpdatedBy:l}):""}},"Last updated{atDate}{byUser}"),!1)}var _=a(7462);const N={iconEdit:"iconEdit_Z9Sw"};function k(e){let{className:t,...a}=e;return n.createElement("svg",(0,_.Z)({fill:"currentColor",height:"20",width:"20",viewBox:"0 0 40 40",className:(0,d.Z)(N.iconEdit,t),"aria-hidden":"true"},a),n.createElement("g",null,n.createElement("path",{d:"m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"})))}function L(e){let{editUrl:t}=e;return n.createElement("a",{href:t,target:"_blank",rel:"noreferrer noopener",className:h.k.common.editThisPage},n.createElement(k,null),n.createElement(v.Z,{id:"theme.common.editThisPage",description:"The link label to edit the current page"},"Edit this page"))}var C=a(9960);const T={tag:"tag_zVej",tagRegular:"tagRegular_sFm0",tagWithCount:"tagWithCount_h2kH"};function U(e){let{permalink:t,label:a,count:l}=e;return n.createElement(C.Z,{href:t,className:(0,d.Z)(T.tag,l?T.tagWithCount:T.tagRegular)},a,l&&n.createElement("span",null,l))}const w={tags:"tags_jXut",tag:"tag_QGVx"};function x(e){let{tags:t}=e;return n.createElement(n.Fragment,null,n.createElement("b",null,n.createElement(v.Z,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list"},"Tags:")),n.createElement("ul",{className:(0,d.Z)(w.tags,"padding--none","margin-left--sm")},t.map((e=>{let{label:t,permalink:a}=e;return n.createElement("li",{key:a,className:w.tag},n.createElement(U,{label:t,permalink:a}))}))))}const y={lastUpdated:"lastUpdated_vwxv"};function A(e){return n.createElement("div",{className:(0,d.Z)(h.k.docs.docFooterTagsRow,"row margin-bottom--sm")},n.createElement("div",{className:"col"},n.createElement(x,e)))}function M(e){let{editUrl:t,lastUpdatedAt:a,lastUpdatedBy:l,formattedLastUpdatedAt:r}=e;return n.createElement("div",{className:(0,d.Z)(h.k.docs.docFooterEditMetaRow,"row")},n.createElement("div",{className:"col"},t&&n.createElement(L,{editUrl:t})),n.createElement("div",{className:(0,d.Z)("col",y.lastUpdated)},(a||l)&&n.createElement(Z,{lastUpdatedAt:a,formattedLastUpdatedAt:r,lastUpdatedBy:l})))}function B(){const{metadata:e}=c(),{editUrl:t,lastUpdatedAt:a,formattedLastUpdatedAt:l,lastUpdatedBy:r,tags:o}=e,s=o.length>0,i=!!(t||a||r);return s||i?n.createElement("footer",{className:(0,d.Z)(h.k.docs.docFooter,"docusaurus-mt-lg")},s&&n.createElement(A,{tags:o}),i&&n.createElement(M,{editUrl:t,lastUpdatedAt:a,lastUpdatedBy:r,formattedLastUpdatedAt:l})):null}var I=a(6043),V=a(3743);const H={tocCollapsibleButton:"tocCollapsibleButton_TO0P",tocCollapsibleButtonExpanded:"tocCollapsibleButtonExpanded_MG3E"};function P(e){let{collapsed:t,...a}=e;return n.createElement("button",(0,_.Z)({type:"button"},a,{className:(0,d.Z)("clean-btn",H.tocCollapsibleButton,!t&&H.tocCollapsibleButtonExpanded,a.className)}),n.createElement(v.Z,{id:"theme.TOCCollapsible.toggleButtonLabel",description:"The label used by the button on the collapsible TOC component"},"On this page"))}const D={tocCollapsible:"tocCollapsible_ETCw",tocCollapsibleContent:"tocCollapsibleContent_vkbj",tocCollapsibleExpanded:"tocCollapsibleExpanded_sAul"};function S(e){let{toc:t,className:a,minHeadingLevel:l,maxHeadingLevel:r}=e;const{collapsed:o,toggleCollapsed:s}=(0,I.u)({initialState:!0});return n.createElement("div",{className:(0,d.Z)(D.tocCollapsible,!o&&D.tocCollapsibleExpanded,a)},n.createElement(P,{collapsed:o,onClick:s}),n.createElement(I.z,{lazy:!0,className:D.tocCollapsibleContent,collapsed:o},n.createElement(V.Z,{toc:t,minHeadingLevel:l,maxHeadingLevel:r})))}const F={tocMobile:"tocMobile_ITEo"};function R(){const{toc:e,frontMatter:t}=c();return n.createElement(S,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:(0,d.Z)(h.k.docs.docTocMobile,F.tocMobile)})}var z=a(9407);function O(){const{toc:e,frontMatter:t}=c();return n.createElement(z.Z,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:h.k.docs.docTocDesktop})}var j=a(2503),G=a(3140);function W(e){let{children:t}=e;const a=function(){const{metadata:e,frontMatter:t,contentTitle:a}=c();return t.hide_title||void 0!==a?null:e.title}();return n.createElement("div",{className:(0,d.Z)(h.k.docs.docMarkdown,"markdown")},a&&n.createElement("header",null,n.createElement(j.Z,{as:"h1"},a)),n.createElement(G.Z,null,t))}var q=a(1310);const J={docItemContainer:"docItemContainer_Djhp",docItemCol:"docItemCol_VOVn"};function Q(e){let{children:t}=e;const a=function(){const{frontMatter:e,toc:t}=c(),a=(0,m.i)(),l=e.hide_table_of_contents,r=!l&&t.length>0;return{hidden:l,mobile:r?n.createElement(R,null):void 0,desktop:!r||"desktop"!==a&&"ssr"!==a?void 0:n.createElement(O,null)}}();return n.createElement("div",{className:"row"},n.createElement("div",{className:(0,d.Z)("col",!a.hidden&&J.docItemCol)},n.createElement(p.Z,null),n.createElement("div",{className:J.docItemContainer},n.createElement("article",null,n.createElement(q.Z,null),n.createElement(E.Z,null),a.mobile,n.createElement(W,null,t),n.createElement(B,null)),n.createElement(b,null))),a.desktop&&n.createElement("div",{className:"col col--3"},a.desktop))}function X(e){const t=`docs-doc-id-${e.content.metadata.unversionedId}`,a=e.content;return n.createElement(s,{content:e.content},n.createElement(l.FG,{className:t},n.createElement(i,null),n.createElement(Q,null,n.createElement(a,null))))}},4966:(e,t,a)=>{a.d(t,{Z:()=>i});var n=a(7462),l=a(7294),r=a(5999),o=a(6010),s=a(9960);function c(e){const{permalink:t,title:a,subLabel:n,isNext:r}=e;return l.createElement(s.Z,{className:(0,o.Z)("pagination-nav__link",r?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t},n&&l.createElement("div",{className:"pagination-nav__sublabel"},n),l.createElement("div",{className:"pagination-nav__label"},a))}function i(e){const{previous:t,next:a}=e;return l.createElement("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,r.I)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages",description:"The ARIA label for the docs pagination"})},t&&l.createElement(c,(0,n.Z)({},t,{subLabel:l.createElement(r.Z,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc"},"Previous")})),a&&l.createElement(c,(0,n.Z)({},a,{subLabel:l.createElement(r.Z,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc"},"Next"),isNext:!0})))}},4364:(e,t,a)=>{a.d(t,{Z:()=>c});var n=a(7294),l=a(6010),r=a(5999),o=a(5281),s=a(4477);function c(e){let{className:t}=e;const a=(0,s.E)();return a.badge?n.createElement("span",{className:(0,l.Z)(t,o.k.docs.docVersionBadge,"badge badge--secondary")},n.createElement(r.Z,{id:"theme.docs.versionBadge.label",values:{versionLabel:a.label}},"Version: {versionLabel}")):null}},3120:(e,t,a)=>{a.d(t,{Z:()=>h});var n=a(7294),l=a(6010),r=a(2263),o=a(9960),s=a(5999),c=a(4104),i=a(5281),d=a(373),m=a(4477);const u={unreleased:function(e){let{siteTitle:t,versionMetadata:a}=e;return n.createElement(s.Z,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:t,versionLabel:n.createElement("b",null,a.label)}},"This is unreleased documentation for {siteTitle} {versionLabel} version.")},unmaintained:function(e){let{siteTitle:t,versionMetadata:a}=e;return n.createElement(s.Z,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:t,versionLabel:n.createElement("b",null,a.label)}},"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained.")}};function b(e){const t=u[e.versionMetadata.banner];return n.createElement(t,e)}function p(e){let{versionLabel:t,to:a,onClick:l}=e;return n.createElement(s.Z,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:t,latestVersionLink:n.createElement("b",null,n.createElement(o.Z,{to:a,onClick:l},n.createElement(s.Z,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label"},"latest version")))}},"For up-to-date documentation, see the {latestVersionLink} ({versionLabel}).")}function E(e){let{className:t,versionMetadata:a}=e;const{siteConfig:{title:o}}=(0,r.Z)(),{pluginId:s}=(0,c.gA)({failfast:!0}),{savePreferredVersionName:m}=(0,d.J)(s),{latestDocSuggestion:u,latestVersionSuggestion:E}=(0,c.Jo)(s),h=u??(v=E).docs.find((e=>e.id===v.mainDocId));var v;return n.createElement("div",{className:(0,l.Z)(t,i.k.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert"},n.createElement("div",null,n.createElement(b,{siteTitle:o,versionMetadata:a})),n.createElement("div",{className:"margin-top--md"},n.createElement(p,{versionLabel:E.label,to:h.path,onClick:()=>m(E.name)})))}function h(e){let{className:t}=e;const a=(0,m.E)();return a.banner?n.createElement(E,{className:t,versionMetadata:a}):null}}}]); \ No newline at end of file diff --git a/assets/js/17896441.eaee85e9.js b/assets/js/17896441.eaee85e9.js new file mode 100644 index 000000000..d5f66cf28 --- /dev/null +++ b/assets/js/17896441.eaee85e9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[7918],{1310:(e,t,s)=>{s.d(t,{Z:()=>v});s(7294);var a=s(6010),n=s(5281),i=s(3438),l=s(8596),o=s(9960),d=s(5999),r=s(4996),c=s(5893);function u(e){return(0,c.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,c.jsx)("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z",fill:"currentColor"})})}const m={breadcrumbHomeIcon:"breadcrumbHomeIcon_YNFT"};function h(){const e=(0,r.Z)("/");return(0,c.jsx)("li",{className:"breadcrumbs__item",children:(0,c.jsx)(o.Z,{"aria-label":(0,d.I)({id:"theme.docs.breadcrumbs.home",message:"Home page",description:"The ARIA label for the home page in the breadcrumbs"}),className:"breadcrumbs__link",href:e,children:(0,c.jsx)(u,{className:m.breadcrumbHomeIcon})})})}const p={breadcrumbsContainer:"breadcrumbsContainer_Z_bl"};function b(e){let{children:t,href:s,isLast:a}=e;const n="breadcrumbs__link";return a?(0,c.jsx)("span",{className:n,itemProp:"name",children:t}):s?(0,c.jsx)(o.Z,{className:n,href:s,itemProp:"item",children:(0,c.jsx)("span",{itemProp:"name",children:t})}):(0,c.jsx)("span",{className:n,children:t})}function x(e){let{children:t,active:s,index:n,addMicrodata:i}=e;return(0,c.jsxs)("li",{...i&&{itemScope:!0,itemProp:"itemListElement",itemType:"https://schema.org/ListItem"},className:(0,a.Z)("breadcrumbs__item",{"breadcrumbs__item--active":s}),children:[t,(0,c.jsx)("meta",{itemProp:"position",content:String(n+1)})]})}function v(){const e=(0,i.s1)(),t=(0,l.Ns)();return e?(0,c.jsx)("nav",{className:(0,a.Z)(n.k.docs.docBreadcrumbs,p.breadcrumbsContainer),"aria-label":(0,d.I)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"}),children:(0,c.jsxs)("ul",{className:"breadcrumbs",itemScope:!0,itemType:"https://schema.org/BreadcrumbList",children:[t&&(0,c.jsx)(h,{}),e.map(((t,s)=>{const a=s===e.length-1,n="category"===t.type&&t.linkUnlisted?void 0:t.href;return(0,c.jsx)(x,{active:a,index:s,addMicrodata:!!n,children:(0,c.jsx)(b,{href:n,isLast:a,children:t.label})},s)}))]})}):null}},230:(e,t,s)=>{s.r(t),s.d(t,{default:()=>Y});var a=s(7294),n=s(1944),i=s(902),l=s(5893);const o=a.createContext(null);function d(e){let{children:t,content:s}=e;const n=function(e){return(0,a.useMemo)((()=>({metadata:e.metadata,frontMatter:e.frontMatter,assets:e.assets,contentTitle:e.contentTitle,toc:e.toc})),[e])}(s);return(0,l.jsx)(o.Provider,{value:n,children:t})}function r(){const e=(0,a.useContext)(o);if(null===e)throw new i.i6("DocProvider");return e}function c(){const{metadata:e,frontMatter:t,assets:s}=r();return(0,l.jsx)(n.d,{title:e.title,description:e.description,keywords:t.keywords,image:s.image??t.image})}var u=s(6010),m=s(7524),h=s(4966);function p(){const{metadata:e}=r();return(0,l.jsx)(h.Z,{previous:e.previous,next:e.next})}var b=s(3120),x=s(4364),v=s(5281),j=s(5999);function g(e){let{lastUpdatedAt:t,formattedLastUpdatedAt:s}=e;return(0,l.jsx)(j.Z,{id:"theme.lastUpdated.atDate",description:"The words used to describe on which date a page has been last updated",values:{date:(0,l.jsx)("b",{children:(0,l.jsx)("time",{dateTime:new Date(1e3*t).toISOString(),children:s})})},children:" on {date}"})}function f(e){let{lastUpdatedBy:t}=e;return(0,l.jsx)(j.Z,{id:"theme.lastUpdated.byUser",description:"The words used to describe by who the page has been last updated",values:{user:(0,l.jsx)("b",{children:t})},children:" by {user}"})}function _(e){let{lastUpdatedAt:t,formattedLastUpdatedAt:s,lastUpdatedBy:a}=e;return(0,l.jsxs)("span",{className:v.k.common.lastUpdated,children:[(0,l.jsx)(j.Z,{id:"theme.lastUpdated.lastUpdatedAtBy",description:"The sentence used to display when a page has been last updated, and by who",values:{atDate:t&&s?(0,l.jsx)(g,{lastUpdatedAt:t,formattedLastUpdatedAt:s}):"",byUser:a?(0,l.jsx)(f,{lastUpdatedBy:a}):""},children:"Last updated{atDate}{byUser}"}),!1]})}var Z=s(9960);const N={iconEdit:"iconEdit_Z9Sw"};function L(e){let{className:t,...s}=e;return(0,l.jsx)("svg",{fill:"currentColor",height:"20",width:"20",viewBox:"0 0 40 40",className:(0,u.Z)(N.iconEdit,t),"aria-hidden":"true",...s,children:(0,l.jsx)("g",{children:(0,l.jsx)("path",{d:"m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"})})})}function k(e){let{editUrl:t}=e;return(0,l.jsxs)(Z.Z,{to:t,className:v.k.common.editThisPage,children:[(0,l.jsx)(L,{}),(0,l.jsx)(j.Z,{id:"theme.common.editThisPage",description:"The link label to edit the current page",children:"Edit this page"})]})}const C={tag:"tag_zVej",tagRegular:"tagRegular_sFm0",tagWithCount:"tagWithCount_h2kH"};function T(e){let{permalink:t,label:s,count:a}=e;return(0,l.jsxs)(Z.Z,{href:t,className:(0,u.Z)(C.tag,a?C.tagWithCount:C.tagRegular),children:[s,a&&(0,l.jsx)("span",{children:a})]})}const U={tags:"tags_jXut",tag:"tag_QGVx"};function w(e){let{tags:t}=e;return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)("b",{children:(0,l.jsx)(j.Z,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list",children:"Tags:"})}),(0,l.jsx)("ul",{className:(0,u.Z)(U.tags,"padding--none","margin-left--sm"),children:t.map((e=>{let{label:t,permalink:s}=e;return(0,l.jsx)("li",{className:U.tag,children:(0,l.jsx)(T,{label:t,permalink:s})},s)}))})]})}const y={lastUpdated:"lastUpdated_vwxv"};function A(e){return(0,l.jsx)("div",{className:(0,u.Z)(v.k.docs.docFooterTagsRow,"row margin-bottom--sm"),children:(0,l.jsx)("div",{className:"col",children:(0,l.jsx)(w,{...e})})})}function M(e){let{editUrl:t,lastUpdatedAt:s,lastUpdatedBy:a,formattedLastUpdatedAt:n}=e;return(0,l.jsxs)("div",{className:(0,u.Z)(v.k.docs.docFooterEditMetaRow,"row"),children:[(0,l.jsx)("div",{className:"col",children:t&&(0,l.jsx)(k,{editUrl:t})}),(0,l.jsx)("div",{className:(0,u.Z)("col",y.lastUpdated),children:(s||a)&&(0,l.jsx)(_,{lastUpdatedAt:s,formattedLastUpdatedAt:n,lastUpdatedBy:a})})]})}function B(){const{metadata:e}=r(),{editUrl:t,lastUpdatedAt:s,formattedLastUpdatedAt:a,lastUpdatedBy:n,tags:i}=e,o=i.length>0,d=!!(t||s||n);return o||d?(0,l.jsxs)("footer",{className:(0,u.Z)(v.k.docs.docFooter,"docusaurus-mt-lg"),children:[o&&(0,l.jsx)(A,{tags:i}),d&&(0,l.jsx)(M,{editUrl:t,lastUpdatedAt:s,lastUpdatedBy:n,formattedLastUpdatedAt:a})]}):null}var I=s(6043),E=s(3743);const V={tocCollapsibleButton:"tocCollapsibleButton_TO0P",tocCollapsibleButtonExpanded:"tocCollapsibleButtonExpanded_MG3E"};function H(e){let{collapsed:t,...s}=e;return(0,l.jsx)("button",{type:"button",...s,className:(0,u.Z)("clean-btn",V.tocCollapsibleButton,!t&&V.tocCollapsibleButtonExpanded,s.className),children:(0,l.jsx)(j.Z,{id:"theme.TOCCollapsible.toggleButtonLabel",description:"The label used by the button on the collapsible TOC component",children:"On this page"})})}const P={tocCollapsible:"tocCollapsible_ETCw",tocCollapsibleContent:"tocCollapsibleContent_vkbj",tocCollapsibleExpanded:"tocCollapsibleExpanded_sAul"};function D(e){let{toc:t,className:s,minHeadingLevel:a,maxHeadingLevel:n}=e;const{collapsed:i,toggleCollapsed:o}=(0,I.u)({initialState:!0});return(0,l.jsxs)("div",{className:(0,u.Z)(P.tocCollapsible,!i&&P.tocCollapsibleExpanded,s),children:[(0,l.jsx)(H,{collapsed:i,onClick:o}),(0,l.jsx)(I.z,{lazy:!0,className:P.tocCollapsibleContent,collapsed:i,children:(0,l.jsx)(E.Z,{toc:t,minHeadingLevel:a,maxHeadingLevel:n})})]})}const S={tocMobile:"tocMobile_ITEo"};function F(){const{toc:e,frontMatter:t}=r();return(0,l.jsx)(D,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:(0,u.Z)(v.k.docs.docTocMobile,S.tocMobile)})}var R=s(9407);function z(){const{toc:e,frontMatter:t}=r();return(0,l.jsx)(R.Z,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:v.k.docs.docTocDesktop})}var O=s(2503),G=s(591);function W(e){let{children:t}=e;const s=function(){const{metadata:e,frontMatter:t,contentTitle:s}=r();return t.hide_title||void 0!==s?null:e.title}();return(0,l.jsxs)("div",{className:(0,u.Z)(v.k.docs.docMarkdown,"markdown"),children:[s&&(0,l.jsx)("header",{children:(0,l.jsx)(O.Z,{as:"h1",children:s})}),(0,l.jsx)(G.Z,{children:t})]})}var q=s(1310),J=s(2212);const Q={docItemContainer:"docItemContainer_Djhp",docItemCol:"docItemCol_VOVn"};function X(e){let{children:t}=e;const s=function(){const{frontMatter:e,toc:t}=r(),s=(0,m.i)(),a=e.hide_table_of_contents,n=!a&&t.length>0;return{hidden:a,mobile:n?(0,l.jsx)(F,{}):void 0,desktop:!n||"desktop"!==s&&"ssr"!==s?void 0:(0,l.jsx)(z,{})}}(),{metadata:{unlisted:a}}=r();return(0,l.jsxs)("div",{className:"row",children:[(0,l.jsxs)("div",{className:(0,u.Z)("col",!s.hidden&&Q.docItemCol),children:[a&&(0,l.jsx)(J.Z,{}),(0,l.jsx)(b.Z,{}),(0,l.jsxs)("div",{className:Q.docItemContainer,children:[(0,l.jsxs)("article",{children:[(0,l.jsx)(q.Z,{}),(0,l.jsx)(x.Z,{}),s.mobile,(0,l.jsx)(W,{children:t}),(0,l.jsx)(B,{})]}),(0,l.jsx)(p,{})]})]}),s.desktop&&(0,l.jsx)("div",{className:"col col--3",children:s.desktop})]})}function Y(e){const t=`docs-doc-id-${e.content.metadata.id}`,s=e.content;return(0,l.jsx)(d,{content:e.content,children:(0,l.jsxs)(n.FG,{className:t,children:[(0,l.jsx)(c,{}),(0,l.jsx)(X,{children:(0,l.jsx)(s,{})})]})})}},4966:(e,t,s)=>{s.d(t,{Z:()=>d});s(7294);var a=s(5999),n=s(6010),i=s(9960),l=s(5893);function o(e){const{permalink:t,title:s,subLabel:a,isNext:o}=e;return(0,l.jsxs)(i.Z,{className:(0,n.Z)("pagination-nav__link",o?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t,children:[a&&(0,l.jsx)("div",{className:"pagination-nav__sublabel",children:a}),(0,l.jsx)("div",{className:"pagination-nav__label",children:s})]})}function d(e){const{previous:t,next:s}=e;return(0,l.jsxs)("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,a.I)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages",description:"The ARIA label for the docs pagination"}),children:[t&&(0,l.jsx)(o,{...t,subLabel:(0,l.jsx)(a.Z,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc",children:"Previous"})}),s&&(0,l.jsx)(o,{...s,subLabel:(0,l.jsx)(a.Z,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc",children:"Next"}),isNext:!0})]})}},4364:(e,t,s)=>{s.d(t,{Z:()=>d});s(7294);var a=s(6010),n=s(5999),i=s(5281),l=s(4477),o=s(5893);function d(e){let{className:t}=e;const s=(0,l.E)();return s.badge?(0,o.jsx)("span",{className:(0,a.Z)(t,i.k.docs.docVersionBadge,"badge badge--secondary"),children:(0,o.jsx)(n.Z,{id:"theme.docs.versionBadge.label",values:{versionLabel:s.label},children:"Version: {versionLabel}"})}):null}},3120:(e,t,s)=>{s.d(t,{Z:()=>x});s(7294);var a=s(6010),n=s(2263),i=s(9960),l=s(5999),o=s(4104),d=s(5281),r=s(373),c=s(4477),u=s(5893);const m={unreleased:function(e){let{siteTitle:t,versionMetadata:s}=e;return(0,u.jsx)(l.Z,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:t,versionLabel:(0,u.jsx)("b",{children:s.label})},children:"This is unreleased documentation for {siteTitle} {versionLabel} version."})},unmaintained:function(e){let{siteTitle:t,versionMetadata:s}=e;return(0,u.jsx)(l.Z,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:t,versionLabel:(0,u.jsx)("b",{children:s.label})},children:"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained."})}};function h(e){const t=m[e.versionMetadata.banner];return(0,u.jsx)(t,{...e})}function p(e){let{versionLabel:t,to:s,onClick:a}=e;return(0,u.jsx)(l.Z,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:t,latestVersionLink:(0,u.jsx)("b",{children:(0,u.jsx)(i.Z,{to:s,onClick:a,children:(0,u.jsx)(l.Z,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label",children:"latest version"})})})},children:"For up-to-date documentation, see the {latestVersionLink} ({versionLabel})."})}function b(e){let{className:t,versionMetadata:s}=e;const{siteConfig:{title:i}}=(0,n.Z)(),{pluginId:l}=(0,o.gA)({failfast:!0}),{savePreferredVersionName:c}=(0,r.J)(l),{latestDocSuggestion:m,latestVersionSuggestion:b}=(0,o.Jo)(l),x=m??(v=b).docs.find((e=>e.id===v.mainDocId));var v;return(0,u.jsxs)("div",{className:(0,a.Z)(t,d.k.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert",children:[(0,u.jsx)("div",{children:(0,u.jsx)(h,{siteTitle:i,versionMetadata:s})}),(0,u.jsx)("div",{className:"margin-top--md",children:(0,u.jsx)(p,{versionLabel:b.label,to:x.path,onClick:()=>c(b.name)})})]})}function x(e){let{className:t}=e;const s=(0,c.E)();return s.banner?(0,u.jsx)(b,{className:t,versionMetadata:s}):null}}}]); \ No newline at end of file diff --git a/assets/js/18dc5a76.443b3252.js b/assets/js/18dc5a76.443b3252.js new file mode 100644 index 000000000..e7f2f674e --- /dev/null +++ b/assets/js/18dc5a76.443b3252.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[7566],{9307:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>m,frontMatter:()=>i,metadata:()=>d,toc:()=>p});var n=r(5893),a=r(1151);const i={title:"API Gateway (HTTP)"},o=void 0,d={id:"events/api-gateway-http",title:"API Gateway (HTTP)",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/events/api-gateway-http.md",sourceDirName:"events",slug:"/events/api-gateway-http",permalink:"/docs/events/api-gateway-http",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/events/api-gateway-http.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",frontMatter:{title:"API Gateway (HTTP)"},sidebar:"tutorialSidebar",previous:{title:"API Gateway Authorizer",permalink:"/docs/events/api-gateway-authorizer"},next:{title:"API Gateway (REST)",permalink:"/docs/events/api-gateway-rest"}},s={},p=[{value:"AWS Documentation",id:"aws-documentation",level:2},{value:"Example",id:"example",level:2}];function l(e){const t={a:"a",admonition:"admonition",code:"code",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,a.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.admonition,{type:"caution",children:(0,n.jsx)(t.p,{children:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub."})}),"\n",(0,n.jsx)(t.h2,{id:"aws-documentation",children:"AWS Documentation"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://docs.aws.amazon.com/lambda/latest/dg/services-apigateway.html",children:"Using AWS Lambda with Amazon API Gateway"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api.html",children:"Working with HTTP APIs"})}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"example",children:"Example"}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-javascript",children:"import middy from '@middy/core'\nimport errorLoggerMiddleware from '@middy/error-logger'\nimport inputOutputLoggerMiddleware from '@middy/input-output-logger'\nimport httpContentNegotiationMiddleware from '@middy/http-content-negotiation'\nimport httpContentEncodingMiddleware from '@middy/http-content-encoding'\nimport httpCorsMiddleware from '@middy/http-cors'\nimport httpErrorHandlerMiddleware from '@middy/http-error-handler'\nimport httpEventNormalizerMiddleware from '@middy/http-event-normalizer'\nimport httpHeaderNormalizerMiddleware from '@middy/http-header-normalizer'\nimport httpJsonBodyParserMiddleware from '@middy/http-json-body-parser'\nimport httpMultipartBodyParserMiddleware from '@middy/http-multipart-body-parser'\nimport httpPartialResponseMiddleware from '@middy/http-partial-response'\nimport httpResponseSerializerMiddleware from '@middy/http-response-serializer'\nimport httpSecurityHeadersMiddleware from '@middy/http-security-headers'\nimport httpUrlencodeBodyParserMiddleware from '@middy/http-urlencode-body-parser'\nimport httpUrlencodePathParametersParserMiddleware from '@middy/http-urlencode-path-parser'\nimport validatorMiddleware from 'validator'\nimport warmupMiddleware from 'warmup'\n\nimport eventSchema from './eventSchema.json' assert { type: 'json' }\nimport responseSchema from './responseSchema.json' assert { type: 'json' }\n\nexport const handler = middy({\n timeoutEarlyResponse: () => {\n return {\n statusCode: 408\n }\n }\n})\n .use(warmupMiddleware())\n .use(httpEventNormalizerMiddleware())\n .use(httpHeaderNormalizerMiddleware())\n .use(\n httpContentNegotiationMiddleware({\n availableLanguages: ['en-CA', 'fr-CA'],\n availableMediaTypes: ['application/json']\n })\n )\n .use(httpUrlencodePathParametersParserMiddleware())\n // Start oneOf\n .use(httpUrlencodeBodyParserMiddleware())\n .use(httpJsonBodyParserMiddleware())\n .use(httpMultipartBodyParserMiddleware())\n // End oneOf\n .use(httpSecurityHeadersMiddleware())\n .use(httpCorsMiddleware())\n .use(httpContentEncodingMiddleware())\n .use(\n httpResponseSerializerMiddleware({\n serializers: [\n {\n regex: /^application\\/json$/,\n serializer: ({ body }) => JSON.stringify(body)\n }\n ],\n default: 'application/json'\n })\n )\n .use(httpPartialResponseMiddleware())\n .use(validatorMiddleware({ eventSchema, responseSchema }))\n .use(httpErrorHandlerMiddleware())\n .handler((event, context, { signal }) => {\n // ...\n })\n"})})]})}function m(e={}){const{wrapper:t}={...(0,a.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(l,{...e})}):l(e)}},1151:(e,t,r)=>{r.d(t,{Z:()=>d,a:()=>o});var n=r(7294);const a={},i=n.createContext(a);function o(e){const t=n.useContext(i);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function d(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:o(e.components),n.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/18dc5a76.e97c80ec.js b/assets/js/18dc5a76.e97c80ec.js deleted file mode 100644 index bade68a5e..000000000 --- a/assets/js/18dc5a76.e97c80ec.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[7566],{3905:(e,t,r)=>{r.d(t,{Zo:()=>l,kt:()=>y});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),s=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},l=function(e){var t=s(e.components);return n.createElement(p.Provider,{value:t},e.children)},m="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,l=d(e,["components","mdxType","originalType","parentName"]),m=s(r),u=a,y=m["".concat(p,".").concat(u)]||m[u]||c[u]||o;return r?n.createElement(y,i(i({ref:t},l),{},{components:r})):n.createElement(y,i({ref:t},l))}));function y(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=u;var d={};for(var p in t)hasOwnProperty.call(t,p)&&(d[p]=t[p]);d.originalType=e,d[m]="string"==typeof e?e:a,i[1]=d;for(var s=2;s{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>c,frontMatter:()=>o,metadata:()=>d,toc:()=>s});var n=r(7462),a=(r(7294),r(3905));const o={title:"API Gateway (HTTP)"},i=void 0,d={unversionedId:"events/api-gateway-http",id:"events/api-gateway-http",title:"API Gateway (HTTP)",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/events/api-gateway-http.md",sourceDirName:"events",slug:"/events/api-gateway-http",permalink:"/docs/events/api-gateway-http",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/events/api-gateway-http.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",frontMatter:{title:"API Gateway (HTTP)"},sidebar:"tutorialSidebar",previous:{title:"API Gateway Authorizer",permalink:"/docs/events/api-gateway-authorizer"},next:{title:"API Gateway (REST)",permalink:"/docs/events/api-gateway-rest"}},p={},s=[{value:"AWS Documentation",id:"aws-documentation",level:2},{value:"Example",id:"example",level:2}],l={toc:s},m="wrapper";function c(e){let{components:t,...r}=e;return(0,a.kt)(m,(0,n.Z)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.")),(0,a.kt)("h2",{id:"aws-documentation"},"AWS Documentation"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://docs.aws.amazon.com/lambda/latest/dg/services-apigateway.html"},"Using AWS Lambda with Amazon API Gateway")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api.html"},"Working with HTTP APIs"))),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\nimport errorLoggerMiddleware from '@middy/error-logger'\nimport inputOutputLoggerMiddleware from '@middy/input-output-logger'\nimport httpContentNegotiationMiddleware from '@middy/http-content-negotiation'\nimport httpContentEncodingMiddleware from '@middy/http-content-encoding'\nimport httpCorsMiddleware from '@middy/http-cors'\nimport httpErrorHandlerMiddleware from '@middy/http-error-handler'\nimport httpEventNormalizerMiddleware from '@middy/http-event-normalizer'\nimport httpHeaderNormalizerMiddleware from '@middy/http-header-normalizer'\nimport httpJsonBodyParserMiddleware from '@middy/http-json-body-parser'\nimport httpMultipartBodyParserMiddleware from '@middy/http-multipart-body-parser'\nimport httpPartialResponseMiddleware from '@middy/http-partial-response'\nimport httpResponseSerializerMiddleware from '@middy/http-response-serializer'\nimport httpSecurityHeadersMiddleware from '@middy/http-security-headers'\nimport httpUrlencodeBodyParserMiddleware from '@middy/http-urlencode-body-parser'\nimport httpUrlencodePathParametersParserMiddleware from '@middy/http-urlencode-path-parser'\nimport validatorMiddleware from 'validator'\nimport warmupMiddleware from 'warmup'\n\nimport eventSchema from './eventSchema.json' assert { type: 'json' }\nimport responseSchema from './responseSchema.json' assert { type: 'json' }\n\nexport const handler = middy({\n timeoutEarlyResponse: () => {\n return {\n statusCode: 408\n }\n }\n})\n .use(warmupMiddleware())\n .use(httpEventNormalizerMiddleware())\n .use(httpHeaderNormalizerMiddleware())\n .use(\n httpContentNegotiationMiddleware({\n availableLanguages: ['en-CA', 'fr-CA'],\n availableMediaTypes: ['application/json']\n })\n )\n .use(httpUrlencodePathParametersParserMiddleware())\n // Start oneOf\n .use(httpUrlencodeBodyParserMiddleware())\n .use(httpJsonBodyParserMiddleware())\n .use(httpMultipartBodyParserMiddleware())\n // End oneOf\n .use(httpSecurityHeadersMiddleware())\n .use(httpCorsMiddleware())\n .use(httpContentEncodingMiddleware())\n .use(\n httpResponseSerializerMiddleware({\n serializers: [\n {\n regex: /^application\\/json$/,\n serializer: ({ body }) => JSON.stringify(body)\n }\n ],\n default: 'application/json'\n })\n )\n .use(httpPartialResponseMiddleware())\n .use(validatorMiddleware({ eventSchema, responseSchema }))\n .use(httpErrorHandlerMiddleware())\n .handler((event, context, { signal }) => {\n // ...\n })\n")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/19606b2d.a301c5d4.js b/assets/js/19606b2d.a301c5d4.js new file mode 100644 index 000000000..ec26adc10 --- /dev/null +++ b/assets/js/19606b2d.a301c5d4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[1544],{6145:(e,r,n)=>{n.r(r),n.d(r,{assets:()=>o,contentTitle:()=>a,default:()=>x,frontMatter:()=>l,metadata:()=>c,toc:()=>h});var t=n(5893),d=n(1151),s=n(4866),i=n(5162);const l={title:"event-normalizer"},a=void 0,c={id:"middlewares/event-normalizer",title:"event-normalizer",description:"Middleware for iterating through an AWS event records, parsing and normalizing nested events.",source:"@site/docs/middlewares/event-normalizer.md",sourceDirName:"middlewares",slug:"/middlewares/event-normalizer",permalink:"/docs/middlewares/event-normalizer",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/middlewares/event-normalizer.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",frontMatter:{title:"event-normalizer"},sidebar:"tutorialSidebar",previous:{title:"error-logger",permalink:"/docs/middlewares/error-logger"},next:{title:"http-content-encoding",permalink:"/docs/middlewares/http-content-encoding"}},o={},h=[{value:"Install",id:"install",level:2},{value:"Options",id:"options",level:2},{value:"Sample usage",id:"sample-usage",level:2}];function u(e){const r={a:"a",code:"code",h2:"h2",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,d.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(r.p,{children:"Middleware for iterating through an AWS event records, parsing and normalizing nested events."}),"\n",(0,t.jsxs)(r.p,{children:[(0,t.jsx)(r.strong,{children:"AWS Events Transformations:"}),"\n",(0,t.jsx)(r.a,{href:"https://docs.aws.amazon.com/lambda/latest/dg/lambda-services.html",children:"https://docs.aws.amazon.com/lambda/latest/dg/lambda-services.html"})]}),"\n",(0,t.jsxs)(r.table,{children:[(0,t.jsx)(r.thead,{children:(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.th,{children:"Event Source"}),(0,t.jsx)(r.th,{children:"Included"}),(0,t.jsx)(r.th,{children:"Comments"})]})}),(0,t.jsxs)(r.tbody,{children:[(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"Alexa"}),(0,t.jsx)(r.td,{children:"No"}),(0,t.jsx)(r.td,{children:"Normalization not required"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"API Gateway (HTTP)"}),(0,t.jsx)(r.td,{children:"No *"}),(0,t.jsxs)(r.td,{children:["See middleware prefixed with ",(0,t.jsx)(r.code,{children:"@middy/http-"})]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"API Gateway (REST)"}),(0,t.jsx)(r.td,{children:"No *"}),(0,t.jsxs)(r.td,{children:["See middleware prefixed with ",(0,t.jsx)(r.code,{children:"@middy/http-"})]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"API Gateway (WS)"}),(0,t.jsx)(r.td,{children:"No *"}),(0,t.jsxs)(r.td,{children:["See middleware ",(0,t.jsx)(r.code,{children:"@middy/ws-json-body-parser"})]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"Application LB"}),(0,t.jsx)(r.td,{children:"No *"}),(0,t.jsxs)(r.td,{children:["See middleware prefixed with ",(0,t.jsx)(r.code,{children:"@middy/http-"})]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"CloudFormation"}),(0,t.jsx)(r.td,{children:"No"}),(0,t.jsx)(r.td,{children:"Normalization not required"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"CloudFront"}),(0,t.jsx)(r.td,{children:"No"}),(0,t.jsx)(r.td,{children:"Normalization not required"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"CloudTrail"}),(0,t.jsx)(r.td,{children:"No"}),(0,t.jsx)(r.td,{children:"Normalization not required"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"CloudWatch Logs"}),(0,t.jsx)(r.td,{children:"Yes"}),(0,t.jsxs)(r.td,{children:["Base64 decode and JSON parse ",(0,t.jsx)(r.code,{children:"data"})]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"CodeCommit"}),(0,t.jsx)(r.td,{children:"No"}),(0,t.jsx)(r.td,{children:"Normalization not required"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"CodePipeline"}),(0,t.jsx)(r.td,{children:"Yes"}),(0,t.jsxs)(r.td,{children:["JSON parse ",(0,t.jsx)(r.code,{children:"UserParameters"})]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"Cognito"}),(0,t.jsx)(r.td,{children:"No"}),(0,t.jsx)(r.td,{children:"Normalization not required"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"Config"}),(0,t.jsx)(r.td,{children:"Yes"}),(0,t.jsxs)(r.td,{children:["JSON parse ",(0,t.jsx)(r.code,{children:"invokingEvent"})," and ",(0,t.jsx)(r.code,{children:"ruleParameters"})]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"Connect"}),(0,t.jsx)(r.td,{children:"No"}),(0,t.jsx)(r.td,{children:"Normalization not required"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"DocumentDB"}),(0,t.jsx)(r.td,{children:"No"}),(0,t.jsx)(r.td,{children:"Normalization not required"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"DynamoDB"}),(0,t.jsx)(r.td,{children:"Yes"}),(0,t.jsxs)(r.td,{children:["Unmarshall ",(0,t.jsx)(r.code,{children:"Keys"}),", ",(0,t.jsx)(r.code,{children:"OldImage"}),", and ",(0,t.jsx)(r.code,{children:"NewImage"})]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"EC2"}),(0,t.jsx)(r.td,{children:"No"}),(0,t.jsx)(r.td,{children:"Normalization not required"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"EventBridge"}),(0,t.jsx)(r.td,{children:"No"}),(0,t.jsx)(r.td,{children:"Normalization not required"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"IoT"}),(0,t.jsx)(r.td,{children:"No"}),(0,t.jsx)(r.td,{children:"Normalization not required"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"IoT Event"}),(0,t.jsx)(r.td,{children:"No"}),(0,t.jsx)(r.td,{children:"Normalization not required"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"Kafka"}),(0,t.jsx)(r.td,{children:"Yes"}),(0,t.jsxs)(r.td,{children:["Base64 decode and JSON parse ",(0,t.jsx)(r.code,{children:"value"})]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"Kafka (MSK)"}),(0,t.jsx)(r.td,{children:"Yes"}),(0,t.jsxs)(r.td,{children:["Base64 decode and JSON parse ",(0,t.jsx)(r.code,{children:"value"})]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"Kinesis Firehose"}),(0,t.jsx)(r.td,{children:"Yes"}),(0,t.jsxs)(r.td,{children:["Base64 decode and JSON parse ",(0,t.jsx)(r.code,{children:"data"})]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"Kinesis Stream"}),(0,t.jsx)(r.td,{children:"Yes"}),(0,t.jsxs)(r.td,{children:["Base64 decode and JSON parse ",(0,t.jsx)(r.code,{children:"data"})]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"Lex"}),(0,t.jsx)(r.td,{children:"No"}),(0,t.jsx)(r.td,{children:"Normalization not required"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"MQ"}),(0,t.jsx)(r.td,{children:"Yes"}),(0,t.jsxs)(r.td,{children:["Base64 decode and JSON parse ",(0,t.jsx)(r.code,{children:"data"})]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"RDS"}),(0,t.jsx)(r.td,{children:"No"}),(0,t.jsx)(r.td,{children:"Normalization not required"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"S3"}),(0,t.jsx)(r.td,{children:"Yes"}),(0,t.jsxs)(r.td,{children:["URI decode ",(0,t.jsx)(r.code,{children:"key"})]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"S3 Batch"}),(0,t.jsx)(r.td,{children:"Yes"}),(0,t.jsxs)(r.td,{children:["URI decode ",(0,t.jsx)(r.code,{children:"s3Key"})]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"S3 Object Lambda"}),(0,t.jsx)(r.td,{children:"No *"}),(0,t.jsxs)(r.td,{children:["See middleware ",(0,t.jsx)(r.code,{children:"@middy/s3-object-response"})]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"Secrets Manager"}),(0,t.jsx)(r.td,{children:"No"}),(0,t.jsx)(r.td,{children:"Normalization not required"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"SES"}),(0,t.jsx)(r.td,{children:"No"}),(0,t.jsx)(r.td,{children:"Normalization not required"})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"SNS"}),(0,t.jsx)(r.td,{children:"Yes"}),(0,t.jsxs)(r.td,{children:["JSON parse ",(0,t.jsx)(r.code,{children:"Message"})]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"SQS"}),(0,t.jsx)(r.td,{children:"Yes"}),(0,t.jsxs)(r.td,{children:["JSON parse ",(0,t.jsx)(r.code,{children:"body"})]})]}),(0,t.jsxs)(r.tr,{children:[(0,t.jsx)(r.td,{children:"VPC Lattice"}),(0,t.jsx)(r.td,{children:"No *"}),(0,t.jsxs)(r.td,{children:["See middleware prefixed with ",(0,t.jsx)(r.code,{children:"@middy/http-"})]})]})]})]}),"\n",(0,t.jsx)(r.p,{children:"* Handled in another dedicated middleware(s)"}),"\n",(0,t.jsxs)(r.p,{children:[(0,t.jsx)(r.strong,{children:"Test Events"}),"\nSome events send test events after set, you will need to handle these."]}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-js",children:"// S3 Test Event\n{\n Service: 'Amazon S3',\n Event: 's3:TestEvent',\n Time: '2020-01-01T00:00:00.000Z',\n Bucket: 'bucket-name',\n RequestId: '***********',\n HostId: '***/***/***='\n}\n"})}),"\n",(0,t.jsx)(r.h2,{id:"install",children:"Install"}),"\n",(0,t.jsx)(r.p,{children:"To install this middleware you can use NPM:"}),"\n",(0,t.jsxs)(s.Z,{groupId:"npm2yarn",children:[(0,t.jsx)(i.Z,{value:"npm",children:(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-bash",children:"npm install --save @middy/event-normalizer\n"})})}),(0,t.jsx)(i.Z,{value:"yarn",label:"Yarn",children:(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-bash",children:"yarn add @middy/event-normalizer\n"})})}),(0,t.jsx)(i.Z,{value:"pnpm",label:"pnpm",children:(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-bash",children:"pnpm add @middy/event-normalizer\n"})})})]}),"\n",(0,t.jsx)(r.h2,{id:"options",children:"Options"}),"\n",(0,t.jsxs)(r.ul,{children:["\n",(0,t.jsxs)(r.li,{children:[(0,t.jsx)(r.code,{children:"wrapNumbers"})," (boolean) (default ",(0,t.jsx)(r.code,{children:"undefined"}),"): Whether to return numbers as a string instead of converting them to native JavaScript numbers. This allows for the safe round-trip transport of numbers of arbitrary size. For DynamoDB Events only."]}),"\n"]}),"\n",(0,t.jsx)(r.h2,{id:"sample-usage",children:"Sample usage"}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-javascript",children:"import middy from '@middy/core'\nimport eventNormalizer from '@middy/event-normalizer'\n\nconst lambdaHandler = (event, context) => {\n const { Records } = event\n for (const record of Records) {\n // ...\n }\n}\n\nexport const handler = middy().use(eventNormalizer()).handler(lambdaHandler)\n"})})]})}function x(e={}){const{wrapper:r}={...(0,d.a)(),...e.components};return r?(0,t.jsx)(r,{...e,children:(0,t.jsx)(u,{...e})}):u(e)}},5162:(e,r,n)=>{n.d(r,{Z:()=>i});n(7294);var t=n(6010);const d={tabItem:"tabItem_Ymn6"};var s=n(5893);function i(e){let{children:r,hidden:n,className:i}=e;return(0,s.jsx)("div",{role:"tabpanel",className:(0,t.Z)(d.tabItem,i),hidden:n,children:r})}},4866:(e,r,n)=>{n.d(r,{Z:()=>y});var t=n(7294),d=n(6010),s=n(2466),i=n(6550),l=n(469),a=n(1980),c=n(7392),o=n(12);function h(e){return t.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,t.isValidElement)(e)&&function(e){const{props:r}=e;return!!r&&"object"==typeof r&&"value"in r}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function u(e){const{values:r,children:n}=e;return(0,t.useMemo)((()=>{const e=r??function(e){return h(e).map((e=>{let{props:{value:r,label:n,attributes:t,default:d}}=e;return{value:r,label:n,attributes:t,default:d}}))}(n);return function(e){const r=(0,c.l)(e,((e,r)=>e.value===r.value));if(r.length>0)throw new Error(`Docusaurus error: Duplicate values "${r.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[r,n])}function x(e){let{value:r,tabValues:n}=e;return n.some((e=>e.value===r))}function j(e){let{queryString:r=!1,groupId:n}=e;const d=(0,i.k6)(),s=function(e){let{queryString:r=!1,groupId:n}=e;if("string"==typeof r)return r;if(!1===r)return null;if(!0===r&&!n)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:r,groupId:n});return[(0,a._X)(s),(0,t.useCallback)((e=>{if(!s)return;const r=new URLSearchParams(d.location.search);r.set(s,e),d.replace({...d.location,search:r.toString()})}),[s,d])]}function m(e){const{defaultValue:r,queryString:n=!1,groupId:d}=e,s=u(e),[i,a]=(0,t.useState)((()=>function(e){let{defaultValue:r,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the component requires at least one children component");if(r){if(!x({value:r,tabValues:n}))throw new Error(`Docusaurus error: The has a defaultValue "${r}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return r}const t=n.find((e=>e.default))??n[0];if(!t)throw new Error("Unexpected error: 0 tabValues");return t.value}({defaultValue:r,tabValues:s}))),[c,h]=j({queryString:n,groupId:d}),[m,p]=function(e){let{groupId:r}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(r),[d,s]=(0,o.Nk)(n);return[d,(0,t.useCallback)((e=>{n&&s.set(e)}),[n,s])]}({groupId:d}),v=(()=>{const e=c??m;return x({value:e,tabValues:s})?e:null})();(0,l.Z)((()=>{v&&a(v)}),[v]);return{selectedValue:i,selectValue:(0,t.useCallback)((e=>{if(!x({value:e,tabValues:s}))throw new Error(`Can't select invalid tab value=${e}`);a(e),h(e),p(e)}),[h,p,s]),tabValues:s}}var p=n(2389);const v={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var b=n(5893);function f(e){let{className:r,block:n,selectedValue:t,selectValue:i,tabValues:l}=e;const a=[],{blockElementScrollPositionUntilNextRender:c}=(0,s.o5)(),o=e=>{const r=e.currentTarget,n=a.indexOf(r),d=l[n].value;d!==t&&(c(r),i(d))},h=e=>{let r=null;switch(e.key){case"Enter":o(e);break;case"ArrowRight":{const n=a.indexOf(e.currentTarget)+1;r=a[n]??a[0];break}case"ArrowLeft":{const n=a.indexOf(e.currentTarget)-1;r=a[n]??a[a.length-1];break}}r?.focus()};return(0,b.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,d.Z)("tabs",{"tabs--block":n},r),children:l.map((e=>{let{value:r,label:n,attributes:s}=e;return(0,b.jsx)("li",{role:"tab",tabIndex:t===r?0:-1,"aria-selected":t===r,ref:e=>a.push(e),onKeyDown:h,onClick:o,...s,className:(0,d.Z)("tabs__item",v.tabItem,s?.className,{"tabs__item--active":t===r}),children:n??r},r)}))})}function g(e){let{lazy:r,children:n,selectedValue:d}=e;const s=(Array.isArray(n)?n:[n]).filter(Boolean);if(r){const e=s.find((e=>e.props.value===d));return e?(0,t.cloneElement)(e,{className:"margin-top--md"}):null}return(0,b.jsx)("div",{className:"margin-top--md",children:s.map(((e,r)=>(0,t.cloneElement)(e,{key:r,hidden:e.props.value!==d})))})}function N(e){const r=m(e);return(0,b.jsxs)("div",{className:(0,d.Z)("tabs-container",v.tabList),children:[(0,b.jsx)(f,{...e,...r}),(0,b.jsx)(g,{...e,...r})]})}function y(e){const r=(0,p.Z)();return(0,b.jsx)(N,{...e,children:h(e.children)},String(r))}},1151:(e,r,n)=>{n.d(r,{Z:()=>l,a:()=>i});var t=n(7294);const d={},s=t.createContext(d);function i(e){const r=t.useContext(s);return t.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function l(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(d):e.components||d:i(e.components),t.createElement(s.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/19606b2d.bf0a0fac.js b/assets/js/19606b2d.bf0a0fac.js deleted file mode 100644 index b18b4ea81..000000000 --- a/assets/js/19606b2d.bf0a0fac.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[1544],{3905:(e,t,a)=>{a.d(t,{Zo:()=>m,kt:()=>c});var n=a(7294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var d=n.createContext({}),u=function(e){var t=n.useContext(d),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},m=function(e){var t=u(e.components);return n.createElement(d.Provider,{value:t},e.children)},p="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},N=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,l=e.originalType,d=e.parentName,m=o(e,["components","mdxType","originalType","parentName"]),p=u(a),N=r,c=p["".concat(d,".").concat(N)]||p[N]||s[N]||l;return a?n.createElement(c,i(i({ref:t},m),{},{components:a})):n.createElement(c,i({ref:t},m))}));function c(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=a.length,i=new Array(l);i[0]=N;var o={};for(var d in t)hasOwnProperty.call(t,d)&&(o[d]=t[d]);o.originalType=e,o[p]="string"==typeof e?e:r,i[1]=o;for(var u=2;u{a.d(t,{Z:()=>i});var n=a(7294),r=a(6010);const l={tabItem:"tabItem_Ymn6"};function i(e){let{children:t,hidden:a,className:i}=e;return n.createElement("div",{role:"tabpanel",className:(0,r.Z)(l.tabItem,i),hidden:a},t)}},4866:(e,t,a)=>{a.d(t,{Z:()=>h});var n=a(7462),r=a(7294),l=a(6010),i=a(2466),o=a(6550),d=a(1980),u=a(7392),m=a(12);function p(e){return function(e){return r.Children.map(e,(e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:a,attributes:n,default:r}}=e;return{value:t,label:a,attributes:n,default:r}}))}function s(e){const{values:t,children:a}=e;return(0,r.useMemo)((()=>{const e=t??p(a);return function(e){const t=(0,u.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[t,a])}function N(e){let{value:t,tabValues:a}=e;return a.some((e=>e.value===t))}function c(e){let{queryString:t=!1,groupId:a}=e;const n=(0,o.k6)(),l=function(e){let{queryString:t=!1,groupId:a}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!a)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return a??null}({queryString:t,groupId:a});return[(0,d._X)(l),(0,r.useCallback)((e=>{if(!l)return;const t=new URLSearchParams(n.location.search);t.set(l,e),n.replace({...n.location,search:t.toString()})}),[l,n])]}function k(e){const{defaultValue:t,queryString:a=!1,groupId:n}=e,l=s(e),[i,o]=(0,r.useState)((()=>function(e){let{defaultValue:t,tabValues:a}=e;if(0===a.length)throw new Error("Docusaurus error: the component requires at least one children component");if(t){if(!N({value:t,tabValues:a}))throw new Error(`Docusaurus error: The has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${a.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const n=a.find((e=>e.default))??a[0];if(!n)throw new Error("Unexpected error: 0 tabValues");return n.value}({defaultValue:t,tabValues:l}))),[d,u]=c({queryString:a,groupId:n}),[p,k]=function(e){let{groupId:t}=e;const a=function(e){return e?`docusaurus.tab.${e}`:null}(t),[n,l]=(0,m.Nk)(a);return[n,(0,r.useCallback)((e=>{a&&l.set(e)}),[a,l])]}({groupId:n}),g=(()=>{const e=d??p;return N({value:e,tabValues:l})?e:null})();(0,r.useLayoutEffect)((()=>{g&&o(g)}),[g]);return{selectedValue:i,selectValue:(0,r.useCallback)((e=>{if(!N({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);o(e),u(e),k(e)}),[u,k,l]),tabValues:l}}var g=a(2389);const b={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};function y(e){let{className:t,block:a,selectedValue:o,selectValue:d,tabValues:u}=e;const m=[],{blockElementScrollPositionUntilNextRender:p}=(0,i.o5)(),s=e=>{const t=e.currentTarget,a=m.indexOf(t),n=u[a].value;n!==o&&(p(t),d(n))},N=e=>{let t=null;switch(e.key){case"Enter":s(e);break;case"ArrowRight":{const a=m.indexOf(e.currentTarget)+1;t=m[a]??m[0];break}case"ArrowLeft":{const a=m.indexOf(e.currentTarget)-1;t=m[a]??m[m.length-1];break}}t?.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":a},t)},u.map((e=>{let{value:t,label:a,attributes:i}=e;return r.createElement("li",(0,n.Z)({role:"tab",tabIndex:o===t?0:-1,"aria-selected":o===t,key:t,ref:e=>m.push(e),onKeyDown:N,onClick:s},i,{className:(0,l.Z)("tabs__item",b.tabItem,i?.className,{"tabs__item--active":o===t})}),a??t)})))}function f(e){let{lazy:t,children:a,selectedValue:n}=e;const l=(Array.isArray(a)?a:[a]).filter(Boolean);if(t){const e=l.find((e=>e.props.value===n));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},l.map(((e,t)=>(0,r.cloneElement)(e,{key:t,hidden:e.props.value!==n}))))}function v(e){const t=k(e);return r.createElement("div",{className:(0,l.Z)("tabs-container",b.tabList)},r.createElement(y,(0,n.Z)({},e,t)),r.createElement(f,(0,n.Z)({},e,t)))}function h(e){const t=(0,g.Z)();return r.createElement(v,(0,n.Z)({key:String(t)},e))}},236:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>m,contentTitle:()=>d,default:()=>c,frontMatter:()=>o,metadata:()=>u,toc:()=>p});var n=a(7462),r=(a(7294),a(3905)),l=a(4866),i=a(5162);const o={title:"event-normalizer"},d=void 0,u={unversionedId:"middlewares/event-normalizer",id:"middlewares/event-normalizer",title:"event-normalizer",description:"Middleware for iterating through an AWS event records, parsing and normalizing nested events.",source:"@site/docs/middlewares/event-normalizer.md",sourceDirName:"middlewares",slug:"/middlewares/event-normalizer",permalink:"/docs/middlewares/event-normalizer",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/middlewares/event-normalizer.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",frontMatter:{title:"event-normalizer"},sidebar:"tutorialSidebar",previous:{title:"error-logger",permalink:"/docs/middlewares/error-logger"},next:{title:"http-content-encoding",permalink:"/docs/middlewares/http-content-encoding"}},m={},p=[{value:"Install",id:"install",level:2},{value:"Options",id:"options",level:2},{value:"Sample usage",id:"sample-usage",level:2}],s={toc:p},N="wrapper";function c(e){let{components:t,...a}=e;return(0,r.kt)(N,(0,n.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"Middleware for iterating through an AWS event records, parsing and normalizing nested events."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"AWS Events Transformations:"),"\n",(0,r.kt)("a",{parentName:"p",href:"https://docs.aws.amazon.com/lambda/latest/dg/lambda-services.html"},"https://docs.aws.amazon.com/lambda/latest/dg/lambda-services.html")),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Event Source"),(0,r.kt)("th",{parentName:"tr",align:null},"Included"),(0,r.kt)("th",{parentName:"tr",align:null},"Comments"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Alexa"),(0,r.kt)("td",{parentName:"tr",align:null},"No"),(0,r.kt)("td",{parentName:"tr",align:null},"Normalization not required")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"API Gateway (HTTP)"),(0,r.kt)("td",{parentName:"tr",align:null},"No ","*"),(0,r.kt)("td",{parentName:"tr",align:null},"See middleware prefixed with ",(0,r.kt)("inlineCode",{parentName:"td"},"@middy/http-"))),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"API Gateway (REST)"),(0,r.kt)("td",{parentName:"tr",align:null},"No ","*"),(0,r.kt)("td",{parentName:"tr",align:null},"See middleware prefixed with ",(0,r.kt)("inlineCode",{parentName:"td"},"@middy/http-"))),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"API Gateway (WS)"),(0,r.kt)("td",{parentName:"tr",align:null},"No ","*"),(0,r.kt)("td",{parentName:"tr",align:null},"See middleware ",(0,r.kt)("inlineCode",{parentName:"td"},"@middy/ws-json-body-parser"))),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Application LB"),(0,r.kt)("td",{parentName:"tr",align:null},"No ","*"),(0,r.kt)("td",{parentName:"tr",align:null},"See middleware prefixed with ",(0,r.kt)("inlineCode",{parentName:"td"},"@middy/http-"))),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"CloudFormation"),(0,r.kt)("td",{parentName:"tr",align:null},"No"),(0,r.kt)("td",{parentName:"tr",align:null},"Normalization not required")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"CloudFront"),(0,r.kt)("td",{parentName:"tr",align:null},"No"),(0,r.kt)("td",{parentName:"tr",align:null},"Normalization not required")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"CloudTrail"),(0,r.kt)("td",{parentName:"tr",align:null},"No"),(0,r.kt)("td",{parentName:"tr",align:null},"Normalization not required")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"CloudWatch Logs"),(0,r.kt)("td",{parentName:"tr",align:null},"Yes"),(0,r.kt)("td",{parentName:"tr",align:null},"Base64 decode and JSON parse ",(0,r.kt)("inlineCode",{parentName:"td"},"data"))),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"CodeCommit"),(0,r.kt)("td",{parentName:"tr",align:null},"No"),(0,r.kt)("td",{parentName:"tr",align:null},"Normalization not required")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"CodePipeline"),(0,r.kt)("td",{parentName:"tr",align:null},"Yes"),(0,r.kt)("td",{parentName:"tr",align:null},"JSON parse ",(0,r.kt)("inlineCode",{parentName:"td"},"UserParameters"))),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Cognito"),(0,r.kt)("td",{parentName:"tr",align:null},"No"),(0,r.kt)("td",{parentName:"tr",align:null},"Normalization not required")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Config"),(0,r.kt)("td",{parentName:"tr",align:null},"Yes"),(0,r.kt)("td",{parentName:"tr",align:null},"JSON parse ",(0,r.kt)("inlineCode",{parentName:"td"},"invokingEvent")," and ",(0,r.kt)("inlineCode",{parentName:"td"},"ruleParameters"))),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Connect"),(0,r.kt)("td",{parentName:"tr",align:null},"No"),(0,r.kt)("td",{parentName:"tr",align:null},"Normalization not required")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"DocumentDB"),(0,r.kt)("td",{parentName:"tr",align:null},"No"),(0,r.kt)("td",{parentName:"tr",align:null},"Normalization not required")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"DynamoDB"),(0,r.kt)("td",{parentName:"tr",align:null},"Yes"),(0,r.kt)("td",{parentName:"tr",align:null},"Unmarshall ",(0,r.kt)("inlineCode",{parentName:"td"},"Keys"),", ",(0,r.kt)("inlineCode",{parentName:"td"},"OldImage"),", and ",(0,r.kt)("inlineCode",{parentName:"td"},"NewImage"))),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"EC2"),(0,r.kt)("td",{parentName:"tr",align:null},"No"),(0,r.kt)("td",{parentName:"tr",align:null},"Normalization not required")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"EventBridge"),(0,r.kt)("td",{parentName:"tr",align:null},"No"),(0,r.kt)("td",{parentName:"tr",align:null},"Normalization not required")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"IoT"),(0,r.kt)("td",{parentName:"tr",align:null},"No"),(0,r.kt)("td",{parentName:"tr",align:null},"Normalization not required")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"IoT Event"),(0,r.kt)("td",{parentName:"tr",align:null},"No"),(0,r.kt)("td",{parentName:"tr",align:null},"Normalization not required")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Kafka"),(0,r.kt)("td",{parentName:"tr",align:null},"Yes"),(0,r.kt)("td",{parentName:"tr",align:null},"Base64 decode and JSON parse ",(0,r.kt)("inlineCode",{parentName:"td"},"value"))),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Kafka (MSK)"),(0,r.kt)("td",{parentName:"tr",align:null},"Yes"),(0,r.kt)("td",{parentName:"tr",align:null},"Base64 decode and JSON parse ",(0,r.kt)("inlineCode",{parentName:"td"},"value"))),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Kinesis Firehose"),(0,r.kt)("td",{parentName:"tr",align:null},"Yes"),(0,r.kt)("td",{parentName:"tr",align:null},"Base64 decode and JSON parse ",(0,r.kt)("inlineCode",{parentName:"td"},"data"))),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Kinesis Stream"),(0,r.kt)("td",{parentName:"tr",align:null},"Yes"),(0,r.kt)("td",{parentName:"tr",align:null},"Base64 decode and JSON parse ",(0,r.kt)("inlineCode",{parentName:"td"},"data"))),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Lex"),(0,r.kt)("td",{parentName:"tr",align:null},"No"),(0,r.kt)("td",{parentName:"tr",align:null},"Normalization not required")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"MQ"),(0,r.kt)("td",{parentName:"tr",align:null},"Yes"),(0,r.kt)("td",{parentName:"tr",align:null},"Base64 decode and JSON parse ",(0,r.kt)("inlineCode",{parentName:"td"},"data"))),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"RDS"),(0,r.kt)("td",{parentName:"tr",align:null},"No"),(0,r.kt)("td",{parentName:"tr",align:null},"Normalization not required")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"S3"),(0,r.kt)("td",{parentName:"tr",align:null},"Yes"),(0,r.kt)("td",{parentName:"tr",align:null},"URI decode ",(0,r.kt)("inlineCode",{parentName:"td"},"key"))),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"S3 Batch"),(0,r.kt)("td",{parentName:"tr",align:null},"Yes"),(0,r.kt)("td",{parentName:"tr",align:null},"URI decode ",(0,r.kt)("inlineCode",{parentName:"td"},"s3Key"))),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"S3 Object Lambda"),(0,r.kt)("td",{parentName:"tr",align:null},"No ","*"),(0,r.kt)("td",{parentName:"tr",align:null},"See middleware ",(0,r.kt)("inlineCode",{parentName:"td"},"@middy/s3-object-response"))),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Secrets Manager"),(0,r.kt)("td",{parentName:"tr",align:null},"No"),(0,r.kt)("td",{parentName:"tr",align:null},"Normalization not required")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"SES"),(0,r.kt)("td",{parentName:"tr",align:null},"No"),(0,r.kt)("td",{parentName:"tr",align:null},"Normalization not required")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"SNS"),(0,r.kt)("td",{parentName:"tr",align:null},"Yes"),(0,r.kt)("td",{parentName:"tr",align:null},"JSON parse ",(0,r.kt)("inlineCode",{parentName:"td"},"Message"))),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"SQS"),(0,r.kt)("td",{parentName:"tr",align:null},"Yes"),(0,r.kt)("td",{parentName:"tr",align:null},"JSON parse ",(0,r.kt)("inlineCode",{parentName:"td"},"body"))),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"VPC Lattice"),(0,r.kt)("td",{parentName:"tr",align:null},"No ","*"),(0,r.kt)("td",{parentName:"tr",align:null},"See middleware prefixed with ",(0,r.kt)("inlineCode",{parentName:"td"},"@middy/http-"))))),(0,r.kt)("p",null,"*"," Handled in another dedicated middleware(s)"),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Test Events"),"\nSome events send test events after set, you will need to handle these."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-js"},"// S3 Test Event\n{\n Service: 'Amazon S3',\n Event: 's3:TestEvent',\n Time: '2020-01-01T00:00:00.000Z',\n Bucket: 'bucket-name',\n RequestId: '***********',\n HostId: '***/***/***='\n}\n")),(0,r.kt)("h2",{id:"install"},"Install"),(0,r.kt)("p",null,"To install this middleware you can use NPM:"),(0,r.kt)(l.Z,{groupId:"npm2yarn",mdxType:"Tabs"},(0,r.kt)(i.Z,{value:"npm",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"npm install --save @middy/event-normalizer\n"))),(0,r.kt)(i.Z,{value:"yarn",label:"Yarn",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"yarn add @middy/event-normalizer\n"))),(0,r.kt)(i.Z,{value:"pnpm",label:"pnpm",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"pnpm add @middy/event-normalizer\n")))),(0,r.kt)("h2",{id:"options"},"Options"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"wrapNumbers")," (boolean) (default ",(0,r.kt)("inlineCode",{parentName:"li"},"undefined"),"): Whether to return numbers as a string instead of converting them to native JavaScript numbers. This allows for the safe round-trip transport of numbers of arbitrary size. For DynamoDB Events only.")),(0,r.kt)("h2",{id:"sample-usage"},"Sample usage"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\nimport eventNormalizer from '@middy/event-normalizer'\n\nconst lambdaHandler = (event, context) => {\n const { Records } = event\n for (const record of Records) {\n // ...\n }\n}\n\nconst handler = middy(lambdaHandler).use(eventNormalizer())\n")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1be78505.3f195a9f.js b/assets/js/1be78505.3f195a9f.js deleted file mode 100644 index c7bbf3db7..000000000 --- a/assets/js/1be78505.3f195a9f.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[9514,4204],{9963:(e,t,n)=>{n.r(t),n.d(t,{default:()=>fe});var a=n(7294),l=n(6010),o=n(1944),r=n(5281),c=n(3320),i=n(3438),s=n(4477),d=n(1116),m=n(4173),u=n(5999),b=n(2466),p=n(5936);const h={backToTopButton:"backToTopButton_sjWU",backToTopButtonShow:"backToTopButtonShow_xfvO"};function E(){const{shown:e,scrollToTop:t}=function(e){let{threshold:t}=e;const[n,l]=(0,a.useState)(!1),o=(0,a.useRef)(!1),{startScroll:r,cancelScroll:c}=(0,b.Ct)();return(0,b.RF)(((e,n)=>{let{scrollY:a}=e;const r=n?.scrollY;r&&(o.current?o.current=!1:a>=r?(c(),l(!1)):a{e.location.hash&&(o.current=!0,l(!1))})),{shown:n,scrollToTop:()=>r(0)}}({threshold:300});return a.createElement("button",{"aria-label":(0,u.I)({id:"theme.BackToTopButton.buttonAriaLabel",message:"Scroll back to top",description:"The ARIA label for the back to top button"}),className:(0,l.Z)("clean-btn",r.k.common.backToTopButton,h.backToTopButton,e&&h.backToTopButtonShow),type:"button",onClick:t})}var g=n(1442),f=n(6550),k=n(7524),_=n(6668),v=n(1327),C=n(7462);function S(e){return a.createElement("svg",(0,C.Z)({width:"20",height:"20","aria-hidden":"true"},e),a.createElement("g",{fill:"#7a7a7a"},a.createElement("path",{d:"M9.992 10.023c0 .2-.062.399-.172.547l-4.996 7.492a.982.982 0 01-.828.454H1c-.55 0-1-.453-1-1 0-.2.059-.403.168-.551l4.629-6.942L.168 3.078A.939.939 0 010 2.528c0-.548.45-.997 1-.997h2.996c.352 0 .649.18.828.45L9.82 9.472c.11.148.172.347.172.55zm0 0"}),a.createElement("path",{d:"M19.98 10.023c0 .2-.058.399-.168.547l-4.996 7.492a.987.987 0 01-.828.454h-3c-.547 0-.996-.453-.996-1 0-.2.059-.403.168-.551l4.625-6.942-4.625-6.945a.939.939 0 01-.168-.55 1 1 0 01.996-.997h3c.348 0 .649.18.828.45l4.996 7.492c.11.148.168.347.168.55zm0 0"})))}const I={collapseSidebarButton:"collapseSidebarButton_PEFL",collapseSidebarButtonIcon:"collapseSidebarButtonIcon_kv0_"};function N(e){let{onClick:t}=e;return a.createElement("button",{type:"button",title:(0,u.I)({id:"theme.docs.sidebar.collapseButtonTitle",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),"aria-label":(0,u.I)({id:"theme.docs.sidebar.collapseButtonAriaLabel",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),className:(0,l.Z)("button button--secondary button--outline",I.collapseSidebarButton),onClick:t},a.createElement(S,{className:I.collapseSidebarButtonIcon}))}var y=n(9689),x=n(902);const T=Symbol("EmptyContext"),Z=a.createContext(T);function B(e){let{children:t}=e;const[n,l]=(0,a.useState)(null),o=(0,a.useMemo)((()=>({expandedItem:n,setExpandedItem:l})),[n]);return a.createElement(Z.Provider,{value:o},t)}var w=n(6043),L=n(8596),A=n(9960),M=n(2389);function H(e){let{categoryLabel:t,onClick:n}=e;return a.createElement("button",{"aria-label":(0,u.I)({id:"theme.DocSidebarItem.toggleCollapsedCategoryAriaLabel",message:"Toggle the collapsible sidebar category '{label}'",description:"The ARIA label to toggle the collapsible sidebar category"},{label:t}),type:"button",className:"clean-btn menu__caret",onClick:n})}function P(e){let{item:t,onItemClick:n,activePath:o,level:c,index:s,...d}=e;const{items:m,label:u,collapsible:b,className:p,href:h}=t,{docs:{sidebar:{autoCollapseCategories:E}}}=(0,_.L)(),g=function(e){const t=(0,M.Z)();return(0,a.useMemo)((()=>e.href?e.href:!t&&e.collapsible?(0,i.Wl)(e):void 0),[e,t])}(t),f=(0,i._F)(t,o),k=(0,L.Mg)(h,o),{collapsed:v,setCollapsed:S}=(0,w.u)({initialState:()=>!!b&&(!f&&t.collapsed)}),{expandedItem:I,setExpandedItem:N}=function(){const e=(0,a.useContext)(Z);if(e===T)throw new x.i6("DocSidebarItemsExpandedStateProvider");return e}(),y=function(e){void 0===e&&(e=!v),N(e?null:s),S(e)};return function(e){let{isActive:t,collapsed:n,updateCollapsed:l}=e;const o=(0,x.D9)(t);(0,a.useEffect)((()=>{t&&!o&&n&&l(!1)}),[t,o,n,l])}({isActive:f,collapsed:v,updateCollapsed:y}),(0,a.useEffect)((()=>{b&&null!=I&&I!==s&&E&&S(!0)}),[b,I,s,S,E]),a.createElement("li",{className:(0,l.Z)(r.k.docs.docSidebarItemCategory,r.k.docs.docSidebarItemCategoryLevel(c),"menu__list-item",{"menu__list-item--collapsed":v},p)},a.createElement("div",{className:(0,l.Z)("menu__list-item-collapsible",{"menu__list-item-collapsible--active":k})},a.createElement(A.Z,(0,C.Z)({className:(0,l.Z)("menu__link",{"menu__link--sublist":b,"menu__link--sublist-caret":!h&&b,"menu__link--active":f}),onClick:b?e=>{n?.(t),h?y(!1):(e.preventDefault(),y())}:()=>{n?.(t)},"aria-current":k?"page":void 0,"aria-expanded":b?!v:void 0,href:b?g??"#":g},d),u),h&&b&&a.createElement(H,{categoryLabel:u,onClick:e=>{e.preventDefault(),y()}})),a.createElement(w.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:v},a.createElement(G,{items:m,tabIndex:v?-1:0,onItemClick:n,activePath:o,level:c+1})))}var W=n(3919),F=n(9471);const D={menuExternalLink:"menuExternalLink_NmtK"};function R(e){let{item:t,onItemClick:n,activePath:o,level:c,index:s,...d}=e;const{href:m,label:u,className:b,autoAddBaseUrl:p}=t,h=(0,i._F)(t,o),E=(0,W.Z)(m);return a.createElement("li",{className:(0,l.Z)(r.k.docs.docSidebarItemLink,r.k.docs.docSidebarItemLinkLevel(c),"menu__list-item",b),key:u},a.createElement(A.Z,(0,C.Z)({className:(0,l.Z)("menu__link",!E&&D.menuExternalLink,{"menu__link--active":h}),autoAddBaseUrl:p,"aria-current":h?"page":void 0,to:m},E&&{onClick:n?()=>n(t):void 0},d),u,!E&&a.createElement(F.Z,null)))}const V={menuHtmlItem:"menuHtmlItem_M9Kj"};function U(e){let{item:t,level:n,index:o}=e;const{value:c,defaultStyle:i,className:s}=t;return a.createElement("li",{className:(0,l.Z)(r.k.docs.docSidebarItemLink,r.k.docs.docSidebarItemLinkLevel(n),i&&[V.menuHtmlItem,"menu__list-item"],s),key:o,dangerouslySetInnerHTML:{__html:c}})}function z(e){let{item:t,...n}=e;switch(t.type){case"category":return a.createElement(P,(0,C.Z)({item:t},n));case"html":return a.createElement(U,(0,C.Z)({item:t},n));default:return a.createElement(R,(0,C.Z)({item:t},n))}}function j(e){let{items:t,...n}=e;return a.createElement(B,null,t.map(((e,t)=>a.createElement(z,(0,C.Z)({key:t,item:e,index:t},n)))))}const G=(0,a.memo)(j),K={menu:"menu_SIkG",menuWithAnnouncementBar:"menuWithAnnouncementBar_GW3s"};function Y(e){let{path:t,sidebar:n,className:o}=e;const c=function(){const{isActive:e}=(0,y.nT)(),[t,n]=(0,a.useState)(e);return(0,b.RF)((t=>{let{scrollY:a}=t;e&&n(0===a)}),[e]),e&&t}();return a.createElement("nav",{"aria-label":(0,u.I)({id:"theme.docs.sidebar.navAriaLabel",message:"Docs sidebar",description:"The ARIA label for the sidebar navigation"}),className:(0,l.Z)("menu thin-scrollbar",K.menu,c&&K.menuWithAnnouncementBar,o)},a.createElement("ul",{className:(0,l.Z)(r.k.docs.docSidebarMenu,"menu__list")},a.createElement(G,{items:n,activePath:t,level:1})))}const q="sidebar_njMd",O="sidebarWithHideableNavbar_wUlq",X="sidebarHidden_VK0M",J="sidebarLogo_isFc";function Q(e){let{path:t,sidebar:n,onCollapse:o,isHidden:r}=e;const{navbar:{hideOnScroll:c},docs:{sidebar:{hideable:i}}}=(0,_.L)();return a.createElement("div",{className:(0,l.Z)(q,c&&O,r&&X)},c&&a.createElement(v.Z,{tabIndex:-1,className:J}),a.createElement(Y,{path:t,sidebar:n}),i&&a.createElement(N,{onClick:o}))}const $=a.memo(Q);var ee=n(3102),te=n(3163);const ne=e=>{let{sidebar:t,path:n}=e;const o=(0,te.e)();return a.createElement("ul",{className:(0,l.Z)(r.k.docs.docSidebarMenu,"menu__list")},a.createElement(G,{items:t,activePath:n,onItemClick:e=>{"category"===e.type&&e.href&&o.toggle(),"link"===e.type&&o.toggle()},level:1}))};function ae(e){return a.createElement(ee.Zo,{component:ne,props:e})}const le=a.memo(ae);function oe(e){const t=(0,k.i)(),n="desktop"===t||"ssr"===t,l="mobile"===t;return a.createElement(a.Fragment,null,n&&a.createElement($,e),l&&a.createElement(le,e))}const re={expandButton:"expandButton_m80_",expandButtonIcon:"expandButtonIcon_BlDH"};function ce(e){let{toggleSidebar:t}=e;return a.createElement("div",{className:re.expandButton,title:(0,u.I)({id:"theme.docs.sidebar.expandButtonTitle",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),"aria-label":(0,u.I)({id:"theme.docs.sidebar.expandButtonAriaLabel",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),tabIndex:0,role:"button",onKeyDown:t,onClick:t},a.createElement(S,{className:re.expandButtonIcon}))}const ie={docSidebarContainer:"docSidebarContainer_b6E3",docSidebarContainerHidden:"docSidebarContainerHidden_b3ry",sidebarViewport:"sidebarViewport_Xe31"};function se(e){let{children:t}=e;const n=(0,d.V)();return a.createElement(a.Fragment,{key:n?.name??"noSidebar"},t)}function de(e){let{sidebar:t,hiddenSidebarContainer:n,setHiddenSidebarContainer:o}=e;const{pathname:c}=(0,f.TH)(),[i,s]=(0,a.useState)(!1),d=(0,a.useCallback)((()=>{i&&s(!1),!i&&(0,g.n)()&&s(!0),o((e=>!e))}),[o,i]);return a.createElement("aside",{className:(0,l.Z)(r.k.docs.docSidebarContainer,ie.docSidebarContainer,n&&ie.docSidebarContainerHidden),onTransitionEnd:e=>{e.currentTarget.classList.contains(ie.docSidebarContainer)&&n&&s(!0)}},a.createElement(se,null,a.createElement("div",{className:(0,l.Z)(ie.sidebarViewport,i&&ie.sidebarViewportHidden)},a.createElement(oe,{sidebar:t,path:c,onCollapse:d,isHidden:i}),i&&a.createElement(ce,{toggleSidebar:d}))))}const me={docMainContainer:"docMainContainer_gTbr",docMainContainerEnhanced:"docMainContainerEnhanced_Uz_u",docItemWrapperEnhanced:"docItemWrapperEnhanced_czyv"};function ue(e){let{hiddenSidebarContainer:t,children:n}=e;const o=(0,d.V)();return a.createElement("main",{className:(0,l.Z)(me.docMainContainer,(t||!o)&&me.docMainContainerEnhanced)},a.createElement("div",{className:(0,l.Z)("container padding-top--md padding-bottom--lg",me.docItemWrapper,t&&me.docItemWrapperEnhanced)},n))}const be={docPage:"docPage__5DB",docsWrapper:"docsWrapper_BCFX","themedComponent--light":"themedComponent--light_NU7w"};function pe(e){let{children:t}=e;const n=(0,d.V)(),[l,o]=(0,a.useState)(!1);return a.createElement(m.Z,{wrapperClassName:be.docsWrapper},a.createElement(E,null),a.createElement("div",{className:be.docPage},n&&a.createElement(de,{sidebar:n.items,hiddenSidebarContainer:l,setHiddenSidebarContainer:o}),a.createElement(ue,{hiddenSidebarContainer:l},t)))}var he=n(4204),Ee=n(197);function ge(e){const{versionMetadata:t}=e;return a.createElement(a.Fragment,null,a.createElement(Ee.Z,{version:t.version,tag:(0,c.os)(t.pluginId,t.version)}),a.createElement(o.d,null,t.noIndex&&a.createElement("meta",{name:"robots",content:"noindex, nofollow"})))}function fe(e){const{versionMetadata:t}=e,n=(0,i.hI)(e);if(!n)return a.createElement(he.default,null);const{docElement:c,sidebarName:m,sidebarItems:u}=n;return a.createElement(a.Fragment,null,a.createElement(ge,e),a.createElement(o.FG,{className:(0,l.Z)(r.k.wrapper.docsPages,r.k.page.docsDocPage,e.versionMetadata.className)},a.createElement(s.q,{version:t},a.createElement(d.b,{name:m,items:u},a.createElement(pe,null,c)))))}},4204:(e,t,n)=>{n.r(t),n.d(t,{default:()=>r});var a=n(7294),l=n(4173),o=n(9960);const r=function(){return a.createElement(l.Z,{title:"Page Not Found"},a.createElement("main",{className:"container margin-vert--xl"},a.createElement("div",{className:"row"},a.createElement("div",{className:"col col--6 col--offset-3"},a.createElement("h1",{className:"hero__title"},"404"),a.createElement("p",null,a.createElement("img",{src:"/img/middy-404.gif"})),a.createElement("p",{className:"hero__subtitle"},"Sorry, we could not find what you were looking for!"),a.createElement("p",null,"Please contact the owner of the site that linked you to the original URL and let them know their link is broken."),a.createElement("p",{style:{display:"flex",alignItems:"center",justifyContent:"start",gap:"1em"}},a.createElement(o.Z,{className:"button button--primary button--lg",to:"/"},"Go to the home"),a.createElement(o.Z,{className:"button button--secondary button--lg",to:"/docs"},"Read the docs"))))))}}}]); \ No newline at end of file diff --git a/assets/js/1c88510b.7435c9cb.js b/assets/js/1c88510b.7435c9cb.js deleted file mode 100644 index 6e1e59d8a..000000000 --- a/assets/js/1c88510b.7435c9cb.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[7858],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>b});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var i=r.createContext({}),u=function(e){var t=r.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},c=function(e){var t=u(e.components);return r.createElement(i.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,l=e.originalType,i=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),d=u(n),m=a,b=d["".concat(i,".").concat(m)]||d[m]||p[m]||l;return n?r.createElement(b,o(o({ref:t},c),{},{components:n})):r.createElement(b,o({ref:t},c))}));function b(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=n.length,o=new Array(l);o[0]=m;var s={};for(var i in t)hasOwnProperty.call(t,i)&&(s[i]=t[i]);s.originalType=e,s[d]="string"==typeof e?e:a,o[1]=s;for(var u=2;u{n.d(t,{Z:()=>o});var r=n(7294),a=n(6010);const l={tabItem:"tabItem_Ymn6"};function o(e){let{children:t,hidden:n,className:o}=e;return r.createElement("div",{role:"tabpanel",className:(0,a.Z)(l.tabItem,o),hidden:n},t)}},4866:(e,t,n)=>{n.d(t,{Z:()=>w});var r=n(7462),a=n(7294),l=n(6010),o=n(2466),s=n(6550),i=n(1980),u=n(7392),c=n(12);function d(e){return function(e){return a.Children.map(e,(e=>{if(!e||(0,a.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:r,default:a}}=e;return{value:t,label:n,attributes:r,default:a}}))}function p(e){const{values:t,children:n}=e;return(0,a.useMemo)((()=>{const e=t??d(n);return function(e){const t=(0,u.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[t,n])}function m(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function b(e){let{queryString:t=!1,groupId:n}=e;const r=(0,s.k6)(),l=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,i._X)(l),(0,a.useCallback)((e=>{if(!l)return;const t=new URLSearchParams(r.location.search);t.set(l,e),r.replace({...r.location,search:t.toString()})}),[l,r])]}function f(e){const{defaultValue:t,queryString:n=!1,groupId:r}=e,l=p(e),[o,s]=(0,a.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the component requires at least one children component");if(t){if(!m({value:t,tabValues:n}))throw new Error(`Docusaurus error: The has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const r=n.find((e=>e.default))??n[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:t,tabValues:l}))),[i,u]=b({queryString:n,groupId:r}),[d,f]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[r,l]=(0,c.Nk)(n);return[r,(0,a.useCallback)((e=>{n&&l.set(e)}),[n,l])]}({groupId:r}),y=(()=>{const e=i??d;return m({value:e,tabValues:l})?e:null})();(0,a.useLayoutEffect)((()=>{y&&s(y)}),[y]);return{selectedValue:o,selectValue:(0,a.useCallback)((e=>{if(!m({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);s(e),u(e),f(e)}),[u,f,l]),tabValues:l}}var y=n(2389);const h={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};function k(e){let{className:t,block:n,selectedValue:s,selectValue:i,tabValues:u}=e;const c=[],{blockElementScrollPositionUntilNextRender:d}=(0,o.o5)(),p=e=>{const t=e.currentTarget,n=c.indexOf(t),r=u[n].value;r!==s&&(d(t),i(r))},m=e=>{let t=null;switch(e.key){case"Enter":p(e);break;case"ArrowRight":{const n=c.indexOf(e.currentTarget)+1;t=c[n]??c[0];break}case"ArrowLeft":{const n=c.indexOf(e.currentTarget)-1;t=c[n]??c[c.length-1];break}}t?.focus()};return a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":n},t)},u.map((e=>{let{value:t,label:n,attributes:o}=e;return a.createElement("li",(0,r.Z)({role:"tab",tabIndex:s===t?0:-1,"aria-selected":s===t,key:t,ref:e=>c.push(e),onKeyDown:m,onClick:p},o,{className:(0,l.Z)("tabs__item",h.tabItem,o?.className,{"tabs__item--active":s===t})}),n??t)})))}function v(e){let{lazy:t,children:n,selectedValue:r}=e;const l=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=l.find((e=>e.props.value===r));return e?(0,a.cloneElement)(e,{className:"margin-top--md"}):null}return a.createElement("div",{className:"margin-top--md"},l.map(((e,t)=>(0,a.cloneElement)(e,{key:t,hidden:e.props.value!==r}))))}function g(e){const t=f(e);return a.createElement("div",{className:(0,l.Z)("tabs-container",h.tabList)},a.createElement(k,(0,r.Z)({},e,t)),a.createElement(v,(0,r.Z)({},e,t)))}function w(e){const t=(0,y.Z)();return a.createElement(g,(0,r.Z)({key:String(t)},e))}},1113:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>b,frontMatter:()=>s,metadata:()=>u,toc:()=>d});var r=n(7462),a=(n(7294),n(3905)),l=n(4866),o=n(5162);const s={title:"s3-object-response"},i=void 0,u={unversionedId:"middlewares/s3-object-response",id:"middlewares/s3-object-response",title:"s3-object-response",description:"This middleware is a Proof of Concept and requires real world testing before use, not recommended for production",source:"@site/docs/middlewares/s3-object-response.md",sourceDirName:"middlewares",slug:"/middlewares/s3-object-response",permalink:"/docs/middlewares/s3-object-response",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/middlewares/s3-object-response.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",frontMatter:{title:"s3-object-response"},sidebar:"tutorialSidebar",previous:{title:"rds-signer",permalink:"/docs/middlewares/rds-signer"},next:{title:"s3",permalink:"/docs/middlewares/s3"}},c={},d=[{value:"Install",id:"install",level:2},{value:"Options",id:"options",level:2},{value:"Sample usage",id:"sample-usage",level:2},{value:"Stream",id:"stream",level:3},{value:"Promise",id:"promise",level:3},{value:"Bundling",id:"bundling",level:2}],p={toc:d},m="wrapper";function b(e){let{components:t,...n}=e;return(0,a.kt)(m,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"}," This middleware is a Proof of Concept and requires real world testing before use, not recommended for production ")),(0,a.kt)("p",null,"Fetches S3 object as a stream and writes back to s3 object response."),(0,a.kt)("h2",{id:"install"},"Install"),(0,a.kt)("p",null,"To install this middleware you can use NPM:"),(0,a.kt)(l.Z,{groupId:"npm2yarn",mdxType:"Tabs"},(0,a.kt)(o.Z,{value:"npm",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-bash"},"npm install --save @middy/s3-object-response\nnpm install --save-dev @aws-sdk/client-s3\n"))),(0,a.kt)(o.Z,{value:"yarn",label:"Yarn",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-bash"},"yarn add @middy/s3-object-response\nyarn add --dev @aws-sdk/client-s3\n"))),(0,a.kt)(o.Z,{value:"pnpm",label:"pnpm",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-bash"},"pnpm add @middy/s3-object-response\npnpm add --save-dev @aws-sdk/client-s3\n")))),(0,a.kt)("h2",{id:"options"},"Options"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"bodyType")," (string) (required): How to pass in the s3 object through the handler. Can be ",(0,a.kt)("inlineCode",{parentName:"li"},"stream")," or ",(0,a.kt)("inlineCode",{parentName:"li"},"promise"),"."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"AwsClient")," (object) (default ",(0,a.kt)("inlineCode",{parentName:"li"},"S3Client"),"): S3Client class constructor (i.e. that has been instrumented with AWS XRay). Must be from ",(0,a.kt)("inlineCode",{parentName:"li"},"@aws-sdk/client-s3"),"."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"awsClientOptions")," (object) (optional): Options to pass to S3Client class constructor."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"awsClientCapture")," (function) (optional): Enable XRay by passing ",(0,a.kt)("inlineCode",{parentName:"li"},"captureAWSv3Client")," from ",(0,a.kt)("inlineCode",{parentName:"li"},"aws-xray-sdk")," in."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"httpsCapture")," (function) (optional): Enable XRay by passing ",(0,a.kt)("inlineCode",{parentName:"li"},"captureHTTPsGlobal")," from ",(0,a.kt)("inlineCode",{parentName:"li"},"aws-xray-sdk")," in."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"disablePrefetch")," (boolean) (default ",(0,a.kt)("inlineCode",{parentName:"li"},"false"),"): On cold start requests will trigger early if they can. Setting ",(0,a.kt)("inlineCode",{parentName:"li"},"awsClientAssumeRole")," disables prefetch.")),(0,a.kt)("p",null,"NOTES:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"The response from the handler must match the allowed parameters for ",(0,a.kt)("a",{parentName:"li",href:"https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#writeGetObjectResponse-property"},(0,a.kt)("inlineCode",{parentName:"a"},"S3.writeGetObjectResponse")),", excluding ",(0,a.kt)("inlineCode",{parentName:"li"},"RequestRoute")," and ",(0,a.kt)("inlineCode",{parentName:"li"},"RequestToken"),"."),(0,a.kt)("li",{parentName:"ul"},"Lambda is required to have IAM permission for ",(0,a.kt)("inlineCode",{parentName:"li"},"s3-object-lambda:WriteGetObjectResponse"))),(0,a.kt)("h2",{id:"sample-usage"},"Sample usage"),(0,a.kt)("h3",{id:"stream"},"Stream"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-javascript"},"import zlib from 'zlib'\nimport middy from '@middy/core'\nimport s3ObjectResponse from '@middy/s3-object-response'\n\nconst handler = middy((event, context) => {\n const readStream = context.s3Object\n const transformStream = zlib.createBrotliCompress()\n return {\n Body: readStream.pipe(transformStream)\n }\n})\n\nhandler.use(\n s3ObjectResponse({\n bodyType: 'stream'\n })\n)\n")),(0,a.kt)("h3",{id:"promise"},"Promise"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-javascript"},"import zlib from 'zlib'\nimport middy from '@middy/core'\nimport s3ObjectResponse from '@middy/s3-object-response'\n\nconst handler = middy(async (event, context) => {\n let body = await context.s3Object\n // change body\n return {\n Body: JSON.stringify(body)\n }\n})\n\nhandler.use(\n s3ObjectResponse({\n bodyType: 'promise'\n })\n)\n")),(0,a.kt)("h2",{id:"bundling"},"Bundling"),(0,a.kt)("p",null,"To exclude ",(0,a.kt)("inlineCode",{parentName:"p"},"@aws-sdk")," add ",(0,a.kt)("inlineCode",{parentName:"p"},"@aws-sdk/client-s3")," to the exclude list."))}b.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1c88510b.b5e5e8bb.js b/assets/js/1c88510b.b5e5e8bb.js new file mode 100644 index 000000000..0110717a1 --- /dev/null +++ b/assets/js/1c88510b.b5e5e8bb.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[7858],{4328:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>d,toc:()=>u});var s=t(5893),r=t(1151),a=t(4866),l=t(5162);const o={title:"s3-object-response"},i=void 0,d={id:"middlewares/s3-object-response",title:"s3-object-response",description:"This middleware is a Proof of Concept and requires real world testing before use, not recommended for production",source:"@site/docs/middlewares/s3-object-response.md",sourceDirName:"middlewares",slug:"/middlewares/s3-object-response",permalink:"/docs/middlewares/s3-object-response",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/middlewares/s3-object-response.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",frontMatter:{title:"s3-object-response"},sidebar:"tutorialSidebar",previous:{title:"rds-signer",permalink:"/docs/middlewares/rds-signer"},next:{title:"s3",permalink:"/docs/middlewares/s3"}},c={},u=[{value:"Install",id:"install",level:2},{value:"Options",id:"options",level:2},{value:"Sample usage",id:"sample-usage",level:2},{value:"Stream",id:"stream",level:3},{value:"JSON",id:"json",level:3},{value:"Bundling",id:"bundling",level:2}];function p(e){const n={a:"a",code:"code",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.p,{children:"** This middleware is a Proof of Concept and requires real world testing before use, not recommended for production **"}),"\n",(0,s.jsx)(n.p,{children:"Fetches S3 object as a stream and writes back to s3 object response."}),"\n",(0,s.jsx)(n.h2,{id:"install",children:"Install"}),"\n",(0,s.jsx)(n.p,{children:"To install this middleware you can use NPM:"}),"\n",(0,s.jsxs)(a.Z,{groupId:"npm2yarn",children:[(0,s.jsx)(l.Z,{value:"npm",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"npm install --save @middy/s3-object-response\nnpm install --save-dev @aws-sdk/client-s3\n"})})}),(0,s.jsx)(l.Z,{value:"yarn",label:"Yarn",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"yarn add @middy/s3-object-response\nyarn add --dev @aws-sdk/client-s3\n"})})}),(0,s.jsx)(l.Z,{value:"pnpm",label:"pnpm",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"pnpm add @middy/s3-object-response\npnpm add --save-dev @aws-sdk/client-s3\n"})})})]}),"\n",(0,s.jsx)(n.h2,{id:"options",children:"Options"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"AwsClient"})," (object) (default ",(0,s.jsx)(n.code,{children:"S3Client"}),"): S3Client class constructor (i.e. that has been instrumented with AWS XRay). Must be from ",(0,s.jsx)(n.code,{children:"@aws-sdk/client-s3"}),"."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"awsClientOptions"})," (object) (optional): Options to pass to S3Client class constructor."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"awsClientCapture"})," (function) (optional): Enable XRay by passing ",(0,s.jsx)(n.code,{children:"captureAWSv3Client"})," from ",(0,s.jsx)(n.code,{children:"aws-xray-sdk"})," in."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"disablePrefetch"})," (boolean) (default ",(0,s.jsx)(n.code,{children:"false"}),"): On cold start requests will trigger early if they can. Setting ",(0,s.jsx)(n.code,{children:"awsClientAssumeRole"})," disables prefetch."]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"NOTES:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["The response from the handler must match the allowed parameters for ",(0,s.jsx)(n.a,{href:"https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#writeGetObjectResponse-property",children:(0,s.jsx)(n.code,{children:"S3.writeGetObjectResponse"})}),", excluding ",(0,s.jsx)(n.code,{children:"RequestRoute"})," and ",(0,s.jsx)(n.code,{children:"RequestToken"}),"."]}),"\n",(0,s.jsxs)(n.li,{children:["XRay doesn't support tracing of ",(0,s.jsx)(n.code,{children:"fetch"}),", you will need a workaround, see ",(0,s.jsx)(n.a,{href:"https://github.com/aws/aws-xray-sdk-node/issues/531#issuecomment-1378562164",children:"https://github.com/aws/aws-xray-sdk-node/issues/531#issuecomment-1378562164"})]}),"\n",(0,s.jsxs)(n.li,{children:["Lambda is required to have IAM permission for ",(0,s.jsx)(n.code,{children:"s3-object-lambda:WriteGetObjectResponse"})]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"sample-usage",children:"Sample usage"}),"\n",(0,s.jsx)(n.h3,{id:"stream",children:"Stream"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-javascript",children:"import zlib from 'zlib'\nimport middy from '@middy/core'\nimport s3ObjectResponse from '@middy/s3-object-response'\n\nconst lambdaHandler = (event, context) => {\n const readStream = await context.s3ObjectFetch.then(res => res.body)\n const transformStream = zlib.createBrotliCompress()\n return {\n Body: readStream.pipe(transformStream)\n }\n}\n\nexport const handler = middy().use(s3ObjectResponse()).handler(lambdaHandler)\n"})}),"\n",(0,s.jsx)(n.h3,{id:"json",children:"JSON"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-javascript",children:"import zlib from 'zlib'\nimport middy from '@middy/core'\nimport s3ObjectResponse from '@middy/s3-object-response'\n\nconst lambdaHandler = async (event, context) => {\n let body = await context.s3ObjectFetch.then((res) => res.json())\n // change body\n return {\n Body: JSON.stringify(body)\n }\n}\n\nexport const handler = middy().use(s3ObjectResponse()).handler(lambdaHandler)\n"})}),"\n",(0,s.jsx)(n.h2,{id:"bundling",children:"Bundling"}),"\n",(0,s.jsxs)(n.p,{children:["To exclude ",(0,s.jsx)(n.code,{children:"@aws-sdk"})," add ",(0,s.jsx)(n.code,{children:"@aws-sdk/client-s3"})," to the exclude list."]})]})}function m(e={}){const{wrapper:n}={...(0,r.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(p,{...e})}):p(e)}},5162:(e,n,t)=>{t.d(n,{Z:()=>l});t(7294);var s=t(6010);const r={tabItem:"tabItem_Ymn6"};var a=t(5893);function l(e){let{children:n,hidden:t,className:l}=e;return(0,a.jsx)("div",{role:"tabpanel",className:(0,s.Z)(r.tabItem,l),hidden:t,children:n})}},4866:(e,n,t)=>{t.d(n,{Z:()=>w});var s=t(7294),r=t(6010),a=t(2466),l=t(6550),o=t(469),i=t(1980),d=t(7392),c=t(12);function u(e){return s.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,s.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function p(e){const{values:n,children:t}=e;return(0,s.useMemo)((()=>{const e=n??function(e){return u(e).map((e=>{let{props:{value:n,label:t,attributes:s,default:r}}=e;return{value:n,label:t,attributes:s,default:r}}))}(t);return function(e){const n=(0,d.l)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[n,t])}function m(e){let{value:n,tabValues:t}=e;return t.some((e=>e.value===n))}function h(e){let{queryString:n=!1,groupId:t}=e;const r=(0,l.k6)(),a=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t});return[(0,i._X)(a),(0,s.useCallback)((e=>{if(!a)return;const n=new URLSearchParams(r.location.search);n.set(a,e),r.replace({...r.location,search:n.toString()})}),[a,r])]}function b(e){const{defaultValue:n,queryString:t=!1,groupId:r}=e,a=p(e),[l,i]=(0,s.useState)((()=>function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw new Error("Docusaurus error: the component requires at least one children component");if(n){if(!m({value:n,tabValues:t}))throw new Error(`Docusaurus error: The has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const s=t.find((e=>e.default))??t[0];if(!s)throw new Error("Unexpected error: 0 tabValues");return s.value}({defaultValue:n,tabValues:a}))),[d,u]=h({queryString:t,groupId:r}),[b,f]=function(e){let{groupId:n}=e;const t=function(e){return e?`docusaurus.tab.${e}`:null}(n),[r,a]=(0,c.Nk)(t);return[r,(0,s.useCallback)((e=>{t&&a.set(e)}),[t,a])]}({groupId:r}),j=(()=>{const e=d??b;return m({value:e,tabValues:a})?e:null})();(0,o.Z)((()=>{j&&i(j)}),[j]);return{selectedValue:l,selectValue:(0,s.useCallback)((e=>{if(!m({value:e,tabValues:a}))throw new Error(`Can't select invalid tab value=${e}`);i(e),u(e),f(e)}),[u,f,a]),tabValues:a}}var f=t(2389);const j={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var x=t(5893);function v(e){let{className:n,block:t,selectedValue:s,selectValue:l,tabValues:o}=e;const i=[],{blockElementScrollPositionUntilNextRender:d}=(0,a.o5)(),c=e=>{const n=e.currentTarget,t=i.indexOf(n),r=o[t].value;r!==s&&(d(n),l(r))},u=e=>{let n=null;switch(e.key){case"Enter":c(e);break;case"ArrowRight":{const t=i.indexOf(e.currentTarget)+1;n=i[t]??i[0];break}case"ArrowLeft":{const t=i.indexOf(e.currentTarget)-1;n=i[t]??i[i.length-1];break}}n?.focus()};return(0,x.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,r.Z)("tabs",{"tabs--block":t},n),children:o.map((e=>{let{value:n,label:t,attributes:a}=e;return(0,x.jsx)("li",{role:"tab",tabIndex:s===n?0:-1,"aria-selected":s===n,ref:e=>i.push(e),onKeyDown:u,onClick:c,...a,className:(0,r.Z)("tabs__item",j.tabItem,a?.className,{"tabs__item--active":s===n}),children:t??n},n)}))})}function g(e){let{lazy:n,children:t,selectedValue:r}=e;const a=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){const e=a.find((e=>e.props.value===r));return e?(0,s.cloneElement)(e,{className:"margin-top--md"}):null}return(0,x.jsx)("div",{className:"margin-top--md",children:a.map(((e,n)=>(0,s.cloneElement)(e,{key:n,hidden:e.props.value!==r})))})}function y(e){const n=b(e);return(0,x.jsxs)("div",{className:(0,r.Z)("tabs-container",j.tabList),children:[(0,x.jsx)(v,{...e,...n}),(0,x.jsx)(g,{...e,...n})]})}function w(e){const n=(0,f.Z)();return(0,x.jsx)(y,{...e,children:u(e.children)},String(n))}},1151:(e,n,t)=>{t.d(n,{Z:()=>o,a:()=>l});var s=t(7294);const r={},a=s.createContext(r);function l(e){const n=s.useContext(a);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:l(e.components),s.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/1e42f3f3.078e0838.js b/assets/js/1e42f3f3.078e0838.js deleted file mode 100644 index c362d00df..000000000 --- a/assets/js/1e42f3f3.078e0838.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[8102],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>y});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function s(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var l=n.createContext({}),d=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):s(s({},t),e)),r},p=function(e){var t=d(e.components);return n.createElement(l.Provider,{value:t},e.children)},c="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),c=d(r),m=a,y=c["".concat(l,".").concat(m)]||c[m]||u[m]||o;return r?n.createElement(y,s(s({ref:t},p),{},{components:r})):n.createElement(y,s({ref:t},p))}));function y(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,s=new Array(o);s[0]=m;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[c]="string"==typeof e?e:a,s[1]=i;for(var d=2;d{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>d});var n=r(7462),a=(r(7294),r(3905));const o={title:"ws-json-body-parser"},s=void 0,i={unversionedId:"middlewares/ws-json-body-parser",id:"middlewares/ws-json-body-parser",title:"ws-json-body-parser",description:"This middleware automatically parses WebSocket requests with a JSON body and converts the body into an",source:"@site/docs/middlewares/ws-json-body-parser.md",sourceDirName:"middlewares",slug:"/middlewares/ws-json-body-parser",permalink:"/docs/middlewares/ws-json-body-parser",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/middlewares/ws-json-body-parser.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",frontMatter:{title:"ws-json-body-parser"},sidebar:"tutorialSidebar",previous:{title:"warmup",permalink:"/docs/middlewares/warmup"},next:{title:"ws-response",permalink:"/docs/middlewares/ws-response"}},l={},d=[{value:"Install",id:"install",level:2},{value:"Options",id:"options",level:2},{value:"Sample usage",id:"sample-usage",level:2}],p={toc:d},c="wrapper";function u(e){let{components:t,...r}=e;return(0,a.kt)(c,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"This middleware automatically parses WebSocket requests with a JSON body and converts the body into an\nobject."),(0,a.kt)("p",null,"It can also be used in combination with validator as a prior step to normalize the\nevent body input as an object so that the content can be validated."),(0,a.kt)("p",null,"If the body has been parsed as JSON, you can access the original body through the ",(0,a.kt)("inlineCode",{parentName:"p"},"request.event.rawBody"),"."),(0,a.kt)("h2",{id:"install"},"Install"),(0,a.kt)("p",null,"To install this middleware you can use NPM:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-bash"},"npm install --save @middy/ws-json-body-parser\n")),(0,a.kt)("h2",{id:"options"},"Options"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"reviver")," (function) (default ",(0,a.kt)("inlineCode",{parentName:"li"},"undefined"),"): A ",(0,a.kt)("a",{parentName:"li",href:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse#Parameters"},"reviver")," parameter may be passed which will be used ",(0,a.kt)("inlineCode",{parentName:"li"},"JSON.parse"),"ing the body.")),(0,a.kt)("h2",{id:"sample-usage"},"Sample usage"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\nimport wsJsonBodyParserMiddleware from '@middy/ws-json-body-parser'\nimport wsResponseMiddleware from '@middy/ws-response'\n\nexport const handler = middy()\n .use(wsJsonBodyParserMiddleware())\n .use(wsResponseMiddleware())\n .handler((event) => {\n return event.body.message\n })\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1e42f3f3.82514db2.js b/assets/js/1e42f3f3.82514db2.js new file mode 100644 index 000000000..dcb7f2fd7 --- /dev/null +++ b/assets/js/1e42f3f3.82514db2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[8102],{1586:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>i,contentTitle:()=>d,default:()=>p,frontMatter:()=>t,metadata:()=>o,toc:()=>l});var r=n(5893),a=n(1151);const t={title:"ws-json-body-parser"},d=void 0,o={id:"middlewares/ws-json-body-parser",title:"ws-json-body-parser",description:"This middleware automatically parses WebSocket requests with a JSON body and converts the body into an",source:"@site/docs/middlewares/ws-json-body-parser.md",sourceDirName:"middlewares",slug:"/middlewares/ws-json-body-parser",permalink:"/docs/middlewares/ws-json-body-parser",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/middlewares/ws-json-body-parser.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",frontMatter:{title:"ws-json-body-parser"},sidebar:"tutorialSidebar",previous:{title:"warmup",permalink:"/docs/middlewares/warmup"},next:{title:"ws-response",permalink:"/docs/middlewares/ws-response"}},i={},l=[{value:"Install",id:"install",level:2},{value:"Options",id:"options",level:2},{value:"Sample usage",id:"sample-usage",level:2}];function c(e){const s={a:"a",code:"code",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,a.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(s.p,{children:"This middleware automatically parses WebSocket requests with a JSON body and converts the body into an\nobject."}),"\n",(0,r.jsx)(s.p,{children:"It can also be used in combination with validator as a prior step to normalize the\nevent body input as an object so that the content can be validated."}),"\n",(0,r.jsxs)(s.p,{children:["If the body has been parsed as JSON, you can access the original body through the ",(0,r.jsx)(s.code,{children:"request.event.rawBody"}),"."]}),"\n",(0,r.jsx)(s.h2,{id:"install",children:"Install"}),"\n",(0,r.jsx)(s.p,{children:"To install this middleware you can use NPM:"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-bash",children:"npm install --save @middy/ws-json-body-parser\n"})}),"\n",(0,r.jsx)(s.h2,{id:"options",children:"Options"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.code,{children:"reviver"})," (function) (default ",(0,r.jsx)(s.code,{children:"undefined"}),"): A ",(0,r.jsx)(s.a,{href:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse#Parameters",children:"reviver"})," parameter may be passed which will be used ",(0,r.jsx)(s.code,{children:"JSON.parse"}),"ing the body."]}),"\n"]}),"\n",(0,r.jsx)(s.h2,{id:"sample-usage",children:"Sample usage"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-javascript",children:"import middy from '@middy/core'\nimport wsJsonBodyParserMiddleware from '@middy/ws-json-body-parser'\nimport wsResponseMiddleware from '@middy/ws-response'\n\nconst lambdaHandler = (event) => {\n return event.body.message\n}\n\nexport const handler = middy()\n .use(wsJsonBodyParserMiddleware())\n .use(wsResponseMiddleware())\n .handler(lambdaHandler)\n"})})]})}function p(e={}){const{wrapper:s}={...(0,a.a)(),...e.components};return s?(0,r.jsx)(s,{...e,children:(0,r.jsx)(c,{...e})}):c(e)}},1151:(e,s,n)=>{n.d(s,{Z:()=>o,a:()=>d});var r=n(7294);const a={},t=r.createContext(a);function d(e){const s=r.useContext(t);return r.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function o(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:d(e.components),r.createElement(t.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/1ea8ecd6.2a0a1656.js b/assets/js/1ea8ecd6.2a0a1656.js deleted file mode 100644 index d52b271be..000000000 --- a/assets/js/1ea8ecd6.2a0a1656.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[5341],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>f});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var c=r.createContext({}),l=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=l(e.components);return r.createElement(c.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),u=l(n),m=o,f=u["".concat(c,".").concat(m)]||u[m]||d[m]||a;return n?r.createElement(f,i(i({ref:t},p),{},{components:n})):r.createElement(f,i({ref:t},p))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=m;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s[u]="string"==typeof e?e:o,i[1]=s;for(var l=2;l{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>s,toc:()=>l});var r=n(7462),o=(n(7294),n(3905));const a={title:"Internet of things (IoT)"},i=void 0,s={unversionedId:"events/iot",id:"events/iot",title:"Internet of things (IoT)",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/events/iot.md",sourceDirName:"events",slug:"/events/iot",permalink:"/docs/events/iot",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/events/iot.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",frontMatter:{title:"Internet of things (IoT)"},sidebar:"tutorialSidebar",previous:{title:"IoT Events",permalink:"/docs/events/iot-events"},next:{title:"Kafka, Managed Streaming (MSK)",permalink:"/docs/events/kafka-managed-streaming"}},c={},l=[{value:"AWS Documentation",id:"aws-documentation",level:2},{value:"Example",id:"example",level:2}],p={toc:l},u="wrapper";function d(e){let{components:t,...n}=e;return(0,o.kt)(u,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("admonition",{type:"caution"},(0,o.kt)("p",{parentName:"admonition"},"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.")),(0,o.kt)("h2",{id:"aws-documentation"},"AWS Documentation"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://docs.aws.amazon.com/lambda/latest/dg/services-iot.html"},"Using AWS Lambda with AWS IoT"))),(0,o.kt)("h2",{id:"example"},"Example"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\n\nexport const handler = middy()\n .handler((event, context, {signal}) => {\n // ...\n })\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1ea8ecd6.92667eab.js b/assets/js/1ea8ecd6.92667eab.js new file mode 100644 index 000000000..cef3d1098 --- /dev/null +++ b/assets/js/1ea8ecd6.92667eab.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[5341],{8683:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>a,default:()=>m,frontMatter:()=>s,metadata:()=>r,toc:()=>c});var o=n(5893),i=n(1151);const s={title:"Internet of things (IoT)"},a=void 0,r={id:"events/iot",title:"Internet of things (IoT)",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/events/iot.md",sourceDirName:"events",slug:"/events/iot",permalink:"/docs/events/iot",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/events/iot.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",frontMatter:{title:"Internet of things (IoT)"},sidebar:"tutorialSidebar",previous:{title:"IoT Events",permalink:"/docs/events/iot-events"},next:{title:"Kafka, Managed Streaming (MSK)",permalink:"/docs/events/kafka-managed-streaming"}},d={},c=[{value:"AWS Documentation",id:"aws-documentation",level:2},{value:"Example",id:"example",level:2}];function l(e){const t={a:"a",admonition:"admonition",code:"code",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,i.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.admonition,{type:"caution",children:(0,o.jsx)(t.p,{children:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub."})}),"\n",(0,o.jsx)(t.h2,{id:"aws-documentation",children:"AWS Documentation"}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsx)(t.li,{children:(0,o.jsx)(t.a,{href:"https://docs.aws.amazon.com/lambda/latest/dg/services-iot.html",children:"Using AWS Lambda with AWS IoT"})}),"\n"]}),"\n",(0,o.jsx)(t.h2,{id:"example",children:"Example"}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-javascript",children:"import middy from '@middy/core'\n\nexport const handler = middy()\n .handler((event, context, {signal}) => {\n // ...\n })\n"})})]})}function m(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(l,{...e})}):l(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>r,a:()=>a});var o=n(7294);const i={},s=o.createContext(i);function a(e){const t=o.useContext(s);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),o.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/1f391b9e.d00ef048.js b/assets/js/1f391b9e.d00ef048.js deleted file mode 100644 index d58253c1f..000000000 --- a/assets/js/1f391b9e.d00ef048.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[3085],{4247:(e,t,a)=>{a.r(t),a.d(t,{default:()=>o});var l=a(7294),n=a(6010),c=a(1944),r=a(5281),m=a(4173),i=a(3140),d=a(9407);const s={mdxPageWrapper:"mdxPageWrapper_j9I6"};function o(e){const{content:t}=e,{metadata:{title:a,description:o,frontMatter:p}}=t,{wrapperClassName:g,hide_table_of_contents:u}=p;return l.createElement(c.FG,{className:(0,n.Z)(g??r.k.wrapper.mdxPages,r.k.page.mdxPage)},l.createElement(c.d,{title:a,description:o}),l.createElement(m.Z,null,l.createElement("main",{className:"container container--fluid margin-vert--lg"},l.createElement("div",{className:(0,n.Z)("row",s.mdxPageWrapper)},l.createElement("div",{className:(0,n.Z)("col",!u&&"col--8")},l.createElement("article",null,l.createElement(i.Z,null,l.createElement(t,null)))),!u&&t.toc.length>0&&l.createElement("div",{className:"col col--2"},l.createElement(d.Z,{toc:t.toc,minHeadingLevel:p.toc_min_heading_level,maxHeadingLevel:p.toc_max_heading_level}))))))}}}]); \ No newline at end of file diff --git a/assets/js/1f391b9e.f610db05.js b/assets/js/1f391b9e.f610db05.js new file mode 100644 index 000000000..cfe5ef672 --- /dev/null +++ b/assets/js/1f391b9e.f610db05.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[3085],{4247:(e,a,s)=>{s.r(a),s.d(a,{default:()=>x});s(7294);var i=s(6010),n=s(1944),r=s(5281),c=s(63),d=s(591),l=s(9407),t=s(2212);const m={mdxPageWrapper:"mdxPageWrapper_j9I6"};var o=s(5893);function x(e){const{content:a}=e,{metadata:{title:s,description:x,frontMatter:g,unlisted:p},assets:h}=a,{keywords:j,wrapperClassName:v,hide_table_of_contents:_}=g,u=h.image??g.image;return(0,o.jsx)(n.FG,{className:(0,i.Z)(v??r.k.wrapper.mdxPages,r.k.page.mdxPage),children:(0,o.jsxs)(c.Z,{children:[(0,o.jsx)(n.d,{title:s,description:x,keywords:j,image:u}),(0,o.jsx)("main",{className:"container container--fluid margin-vert--lg",children:(0,o.jsxs)("div",{className:(0,i.Z)("row",m.mdxPageWrapper),children:[(0,o.jsxs)("div",{className:(0,i.Z)("col",!_&&"col--8"),children:[p&&(0,o.jsx)(t.Z,{}),(0,o.jsx)("article",{children:(0,o.jsx)(d.Z,{children:(0,o.jsx)(a,{})})})]}),!_&&a.toc.length>0&&(0,o.jsx)("div",{className:"col col--2",children:(0,o.jsx)(l.Z,{toc:a.toc,minHeadingLevel:g.toc_min_heading_level,maxHeadingLevel:g.toc_max_heading_level})})]})})]})})}}}]); \ No newline at end of file diff --git a/assets/js/211396ae.3f74e82d.js b/assets/js/211396ae.3f74e82d.js deleted file mode 100644 index 78d1728e3..000000000 --- a/assets/js/211396ae.3f74e82d.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[3616],{3905:(e,t,r)=>{r.d(t,{Zo:()=>d,kt:()=>f});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),s=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},d=function(e){var t=s(e.components);return n.createElement(c.Provider,{value:t},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),u=s(r),m=o,f=u["".concat(c,".").concat(m)]||u[m]||p[m]||a;return r?n.createElement(f,i(i({ref:t},d),{},{components:r})):n.createElement(f,i({ref:t},d))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=m;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[u]="string"==typeof e?e:o,i[1]=l;for(var s=2;s{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>p,frontMatter:()=>a,metadata:()=>l,toc:()=>s});var n=r(7462),o=(r(7294),r(3905));const a={title:"Cloud Watch Logs"},i=void 0,l={unversionedId:"events/cloud-watch-logs",id:"events/cloud-watch-logs",title:"Cloud Watch Logs",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/events/cloud-watch-logs.md",sourceDirName:"events",slug:"/events/cloud-watch-logs",permalink:"/docs/events/cloud-watch-logs",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/events/cloud-watch-logs.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",frontMatter:{title:"Cloud Watch Logs"},sidebar:"tutorialSidebar",previous:{title:"CloudTrail",permalink:"/docs/events/cloud-trail"},next:{title:"Code Commit",permalink:"/docs/events/code-commit"}},c={},s=[{value:"AWS Documentation",id:"aws-documentation",level:2},{value:"Example",id:"example",level:2}],d={toc:s},u="wrapper";function p(e){let{components:t,...r}=e;return(0,o.kt)(u,(0,n.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("admonition",{type:"caution"},(0,o.kt)("p",{parentName:"admonition"},"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.")),(0,o.kt)("h2",{id:"aws-documentation"},"AWS Documentation"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://docs.aws.amazon.com/lambda/latest/dg/services-cloudwatchlogs.html"},"Using Lambda with CloudWatch Logs"))),(0,o.kt)("h2",{id:"example"},"Example"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\nimport eventNormalizerMiddleware from '@middy/event-normalizer'\n\nexport const handler = middy()\n .use(eventNormalizerMiddleware())\n .handler((event, context, {signal}) => {\n // ...\n })\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/211396ae.75d36224.js b/assets/js/211396ae.75d36224.js new file mode 100644 index 000000000..dc5238176 --- /dev/null +++ b/assets/js/211396ae.75d36224.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[3616],{394:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>r,contentTitle:()=>a,default:()=>u,frontMatter:()=>s,metadata:()=>d,toc:()=>c});var o=n(5893),i=n(1151);const s={title:"Cloud Watch Logs"},a=void 0,d={id:"events/cloud-watch-logs",title:"Cloud Watch Logs",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/events/cloud-watch-logs.md",sourceDirName:"events",slug:"/events/cloud-watch-logs",permalink:"/docs/events/cloud-watch-logs",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/events/cloud-watch-logs.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",frontMatter:{title:"Cloud Watch Logs"},sidebar:"tutorialSidebar",previous:{title:"CloudTrail",permalink:"/docs/events/cloud-trail"},next:{title:"Code Commit",permalink:"/docs/events/code-commit"}},r={},c=[{value:"AWS Documentation",id:"aws-documentation",level:2},{value:"Example",id:"example",level:2}];function l(e){const t={a:"a",admonition:"admonition",code:"code",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,i.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.admonition,{type:"caution",children:(0,o.jsx)(t.p,{children:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub."})}),"\n",(0,o.jsx)(t.h2,{id:"aws-documentation",children:"AWS Documentation"}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsx)(t.li,{children:(0,o.jsx)(t.a,{href:"https://docs.aws.amazon.com/lambda/latest/dg/services-cloudwatchlogs.html",children:"Using Lambda with CloudWatch Logs"})}),"\n"]}),"\n",(0,o.jsx)(t.h2,{id:"example",children:"Example"}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-javascript",children:"import middy from '@middy/core'\nimport eventNormalizerMiddleware from '@middy/event-normalizer'\n\nexport const handler = middy()\n .use(eventNormalizerMiddleware())\n .handler((event, context, {signal}) => {\n // ...\n })\n"})})]})}function u(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(l,{...e})}):l(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>d,a:()=>a});var o=n(7294);const i={},s=o.createContext(i);function a(e){const t=o.useContext(s);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function d(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),o.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/24a252b9.22d35c69.js b/assets/js/24a252b9.22d35c69.js deleted file mode 100644 index 4d82b3db9..000000000 --- a/assets/js/24a252b9.22d35c69.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[1098],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>g});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var i=r.createContext({}),s=function(e){var t=r.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},c=function(e){var t=s(e.components);return r.createElement(i.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,l=e.originalType,i=e.parentName,c=u(e,["components","mdxType","originalType","parentName"]),p=s(n),m=a,g=p["".concat(i,".").concat(m)]||p[m]||d[m]||l;return n?r.createElement(g,o(o({ref:t},c),{},{components:n})):r.createElement(g,o({ref:t},c))}));function g(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=n.length,o=new Array(l);o[0]=m;var u={};for(var i in t)hasOwnProperty.call(t,i)&&(u[i]=t[i]);u.originalType=e,u[p]="string"==typeof e?e:a,o[1]=u;for(var s=2;s{n.d(t,{Z:()=>o});var r=n(7294),a=n(6010);const l={tabItem:"tabItem_Ymn6"};function o(e){let{children:t,hidden:n,className:o}=e;return r.createElement("div",{role:"tabpanel",className:(0,a.Z)(l.tabItem,o),hidden:n},t)}},4866:(e,t,n)=>{n.d(t,{Z:()=>w});var r=n(7462),a=n(7294),l=n(6010),o=n(2466),u=n(6550),i=n(1980),s=n(7392),c=n(12);function p(e){return function(e){return a.Children.map(e,(e=>{if(!e||(0,a.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:r,default:a}}=e;return{value:t,label:n,attributes:r,default:a}}))}function d(e){const{values:t,children:n}=e;return(0,a.useMemo)((()=>{const e=t??p(n);return function(e){const t=(0,s.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[t,n])}function m(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function g(e){let{queryString:t=!1,groupId:n}=e;const r=(0,u.k6)(),l=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,i._X)(l),(0,a.useCallback)((e=>{if(!l)return;const t=new URLSearchParams(r.location.search);t.set(l,e),r.replace({...r.location,search:t.toString()})}),[l,r])]}function f(e){const{defaultValue:t,queryString:n=!1,groupId:r}=e,l=d(e),[o,u]=(0,a.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the component requires at least one children component");if(t){if(!m({value:t,tabValues:n}))throw new Error(`Docusaurus error: The has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const r=n.find((e=>e.default))??n[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:t,tabValues:l}))),[i,s]=g({queryString:n,groupId:r}),[p,f]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[r,l]=(0,c.Nk)(n);return[r,(0,a.useCallback)((e=>{n&&l.set(e)}),[n,l])]}({groupId:r}),b=(()=>{const e=i??p;return m({value:e,tabValues:l})?e:null})();(0,a.useLayoutEffect)((()=>{b&&u(b)}),[b]);return{selectedValue:o,selectValue:(0,a.useCallback)((e=>{if(!m({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);u(e),s(e),f(e)}),[s,f,l]),tabValues:l}}var b=n(2389);const h={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};function y(e){let{className:t,block:n,selectedValue:u,selectValue:i,tabValues:s}=e;const c=[],{blockElementScrollPositionUntilNextRender:p}=(0,o.o5)(),d=e=>{const t=e.currentTarget,n=c.indexOf(t),r=s[n].value;r!==u&&(p(t),i(r))},m=e=>{let t=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{const n=c.indexOf(e.currentTarget)+1;t=c[n]??c[0];break}case"ArrowLeft":{const n=c.indexOf(e.currentTarget)-1;t=c[n]??c[c.length-1];break}}t?.focus()};return a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":n},t)},s.map((e=>{let{value:t,label:n,attributes:o}=e;return a.createElement("li",(0,r.Z)({role:"tab",tabIndex:u===t?0:-1,"aria-selected":u===t,key:t,ref:e=>c.push(e),onKeyDown:m,onClick:d},o,{className:(0,l.Z)("tabs__item",h.tabItem,o?.className,{"tabs__item--active":u===t})}),n??t)})))}function v(e){let{lazy:t,children:n,selectedValue:r}=e;const l=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=l.find((e=>e.props.value===r));return e?(0,a.cloneElement)(e,{className:"margin-top--md"}):null}return a.createElement("div",{className:"margin-top--md"},l.map(((e,t)=>(0,a.cloneElement)(e,{key:t,hidden:e.props.value!==r}))))}function k(e){const t=f(e);return a.createElement("div",{className:(0,l.Z)("tabs-container",h.tabList)},a.createElement(y,(0,r.Z)({},e,t)),a.createElement(v,(0,r.Z)({},e,t)))}function w(e){const t=(0,b.Z)();return a.createElement(k,(0,r.Z)({key:String(t)},e))}},5796:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>g,frontMatter:()=>u,metadata:()=>s,toc:()=>p});var r=n(7462),a=(n(7294),n(3905)),l=n(4866),o=n(5162);const u={title:"input-output-logger"},i=void 0,s={unversionedId:"middlewares/input-output-logger",id:"middlewares/input-output-logger",title:"input-output-logger",description:"Logs the incoming request (input) and the response (output).",source:"@site/docs/middlewares/input-output-logger.md",sourceDirName:"middlewares",slug:"/middlewares/input-output-logger",permalink:"/docs/middlewares/input-output-logger",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/middlewares/input-output-logger.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",frontMatter:{title:"input-output-logger"},sidebar:"tutorialSidebar",previous:{title:"http-urlencode-path-parser",permalink:"/docs/middlewares/http-urlencode-path-parser"},next:{title:"rds-signer",permalink:"/docs/middlewares/rds-signer"}},c={},p=[{value:"Install",id:"install",level:2},{value:"Options",id:"options",level:2},{value:"Sample usage",id:"sample-usage",level:2}],d={toc:p},m="wrapper";function g(e){let{components:t,...n}=e;return(0,a.kt)(m,(0,r.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"Logs the incoming request (input) and the response (output)."),(0,a.kt)("p",null,"By default, the logging operate by using the ",(0,a.kt)("inlineCode",{parentName:"p"},"console.log")," function. You can pass as a parameter a custom logger with additional logic if you need. It can be useful if you want to process the log by doing a http call or anything else."),(0,a.kt)("h2",{id:"install"},"Install"),(0,a.kt)("p",null,"To install this middleware you can use NPM:"),(0,a.kt)(l.Z,{groupId:"npm2yarn",mdxType:"Tabs"},(0,a.kt)(o.Z,{value:"npm",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-bash"},"npm install --save @middy/input-output-logger\n"))),(0,a.kt)(o.Z,{value:"yarn",label:"Yarn",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-bash"},"yarn add @middy/input-output-logger\n"))),(0,a.kt)(o.Z,{value:"pnpm",label:"pnpm",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-bash"},"pnpm add @middy/input-output-logger\n")))),(0,a.kt)("h2",{id:"options"},"Options"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"logger")," function (default ",(0,a.kt)("inlineCode",{parentName:"li"},"console.log"),"): logging function that accepts an object"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"awsContext")," boolean (default ",(0,a.kt)("inlineCode",{parentName:"li"},"false"),"): Include ",(0,a.kt)("a",{parentName:"li",href:"https://docs.aws.amazon.com/lambda/latest/dg/nodejs-context.html"},"AWS Lambda context object")," to the logger"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"omitPaths")," string[] (default ",(0,a.kt)("inlineCode",{parentName:"li"},"[]"),"): property accepts an array of paths that will be used to remove particular fields import the logged objects. This could serve as a simple way to redact sensitive data from logs (default []). Examples: ",(0,a.kt)("inlineCode",{parentName:"li"},"name"),", ",(0,a.kt)("inlineCode",{parentName:"li"},"user.name"),", ",(0,a.kt)("inlineCode",{parentName:"li"},"users.[].name")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"mask")," string: String to replace omitted values with. Example: ",(0,a.kt)("inlineCode",{parentName:"li"},"***omitted***")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"replacer")," function: stringify ",(0,a.kt)("inlineCode",{parentName:"li"},"replacer")," function")),(0,a.kt)("h2",{id:"sample-usage"},"Sample usage"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\nimport inputOutputLogger from '@middy/input-output-logger'\n\nconst handler = middy((event, context) => {\n const response = {\n statusCode: 200,\n headers: {},\n body: JSON.stringify({ message: 'hello world' })\n }\n return response\n})\n\nhandler.use(inputOutputLogger())\n")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\nimport inputOutputLogger from '@middy/input-output-logger'\nimport pino from 'pino'\n\nconst logger = pino()\n\nconst handler = middy((event, context) => {\n // ...\n return response\n})\n\nhandler.use(\n inputOutputLogger({\n logger: (request) => {\n const child = logger.child(request.context)\n child.info(request.event ?? request.response)\n },\n awsContext: true\n })\n)\n")))}g.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/24a252b9.8e7b66d3.js b/assets/js/24a252b9.8e7b66d3.js new file mode 100644 index 000000000..478a313bb --- /dev/null +++ b/assets/js/24a252b9.8e7b66d3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[1098],{8500:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>h,frontMatter:()=>o,metadata:()=>u,toc:()=>d});var r=n(5893),a=n(1151),l=n(4866),s=n(5162);const o={title:"input-output-logger"},i=void 0,u={id:"middlewares/input-output-logger",title:"input-output-logger",description:"Logs the incoming request (input) and the response (output).",source:"@site/docs/middlewares/input-output-logger.md",sourceDirName:"middlewares",slug:"/middlewares/input-output-logger",permalink:"/docs/middlewares/input-output-logger",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/middlewares/input-output-logger.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",frontMatter:{title:"input-output-logger"},sidebar:"tutorialSidebar",previous:{title:"http-urlencode-path-parser",permalink:"/docs/middlewares/http-urlencode-path-parser"},next:{title:"rds-signer",permalink:"/docs/middlewares/rds-signer"}},c={},d=[{value:"Install",id:"install",level:2},{value:"Options",id:"options",level:2},{value:"Sample usage",id:"sample-usage",level:2}];function p(e){const t={a:"a",code:"code",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,a.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.p,{children:"Logs the incoming request (input) and the response (output)."}),"\n",(0,r.jsxs)(t.p,{children:["By default, the logging operate by using the ",(0,r.jsx)(t.code,{children:"console.log"})," function. You can pass as a parameter a custom logger with additional logic if you need. It can be useful if you want to process the log by doing a http call or anything else."]}),"\n",(0,r.jsx)(t.h2,{id:"install",children:"Install"}),"\n",(0,r.jsx)(t.p,{children:"To install this middleware you can use NPM:"}),"\n",(0,r.jsxs)(l.Z,{groupId:"npm2yarn",children:[(0,r.jsx)(s.Z,{value:"npm",children:(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-bash",children:"npm install --save @middy/input-output-logger\n"})})}),(0,r.jsx)(s.Z,{value:"yarn",label:"Yarn",children:(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-bash",children:"yarn add @middy/input-output-logger\n"})})}),(0,r.jsx)(s.Z,{value:"pnpm",label:"pnpm",children:(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-bash",children:"pnpm add @middy/input-output-logger\n"})})})]}),"\n",(0,r.jsx)(t.h2,{id:"options",children:"Options"}),"\n",(0,r.jsxs)(t.ul,{children:["\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:"logger"})," function (default ",(0,r.jsx)(t.code,{children:"console.log"}),"): logging function that accepts an object"]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:"awsContext"})," boolean (default ",(0,r.jsx)(t.code,{children:"false"}),"): Include ",(0,r.jsx)(t.a,{href:"https://docs.aws.amazon.com/lambda/latest/dg/nodejs-context.html",children:"AWS Lambda context object"})," to the logger"]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:"omitPaths"})," string[] (default ",(0,r.jsx)(t.code,{children:"[]"}),"): property accepts an array of paths that will be used to remove particular fields import the logged objects. This could serve as a simple way to redact sensitive data from logs (default []). Examples: ",(0,r.jsx)(t.code,{children:"name"}),", ",(0,r.jsx)(t.code,{children:"user.name"}),", ",(0,r.jsx)(t.code,{children:"users.[].name"})]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:"mask"})," string: String to replace omitted values with. Example: ",(0,r.jsx)(t.code,{children:"***omitted***"})]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:"replacer"})," function: stringify ",(0,r.jsx)(t.code,{children:"replacer"})," function"]}),"\n"]}),"\n",(0,r.jsx)(t.h2,{id:"sample-usage",children:"Sample usage"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-javascript",children:"import middy from '@middy/core'\nimport inputOutputLogger from '@middy/input-output-logger'\n\nconst lambdaHandler = (event, context) => {\n const response = {\n statusCode: 200,\n headers: {},\n body: JSON.stringify({ message: 'hello world' })\n }\n return response\n}\n\nexport const handler = middy().use(inputOutputLogger()).handler(lambdaHandler)\n"})}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-javascript",children:"import middy from '@middy/core'\nimport inputOutputLogger from '@middy/input-output-logger'\nimport pino from 'pino'\n\nconst logger = pino()\n\nconst lambdaHandler = (event, context) => {\n // ...\n return response\n}\n\nexport const handler = middy()\n .use(\n inputOutputLogger({\n logger: (request) => {\n const child = logger.child(request.context)\n child.info(request.event ?? request.response)\n },\n awsContext: true\n })\n )\n .handler(lambdaHandler)\n"})})]})}function h(e={}){const{wrapper:t}={...(0,a.a)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(p,{...e})}):p(e)}},5162:(e,t,n)=>{n.d(t,{Z:()=>s});n(7294);var r=n(6010);const a={tabItem:"tabItem_Ymn6"};var l=n(5893);function s(e){let{children:t,hidden:n,className:s}=e;return(0,l.jsx)("div",{role:"tabpanel",className:(0,r.Z)(a.tabItem,s),hidden:n,children:t})}},4866:(e,t,n)=>{n.d(t,{Z:()=>w});var r=n(7294),a=n(6010),l=n(2466),s=n(6550),o=n(469),i=n(1980),u=n(7392),c=n(12);function d(e){return r.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function p(e){const{values:t,children:n}=e;return(0,r.useMemo)((()=>{const e=t??function(e){return d(e).map((e=>{let{props:{value:t,label:n,attributes:r,default:a}}=e;return{value:t,label:n,attributes:r,default:a}}))}(n);return function(e){const t=(0,u.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[t,n])}function h(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function m(e){let{queryString:t=!1,groupId:n}=e;const a=(0,s.k6)(),l=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,i._X)(l),(0,r.useCallback)((e=>{if(!l)return;const t=new URLSearchParams(a.location.search);t.set(l,e),a.replace({...a.location,search:t.toString()})}),[l,a])]}function g(e){const{defaultValue:t,queryString:n=!1,groupId:a}=e,l=p(e),[s,i]=(0,r.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the component requires at least one children component");if(t){if(!h({value:t,tabValues:n}))throw new Error(`Docusaurus error: The has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const r=n.find((e=>e.default))??n[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:t,tabValues:l}))),[u,d]=m({queryString:n,groupId:a}),[g,f]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[a,l]=(0,c.Nk)(n);return[a,(0,r.useCallback)((e=>{n&&l.set(e)}),[n,l])]}({groupId:a}),b=(()=>{const e=u??g;return h({value:e,tabValues:l})?e:null})();(0,o.Z)((()=>{b&&i(b)}),[b]);return{selectedValue:s,selectValue:(0,r.useCallback)((e=>{if(!h({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);i(e),d(e),f(e)}),[d,f,l]),tabValues:l}}var f=n(2389);const b={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var x=n(5893);function v(e){let{className:t,block:n,selectedValue:r,selectValue:s,tabValues:o}=e;const i=[],{blockElementScrollPositionUntilNextRender:u}=(0,l.o5)(),c=e=>{const t=e.currentTarget,n=i.indexOf(t),a=o[n].value;a!==r&&(u(t),s(a))},d=e=>{let t=null;switch(e.key){case"Enter":c(e);break;case"ArrowRight":{const n=i.indexOf(e.currentTarget)+1;t=i[n]??i[0];break}case"ArrowLeft":{const n=i.indexOf(e.currentTarget)-1;t=i[n]??i[i.length-1];break}}t?.focus()};return(0,x.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,a.Z)("tabs",{"tabs--block":n},t),children:o.map((e=>{let{value:t,label:n,attributes:l}=e;return(0,x.jsx)("li",{role:"tab",tabIndex:r===t?0:-1,"aria-selected":r===t,ref:e=>i.push(e),onKeyDown:d,onClick:c,...l,className:(0,a.Z)("tabs__item",b.tabItem,l?.className,{"tabs__item--active":r===t}),children:n??t},t)}))})}function j(e){let{lazy:t,children:n,selectedValue:a}=e;const l=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=l.find((e=>e.props.value===a));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return(0,x.jsx)("div",{className:"margin-top--md",children:l.map(((e,t)=>(0,r.cloneElement)(e,{key:t,hidden:e.props.value!==a})))})}function y(e){const t=g(e);return(0,x.jsxs)("div",{className:(0,a.Z)("tabs-container",b.tabList),children:[(0,x.jsx)(v,{...e,...t}),(0,x.jsx)(j,{...e,...t})]})}function w(e){const t=(0,f.Z)();return(0,x.jsx)(y,{...e,children:d(e.children)},String(t))}},1151:(e,t,n)=>{n.d(t,{Z:()=>o,a:()=>s});var r=n(7294);const a={},l=r.createContext(a);function s(e){const t=r.useContext(l);return r.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:s(e.components),r.createElement(l.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/28b74e92.7ddaf793.js b/assets/js/28b74e92.7ddaf793.js deleted file mode 100644 index 2898dc7cc..000000000 --- a/assets/js/28b74e92.7ddaf793.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[3839],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>f});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),s=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=s(e.components);return n.createElement(c.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),d=s(r),m=o,f=d["".concat(c,".").concat(m)]||d[m]||p[m]||a;return r?n.createElement(f,i(i({ref:t},u),{},{components:r})):n.createElement(f,i({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=m;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[d]="string"==typeof e?e:o,i[1]=l;for(var s=2;s{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>p,frontMatter:()=>a,metadata:()=>l,toc:()=>s});var n=r(7462),o=(r(7294),r(3905));const a={title:"CloudTrail"},i=void 0,l={unversionedId:"events/cloud-trail",id:"events/cloud-trail",title:"CloudTrail",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/events/cloud-trail.md",sourceDirName:"events",slug:"/events/cloud-trail",permalink:"/docs/events/cloud-trail",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/events/cloud-trail.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",frontMatter:{title:"CloudTrail"},sidebar:"tutorialSidebar",previous:{title:"CloudFront Lambda@Edge",permalink:"/docs/events/cloud-front"},next:{title:"Cloud Watch Logs",permalink:"/docs/events/cloud-watch-logs"}},c={},s=[{value:"AWS Documentation",id:"aws-documentation",level:2},{value:"Example",id:"example",level:2}],u={toc:s},d="wrapper";function p(e){let{components:t,...r}=e;return(0,o.kt)(d,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("admonition",{type:"caution"},(0,o.kt)("p",{parentName:"admonition"},"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.")),(0,o.kt)("h2",{id:"aws-documentation"},"AWS Documentation"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://docs.aws.amazon.com/lambda/latest/dg/with-cloudtrail.html"},"Using AWS Lambda with AWS CloudTrail"))),(0,o.kt)("h2",{id:"example"},"Example"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\n\nexport const handler = middy()\n .handler((event, context, {signal}) => {\n // ...\n })\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/28b74e92.a703bf53.js b/assets/js/28b74e92.a703bf53.js new file mode 100644 index 000000000..6840dc40e --- /dev/null +++ b/assets/js/28b74e92.a703bf53.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[3839],{7978:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>s,default:()=>u,frontMatter:()=>a,metadata:()=>r,toc:()=>l});var o=n(5893),i=n(1151);const a={title:"CloudTrail"},s=void 0,r={id:"events/cloud-trail",title:"CloudTrail",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/events/cloud-trail.md",sourceDirName:"events",slug:"/events/cloud-trail",permalink:"/docs/events/cloud-trail",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/events/cloud-trail.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",frontMatter:{title:"CloudTrail"},sidebar:"tutorialSidebar",previous:{title:"CloudFront Lambda@Edge",permalink:"/docs/events/cloud-front"},next:{title:"Cloud Watch Logs",permalink:"/docs/events/cloud-watch-logs"}},d={},l=[{value:"AWS Documentation",id:"aws-documentation",level:2},{value:"Example",id:"example",level:2}];function c(e){const t={a:"a",admonition:"admonition",code:"code",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,i.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.admonition,{type:"caution",children:(0,o.jsx)(t.p,{children:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub."})}),"\n",(0,o.jsx)(t.h2,{id:"aws-documentation",children:"AWS Documentation"}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsx)(t.li,{children:(0,o.jsx)(t.a,{href:"https://docs.aws.amazon.com/lambda/latest/dg/with-cloudtrail.html",children:"Using AWS Lambda with AWS CloudTrail"})}),"\n"]}),"\n",(0,o.jsx)(t.h2,{id:"example",children:"Example"}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-javascript",children:"import middy from '@middy/core'\n\nexport const handler = middy()\n .handler((event, context, {signal}) => {\n // ...\n })\n"})})]})}function u(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(c,{...e})}):c(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>r,a:()=>s});var o=n(7294);const i={},a=o.createContext(i);function s(e){const t=o.useContext(a);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:s(e.components),o.createElement(a.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/2b234cfe.881f7894.js b/assets/js/2b234cfe.881f7894.js new file mode 100644 index 000000000..ec7e2715b --- /dev/null +++ b/assets/js/2b234cfe.881f7894.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[9158],{1910:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>m,frontMatter:()=>r,metadata:()=>o,toc:()=>d});var s=n(5893),a=n(1151);const r={title:"Secrets Manager"},i=void 0,o={id:"events/secrets-manager",title:"Secrets Manager",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/events/secrets-manager.md",sourceDirName:"events",slug:"/events/secrets-manager",permalink:"/docs/events/secrets-manager",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/events/secrets-manager.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",frontMatter:{title:"Secrets Manager"},sidebar:"tutorialSidebar",previous:{title:"S3",permalink:"/docs/events/s3"},next:{title:"SES",permalink:"/docs/events/ses"}},c={},d=[{value:"AWS Documentation",id:"aws-documentation",level:2},{value:"Example",id:"example",level:2}];function l(e){const t={a:"a",admonition:"admonition",code:"code",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,a.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.admonition,{type:"caution",children:(0,s.jsx)(t.p,{children:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub."})}),"\n",(0,s.jsx)(t.h2,{id:"aws-documentation",children:"AWS Documentation"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://docs.aws.amazon.com/lambda/latest/dg/with-secrets-manager.html",children:"Using AWS Lambda with Secrets Manager"})}),"\n"]}),"\n",(0,s.jsx)(t.h2,{id:"example",children:"Example"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-javascript",children:"import middy from '@middy/core'\n\nexport const handler = middy()\n .handler((event, context, {signal}) => {\n // ...\n })\n"})})]})}function m(e={}){const{wrapper:t}={...(0,a.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(l,{...e})}):l(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>o,a:()=>i});var s=n(7294);const a={},r=s.createContext(a);function i(e){const t=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:i(e.components),s.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/2b234cfe.c2d39616.js b/assets/js/2b234cfe.c2d39616.js deleted file mode 100644 index c5288cb29..000000000 --- a/assets/js/2b234cfe.c2d39616.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[9158],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>f});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),l=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=l(e.components);return n.createElement(c.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),m=l(r),d=a,f=m["".concat(c,".").concat(d)]||m[d]||u[d]||o;return r?n.createElement(f,i(i({ref:t},p),{},{components:r})):n.createElement(f,i({ref:t},p))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=d;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s[m]="string"==typeof e?e:a,i[1]=s;for(var l=2;l{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>s,toc:()=>l});var n=r(7462),a=(r(7294),r(3905));const o={title:"Secrets Manager"},i=void 0,s={unversionedId:"events/secrets-manager",id:"events/secrets-manager",title:"Secrets Manager",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/events/secrets-manager.md",sourceDirName:"events",slug:"/events/secrets-manager",permalink:"/docs/events/secrets-manager",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/events/secrets-manager.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",frontMatter:{title:"Secrets Manager"},sidebar:"tutorialSidebar",previous:{title:"S3",permalink:"/docs/events/s3"},next:{title:"SES",permalink:"/docs/events/ses"}},c={},l=[{value:"AWS Documentation",id:"aws-documentation",level:2},{value:"Example",id:"example",level:2}],p={toc:l},m="wrapper";function u(e){let{components:t,...r}=e;return(0,a.kt)(m,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.")),(0,a.kt)("h2",{id:"aws-documentation"},"AWS Documentation"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://docs.aws.amazon.com/lambda/latest/dg/with-secrets-manager.html"},"Using AWS Lambda with Secrets Manager"))),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\n\nexport const handler = middy()\n .handler((event, context, {signal}) => {\n // ...\n })\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2e6cdb22.6a9600b9.js b/assets/js/2e6cdb22.6a9600b9.js deleted file mode 100644 index 7d0d6b1b2..000000000 --- a/assets/js/2e6cdb22.6a9600b9.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[5774],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>f});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var o=a.createContext({}),u=function(e){var t=a.useContext(o),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=u(e.components);return a.createElement(o.Provider,{value:t},e.children)},c="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,l=e.originalType,o=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),c=u(n),m=r,f=c["".concat(o,".").concat(m)]||c[m]||p[m]||l;return n?a.createElement(f,i(i({ref:t},d),{},{components:n})):a.createElement(f,i({ref:t},d))}));function f(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=n.length,i=new Array(l);i[0]=m;var s={};for(var o in t)hasOwnProperty.call(t,o)&&(s[o]=t[o]);s.originalType=e,s[c]="string"==typeof e?e:r,i[1]=s;for(var u=2;u{n.d(t,{Z:()=>i});var a=n(7294),r=n(6010);const l={tabItem:"tabItem_Ymn6"};function i(e){let{children:t,hidden:n,className:i}=e;return a.createElement("div",{role:"tabpanel",className:(0,r.Z)(l.tabItem,i),hidden:n},t)}},4866:(e,t,n)=>{n.d(t,{Z:()=>h});var a=n(7462),r=n(7294),l=n(6010),i=n(2466),s=n(6550),o=n(1980),u=n(7392),d=n(12);function c(e){return function(e){return r.Children.map(e,(e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:a,default:r}}=e;return{value:t,label:n,attributes:a,default:r}}))}function p(e){const{values:t,children:n}=e;return(0,r.useMemo)((()=>{const e=t??c(n);return function(e){const t=(0,u.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[t,n])}function m(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:n}=e;const a=(0,s.k6)(),l=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,o._X)(l),(0,r.useCallback)((e=>{if(!l)return;const t=new URLSearchParams(a.location.search);t.set(l,e),a.replace({...a.location,search:t.toString()})}),[l,a])]}function b(e){const{defaultValue:t,queryString:n=!1,groupId:a}=e,l=p(e),[i,s]=(0,r.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the component requires at least one children component");if(t){if(!m({value:t,tabValues:n}))throw new Error(`Docusaurus error: The has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const a=n.find((e=>e.default))??n[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:t,tabValues:l}))),[o,u]=f({queryString:n,groupId:a}),[c,b]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[a,l]=(0,d.Nk)(n);return[a,(0,r.useCallback)((e=>{n&&l.set(e)}),[n,l])]}({groupId:a}),y=(()=>{const e=o??c;return m({value:e,tabValues:l})?e:null})();(0,r.useLayoutEffect)((()=>{y&&s(y)}),[y]);return{selectedValue:i,selectValue:(0,r.useCallback)((e=>{if(!m({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);s(e),u(e),b(e)}),[u,b,l]),tabValues:l}}var y=n(2389);const g={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};function w(e){let{className:t,block:n,selectedValue:s,selectValue:o,tabValues:u}=e;const d=[],{blockElementScrollPositionUntilNextRender:c}=(0,i.o5)(),p=e=>{const t=e.currentTarget,n=d.indexOf(t),a=u[n].value;a!==s&&(c(t),o(a))},m=e=>{let t=null;switch(e.key){case"Enter":p(e);break;case"ArrowRight":{const n=d.indexOf(e.currentTarget)+1;t=d[n]??d[0];break}case"ArrowLeft":{const n=d.indexOf(e.currentTarget)-1;t=d[n]??d[d.length-1];break}}t?.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":n},t)},u.map((e=>{let{value:t,label:n,attributes:i}=e;return r.createElement("li",(0,a.Z)({role:"tab",tabIndex:s===t?0:-1,"aria-selected":s===t,key:t,ref:e=>d.push(e),onKeyDown:m,onClick:p},i,{className:(0,l.Z)("tabs__item",g.tabItem,i?.className,{"tabs__item--active":s===t})}),n??t)})))}function v(e){let{lazy:t,children:n,selectedValue:a}=e;const l=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=l.find((e=>e.props.value===a));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},l.map(((e,t)=>(0,r.cloneElement)(e,{key:t,hidden:e.props.value!==a}))))}function k(e){const t=b(e);return r.createElement("div",{className:(0,l.Z)("tabs-container",g.tabList)},r.createElement(w,(0,a.Z)({},e,t)),r.createElement(v,(0,a.Z)({},e,t)))}function h(e){const t=(0,y.Z)();return r.createElement(k,(0,a.Z)({key:String(t)},e))}},4087:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>o,default:()=>f,frontMatter:()=>s,metadata:()=>u,toc:()=>c});var a=n(7462),r=(n(7294),n(3905)),l=n(4866),i=n(5162);const s={title:"ws-response"},o=void 0,u={unversionedId:"middlewares/ws-response",id:"middlewares/ws-response",title:"ws-response",description:"Post message to WebSocket connection.",source:"@site/docs/middlewares/ws-response.md",sourceDirName:"middlewares",slug:"/middlewares/ws-response",permalink:"/docs/middlewares/ws-response",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/middlewares/ws-response.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",frontMatter:{title:"ws-response"},sidebar:"tutorialSidebar",previous:{title:"ws-json-body-parser",permalink:"/docs/middlewares/ws-json-body-parser"},next:{title:"Writing Middlewares",permalink:"/docs/category/writing-middlewares"}},d={},c=[{value:"Install",id:"install",level:2},{value:"Options",id:"options",level:2},{value:"Sample usage",id:"sample-usage",level:2},{value:"API Gateway",id:"api-gateway",level:3},{value:"General",id:"general",level:3},{value:"Bundling",id:"bundling",level:2}],p={toc:c},m="wrapper";function f(e){let{components:t,...n}=e;return(0,r.kt)(m,(0,a.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"Post message to WebSocket connection."),(0,r.kt)("h2",{id:"install"},"Install"),(0,r.kt)("p",null,"To install this middleware you can use NPM:"),(0,r.kt)(l.Z,{groupId:"npm2yarn",mdxType:"Tabs"},(0,r.kt)(i.Z,{value:"npm",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"npm install --save @middy/ws-response\nnpm install --save-dev @aws-sdk/client-apigatewaymanagementapi\n"))),(0,r.kt)(i.Z,{value:"yarn",label:"Yarn",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"yarn add @middy/ws-response\nyarn add --dev @aws-sdk/client-apigatewaymanagementapi\n"))),(0,r.kt)(i.Z,{value:"pnpm",label:"pnpm",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"pnpm add @middy/ws-response\npnpm add --save-dev @aws-sdk/client-apigatewaymanagementapi\n")))),(0,r.kt)("h2",{id:"options"},"Options"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"AwsClient")," (object) (default ",(0,r.kt)("inlineCode",{parentName:"li"},"ApiGatewayManagementApiClient"),"): ApiGatewayManagementApi class constructor (i.e. that has been instrumented with AWS XRay). Must be from ",(0,r.kt)("inlineCode",{parentName:"li"},"@aws-sdk/client-apigatewaymanagementapi"),"."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"awsClientOptions")," (object) (default ",(0,r.kt)("inlineCode",{parentName:"li"},"undefined"),"): Options to pass to ApiGatewayManagementApiClient class constructor."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"awsClientAssumeRole")," (string) (default ",(0,r.kt)("inlineCode",{parentName:"li"},"undefined"),"): Internal key where secrets are stored. See ",(0,r.kt)("a",{parentName:"li",href:"/docs/middlewares/sts"},"@middy/sts")," on to set this."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"awsClientCapture")," (function) (default ",(0,r.kt)("inlineCode",{parentName:"li"},"undefined"),"): Enable XRay by passing ",(0,r.kt)("inlineCode",{parentName:"li"},"captureAWSv3Client")," from ",(0,r.kt)("inlineCode",{parentName:"li"},"aws-xray-sdk")," in."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"disablePrefetch")," (boolean) (default ",(0,r.kt)("inlineCode",{parentName:"li"},"false"),"): On cold start requests will trigger early if they can. Setting ",(0,r.kt)("inlineCode",{parentName:"li"},"awsClientAssumeRole")," disables prefetch.")),(0,r.kt)("p",null,"NOTES:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Lambda is required to have IAM permission for ",(0,r.kt)("inlineCode",{parentName:"li"},"execute-api:ManageConnections")),(0,r.kt)("li",{parentName:"ul"},"If ",(0,r.kt)("inlineCode",{parentName:"li"},"awsClientOptions.endpoint")," is not set it will be set using ",(0,r.kt)("inlineCode",{parentName:"li"},"event.requestContext.{domainName,stage}")),(0,r.kt)("li",{parentName:"ul"},"If response does not contain ",(0,r.kt)("inlineCode",{parentName:"li"},"ConnectId"),", it will be set from ",(0,r.kt)("inlineCode",{parentName:"li"},"event.requestContext.connectionId"))),(0,r.kt)("h2",{id:"sample-usage"},"Sample usage"),(0,r.kt)("h3",{id:"api-gateway"},"API Gateway"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\nimport wsResponse from '@middy/ws-response'\n\nexport const handler = middy((event, context) => {\n return 'message'\n})\n\nhandler.use(wsResponse())\n")),(0,r.kt)("h3",{id:"general"},"General"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\nimport wsResponse from '@middy/ws-response'\n\nexport const handler = middy((event, context) => {\n return {\n ConnectionId: '...',\n Data: 'message'\n }\n})\n\nhandler.use(\n wsResponse({\n awsClientOptions: {\n endpoint: '...'\n }\n })\n)\n")),(0,r.kt)("h2",{id:"bundling"},"Bundling"),(0,r.kt)("p",null,"To exclude ",(0,r.kt)("inlineCode",{parentName:"p"},"@aws-sdk")," add ",(0,r.kt)("inlineCode",{parentName:"p"},"@aws-sdk/client-apigatewaymanagementapi")," to the exclude list."))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2e6cdb22.ba5d7686.js b/assets/js/2e6cdb22.ba5d7686.js new file mode 100644 index 000000000..f2dd2c816 --- /dev/null +++ b/assets/js/2e6cdb22.ba5d7686.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[5774],{4919:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>o,default:()=>m,frontMatter:()=>i,metadata:()=>d,toc:()=>u});var s=t(5893),a=t(1151),r=t(4866),l=t(5162);const i={title:"ws-response"},o=void 0,d={id:"middlewares/ws-response",title:"ws-response",description:"Post message to WebSocket connection.",source:"@site/docs/middlewares/ws-response.md",sourceDirName:"middlewares",slug:"/middlewares/ws-response",permalink:"/docs/middlewares/ws-response",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/middlewares/ws-response.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",frontMatter:{title:"ws-response"},sidebar:"tutorialSidebar",previous:{title:"ws-json-body-parser",permalink:"/docs/middlewares/ws-json-body-parser"},next:{title:"Writing Middlewares",permalink:"/docs/category/writing-middlewares"}},c={},u=[{value:"Install",id:"install",level:2},{value:"Options",id:"options",level:2},{value:"Sample usage",id:"sample-usage",level:2},{value:"API Gateway",id:"api-gateway",level:3},{value:"General",id:"general",level:3},{value:"Bundling",id:"bundling",level:2}];function p(e){const n={a:"a",code:"code",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",ul:"ul",...(0,a.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.p,{children:"Post message to WebSocket connection."}),"\n",(0,s.jsx)(n.h2,{id:"install",children:"Install"}),"\n",(0,s.jsx)(n.p,{children:"To install this middleware you can use NPM:"}),"\n",(0,s.jsxs)(r.Z,{groupId:"npm2yarn",children:[(0,s.jsx)(l.Z,{value:"npm",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"npm install --save @middy/ws-response\nnpm install --save-dev @aws-sdk/client-apigatewaymanagementapi\n"})})}),(0,s.jsx)(l.Z,{value:"yarn",label:"Yarn",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"yarn add @middy/ws-response\nyarn add --dev @aws-sdk/client-apigatewaymanagementapi\n"})})}),(0,s.jsx)(l.Z,{value:"pnpm",label:"pnpm",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"pnpm add @middy/ws-response\npnpm add --save-dev @aws-sdk/client-apigatewaymanagementapi\n"})})})]}),"\n",(0,s.jsx)(n.h2,{id:"options",children:"Options"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"AwsClient"})," (object) (default ",(0,s.jsx)(n.code,{children:"ApiGatewayManagementApiClient"}),"): ApiGatewayManagementApi class constructor (i.e. that has been instrumented with AWS XRay). Must be from ",(0,s.jsx)(n.code,{children:"@aws-sdk/client-apigatewaymanagementapi"}),"."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"awsClientOptions"})," (object) (default ",(0,s.jsx)(n.code,{children:"undefined"}),"): Options to pass to ApiGatewayManagementApiClient class constructor."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"awsClientAssumeRole"})," (string) (default ",(0,s.jsx)(n.code,{children:"undefined"}),"): Internal key where secrets are stored. See ",(0,s.jsx)(n.a,{href:"/docs/middlewares/sts",children:"@middy/sts"})," on to set this."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"awsClientCapture"})," (function) (default ",(0,s.jsx)(n.code,{children:"undefined"}),"): Enable XRay by passing ",(0,s.jsx)(n.code,{children:"captureAWSv3Client"})," from ",(0,s.jsx)(n.code,{children:"aws-xray-sdk"})," in."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"disablePrefetch"})," (boolean) (default ",(0,s.jsx)(n.code,{children:"false"}),"): On cold start requests will trigger early if they can. Setting ",(0,s.jsx)(n.code,{children:"awsClientAssumeRole"})," disables prefetch."]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"NOTES:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Lambda is required to have IAM permission for ",(0,s.jsx)(n.code,{children:"execute-api:ManageConnections"})]}),"\n",(0,s.jsxs)(n.li,{children:["If ",(0,s.jsx)(n.code,{children:"awsClientOptions.endpoint"})," is not set it will be set using ",(0,s.jsx)(n.code,{children:"event.requestContext.{domainName,stage}"})]}),"\n",(0,s.jsxs)(n.li,{children:["If response does not contain ",(0,s.jsx)(n.code,{children:"ConnectId"}),", it will be set from ",(0,s.jsx)(n.code,{children:"event.requestContext.connectionId"})]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"sample-usage",children:"Sample usage"}),"\n",(0,s.jsx)(n.h3,{id:"api-gateway",children:"API Gateway"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-javascript",children:"import middy from '@middy/core'\nimport wsResponse from '@middy/ws-response'\n\nexport const handler = middy((event, context) => {\n return 'message'\n})\n\nhandler.use(wsResponse())\n"})}),"\n",(0,s.jsx)(n.h3,{id:"general",children:"General"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-javascript",children:"import middy from '@middy/core'\nimport wsResponse from '@middy/ws-response'\n\nconst lambdaHandler = (event, context) => {\n return {\n ConnectionId: '...',\n Data: 'message'\n }\n}\n\nexport const handler = middy()\n .use(\n wsResponse({\n awsClientOptions: {\n endpoint: '...'\n }\n })\n )\n .handler(lambdaHandler)\n"})}),"\n",(0,s.jsx)(n.h2,{id:"bundling",children:"Bundling"}),"\n",(0,s.jsxs)(n.p,{children:["To exclude ",(0,s.jsx)(n.code,{children:"@aws-sdk"})," add ",(0,s.jsx)(n.code,{children:"@aws-sdk/client-apigatewaymanagementapi"})," to the exclude list."]})]})}function m(e={}){const{wrapper:n}={...(0,a.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(p,{...e})}):p(e)}},5162:(e,n,t)=>{t.d(n,{Z:()=>l});t(7294);var s=t(6010);const a={tabItem:"tabItem_Ymn6"};var r=t(5893);function l(e){let{children:n,hidden:t,className:l}=e;return(0,r.jsx)("div",{role:"tabpanel",className:(0,s.Z)(a.tabItem,l),hidden:t,children:n})}},4866:(e,n,t)=>{t.d(n,{Z:()=>y});var s=t(7294),a=t(6010),r=t(2466),l=t(6550),i=t(469),o=t(1980),d=t(7392),c=t(12);function u(e){return s.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,s.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function p(e){const{values:n,children:t}=e;return(0,s.useMemo)((()=>{const e=n??function(e){return u(e).map((e=>{let{props:{value:n,label:t,attributes:s,default:a}}=e;return{value:n,label:t,attributes:s,default:a}}))}(t);return function(e){const n=(0,d.l)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[n,t])}function m(e){let{value:n,tabValues:t}=e;return t.some((e=>e.value===n))}function h(e){let{queryString:n=!1,groupId:t}=e;const a=(0,l.k6)(),r=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t});return[(0,o._X)(r),(0,s.useCallback)((e=>{if(!r)return;const n=new URLSearchParams(a.location.search);n.set(r,e),a.replace({...a.location,search:n.toString()})}),[r,a])]}function f(e){const{defaultValue:n,queryString:t=!1,groupId:a}=e,r=p(e),[l,o]=(0,s.useState)((()=>function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw new Error("Docusaurus error: the component requires at least one children component");if(n){if(!m({value:n,tabValues:t}))throw new Error(`Docusaurus error: The has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const s=t.find((e=>e.default))??t[0];if(!s)throw new Error("Unexpected error: 0 tabValues");return s.value}({defaultValue:n,tabValues:r}))),[d,u]=h({queryString:t,groupId:a}),[f,b]=function(e){let{groupId:n}=e;const t=function(e){return e?`docusaurus.tab.${e}`:null}(n),[a,r]=(0,c.Nk)(t);return[a,(0,s.useCallback)((e=>{t&&r.set(e)}),[t,r])]}({groupId:a}),x=(()=>{const e=d??f;return m({value:e,tabValues:r})?e:null})();(0,i.Z)((()=>{x&&o(x)}),[x]);return{selectedValue:l,selectValue:(0,s.useCallback)((e=>{if(!m({value:e,tabValues:r}))throw new Error(`Can't select invalid tab value=${e}`);o(e),u(e),b(e)}),[u,b,r]),tabValues:r}}var b=t(2389);const x={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var w=t(5893);function g(e){let{className:n,block:t,selectedValue:s,selectValue:l,tabValues:i}=e;const o=[],{blockElementScrollPositionUntilNextRender:d}=(0,r.o5)(),c=e=>{const n=e.currentTarget,t=o.indexOf(n),a=i[t].value;a!==s&&(d(n),l(a))},u=e=>{let n=null;switch(e.key){case"Enter":c(e);break;case"ArrowRight":{const t=o.indexOf(e.currentTarget)+1;n=o[t]??o[0];break}case"ArrowLeft":{const t=o.indexOf(e.currentTarget)-1;n=o[t]??o[o.length-1];break}}n?.focus()};return(0,w.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,a.Z)("tabs",{"tabs--block":t},n),children:i.map((e=>{let{value:n,label:t,attributes:r}=e;return(0,w.jsx)("li",{role:"tab",tabIndex:s===n?0:-1,"aria-selected":s===n,ref:e=>o.push(e),onKeyDown:u,onClick:c,...r,className:(0,a.Z)("tabs__item",x.tabItem,r?.className,{"tabs__item--active":s===n}),children:t??n},n)}))})}function v(e){let{lazy:n,children:t,selectedValue:a}=e;const r=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){const e=r.find((e=>e.props.value===a));return e?(0,s.cloneElement)(e,{className:"margin-top--md"}):null}return(0,w.jsx)("div",{className:"margin-top--md",children:r.map(((e,n)=>(0,s.cloneElement)(e,{key:n,hidden:e.props.value!==a})))})}function j(e){const n=f(e);return(0,w.jsxs)("div",{className:(0,a.Z)("tabs-container",x.tabList),children:[(0,w.jsx)(g,{...e,...n}),(0,w.jsx)(v,{...e,...n})]})}function y(e){const n=(0,b.Z)();return(0,w.jsx)(j,{...e,children:u(e.children)},String(n))}},1151:(e,n,t)=>{t.d(n,{Z:()=>i,a:()=>l});var s=t(7294);const a={},r=s.createContext(a);function l(e){const n=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:l(e.components),s.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/2f4f2e7a.566d032e.js b/assets/js/2f4f2e7a.566d032e.js deleted file mode 100644 index 6bf90ded2..000000000 --- a/assets/js/2f4f2e7a.566d032e.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[5222],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>f});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),c=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),u=c(n),m=a,f=u["".concat(s,".").concat(m)]||u[m]||d[m]||o;return n?r.createElement(f,i(i({ref:t},p),{},{components:n})):r.createElement(f,i({ref:t},p))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[u]="string"==typeof e?e:a,i[1]=l;for(var c=2;c{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var r=n(7462),a=(n(7294),n(3905));const o={title:"Alexa"},i=void 0,l={unversionedId:"events/alexa",id:"events/alexa",title:"Alexa",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/events/alexa.md",sourceDirName:"events",slug:"/events/alexa",permalink:"/docs/events/alexa",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/events/alexa.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",frontMatter:{title:"Alexa"},sidebar:"tutorialSidebar",previous:{title:"All AWS Events",permalink:"/docs/events/intro"},next:{title:"API Gateway Authorizer",permalink:"/docs/events/api-gateway-authorizer"}},s={},c=[{value:"AWS Documentation",id:"aws-documentation",level:2},{value:"Example",id:"example",level:2}],p={toc:c},u="wrapper";function d(e){let{components:t,...n}=e;return(0,a.kt)(u,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.")),(0,a.kt)("h2",{id:"aws-documentation"},"AWS Documentation"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://docs.aws.amazon.com/lambda/latest/dg/services-alexa.html"},"Using AWS Lambda with Alexa"))),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\n\nexport const handler = middy()\n .handler((event, context, {signal}) => {\n // ...\n })\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2f4f2e7a.ef75f68a.js b/assets/js/2f4f2e7a.ef75f68a.js new file mode 100644 index 000000000..04a334422 --- /dev/null +++ b/assets/js/2f4f2e7a.ef75f68a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[5222],{1950:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>u,frontMatter:()=>o,metadata:()=>r,toc:()=>d});var a=n(5893),i=n(1151);const o={title:"Alexa"},s=void 0,r={id:"events/alexa",title:"Alexa",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/events/alexa.md",sourceDirName:"events",slug:"/events/alexa",permalink:"/docs/events/alexa",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/events/alexa.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",frontMatter:{title:"Alexa"},sidebar:"tutorialSidebar",previous:{title:"All AWS Events",permalink:"/docs/events/intro"},next:{title:"API Gateway Authorizer",permalink:"/docs/events/api-gateway-authorizer"}},l={},d=[{value:"AWS Documentation",id:"aws-documentation",level:2},{value:"Example",id:"example",level:2}];function c(e){const t={a:"a",admonition:"admonition",code:"code",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,i.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(t.admonition,{type:"caution",children:(0,a.jsx)(t.p,{children:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub."})}),"\n",(0,a.jsx)(t.h2,{id:"aws-documentation",children:"AWS Documentation"}),"\n",(0,a.jsxs)(t.ul,{children:["\n",(0,a.jsx)(t.li,{children:(0,a.jsx)(t.a,{href:"https://docs.aws.amazon.com/lambda/latest/dg/services-alexa.html",children:"Using AWS Lambda with Alexa"})}),"\n"]}),"\n",(0,a.jsx)(t.h2,{id:"example",children:"Example"}),"\n",(0,a.jsx)(t.pre,{children:(0,a.jsx)(t.code,{className:"language-javascript",children:"import middy from '@middy/core'\n\nexport const handler = middy()\n .handler((event, context, {signal}) => {\n // ...\n })\n"})})]})}function u(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,a.jsx)(t,{...e,children:(0,a.jsx)(c,{...e})}):c(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>r,a:()=>s});var a=n(7294);const i={},o=a.createContext(i);function s(e){const t=a.useContext(o);return a.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:s(e.components),a.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/340d0816.1d815217.js b/assets/js/340d0816.1d815217.js deleted file mode 100644 index a0a30cbe6..000000000 --- a/assets/js/340d0816.1d815217.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[8729],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>f});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),c=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},m="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),m=c(n),u=o,f=m["".concat(s,".").concat(u)]||m[u]||d[u]||a;return n?r.createElement(f,i(i({ref:t},p),{},{components:n})):r.createElement(f,i({ref:t},p))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=u;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[m]="string"==typeof e?e:o,i[1]=l;for(var c=2;c{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>l,toc:()=>c});var r=n(7462),o=(n(7294),n(3905));const a={title:"MQ"},i=void 0,l={unversionedId:"events/mq",id:"events/mq",title:"MQ",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/events/mq.md",sourceDirName:"events",slug:"/events/mq",permalink:"/docs/events/mq",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/events/mq.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",frontMatter:{title:"MQ"},sidebar:"tutorialSidebar",previous:{title:"Lex",permalink:"/docs/events/lex"},next:{title:"RDS",permalink:"/docs/events/rds"}},s={},c=[{value:"AWS Documentation",id:"aws-documentation",level:2},{value:"Example",id:"example",level:2}],p={toc:c},m="wrapper";function d(e){let{components:t,...n}=e;return(0,o.kt)(m,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("admonition",{type:"caution"},(0,o.kt)("p",{parentName:"admonition"},"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.")),(0,o.kt)("h2",{id:"aws-documentation"},"AWS Documentation"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://docs.aws.amazon.com/lambda/latest/dg/with-mq.html"},"Using Lambda with Amazon MQ"))),(0,o.kt)("h2",{id:"example"},"Example"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\nimport eventNormalizerMiddleware from '@middy/event-normalizer'\n\nexport const handler = middy()\n .use(eventNormalizerMiddleware())\n .handler((event, context, {signal}) => {\n // ...\n })\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/340d0816.b964de2f.js b/assets/js/340d0816.b964de2f.js new file mode 100644 index 000000000..de6bc2a45 --- /dev/null +++ b/assets/js/340d0816.b964de2f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[8729],{9571:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>a,default:()=>m,frontMatter:()=>s,metadata:()=>r,toc:()=>l});var i=n(5893),o=n(1151);const s={title:"MQ"},a=void 0,r={id:"events/mq",title:"MQ",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/events/mq.md",sourceDirName:"events",slug:"/events/mq",permalink:"/docs/events/mq",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/events/mq.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",frontMatter:{title:"MQ"},sidebar:"tutorialSidebar",previous:{title:"Lex",permalink:"/docs/events/lex"},next:{title:"RDS",permalink:"/docs/events/rds"}},d={},l=[{value:"AWS Documentation",id:"aws-documentation",level:2},{value:"Example",id:"example",level:2}];function c(e){const t={a:"a",admonition:"admonition",code:"code",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,o.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.admonition,{type:"caution",children:(0,i.jsx)(t.p,{children:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub."})}),"\n",(0,i.jsx)(t.h2,{id:"aws-documentation",children:"AWS Documentation"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://docs.aws.amazon.com/lambda/latest/dg/with-mq.html",children:"Using Lambda with Amazon MQ"})}),"\n"]}),"\n",(0,i.jsx)(t.h2,{id:"example",children:"Example"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-javascript",children:"import middy from '@middy/core'\nimport eventNormalizerMiddleware from '@middy/event-normalizer'\n\nexport const handler = middy()\n .use(eventNormalizerMiddleware())\n .handler((event, context, {signal}) => {\n // ...\n })\n"})})]})}function m(e={}){const{wrapper:t}={...(0,o.a)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>r,a:()=>a});var i=n(7294);const o={},s=i.createContext(o);function a(e){const t=i.useContext(s);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:a(e.components),i.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/34ad80cb.03c7cf95.js b/assets/js/34ad80cb.03c7cf95.js deleted file mode 100644 index f295b9cbb..000000000 --- a/assets/js/34ad80cb.03c7cf95.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[4662],{3905:(e,t,n)=>{n.d(t,{Zo:()=>s,kt:()=>f});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var c=r.createContext({}),d=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},s=function(e){var t=d(e.components);return r.createElement(c.Provider,{value:t},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),u=d(n),m=o,f=u["".concat(c,".").concat(m)]||u[m]||p[m]||a;return n?r.createElement(f,i(i({ref:t},s),{},{components:n})):r.createElement(f,i({ref:t},s))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=m;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[u]="string"==typeof e?e:o,i[1]=l;for(var d=2;d{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>p,frontMatter:()=>a,metadata:()=>l,toc:()=>d});var r=n(7462),o=(n(7294),n(3905));const a={title:"CloudFront Lambda@Edge"},i=void 0,l={unversionedId:"events/cloud-front",id:"events/cloud-front",title:"CloudFront Lambda@Edge",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/events/cloud-front.md",sourceDirName:"events",slug:"/events/cloud-front",permalink:"/docs/events/cloud-front",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/events/cloud-front.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",frontMatter:{title:"CloudFront Lambda@Edge"},sidebar:"tutorialSidebar",previous:{title:"CloudFormation",permalink:"/docs/events/cloud-formation"},next:{title:"CloudTrail",permalink:"/docs/events/cloud-trail"}},c={},d=[{value:"AWS Documentation",id:"aws-documentation",level:2},{value:"Example",id:"example",level:2}],s={toc:d},u="wrapper";function p(e){let{components:t,...n}=e;return(0,o.kt)(u,(0,r.Z)({},s,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("admonition",{type:"caution"},(0,o.kt)("p",{parentName:"admonition"},"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.")),(0,o.kt)("h2",{id:"aws-documentation"},"AWS Documentation"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://docs.aws.amazon.com/lambda/latest/dg/lambda-edge.html"},"Using AWS Lambda with CloudFront Lambda@Edge"))),(0,o.kt)("h2",{id:"example"},"Example"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\n\nexport const handler = middy()\n //.use(cfHeaderNormalizer()) // Let use know if this would have value\n .handler((event, context, {signal}) => {\n // ...\n })\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/34ad80cb.2d1ee7d2.js b/assets/js/34ad80cb.2d1ee7d2.js new file mode 100644 index 000000000..e4f013c29 --- /dev/null +++ b/assets/js/34ad80cb.2d1ee7d2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[4662],{9061:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>d,default:()=>u,frontMatter:()=>i,metadata:()=>r,toc:()=>l});var o=n(5893),a=n(1151);const i={title:"CloudFront Lambda@Edge"},d=void 0,r={id:"events/cloud-front",title:"CloudFront Lambda@Edge",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/events/cloud-front.md",sourceDirName:"events",slug:"/events/cloud-front",permalink:"/docs/events/cloud-front",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/events/cloud-front.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",frontMatter:{title:"CloudFront Lambda@Edge"},sidebar:"tutorialSidebar",previous:{title:"CloudFormation",permalink:"/docs/events/cloud-formation"},next:{title:"CloudTrail",permalink:"/docs/events/cloud-trail"}},s={},l=[{value:"AWS Documentation",id:"aws-documentation",level:2},{value:"Example",id:"example",level:2}];function c(e){const t={a:"a",admonition:"admonition",code:"code",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,a.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.admonition,{type:"caution",children:(0,o.jsx)(t.p,{children:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub."})}),"\n",(0,o.jsx)(t.h2,{id:"aws-documentation",children:"AWS Documentation"}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsx)(t.li,{children:(0,o.jsx)(t.a,{href:"https://docs.aws.amazon.com/lambda/latest/dg/lambda-edge.html",children:"Using AWS Lambda with CloudFront Lambda@Edge"})}),"\n"]}),"\n",(0,o.jsx)(t.h2,{id:"example",children:"Example"}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-javascript",children:"import middy from '@middy/core'\n\nexport const handler = middy()\n //.use(cfHeaderNormalizer()) // Let use know if this would have value\n .handler((event, context, {signal}) => {\n // ...\n })\n"})})]})}function u(e={}){const{wrapper:t}={...(0,a.a)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(c,{...e})}):c(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>r,a:()=>d});var o=n(7294);const a={},i=o.createContext(a);function d(e){const t=o.useContext(i);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:d(e.components),o.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/34ebece8.76fec6af.js b/assets/js/34ebece8.76fec6af.js new file mode 100644 index 000000000..80cfdc10d --- /dev/null +++ b/assets/js/34ebece8.76fec6af.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[5853],{2900:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>r,default:()=>m,frontMatter:()=>a,metadata:()=>s,toc:()=>l});var i=n(5893),o=n(1151);const a={title:"WorkMail"},r=void 0,s={id:"events/workmail",title:"WorkMail",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/events/workmail.md",sourceDirName:"events",slug:"/events/workmail",permalink:"/docs/events/workmail",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/events/workmail.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",frontMatter:{title:"WorkMail"},sidebar:"tutorialSidebar",previous:{title:"VPC Lattice",permalink:"/docs/events/vpc-lattice"},next:{title:"Integrations",permalink:"/docs/category/integrations"}},d={},l=[{value:"AWS Documentation",id:"aws-documentation",level:2},{value:"Example",id:"example",level:2}];function c(e){const t={a:"a",admonition:"admonition",code:"code",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,o.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.admonition,{type:"caution",children:(0,i.jsx)(t.p,{children:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub."})}),"\n",(0,i.jsx)(t.h2,{id:"aws-documentation",children:"AWS Documentation"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://docs.aws.amazon.com/workmail/latest/adminguide/lambda.html",children:"Configuring AWS Lambda for Amazon WorkMail"})}),"\n"]}),"\n",(0,i.jsx)(t.h2,{id:"example",children:"Example"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-javascript",children:"import middy from '@middy/core'\n\nexport const handler = middy()\n .handler((event, context, {signal}) => {\n // ...\n })\n"})})]})}function m(e={}){const{wrapper:t}={...(0,o.a)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>s,a:()=>r});var i=n(7294);const o={},a=i.createContext(o);function r(e){const t=i.useContext(a);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:r(e.components),i.createElement(a.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/34ebece8.a2ae2b0f.js b/assets/js/34ebece8.a2ae2b0f.js deleted file mode 100644 index 2f2b84a9b..000000000 --- a/assets/js/34ebece8.a2ae2b0f.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[5853],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>f});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),s=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=s(e.components);return n.createElement(c.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),m=s(r),d=a,f=m["".concat(c,".").concat(d)]||m[d]||u[d]||o;return r?n.createElement(f,i(i({ref:t},p),{},{components:r})):n.createElement(f,i({ref:t},p))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=d;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[m]="string"==typeof e?e:a,i[1]=l;for(var s=2;s{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>l,toc:()=>s});var n=r(7462),a=(r(7294),r(3905));const o={title:"WorkMail"},i=void 0,l={unversionedId:"events/workmail",id:"events/workmail",title:"WorkMail",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/events/workmail.md",sourceDirName:"events",slug:"/events/workmail",permalink:"/docs/events/workmail",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/events/workmail.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",frontMatter:{title:"WorkMail"},sidebar:"tutorialSidebar",previous:{title:"VPC Lattice",permalink:"/docs/events/vpc-lattice"},next:{title:"Integrations",permalink:"/docs/category/integrations"}},c={},s=[{value:"AWS Documentation",id:"aws-documentation",level:2},{value:"Example",id:"example",level:2}],p={toc:s},m="wrapper";function u(e){let{components:t,...r}=e;return(0,a.kt)(m,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.")),(0,a.kt)("h2",{id:"aws-documentation"},"AWS Documentation"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://docs.aws.amazon.com/workmail/latest/adminguide/lambda.html"},"Configuring AWS Lambda for Amazon WorkMail"))),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\n\nexport const handler = middy()\n .handler((event, context, {signal}) => {\n // ...\n })\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3673b941.491936f4.js b/assets/js/3673b941.491936f4.js new file mode 100644 index 000000000..018470fed --- /dev/null +++ b/assets/js/3673b941.491936f4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[2344],{7017:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>c,contentTitle:()=>o,default:()=>p,frontMatter:()=>i,metadata:()=>d,toc:()=>u});var s=r(5893),t=r(1151),a=r(4866),l=r(5162);const i={title:"rds-signer"},o=void 0,d={id:"middlewares/rds-signer",title:"rds-signer",description:"Fetches RDS credentials to be used when connecting to RDS with IAM roles.",source:"@site/docs/middlewares/rds-signer.md",sourceDirName:"middlewares",slug:"/middlewares/rds-signer",permalink:"/docs/middlewares/rds-signer",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/middlewares/rds-signer.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",frontMatter:{title:"rds-signer"},sidebar:"tutorialSidebar",previous:{title:"input-output-logger",permalink:"/docs/middlewares/input-output-logger"},next:{title:"s3-object-response",permalink:"/docs/middlewares/s3-object-response"}},c={},u=[{value:"Install",id:"install",level:2},{value:"Options",id:"options",level:2},{value:"Sample usage",id:"sample-usage",level:2},{value:"Bundling",id:"bundling",level:2}];function h(e){const n={code:"code",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,t.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.p,{children:"Fetches RDS credentials to be used when connecting to RDS with IAM roles."}),"\n",(0,s.jsx)(n.h2,{id:"install",children:"Install"}),"\n",(0,s.jsx)(n.p,{children:"To install this middleware you can use NPM:"}),"\n",(0,s.jsxs)(a.Z,{groupId:"npm2yarn",children:[(0,s.jsx)(l.Z,{value:"npm",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"npm install --save @middy/rds-signer\nnpm install --save-dev @aws-sdk/rds-signer\n"})})}),(0,s.jsx)(l.Z,{value:"yarn",label:"Yarn",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"yarn add @middy/rds-signer\nyarn add --dev @aws-sdk/rds-signer\n"})})}),(0,s.jsx)(l.Z,{value:"pnpm",label:"pnpm",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"pnpm add @middy/rds-signer\npnpm add --save-dev @aws-sdk/rds-signer\n"})})})]}),"\n",(0,s.jsx)(n.h2,{id:"options",children:"Options"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"AwsClient"})," (object) (default ",(0,s.jsx)(n.code,{children:"Signer"}),"): Signer class constructor (i.e. that has been instrumented with AWS XRay). Must be from ",(0,s.jsx)(n.code,{children:"@aws-sdk/rds-signer"}),"."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"awsClientOptions"})," (object) (optional): Options to pass to Signer class constructor."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"fetchData"})," (object) (required): Mapping of internal key name to API request parameters."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"disablePrefetch"})," (boolean) (default ",(0,s.jsx)(n.code,{children:"false"}),"): On cold start requests will trigger early if they can. Setting ",(0,s.jsx)(n.code,{children:"awsClientAssumeRole"})," disables prefetch."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"cacheKey"})," (string) (default ",(0,s.jsx)(n.code,{children:"rds-signer"}),"): Cache key for the fetched data responses. Must be unique across all middleware."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"cacheExpiry"})," (number) (default ",(0,s.jsx)(n.code,{children:"-1"}),"): How long fetch data responses should be cached for. ",(0,s.jsx)(n.code,{children:"-1"}),": cache forever, ",(0,s.jsx)(n.code,{children:"0"}),": never cache, ",(0,s.jsx)(n.code,{children:"n"}),": cache for n ms."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"setToContext"})," (boolean) (default ",(0,s.jsx)(n.code,{children:"false"}),"): Store role tokens to ",(0,s.jsx)(n.code,{children:"request.context"}),"."]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"NOTES:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Lambda is required to have IAM permission for ",(0,s.jsx)(n.code,{children:"rds-db:connect"})," with a resource like ",(0,s.jsx)(n.code,{children:"arn:aws:rds-db:#{AWS::Region}:#{AWS::AccountId}:dbuser:${database_resource}/${iam_role}"})]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"sample-usage",children:"Sample usage"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-javascript",children:"import middy from '@middy/core'\nimport rdsSigner from '@middy/rds-signer'\n\nconst lambdaHandler = (event, context) => {\n const response = {\n statusCode: 200,\n headers: {},\n body: JSON.stringify({ message: 'hello world' })\n }\n\n return response\n}\n\nexport const handler = middy()\n .use(\n rdsSigner({\n fetchData: {\n rdsToken: {\n region: 'ca-central-1',\n hostname: '***.rds.amazonaws.com',\n username: 'iam_role',\n port: 5432\n }\n }\n })\n )\n .handler(lambdaHandler)\n"})}),"\n",(0,s.jsx)(n.h2,{id:"bundling",children:"Bundling"}),"\n",(0,s.jsxs)(n.p,{children:["To exclude ",(0,s.jsx)(n.code,{children:"@aws-sdk"})," add ",(0,s.jsx)(n.code,{children:"@aws-sdk/rds-signer"})," to the exclude list."]})]})}function p(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}},5162:(e,n,r)=>{r.d(n,{Z:()=>l});r(7294);var s=r(6010);const t={tabItem:"tabItem_Ymn6"};var a=r(5893);function l(e){let{children:n,hidden:r,className:l}=e;return(0,a.jsx)("div",{role:"tabpanel",className:(0,s.Z)(t.tabItem,l),hidden:r,children:n})}},4866:(e,n,r)=>{r.d(n,{Z:()=>y});var s=r(7294),t=r(6010),a=r(2466),l=r(6550),i=r(469),o=r(1980),d=r(7392),c=r(12);function u(e){return s.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,s.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function h(e){const{values:n,children:r}=e;return(0,s.useMemo)((()=>{const e=n??function(e){return u(e).map((e=>{let{props:{value:n,label:r,attributes:s,default:t}}=e;return{value:n,label:r,attributes:s,default:t}}))}(r);return function(e){const n=(0,d.l)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[n,r])}function p(e){let{value:n,tabValues:r}=e;return r.some((e=>e.value===n))}function m(e){let{queryString:n=!1,groupId:r}=e;const t=(0,l.k6)(),a=function(e){let{queryString:n=!1,groupId:r}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!r)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return r??null}({queryString:n,groupId:r});return[(0,o._X)(a),(0,s.useCallback)((e=>{if(!a)return;const n=new URLSearchParams(t.location.search);n.set(a,e),t.replace({...t.location,search:n.toString()})}),[a,t])]}function b(e){const{defaultValue:n,queryString:r=!1,groupId:t}=e,a=h(e),[l,o]=(0,s.useState)((()=>function(e){let{defaultValue:n,tabValues:r}=e;if(0===r.length)throw new Error("Docusaurus error: the component requires at least one children component");if(n){if(!p({value:n,tabValues:r}))throw new Error(`Docusaurus error: The has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${r.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const s=r.find((e=>e.default))??r[0];if(!s)throw new Error("Unexpected error: 0 tabValues");return s.value}({defaultValue:n,tabValues:a}))),[d,u]=m({queryString:r,groupId:t}),[b,f]=function(e){let{groupId:n}=e;const r=function(e){return e?`docusaurus.tab.${e}`:null}(n),[t,a]=(0,c.Nk)(r);return[t,(0,s.useCallback)((e=>{r&&a.set(e)}),[r,a])]}({groupId:t}),g=(()=>{const e=d??b;return p({value:e,tabValues:a})?e:null})();(0,i.Z)((()=>{g&&o(g)}),[g]);return{selectedValue:l,selectValue:(0,s.useCallback)((e=>{if(!p({value:e,tabValues:a}))throw new Error(`Can't select invalid tab value=${e}`);o(e),u(e),f(e)}),[u,f,a]),tabValues:a}}var f=r(2389);const g={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var x=r(5893);function j(e){let{className:n,block:r,selectedValue:s,selectValue:l,tabValues:i}=e;const o=[],{blockElementScrollPositionUntilNextRender:d}=(0,a.o5)(),c=e=>{const n=e.currentTarget,r=o.indexOf(n),t=i[r].value;t!==s&&(d(n),l(t))},u=e=>{let n=null;switch(e.key){case"Enter":c(e);break;case"ArrowRight":{const r=o.indexOf(e.currentTarget)+1;n=o[r]??o[0];break}case"ArrowLeft":{const r=o.indexOf(e.currentTarget)-1;n=o[r]??o[o.length-1];break}}n?.focus()};return(0,x.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,t.Z)("tabs",{"tabs--block":r},n),children:i.map((e=>{let{value:n,label:r,attributes:a}=e;return(0,x.jsx)("li",{role:"tab",tabIndex:s===n?0:-1,"aria-selected":s===n,ref:e=>o.push(e),onKeyDown:u,onClick:c,...a,className:(0,t.Z)("tabs__item",g.tabItem,a?.className,{"tabs__item--active":s===n}),children:r??n},n)}))})}function v(e){let{lazy:n,children:r,selectedValue:t}=e;const a=(Array.isArray(r)?r:[r]).filter(Boolean);if(n){const e=a.find((e=>e.props.value===t));return e?(0,s.cloneElement)(e,{className:"margin-top--md"}):null}return(0,x.jsx)("div",{className:"margin-top--md",children:a.map(((e,n)=>(0,s.cloneElement)(e,{key:n,hidden:e.props.value!==t})))})}function w(e){const n=b(e);return(0,x.jsxs)("div",{className:(0,t.Z)("tabs-container",g.tabList),children:[(0,x.jsx)(j,{...e,...n}),(0,x.jsx)(v,{...e,...n})]})}function y(e){const n=(0,f.Z)();return(0,x.jsx)(w,{...e,children:u(e.children)},String(n))}},1151:(e,n,r)=>{r.d(n,{Z:()=>i,a:()=>l});var s=r(7294);const t={},a=s.createContext(t);function l(e){const n=s.useContext(a);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:l(e.components),s.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/3673b941.c5c1061b.js b/assets/js/3673b941.c5c1061b.js deleted file mode 100644 index e9ae87bb1..000000000 --- a/assets/js/3673b941.c5c1061b.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[2344],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>f});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var o=r.createContext({}),u=function(e){var t=r.useContext(o),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},d=function(e){var t=u(e.components);return r.createElement(o.Provider,{value:t},e.children)},c="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,l=e.originalType,o=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),c=u(n),m=a,f=c["".concat(o,".").concat(m)]||c[m]||p[m]||l;return n?r.createElement(f,s(s({ref:t},d),{},{components:n})):r.createElement(f,s({ref:t},d))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=n.length,s=new Array(l);s[0]=m;var i={};for(var o in t)hasOwnProperty.call(t,o)&&(i[o]=t[o]);i.originalType=e,i[c]="string"==typeof e?e:a,s[1]=i;for(var u=2;u{n.d(t,{Z:()=>s});var r=n(7294),a=n(6010);const l={tabItem:"tabItem_Ymn6"};function s(e){let{children:t,hidden:n,className:s}=e;return r.createElement("div",{role:"tabpanel",className:(0,a.Z)(l.tabItem,s),hidden:n},t)}},4866:(e,t,n)=>{n.d(t,{Z:()=>w});var r=n(7462),a=n(7294),l=n(6010),s=n(2466),i=n(6550),o=n(1980),u=n(7392),d=n(12);function c(e){return function(e){return a.Children.map(e,(e=>{if(!e||(0,a.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:r,default:a}}=e;return{value:t,label:n,attributes:r,default:a}}))}function p(e){const{values:t,children:n}=e;return(0,a.useMemo)((()=>{const e=t??c(n);return function(e){const t=(0,u.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[t,n])}function m(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:n}=e;const r=(0,i.k6)(),l=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,o._X)(l),(0,a.useCallback)((e=>{if(!l)return;const t=new URLSearchParams(r.location.search);t.set(l,e),r.replace({...r.location,search:t.toString()})}),[l,r])]}function b(e){const{defaultValue:t,queryString:n=!1,groupId:r}=e,l=p(e),[s,i]=(0,a.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the component requires at least one children component");if(t){if(!m({value:t,tabValues:n}))throw new Error(`Docusaurus error: The has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const r=n.find((e=>e.default))??n[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:t,tabValues:l}))),[o,u]=f({queryString:n,groupId:r}),[c,b]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[r,l]=(0,d.Nk)(n);return[r,(0,a.useCallback)((e=>{n&&l.set(e)}),[n,l])]}({groupId:r}),g=(()=>{const e=o??c;return m({value:e,tabValues:l})?e:null})();(0,a.useLayoutEffect)((()=>{g&&i(g)}),[g]);return{selectedValue:s,selectValue:(0,a.useCallback)((e=>{if(!m({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);i(e),u(e),b(e)}),[u,b,l]),tabValues:l}}var g=n(2389);const h={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};function y(e){let{className:t,block:n,selectedValue:i,selectValue:o,tabValues:u}=e;const d=[],{blockElementScrollPositionUntilNextRender:c}=(0,s.o5)(),p=e=>{const t=e.currentTarget,n=d.indexOf(t),r=u[n].value;r!==i&&(c(t),o(r))},m=e=>{let t=null;switch(e.key){case"Enter":p(e);break;case"ArrowRight":{const n=d.indexOf(e.currentTarget)+1;t=d[n]??d[0];break}case"ArrowLeft":{const n=d.indexOf(e.currentTarget)-1;t=d[n]??d[d.length-1];break}}t?.focus()};return a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":n},t)},u.map((e=>{let{value:t,label:n,attributes:s}=e;return a.createElement("li",(0,r.Z)({role:"tab",tabIndex:i===t?0:-1,"aria-selected":i===t,key:t,ref:e=>d.push(e),onKeyDown:m,onClick:p},s,{className:(0,l.Z)("tabs__item",h.tabItem,s?.className,{"tabs__item--active":i===t})}),n??t)})))}function k(e){let{lazy:t,children:n,selectedValue:r}=e;const l=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=l.find((e=>e.props.value===r));return e?(0,a.cloneElement)(e,{className:"margin-top--md"}):null}return a.createElement("div",{className:"margin-top--md"},l.map(((e,t)=>(0,a.cloneElement)(e,{key:t,hidden:e.props.value!==r}))))}function v(e){const t=b(e);return a.createElement("div",{className:(0,l.Z)("tabs-container",h.tabList)},a.createElement(y,(0,r.Z)({},e,t)),a.createElement(k,(0,r.Z)({},e,t)))}function w(e){const t=(0,g.Z)();return a.createElement(v,(0,r.Z)({key:String(t)},e))}},3230:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>o,default:()=>f,frontMatter:()=>i,metadata:()=>u,toc:()=>c});var r=n(7462),a=(n(7294),n(3905)),l=n(4866),s=n(5162);const i={title:"rds-signer"},o=void 0,u={unversionedId:"middlewares/rds-signer",id:"middlewares/rds-signer",title:"rds-signer",description:"Fetches RDS credentials to be used when connecting to RDS with IAM roles.",source:"@site/docs/middlewares/rds-signer.md",sourceDirName:"middlewares",slug:"/middlewares/rds-signer",permalink:"/docs/middlewares/rds-signer",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/middlewares/rds-signer.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",frontMatter:{title:"rds-signer"},sidebar:"tutorialSidebar",previous:{title:"input-output-logger",permalink:"/docs/middlewares/input-output-logger"},next:{title:"s3-object-response",permalink:"/docs/middlewares/s3-object-response"}},d={},c=[{value:"Install",id:"install",level:2},{value:"Options",id:"options",level:2},{value:"Sample usage",id:"sample-usage",level:2},{value:"Bundling",id:"bundling",level:2}],p={toc:c},m="wrapper";function f(e){let{components:t,...n}=e;return(0,a.kt)(m,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"Fetches RDS credentials to be used when connecting to RDS with IAM roles."),(0,a.kt)("h2",{id:"install"},"Install"),(0,a.kt)("p",null,"To install this middleware you can use NPM:"),(0,a.kt)(l.Z,{groupId:"npm2yarn",mdxType:"Tabs"},(0,a.kt)(s.Z,{value:"npm",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-bash"},"npm install --save @middy/rds-signer\nnpm install --save-dev @aws-sdk/rds-signer\n"))),(0,a.kt)(s.Z,{value:"yarn",label:"Yarn",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-bash"},"yarn add @middy/rds-signer\nyarn add --dev @aws-sdk/rds-signer\n"))),(0,a.kt)(s.Z,{value:"pnpm",label:"pnpm",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-bash"},"pnpm add @middy/rds-signer\npnpm add --save-dev @aws-sdk/rds-signer\n")))),(0,a.kt)("h2",{id:"options"},"Options"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"AwsClient")," (object) (default ",(0,a.kt)("inlineCode",{parentName:"li"},"Signer"),"): Signer class constructor (i.e. that has been instrumented with AWS XRay). Must be from ",(0,a.kt)("inlineCode",{parentName:"li"},"@aws-sdk/rds-signer"),"."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"awsClientOptions")," (object) (optional): Options to pass to Signer class constructor."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"fetchData")," (object) (required): Mapping of internal key name to API request parameters."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"disablePrefetch")," (boolean) (default ",(0,a.kt)("inlineCode",{parentName:"li"},"false"),"): On cold start requests will trigger early if they can. Setting ",(0,a.kt)("inlineCode",{parentName:"li"},"awsClientAssumeRole")," disables prefetch."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"cacheKey")," (string) (default ",(0,a.kt)("inlineCode",{parentName:"li"},"rds-signer"),"): Cache key for the fetched data responses. Must be unique across all middleware."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"cacheExpiry")," (number) (default ",(0,a.kt)("inlineCode",{parentName:"li"},"-1"),"): How long fetch data responses should be cached for. ",(0,a.kt)("inlineCode",{parentName:"li"},"-1"),": cache forever, ",(0,a.kt)("inlineCode",{parentName:"li"},"0"),": never cache, ",(0,a.kt)("inlineCode",{parentName:"li"},"n"),": cache for n ms."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"setToContext")," (boolean) (default ",(0,a.kt)("inlineCode",{parentName:"li"},"false"),"): Store role tokens to ",(0,a.kt)("inlineCode",{parentName:"li"},"request.context"),".")),(0,a.kt)("p",null,"NOTES:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Lambda is required to have IAM permission for ",(0,a.kt)("inlineCode",{parentName:"li"},"rds-db:connect")," with a resource like ",(0,a.kt)("inlineCode",{parentName:"li"},"arn:aws:rds-db:#{AWS::Region}:#{AWS::AccountId}:dbuser:${database_resource}/${iam_role}"))),(0,a.kt)("h2",{id:"sample-usage"},"Sample usage"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\nimport rdsSigner from '@middy/rds-signer'\n\nconst handler = middy((event, context) => {\n const response = {\n statusCode: 200,\n headers: {},\n body: JSON.stringify({ message: 'hello world' })\n }\n\n return response\n})\n\nhandler.use(\n rdsSigner({\n fetchData: {\n rdsToken: {\n region: 'ca-central-1',\n hostname: '***.rds.amazonaws.com',\n username: 'iam_role',\n database: 'postgres',\n port: 5432\n }\n }\n })\n)\n")),(0,a.kt)("h2",{id:"bundling"},"Bundling"),(0,a.kt)("p",null,"To exclude ",(0,a.kt)("inlineCode",{parentName:"p"},"@aws-sdk")," add ",(0,a.kt)("inlineCode",{parentName:"p"},"@aws-sdk/rds-signer")," to the exclude list."))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/393be207.7430aae8.js b/assets/js/393be207.7430aae8.js new file mode 100644 index 000000000..836dd128e --- /dev/null +++ b/assets/js/393be207.7430aae8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[7414],{1181:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>s,default:()=>l,frontMatter:()=>r,metadata:()=>p,toc:()=>d});var a=t(5893),o=t(1151);const r={title:"Markdown page example"},s="Markdown page example",p={type:"mdx",permalink:"/markdown-page",source:"@site/src/pages/markdown-page.md",title:"Markdown page example",description:"You don't need React to write simple standalone pages.",frontMatter:{title:"Markdown page example"},unlisted:!1},c={},d=[];function i(e){const n={h1:"h1",p:"p",...(0,o.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(n.h1,{id:"markdown-page-example",children:"Markdown page example"}),"\n",(0,a.jsx)(n.p,{children:"You don't need React to write simple standalone pages."})]})}function l(e={}){const{wrapper:n}={...(0,o.a)(),...e.components};return n?(0,a.jsx)(n,{...e,children:(0,a.jsx)(i,{...e})}):i(e)}},1151:(e,n,t)=>{t.d(n,{Z:()=>p,a:()=>s});var a=t(7294);const o={},r=a.createContext(o);function s(e){const n=a.useContext(r);return a.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function p(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:s(e.components),a.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/393be207.9244bc8a.js b/assets/js/393be207.9244bc8a.js deleted file mode 100644 index a7687e9d6..000000000 --- a/assets/js/393be207.9244bc8a.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[7414],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function p(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),i=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):p(p({},t),e)),r},u=function(e){var t=i(e.components);return n.createElement(l.Provider,{value:t},e.children)},m="mdxType",f={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},s=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),m=i(r),s=o,d=m["".concat(l,".").concat(s)]||m[s]||f[s]||a;return r?n.createElement(d,p(p({ref:t},u),{},{components:r})):n.createElement(d,p({ref:t},u))}));function d(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,p=new Array(a);p[0]=s;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[m]="string"==typeof e?e:o,p[1]=c;for(var i=2;i{r.r(t),r.d(t,{contentTitle:()=>p,default:()=>m,frontMatter:()=>a,metadata:()=>c,toc:()=>l});var n=r(7462),o=(r(7294),r(3905));const a={title:"Markdown page example"},p="Markdown page example",c={type:"mdx",permalink:"/markdown-page",source:"@site/src/pages/markdown-page.md",title:"Markdown page example",description:"You don't need React to write simple standalone pages.",frontMatter:{title:"Markdown page example"}},l=[],i={toc:l},u="wrapper";function m(e){let{components:t,...r}=e;return(0,o.kt)(u,(0,n.Z)({},i,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"markdown-page-example"},"Markdown page example"),(0,o.kt)("p",null,"You don't need React to write simple standalone pages."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3a74057e.02bbb660.js b/assets/js/3a74057e.02bbb660.js deleted file mode 100644 index 6840a471c..000000000 --- a/assets/js/3a74057e.02bbb660.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[517],{3905:(e,t,r)=>{r.d(t,{Zo:()=>l,kt:()=>f});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=n.createContext({}),c=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},l=function(e){var t=c(e.components);return n.createElement(p.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,p=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),u=c(r),m=o,f=u["".concat(p,".").concat(m)]||u[m]||d[m]||i;return r?n.createElement(f,a(a({ref:t},l),{},{components:r})):n.createElement(f,a({ref:t},l))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,a=new Array(i);a[0]=m;var s={};for(var p in t)hasOwnProperty.call(t,p)&&(s[p]=t[p]);s.originalType=e,s[u]="string"==typeof e?e:o,a[1]=s;for(var c=2;c{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>a,default:()=>d,frontMatter:()=>i,metadata:()=>s,toc:()=>c});var n=r(7462),o=(r(7294),r(3905));const i={title:"Pino"},a=void 0,s={unversionedId:"integrations/pino",id:"integrations/pino",title:"Pino",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/integrations/pino.md",sourceDirName:"integrations",slug:"/integrations/pino",permalink:"/docs/integrations/pino",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/integrations/pino.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",frontMatter:{title:"Pino"},sidebar:"tutorialSidebar",previous:{title:"Powertools for AWS Lambda",permalink:"/docs/integrations/lambda-powertools"},next:{title:"Serverless Framework",permalink:"/docs/integrations/serverless-framework"}},p={},c=[],l={toc:c},u="wrapper";function d(e){let{components:t,...r}=e;return(0,o.kt)(u,(0,n.Z)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("admonition",{type:"caution"},(0,o.kt)("p",{parentName:"admonition"},"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3a74057e.9b8516e3.js b/assets/js/3a74057e.9b8516e3.js new file mode 100644 index 000000000..095800e8e --- /dev/null +++ b/assets/js/3a74057e.9b8516e3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[517],{8740:(t,e,n)=>{n.r(e),n.d(e,{assets:()=>d,contentTitle:()=>s,default:()=>u,frontMatter:()=>r,metadata:()=>a,toc:()=>c});var o=n(5893),i=n(1151);const r={title:"Pino"},s=void 0,a={id:"integrations/pino",title:"Pino",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/integrations/pino.md",sourceDirName:"integrations",slug:"/integrations/pino",permalink:"/docs/integrations/pino",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/integrations/pino.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",frontMatter:{title:"Pino"},sidebar:"tutorialSidebar",previous:{title:"Powertools for AWS Lambda",permalink:"/docs/integrations/lambda-powertools"},next:{title:"Serverless Framework",permalink:"/docs/integrations/serverless-framework"}},d={},c=[];function p(t){const e={admonition:"admonition",p:"p",...(0,i.a)(),...t.components};return(0,o.jsx)(e.admonition,{type:"caution",children:(0,o.jsx)(e.p,{children:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub."})})}function u(t={}){const{wrapper:e}={...(0,i.a)(),...t.components};return e?(0,o.jsx)(e,{...t,children:(0,o.jsx)(p,{...t})}):p(t)}},1151:(t,e,n)=>{n.d(e,{Z:()=>a,a:()=>s});var o=n(7294);const i={},r=o.createContext(i);function s(t){const e=o.useContext(r);return o.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function a(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(i):t.components||i:s(t.components),o.createElement(r.Provider,{value:e},t.children)}}}]); \ No newline at end of file diff --git a/assets/js/3db93d31.2b51f15a.js b/assets/js/3db93d31.2b51f15a.js deleted file mode 100644 index a55bcbe24..000000000 --- a/assets/js/3db93d31.2b51f15a.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[3631],{3905:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>b});var r=a(7294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function l(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var s=r.createContext({}),u=function(e){var t=r.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},p=function(e){var t=u(e.components);return r.createElement(s.Provider,{value:t},e.children)},d="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,s=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),d=u(a),m=n,b=d["".concat(s,".").concat(m)]||d[m]||c[m]||o;return a?r.createElement(b,l(l({ref:t},p),{},{components:a})):r.createElement(b,l({ref:t},p))}));function b(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,l=new Array(o);l[0]=m;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[d]="string"==typeof e?e:n,l[1]=i;for(var u=2;u{a.d(t,{Z:()=>l});var r=a(7294),n=a(6010);const o={tabItem:"tabItem_Ymn6"};function l(e){let{children:t,hidden:a,className:l}=e;return r.createElement("div",{role:"tabpanel",className:(0,n.Z)(o.tabItem,l),hidden:a},t)}},4866:(e,t,a)=>{a.d(t,{Z:()=>w});var r=a(7462),n=a(7294),o=a(6010),l=a(2466),i=a(6550),s=a(1980),u=a(7392),p=a(12);function d(e){return function(e){return n.Children.map(e,(e=>{if(!e||(0,n.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:a,attributes:r,default:n}}=e;return{value:t,label:a,attributes:r,default:n}}))}function c(e){const{values:t,children:a}=e;return(0,n.useMemo)((()=>{const e=t??d(a);return function(e){const t=(0,u.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[t,a])}function m(e){let{value:t,tabValues:a}=e;return a.some((e=>e.value===t))}function b(e){let{queryString:t=!1,groupId:a}=e;const r=(0,i.k6)(),o=function(e){let{queryString:t=!1,groupId:a}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!a)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return a??null}({queryString:t,groupId:a});return[(0,s._X)(o),(0,n.useCallback)((e=>{if(!o)return;const t=new URLSearchParams(r.location.search);t.set(o,e),r.replace({...r.location,search:t.toString()})}),[o,r])]}function h(e){const{defaultValue:t,queryString:a=!1,groupId:r}=e,o=c(e),[l,i]=(0,n.useState)((()=>function(e){let{defaultValue:t,tabValues:a}=e;if(0===a.length)throw new Error("Docusaurus error: the component requires at least one children component");if(t){if(!m({value:t,tabValues:a}))throw new Error(`Docusaurus error: The has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${a.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const r=a.find((e=>e.default))??a[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:t,tabValues:o}))),[s,u]=b({queryString:a,groupId:r}),[d,h]=function(e){let{groupId:t}=e;const a=function(e){return e?`docusaurus.tab.${e}`:null}(t),[r,o]=(0,p.Nk)(a);return[r,(0,n.useCallback)((e=>{a&&o.set(e)}),[a,o])]}({groupId:r}),f=(()=>{const e=s??d;return m({value:e,tabValues:o})?e:null})();(0,n.useLayoutEffect)((()=>{f&&i(f)}),[f]);return{selectedValue:l,selectValue:(0,n.useCallback)((e=>{if(!m({value:e,tabValues:o}))throw new Error(`Can't select invalid tab value=${e}`);i(e),u(e),h(e)}),[u,h,o]),tabValues:o}}var f=a(2389);const y={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};function v(e){let{className:t,block:a,selectedValue:i,selectValue:s,tabValues:u}=e;const p=[],{blockElementScrollPositionUntilNextRender:d}=(0,l.o5)(),c=e=>{const t=e.currentTarget,a=p.indexOf(t),r=u[a].value;r!==i&&(d(t),s(r))},m=e=>{let t=null;switch(e.key){case"Enter":c(e);break;case"ArrowRight":{const a=p.indexOf(e.currentTarget)+1;t=p[a]??p[0];break}case"ArrowLeft":{const a=p.indexOf(e.currentTarget)-1;t=p[a]??p[p.length-1];break}}t?.focus()};return n.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,o.Z)("tabs",{"tabs--block":a},t)},u.map((e=>{let{value:t,label:a,attributes:l}=e;return n.createElement("li",(0,r.Z)({role:"tab",tabIndex:i===t?0:-1,"aria-selected":i===t,key:t,ref:e=>p.push(e),onKeyDown:m,onClick:c},l,{className:(0,o.Z)("tabs__item",y.tabItem,l?.className,{"tabs__item--active":i===t})}),a??t)})))}function k(e){let{lazy:t,children:a,selectedValue:r}=e;const o=(Array.isArray(a)?a:[a]).filter(Boolean);if(t){const e=o.find((e=>e.props.value===r));return e?(0,n.cloneElement)(e,{className:"margin-top--md"}):null}return n.createElement("div",{className:"margin-top--md"},o.map(((e,t)=>(0,n.cloneElement)(e,{key:t,hidden:e.props.value!==r}))))}function g(e){const t=h(e);return n.createElement("div",{className:(0,o.Z)("tabs-container",y.tabList)},n.createElement(v,(0,r.Z)({},e,t)),n.createElement(k,(0,r.Z)({},e,t)))}function w(e){const t=(0,f.Z)();return n.createElement(g,(0,r.Z)({key:String(t)},e))}},7427:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>s,default:()=>b,frontMatter:()=>i,metadata:()=>u,toc:()=>d});var r=a(7462),n=(a(7294),a(3905)),o=a(4866),l=a(5162);const i={title:"http-multipart-body-parser"},s=void 0,u={unversionedId:"middlewares/http-multipart-body-parser",id:"middlewares/http-multipart-body-parser",title:"http-multipart-body-parser",description:"Automatically parses HTTP requests with content type multipart/form-data and converts the body into an",source:"@site/docs/middlewares/http-multipart-body-parser.md",sourceDirName:"middlewares",slug:"/middlewares/http-multipart-body-parser",permalink:"/docs/middlewares/http-multipart-body-parser",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/middlewares/http-multipart-body-parser.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",frontMatter:{title:"http-multipart-body-parser"},sidebar:"tutorialSidebar",previous:{title:"http-json-body-parser",permalink:"/docs/middlewares/http-json-body-parser"},next:{title:"http-partial-response",permalink:"/docs/middlewares/http-partial-response"}},p={},d=[{value:"Install",id:"install",level:2},{value:"Options",id:"options",level:2},{value:"Sample usage",id:"sample-usage",level:2}],c={toc:d},m="wrapper";function b(e){let{components:t,...a}=e;return(0,n.kt)(m,(0,r.Z)({},c,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"Automatically parses HTTP requests with content type ",(0,n.kt)("inlineCode",{parentName:"p"},"multipart/form-data")," and converts the body into an\nobject. Also handles gracefully broken JSON as ",(0,n.kt)("em",{parentName:"p"},"Unsupported Media Type")," (415 errors)\nif used in combination with ",(0,n.kt)("inlineCode",{parentName:"p"},"httpErrorHandler"),"."),(0,n.kt)("p",null,"It can also be used in combination with validator so that the content can be validated."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Note"),": by default this is going to parse only events that contain the header ",(0,n.kt)("inlineCode",{parentName:"p"},"Content-Type")," (or ",(0,n.kt)("inlineCode",{parentName:"p"},"content-type"),") set to ",(0,n.kt)("inlineCode",{parentName:"p"},"multipart/form-data"),". If you want to support different casing for the header name (e.g. ",(0,n.kt)("inlineCode",{parentName:"p"},"Content-type"),") then you should use the ",(0,n.kt)("a",{parentName:"p",href:"#httpheadernormalizer"},(0,n.kt)("inlineCode",{parentName:"a"},"httpHeaderNormalizer"))," middleware before this middleware."),(0,n.kt)("h2",{id:"install"},"Install"),(0,n.kt)("p",null,"To install this middleware you can use NPM:"),(0,n.kt)(o.Z,{groupId:"npm2yarn",mdxType:"Tabs"},(0,n.kt)(l.Z,{value:"npm",mdxType:"TabItem"},(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-bash"},"npm install --save @middy/http-multipart-body-parser\n"))),(0,n.kt)(l.Z,{value:"yarn",label:"Yarn",mdxType:"TabItem"},(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-bash"},"yarn add @middy/http-multipart-body-parser\n"))),(0,n.kt)(l.Z,{value:"pnpm",label:"pnpm",mdxType:"TabItem"},(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-bash"},"pnpm add @middy/http-multipart-body-parser\n")))),(0,n.kt)("h2",{id:"options"},"Options"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"busboy")," (",(0,n.kt)("inlineCode",{parentName:"li"},"object"),") (optional): defaults to ",(0,n.kt)("inlineCode",{parentName:"li"},"{}")," and it can be used to pass extraparameters to the internal ",(0,n.kt)("inlineCode",{parentName:"li"},"busboy")," instance at creation time. Checkout ",(0,n.kt)("a",{parentName:"li",href:"https://www.npmjs.com/package/busboy#busboy-methods"},"the official documentation")," for more information on the supported options."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"charset")," (string) (default ",(0,n.kt)("inlineCode",{parentName:"li"},"utf8"),"): it can be used to change default charset."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"disableContentTypeError")," (",(0,n.kt)("inlineCode",{parentName:"li"},"boolean"),") (optional): Skip throwing 415 when ",(0,n.kt)("inlineCode",{parentName:"li"},"Content-Type")," is invalid. Default: ",(0,n.kt)("inlineCode",{parentName:"li"},"true"),", will default to ",(0,n.kt)("inlineCode",{parentName:"li"},"false")," in next major version.")),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Note"),": this middleware will buffer all the data as it is processed internally by ",(0,n.kt)("inlineCode",{parentName:"p"},"busboy"),", so, if you are using this approach to parse significantly big volumes of data, keep in mind that all the data will be allocated in memory. This is somewhat inevitable with Lambdas (as the data is already encoded into the JSON in memory as Base64), but it's good to keep this in mind and evaluate the impact on you application.",(0,n.kt)("br",{parentName:"p"}),"\n","If you really have to deal with big files, then you might also want to consider to allowing your users to ",(0,n.kt)("a",{parentName:"p",href:"https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-UsingHTTPPOST.html"},"directly upload files to S3")),(0,n.kt)("h2",{id:"sample-usage"},"Sample usage"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\nimport httpHeaderNormalizer from '@middy/http-header-normalizer'\nimport httpMultipartBodyParser from '@middy/http-multipart-body-parser'\nconst handler = middy((event, context) => {\n return {}\n})\nhandler.use(httpHeaderNormalizer()).use(httpMultipartBodyParser())\n\n// invokes the handler\nconst event = {\n headers: {\n 'Content-Type':\n 'multipart/form-data; boundary=----WebKitFormBoundaryppsQEwf2BVJeCe0M'\n },\n body: 'LS0tLS0tV2ViS2l0Rm9ybUJvdW5kYXJ5cHBzUUV3ZjJCVkplQ2UwTQ0KQ29udGVudC1EaXNwb3NpdGlvbjogZm9ybS1kYXRhOyBuYW1lPSJmb28iDQoNCmJhcg0KLS0tLS0tV2ViS2l0Rm9ybUJvdW5kYXJ5cHBzUUV3ZjJCVkplQ2UwTS0t',\n isBase64Encoded: true\n}\nhandler(event, {}, (_, body) => {\n t.is(body, { foo: 'bar' })\n})\n")))}b.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3db93d31.cc672540.js b/assets/js/3db93d31.cc672540.js new file mode 100644 index 000000000..138a09ebb --- /dev/null +++ b/assets/js/3db93d31.cc672540.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[3631],{3252:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>h,frontMatter:()=>l,metadata:()=>d,toc:()=>c});var r=n(5893),a=n(1151),s=n(4866),o=n(5162);const l={title:"http-multipart-body-parser"},i=void 0,d={id:"middlewares/http-multipart-body-parser",title:"http-multipart-body-parser",description:"Automatically parses HTTP requests with content type multipart/form-data and converts the body into an",source:"@site/docs/middlewares/http-multipart-body-parser.md",sourceDirName:"middlewares",slug:"/middlewares/http-multipart-body-parser",permalink:"/docs/middlewares/http-multipart-body-parser",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/middlewares/http-multipart-body-parser.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",frontMatter:{title:"http-multipart-body-parser"},sidebar:"tutorialSidebar",previous:{title:"http-json-body-parser",permalink:"/docs/middlewares/http-json-body-parser"},next:{title:"http-partial-response",permalink:"/docs/middlewares/http-partial-response"}},u={},c=[{value:"Install",id:"install",level:2},{value:"Options",id:"options",level:2},{value:"Sample usage",id:"sample-usage",level:2}];function p(e){const t={a:"a",br:"br",code:"code",em:"em",h2:"h2",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,a.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(t.p,{children:["Automatically parses HTTP requests with content type ",(0,r.jsx)(t.code,{children:"multipart/form-data"})," and converts the body into an\nobject. Also handles gracefully broken JSON as ",(0,r.jsx)(t.em,{children:"Unsupported Media Type"})," (415 errors)\nif used in combination with ",(0,r.jsx)(t.code,{children:"httpErrorHandler"}),"."]}),"\n",(0,r.jsx)(t.p,{children:"It can also be used in combination with validator so that the content can be validated."}),"\n",(0,r.jsxs)(t.p,{children:[(0,r.jsx)(t.strong,{children:"Note"}),": by default this is going to parse only events that contain the header ",(0,r.jsx)(t.code,{children:"Content-Type"})," (or ",(0,r.jsx)(t.code,{children:"content-type"}),") set to ",(0,r.jsx)(t.code,{children:"multipart/form-data"}),". If you want to support different casing for the header name (e.g. ",(0,r.jsx)(t.code,{children:"Content-type"}),") then you should use the ",(0,r.jsx)(t.a,{href:"#httpheadernormalizer",children:(0,r.jsx)(t.code,{children:"httpHeaderNormalizer"})})," middleware before this middleware."]}),"\n",(0,r.jsx)(t.h2,{id:"install",children:"Install"}),"\n",(0,r.jsx)(t.p,{children:"To install this middleware you can use NPM:"}),"\n",(0,r.jsxs)(s.Z,{groupId:"npm2yarn",children:[(0,r.jsx)(o.Z,{value:"npm",children:(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-bash",children:"npm install --save @middy/http-multipart-body-parser\n"})})}),(0,r.jsx)(o.Z,{value:"yarn",label:"Yarn",children:(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-bash",children:"yarn add @middy/http-multipart-body-parser\n"})})}),(0,r.jsx)(o.Z,{value:"pnpm",label:"pnpm",children:(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-bash",children:"pnpm add @middy/http-multipart-body-parser\n"})})})]}),"\n",(0,r.jsx)(t.h2,{id:"options",children:"Options"}),"\n",(0,r.jsxs)(t.ul,{children:["\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:"busboy"})," (",(0,r.jsx)(t.code,{children:"object"}),") (optional): defaults to ",(0,r.jsx)(t.code,{children:"{}"})," and it can be used to pass extraparameters to the internal ",(0,r.jsx)(t.code,{children:"busboy"})," instance at creation time. Checkout ",(0,r.jsx)(t.a,{href:"https://www.npmjs.com/package/busboy#busboy-methods",children:"the official documentation"})," for more information on the supported options."]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:"charset"})," (string) (default ",(0,r.jsx)(t.code,{children:"utf8"}),"): it can be used to change default charset."]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:"disableContentTypeError"})," (",(0,r.jsx)(t.code,{children:"boolean"}),") (optional): Skip throwing 415 when ",(0,r.jsx)(t.code,{children:"Content-Type"})," is invalid. Default: ",(0,r.jsx)(t.code,{children:"true"}),", will default to ",(0,r.jsx)(t.code,{children:"false"})," in next major version."]}),"\n"]}),"\n",(0,r.jsxs)(t.p,{children:[(0,r.jsx)(t.strong,{children:"Note"}),": this middleware will buffer all the data as it is processed internally by ",(0,r.jsx)(t.code,{children:"busboy"}),", so, if you are using this approach to parse significantly big volumes of data, keep in mind that all the data will be allocated in memory. This is somewhat inevitable with Lambdas (as the data is already encoded into the JSON in memory as Base64), but it's good to keep this in mind and evaluate the impact on you application.",(0,r.jsx)(t.br,{}),"\n","If you really have to deal with big files, then you might also want to consider to allowing your users to ",(0,r.jsx)(t.a,{href:"https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-UsingHTTPPOST.html",children:"directly upload files to S3"})]}),"\n",(0,r.jsx)(t.h2,{id:"sample-usage",children:"Sample usage"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-javascript",children:"import middy from '@middy/core'\nimport httpHeaderNormalizer from '@middy/http-header-normalizer'\nimport httpMultipartBodyParser from '@middy/http-multipart-body-parser'\n\nconst lambdaHandler = (event, context) => {\n return {}\n}\n\nexport const handler = middy()\n .use(httpHeaderNormalizer())\n .use(httpMultipartBodyParser())\n .handler(lambdaHandler)\n\n// invokes the handler\nconst event = {\n headers: {\n 'Content-Type':\n 'multipart/form-data; boundary=----WebKitFormBoundaryppsQEwf2BVJeCe0M'\n },\n body: 'LS0tLS0tV2ViS2l0Rm9ybUJvdW5kYXJ5cHBzUUV3ZjJCVkplQ2UwTQ0KQ29udGVudC1EaXNwb3NpdGlvbjogZm9ybS1kYXRhOyBuYW1lPSJmb28iDQoNCmJhcg0KLS0tLS0tV2ViS2l0Rm9ybUJvdW5kYXJ5cHBzUUV3ZjJCVkplQ2UwTS0t',\n isBase64Encoded: true\n}\nhandler(event, {}, (_, body) => {\n t.is(body, { foo: 'bar' })\n})\n"})})]})}function h(e={}){const{wrapper:t}={...(0,a.a)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(p,{...e})}):p(e)}},5162:(e,t,n)=>{n.d(t,{Z:()=>o});n(7294);var r=n(6010);const a={tabItem:"tabItem_Ymn6"};var s=n(5893);function o(e){let{children:t,hidden:n,className:o}=e;return(0,s.jsx)("div",{role:"tabpanel",className:(0,r.Z)(a.tabItem,o),hidden:n,children:t})}},4866:(e,t,n)=>{n.d(t,{Z:()=>w});var r=n(7294),a=n(6010),s=n(2466),o=n(6550),l=n(469),i=n(1980),d=n(7392),u=n(12);function c(e){return r.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function p(e){const{values:t,children:n}=e;return(0,r.useMemo)((()=>{const e=t??function(e){return c(e).map((e=>{let{props:{value:t,label:n,attributes:r,default:a}}=e;return{value:t,label:n,attributes:r,default:a}}))}(n);return function(e){const t=(0,d.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[t,n])}function h(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function m(e){let{queryString:t=!1,groupId:n}=e;const a=(0,o.k6)(),s=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,i._X)(s),(0,r.useCallback)((e=>{if(!s)return;const t=new URLSearchParams(a.location.search);t.set(s,e),a.replace({...a.location,search:t.toString()})}),[s,a])]}function b(e){const{defaultValue:t,queryString:n=!1,groupId:a}=e,s=p(e),[o,i]=(0,r.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the component requires at least one children component");if(t){if(!h({value:t,tabValues:n}))throw new Error(`Docusaurus error: The has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const r=n.find((e=>e.default))??n[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:t,tabValues:s}))),[d,c]=m({queryString:n,groupId:a}),[b,f]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[a,s]=(0,u.Nk)(n);return[a,(0,r.useCallback)((e=>{n&&s.set(e)}),[n,s])]}({groupId:a}),y=(()=>{const e=d??b;return h({value:e,tabValues:s})?e:null})();(0,l.Z)((()=>{y&&i(y)}),[y]);return{selectedValue:o,selectValue:(0,r.useCallback)((e=>{if(!h({value:e,tabValues:s}))throw new Error(`Can't select invalid tab value=${e}`);i(e),c(e),f(e)}),[c,f,s]),tabValues:s}}var f=n(2389);const y={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var v=n(5893);function x(e){let{className:t,block:n,selectedValue:r,selectValue:o,tabValues:l}=e;const i=[],{blockElementScrollPositionUntilNextRender:d}=(0,s.o5)(),u=e=>{const t=e.currentTarget,n=i.indexOf(t),a=l[n].value;a!==r&&(d(t),o(a))},c=e=>{let t=null;switch(e.key){case"Enter":u(e);break;case"ArrowRight":{const n=i.indexOf(e.currentTarget)+1;t=i[n]??i[0];break}case"ArrowLeft":{const n=i.indexOf(e.currentTarget)-1;t=i[n]??i[i.length-1];break}}t?.focus()};return(0,v.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,a.Z)("tabs",{"tabs--block":n},t),children:l.map((e=>{let{value:t,label:n,attributes:s}=e;return(0,v.jsx)("li",{role:"tab",tabIndex:r===t?0:-1,"aria-selected":r===t,ref:e=>i.push(e),onKeyDown:c,onClick:u,...s,className:(0,a.Z)("tabs__item",y.tabItem,s?.className,{"tabs__item--active":r===t}),children:n??t},t)}))})}function j(e){let{lazy:t,children:n,selectedValue:a}=e;const s=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=s.find((e=>e.props.value===a));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return(0,v.jsx)("div",{className:"margin-top--md",children:s.map(((e,t)=>(0,r.cloneElement)(e,{key:t,hidden:e.props.value!==a})))})}function g(e){const t=b(e);return(0,v.jsxs)("div",{className:(0,a.Z)("tabs-container",y.tabList),children:[(0,v.jsx)(x,{...e,...t}),(0,v.jsx)(j,{...e,...t})]})}function w(e){const t=(0,f.Z)();return(0,v.jsx)(g,{...e,children:c(e.children)},String(t))}},1151:(e,t,n)=>{n.d(t,{Z:()=>l,a:()=>o});var r=n(7294);const a={},s=r.createContext(a);function o(e){const t=r.useContext(s);return r.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:o(e.components),r.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/3f569cdf.559ba438.js b/assets/js/3f569cdf.559ba438.js new file mode 100644 index 000000000..fbfda3174 --- /dev/null +++ b/assets/js/3f569cdf.559ba438.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[3775],{4775:(e,r,n)=>{n.r(r),n.d(r,{assets:()=>c,contentTitle:()=>o,default:()=>h,frontMatter:()=>i,metadata:()=>u,toc:()=>d});var t=n(5893),a=n(1151),s=n(4866),l=n(5162);const i={title:"warmup"},o=void 0,u={id:"middlewares/warmup",title:"warmup",description:"Warmup middleware that helps to reduce the cold-start issue. Compatible by default with serverless-plugin-warmup, but it can be configured to suit your implementation.",source:"@site/docs/middlewares/warmup.md",sourceDirName:"middlewares",slug:"/middlewares/warmup",permalink:"/docs/middlewares/warmup",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/middlewares/warmup.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",frontMatter:{title:"warmup"},sidebar:"tutorialSidebar",previous:{title:"validator",permalink:"/docs/middlewares/validator"},next:{title:"ws-json-body-parser",permalink:"/docs/middlewares/ws-json-body-parser"}},c={},d=[{value:"Install",id:"install",level:2},{value:"Options",id:"options",level:2},{value:"Sample usage",id:"sample-usage",level:2}];function p(e){const r={a:"a",code:"code",h2:"h2",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,a.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(r.p,{children:["Warmup middleware that helps to reduce the ",(0,t.jsx)(r.a,{href:"https://serverless.com/blog/keep-your-lambdas-warm/",children:"cold-start issue"}),". Compatible by default with ",(0,t.jsx)(r.a,{href:"https://www.npmjs.com/package/serverless-plugin-warmup",children:(0,t.jsx)(r.code,{children:"serverless-plugin-warmup"})}),", but it can be configured to suit your implementation."]}),"\n",(0,t.jsx)(r.p,{children:"This middleware allows you to specify a schedule to keep Lambdas that always need to be very responsive warmed-up. It does this by regularly invoking the Lambda, but will terminate early to avoid the actual handler logic from being run."}),"\n",(0,t.jsxs)(r.p,{children:["If you use ",(0,t.jsx)(r.a,{href:"https://www.npmjs.com/package/serverless-plugin-warmup",children:(0,t.jsx)(r.code,{children:"serverless-plugin-warmup"})}),' the scheduling part is done by the plugin and you just have to attach the middleware to your "middyfied" handler. If you don\'t want to use the plugin you have to create the schedule yourself and define the ',(0,t.jsx)(r.code,{children:"isWarmingUp"})," function to define whether the current event is a warmup event or an actual business logic execution."]}),"\n",(0,t.jsxs)(r.p,{children:[(0,t.jsx)(r.strong,{children:"Important:"})," AWS recently announced Lambda ",(0,t.jsx)(r.a,{href:"https://aws.amazon.com/about-aws/whats-new/2019/12/aws-lambda-announces-provisioned-concurrency/",children:"Provisioned Concurrency"}),". If you have this enabled, you do not need this middleware."]}),"\n",(0,t.jsx)(r.p,{children:"To update your code to use Provisioned Concurrency see:"}),"\n",(0,t.jsxs)(r.ul,{children:["\n",(0,t.jsx)(r.li,{children:(0,t.jsx)(r.a,{href:"https://aws.amazon.com/blogs/compute/new-for-aws-lambda-predictable-start-up-times-with-provisioned-concurrency/",children:"AWS Console"})}),"\n",(0,t.jsx)(r.li,{children:(0,t.jsx)(r.a,{href:"https://serverless.com/blog/aws-lambda-provisioned-concurrency/",children:"Serverless"})}),"\n",(0,t.jsx)(r.li,{children:(0,t.jsx)(r.a,{href:"https://www.terraform.io/docs/providers/aws/r/lambda_provisioned_concurrency_config.html",children:"Terraform"})}),"\n"]}),"\n",(0,t.jsx)(r.h2,{id:"install",children:"Install"}),"\n",(0,t.jsx)(r.p,{children:"To install this middleware you can use NPM:"}),"\n",(0,t.jsxs)(s.Z,{groupId:"npm2yarn",children:[(0,t.jsx)(l.Z,{value:"npm",children:(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-bash",children:"npm install --save @middy/warmup\n"})})}),(0,t.jsx)(l.Z,{value:"yarn",label:"Yarn",children:(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-bash",children:"yarn add @middy/warmup\n"})})}),(0,t.jsx)(l.Z,{value:"pnpm",label:"pnpm",children:(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-bash",children:"pnpm add @middy/warmup\n"})})})]}),"\n",(0,t.jsx)(r.h2,{id:"options",children:"Options"}),"\n",(0,t.jsxs)(r.ul,{children:["\n",(0,t.jsxs)(r.li,{children:[(0,t.jsx)(r.code,{children:"isWarmingUp"}),": a function that accepts the ",(0,t.jsx)(r.code,{children:"event"})," object as a parameter\nand returns ",(0,t.jsx)(r.code,{children:"true"})," if the current event is a warmup event and ",(0,t.jsx)(r.code,{children:"false"})," if it's a regular execution. The default function will check if the ",(0,t.jsx)(r.code,{children:"event"})," object has a ",(0,t.jsx)(r.code,{children:"source"})," property set to ",(0,t.jsx)(r.code,{children:"serverless-plugin-warmup"}),"."]}),"\n"]}),"\n",(0,t.jsx)(r.h2,{id:"sample-usage",children:"Sample usage"}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-javascript",children:"const middy = require('@middy/core')\nconst warmup = require('@middy/warmup')\n\nconst lambdaHandler = (event, context, cb) => {\n /* ... */\n}\n\nconst isWarmingUp = (event) => event.isWarmingUp === true\n\nexport const handler = middy()\n .use(warmup({ isWarmingUp }))\n .handler(lambdaHandler)\n"})})]})}function h(e={}){const{wrapper:r}={...(0,a.a)(),...e.components};return r?(0,t.jsx)(r,{...e,children:(0,t.jsx)(p,{...e})}):p(e)}},5162:(e,r,n)=>{n.d(r,{Z:()=>l});n(7294);var t=n(6010);const a={tabItem:"tabItem_Ymn6"};var s=n(5893);function l(e){let{children:r,hidden:n,className:l}=e;return(0,s.jsx)("div",{role:"tabpanel",className:(0,t.Z)(a.tabItem,l),hidden:n,children:r})}},4866:(e,r,n)=>{n.d(r,{Z:()=>j});var t=n(7294),a=n(6010),s=n(2466),l=n(6550),i=n(469),o=n(1980),u=n(7392),c=n(12);function d(e){return t.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,t.isValidElement)(e)&&function(e){const{props:r}=e;return!!r&&"object"==typeof r&&"value"in r}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function p(e){const{values:r,children:n}=e;return(0,t.useMemo)((()=>{const e=r??function(e){return d(e).map((e=>{let{props:{value:r,label:n,attributes:t,default:a}}=e;return{value:r,label:n,attributes:t,default:a}}))}(n);return function(e){const r=(0,u.l)(e,((e,r)=>e.value===r.value));if(r.length>0)throw new Error(`Docusaurus error: Duplicate values "${r.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[r,n])}function h(e){let{value:r,tabValues:n}=e;return n.some((e=>e.value===r))}function m(e){let{queryString:r=!1,groupId:n}=e;const a=(0,l.k6)(),s=function(e){let{queryString:r=!1,groupId:n}=e;if("string"==typeof r)return r;if(!1===r)return null;if(!0===r&&!n)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:r,groupId:n});return[(0,o._X)(s),(0,t.useCallback)((e=>{if(!s)return;const r=new URLSearchParams(a.location.search);r.set(s,e),a.replace({...a.location,search:r.toString()})}),[s,a])]}function b(e){const{defaultValue:r,queryString:n=!1,groupId:a}=e,s=p(e),[l,o]=(0,t.useState)((()=>function(e){let{defaultValue:r,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the component requires at least one children component");if(r){if(!h({value:r,tabValues:n}))throw new Error(`Docusaurus error: The has a defaultValue "${r}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return r}const t=n.find((e=>e.default))??n[0];if(!t)throw new Error("Unexpected error: 0 tabValues");return t.value}({defaultValue:r,tabValues:s}))),[u,d]=m({queryString:n,groupId:a}),[b,f]=function(e){let{groupId:r}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(r),[a,s]=(0,c.Nk)(n);return[a,(0,t.useCallback)((e=>{n&&s.set(e)}),[n,s])]}({groupId:a}),v=(()=>{const e=u??b;return h({value:e,tabValues:s})?e:null})();(0,i.Z)((()=>{v&&o(v)}),[v]);return{selectedValue:l,selectValue:(0,t.useCallback)((e=>{if(!h({value:e,tabValues:s}))throw new Error(`Can't select invalid tab value=${e}`);o(e),d(e),f(e)}),[d,f,s]),tabValues:s}}var f=n(2389);const v={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var w=n(5893);function g(e){let{className:r,block:n,selectedValue:t,selectValue:l,tabValues:i}=e;const o=[],{blockElementScrollPositionUntilNextRender:u}=(0,s.o5)(),c=e=>{const r=e.currentTarget,n=o.indexOf(r),a=i[n].value;a!==t&&(u(r),l(a))},d=e=>{let r=null;switch(e.key){case"Enter":c(e);break;case"ArrowRight":{const n=o.indexOf(e.currentTarget)+1;r=o[n]??o[0];break}case"ArrowLeft":{const n=o.indexOf(e.currentTarget)-1;r=o[n]??o[o.length-1];break}}r?.focus()};return(0,w.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,a.Z)("tabs",{"tabs--block":n},r),children:i.map((e=>{let{value:r,label:n,attributes:s}=e;return(0,w.jsx)("li",{role:"tab",tabIndex:t===r?0:-1,"aria-selected":t===r,ref:e=>o.push(e),onKeyDown:d,onClick:c,...s,className:(0,a.Z)("tabs__item",v.tabItem,s?.className,{"tabs__item--active":t===r}),children:n??r},r)}))})}function y(e){let{lazy:r,children:n,selectedValue:a}=e;const s=(Array.isArray(n)?n:[n]).filter(Boolean);if(r){const e=s.find((e=>e.props.value===a));return e?(0,t.cloneElement)(e,{className:"margin-top--md"}):null}return(0,w.jsx)("div",{className:"margin-top--md",children:s.map(((e,r)=>(0,t.cloneElement)(e,{key:r,hidden:e.props.value!==a})))})}function x(e){const r=b(e);return(0,w.jsxs)("div",{className:(0,a.Z)("tabs-container",v.tabList),children:[(0,w.jsx)(g,{...e,...r}),(0,w.jsx)(y,{...e,...r})]})}function j(e){const r=(0,f.Z)();return(0,w.jsx)(x,{...e,children:d(e.children)},String(r))}},1151:(e,r,n)=>{n.d(r,{Z:()=>i,a:()=>l});var t=n(7294);const a={},s=t.createContext(a);function l(e){const r=t.useContext(s);return t.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function i(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:l(e.components),t.createElement(s.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/3f569cdf.8982d424.js b/assets/js/3f569cdf.8982d424.js deleted file mode 100644 index b62d6a33a..000000000 --- a/assets/js/3f569cdf.8982d424.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[3775],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>f});var r=a(7294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var i=r.createContext({}),s=function(e){var t=r.useContext(i),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},c=function(e){var t=s(e.components);return r.createElement(i.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,l=e.originalType,i=e.parentName,c=u(e,["components","mdxType","originalType","parentName"]),p=s(a),m=n,f=p["".concat(i,".").concat(m)]||p[m]||d[m]||l;return a?r.createElement(f,o(o({ref:t},c),{},{components:a})):r.createElement(f,o({ref:t},c))}));function f(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=a.length,o=new Array(l);o[0]=m;var u={};for(var i in t)hasOwnProperty.call(t,i)&&(u[i]=t[i]);u.originalType=e,u[p]="string"==typeof e?e:n,o[1]=u;for(var s=2;s{a.d(t,{Z:()=>o});var r=a(7294),n=a(6010);const l={tabItem:"tabItem_Ymn6"};function o(e){let{children:t,hidden:a,className:o}=e;return r.createElement("div",{role:"tabpanel",className:(0,n.Z)(l.tabItem,o),hidden:a},t)}},4866:(e,t,a)=>{a.d(t,{Z:()=>k});var r=a(7462),n=a(7294),l=a(6010),o=a(2466),u=a(6550),i=a(1980),s=a(7392),c=a(12);function p(e){return function(e){return n.Children.map(e,(e=>{if(!e||(0,n.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:a,attributes:r,default:n}}=e;return{value:t,label:a,attributes:r,default:n}}))}function d(e){const{values:t,children:a}=e;return(0,n.useMemo)((()=>{const e=t??p(a);return function(e){const t=(0,s.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[t,a])}function m(e){let{value:t,tabValues:a}=e;return a.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:a}=e;const r=(0,u.k6)(),l=function(e){let{queryString:t=!1,groupId:a}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!a)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return a??null}({queryString:t,groupId:a});return[(0,i._X)(l),(0,n.useCallback)((e=>{if(!l)return;const t=new URLSearchParams(r.location.search);t.set(l,e),r.replace({...r.location,search:t.toString()})}),[l,r])]}function b(e){const{defaultValue:t,queryString:a=!1,groupId:r}=e,l=d(e),[o,u]=(0,n.useState)((()=>function(e){let{defaultValue:t,tabValues:a}=e;if(0===a.length)throw new Error("Docusaurus error: the component requires at least one children component");if(t){if(!m({value:t,tabValues:a}))throw new Error(`Docusaurus error: The has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${a.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const r=a.find((e=>e.default))??a[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:t,tabValues:l}))),[i,s]=f({queryString:a,groupId:r}),[p,b]=function(e){let{groupId:t}=e;const a=function(e){return e?`docusaurus.tab.${e}`:null}(t),[r,l]=(0,c.Nk)(a);return[r,(0,n.useCallback)((e=>{a&&l.set(e)}),[a,l])]}({groupId:r}),h=(()=>{const e=i??p;return m({value:e,tabValues:l})?e:null})();(0,n.useLayoutEffect)((()=>{h&&u(h)}),[h]);return{selectedValue:o,selectValue:(0,n.useCallback)((e=>{if(!m({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);u(e),s(e),b(e)}),[s,b,l]),tabValues:l}}var h=a(2389);const y={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};function v(e){let{className:t,block:a,selectedValue:u,selectValue:i,tabValues:s}=e;const c=[],{blockElementScrollPositionUntilNextRender:p}=(0,o.o5)(),d=e=>{const t=e.currentTarget,a=c.indexOf(t),r=s[a].value;r!==u&&(p(t),i(r))},m=e=>{let t=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{const a=c.indexOf(e.currentTarget)+1;t=c[a]??c[0];break}case"ArrowLeft":{const a=c.indexOf(e.currentTarget)-1;t=c[a]??c[c.length-1];break}}t?.focus()};return n.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":a},t)},s.map((e=>{let{value:t,label:a,attributes:o}=e;return n.createElement("li",(0,r.Z)({role:"tab",tabIndex:u===t?0:-1,"aria-selected":u===t,key:t,ref:e=>c.push(e),onKeyDown:m,onClick:d},o,{className:(0,l.Z)("tabs__item",y.tabItem,o?.className,{"tabs__item--active":u===t})}),a??t)})))}function w(e){let{lazy:t,children:a,selectedValue:r}=e;const l=(Array.isArray(a)?a:[a]).filter(Boolean);if(t){const e=l.find((e=>e.props.value===r));return e?(0,n.cloneElement)(e,{className:"margin-top--md"}):null}return n.createElement("div",{className:"margin-top--md"},l.map(((e,t)=>(0,n.cloneElement)(e,{key:t,hidden:e.props.value!==r}))))}function g(e){const t=b(e);return n.createElement("div",{className:(0,l.Z)("tabs-container",y.tabList)},n.createElement(v,(0,r.Z)({},e,t)),n.createElement(w,(0,r.Z)({},e,t)))}function k(e){const t=(0,h.Z)();return n.createElement(g,(0,r.Z)({key:String(t)},e))}},504:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>f,frontMatter:()=>u,metadata:()=>s,toc:()=>p});var r=a(7462),n=(a(7294),a(3905)),l=a(4866),o=a(5162);const u={title:"warmup"},i=void 0,s={unversionedId:"middlewares/warmup",id:"middlewares/warmup",title:"warmup",description:"Warmup middleware that helps to reduce the cold-start issue. Compatible by default with serverless-plugin-warmup, but it can be configured to suit your implementation.",source:"@site/docs/middlewares/warmup.md",sourceDirName:"middlewares",slug:"/middlewares/warmup",permalink:"/docs/middlewares/warmup",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/middlewares/warmup.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",frontMatter:{title:"warmup"},sidebar:"tutorialSidebar",previous:{title:"validator",permalink:"/docs/middlewares/validator"},next:{title:"ws-json-body-parser",permalink:"/docs/middlewares/ws-json-body-parser"}},c={},p=[{value:"Install",id:"install",level:2},{value:"Options",id:"options",level:2},{value:"Sample usage",id:"sample-usage",level:2}],d={toc:p},m="wrapper";function f(e){let{components:t,...a}=e;return(0,n.kt)(m,(0,r.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"Warmup middleware that helps to reduce the ",(0,n.kt)("a",{parentName:"p",href:"https://serverless.com/blog/keep-your-lambdas-warm/"},"cold-start issue"),". Compatible by default with ",(0,n.kt)("a",{parentName:"p",href:"https://www.npmjs.com/package/serverless-plugin-warmup"},(0,n.kt)("inlineCode",{parentName:"a"},"serverless-plugin-warmup")),", but it can be configured to suit your implementation."),(0,n.kt)("p",null,"This middleware allows you to specify a schedule to keep Lambdas that always need to be very responsive warmed-up. It does this by regularly invoking the Lambda, but will terminate early to avoid the actual handler logic from being run."),(0,n.kt)("p",null,"If you use ",(0,n.kt)("a",{parentName:"p",href:"https://www.npmjs.com/package/serverless-plugin-warmup"},(0,n.kt)("inlineCode",{parentName:"a"},"serverless-plugin-warmup")),' the scheduling part is done by the plugin and you just have to attach the middleware to your "middyfied" handler. If you don\'t want to use the plugin you have to create the schedule yourself and define the ',(0,n.kt)("inlineCode",{parentName:"p"},"isWarmingUp")," function to define whether the current event is a warmup event or an actual business logic execution."),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Important:")," AWS recently announced Lambda ",(0,n.kt)("a",{parentName:"p",href:"https://aws.amazon.com/about-aws/whats-new/2019/12/aws-lambda-announces-provisioned-concurrency/"},"Provisioned Concurrency"),". If you have this enabled, you do not need this middleware."),(0,n.kt)("p",null,"To update your code to use Provisioned Concurrency see:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://aws.amazon.com/blogs/compute/new-for-aws-lambda-predictable-start-up-times-with-provisioned-concurrency/"},"AWS Console")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://serverless.com/blog/aws-lambda-provisioned-concurrency/"},"Serverless")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://www.terraform.io/docs/providers/aws/r/lambda_provisioned_concurrency_config.html"},"Terraform"))),(0,n.kt)("h2",{id:"install"},"Install"),(0,n.kt)("p",null,"To install this middleware you can use NPM:"),(0,n.kt)(l.Z,{groupId:"npm2yarn",mdxType:"Tabs"},(0,n.kt)(o.Z,{value:"npm",mdxType:"TabItem"},(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-bash"},"npm install --save @middy/warmup\n"))),(0,n.kt)(o.Z,{value:"yarn",label:"Yarn",mdxType:"TabItem"},(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-bash"},"yarn add @middy/warmup\n"))),(0,n.kt)(o.Z,{value:"pnpm",label:"pnpm",mdxType:"TabItem"},(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-bash"},"pnpm add @middy/warmup\n")))),(0,n.kt)("h2",{id:"options"},"Options"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"isWarmingUp"),": a function that accepts the ",(0,n.kt)("inlineCode",{parentName:"li"},"event")," object as a parameter\nand returns ",(0,n.kt)("inlineCode",{parentName:"li"},"true")," if the current event is a warmup event and ",(0,n.kt)("inlineCode",{parentName:"li"},"false")," if it's a regular execution. The default function will check if the ",(0,n.kt)("inlineCode",{parentName:"li"},"event")," object has a ",(0,n.kt)("inlineCode",{parentName:"li"},"source")," property set to ",(0,n.kt)("inlineCode",{parentName:"li"},"serverless-plugin-warmup"),".")),(0,n.kt)("h2",{id:"sample-usage"},"Sample usage"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-javascript"},"const middy = require('@middy/core')\nconst warmup = require('@middy/warmup')\n\nconst isWarmingUp = (event) => event.isWarmingUp === true\n\nconst originalHandler = (event, context, cb) => {\n /* ... */\n}\n\nconst handler = middy(originalHandler)\n .use(warmup({ isWarmingUp }))\n")))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4149078a.2278715d.js b/assets/js/4149078a.2278715d.js new file mode 100644 index 000000000..00fc78d4d --- /dev/null +++ b/assets/js/4149078a.2278715d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[4183],{3171:(e,r,n)=>{n.r(r),n.d(r,{assets:()=>t,contentTitle:()=>i,default:()=>h,frontMatter:()=>d,metadata:()=>o,toc:()=>a});var s=n(5893),l=n(1151);const d={title:"Upgrade 2.x -> 3.x",sidebar_position:100},i=void 0,o={id:"upgrade/2-3",title:"Upgrade 2.x -> 3.x",description:'aka "The onError Reversal Update"',source:"@site/docs/upgrade/2-3.md",sourceDirName:"upgrade",slug:"/upgrade/2-3",permalink:"/docs/upgrade/2-3",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/upgrade/2-3.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",sidebarPosition:100,frontMatter:{title:"Upgrade 2.x -> 3.x",sidebar_position:100},sidebar:"tutorialSidebar",previous:{title:"Upgrade 3.x -> 4.x",permalink:"/docs/upgrade/3-4"},next:{title:"Upgrade 1.x -> 2.x",permalink:"/docs/upgrade/1-2"}},t={},a=[{value:"Notable changes",id:"notable-changes",level:2},{value:"Core",id:"core",level:2},{value:"Util",id:"util",level:2},{value:"Middleware",id:"middleware",level:2},{value:"cloudwatch-metrics",id:"cloudwatch-metrics",level:3},{value:"do-not-wait-for-empty-event-loop",id:"do-not-wait-for-empty-event-loop",level:3},{value:"error-logger",id:"error-logger",level:3},{value:"event-normalizer",id:"event-normalizer",level:3},{value:"http-content-encoding",id:"http-content-encoding",level:3},{value:"http-content-negotiation",id:"http-content-negotiation",level:3},{value:"http-cors",id:"http-cors",level:3},{value:"http-error-handler",id:"http-error-handler",level:3},{value:"http-event-normalizer",id:"http-event-normalizer",level:3},{value:"http-header-normalizer",id:"http-header-normalizer",level:3},{value:"http-json-body-parser",id:"http-json-body-parser",level:3},{value:"http-multipart-body-parser",id:"http-multipart-body-parser",level:3},{value:"http-partial-response",id:"http-partial-response",level:3},{value:"http-response-serializer",id:"http-response-serializer",level:3},{value:"http-router",id:"http-router",level:3},{value:"http-security-headers",id:"http-security-headers",level:3},{value:"http-urlencode-body-parser",id:"http-urlencode-body-parser",level:3},{value:"http-urlencode-path-parser",id:"http-urlencode-path-parser",level:3},{value:"input-output-logger",id:"input-output-logger",level:3},{value:"rds-signer",id:"rds-signer",level:3},{value:"s3-key-normalizer",id:"s3-key-normalizer",level:3},{value:"s3-object-response",id:"s3-object-response",level:3},{value:"secrets-manager",id:"secrets-manager",level:3},{value:"service-discovery",id:"service-discovery",level:3},{value:"sqs-json-body-parser",id:"sqs-json-body-parser",level:3},{value:"sqs-partial-batch-failure",id:"sqs-partial-batch-failure",level:3},{value:"ssm",id:"ssm",level:3},{value:"sts",id:"sts",level:3},{value:"validator",id:"validator",level:3},{value:"warmup",id:"warmup",level:3},{value:"ws-json-body-parser",id:"ws-json-body-parser",level:3},{value:"ws-response",id:"ws-response",level:3},{value:"ws-router",id:"ws-router",level:3},{value:"Notes",id:"notes",level:2}];function c(e){const r={a:"a",code:"code",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,l.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(r.p,{children:'aka "The onError Reversal Update"'}),"\n",(0,s.jsx)(r.p,{children:"Version 3.x of Middy no longer supports Node.js versions 12.x. You are highly encouraged to move to Node.js 16.x.\nWith the Node.js version change all packages are now ECMAScript Modules along side CommonJS Modules."}),"\n",(0,s.jsx)(r.h2,{id:"notable-changes",children:"Notable changes"}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsx)(r.li,{children:"New WebSocket middlewares"}),"\n",(0,s.jsx)(r.li,{children:"HTTP & WebSocket Routers!"}),"\n",(0,s.jsx)(r.li,{children:"Better error handling"}),"\n",(0,s.jsx)(r.li,{children:"Timeout error handling"}),"\n",(0,s.jsxs)(r.li,{children:["Errors now use ",(0,s.jsx)(r.code,{children:"{ cause }"})," for better context"]}),"\n"]}),"\n",(0,s.jsx)(r.h2,{id:"core",children:"Core"}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:[(0,s.jsx)(r.code,{children:"onError"})," middleware stack order reversed to match ",(0,s.jsx)(r.code,{children:"after"})," ",(0,s.jsx)(r.strong,{children:"[Breaking Change]"}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:["If you only use ",(0,s.jsx)(r.code,{children:"@middy/*"})," middlewares no change should be required"]}),"\n",(0,s.jsxs)(r.li,{children:["This change has trickle down effects on middlewares with ",(0,s.jsx)(r.code,{children:"onError"})," (see below for details)"]}),"\n",(0,s.jsxs)(r.li,{children:["If you're handling errors yourself here are some things to review:","\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsx)(r.li,{children:"Attach near the end so it is triggered first (likely already done)"}),"\n",(0,s.jsxs)(r.li,{children:["Remove ",(0,s.jsx)(r.code,{children:"return response"}),", this will short circuit the response and block later middleware from modifying the response"]}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(r.li,{children:["lambdaHandler now passes ",(0,s.jsx)(r.code,{children:"{signal}"})," from ",(0,s.jsx)(r.code,{children:"AbortController"})," to allow for ending lambda early to handle timeout errors"]}),"\n",(0,s.jsxs)(r.li,{children:[(0,s.jsx)(r.code,{children:"plugin"})," argument now supports:","\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:[(0,s.jsx)(r.code,{children:"internal"}),": Allow the use of ",(0,s.jsx)(r.code,{children:"new Proxy()"})," for smarter triggering in advanced use cases."]}),"\n",(0,s.jsxs)(r.li,{children:[(0,s.jsx)(r.code,{children:"timeoutEarlyInMillis"}),": When before lambda timeout to trigger early exit. Default ",(0,s.jsx)(r.code,{children:"5"})]}),"\n",(0,s.jsxs)(r.li,{children:[(0,s.jsx)(r.code,{children:"timeoutEarlyResponse"}),": Function to throw a custom error or return a pre-set value. Default ",(0,s.jsx)(r.code,{children:"() => { throw new Error('Timeout') }"})]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(r.li,{children:["Added ",(0,s.jsx)(r.code,{children:".handler()"})," method to allow easier understanding of the execution cycle"]}),"\n",(0,s.jsxs)(r.li,{children:["Deprecate ",(0,s.jsx)(r.code,{children:"applyMiddleware()"})," and ",(0,s.jsx)(r.code,{children:"__middlewares"})," ",(0,s.jsx)(r.strong,{children:"[Breaking Change]"})]}),"\n"]}),"\n",(0,s.jsx)(r.h2,{id:"util",children:"Util"}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:[(0,s.jsx)(r.code,{children:"getInternal"})," error now includes ",(0,s.jsx)(r.code,{children:"cause"})," set to an array of Errors"]}),"\n",(0,s.jsxs)(r.li,{children:["Catch when ",(0,s.jsx)(r.code,{children:"X-Ray"})," is applied outside of handler invocation scope"]}),"\n",(0,s.jsxs)(r.li,{children:[(0,s.jsx)(r.code,{children:"normalizeHttpResponse"})," now takes ",(0,s.jsx)(r.code,{children:"request"})," and mutates response ",(0,s.jsx)(r.strong,{children:"[Breaking Change]"})]}),"\n",(0,s.jsxs)(r.li,{children:[(0,s.jsx)(r.code,{children:"getCache"})," will return ",(0,s.jsx)(r.code,{children:"{}"})," instead of ",(0,s.jsx)(r.code,{children:"undefined"})," when not found ",(0,s.jsx)(r.strong,{children:"[Breaking Change]"})]}),"\n"]}),"\n",(0,s.jsx)(r.h2,{id:"middleware",children:"Middleware"}),"\n",(0,s.jsx)(r.h3,{id:"cloudwatch-metrics",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/cloudwatch-metrics",children:"cloudwatch-metrics"})}),"\n",(0,s.jsx)(r.p,{children:"No change"}),"\n",(0,s.jsx)(r.h3,{id:"do-not-wait-for-empty-event-loop",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/do-not-wait-for-empty-event-loop",children:"do-not-wait-for-empty-event-loop"})}),"\n",(0,s.jsx)(r.p,{children:"No change"}),"\n",(0,s.jsx)(r.h3,{id:"error-logger",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/error-logger",children:"error-logger"})}),"\n",(0,s.jsx)(r.p,{children:"No change"}),"\n",(0,s.jsx)(r.h3,{id:"event-normalizer",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/event-normalizer",children:"event-normalizer"})}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsx)(r.li,{children:"Add support for all missing AWS events"}),"\n",(0,s.jsx)(r.li,{children:"Refactored for performance improvements"}),"\n"]}),"\n",(0,s.jsx)(r.h3,{id:"http-content-encoding",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/http-content-encoding",children:"http-content-encoding"})}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:["[New] Applies ",(0,s.jsx)(r.code,{children:"brotli"}),", ",(0,s.jsx)(r.code,{children:"gzip"}),", ands ",(0,s.jsx)(r.code,{children:"deflate"})," compression to response body"]}),"\n"]}),"\n",(0,s.jsx)(r.h3,{id:"http-content-negotiation",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/http-content-negotiation",children:"http-content-negotiation"})}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:["Add in ",(0,s.jsx)(r.code,{children:"defaultToFirstLanguage"})," to allow fallback to a safe language to use"]}),"\n"]}),"\n",(0,s.jsx)(r.h3,{id:"http-cors",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/http-cors",children:"http-cors"})}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:[(0,s.jsx)(r.code,{children:"onError"})," will not modify response unless error has been handled"]}),"\n",(0,s.jsx)(r.li,{children:"Small refactor for performance improvements"}),"\n"]}),"\n",(0,s.jsx)(r.h3,{id:"http-error-handler",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/http-error-handler",children:"http-error-handler"})}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:["No longer returns the response to short circuit the middleware stack to allow for easier use now that ",(0,s.jsx)(r.code,{children:"onError"})," is called in reverse order."]}),"\n"]}),"\n",(0,s.jsx)(r.h3,{id:"http-event-normalizer",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/http-event-normalizer",children:"http-event-normalizer"})}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:["Option ",(0,s.jsx)(r.code,{children:"payloadFormatVersion"})," no longer needed"]}),"\n",(0,s.jsxs)(r.li,{children:["Will now throw error if not an http event ",(0,s.jsx)(r.strong,{children:"[Breaking Change]"})]}),"\n"]}),"\n",(0,s.jsx)(r.h3,{id:"http-header-normalizer",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/http-header-normalizer",children:"http-header-normalizer"})}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:["Modified so that all headers are set to lowercase when ",(0,s.jsx)(r.code,{children:"canonical:false"})," ",(0,s.jsx)(r.strong,{children:"[Breaking Change]"})]}),"\n"]}),"\n",(0,s.jsx)(r.h3,{id:"http-json-body-parser",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/http-json-body-parser",children:"http-json-body-parser"})}),"\n",(0,s.jsx)(r.p,{children:"No change"}),"\n",(0,s.jsx)(r.h3,{id:"http-multipart-body-parser",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/http-multipart-body-parser",children:"http-multipart-body-parser"})}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:["Change default charset from ",(0,s.jsx)(r.code,{children:"binary"}),"/",(0,s.jsx)(r.code,{children:"latin1"})," to ",(0,s.jsx)(r.code,{children:"utf-8"}),". ",(0,s.jsx)(r.strong,{children:"[Breaking Change]"})]}),"\n"]}),"\n",(0,s.jsx)(r.h3,{id:"http-partial-response",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/http-partial-response",children:"http-partial-response"})}),"\n",(0,s.jsx)(r.p,{children:"No change"}),"\n",(0,s.jsx)(r.h3,{id:"http-response-serializer",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/http-response-serializer",children:"http-response-serializer"})}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:["Renamed ",(0,s.jsx)(r.code,{children:"default"})," option to ",(0,s.jsx)(r.code,{children:"defaultContentType"})," to improve maintainability ",(0,s.jsx)(r.strong,{children:"[Breaking Change]"})]}),"\n",(0,s.jsxs)(r.li,{children:[(0,s.jsx)(r.code,{children:"onError"})," will not modify response unless error has been handled"]}),"\n"]}),"\n",(0,s.jsx)(r.h3,{id:"http-router",children:(0,s.jsx)(r.a,{href:"/docs/routers/http-router",children:"http-router"})}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsx)(r.li,{children:"[New] Allow re-routing of events to different handlers"}),"\n"]}),"\n",(0,s.jsx)(r.h3,{id:"http-security-headers",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/http-security-headers",children:"http-security-headers"})}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:[(0,s.jsx)(r.code,{children:"onError"})," will not modify response unless error has been handled"]}),"\n",(0,s.jsxs)(r.li,{children:["Complete rewrite of options and inclusion of new HTML only headers ",(0,s.jsx)(r.strong,{children:"[Breaking Change]"})]}),"\n"]}),"\n",(0,s.jsx)(r.h3,{id:"http-urlencode-body-parser",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/http-urlencode-body-parser",children:"http-urlencode-body-parser"})}),"\n",(0,s.jsx)(r.p,{children:"No change"}),"\n",(0,s.jsx)(r.h3,{id:"http-urlencode-path-parser",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/http-urlencode-path-parser",children:"http-urlencode-path-parser"})}),"\n",(0,s.jsx)(r.p,{children:"No change"}),"\n",(0,s.jsx)(r.h3,{id:"input-output-logger",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/input-output-logger",children:"input-output-logger"})}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsx)(r.li,{children:"Add in new option to mask instead of omit a path."}),"\n"]}),"\n",(0,s.jsx)(r.h3,{id:"rds-signer",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/rds-signer",children:"rds-signer"})}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:["Deprecated ",(0,s.jsx)(r.code,{children:"setToEnv"})," option due to possible security misuse ",(0,s.jsx)(r.strong,{children:"[Breaking Change]"})]}),"\n"]}),"\n",(0,s.jsx)(r.h3,{id:"s3-key-normalizer",children:"s3-key-normalizer"}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:["Deprecated in favour of ",(0,s.jsx)(r.a,{href:"/docs/middlewares/event-normalizer",children:(0,s.jsx)(r.code,{children:"event-normalizer"})}),", v2.x compatible with v3"]}),"\n"]}),"\n",(0,s.jsx)(r.h3,{id:"s3-object-response",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/s3-object-response",children:"s3-object-response"})}),"\n",(0,s.jsx)(r.p,{children:"No change"}),"\n",(0,s.jsx)(r.h3,{id:"secrets-manager",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/secrets-manager",children:"secrets-manager"})}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:["Deprecated ",(0,s.jsx)(r.code,{children:"setToEnv"})," option due to possible security misuse ",(0,s.jsx)(r.strong,{children:"[Breaking Change]"})]}),"\n"]}),"\n",(0,s.jsx)(r.h3,{id:"service-discovery",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/service-discovery",children:"service-discovery"})}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsx)(r.li,{children:"[New] Allow easy access to discoveryInstances"}),"\n"]}),"\n",(0,s.jsx)(r.h3,{id:"sqs-json-body-parser",children:"sqs-json-body-parser"}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:["Deprecated in favour of ",(0,s.jsx)(r.a,{href:"/docs/middlewares/event-normalizer",children:(0,s.jsx)(r.code,{children:"event-normalizer"})}),", v2.x compatible with v3"]}),"\n"]}),"\n",(0,s.jsx)(r.h3,{id:"sqs-partial-batch-failure",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/sqs-partial-batch-failure",children:"sqs-partial-batch-failure"})}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:["Complete rewrite to take advantage of ",(0,s.jsx)(r.a,{href:"https://aws.amazon.com/about-aws/whats-new/2021/11/aws-lambda-partial-batch-response-sqs-event-source/",children:"https://aws.amazon.com/about-aws/whats-new/2021/11/aws-lambda-partial-batch-response-sqs-event-source/"}),", will no longer throw an error if any message fails ",(0,s.jsx)(r.strong,{children:"[Breaking Change]"})]}),"\n"]}),"\n",(0,s.jsx)(r.h3,{id:"ssm",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/ssm",children:"ssm"})}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:["Deprecated ",(0,s.jsx)(r.code,{children:"setToEnv"})," option ",(0,s.jsx)(r.strong,{children:"[Breaking Change]"})]}),"\n"]}),"\n",(0,s.jsx)(r.h3,{id:"sts",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/sts",children:"sts"})}),"\n",(0,s.jsx)(r.p,{children:"No change"}),"\n",(0,s.jsx)(r.h3,{id:"validator",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/validator",children:"validator"})}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:["Change where errors are stored, from ",(0,s.jsx)(r.code,{children:"request.error.details"})," to ",(0,s.jsx)(r.code,{children:"request.error.cause"})," ",(0,s.jsx)(r.strong,{children:"[Breaking Change]"})]}),"\n",(0,s.jsxs)(r.li,{children:["Add new options ",(0,s.jsx)(r.code,{children:"eventSchema"}),", ",(0,s.jsx)(r.code,{children:"contextSchema"}),", ",(0,s.jsx)(r.code,{children:"responseSchema"}),". ",(0,s.jsx)(r.code,{children:"inputSchema"})," and ",(0,s.jsx)(r.code,{children:"outputSchema"})," become aliases."]}),"\n"]}),"\n",(0,s.jsx)(r.h3,{id:"warmup",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/warmup",children:"warmup"})}),"\n",(0,s.jsx)(r.p,{children:"No change"}),"\n",(0,s.jsx)(r.h3,{id:"ws-json-body-parser",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/ws-json-body-parser",children:"ws-json-body-parser"})}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsx)(r.li,{children:"[New] Parse body from WebSocket event"}),"\n"]}),"\n",(0,s.jsx)(r.h3,{id:"ws-response",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/ws-response",children:"ws-response"})}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsx)(r.li,{children:"[New] Post responses to WebSocket API Gateway"}),"\n"]}),"\n",(0,s.jsx)(r.h3,{id:"ws-router",children:(0,s.jsx)(r.a,{href:"/docs/routers/ws-router",children:"ws-router"})}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsx)(r.li,{children:"[New] Allow re-routing of events to different handlers"}),"\n"]}),"\n",(0,s.jsx)(r.h2,{id:"notes",children:"Notes"}),"\n",(0,s.jsxs)(r.p,{children:["If you still need ",(0,s.jsx)(r.code,{children:"setToEnv"})," you can do something like so:"]}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-javascript",children:"middy(lambdaHandler)\n .use(/*...*/)\n .before(async (request) => {\n const values = await getInternal(['NODE_ENV'], request)\n process.env.NODE_ENV = values.NODE_ENV\n })\n"})})]})}function h(e={}){const{wrapper:r}={...(0,l.a)(),...e.components};return r?(0,s.jsx)(r,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},1151:(e,r,n)=>{n.d(r,{Z:()=>o,a:()=>i});var s=n(7294);const l={},d=s.createContext(l);function i(e){const r=s.useContext(d);return s.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function o(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:i(e.components),s.createElement(d.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/4149078a.8c2f92fe.js b/assets/js/4149078a.8c2f92fe.js deleted file mode 100644 index 361ec8554..000000000 --- a/assets/js/4149078a.8c2f92fe.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[4183],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>c});var a=r(7294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function o(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=a.createContext({}),d=function(e){var t=a.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},p=function(e){var t=d(e.components);return a.createElement(s.Provider,{value:t},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},h=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,l=e.originalType,s=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),u=d(r),h=n,c=u["".concat(s,".").concat(h)]||u[h]||m[h]||l;return r?a.createElement(c,o(o({ref:t},p),{},{components:r})):a.createElement(c,o({ref:t},p))}));function c(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=r.length,o=new Array(l);o[0]=h;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[u]="string"==typeof e?e:n,o[1]=i;for(var d=2;d{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>m,frontMatter:()=>l,metadata:()=>i,toc:()=>d});var a=r(7462),n=(r(7294),r(3905));const l={title:"Upgrade 2.x -> 3.x",sidebar_position:100},o=void 0,i={unversionedId:"upgrade/2-3",id:"upgrade/2-3",title:"Upgrade 2.x -> 3.x",description:"Version 3.x of Middy no longer supports Node.js versions 12.x. You are highly encouraged to move to Node.js 16.x.",source:"@site/docs/upgrade/2-3.md",sourceDirName:"upgrade",slug:"/upgrade/2-3",permalink:"/docs/upgrade/2-3",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/upgrade/2-3.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",sidebarPosition:100,frontMatter:{title:"Upgrade 2.x -> 3.x",sidebar_position:100},sidebar:"tutorialSidebar",previous:{title:"Upgrade 3.x -> 4.x",permalink:"/docs/upgrade/3-4"},next:{title:"Upgrade 1.x -> 2.x",permalink:"/docs/upgrade/1-2"}},s={},d=[{value:"Notable changes",id:"notable-changes",level:2},{value:"Core",id:"core",level:2},{value:"Util",id:"util",level:2},{value:"Middleware",id:"middleware",level:2},{value:"cloudwatch-metrics",id:"cloudwatch-metrics",level:3},{value:"do-not-wait-for-empty-event-loop",id:"do-not-wait-for-empty-event-loop",level:3},{value:"error-logger",id:"error-logger",level:3},{value:"event-normalizer",id:"event-normalizer",level:3},{value:"http-content-encoding",id:"http-content-encoding",level:3},{value:"http-content-negotiation",id:"http-content-negotiation",level:3},{value:"http-cors",id:"http-cors",level:3},{value:"http-error-handler",id:"http-error-handler",level:3},{value:"http-event-normalizer",id:"http-event-normalizer",level:3},{value:"http-header-normalizer",id:"http-header-normalizer",level:3},{value:"http-json-body-parser",id:"http-json-body-parser",level:3},{value:"http-multipart-body-parser",id:"http-multipart-body-parser",level:3},{value:"http-partial-response",id:"http-partial-response",level:3},{value:"http-response-serializer",id:"http-response-serializer",level:3},{value:"http-router",id:"http-router",level:3},{value:"http-security-headers",id:"http-security-headers",level:3},{value:"http-urlencode-body-parser",id:"http-urlencode-body-parser",level:3},{value:"http-urlencode-path-parser",id:"http-urlencode-path-parser",level:3},{value:"input-output-logger",id:"input-output-logger",level:3},{value:"rds-signer",id:"rds-signer",level:3},{value:"s3-key-normalizer",id:"s3-key-normalizer",level:3},{value:"s3-object-response",id:"s3-object-response",level:3},{value:"secrets-manager",id:"secrets-manager",level:3},{value:"service-discovery",id:"service-discovery",level:3},{value:"sqs-json-body-parser",id:"sqs-json-body-parser",level:3},{value:"sqs-partial-batch-failure",id:"sqs-partial-batch-failure",level:3},{value:"ssm",id:"ssm",level:3},{value:"sts",id:"sts",level:3},{value:"validator",id:"validator",level:3},{value:"warmup",id:"warmup",level:3},{value:"ws-json-body-parser",id:"ws-json-body-parser",level:3},{value:"ws-response",id:"ws-response",level:3},{value:"ws-router",id:"ws-router",level:3},{value:"Notes",id:"notes",level:2}],p={toc:d},u="wrapper";function m(e){let{components:t,...r}=e;return(0,n.kt)(u,(0,a.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"Version 3.x of Middy no longer supports Node.js versions 12.x. You are highly encouraged to move to Node.js 16.x.\nWith the Node.js version change all packages are now ECMAScript Modules along side CommonJS Modules."),(0,n.kt)("h2",{id:"notable-changes"},"Notable changes"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"New WebSocket middlewares"),(0,n.kt)("li",{parentName:"ul"},"HTTP & WebSocket Routers!"),(0,n.kt)("li",{parentName:"ul"},"Better error handling"),(0,n.kt)("li",{parentName:"ul"},"Timeout error handling"),(0,n.kt)("li",{parentName:"ul"},"Errors now use ",(0,n.kt)("inlineCode",{parentName:"li"},"{ cause }")," for better context")),(0,n.kt)("h2",{id:"core"},"Core"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"onError")," middleware stack order reversed to match ",(0,n.kt)("inlineCode",{parentName:"li"},"after")," ",(0,n.kt)("strong",{parentName:"li"},"[Breaking Change]"),(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"If you only use ",(0,n.kt)("inlineCode",{parentName:"li"},"@middy/*")," middlewares no change should be required"),(0,n.kt)("li",{parentName:"ul"},"This change has trickle down effects on middlewares with ",(0,n.kt)("inlineCode",{parentName:"li"},"onError")," (see below for details)"),(0,n.kt)("li",{parentName:"ul"},"If you're handling errors yourself here are some things to review:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Attach near the end so it is triggered first (likely already done)"),(0,n.kt)("li",{parentName:"ul"},"Remove ",(0,n.kt)("inlineCode",{parentName:"li"},"return response"),", this will short circuit the response and block later middleware from modifying the response"))))),(0,n.kt)("li",{parentName:"ul"},"lambdaHandler now passes ",(0,n.kt)("inlineCode",{parentName:"li"},"{signal}")," from ",(0,n.kt)("inlineCode",{parentName:"li"},"AbortController")," to allow for ending lambda early to handle timeout errors"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"plugin")," argument now supports:",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"internal"),": Allow the use of ",(0,n.kt)("inlineCode",{parentName:"li"},"new Proxy()")," for smarter triggering in advanced use cases."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"timeoutEarlyInMillis"),": When before lambda timeout to trigger early exit. Default ",(0,n.kt)("inlineCode",{parentName:"li"},"5")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"timeoutEarlyResponse"),": Function to throw a custom error or return a pre-set value. Default ",(0,n.kt)("inlineCode",{parentName:"li"},"() => { throw new Error('Timeout') }")))),(0,n.kt)("li",{parentName:"ul"},"Added ",(0,n.kt)("inlineCode",{parentName:"li"},".handler()")," method to allow easier understanding of the execution cycle"),(0,n.kt)("li",{parentName:"ul"},"Deprecate ",(0,n.kt)("inlineCode",{parentName:"li"},"applyMiddleware()")," and ",(0,n.kt)("inlineCode",{parentName:"li"},"__middlewares")," ",(0,n.kt)("strong",{parentName:"li"},"[Breaking Change]"))),(0,n.kt)("h2",{id:"util"},"Util"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"getInternal")," error now includes ",(0,n.kt)("inlineCode",{parentName:"li"},"cause")," set to an array of Errors"),(0,n.kt)("li",{parentName:"ul"},"Catch when ",(0,n.kt)("inlineCode",{parentName:"li"},"X-Ray")," is applied outside of handler invocation scope"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"normalizeHttpResponse")," now takes ",(0,n.kt)("inlineCode",{parentName:"li"},"request")," and mutates response ",(0,n.kt)("strong",{parentName:"li"},"[Breaking Change]")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"getCache")," will return ",(0,n.kt)("inlineCode",{parentName:"li"},"{}")," instead of ",(0,n.kt)("inlineCode",{parentName:"li"},"undefined")," when not found ",(0,n.kt)("strong",{parentName:"li"},"[Breaking Change]"))),(0,n.kt)("h2",{id:"middleware"},"Middleware"),(0,n.kt)("h3",{id:"cloudwatch-metrics"},(0,n.kt)("a",{parentName:"h3",href:"/docs/middlewares/cloudwatch-metrics"},"cloudwatch-metrics")),(0,n.kt)("p",null,"No change"),(0,n.kt)("h3",{id:"do-not-wait-for-empty-event-loop"},(0,n.kt)("a",{parentName:"h3",href:"/docs/middlewares/do-not-wait-for-empty-event-loop"},"do-not-wait-for-empty-event-loop")),(0,n.kt)("p",null,"No change"),(0,n.kt)("h3",{id:"error-logger"},(0,n.kt)("a",{parentName:"h3",href:"/docs/middlewares/error-logger"},"error-logger")),(0,n.kt)("p",null,"No change"),(0,n.kt)("h3",{id:"event-normalizer"},(0,n.kt)("a",{parentName:"h3",href:"/docs/middlewares/event-normalizer"},"event-normalizer")),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Add support for all missing AWS events"),(0,n.kt)("li",{parentName:"ul"},"Refactored for performance improvements")),(0,n.kt)("h3",{id:"http-content-encoding"},(0,n.kt)("a",{parentName:"h3",href:"/docs/middlewares/http-content-encoding"},"http-content-encoding")),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"[New]"," Applies ",(0,n.kt)("inlineCode",{parentName:"li"},"brotli"),", ",(0,n.kt)("inlineCode",{parentName:"li"},"gzip"),", ands ",(0,n.kt)("inlineCode",{parentName:"li"},"deflate")," compression to response body")),(0,n.kt)("h3",{id:"http-content-negotiation"},(0,n.kt)("a",{parentName:"h3",href:"/docs/middlewares/http-content-negotiation"},"http-content-negotiation")),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Add in ",(0,n.kt)("inlineCode",{parentName:"li"},"defaultToFirstLanguage")," to allow fallback to a safe language to use")),(0,n.kt)("h3",{id:"http-cors"},(0,n.kt)("a",{parentName:"h3",href:"/docs/middlewares/http-cors"},"http-cors")),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"onError")," will not modify response unless error has been handled"),(0,n.kt)("li",{parentName:"ul"},"Small refactor for performance improvements")),(0,n.kt)("h3",{id:"http-error-handler"},(0,n.kt)("a",{parentName:"h3",href:"/docs/middlewares/http-error-handler"},"http-error-handler")),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"No longer returns the response to short circuit the middleware stack to allow for easier use now that ",(0,n.kt)("inlineCode",{parentName:"li"},"onError")," is called in reverse order.")),(0,n.kt)("h3",{id:"http-event-normalizer"},(0,n.kt)("a",{parentName:"h3",href:"/docs/middlewares/http-event-normalizer"},"http-event-normalizer")),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Option ",(0,n.kt)("inlineCode",{parentName:"li"},"payloadFormatVersion")," no longer needed"),(0,n.kt)("li",{parentName:"ul"},"Will now throw error if not an http event ",(0,n.kt)("strong",{parentName:"li"},"[Breaking Change]"))),(0,n.kt)("h3",{id:"http-header-normalizer"},(0,n.kt)("a",{parentName:"h3",href:"/docs/middlewares/http-header-normalizer"},"http-header-normalizer")),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Modified so that all headers are set to lowercase when ",(0,n.kt)("inlineCode",{parentName:"li"},"canonical:false")," ",(0,n.kt)("strong",{parentName:"li"},"[Breaking Change]"))),(0,n.kt)("h3",{id:"http-json-body-parser"},(0,n.kt)("a",{parentName:"h3",href:"/docs/middlewares/http-json-body-parser"},"http-json-body-parser")),(0,n.kt)("p",null,"No change"),(0,n.kt)("h3",{id:"http-multipart-body-parser"},(0,n.kt)("a",{parentName:"h3",href:"/docs/middlewares/http-multipart-body-parser"},"http-multipart-body-parser")),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Change default charset from ",(0,n.kt)("inlineCode",{parentName:"li"},"binary"),"/",(0,n.kt)("inlineCode",{parentName:"li"},"latin1")," to ",(0,n.kt)("inlineCode",{parentName:"li"},"utf-8"),". ",(0,n.kt)("strong",{parentName:"li"},"[Breaking Change]"))),(0,n.kt)("h3",{id:"http-partial-response"},(0,n.kt)("a",{parentName:"h3",href:"/docs/middlewares/http-partial-response"},"http-partial-response")),(0,n.kt)("p",null,"No change"),(0,n.kt)("h3",{id:"http-response-serializer"},(0,n.kt)("a",{parentName:"h3",href:"/docs/middlewares/http-response-serializer"},"http-response-serializer")),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Renamed ",(0,n.kt)("inlineCode",{parentName:"li"},"default")," option to ",(0,n.kt)("inlineCode",{parentName:"li"},"defaultContentType")," to improve maintainability ",(0,n.kt)("strong",{parentName:"li"},"[Breaking Change]")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"onError")," will not modify response unless error has been handled")),(0,n.kt)("h3",{id:"http-router"},(0,n.kt)("a",{parentName:"h3",href:"/docs/routers/http-router"},"http-router")),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"[New]"," Allow re-routing of events to different handlers")),(0,n.kt)("h3",{id:"http-security-headers"},(0,n.kt)("a",{parentName:"h3",href:"/docs/middlewares/http-security-headers"},"http-security-headers")),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"onError")," will not modify response unless error has been handled"),(0,n.kt)("li",{parentName:"ul"},"Complete rewrite of options and inclusion of new HTML only headers ",(0,n.kt)("strong",{parentName:"li"},"[Breaking Change]"))),(0,n.kt)("h3",{id:"http-urlencode-body-parser"},(0,n.kt)("a",{parentName:"h3",href:"/docs/middlewares/http-urlencode-body-parser"},"http-urlencode-body-parser")),(0,n.kt)("p",null,"No change"),(0,n.kt)("h3",{id:"http-urlencode-path-parser"},(0,n.kt)("a",{parentName:"h3",href:"/docs/middlewares/http-urlencode-path-parser"},"http-urlencode-path-parser")),(0,n.kt)("p",null,"No change"),(0,n.kt)("h3",{id:"input-output-logger"},(0,n.kt)("a",{parentName:"h3",href:"/docs/middlewares/input-output-logger"},"input-output-logger")),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Add in new option to mask instead of omit a path.")),(0,n.kt)("h3",{id:"rds-signer"},(0,n.kt)("a",{parentName:"h3",href:"/docs/middlewares/rds-signer"},"rds-signer")),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Deprecated ",(0,n.kt)("inlineCode",{parentName:"li"},"setToEnv")," option due to possible security misuse ",(0,n.kt)("strong",{parentName:"li"},"[Breaking Change]"))),(0,n.kt)("h3",{id:"s3-key-normalizer"},"s3-key-normalizer"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Deprecated in favour of ",(0,n.kt)("a",{parentName:"li",href:"/docs/middlewares/event-normalizer"},(0,n.kt)("inlineCode",{parentName:"a"},"event-normalizer")),", v2.x compatible with v3")),(0,n.kt)("h3",{id:"s3-object-response"},(0,n.kt)("a",{parentName:"h3",href:"/docs/middlewares/s3-object-response"},"s3-object-response")),(0,n.kt)("p",null,"No change"),(0,n.kt)("h3",{id:"secrets-manager"},(0,n.kt)("a",{parentName:"h3",href:"/docs/middlewares/secrets-manager"},"secrets-manager")),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Deprecated ",(0,n.kt)("inlineCode",{parentName:"li"},"setToEnv")," option due to possible security misuse ",(0,n.kt)("strong",{parentName:"li"},"[Breaking Change]"))),(0,n.kt)("h3",{id:"service-discovery"},(0,n.kt)("a",{parentName:"h3",href:"/docs/middlewares/service-discovery"},"service-discovery")),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"[New]"," Allow easy access to discoveryInstances")),(0,n.kt)("h3",{id:"sqs-json-body-parser"},"sqs-json-body-parser"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Deprecated in favour of ",(0,n.kt)("a",{parentName:"li",href:"/docs/middlewares/event-normalizer"},(0,n.kt)("inlineCode",{parentName:"a"},"event-normalizer")),", v2.x compatible with v3")),(0,n.kt)("h3",{id:"sqs-partial-batch-failure"},(0,n.kt)("a",{parentName:"h3",href:"/docs/middlewares/sqs-partial-batch-failure"},"sqs-partial-batch-failure")),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Complete rewrite to take advantage of ",(0,n.kt)("a",{parentName:"li",href:"https://aws.amazon.com/about-aws/whats-new/2021/11/aws-lambda-partial-batch-response-sqs-event-source/"},"https://aws.amazon.com/about-aws/whats-new/2021/11/aws-lambda-partial-batch-response-sqs-event-source/"),", will no longer throw an error if any message fails ",(0,n.kt)("strong",{parentName:"li"},"[Breaking Change]"))),(0,n.kt)("h3",{id:"ssm"},(0,n.kt)("a",{parentName:"h3",href:"/docs/middlewares/ssm"},"ssm")),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Deprecated ",(0,n.kt)("inlineCode",{parentName:"li"},"setToEnv")," option ",(0,n.kt)("strong",{parentName:"li"},"[Breaking Change]"))),(0,n.kt)("h3",{id:"sts"},(0,n.kt)("a",{parentName:"h3",href:"/docs/middlewares/sts"},"sts")),(0,n.kt)("p",null,"No change"),(0,n.kt)("h3",{id:"validator"},(0,n.kt)("a",{parentName:"h3",href:"/docs/middlewares/validator"},"validator")),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Change where errors are stored, from ",(0,n.kt)("inlineCode",{parentName:"li"},"request.error.details")," to ",(0,n.kt)("inlineCode",{parentName:"li"},"request.error.cause")," ",(0,n.kt)("strong",{parentName:"li"},"[Breaking Change]")),(0,n.kt)("li",{parentName:"ul"},"Add new options ",(0,n.kt)("inlineCode",{parentName:"li"},"eventSchema"),", ",(0,n.kt)("inlineCode",{parentName:"li"},"contextSchema"),", ",(0,n.kt)("inlineCode",{parentName:"li"},"responseSchema"),". ",(0,n.kt)("inlineCode",{parentName:"li"},"inputSchema")," and ",(0,n.kt)("inlineCode",{parentName:"li"},"outputSchema")," become aliases.")),(0,n.kt)("h3",{id:"warmup"},(0,n.kt)("a",{parentName:"h3",href:"/docs/middlewares/warmup"},"warmup")),(0,n.kt)("p",null,"No change"),(0,n.kt)("h3",{id:"ws-json-body-parser"},(0,n.kt)("a",{parentName:"h3",href:"/docs/middlewares/ws-json-body-parser"},"ws-json-body-parser")),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"[New]"," Parse body from WebSocket event")),(0,n.kt)("h3",{id:"ws-response"},(0,n.kt)("a",{parentName:"h3",href:"/docs/middlewares/ws-response"},"ws-response")),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"[New]"," Post responses to WebSocket API Gateway")),(0,n.kt)("h3",{id:"ws-router"},(0,n.kt)("a",{parentName:"h3",href:"/docs/routers/ws-router"},"ws-router")),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"[New]"," Allow re-routing of events to different handlers")),(0,n.kt)("h2",{id:"notes"},"Notes"),(0,n.kt)("p",null,"If you still need ",(0,n.kt)("inlineCode",{parentName:"p"},"setToEnv")," you can do something like so:"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-javascript"},"middy(lambdaHandler)\n .use(/*...*/)\n .before(async (request) => {\n const values = await getInternal(['NODE_ENV'], request)\n process.env.NODE_ENV = values.NODE_ENV\n })\n")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/41b3f383.27922243.js b/assets/js/41b3f383.27922243.js new file mode 100644 index 000000000..6502202a5 --- /dev/null +++ b/assets/js/41b3f383.27922243.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[479],{4379:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>o,contentTitle:()=>c,default:()=>m,frontMatter:()=>l,metadata:()=>d,toc:()=>u});var s=r(5893),t=r(1151),a=r(4866),i=r(5162);const l={title:"service-discovery"},c=void 0,d={id:"middlewares/service-discovery",title:"service-discovery",description:"Fetches Service Discovery instances to be used when connecting to other AWS services.",source:"@site/docs/middlewares/service-discovery.md",sourceDirName:"middlewares",slug:"/middlewares/service-discovery",permalink:"/docs/middlewares/service-discovery",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/middlewares/service-discovery.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",frontMatter:{title:"service-discovery"},sidebar:"tutorialSidebar",previous:{title:"secrets-manager",permalink:"/docs/middlewares/secrets-manager"},next:{title:"sqs-partial-batch-failure",permalink:"/docs/middlewares/sqs-partial-batch-failure"}},o={},u=[{value:"Install",id:"install",level:2},{value:"Options",id:"options",level:2},{value:"Sample usage",id:"sample-usage",level:2},{value:"Bundling",id:"bundling",level:2}];function h(e){const n={a:"a",code:"code",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,t.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.p,{children:"Fetches Service Discovery instances to be used when connecting to other AWS services."}),"\n",(0,s.jsx)(n.h2,{id:"install",children:"Install"}),"\n",(0,s.jsx)(n.p,{children:"To install this middleware you can use NPM:"}),"\n",(0,s.jsxs)(a.Z,{groupId:"npm2yarn",children:[(0,s.jsx)(i.Z,{value:"npm",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"npm install --save @middy/service-discovery\nnpm install --save-dev @aws-sdk/client-servicediscovery\n"})})}),(0,s.jsx)(i.Z,{value:"yarn",label:"Yarn",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"yarn add @middy/service-discovery\nyarn add --dev @aws-sdk/client-servicediscovery\n"})})}),(0,s.jsx)(i.Z,{value:"pnpm",label:"pnpm",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"pnpm add @middy/service-discovery\npnpm add --save-dev @aws-sdk/client-servicediscovery\n"})})})]}),"\n",(0,s.jsx)(n.h2,{id:"options",children:"Options"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"AwsClient"})," (object) (default ",(0,s.jsx)(n.code,{children:"ServiceDiscoveryClient"}),"): ServiceDiscoveryClient class constructor (i.e. that has been instrumented with AWS XRay). Must be from ",(0,s.jsx)(n.code,{children:"@aws-sdk/client-servicediscovery"}),"."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"awsClientOptions"})," (object) (default ",(0,s.jsx)(n.code,{children:"undefined"}),"): Options to pass to ServiceDiscoveryClient class constructor."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"awsClientAssumeRole"})," (string) (default ",(0,s.jsx)(n.code,{children:"undefined"}),"): Internal key where secrets are stored. See ",(0,s.jsx)(n.a,{href:"/docs/middlewares/sts",children:"@middy/sts"})," on to set this."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"awsClientCapture"})," (function) (default ",(0,s.jsx)(n.code,{children:"undefined"}),"): Enable XRay by passing ",(0,s.jsx)(n.code,{children:"captureAWSv3Client"})," from ",(0,s.jsx)(n.code,{children:"aws-xray-sdk"})," in."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"fetchData"})," (object) (required): Mapping of internal key name to API request parameters."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"disablePrefetch"})," (boolean) (default ",(0,s.jsx)(n.code,{children:"false"}),"): On cold start requests will trigger early if they can. Setting ",(0,s.jsx)(n.code,{children:"awsClientAssumeRole"})," disables prefetch."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"cacheKey"})," (string) (default ",(0,s.jsx)(n.code,{children:"sts"}),"): Cache key for the fetched data responses. Must be unique across all middleware."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"cacheExpiry"})," (number) (default ",(0,s.jsx)(n.code,{children:"-1"}),"): How long fetch data responses should be cached for. ",(0,s.jsx)(n.code,{children:"-1"}),": cache forever, ",(0,s.jsx)(n.code,{children:"0"}),": never cache, ",(0,s.jsx)(n.code,{children:"n"}),": cache for n ms."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"setToContext"})," (boolean) (default ",(0,s.jsx)(n.code,{children:"false"}),"): Store credentials to ",(0,s.jsx)(n.code,{children:"request.context"}),"."]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"NOTES:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Lambda is required to have IAM permission for ",(0,s.jsx)(n.code,{children:"servicediscovery:DiscoverInstances"})]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"sample-usage",children:"Sample usage"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-javascript",children:"import middy from '@middy/core'\nimport serviceDiscovery from '@middy/service-discovery'\n\nconst lambdaHandler = (event, context) => {\n const response = {\n statusCode: 200,\n headers: {},\n body: JSON.stringify({ message: 'hello world' })\n }\n\n return response\n}\n\nexport const handler = middy()\n .use(\n serviceDiscovery({\n fetchData: {\n instances: {\n NamespaceName: '...',\n ServiceName: '...'\n }\n }\n })\n )\n .handler(lambdaHandler)\n"})}),"\n",(0,s.jsx)(n.h2,{id:"bundling",children:"Bundling"}),"\n",(0,s.jsxs)(n.p,{children:["To exclude ",(0,s.jsx)(n.code,{children:"@aws-sdk"})," add ",(0,s.jsx)(n.code,{children:"@aws-sdk/client-servicediscovery"})," to the exclude list."]})]})}function m(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}},5162:(e,n,r)=>{r.d(n,{Z:()=>i});r(7294);var s=r(6010);const t={tabItem:"tabItem_Ymn6"};var a=r(5893);function i(e){let{children:n,hidden:r,className:i}=e;return(0,a.jsx)("div",{role:"tabpanel",className:(0,s.Z)(t.tabItem,i),hidden:r,children:n})}},4866:(e,n,r)=>{r.d(n,{Z:()=>w});var s=r(7294),t=r(6010),a=r(2466),i=r(6550),l=r(469),c=r(1980),d=r(7392),o=r(12);function u(e){return s.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,s.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function h(e){const{values:n,children:r}=e;return(0,s.useMemo)((()=>{const e=n??function(e){return u(e).map((e=>{let{props:{value:n,label:r,attributes:s,default:t}}=e;return{value:n,label:r,attributes:s,default:t}}))}(r);return function(e){const n=(0,d.l)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[n,r])}function m(e){let{value:n,tabValues:r}=e;return r.some((e=>e.value===n))}function v(e){let{queryString:n=!1,groupId:r}=e;const t=(0,i.k6)(),a=function(e){let{queryString:n=!1,groupId:r}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!r)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return r??null}({queryString:n,groupId:r});return[(0,c._X)(a),(0,s.useCallback)((e=>{if(!a)return;const n=new URLSearchParams(t.location.search);n.set(a,e),t.replace({...t.location,search:n.toString()})}),[a,t])]}function p(e){const{defaultValue:n,queryString:r=!1,groupId:t}=e,a=h(e),[i,c]=(0,s.useState)((()=>function(e){let{defaultValue:n,tabValues:r}=e;if(0===r.length)throw new Error("Docusaurus error: the component requires at least one children component");if(n){if(!m({value:n,tabValues:r}))throw new Error(`Docusaurus error: The has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${r.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const s=r.find((e=>e.default))??r[0];if(!s)throw new Error("Unexpected error: 0 tabValues");return s.value}({defaultValue:n,tabValues:a}))),[d,u]=v({queryString:r,groupId:t}),[p,f]=function(e){let{groupId:n}=e;const r=function(e){return e?`docusaurus.tab.${e}`:null}(n),[t,a]=(0,o.Nk)(r);return[t,(0,s.useCallback)((e=>{r&&a.set(e)}),[r,a])]}({groupId:t}),b=(()=>{const e=d??p;return m({value:e,tabValues:a})?e:null})();(0,l.Z)((()=>{b&&c(b)}),[b]);return{selectedValue:i,selectValue:(0,s.useCallback)((e=>{if(!m({value:e,tabValues:a}))throw new Error(`Can't select invalid tab value=${e}`);c(e),u(e),f(e)}),[u,f,a]),tabValues:a}}var f=r(2389);const b={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var x=r(5893);function y(e){let{className:n,block:r,selectedValue:s,selectValue:i,tabValues:l}=e;const c=[],{blockElementScrollPositionUntilNextRender:d}=(0,a.o5)(),o=e=>{const n=e.currentTarget,r=c.indexOf(n),t=l[r].value;t!==s&&(d(n),i(t))},u=e=>{let n=null;switch(e.key){case"Enter":o(e);break;case"ArrowRight":{const r=c.indexOf(e.currentTarget)+1;n=c[r]??c[0];break}case"ArrowLeft":{const r=c.indexOf(e.currentTarget)-1;n=c[r]??c[c.length-1];break}}n?.focus()};return(0,x.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,t.Z)("tabs",{"tabs--block":r},n),children:l.map((e=>{let{value:n,label:r,attributes:a}=e;return(0,x.jsx)("li",{role:"tab",tabIndex:s===n?0:-1,"aria-selected":s===n,ref:e=>c.push(e),onKeyDown:u,onClick:o,...a,className:(0,t.Z)("tabs__item",b.tabItem,a?.className,{"tabs__item--active":s===n}),children:r??n},n)}))})}function j(e){let{lazy:n,children:r,selectedValue:t}=e;const a=(Array.isArray(r)?r:[r]).filter(Boolean);if(n){const e=a.find((e=>e.props.value===t));return e?(0,s.cloneElement)(e,{className:"margin-top--md"}):null}return(0,x.jsx)("div",{className:"margin-top--md",children:a.map(((e,n)=>(0,s.cloneElement)(e,{key:n,hidden:e.props.value!==t})))})}function g(e){const n=p(e);return(0,x.jsxs)("div",{className:(0,t.Z)("tabs-container",b.tabList),children:[(0,x.jsx)(y,{...e,...n}),(0,x.jsx)(j,{...e,...n})]})}function w(e){const n=(0,f.Z)();return(0,x.jsx)(g,{...e,children:u(e.children)},String(n))}},1151:(e,n,r)=>{r.d(n,{Z:()=>l,a:()=>i});var s=r(7294);const t={},a=s.createContext(t);function i(e){const n=s.useContext(a);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:i(e.components),s.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/41b3f383.75a2c1b8.js b/assets/js/41b3f383.75a2c1b8.js deleted file mode 100644 index 8215dafc0..000000000 --- a/assets/js/41b3f383.75a2c1b8.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[479],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>v});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var o=r.createContext({}),c=function(e){var t=r.useContext(o),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=c(e.components);return r.createElement(o.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,l=e.originalType,o=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),d=c(n),m=a,v=d["".concat(o,".").concat(m)]||d[m]||p[m]||l;return n?r.createElement(v,i(i({ref:t},u),{},{components:n})):r.createElement(v,i({ref:t},u))}));function v(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=n.length,i=new Array(l);i[0]=m;var s={};for(var o in t)hasOwnProperty.call(t,o)&&(s[o]=t[o]);s.originalType=e,s[d]="string"==typeof e?e:a,i[1]=s;for(var c=2;c{n.d(t,{Z:()=>i});var r=n(7294),a=n(6010);const l={tabItem:"tabItem_Ymn6"};function i(e){let{children:t,hidden:n,className:i}=e;return r.createElement("div",{role:"tabpanel",className:(0,a.Z)(l.tabItem,i),hidden:n},t)}},4866:(e,t,n)=>{n.d(t,{Z:()=>N});var r=n(7462),a=n(7294),l=n(6010),i=n(2466),s=n(6550),o=n(1980),c=n(7392),u=n(12);function d(e){return function(e){return a.Children.map(e,(e=>{if(!e||(0,a.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:r,default:a}}=e;return{value:t,label:n,attributes:r,default:a}}))}function p(e){const{values:t,children:n}=e;return(0,a.useMemo)((()=>{const e=t??d(n);return function(e){const t=(0,c.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[t,n])}function m(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function v(e){let{queryString:t=!1,groupId:n}=e;const r=(0,s.k6)(),l=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,o._X)(l),(0,a.useCallback)((e=>{if(!l)return;const t=new URLSearchParams(r.location.search);t.set(l,e),r.replace({...r.location,search:t.toString()})}),[l,r])]}function f(e){const{defaultValue:t,queryString:n=!1,groupId:r}=e,l=p(e),[i,s]=(0,a.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the component requires at least one children component");if(t){if(!m({value:t,tabValues:n}))throw new Error(`Docusaurus error: The has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const r=n.find((e=>e.default))??n[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:t,tabValues:l}))),[o,c]=v({queryString:n,groupId:r}),[d,f]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[r,l]=(0,u.Nk)(n);return[r,(0,a.useCallback)((e=>{n&&l.set(e)}),[n,l])]}({groupId:r}),b=(()=>{const e=o??d;return m({value:e,tabValues:l})?e:null})();(0,a.useLayoutEffect)((()=>{b&&s(b)}),[b]);return{selectedValue:i,selectValue:(0,a.useCallback)((e=>{if(!m({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);s(e),c(e),f(e)}),[c,f,l]),tabValues:l}}var b=n(2389);const y={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};function h(e){let{className:t,block:n,selectedValue:s,selectValue:o,tabValues:c}=e;const u=[],{blockElementScrollPositionUntilNextRender:d}=(0,i.o5)(),p=e=>{const t=e.currentTarget,n=u.indexOf(t),r=c[n].value;r!==s&&(d(t),o(r))},m=e=>{let t=null;switch(e.key){case"Enter":p(e);break;case"ArrowRight":{const n=u.indexOf(e.currentTarget)+1;t=u[n]??u[0];break}case"ArrowLeft":{const n=u.indexOf(e.currentTarget)-1;t=u[n]??u[u.length-1];break}}t?.focus()};return a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":n},t)},c.map((e=>{let{value:t,label:n,attributes:i}=e;return a.createElement("li",(0,r.Z)({role:"tab",tabIndex:s===t?0:-1,"aria-selected":s===t,key:t,ref:e=>u.push(e),onKeyDown:m,onClick:p},i,{className:(0,l.Z)("tabs__item",y.tabItem,i?.className,{"tabs__item--active":s===t})}),n??t)})))}function k(e){let{lazy:t,children:n,selectedValue:r}=e;const l=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=l.find((e=>e.props.value===r));return e?(0,a.cloneElement)(e,{className:"margin-top--md"}):null}return a.createElement("div",{className:"margin-top--md"},l.map(((e,t)=>(0,a.cloneElement)(e,{key:t,hidden:e.props.value!==r}))))}function g(e){const t=f(e);return a.createElement("div",{className:(0,l.Z)("tabs-container",y.tabList)},a.createElement(h,(0,r.Z)({},e,t)),a.createElement(k,(0,r.Z)({},e,t)))}function N(e){const t=(0,b.Z)();return a.createElement(g,(0,r.Z)({key:String(t)},e))}},6241:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>o,default:()=>v,frontMatter:()=>s,metadata:()=>c,toc:()=>d});var r=n(7462),a=(n(7294),n(3905)),l=n(4866),i=n(5162);const s={title:"service-discovery"},o=void 0,c={unversionedId:"middlewares/service-discovery",id:"middlewares/service-discovery",title:"service-discovery",description:"Fetches Service Discovery instances to be used when connecting to other AWS services.",source:"@site/docs/middlewares/service-discovery.md",sourceDirName:"middlewares",slug:"/middlewares/service-discovery",permalink:"/docs/middlewares/service-discovery",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/middlewares/service-discovery.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",frontMatter:{title:"service-discovery"},sidebar:"tutorialSidebar",previous:{title:"secrets-manager",permalink:"/docs/middlewares/secrets-manager"},next:{title:"sqs-partial-batch-failure",permalink:"/docs/middlewares/sqs-partial-batch-failure"}},u={},d=[{value:"Install",id:"install",level:2},{value:"Options",id:"options",level:2},{value:"Sample usage",id:"sample-usage",level:2},{value:"Bundling",id:"bundling",level:2}],p={toc:d},m="wrapper";function v(e){let{components:t,...n}=e;return(0,a.kt)(m,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"Fetches Service Discovery instances to be used when connecting to other AWS services."),(0,a.kt)("h2",{id:"install"},"Install"),(0,a.kt)("p",null,"To install this middleware you can use NPM:"),(0,a.kt)(l.Z,{groupId:"npm2yarn",mdxType:"Tabs"},(0,a.kt)(i.Z,{value:"npm",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-bash"},"npm install --save @middy/service-discovery\nnpm install --save-dev @aws-sdk/client-servicediscovery\n"))),(0,a.kt)(i.Z,{value:"yarn",label:"Yarn",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-bash"},"yarn add @middy/service-discovery\nyarn add --dev @aws-sdk/client-servicediscovery\n"))),(0,a.kt)(i.Z,{value:"pnpm",label:"pnpm",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-bash"},"pnpm add @middy/service-discovery\npnpm add --save-dev @aws-sdk/client-servicediscovery\n")))),(0,a.kt)("h2",{id:"options"},"Options"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"AwsClient")," (object) (default ",(0,a.kt)("inlineCode",{parentName:"li"},"ServiceDiscoveryClient"),"): ServiceDiscoveryClient class constructor (i.e. that has been instrumented with AWS XRay). Must be from ",(0,a.kt)("inlineCode",{parentName:"li"},"@aws-sdk/client-servicediscovery"),"."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"awsClientOptions")," (object) (default ",(0,a.kt)("inlineCode",{parentName:"li"},"undefined"),"): Options to pass to ServiceDiscoveryClient class constructor."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"awsClientAssumeRole")," (string) (default ",(0,a.kt)("inlineCode",{parentName:"li"},"undefined"),"): Internal key where secrets are stored. See ",(0,a.kt)("a",{parentName:"li",href:"/docs/middlewares/sts"},"@middy/sts")," on to set this."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"awsClientCapture")," (function) (default ",(0,a.kt)("inlineCode",{parentName:"li"},"undefined"),"): Enable XRay by passing ",(0,a.kt)("inlineCode",{parentName:"li"},"captureAWSv3Client")," from ",(0,a.kt)("inlineCode",{parentName:"li"},"aws-xray-sdk")," in."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"fetchData")," (object) (required): Mapping of internal key name to API request parameters."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"disablePrefetch")," (boolean) (default ",(0,a.kt)("inlineCode",{parentName:"li"},"false"),"): On cold start requests will trigger early if they can. Setting ",(0,a.kt)("inlineCode",{parentName:"li"},"awsClientAssumeRole")," disables prefetch."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"cacheKey")," (string) (default ",(0,a.kt)("inlineCode",{parentName:"li"},"sts"),"): Cache key for the fetched data responses. Must be unique across all middleware."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"cacheExpiry")," (number) (default ",(0,a.kt)("inlineCode",{parentName:"li"},"-1"),"): How long fetch data responses should be cached for. ",(0,a.kt)("inlineCode",{parentName:"li"},"-1"),": cache forever, ",(0,a.kt)("inlineCode",{parentName:"li"},"0"),": never cache, ",(0,a.kt)("inlineCode",{parentName:"li"},"n"),": cache for n ms."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"setToContext")," (boolean) (default ",(0,a.kt)("inlineCode",{parentName:"li"},"false"),"): Store credentials to ",(0,a.kt)("inlineCode",{parentName:"li"},"request.context"),".")),(0,a.kt)("p",null,"NOTES:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Lambda is required to have IAM permission for ",(0,a.kt)("inlineCode",{parentName:"li"},"servicediscovery:DiscoverInstances"))),(0,a.kt)("h2",{id:"sample-usage"},"Sample usage"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\nimport serviceDiscovery from '@middy/service-discovery'\n\nconst handler = middy((event, context) => {\n const response = {\n statusCode: 200,\n headers: {},\n body: JSON.stringify({ message: 'hello world' })\n }\n\n return response\n})\n\nhandler.use(\n serviceDiscovery({\n fetchData: {\n instances: {\n NamespaceName: '...',\n ServiceName: '...'\n }\n }\n })\n)\n")),(0,a.kt)("h2",{id:"bundling"},"Bundling"),(0,a.kt)("p",null,"To exclude ",(0,a.kt)("inlineCode",{parentName:"p"},"@aws-sdk")," add ",(0,a.kt)("inlineCode",{parentName:"p"},"@aws-sdk/client-servicediscovery")," to the exclude list."))}v.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4204.f4712634.js b/assets/js/4204.f4712634.js deleted file mode 100644 index e81712f8a..000000000 --- a/assets/js/4204.f4712634.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[4204],{4204:(e,t,a)=>{a.r(t),a.d(t,{default:()=>r});var n=a(7294),l=a(4173),o=a(9960);const r=function(){return n.createElement(l.Z,{title:"Page Not Found"},n.createElement("main",{className:"container margin-vert--xl"},n.createElement("div",{className:"row"},n.createElement("div",{className:"col col--6 col--offset-3"},n.createElement("h1",{className:"hero__title"},"404"),n.createElement("p",null,n.createElement("img",{src:"/img/middy-404.gif"})),n.createElement("p",{className:"hero__subtitle"},"Sorry, we could not find what you were looking for!"),n.createElement("p",null,"Please contact the owner of the site that linked you to the original URL and let them know their link is broken."),n.createElement("p",{style:{display:"flex",alignItems:"center",justifyContent:"start",gap:"1em"}},n.createElement(o.Z,{className:"button button--primary button--lg",to:"/"},"Go to the home"),n.createElement(o.Z,{className:"button button--secondary button--lg",to:"/docs"},"Read the docs"))))))}}}]); \ No newline at end of file diff --git a/assets/js/4204.f9b87e33.js b/assets/js/4204.f9b87e33.js new file mode 100644 index 000000000..c77ef22c2 --- /dev/null +++ b/assets/js/4204.f9b87e33.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[4204],{4204:(e,t,s)=>{s.r(t),s.d(t,{default:()=>i});s(7294);var n=s(63),o=s(9960),l=s(5893);const i=function(){return(0,l.jsx)(n.Z,{title:"Page Not Found",children:(0,l.jsx)("main",{className:"container margin-vert--xl",children:(0,l.jsx)("div",{className:"row",children:(0,l.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,l.jsx)("h1",{className:"hero__title",children:"404"}),(0,l.jsx)("p",{children:(0,l.jsx)("img",{src:"/img/middy-404.gif"})}),(0,l.jsx)("p",{className:"hero__subtitle",children:"Sorry, we could not find what you were looking for!"}),(0,l.jsx)("p",{children:"Please contact the owner of the site that linked you to the original URL and let them know their link is broken."}),(0,l.jsxs)("p",{style:{display:"flex",alignItems:"center",justifyContent:"start",gap:"1em"},children:[(0,l.jsx)(o.Z,{className:"button button--primary button--lg",to:"/",children:"Go to the home"}),(0,l.jsx)(o.Z,{className:"button button--secondary button--lg",to:"/docs",children:"Read the docs"})]})]})})})})}}}]); \ No newline at end of file diff --git a/assets/js/436b299f.45d677cc.js b/assets/js/436b299f.45d677cc.js deleted file mode 100644 index e422d2dee..000000000 --- a/assets/js/436b299f.45d677cc.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[5077],{3905:(e,t,r)=>{r.d(t,{Zo:()=>d,kt:()=>h});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var i=n.createContext({}),u=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},d=function(e){var t=u(e.components);return n.createElement(i.Provider,{value:t},e.children)},c="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,l=e.originalType,i=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),c=u(r),m=a,h=c["".concat(i,".").concat(m)]||c[m]||p[m]||l;return r?n.createElement(h,o(o({ref:t},d),{},{components:r})):n.createElement(h,o({ref:t},d))}));function h(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=r.length,o=new Array(l);o[0]=m;var s={};for(var i in t)hasOwnProperty.call(t,i)&&(s[i]=t[i]);s.originalType=e,s[c]="string"==typeof e?e:a,o[1]=s;for(var u=2;u{r.d(t,{Z:()=>o});var n=r(7294),a=r(6010);const l={tabItem:"tabItem_Ymn6"};function o(e){let{children:t,hidden:r,className:o}=e;return n.createElement("div",{role:"tabpanel",className:(0,a.Z)(l.tabItem,o),hidden:r},t)}},4866:(e,t,r)=>{r.d(t,{Z:()=>w});var n=r(7462),a=r(7294),l=r(6010),o=r(2466),s=r(6550),i=r(1980),u=r(7392),d=r(12);function c(e){return function(e){return a.Children.map(e,(e=>{if(!e||(0,a.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:r,attributes:n,default:a}}=e;return{value:t,label:r,attributes:n,default:a}}))}function p(e){const{values:t,children:r}=e;return(0,a.useMemo)((()=>{const e=t??c(r);return function(e){const t=(0,u.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[t,r])}function m(e){let{value:t,tabValues:r}=e;return r.some((e=>e.value===t))}function h(e){let{queryString:t=!1,groupId:r}=e;const n=(0,s.k6)(),l=function(e){let{queryString:t=!1,groupId:r}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!r)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return r??null}({queryString:t,groupId:r});return[(0,i._X)(l),(0,a.useCallback)((e=>{if(!l)return;const t=new URLSearchParams(n.location.search);t.set(l,e),n.replace({...n.location,search:t.toString()})}),[l,n])]}function f(e){const{defaultValue:t,queryString:r=!1,groupId:n}=e,l=p(e),[o,s]=(0,a.useState)((()=>function(e){let{defaultValue:t,tabValues:r}=e;if(0===r.length)throw new Error("Docusaurus error: the component requires at least one children component");if(t){if(!m({value:t,tabValues:r}))throw new Error(`Docusaurus error: The has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${r.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const n=r.find((e=>e.default))??r[0];if(!n)throw new Error("Unexpected error: 0 tabValues");return n.value}({defaultValue:t,tabValues:l}))),[i,u]=h({queryString:r,groupId:n}),[c,f]=function(e){let{groupId:t}=e;const r=function(e){return e?`docusaurus.tab.${e}`:null}(t),[n,l]=(0,d.Nk)(r);return[n,(0,a.useCallback)((e=>{r&&l.set(e)}),[r,l])]}({groupId:n}),b=(()=>{const e=i??c;return m({value:e,tabValues:l})?e:null})();(0,a.useLayoutEffect)((()=>{b&&s(b)}),[b]);return{selectedValue:o,selectValue:(0,a.useCallback)((e=>{if(!m({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);s(e),u(e),f(e)}),[u,f,l]),tabValues:l}}var b=r(2389);const y={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};function g(e){let{className:t,block:r,selectedValue:s,selectValue:i,tabValues:u}=e;const d=[],{blockElementScrollPositionUntilNextRender:c}=(0,o.o5)(),p=e=>{const t=e.currentTarget,r=d.indexOf(t),n=u[r].value;n!==s&&(c(t),i(n))},m=e=>{let t=null;switch(e.key){case"Enter":p(e);break;case"ArrowRight":{const r=d.indexOf(e.currentTarget)+1;t=d[r]??d[0];break}case"ArrowLeft":{const r=d.indexOf(e.currentTarget)-1;t=d[r]??d[d.length-1];break}}t?.focus()};return a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":r},t)},u.map((e=>{let{value:t,label:r,attributes:o}=e;return a.createElement("li",(0,n.Z)({role:"tab",tabIndex:s===t?0:-1,"aria-selected":s===t,key:t,ref:e=>d.push(e),onKeyDown:m,onClick:p},o,{className:(0,l.Z)("tabs__item",y.tabItem,o?.className,{"tabs__item--active":s===t})}),r??t)})))}function v(e){let{lazy:t,children:r,selectedValue:n}=e;const l=(Array.isArray(r)?r:[r]).filter(Boolean);if(t){const e=l.find((e=>e.props.value===n));return e?(0,a.cloneElement)(e,{className:"margin-top--md"}):null}return a.createElement("div",{className:"margin-top--md"},l.map(((e,t)=>(0,a.cloneElement)(e,{key:t,hidden:e.props.value!==n}))))}function k(e){const t=f(e);return a.createElement("div",{className:(0,l.Z)("tabs-container",y.tabList)},a.createElement(g,(0,n.Z)({},e,t)),a.createElement(v,(0,n.Z)({},e,t)))}function w(e){const t=(0,b.Z)();return a.createElement(k,(0,n.Z)({key:String(t)},e))}},3687:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>d,contentTitle:()=>i,default:()=>h,frontMatter:()=>s,metadata:()=>u,toc:()=>c});var n=r(7462),a=(r(7294),r(3905)),l=r(4866),o=r(5162);const s={title:"http-error-handler"},i=void 0,u={unversionedId:"middlewares/http-error-handler",id:"middlewares/http-error-handler",title:"http-error-handler",description:"Automatically handles uncaught errors that contain the properties statusCode (number) and message (string) and creates a proper HTTP response",source:"@site/docs/middlewares/http-error-handler.md",sourceDirName:"middlewares",slug:"/middlewares/http-error-handler",permalink:"/docs/middlewares/http-error-handler",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/middlewares/http-error-handler.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",frontMatter:{title:"http-error-handler"},sidebar:"tutorialSidebar",previous:{title:"http-cors",permalink:"/docs/middlewares/http-cors"},next:{title:"http-event-normalizer",permalink:"/docs/middlewares/http-event-normalizer"}},d={},c=[{value:"Install",id:"install",level:2},{value:"Options",id:"options",level:2},{value:"Sample usage",id:"sample-usage",level:2}],p={toc:c},m="wrapper";function h(e){let{components:t,...r}=e;return(0,a.kt)(m,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"Automatically handles uncaught errors that contain the properties ",(0,a.kt)("inlineCode",{parentName:"p"},"statusCode")," (number) and ",(0,a.kt)("inlineCode",{parentName:"p"},"message")," (string) and creates a proper HTTP response\nfor them (using the message and the status code provided by the error object). Additionally, support for the property ",(0,a.kt)("inlineCode",{parentName:"p"},"expose")," is included with a default value of ",(0,a.kt)("inlineCode",{parentName:"p"},"statusCode < 500"),".\nWe recommend generating these HTTP errors with the npm module ",(0,a.kt)("a",{parentName:"p",href:"https://npm.im/http-errors"},(0,a.kt)("inlineCode",{parentName:"a"},"http-errors")),". When manually catching and setting errors with ",(0,a.kt)("inlineCode",{parentName:"p"},"statusCode >= 500")," setting ",(0,a.kt)("inlineCode",{parentName:"p"},"{expose: true}"),"\nis needed for them to be handled."),(0,a.kt)("p",null,"This middleware should be set as the last error handler attached, first to execute."),(0,a.kt)("h2",{id:"install"},"Install"),(0,a.kt)("p",null,"To install this middleware you can use NPM:"),(0,a.kt)(l.Z,{groupId:"npm2yarn",mdxType:"Tabs"},(0,a.kt)(o.Z,{value:"npm",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-bash"},"npm install --save @middy/http-error-handler\n"))),(0,a.kt)(o.Z,{value:"yarn",label:"Yarn",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-bash"},"yarn add @middy/http-error-handler\n"))),(0,a.kt)(o.Z,{value:"pnpm",label:"pnpm",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-bash"},"pnpm add @middy/http-error-handler\n")))),(0,a.kt)("h2",{id:"options"},"Options"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"logger")," (defaults to ",(0,a.kt)("inlineCode",{parentName:"li"},"console.error"),") - a logging function that is invoked with the current error as an argument. You can pass ",(0,a.kt)("inlineCode",{parentName:"li"},"false")," if you don't want the logging to happen."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"fallbackMessage")," (default to null) - When non-http errors (those without `",(0,a.kt)("inlineCode",{parentName:"li"},"statusCode"),") occur you can catch them by setting a fallback message to be used. These will be returned with a 500 status code.")),(0,a.kt)("h2",{id:"sample-usage"},"Sample usage"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\nimport httpErrorHandler from '@middy/http-error-handler'\n\nconst handler = middy((event, context) => {\n throw new createError.UnprocessableEntity()\n})\n\nhandler\n .use(httpErrorHandler())\n\n// when Lambda runs the handler...\nhandler({}, {}, (_, response) => {\n t.deepEqual(response,{\n statusCode: 422,\n body: 'Unprocessable Entity'\n })\n})\n")))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/436b299f.c2d57882.js b/assets/js/436b299f.c2d57882.js new file mode 100644 index 000000000..4c09217d3 --- /dev/null +++ b/assets/js/436b299f.c2d57882.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[5077],{8230:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>p,frontMatter:()=>o,metadata:()=>d,toc:()=>c});var n=r(5893),a=r(1151),s=r(4866),l=r(5162);const o={title:"http-error-handler"},i=void 0,d={id:"middlewares/http-error-handler",title:"http-error-handler",description:"Automatically handles uncaught errors that contain the properties statusCode (number) and message (string) and creates a proper HTTP response",source:"@site/docs/middlewares/http-error-handler.md",sourceDirName:"middlewares",slug:"/middlewares/http-error-handler",permalink:"/docs/middlewares/http-error-handler",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/middlewares/http-error-handler.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",frontMatter:{title:"http-error-handler"},sidebar:"tutorialSidebar",previous:{title:"http-cors",permalink:"/docs/middlewares/http-cors"},next:{title:"http-event-normalizer",permalink:"/docs/middlewares/http-event-normalizer"}},u={},c=[{value:"Install",id:"install",level:2},{value:"Options",id:"options",level:2},{value:"Sample usage",id:"sample-usage",level:2}];function h(e){const t={a:"a",code:"code",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,a.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(t.p,{children:["Automatically handles uncaught errors that contain the properties ",(0,n.jsx)(t.code,{children:"statusCode"})," (number) and ",(0,n.jsx)(t.code,{children:"message"})," (string) and creates a proper HTTP response\nfor them (using the message and the status code provided by the error object). Additionally, support for the property ",(0,n.jsx)(t.code,{children:"expose"})," is included with a default value of ",(0,n.jsx)(t.code,{children:"statusCode < 500"}),".\nWe recommend generating these HTTP errors with the npm module ",(0,n.jsx)(t.a,{href:"https://npm.im/http-errors",children:(0,n.jsx)(t.code,{children:"http-errors"})}),". When manually catching and setting errors with ",(0,n.jsx)(t.code,{children:"statusCode >= 500"})," setting ",(0,n.jsx)(t.code,{children:"{expose: true}"}),"\nis needed for them to be handled."]}),"\n",(0,n.jsxs)(t.p,{children:["This middleware should be set as the last error handler attached, first to execute. When non-http errors (those without ",(0,n.jsx)(t.code,{children:"statusCode"}),") occur they will be returned with a 500 status code."]}),"\n",(0,n.jsx)(t.h2,{id:"install",children:"Install"}),"\n",(0,n.jsx)(t.p,{children:"To install this middleware you can use NPM:"}),"\n",(0,n.jsxs)(s.Z,{groupId:"npm2yarn",children:[(0,n.jsx)(l.Z,{value:"npm",children:(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-bash",children:"npm install --save @middy/http-error-handler\n"})})}),(0,n.jsx)(l.Z,{value:"yarn",label:"Yarn",children:(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-bash",children:"yarn add @middy/http-error-handler\n"})})}),(0,n.jsx)(l.Z,{value:"pnpm",label:"pnpm",children:(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-bash",children:"pnpm add @middy/http-error-handler\n"})})})]}),"\n",(0,n.jsx)(t.h2,{id:"options",children:"Options"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"logger"})," (defaults to ",(0,n.jsx)(t.code,{children:"console.error"}),") - a logging function that is invoked with the current error as an argument. You can pass ",(0,n.jsx)(t.code,{children:"false"})," if you don't want the logging to happen."]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"fallbackMessage"})," (default ",(0,n.jsx)(t.code,{children:"undefined"}),") - When non-http errors (those without ",(0,n.jsx)(t.code,{children:"statusCode"}),") occur you can set a fallback message to be used. These will be returned with a 500 status code."]}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"sample-usage",children:"Sample usage"}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-javascript",children:"import middy from '@middy/core'\nimport httpErrorHandler from '@middy/http-error-handler'\n\nconst lambdaHandler = (event, context) => {\n throw new createError.UnprocessableEntity()\n}\nexport const handler = middy().use(httpErrorHandler()).handler(lambdaHandler)\n\n// when Lambda runs the handler...\nhandler({}, {}, (_, response) => {\n t.deepEqual(response, {\n statusCode: 422,\n body: 'Unprocessable Entity'\n })\n})\n"})})]})}function p(e={}){const{wrapper:t}={...(0,a.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(h,{...e})}):h(e)}},5162:(e,t,r)=>{r.d(t,{Z:()=>l});r(7294);var n=r(6010);const a={tabItem:"tabItem_Ymn6"};var s=r(5893);function l(e){let{children:t,hidden:r,className:l}=e;return(0,s.jsx)("div",{role:"tabpanel",className:(0,n.Z)(a.tabItem,l),hidden:r,children:t})}},4866:(e,t,r)=>{r.d(t,{Z:()=>w});var n=r(7294),a=r(6010),s=r(2466),l=r(6550),o=r(469),i=r(1980),d=r(7392),u=r(12);function c(e){return n.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,n.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function h(e){const{values:t,children:r}=e;return(0,n.useMemo)((()=>{const e=t??function(e){return c(e).map((e=>{let{props:{value:t,label:r,attributes:n,default:a}}=e;return{value:t,label:r,attributes:n,default:a}}))}(r);return function(e){const t=(0,d.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[t,r])}function p(e){let{value:t,tabValues:r}=e;return r.some((e=>e.value===t))}function m(e){let{queryString:t=!1,groupId:r}=e;const a=(0,l.k6)(),s=function(e){let{queryString:t=!1,groupId:r}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!r)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return r??null}({queryString:t,groupId:r});return[(0,i._X)(s),(0,n.useCallback)((e=>{if(!s)return;const t=new URLSearchParams(a.location.search);t.set(s,e),a.replace({...a.location,search:t.toString()})}),[s,a])]}function f(e){const{defaultValue:t,queryString:r=!1,groupId:a}=e,s=h(e),[l,i]=(0,n.useState)((()=>function(e){let{defaultValue:t,tabValues:r}=e;if(0===r.length)throw new Error("Docusaurus error: the component requires at least one children component");if(t){if(!p({value:t,tabValues:r}))throw new Error(`Docusaurus error: The has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${r.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const n=r.find((e=>e.default))??r[0];if(!n)throw new Error("Unexpected error: 0 tabValues");return n.value}({defaultValue:t,tabValues:s}))),[d,c]=m({queryString:r,groupId:a}),[f,b]=function(e){let{groupId:t}=e;const r=function(e){return e?`docusaurus.tab.${e}`:null}(t),[a,s]=(0,u.Nk)(r);return[a,(0,n.useCallback)((e=>{r&&s.set(e)}),[r,s])]}({groupId:a}),g=(()=>{const e=d??f;return p({value:e,tabValues:s})?e:null})();(0,o.Z)((()=>{g&&i(g)}),[g]);return{selectedValue:l,selectValue:(0,n.useCallback)((e=>{if(!p({value:e,tabValues:s}))throw new Error(`Can't select invalid tab value=${e}`);i(e),c(e),b(e)}),[c,b,s]),tabValues:s}}var b=r(2389);const g={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var v=r(5893);function x(e){let{className:t,block:r,selectedValue:n,selectValue:l,tabValues:o}=e;const i=[],{blockElementScrollPositionUntilNextRender:d}=(0,s.o5)(),u=e=>{const t=e.currentTarget,r=i.indexOf(t),a=o[r].value;a!==n&&(d(t),l(a))},c=e=>{let t=null;switch(e.key){case"Enter":u(e);break;case"ArrowRight":{const r=i.indexOf(e.currentTarget)+1;t=i[r]??i[0];break}case"ArrowLeft":{const r=i.indexOf(e.currentTarget)-1;t=i[r]??i[i.length-1];break}}t?.focus()};return(0,v.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,a.Z)("tabs",{"tabs--block":r},t),children:o.map((e=>{let{value:t,label:r,attributes:s}=e;return(0,v.jsx)("li",{role:"tab",tabIndex:n===t?0:-1,"aria-selected":n===t,ref:e=>i.push(e),onKeyDown:c,onClick:u,...s,className:(0,a.Z)("tabs__item",g.tabItem,s?.className,{"tabs__item--active":n===t}),children:r??t},t)}))})}function j(e){let{lazy:t,children:r,selectedValue:a}=e;const s=(Array.isArray(r)?r:[r]).filter(Boolean);if(t){const e=s.find((e=>e.props.value===a));return e?(0,n.cloneElement)(e,{className:"margin-top--md"}):null}return(0,v.jsx)("div",{className:"margin-top--md",children:s.map(((e,t)=>(0,n.cloneElement)(e,{key:t,hidden:e.props.value!==a})))})}function y(e){const t=f(e);return(0,v.jsxs)("div",{className:(0,a.Z)("tabs-container",g.tabList),children:[(0,v.jsx)(x,{...e,...t}),(0,v.jsx)(j,{...e,...t})]})}function w(e){const t=(0,b.Z)();return(0,v.jsx)(y,{...e,children:c(e.children)},String(t))}},1151:(e,t,r)=>{r.d(t,{Z:()=>o,a:()=>l});var n=r(7294);const a={},s=n.createContext(a);function l(e){const t=n.useContext(s);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:l(e.components),n.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/44063d41.285d08bf.js b/assets/js/44063d41.44e09010.js similarity index 71% rename from assets/js/44063d41.285d08bf.js rename to assets/js/44063d41.44e09010.js index 08e75f1b1..96e24604b 100644 --- a/assets/js/44063d41.285d08bf.js +++ b/assets/js/44063d41.44e09010.js @@ -1 +1 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[5709],{1290:e=>{e.exports=JSON.parse('{"title":"Upgrade","slug":"/category/upgrade","permalink":"/docs/category/upgrade","navigation":{"previous":{"title":"ws-router","permalink":"/docs/routers/ws-router"},"next":{"title":"Upgrade 3.x -> 4.x","permalink":"/docs/upgrade/3-4"}}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[5709],{1290:e=>{e.exports=JSON.parse('{"title":"Upgrade","slug":"/category/upgrade","permalink":"/docs/category/upgrade","navigation":{"previous":{"title":"ws-router","permalink":"/docs/routers/ws-router"},"next":{"title":"Upgrade 4.x -> 5.x","permalink":"/docs/upgrade/4-5"}}}')}}]); \ No newline at end of file diff --git a/assets/js/447662a1.8b02ebcf.js b/assets/js/447662a1.8b02ebcf.js deleted file mode 100644 index e25dbb457..000000000 --- a/assets/js/447662a1.8b02ebcf.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[1768],{3905:(e,r,t)=>{t.d(r,{Zo:()=>c,kt:()=>f});var n=t(7294);function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function a(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function i(e){for(var r=1;r=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var l=n.createContext({}),s=function(e){var r=n.useContext(l),t=r;return e&&(t="function"==typeof e?e(r):i(i({},r),e)),t},c=function(e){var r=s(e.components);return n.createElement(l.Provider,{value:r},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},m=n.forwardRef((function(e,r){var t=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,c=d(e,["components","mdxType","originalType","parentName"]),u=s(t),m=o,f=u["".concat(l,".").concat(m)]||u[m]||p[m]||a;return t?n.createElement(f,i(i({ref:r},c),{},{components:t})):n.createElement(f,i({ref:r},c))}));function f(e,r){var t=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var a=t.length,i=new Array(a);i[0]=m;var d={};for(var l in r)hasOwnProperty.call(r,l)&&(d[l]=r[l]);d.originalType=e,d[u]="string"==typeof e?e:o,i[1]=d;for(var s=2;s{t.r(r),t.d(r,{assets:()=>l,contentTitle:()=>i,default:()=>p,frontMatter:()=>a,metadata:()=>d,toc:()=>s});var n=t(7462),o=(t(7294),t(3905));const a={title:"Configurable Middlewares",position:2},i=void 0,d={unversionedId:"writing-middlewares/configurable-middlewares",id:"writing-middlewares/configurable-middlewares",title:"Configurable Middlewares",description:"In order to make middlewares configurable, they are generally exported as a function that accepts",source:"@site/docs/writing-middlewares/02-configurable-middlewares.md",sourceDirName:"writing-middlewares",slug:"/writing-middlewares/configurable-middlewares",permalink:"/docs/writing-middlewares/configurable-middlewares",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/writing-middlewares/02-configurable-middlewares.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",sidebarPosition:2,frontMatter:{title:"Configurable Middlewares",position:2},sidebar:"tutorialSidebar",previous:{title:"Custom Middlewares",permalink:"/docs/writing-middlewares/intro"},next:{title:"Inline Middlewares",permalink:"/docs/writing-middlewares/inline-middlewares"}},l={},s=[],c={toc:s},u="wrapper";function p(e){let{components:r,...t}=e;return(0,o.kt)(u,(0,n.Z)({},c,t,{components:r,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"In order to make middlewares configurable, they are generally exported as a function that accepts\na configuration object. This function should then return the middleware object with ",(0,o.kt)("inlineCode",{parentName:"p"},"before"),",\n",(0,o.kt)("inlineCode",{parentName:"p"},"after"),", and ",(0,o.kt)("inlineCode",{parentName:"p"},"onError")," as keys."),(0,o.kt)("p",null,"E.g."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-javascript"},"// customMiddleware.js\n\nconst defaults = {}\n\nconst customMiddleware = (opts) => {\n const options = { ...defaults, ...opts }\n\n const customMiddlewareBefore = async (request) => {\n const { event, context } = request\n // ...\n }\n\n const customMiddlewareAfter = async (request) => {\n const { response } = request\n // ...\n request.response = response\n }\n\n const customMiddlewareOnError = async (request) => {\n if (request.response === undefined) return\n await customMiddlewareAfter(request)\n }\n\n return {\n before: customMiddlewareBefore,\n after: customMiddlewareAfter,\n onError: customMiddlewareOnError\n }\n}\n\nexport default customMiddleware\n")),(0,o.kt)("p",null,"With this convention in mind, using a middleware will always look like the following example:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\nimport customMiddleware from 'customMiddleware.js'\n\nconst lambdaHandler = async (event, context) => {\n // do stuff\n return {}\n}\n\nexport const handler = middy(lambdaHandler)\n .use(customMiddleware({\n option1: 'foo',\n option2: 'bar'\n }))\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/447662a1.aeee1bc5.js b/assets/js/447662a1.aeee1bc5.js new file mode 100644 index 000000000..e3ad38b06 --- /dev/null +++ b/assets/js/447662a1.aeee1bc5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[1768],{2912:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>a,contentTitle:()=>o,default:()=>u,frontMatter:()=>d,metadata:()=>s,toc:()=>l});var r=t(5893),i=t(1151);const d={title:"Configurable Middlewares",position:2},o=void 0,s={id:"writing-middlewares/configurable-middlewares",title:"Configurable Middlewares",description:"In order to make middlewares configurable, they are generally exported as a function that accepts",source:"@site/docs/writing-middlewares/02-configurable-middlewares.md",sourceDirName:"writing-middlewares",slug:"/writing-middlewares/configurable-middlewares",permalink:"/docs/writing-middlewares/configurable-middlewares",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/writing-middlewares/02-configurable-middlewares.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",sidebarPosition:2,frontMatter:{title:"Configurable Middlewares",position:2},sidebar:"tutorialSidebar",previous:{title:"Custom Middlewares",permalink:"/docs/writing-middlewares/intro"},next:{title:"Inline Middlewares",permalink:"/docs/writing-middlewares/inline-middlewares"}},a={},l=[];function c(e){const n={code:"code",p:"p",pre:"pre",...(0,i.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(n.p,{children:["In order to make middlewares configurable, they are generally exported as a function that accepts\na configuration object. This function should then return the middleware object with ",(0,r.jsx)(n.code,{children:"before"}),",\n",(0,r.jsx)(n.code,{children:"after"}),", and ",(0,r.jsx)(n.code,{children:"onError"})," as keys."]}),"\n",(0,r.jsx)(n.p,{children:"E.g."}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-javascript",children:"// customMiddleware.js\n\nconst defaults = {}\n\nconst customMiddleware = (opts) => {\n const options = { ...defaults, ...opts }\n\n const customMiddlewareBefore = async (request) => {\n const { event, context } = request\n // ...\n }\n\n const customMiddlewareAfter = async (request) => {\n const { response } = request\n // ...\n request.response = response\n }\n\n const customMiddlewareOnError = async (request) => {\n if (request.response === undefined) return\n await customMiddlewareAfter(request)\n }\n\n return {\n before: customMiddlewareBefore,\n after: customMiddlewareAfter,\n onError: customMiddlewareOnError\n }\n}\n\nexport default customMiddleware\n"})}),"\n",(0,r.jsx)(n.p,{children:"With this convention in mind, using a middleware will always look like the following example:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-javascript",children:"import middy from '@middy/core'\nimport customMiddleware from 'customMiddleware.js'\n\nconst lambdaHandler = async (event, context) => {\n // do stuff\n return {}\n}\n\nexport const handler = middy()\n .use(\n customMiddleware({\n option1: 'foo',\n option2: 'bar'\n })\n )\n .handler(lambdaHandler)\n"})})]})}function u(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(c,{...e})}):c(e)}},1151:(e,n,t)=>{t.d(n,{Z:()=>s,a:()=>o});var r=t(7294);const i={},d=r.createContext(i);function o(e){const n=r.useContext(d);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function s(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),r.createElement(d.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/4611.41e855eb.js b/assets/js/4611.70d0184b.js similarity index 58% rename from assets/js/4611.41e855eb.js rename to assets/js/4611.70d0184b.js index a2ed8773d..8e198cbc5 100644 --- a/assets/js/4611.41e855eb.js +++ b/assets/js/4611.70d0184b.js @@ -1,2 +1,2 @@ -/*! For license information please see 4611.41e855eb.js.LICENSE.txt */ -(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[4611],{1639:(e,t,n)=>{"use strict";e.exports=n(9281)},7114:(e,t,n)=>{"use strict";var i=n(5670),r={wrapper:{position:"relative",display:"inline-block"},hint:{position:"absolute",top:"0",left:"0",borderColor:"transparent",boxShadow:"none",opacity:"1"},input:{position:"relative",verticalAlign:"top",backgroundColor:"transparent"},inputWithNoHint:{position:"relative",verticalAlign:"top"},dropdown:{position:"absolute",top:"100%",left:"0",zIndex:"100",display:"none"},suggestions:{display:"block"},suggestion:{whiteSpace:"nowrap",cursor:"pointer"},suggestionChild:{whiteSpace:"normal"},ltr:{left:"0",right:"auto"},rtl:{left:"auto",right:"0"},defaultClasses:{root:"algolia-autocomplete",prefix:"aa",noPrefix:!1,dropdownMenu:"dropdown-menu",input:"input",hint:"hint",suggestions:"suggestions",suggestion:"suggestion",cursor:"cursor",dataset:"dataset",empty:"empty"},appendTo:{wrapper:{position:"absolute",zIndex:"100",display:"none"},input:{},inputWithNoHint:{},dropdown:{display:"block"}}};i.isMsie()&&i.mixin(r.input,{backgroundImage:"url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)"}),i.isMsie()&&i.isMsie()<=7&&i.mixin(r.input,{marginTop:"-1px"}),e.exports=r},3312:(e,t,n)=>{"use strict";var i="aaDataset",r="aaValue",s="aaDatum",o=n(5670),a=n(3855),u=n(6619),c=n(7114),l=n(6823);function h(e){var t;(e=e||{}).templates=e.templates||{},e.source||o.error("missing source"),e.name&&(t=e.name,!/^[_a-zA-Z0-9-]+$/.test(t))&&o.error("invalid dataset name: "+e.name),this.query=null,this._isEmpty=!0,this.highlight=!!e.highlight,this.name=void 0===e.name||null===e.name?o.getUniqueId():e.name,this.source=e.source,this.displayFn=function(e){return e=e||"value",o.isFunction(e)?e:t;function t(t){return t[e]}}(e.display||e.displayKey),this.debounce=e.debounce,this.cache=!1!==e.cache,this.templates=function(e,t){return{empty:e.empty&&o.templatify(e.empty),header:e.header&&o.templatify(e.header),footer:e.footer&&o.templatify(e.footer),suggestion:e.suggestion||n};function n(e){return"

"+t(e)+"

"}}(e.templates,this.displayFn),this.css=o.mixin({},c,e.appendTo?c.appendTo:{}),this.cssClasses=e.cssClasses=o.mixin({},c.defaultClasses,e.cssClasses||{}),this.cssClasses.prefix=e.cssClasses.formattedPrefix||o.formatPrefix(this.cssClasses.prefix,this.cssClasses.noPrefix);var n=o.className(this.cssClasses.prefix,this.cssClasses.dataset);this.$el=e.$menu&&e.$menu.find(n+"-"+this.name).length>0?a.element(e.$menu.find(n+"-"+this.name)[0]):a.element(u.dataset.replace("%CLASS%",this.name).replace("%PREFIX%",this.cssClasses.prefix).replace("%DATASET%",this.cssClasses.dataset)),this.$menu=e.$menu,this.clearCachedSuggestions()}h.extractDatasetName=function(e){return a.element(e).data(i)},h.extractValue=function(e){return a.element(e).data(r)},h.extractDatum=function(e){var t=a.element(e).data(s);return"string"==typeof t&&(t=JSON.parse(t)),t},o.mixin(h.prototype,l,{_render:function(e,t){if(this.$el){var n,c=this,l=[].slice.call(arguments,2);if(this.$el.empty(),n=t&&t.length,this._isEmpty=!n,!n&&this.templates.empty)this.$el.html(function(){var t=[].slice.call(arguments,0);return t=[{query:e,isEmpty:!0}].concat(t),c.templates.empty.apply(this,t)}.apply(this,l)).prepend(c.templates.header?h.apply(this,l):null).append(c.templates.footer?p.apply(this,l):null);else if(n)this.$el.html(function(){var e,n,l=[].slice.call(arguments,0),h=this,p=u.suggestions.replace("%PREFIX%",this.cssClasses.prefix).replace("%SUGGESTIONS%",this.cssClasses.suggestions);return e=a.element(p).css(this.css.suggestions),n=o.map(t,d),e.append.apply(e,n),e;function d(e){var t,n=u.suggestion.replace("%PREFIX%",h.cssClasses.prefix).replace("%SUGGESTION%",h.cssClasses.suggestion);return(t=a.element(n).attr({role:"option",id:["option",Math.floor(1e8*Math.random())].join("-")}).append(c.templates.suggestion.apply(this,[e].concat(l)))).data(i,c.name),t.data(r,c.displayFn(e)||void 0),t.data(s,JSON.stringify(e)),t.children().each((function(){a.element(this).css(h.css.suggestionChild)})),t}}.apply(this,l)).prepend(c.templates.header?h.apply(this,l):null).append(c.templates.footer?p.apply(this,l):null);else if(t&&!Array.isArray(t))throw new TypeError("suggestions must be an array");this.$menu&&this.$menu.addClass(this.cssClasses.prefix+(n?"with":"without")+"-"+this.name).removeClass(this.cssClasses.prefix+(n?"without":"with")+"-"+this.name),this.trigger("rendered",e)}function h(){var t=[].slice.call(arguments,0);return t=[{query:e,isEmpty:!n}].concat(t),c.templates.header.apply(this,t)}function p(){var t=[].slice.call(arguments,0);return t=[{query:e,isEmpty:!n}].concat(t),c.templates.footer.apply(this,t)}},getRoot:function(){return this.$el},update:function(e){function t(t){if(!this.canceled&&e===this.query){var n=[].slice.call(arguments,1);this.cacheSuggestions(e,t,n),this._render.apply(this,[e,t].concat(n))}}if(this.query=e,this.canceled=!1,this.shouldFetchFromCache(e))t.apply(this,[this.cachedSuggestions].concat(this.cachedRenderExtraArgs));else{var n=this,i=function(){n.canceled||n.source(e,t.bind(n))};if(this.debounce){clearTimeout(this.debounceTimeout),this.debounceTimeout=setTimeout((function(){n.debounceTimeout=null,i()}),this.debounce)}else i()}},cacheSuggestions:function(e,t,n){this.cachedQuery=e,this.cachedSuggestions=t,this.cachedRenderExtraArgs=n},shouldFetchFromCache:function(e){return this.cache&&this.cachedQuery===e&&this.cachedSuggestions&&this.cachedSuggestions.length},clearCachedSuggestions:function(){delete this.cachedQuery,delete this.cachedSuggestions,delete this.cachedRenderExtraArgs},cancel:function(){this.canceled=!0},clear:function(){this.$el&&(this.cancel(),this.$el.empty(),this.trigger("rendered",""))},isEmpty:function(){return this._isEmpty},destroy:function(){this.clearCachedSuggestions(),this.$el=null}}),e.exports=h},5445:(e,t,n)=>{"use strict";var i=n(5670),r=n(3855),s=n(6823),o=n(3312),a=n(7114);function u(e){var t,n,s,o=this;(e=e||{}).menu||i.error("menu is required"),i.isArray(e.datasets)||i.isObject(e.datasets)||i.error("1 or more datasets required"),e.datasets||i.error("datasets is required"),this.isOpen=!1,this.isEmpty=!0,this.minLength=e.minLength||0,this.templates={},this.appendTo=e.appendTo||!1,this.css=i.mixin({},a,e.appendTo?a.appendTo:{}),this.cssClasses=e.cssClasses=i.mixin({},a.defaultClasses,e.cssClasses||{}),this.cssClasses.prefix=e.cssClasses.formattedPrefix||i.formatPrefix(this.cssClasses.prefix,this.cssClasses.noPrefix),t=i.bind(this._onSuggestionClick,this),n=i.bind(this._onSuggestionMouseEnter,this),s=i.bind(this._onSuggestionMouseLeave,this);var c=i.className(this.cssClasses.prefix,this.cssClasses.suggestion);this.$menu=r.element(e.menu).on("mouseenter.aa",c,n).on("mouseleave.aa",c,s).on("click.aa",c,t),this.$container=e.appendTo?e.wrapper:this.$menu,e.templates&&e.templates.header&&(this.templates.header=i.templatify(e.templates.header),this.$menu.prepend(this.templates.header())),e.templates&&e.templates.empty&&(this.templates.empty=i.templatify(e.templates.empty),this.$empty=r.element('
'),this.$menu.append(this.$empty),this.$empty.hide()),this.datasets=i.map(e.datasets,(function(t){return function(e,t,n){return new u.Dataset(i.mixin({$menu:e,cssClasses:n},t))}(o.$menu,t,e.cssClasses)})),i.each(this.datasets,(function(e){var t=e.getRoot();t&&0===t.parent().length&&o.$menu.append(t),e.onSync("rendered",o._onRendered,o)})),e.templates&&e.templates.footer&&(this.templates.footer=i.templatify(e.templates.footer),this.$menu.append(this.templates.footer()));var l=this;r.element(window).resize((function(){l._redraw()}))}i.mixin(u.prototype,s,{_onSuggestionClick:function(e){this.trigger("suggestionClicked",r.element(e.currentTarget))},_onSuggestionMouseEnter:function(e){var t=r.element(e.currentTarget);if(!t.hasClass(i.className(this.cssClasses.prefix,this.cssClasses.cursor,!0))){this._removeCursor();var n=this;setTimeout((function(){n._setCursor(t,!1)}),0)}},_onSuggestionMouseLeave:function(e){if(e.relatedTarget&&r.element(e.relatedTarget).closest("."+i.className(this.cssClasses.prefix,this.cssClasses.cursor,!0)).length>0)return;this._removeCursor(),this.trigger("cursorRemoved")},_onRendered:function(e,t){if(this.isEmpty=i.every(this.datasets,(function(e){return e.isEmpty()})),this.isEmpty)if(t.length>=this.minLength&&this.trigger("empty"),this.$empty)if(t.length=this.minLength?this._show():this._hide());this.trigger("datasetRendered")},_hide:function(){this.$container.hide()},_show:function(){this.$container.css("display","block"),this._redraw(),this.trigger("shown")},_redraw:function(){this.isOpen&&this.appendTo&&this.trigger("redrawn")},_getSuggestions:function(){return this.$menu.find(i.className(this.cssClasses.prefix,this.cssClasses.suggestion))},_getCursor:function(){return this.$menu.find(i.className(this.cssClasses.prefix,this.cssClasses.cursor)).first()},_setCursor:function(e,t){e.first().addClass(i.className(this.cssClasses.prefix,this.cssClasses.cursor,!0)).attr("aria-selected","true"),this.trigger("cursorMoved",t)},_removeCursor:function(){this._getCursor().removeClass(i.className(this.cssClasses.prefix,this.cssClasses.cursor,!0)).removeAttr("aria-selected")},_moveCursor:function(e){var t,n,i,r;this.isOpen&&(n=this._getCursor(),t=this._getSuggestions(),this._removeCursor(),-1!==(i=((i=t.index(n)+e)+1)%(t.length+1)-1)?(i<-1&&(i=t.length-1),this._setCursor(r=t.eq(i),!0),this._ensureVisible(r)):this.trigger("cursorRemoved"))},_ensureVisible:function(e){var t,n,i,r;n=(t=e.position().top)+e.height()+parseInt(e.css("margin-top"),10)+parseInt(e.css("margin-bottom"),10),i=this.$menu.scrollTop(),r=this.$menu.height()+parseInt(this.$menu.css("padding-top"),10)+parseInt(this.$menu.css("padding-bottom"),10),t<0?this.$menu.scrollTop(i+t):r{"use strict";var i=n(5670),r=n(3855);function s(e){e&&e.el||i.error("EventBus initialized without el"),this.$el=r.element(e.el)}i.mixin(s.prototype,{trigger:function(e,t,n,r){var s=i.Event("autocomplete:"+e);return this.$el.trigger(s,[t,n,r]),s}}),e.exports=s},6823:(e,t,n)=>{"use strict";var i=n(624),r=/\s+/;function s(e,t,n,i){var s;if(!n)return this;for(t=t.split(r),n=i?function(e,t){return e.bind?e.bind(t):function(){e.apply(t,[].slice.call(arguments,0))}}(n,i):n,this._callbacks=this._callbacks||{};s=t.shift();)this._callbacks[s]=this._callbacks[s]||{sync:[],async:[]},this._callbacks[s][e].push(n);return this}function o(e,t,n){return function(){for(var i,r=0,s=e.length;!i&&r{"use strict";e.exports={wrapper:'',dropdown:'',dataset:'
',suggestions:'',suggestion:'
'}},1286:(e,t,n)=>{"use strict";var i;i={9:"tab",27:"esc",37:"left",39:"right",13:"enter",38:"up",40:"down"};var r=n(5670),s=n(3855),o=n(6823);function a(e){var t,n,o,a,u,c=this;(e=e||{}).input||r.error("input is missing"),t=r.bind(this._onBlur,this),n=r.bind(this._onFocus,this),o=r.bind(this._onKeydown,this),a=r.bind(this._onInput,this),this.$hint=s.element(e.hint),this.$input=s.element(e.input).on("blur.aa",t).on("focus.aa",n).on("keydown.aa",o),0===this.$hint.length&&(this.setHint=this.getHint=this.clearHint=this.clearHintIfInvalid=r.noop),r.isMsie()?this.$input.on("keydown.aa keypress.aa cut.aa paste.aa",(function(e){i[e.which||e.keyCode]||r.defer(r.bind(c._onInput,c,e))})):this.$input.on("input.aa",a),this.query=this.$input.val(),this.$overflowHelper=(u=this.$input,s.element('').css({position:"absolute",visibility:"hidden",whiteSpace:"pre",fontFamily:u.css("font-family"),fontSize:u.css("font-size"),fontStyle:u.css("font-style"),fontVariant:u.css("font-variant"),fontWeight:u.css("font-weight"),wordSpacing:u.css("word-spacing"),letterSpacing:u.css("letter-spacing"),textIndent:u.css("text-indent"),textRendering:u.css("text-rendering"),textTransform:u.css("text-transform")}).insertAfter(u))}function u(e){return e.altKey||e.ctrlKey||e.metaKey||e.shiftKey}a.normalizeQuery=function(e){return(e||"").replace(/^\s*/g,"").replace(/\s{2,}/g," ")},r.mixin(a.prototype,o,{_onBlur:function(){this.resetInputValue(),this.$input.removeAttr("aria-activedescendant"),this.trigger("blurred")},_onFocus:function(){this.trigger("focused")},_onKeydown:function(e){var t=i[e.which||e.keyCode];this._managePreventDefault(t,e),t&&this._shouldTrigger(t,e)&&this.trigger(t+"Keyed",e)},_onInput:function(){this._checkInputValue()},_managePreventDefault:function(e,t){var n,i,r;switch(e){case"tab":i=this.getHint(),r=this.getInputValue(),n=i&&i!==r&&!u(t);break;case"up":case"down":n=!u(t);break;default:n=!1}n&&t.preventDefault()},_shouldTrigger:function(e,t){var n;if("tab"===e)n=!u(t);else n=!0;return n},_checkInputValue:function(){var e,t,n,i,r;e=this.getInputValue(),i=e,r=this.query,n=!(!(t=a.normalizeQuery(i)===a.normalizeQuery(r))||!this.query)&&this.query.length!==e.length,this.query=e,t?n&&this.trigger("whitespaceChanged",this.query):this.trigger("queryChanged",this.query)},focus:function(){this.$input.focus()},blur:function(){this.$input.blur()},getQuery:function(){return this.query},setQuery:function(e){this.query=e},getInputValue:function(){return this.$input.val()},setInputValue:function(e,t){void 0===e&&(e=this.query),this.$input.val(e),t?this.clearHint():this._checkInputValue()},expand:function(){this.$input.attr("aria-expanded","true")},collapse:function(){this.$input.attr("aria-expanded","false")},setActiveDescendant:function(e){this.$input.attr("aria-activedescendant",e)},removeActiveDescendant:function(){this.$input.removeAttr("aria-activedescendant")},resetInputValue:function(){this.setInputValue(this.query,!0)},getHint:function(){return this.$hint.val()},setHint:function(e){this.$hint.val(e)},clearHint:function(){this.setHint("")},clearHintIfInvalid:function(){var e,t,n;n=(e=this.getInputValue())!==(t=this.getHint())&&0===t.indexOf(e),""!==e&&n&&!this.hasOverflow()||this.clearHint()},getLanguageDirection:function(){return(this.$input.css("direction")||"ltr").toLowerCase()},hasOverflow:function(){var e=this.$input.width()-2;return this.$overflowHelper.text(this.getInputValue()),this.$overflowHelper.width()>=e},isCursorAtEnd:function(){var e,t,n;return e=this.$input.val().length,t=this.$input[0].selectionStart,r.isNumber(t)?t===e:!document.selection||((n=document.selection.createRange()).moveStart("character",-e),e===n.text.length)},destroy:function(){this.$hint.off(".aa"),this.$input.off(".aa"),this.$hint=this.$input=this.$overflowHelper=null}}),e.exports=a},4520:(e,t,n)=>{"use strict";var i="aaAttrs",r=n(5670),s=n(3855),o=n(7368),a=n(1286),u=n(5445),c=n(6619),l=n(7114);function h(e){var t,n;if((e=e||{}).input||r.error("missing input"),this.isActivated=!1,this.debug=!!e.debug,this.autoselect=!!e.autoselect,this.autoselectOnBlur=!!e.autoselectOnBlur,this.openOnFocus=!!e.openOnFocus,this.minLength=r.isNumber(e.minLength)?e.minLength:1,this.autoWidth=void 0===e.autoWidth||!!e.autoWidth,this.clearOnSelected=!!e.clearOnSelected,this.tabAutocomplete=void 0===e.tabAutocomplete||!!e.tabAutocomplete,e.hint=!!e.hint,e.hint&&e.appendTo)throw new Error("[autocomplete.js] hint and appendTo options can't be used at the same time");this.css=e.css=r.mixin({},l,e.appendTo?l.appendTo:{}),this.cssClasses=e.cssClasses=r.mixin({},l.defaultClasses,e.cssClasses||{}),this.cssClasses.prefix=e.cssClasses.formattedPrefix=r.formatPrefix(this.cssClasses.prefix,this.cssClasses.noPrefix),this.listboxId=e.listboxId=[this.cssClasses.root,"listbox",r.getUniqueId()].join("-");var a=function(e){var t,n,o,a;t=s.element(e.input),n=s.element(c.wrapper.replace("%ROOT%",e.cssClasses.root)).css(e.css.wrapper),e.appendTo||"block"!==t.css("display")||"table"!==t.parent().css("display")||n.css("display","table-cell");var u=c.dropdown.replace("%PREFIX%",e.cssClasses.prefix).replace("%DROPDOWN_MENU%",e.cssClasses.dropdownMenu);o=s.element(u).css(e.css.dropdown).attr({role:"listbox",id:e.listboxId}),e.templates&&e.templates.dropdownMenu&&o.html(r.templatify(e.templates.dropdownMenu)());a=t.clone().css(e.css.hint).css(function(e){return{backgroundAttachment:e.css("background-attachment"),backgroundClip:e.css("background-clip"),backgroundColor:e.css("background-color"),backgroundImage:e.css("background-image"),backgroundOrigin:e.css("background-origin"),backgroundPosition:e.css("background-position"),backgroundRepeat:e.css("background-repeat"),backgroundSize:e.css("background-size")}}(t)),a.val("").addClass(r.className(e.cssClasses.prefix,e.cssClasses.hint,!0)).removeAttr("id name placeholder required").prop("readonly",!0).attr({"aria-hidden":"true",autocomplete:"off",spellcheck:"false",tabindex:-1}),a.removeData&&a.removeData();t.data(i,{"aria-autocomplete":t.attr("aria-autocomplete"),"aria-expanded":t.attr("aria-expanded"),"aria-owns":t.attr("aria-owns"),autocomplete:t.attr("autocomplete"),dir:t.attr("dir"),role:t.attr("role"),spellcheck:t.attr("spellcheck"),style:t.attr("style"),type:t.attr("type")}),t.addClass(r.className(e.cssClasses.prefix,e.cssClasses.input,!0)).attr({autocomplete:"off",spellcheck:!1,role:"combobox","aria-autocomplete":e.datasets&&e.datasets[0]&&e.datasets[0].displayKey?"both":"list","aria-expanded":"false","aria-label":e.ariaLabel,"aria-owns":e.listboxId}).css(e.hint?e.css.input:e.css.inputWithNoHint);try{t.attr("dir")||t.attr("dir","auto")}catch(l){}return n=e.appendTo?n.appendTo(s.element(e.appendTo).eq(0)).eq(0):t.wrap(n).parent(),n.prepend(e.hint?a:null).append(o),{wrapper:n,input:t,hint:a,menu:o}}(e);this.$node=a.wrapper;var u=this.$input=a.input;t=a.menu,n=a.hint,e.dropdownMenuContainer&&s.element(e.dropdownMenuContainer).css("position","relative").append(t.css("top","0")),u.on("blur.aa",(function(e){var n=document.activeElement;r.isMsie()&&(t[0]===n||t[0].contains(n))&&(e.preventDefault(),e.stopImmediatePropagation(),r.defer((function(){u.focus()})))})),t.on("mousedown.aa",(function(e){e.preventDefault()})),this.eventBus=e.eventBus||new o({el:u}),this.dropdown=new h.Dropdown({appendTo:e.appendTo,wrapper:this.$node,menu:t,datasets:e.datasets,templates:e.templates,cssClasses:e.cssClasses,minLength:this.minLength}).onSync("suggestionClicked",this._onSuggestionClicked,this).onSync("cursorMoved",this._onCursorMoved,this).onSync("cursorRemoved",this._onCursorRemoved,this).onSync("opened",this._onOpened,this).onSync("closed",this._onClosed,this).onSync("shown",this._onShown,this).onSync("empty",this._onEmpty,this).onSync("redrawn",this._onRedrawn,this).onAsync("datasetRendered",this._onDatasetRendered,this),this.input=new h.Input({input:u,hint:n}).onSync("focused",this._onFocused,this).onSync("blurred",this._onBlurred,this).onSync("enterKeyed",this._onEnterKeyed,this).onSync("tabKeyed",this._onTabKeyed,this).onSync("escKeyed",this._onEscKeyed,this).onSync("upKeyed",this._onUpKeyed,this).onSync("downKeyed",this._onDownKeyed,this).onSync("leftKeyed",this._onLeftKeyed,this).onSync("rightKeyed",this._onRightKeyed,this).onSync("queryChanged",this._onQueryChanged,this).onSync("whitespaceChanged",this._onWhitespaceChanged,this),this._bindKeyboardShortcuts(e),this._setLanguageDirection()}r.mixin(h.prototype,{_bindKeyboardShortcuts:function(e){if(e.keyboardShortcuts){var t=this.$input,n=[];r.each(e.keyboardShortcuts,(function(e){"string"==typeof e&&(e=e.toUpperCase().charCodeAt(0)),n.push(e)})),s.element(document).keydown((function(e){var i=e.target||e.srcElement,r=i.tagName;if(!i.isContentEditable&&"INPUT"!==r&&"SELECT"!==r&&"TEXTAREA"!==r){var s=e.which||e.keyCode;-1!==n.indexOf(s)&&(t.focus(),e.stopPropagation(),e.preventDefault())}}))}},_onSuggestionClicked:function(e,t){var n;(n=this.dropdown.getDatumForSuggestion(t))&&this._select(n,{selectionMethod:"click"})},_onCursorMoved:function(e,t){var n=this.dropdown.getDatumForCursor(),i=this.dropdown.getCurrentCursor().attr("id");this.input.setActiveDescendant(i),n&&(t&&this.input.setInputValue(n.value,!0),this.eventBus.trigger("cursorchanged",n.raw,n.datasetName))},_onCursorRemoved:function(){this.input.resetInputValue(),this._updateHint(),this.eventBus.trigger("cursorremoved")},_onDatasetRendered:function(){this._updateHint(),this.eventBus.trigger("updated")},_onOpened:function(){this._updateHint(),this.input.expand(),this.eventBus.trigger("opened")},_onEmpty:function(){this.eventBus.trigger("empty")},_onRedrawn:function(){this.$node.css("top","0px"),this.$node.css("left","0px");var e=this.$input[0].getBoundingClientRect();this.autoWidth&&this.$node.css("width",e.width+"px");var t=this.$node[0].getBoundingClientRect(),n=e.bottom-t.top;this.$node.css("top",n+"px");var i=e.left-t.left;this.$node.css("left",i+"px"),this.eventBus.trigger("redrawn")},_onShown:function(){this.eventBus.trigger("shown"),this.autoselect&&this.dropdown.cursorTopSuggestion()},_onClosed:function(){this.input.clearHint(),this.input.removeActiveDescendant(),this.input.collapse(),this.eventBus.trigger("closed")},_onFocused:function(){if(this.isActivated=!0,this.openOnFocus){var e=this.input.getQuery();e.length>=this.minLength?this.dropdown.update(e):this.dropdown.empty(),this.dropdown.open()}},_onBlurred:function(){var e,t;e=this.dropdown.getDatumForCursor(),t=this.dropdown.getDatumForTopSuggestion();var n={selectionMethod:"blur"};this.debug||(this.autoselectOnBlur&&e?this._select(e,n):this.autoselectOnBlur&&t?this._select(t,n):(this.isActivated=!1,this.dropdown.empty(),this.dropdown.close()))},_onEnterKeyed:function(e,t){var n,i;n=this.dropdown.getDatumForCursor(),i=this.dropdown.getDatumForTopSuggestion();var r={selectionMethod:"enterKey"};n?(this._select(n,r),t.preventDefault()):this.autoselect&&i&&(this._select(i,r),t.preventDefault())},_onTabKeyed:function(e,t){if(this.tabAutocomplete){var n;(n=this.dropdown.getDatumForCursor())?(this._select(n,{selectionMethod:"tabKey"}),t.preventDefault()):this._autocomplete(!0)}else this.dropdown.close()},_onEscKeyed:function(){this.dropdown.close(),this.input.resetInputValue()},_onUpKeyed:function(){var e=this.input.getQuery();this.dropdown.isEmpty&&e.length>=this.minLength?this.dropdown.update(e):this.dropdown.moveCursorUp(),this.dropdown.open()},_onDownKeyed:function(){var e=this.input.getQuery();this.dropdown.isEmpty&&e.length>=this.minLength?this.dropdown.update(e):this.dropdown.moveCursorDown(),this.dropdown.open()},_onLeftKeyed:function(){"rtl"===this.dir&&this._autocomplete()},_onRightKeyed:function(){"ltr"===this.dir&&this._autocomplete()},_onQueryChanged:function(e,t){this.input.clearHintIfInvalid(),t.length>=this.minLength?this.dropdown.update(t):this.dropdown.empty(),this.dropdown.open(),this._setLanguageDirection()},_onWhitespaceChanged:function(){this._updateHint(),this.dropdown.open()},_setLanguageDirection:function(){var e=this.input.getLanguageDirection();this.dir!==e&&(this.dir=e,this.$node.css("direction",e),this.dropdown.setLanguageDirection(e))},_updateHint:function(){var e,t,n,i,s;(e=this.dropdown.getDatumForTopSuggestion())&&this.dropdown.isVisible()&&!this.input.hasOverflow()?(t=this.input.getInputValue(),n=a.normalizeQuery(t),i=r.escapeRegExChars(n),(s=new RegExp("^(?:"+i+")(.+$)","i").exec(e.value))?this.input.setHint(t+s[1]):this.input.clearHint()):this.input.clearHint()},_autocomplete:function(e){var t,n,i,r;t=this.input.getHint(),n=this.input.getQuery(),i=e||this.input.isCursorAtEnd(),t&&n!==t&&i&&((r=this.dropdown.getDatumForTopSuggestion())&&this.input.setInputValue(r.value),this.eventBus.trigger("autocompleted",r.raw,r.datasetName))},_select:function(e,t){void 0!==e.value&&this.input.setQuery(e.value),this.clearOnSelected?this.setVal(""):this.input.setInputValue(e.value,!0),this._setLanguageDirection(),!1===this.eventBus.trigger("selected",e.raw,e.datasetName,t).isDefaultPrevented()&&(this.dropdown.close(),r.defer(r.bind(this.dropdown.empty,this.dropdown)))},open:function(){if(!this.isActivated){var e=this.input.getInputValue();e.length>=this.minLength?this.dropdown.update(e):this.dropdown.empty()}this.dropdown.open()},close:function(){this.dropdown.close()},setVal:function(e){e=r.toStr(e),this.isActivated?this.input.setInputValue(e):(this.input.setQuery(e),this.input.setInputValue(e,!0)),this._setLanguageDirection()},getVal:function(){return this.input.getQuery()},destroy:function(){this.input.destroy(),this.dropdown.destroy(),function(e,t){var n=e.find(r.className(t.prefix,t.input));r.each(n.data(i),(function(e,t){void 0===e?n.removeAttr(t):n.attr(t,e)})),n.detach().removeClass(r.className(t.prefix,t.input,!0)).insertAfter(e),n.removeData&&n.removeData(i);e.remove()}(this.$node,this.cssClasses),this.$node=null},getWrapper:function(){return this.dropdown.$container[0]}}),h.Dropdown=u,h.Input=a,h.sources=n(6331),e.exports=h},3855:e=>{"use strict";e.exports={element:null}},2926:e=>{"use strict";e.exports=function(e){var t=e.match(/Algolia for JavaScript \((\d+\.)(\d+\.)(\d+)\)/)||e.match(/Algolia for vanilla JavaScript (\d+\.)(\d+\.)(\d+)/);if(t)return[t[1],t[2],t[3]]}},5670:(e,t,n)=>{"use strict";var i,r=n(3855);function s(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}e.exports={isArray:null,isFunction:null,isObject:null,bind:null,each:null,map:null,mixin:null,isMsie:function(e){if(void 0===e&&(e=navigator.userAgent),/(msie|trident)/i.test(e)){var t=e.match(/(msie |rv:)(\d+(.\d+)?)/i);if(t)return t[2]}return!1},escapeRegExChars:function(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")},isNumber:function(e){return"number"==typeof e},toStr:function(e){return null==e?"":e+""},cloneDeep:function(e){var t=this.mixin({},e),n=this;return this.each(t,(function(e,i){e&&(n.isArray(e)?t[i]=[].concat(e):n.isObject(e)&&(t[i]=n.cloneDeep(e)))})),t},error:function(e){throw new Error(e)},every:function(e,t){var n=!0;return e?(this.each(e,(function(i,r){n&&(n=t.call(null,i,r,e)&&n)})),!!n):n},any:function(e,t){var n=!1;return e?(this.each(e,(function(i,r){if(t.call(null,i,r,e))return n=!0,!1})),n):n},getUniqueId:(i=0,function(){return i++}),templatify:function(e){if(this.isFunction(e))return e;var t=r.element(e);return"SCRIPT"===t.prop("tagName")?function(){return t.text()}:function(){return String(e)}},defer:function(e){setTimeout(e,0)},noop:function(){},formatPrefix:function(e,t){return t?"":e+"-"},className:function(e,t,n){return(n?"":".")+e+t},escapeHighlightedString:function(e,t,n){t=t||"";var i=document.createElement("div");i.appendChild(document.createTextNode(t)),n=n||"";var r=document.createElement("div");r.appendChild(document.createTextNode(n));var o=document.createElement("div");return o.appendChild(document.createTextNode(e)),o.innerHTML.replace(RegExp(s(i.innerHTML),"g"),t).replace(RegExp(s(r.innerHTML),"g"),n)}}},2683:(e,t,n)=>{"use strict";var i=n(5670),r=n(3489),s=n(2926);e.exports=function(e,t){var n=s(e.as._ua);return n&&n[0]>=3&&n[1]>20&&((t=t||{}).additionalUA="autocomplete.js "+r),function(n,r){e.search(n,t,(function(e,t){e?i.error(e.message):r(t.hits,t)}))}}},6331:(e,t,n)=>{"use strict";e.exports={hits:n(2683),popularIn:n(2226)}},2226:(e,t,n)=>{"use strict";var i=n(5670),r=n(3489),s=n(2926);e.exports=function(e,t,n,o){var a=s(e.as._ua);if(a&&a[0]>=3&&a[1]>20&&((t=t||{}).additionalUA="autocomplete.js "+r),!n.source)return i.error("Missing 'source' key");var u=i.isFunction(n.source)?n.source:function(e){return e[n.source]};if(!n.index)return i.error("Missing 'index' key");var c=n.index;return o=o||{},function(a,l){e.search(a,t,(function(e,a){if(e)i.error(e.message);else{if(a.hits.length>0){var h=a.hits[0],p=i.mixin({hitsPerPage:0},n);delete p.source,delete p.index;var d=s(c.as._ua);return d&&d[0]>=3&&d[1]>20&&(t.additionalUA="autocomplete.js "+r),void c.search(u(h),p,(function(e,t){if(e)i.error(e.message);else{var n=[];if(o.includeAll){var r=o.allTitle||"All departments";n.push(i.mixin({facet:{value:r,count:t.nbHits}},i.cloneDeep(h)))}i.each(t.facets,(function(e,t){i.each(e,(function(e,r){n.push(i.mixin({facet:{facet:t,value:r,count:e}},i.cloneDeep(h)))}))}));for(var s=1;s{"use strict";var i=n(7939);n(3855).element=i;var r=n(5670);r.isArray=i.isArray,r.isFunction=i.isFunction,r.isObject=i.isPlainObject,r.bind=i.proxy,r.each=function(e,t){i.each(e,(function(e,n){return t(n,e)}))},r.map=i.map,r.mixin=i.extend,r.Event=i.Event;var s="aaAutocomplete",o=n(4520),a=n(7368);function u(e,t,n,u){n=r.isArray(n)?n:[].slice.call(arguments,2);var c=i(e).each((function(e,r){var c=i(r),l=new a({el:c}),h=u||new o({input:c,eventBus:l,dropdownMenuContainer:t.dropdownMenuContainer,hint:void 0===t.hint||!!t.hint,minLength:t.minLength,autoselect:t.autoselect,autoselectOnBlur:t.autoselectOnBlur,tabAutocomplete:t.tabAutocomplete,openOnFocus:t.openOnFocus,templates:t.templates,debug:t.debug,clearOnSelected:t.clearOnSelected,cssClasses:t.cssClasses,datasets:n,keyboardShortcuts:t.keyboardShortcuts,appendTo:t.appendTo,autoWidth:t.autoWidth,ariaLabel:t.ariaLabel||r.getAttribute("aria-label")});c.data(s,h)}));return c.autocomplete={},r.each(["open","close","getVal","setVal","destroy","getWrapper"],(function(e){c.autocomplete[e]=function(){var t,n=arguments;return c.each((function(r,o){var a=i(o).data(s);t=a[e].apply(a,n)})),t}})),c}u.sources=o.sources,u.escapeHighlightedString=r.escapeHighlightedString;var c="autocomplete"in window,l=window.autocomplete;u.noConflict=function(){return c?window.autocomplete=l:delete window.autocomplete,u},e.exports=u},3489:e=>{e.exports="0.37.1"},7939:e=>{var t;t=window,e.exports=function(e){var t,n,i=function(){var t,n,i,r,s,o,a=[],u=a.concat,c=a.filter,l=a.slice,h=e.document,p={},d={},f={"column-count":1,columns:1,"font-weight":1,"line-height":1,opacity:1,"z-index":1,zoom:1},g=/^\s*<(\w+|!)[^>]*>/,m=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,v=/^(?:body|html)$/i,x=/([A-Z])/g,b=["val","css","html","text","data","width","height","offset"],w=["after","prepend","before","append"],S=h.createElement("table"),C=h.createElement("tr"),E={tr:h.createElement("tbody"),tbody:S,thead:S,tfoot:S,td:C,th:C,"*":h.createElement("div")},k=/complete|loaded|interactive/,_=/^[\w-]*$/,T={},L=T.toString,O={},A=h.createElement("div"),$={tabindex:"tabIndex",readonly:"readOnly",for:"htmlFor",class:"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},P=Array.isArray||function(e){return e instanceof Array};function I(e){return null==e?String(e):T[L.call(e)]||"object"}function Q(e){return"function"==I(e)}function R(e){return null!=e&&e==e.window}function N(e){return null!=e&&e.nodeType==e.DOCUMENT_NODE}function D(e){return"object"==I(e)}function F(e){return D(e)&&!R(e)&&Object.getPrototypeOf(e)==Object.prototype}function j(e){var t=!!e&&"length"in e&&e.length,n=i.type(e);return"function"!=n&&!R(e)&&("array"==n||0===t||"number"==typeof t&&t>0&&t-1 in e)}function H(e){return c.call(e,(function(e){return null!=e}))}function V(e){return e.length>0?i.fn.concat.apply([],e):e}function B(e){return e.replace(/::/g,"/").replace(/([A-Z]+)([A-Z][a-z])/g,"$1_$2").replace(/([a-z\d])([A-Z])/g,"$1_$2").replace(/_/g,"-").toLowerCase()}function M(e){return e in d?d[e]:d[e]=new RegExp("(^|\\s)"+e+"(\\s|$)")}function q(e,t){return"number"!=typeof t||f[B(e)]?t:t+"px"}function z(e){var t,n;return p[e]||(t=h.createElement(e),h.body.appendChild(t),n=getComputedStyle(t,"").getPropertyValue("display"),t.parentNode.removeChild(t),"none"==n&&(n="block"),p[e]=n),p[e]}function K(e){return"children"in e?l.call(e.children):i.map(e.childNodes,(function(e){if(1==e.nodeType)return e}))}function W(e,t){var n,i=e?e.length:0;for(n=0;n")),n===t&&(n=g.test(e)&&RegExp.$1),n in E||(n="*"),(a=E[n]).innerHTML=""+e,s=i.each(l.call(a.childNodes),(function(){a.removeChild(this)}))),F(r)&&(o=i(s),i.each(r,(function(e,t){b.indexOf(e)>-1?o[e](t):o.attr(e,t)}))),s},O.Z=function(e,t){return new W(e,t)},O.isZ=function(e){return e instanceof O.Z},O.init=function(e,n){var r;if(!e)return O.Z();if("string"==typeof e)if("<"==(e=e.trim())[0]&&g.test(e))r=O.fragment(e,RegExp.$1,n),e=null;else{if(n!==t)return i(n).find(e);r=O.qsa(h,e)}else{if(Q(e))return i(h).ready(e);if(O.isZ(e))return e;if(P(e))r=H(e);else if(D(e))r=[e],e=null;else if(g.test(e))r=O.fragment(e.trim(),RegExp.$1,n),e=null;else{if(n!==t)return i(n).find(e);r=O.qsa(h,e)}}return O.Z(r,e)},(i=function(e,t){return O.init(e,t)}).extend=function(e){var t,n=l.call(arguments,1);return"boolean"==typeof e&&(t=e,e=n.shift()),n.forEach((function(n){U(e,n,t)})),e},O.qsa=function(e,t){var n,i="#"==t[0],r=!i&&"."==t[0],s=i||r?t.slice(1):t,o=_.test(s);return e.getElementById&&o&&i?(n=e.getElementById(s))?[n]:[]:1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType?[]:l.call(o&&!i&&e.getElementsByClassName?r?e.getElementsByClassName(s):e.getElementsByTagName(t):e.querySelectorAll(t))},i.contains=h.documentElement.contains?function(e,t){return e!==t&&e.contains(t)}:function(e,t){for(;t&&(t=t.parentNode);)if(t===e)return!0;return!1},i.type=I,i.isFunction=Q,i.isWindow=R,i.isArray=P,i.isPlainObject=F,i.isEmptyObject=function(e){var t;for(t in e)return!1;return!0},i.isNumeric=function(e){var t=Number(e),n=typeof e;return null!=e&&"boolean"!=n&&("string"!=n||e.length)&&!isNaN(t)&&isFinite(t)||!1},i.inArray=function(e,t,n){return a.indexOf.call(t,e,n)},i.camelCase=s,i.trim=function(e){return null==e?"":String.prototype.trim.call(e)},i.uuid=0,i.support={},i.expr={},i.noop=function(){},i.map=function(e,t){var n,i,r,s=[];if(j(e))for(i=0;i=0?e:e+this.length]},toArray:function(){return this.get()},size:function(){return this.length},remove:function(){return this.each((function(){null!=this.parentNode&&this.parentNode.removeChild(this)}))},each:function(e){return a.every.call(this,(function(t,n){return!1!==e.call(t,n,t)})),this},filter:function(e){return Q(e)?this.not(this.not(e)):i(c.call(this,(function(t){return O.matches(t,e)})))},add:function(e,t){return i(o(this.concat(i(e,t))))},is:function(e){return this.length>0&&O.matches(this[0],e)},not:function(e){var n=[];if(Q(e)&&e.call!==t)this.each((function(t){e.call(this,t)||n.push(this)}));else{var r="string"==typeof e?this.filter(e):j(e)&&Q(e.item)?l.call(e):i(e);this.forEach((function(e){r.indexOf(e)<0&&n.push(e)}))}return i(n)},has:function(e){return this.filter((function(){return D(e)?i.contains(this,e):i(this).find(e).size()}))},eq:function(e){return-1===e?this.slice(e):this.slice(e,+e+1)},first:function(){var e=this[0];return e&&!D(e)?e:i(e)},last:function(){var e=this[this.length-1];return e&&!D(e)?e:i(e)},find:function(e){var t=this;return e?"object"==typeof e?i(e).filter((function(){var e=this;return a.some.call(t,(function(t){return i.contains(t,e)}))})):1==this.length?i(O.qsa(this[0],e)):this.map((function(){return O.qsa(this,e)})):i()},closest:function(e,t){var n=[],r="object"==typeof e&&i(e);return this.each((function(i,s){for(;s&&!(r?r.indexOf(s)>=0:O.matches(s,e));)s=s!==t&&!N(s)&&s.parentNode;s&&n.indexOf(s)<0&&n.push(s)})),i(n)},parents:function(e){for(var t=[],n=this;n.length>0;)n=i.map(n,(function(e){if((e=e.parentNode)&&!N(e)&&t.indexOf(e)<0)return t.push(e),e}));return Z(t,e)},parent:function(e){return Z(o(this.pluck("parentNode")),e)},children:function(e){return Z(this.map((function(){return K(this)})),e)},contents:function(){return this.map((function(){return this.contentDocument||l.call(this.childNodes)}))},siblings:function(e){return Z(this.map((function(e,t){return c.call(K(t.parentNode),(function(e){return e!==t}))})),e)},empty:function(){return this.each((function(){this.innerHTML=""}))},pluck:function(e){return i.map(this,(function(t){return t[e]}))},show:function(){return this.each((function(){"none"==this.style.display&&(this.style.display=""),"none"==getComputedStyle(this,"").getPropertyValue("display")&&(this.style.display=z(this.nodeName))}))},replaceWith:function(e){return this.before(e).remove()},wrap:function(e){var t=Q(e);if(this[0]&&!t)var n=i(e).get(0),r=n.parentNode||this.length>1;return this.each((function(s){i(this).wrapAll(t?e.call(this,s):r?n.cloneNode(!0):n)}))},wrapAll:function(e){if(this[0]){var t;for(i(this[0]).before(e=i(e));(t=e.children()).length;)e=t.first();i(e).append(this)}return this},wrapInner:function(e){var t=Q(e);return this.each((function(n){var r=i(this),s=r.contents(),o=t?e.call(this,n):e;s.length?s.wrapAll(o):r.append(o)}))},unwrap:function(){return this.parent().each((function(){i(this).replaceWith(i(this).children())})),this},clone:function(){return this.map((function(){return this.cloneNode(!0)}))},hide:function(){return this.css("display","none")},toggle:function(e){return this.each((function(){var n=i(this);(e===t?"none"==n.css("display"):e)?n.show():n.hide()}))},prev:function(e){return i(this.pluck("previousElementSibling")).filter(e||"*")},next:function(e){return i(this.pluck("nextElementSibling")).filter(e||"*")},html:function(e){return 0 in arguments?this.each((function(t){var n=this.innerHTML;i(this).empty().append(G(this,e,t,n))})):0 in this?this[0].innerHTML:null},text:function(e){return 0 in arguments?this.each((function(t){var n=G(this,e,t,this.textContent);this.textContent=null==n?"":""+n})):0 in this?this.pluck("textContent").join(""):null},attr:function(e,i){var r;return"string"!=typeof e||1 in arguments?this.each((function(t){if(1===this.nodeType)if(D(e))for(n in e)J(this,n,e[n]);else J(this,e,G(this,i,t,this.getAttribute(e)))})):0 in this&&1==this[0].nodeType&&null!=(r=this[0].getAttribute(e))?r:t},removeAttr:function(e){return this.each((function(){1===this.nodeType&&e.split(" ").forEach((function(e){J(this,e)}),this)}))},prop:function(e,t){return e=$[e]||e,1 in arguments?this.each((function(n){this[e]=G(this,t,n,this[e])})):this[0]&&this[0][e]},removeProp:function(e){return e=$[e]||e,this.each((function(){delete this[e]}))},data:function(e,n){var i="data-"+e.replace(x,"-$1").toLowerCase(),r=1 in arguments?this.attr(i,n):this.attr(i);return null!==r?Y(r):t},val:function(e){return 0 in arguments?(null==e&&(e=""),this.each((function(t){this.value=G(this,e,t,this.value)}))):this[0]&&(this[0].multiple?i(this[0]).find("option").filter((function(){return this.selected})).pluck("value"):this[0].value)},offset:function(t){if(t)return this.each((function(e){var n=i(this),r=G(this,t,e,n.offset()),s=n.offsetParent().offset(),o={top:r.top-s.top,left:r.left-s.left};"static"==n.css("position")&&(o.position="relative"),n.css(o)}));if(!this.length)return null;if(h.documentElement!==this[0]&&!i.contains(h.documentElement,this[0]))return{top:0,left:0};var n=this[0].getBoundingClientRect();return{left:n.left+e.pageXOffset,top:n.top+e.pageYOffset,width:Math.round(n.width),height:Math.round(n.height)}},css:function(e,t){if(arguments.length<2){var r=this[0];if("string"==typeof e){if(!r)return;return r.style[s(e)]||getComputedStyle(r,"").getPropertyValue(e)}if(P(e)){if(!r)return;var o={},a=getComputedStyle(r,"");return i.each(e,(function(e,t){o[t]=r.style[s(t)]||a.getPropertyValue(t)})),o}}var u="";if("string"==I(e))t||0===t?u=B(e)+":"+q(e,t):this.each((function(){this.style.removeProperty(B(e))}));else for(n in e)e[n]||0===e[n]?u+=B(n)+":"+q(n,e[n])+";":this.each((function(){this.style.removeProperty(B(n))}));return this.each((function(){this.style.cssText+=";"+u}))},index:function(e){return e?this.indexOf(i(e)[0]):this.parent().children().indexOf(this[0])},hasClass:function(e){return!!e&&a.some.call(this,(function(e){return this.test(X(e))}),M(e))},addClass:function(e){return e?this.each((function(t){if("className"in this){r=[];var n=X(this);G(this,e,t,n).split(/\s+/g).forEach((function(e){i(this).hasClass(e)||r.push(e)}),this),r.length&&X(this,n+(n?" ":"")+r.join(" "))}})):this},removeClass:function(e){return this.each((function(n){if("className"in this){if(e===t)return X(this,"");r=X(this),G(this,e,n,r).split(/\s+/g).forEach((function(e){r=r.replace(M(e)," ")})),X(this,r.trim())}}))},toggleClass:function(e,n){return e?this.each((function(r){var s=i(this);G(this,e,r,X(this)).split(/\s+/g).forEach((function(e){(n===t?!s.hasClass(e):n)?s.addClass(e):s.removeClass(e)}))})):this},scrollTop:function(e){if(this.length){var n="scrollTop"in this[0];return e===t?n?this[0].scrollTop:this[0].pageYOffset:this.each(n?function(){this.scrollTop=e}:function(){this.scrollTo(this.scrollX,e)})}},scrollLeft:function(e){if(this.length){var n="scrollLeft"in this[0];return e===t?n?this[0].scrollLeft:this[0].pageXOffset:this.each(n?function(){this.scrollLeft=e}:function(){this.scrollTo(e,this.scrollY)})}},position:function(){if(this.length){var e=this[0],t=this.offsetParent(),n=this.offset(),r=v.test(t[0].nodeName)?{top:0,left:0}:t.offset();return n.top-=parseFloat(i(e).css("margin-top"))||0,n.left-=parseFloat(i(e).css("margin-left"))||0,r.top+=parseFloat(i(t[0]).css("border-top-width"))||0,r.left+=parseFloat(i(t[0]).css("border-left-width"))||0,{top:n.top-r.top,left:n.left-r.left}}},offsetParent:function(){return this.map((function(){for(var e=this.offsetParent||h.body;e&&!v.test(e.nodeName)&&"static"==i(e).css("position");)e=e.offsetParent;return e}))}},i.fn.detach=i.fn.remove,["width","height"].forEach((function(e){var n=e.replace(/./,(function(e){return e[0].toUpperCase()}));i.fn[e]=function(r){var s,o=this[0];return r===t?R(o)?o["inner"+n]:N(o)?o.documentElement["scroll"+n]:(s=this.offset())&&s[e]:this.each((function(t){(o=i(this)).css(e,G(this,r,t,o[e]()))}))}})),w.forEach((function(n,r){var s=r%2;i.fn[n]=function(){var n,o,a=i.map(arguments,(function(e){var r=[];return"array"==(n=I(e))?(e.forEach((function(e){return e.nodeType!==t?r.push(e):i.zepto.isZ(e)?r=r.concat(e.get()):void(r=r.concat(O.fragment(e)))})),r):"object"==n||null==e?e:O.fragment(e)})),u=this.length>1;return a.length<1?this:this.each((function(t,n){o=s?n:n.parentNode,n=0==r?n.nextSibling:1==r?n.firstChild:2==r?n:null;var c=i.contains(h.documentElement,o);a.forEach((function(t){if(u)t=t.cloneNode(!0);else if(!o)return i(t).remove();o.insertBefore(t,n),c&&ee(t,(function(t){if(!(null==t.nodeName||"SCRIPT"!==t.nodeName.toUpperCase()||t.type&&"text/javascript"!==t.type||t.src)){var n=t.ownerDocument?t.ownerDocument.defaultView:e;n.eval.call(n,t.innerHTML)}}))}))}))},i.fn[s?n+"To":"insert"+(r?"Before":"After")]=function(e){return i(e)[n](this),this}})),O.Z.prototype=W.prototype=i.fn,O.uniq=o,O.deserializeValue=Y,i.zepto=O,i}();return function(t){var n,i=1,r=Array.prototype.slice,s=t.isFunction,o=function(e){return"string"==typeof e},a={},u={},c="onfocusin"in e,l={focus:"focusin",blur:"focusout"},h={mouseenter:"mouseover",mouseleave:"mouseout"};function p(e){return e._zid||(e._zid=i++)}function d(e,t,n,i){if((t=f(t)).ns)var r=g(t.ns);return(a[p(e)]||[]).filter((function(e){return e&&(!t.e||e.e==t.e)&&(!t.ns||r.test(e.ns))&&(!n||p(e.fn)===p(n))&&(!i||e.sel==i)}))}function f(e){var t=(""+e).split(".");return{e:t[0],ns:t.slice(1).sort().join(" ")}}function g(e){return new RegExp("(?:^| )"+e.replace(" "," .* ?")+"(?: |$)")}function m(e,t){return e.del&&!c&&e.e in l||!!t}function y(e){return h[e]||c&&l[e]||e}function v(e,i,r,s,o,u,c){var l=p(e),d=a[l]||(a[l]=[]);i.split(/\s/).forEach((function(i){if("ready"==i)return t(document).ready(r);var a=f(i);a.fn=r,a.sel=o,a.e in h&&(r=function(e){var n=e.relatedTarget;if(!n||n!==this&&!t.contains(this,n))return a.fn.apply(this,arguments)}),a.del=u;var l=u||r;a.proxy=function(t){if(!(t=E(t)).isImmediatePropagationStopped()){try{var i=Object.getOwnPropertyDescriptor(t,"data");i&&!i.writable||(t.data=s)}catch(t){}var r=l.apply(e,t._args==n?[t]:[t].concat(t._args));return!1===r&&(t.preventDefault(),t.stopPropagation()),r}},a.i=d.length,d.push(a),"addEventListener"in e&&e.addEventListener(y(a.e),a.proxy,m(a,c))}))}function x(e,t,n,i,r){var s=p(e);(t||"").split(/\s/).forEach((function(t){d(e,t,n,i).forEach((function(t){delete a[s][t.i],"removeEventListener"in e&&e.removeEventListener(y(t.e),t.proxy,m(t,r))}))}))}u.click=u.mousedown=u.mouseup=u.mousemove="MouseEvents",t.event={add:v,remove:x},t.proxy=function(e,n){var i=2 in arguments&&r.call(arguments,2);if(s(e)){var a=function(){return e.apply(n,i?i.concat(r.call(arguments)):arguments)};return a._zid=p(e),a}if(o(n))return i?(i.unshift(e[n],e),t.proxy.apply(null,i)):t.proxy(e[n],e);throw new TypeError("expected function")},t.fn.bind=function(e,t,n){return this.on(e,t,n)},t.fn.unbind=function(e,t){return this.off(e,t)},t.fn.one=function(e,t,n,i){return this.on(e,t,n,i,1)};var b=function(){return!0},w=function(){return!1},S=/^([A-Z]|returnValue$|layer[XY]$|webkitMovement[XY]$)/,C={preventDefault:"isDefaultPrevented",stopImmediatePropagation:"isImmediatePropagationStopped",stopPropagation:"isPropagationStopped"};function E(e,i){if(i||!e.isDefaultPrevented){i||(i=e),t.each(C,(function(t,n){var r=i[t];e[t]=function(){return this[n]=b,r&&r.apply(i,arguments)},e[n]=w}));try{e.timeStamp||(e.timeStamp=Date.now())}catch(r){}(i.defaultPrevented!==n?i.defaultPrevented:"returnValue"in i?!1===i.returnValue:i.getPreventDefault&&i.getPreventDefault())&&(e.isDefaultPrevented=b)}return e}function k(e){var t,i={originalEvent:e};for(t in e)S.test(t)||e[t]===n||(i[t]=e[t]);return E(i,e)}t.fn.delegate=function(e,t,n){return this.on(t,e,n)},t.fn.undelegate=function(e,t,n){return this.off(t,e,n)},t.fn.live=function(e,n){return t(document.body).delegate(this.selector,e,n),this},t.fn.die=function(e,n){return t(document.body).undelegate(this.selector,e,n),this},t.fn.on=function(e,i,a,u,c){var l,h,p=this;return e&&!o(e)?(t.each(e,(function(e,t){p.on(e,i,a,t,c)})),p):(o(i)||s(u)||!1===u||(u=a,a=i,i=n),u!==n&&!1!==a||(u=a,a=n),!1===u&&(u=w),p.each((function(n,s){c&&(l=function(e){return x(s,e.type,u),u.apply(this,arguments)}),i&&(h=function(e){var n,o=t(e.target).closest(i,s).get(0);if(o&&o!==s)return n=t.extend(k(e),{currentTarget:o,liveFired:s}),(l||u).apply(o,[n].concat(r.call(arguments,1)))}),v(s,e,u,a,i,h||l)})))},t.fn.off=function(e,i,r){var a=this;return e&&!o(e)?(t.each(e,(function(e,t){a.off(e,i,t)})),a):(o(i)||s(r)||!1===r||(r=i,i=n),!1===r&&(r=w),a.each((function(){x(this,e,r,i)})))},t.fn.trigger=function(e,n){return(e=o(e)||t.isPlainObject(e)?t.Event(e):E(e))._args=n,this.each((function(){e.type in l&&"function"==typeof this[e.type]?this[e.type]():"dispatchEvent"in this?this.dispatchEvent(e):t(this).triggerHandler(e,n)}))},t.fn.triggerHandler=function(e,n){var i,r;return this.each((function(s,a){(i=k(o(e)?t.Event(e):e))._args=n,i.target=a,t.each(d(a,e.type||e),(function(e,t){if(r=t.proxy(i),i.isImmediatePropagationStopped())return!1}))})),r},"focusin focusout focus blur load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select keydown keypress keyup error".split(" ").forEach((function(e){t.fn[e]=function(t){return 0 in arguments?this.bind(e,t):this.trigger(e)}})),t.Event=function(e,t){o(e)||(e=(t=e).type);var n=document.createEvent(u[e]||"Events"),i=!0;if(t)for(var r in t)"bubbles"==r?i=!!t[r]:n[r]=t[r];return n.initEvent(e,i,!0),E(n)}}(i),n=[],i.fn.remove=function(){return this.each((function(){this.parentNode&&("IMG"===this.tagName&&(n.push(this),this.src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=",t&&clearTimeout(t),t=setTimeout((function(){n=[]}),6e4)),this.parentNode.removeChild(this))}))},function(e){var t={},n=e.fn.data,i=e.camelCase,r=e.expando="Zepto"+ +new Date,s=[];function o(s,o){var u=s[r],c=u&&t[u];if(void 0===o)return c||a(s);if(c){if(o in c)return c[o];var l=i(o);if(l in c)return c[l]}return n.call(e(s),o)}function a(n,s,o){var a=n[r]||(n[r]=++e.uuid),c=t[a]||(t[a]=u(n));return void 0!==s&&(c[i(s)]=o),c}function u(t){var n={};return e.each(t.attributes||s,(function(t,r){0==r.name.indexOf("data-")&&(n[i(r.name.replace("data-",""))]=e.zepto.deserializeValue(r.value))})),n}e.fn.data=function(t,n){return void 0===n?e.isPlainObject(t)?this.each((function(n,i){e.each(t,(function(e,t){a(i,e,t)}))})):0 in this?o(this[0],t):void 0:this.each((function(){a(this,t,n)}))},e.data=function(t,n,i){return e(t).data(n,i)},e.hasData=function(n){var i=n[r],s=i&&t[i];return!!s&&!e.isEmptyObject(s)},e.fn.removeData=function(n){return"string"==typeof n&&(n=n.split(/\s+/)),this.each((function(){var s=this[r],o=s&&t[s];o&&e.each(n||o,(function(e){delete o[n?i(this):e]}))}))},["remove","empty"].forEach((function(t){var n=e.fn[t];e.fn[t]=function(){var e=this.find("*");return"remove"===t&&(e=e.add(this)),e.removeData(),n.call(this)}}))}(i),i}(t)},4734:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>m});var i=n(5485),r=n.n(i),s=n(9039);s.Z.tokenizer.separator=/[\s\-/]+/;const o=class{constructor(e,t,n){void 0===n&&(n="/"),this.searchDocs=e,this.lunrIndex=s.Z.Index.load(t),this.baseUrl=n}getLunrResult(e){return this.lunrIndex.query((function(t){const n=s.Z.tokenizer(e);t.term(n,{boost:10}),t.term(n,{wildcard:s.Z.Query.wildcard.TRAILING})}))}getHit(e,t,n){return{hierarchy:{lvl0:e.pageTitle||e.title,lvl1:0===e.type?null:e.title},url:e.url,version:e.version,_snippetResult:n?{content:{value:n,matchLevel:"full"}}:null,_highlightResult:{hierarchy:{lvl0:{value:0===e.type?t||e.title:e.pageTitle},lvl1:0===e.type?null:{value:t||e.title}}}}}getTitleHit(e,t,n){const i=t[0],r=t[0]+n;let s=e.title.substring(0,i)+''+e.title.substring(i,r)+""+e.title.substring(r,e.title.length);return this.getHit(e,s)}getKeywordHit(e,t,n){const i=t[0],r=t[0]+n;let s=e.title+"
Keywords: "+e.keywords.substring(0,i)+''+e.keywords.substring(i,r)+""+e.keywords.substring(r,e.keywords.length)+"";return this.getHit(e,s)}getContentHit(e,t){const n=t[0],i=t[0]+t[1];let r=n,s=i,o=!0,a=!0;for(let c=0;c<3;c++){const t=e.content.lastIndexOf(" ",r-2),n=e.content.lastIndexOf(".",r-2);if(n>0&&n>t){r=n+1,o=!1;break}if(t<0){r=0,o=!1;break}r=t+1}for(let c=0;c<10;c++){const t=e.content.indexOf(" ",s+1),n=e.content.indexOf(".",s+1);if(n>0&&n",u+=e.content.substring(i,s),a&&(u+=" ..."),this.getHit(e,null,u)}search(e){return new Promise(((t,n)=>{const i=this.getLunrResult(e),r=[];i.length>5&&(i.length=5),this.titleHitsRes=[],this.contentHitsRes=[],i.forEach((t=>{const n=this.searchDocs[t.ref],{metadata:i}=t.matchData;for(let s in i)if(i[s].title){if(!this.titleHitsRes.includes(t.ref)){const o=i[s].title.position[0];r.push(this.getTitleHit(n,o,e.length)),this.titleHitsRes.push(t.ref)}}else if(i[s].content){const e=i[s].content.position[0];r.push(this.getContentHit(n,e))}else if(i[s].keywords){const o=i[s].keywords.position[0];r.push(this.getKeywordHit(n,o,e.length)),this.titleHitsRes.push(t.ref)}})),r.length>5&&(r.length=5),t(r)}))}};var a=n(1639),u=n.n(a);const c="algolia-docsearch",l=`${c}-suggestion`,h={suggestion:`\n \n
\n {{{category}}}\n
\n
\n
\n {{{subcategory}}}\n
\n {{#isTextOrSubcategoryNonEmpty}}\n
\n
{{{subcategory}}}
\n
{{{title}}}
\n {{#text}}
{{{text}}}
{{/text}}\n {{#version}}
{{version}}
{{/version}}\n
\n {{/isTextOrSubcategoryNonEmpty}}\n
\n
\n `,suggestionSimple:`\n
\n
\n {{^isLvl0}}\n {{{category}}}\n {{^isLvl1}}\n {{^isLvl1EmptyOrDuplicate}}\n \n {{{subcategory}}}\n \n {{/isLvl1EmptyOrDuplicate}}\n {{/isLvl1}}\n {{/isLvl0}}\n
\n {{#isLvl2}}\n {{{title}}}\n {{/isLvl2}}\n {{#isLvl1}}\n {{{subcategory}}}\n {{/isLvl1}}\n {{#isLvl0}}\n {{{category}}}\n {{/isLvl0}}\n
\n
\n
\n {{#text}}\n
\n
{{{text}}}
\n
\n {{/text}}\n
\n
\n `,footer:`\n
\n
\n `,empty:`\n
\n
\n
\n
\n
\n No results found for query "{{query}}"\n
\n
\n
\n
\n
\n `,searchBox:'\n \n\n\n '};var p=n(7939),d=n.n(p);const f={mergeKeyWithParent(e,t){if(void 0===e[t])return e;if("object"!=typeof e[t])return e;const n=d().extend({},e,e[t]);return delete n[t],n},groupBy(e,t){const n={};return d().each(e,((e,i)=>{if(void 0===i[t])throw new Error(`[groupBy]: Object has no key ${t}`);let r=i[t];"string"==typeof r&&(r=r.toLowerCase()),Object.prototype.hasOwnProperty.call(n,r)||(n[r]=[]),n[r].push(i)})),n},values:e=>Object.keys(e).map((t=>e[t])),flatten(e){const t=[];return e.forEach((e=>{Array.isArray(e)?e.forEach((e=>{t.push(e)})):t.push(e)})),t},flattenAndFlagFirst(e,t){const n=this.values(e).map((e=>e.map(((e,n)=>(e[t]=0===n,e)))));return this.flatten(n)},compact(e){const t=[];return e.forEach((e=>{e&&t.push(e)})),t},getHighlightedValue:(e,t)=>e._highlightResult&&e._highlightResult.hierarchy_camel&&e._highlightResult.hierarchy_camel[t]&&e._highlightResult.hierarchy_camel[t].matchLevel&&"none"!==e._highlightResult.hierarchy_camel[t].matchLevel&&e._highlightResult.hierarchy_camel[t].value?e._highlightResult.hierarchy_camel[t].value:e._highlightResult&&e._highlightResult&&e._highlightResult[t]&&e._highlightResult[t].value?e._highlightResult[t].value:e[t],getSnippetedValue(e,t){if(!e._snippetResult||!e._snippetResult[t]||!e._snippetResult[t].value)return e[t];let n=e._snippetResult[t].value;return n[0]!==n[0].toUpperCase()&&(n=`\u2026${n}`),-1===[".","!","?"].indexOf(n[n.length-1])&&(n=`${n}\u2026`),n},deepClone:e=>JSON.parse(JSON.stringify(e))};class g{constructor(e){let{searchDocs:t,searchIndex:n,inputSelector:i,debug:r=!1,baseUrl:s="/",queryDataCallback:a=null,autocompleteOptions:c={debug:!1,hint:!1,autoselect:!0},transformData:l=!1,queryHook:p=!1,handleSelected:f=!1,enhancedSearchInput:m=!1,layout:y="collumns"}=e;this.input=g.getInputFromSelector(i),this.queryDataCallback=a||null;const v=!(!c||!c.debug)&&c.debug;c.debug=r||v,this.autocompleteOptions=c,this.autocompleteOptions.cssClasses=this.autocompleteOptions.cssClasses||{},this.autocompleteOptions.cssClasses.prefix=this.autocompleteOptions.cssClasses.prefix||"ds";const x=this.input&&"function"==typeof this.input.attr&&this.input.attr("aria-label");this.autocompleteOptions.ariaLabel=this.autocompleteOptions.ariaLabel||x||"search input",this.isSimpleLayout="simple"===y,this.client=new o(t,n,s),m&&(this.input=g.injectSearchBox(this.input)),this.autocomplete=u()(this.input,c,[{source:this.getAutocompleteSource(l,p),templates:{suggestion:g.getSuggestionTemplate(this.isSimpleLayout),footer:h.footer,empty:g.getEmptyTemplate()}}]);const b=f;this.handleSelected=b||this.handleSelected,b&&d()(".algolia-autocomplete").on("click",".ds-suggestions a",(e=>{e.preventDefault()})),this.autocomplete.on("autocomplete:selected",this.handleSelected.bind(null,this.autocomplete.autocomplete)),this.autocomplete.on("autocomplete:shown",this.handleShown.bind(null,this.input)),m&&g.bindSearchBoxEvent()}static injectSearchBox(e){e.before(h.searchBox);const t=e.prev().prev().find("input");return e.remove(),t}static bindSearchBoxEvent(){d()('.searchbox [type="reset"]').on("click",(function(){d()("input#docsearch").focus(),d()(this).addClass("hide"),u().autocomplete.setVal("")})),d()("input#docsearch").on("keyup",(()=>{const e=document.querySelector("input#docsearch"),t=document.querySelector('.searchbox [type="reset"]');t.className="searchbox__reset",0===e.value.length&&(t.className+=" hide")}))}static getInputFromSelector(e){const t=d()(e).filter("input");return t.length?d()(t[0]):null}getAutocompleteSource(e,t){return(n,i)=>{t&&(n=t(n)||n),this.client.search(n).then((t=>{this.queryDataCallback&&"function"==typeof this.queryDataCallback&&this.queryDataCallback(t),e&&(t=e(t)||t),i(g.formatHits(t))}))}}static formatHits(e){const t=f.deepClone(e).map((e=>(e._highlightResult&&(e._highlightResult=f.mergeKeyWithParent(e._highlightResult,"hierarchy")),f.mergeKeyWithParent(e,"hierarchy"))));let n=f.groupBy(t,"lvl0");return d().each(n,((e,t)=>{const i=f.groupBy(t,"lvl1"),r=f.flattenAndFlagFirst(i,"isSubCategoryHeader");n[e]=r})),n=f.flattenAndFlagFirst(n,"isCategoryHeader"),n.map((e=>{const t=g.formatURL(e),n=f.getHighlightedValue(e,"lvl0"),i=f.getHighlightedValue(e,"lvl1")||n,r=f.compact([f.getHighlightedValue(e,"lvl2")||i,f.getHighlightedValue(e,"lvl3"),f.getHighlightedValue(e,"lvl4"),f.getHighlightedValue(e,"lvl5"),f.getHighlightedValue(e,"lvl6")]).join(''),s=f.getSnippetedValue(e,"content"),o=i&&""!==i||r&&""!==r,a=!i||""===i||i===n,u=r&&""!==r&&r!==i,c=!u&&i&&""!==i&&i!==n,l=!c&&!u,h=e.version;return{isLvl0:l,isLvl1:c,isLvl2:u,isLvl1EmptyOrDuplicate:a,isCategoryHeader:e.isCategoryHeader,isSubCategoryHeader:e.isSubCategoryHeader,isTextOrSubcategoryNonEmpty:o,category:n,subcategory:i,title:r,text:s,url:t,version:h}}))}static formatURL(e){const{url:t,anchor:n}=e;if(t){return-1!==t.indexOf("#")?t:n?`${e.url}#${e.anchor}`:t}return n?`#${e.anchor}`:(console.warn("no anchor nor url for : ",JSON.stringify(e)),null)}static getEmptyTemplate(){return e=>r().compile(h.empty).render(e)}static getSuggestionTemplate(e){const t=e?h.suggestionSimple:h.suggestion,n=r().compile(t);return e=>n.render(e)}handleSelected(e,t,n,i,r){void 0===r&&(r={}),"click"!==r.selectionMethod&&(e.setVal(""),window.location.assign(n.url))}handleShown(e){const t=e.offset().left+e.width()/2;let n=d()(document).width()/2;isNaN(n)&&(n=900);const i=t-n>=0?"algolia-autocomplete-right":"algolia-autocomplete-left",r=t-n<0?"algolia-autocomplete-right":"algolia-autocomplete-left",s=d()(".algolia-autocomplete");s.hasClass(i)||s.addClass(i),s.hasClass(r)&&s.removeClass(r)}}const m=g},9397:(e,t)=>{!function(e){var t=/\S/,n=/\"/g,i=/\n/g,r=/\r/g,s=/\\/g,o=/\u2028/,a=/\u2029/;function u(e){"}"===e.n.substr(e.n.length-1)&&(e.n=e.n.substring(0,e.n.length-1))}function c(e){return e.trim?e.trim():e.replace(/^\s*|\s*$/g,"")}function l(e,t,n){if(t.charAt(n)!=e.charAt(0))return!1;for(var i=1,r=e.length;i":7,"=":8,_v:9,"{":10,"&":11,_t:12},e.scan=function(n,i){var r=n.length,s=0,o=null,a=null,h="",p=[],d=!1,f=0,g=0,m="{{",y="}}";function v(){h.length>0&&(p.push({tag:"_t",text:new String(h)}),h="")}function x(n,i){if(v(),n&&function(){for(var n=!0,i=g;i"==r.tag&&(r.indent=p[s].text.toString()),p.splice(s,1));else i||p.push({tag:"\n"});d=!1,g=p.length}function b(e,t){var n="="+y,i=e.indexOf(n,t),r=c(e.substring(e.indexOf("=",t)+1,i)).split(" ");return m=r[0],y=r[r.length-1],i+n.length-1}for(i&&(i=i.split(" "),m=i[0],y=i[1]),f=0;f0;){if(u=t.shift(),s&&"<"==s.tag&&!(u.tag in h))throw new Error("Illegal content in < super tag.");if(e.tags[u.tag]<=e.tags.$||d(u,r))i.push(u),u.nodes=p(t,u.tag,i,r);else{if("/"==u.tag){if(0===i.length)throw new Error("Closing tag without opener: /"+u.n);if(a=i.pop(),u.n!=a.n&&!f(u.n,a.n,r))throw new Error("Nesting error: "+a.n+" vs. "+u.n);return a.end=u.i,o}"\n"==u.tag&&(u.last=0==t.length||"\n"==t[0].tag)}o.push(u)}if(i.length>0)throw new Error("missing closing tag: "+i.pop().n);return o}function d(e,t){for(var n=0,i=t.length;n":x,"<":function(t,n){var i={partials:{},code:"",subs:{},inPartial:!0};e.walk(t.nodes,i);var r=n.partials[x(t,n)];r.subs=i.subs,r.partials=i.partials},$:function(t,n){var i={subs:{},code:"",partials:n.partials,prefix:t.n};e.walk(t.nodes,i),n.subs[t.n]=i.code,n.inPartial||(n.code+='t.sub("'+y(t.n)+'",c,p,i);')},"\n":function(e,t){t.code+=w('"\\n"'+(e.last?"":" + i"))},_v:function(e,t){t.code+="t.b(t.v(t."+v(e.n)+'("'+y(e.n)+'",c,p,0)));'},_t:function(e,t){t.code+=w('"'+y(e.text)+'"')},"{":b,"&":b},e.walk=function(t,n){for(var i,r=0,s=t.length;r{var i=n(9397);i.Template=n(2882).Template,i.template=i.Template,e.exports=i},2882:(e,t)=>{!function(e){function t(e,t,n){var i;return t&&"object"==typeof t&&(void 0!==t[e]?i=t[e]:n&&t.get&&"function"==typeof t.get&&(i=t.get(e))),i}e.Template=function(e,t,n,i){e=e||{},this.r=e.code||this.r,this.c=n,this.options=i||{},this.text=t||"",this.partials=e.partials||{},this.subs=e.subs||{},this.buf=""},e.Template.prototype={r:function(e,t,n){return""},v:function(e){return e=u(e),a.test(e)?e.replace(n,"&").replace(i,"<").replace(r,">").replace(s,"'").replace(o,"""):e},t:u,render:function(e,t,n){return this.ri([e],t||{},n)},ri:function(e,t,n){return this.r(e,t,n)},ep:function(e,t){var n=this.partials[e],i=t[n.name];if(n.instance&&n.base==i)return n.instance;if("string"==typeof i){if(!this.c)throw new Error("No compiler available.");i=this.c.compile(i,this.options)}if(!i)return null;if(this.partials[e].base=i,n.subs){for(key in t.stackText||(t.stackText={}),n.subs)t.stackText[key]||(t.stackText[key]=void 0!==this.activeSub&&t.stackText[this.activeSub]?t.stackText[this.activeSub]:this.text);i=function(e,t,n,i,r,s){function o(){}function a(){}var u;o.prototype=e,a.prototype=e.subs;var c=new o;for(u in c.subs=new a,c.subsText={},c.buf="",i=i||{},c.stackSubs=i,c.subsText=s,t)i[u]||(i[u]=t[u]);for(u in i)c.subs[u]=i[u];for(u in r=r||{},c.stackPartials=r,n)r[u]||(r[u]=n[u]);for(u in r)c.partials[u]=r[u];return c}(i,n.subs,n.partials,this.stackSubs,this.stackPartials,t.stackText)}return this.partials[e].instance=i,i},rp:function(e,t,n,i){var r=this.ep(e,n);return r?r.ri(t,n,i):""},rs:function(e,t,n){var i=e[e.length-1];if(c(i))for(var r=0;r=0;u--)if(void 0!==(s=t(e,n[u],a))){o=!0;break}return o?(r||"function"!=typeof s||(s=this.mv(s,n,i)),s):!r&&""},ls:function(e,t,n,i,r){var s=this.options.delimiters;return this.options.delimiters=r,this.b(this.ct(u(e.call(t,i)),t,n)),this.options.delimiters=s,!1},ct:function(e,t,n){if(this.options.disableLambda)throw new Error("Lambda features disabled.");return this.c.compile(e,this.options).render(t,n)},b:function(e){this.buf+=e},fl:function(){var e=this.buf;return this.buf="",e},ms:function(e,t,n,i,r,s,o){var a,u=t[t.length-1],c=e.call(u);return"function"==typeof c?!!i||(a=this.activeSub&&this.subsText&&this.subsText[this.activeSub]?this.subsText[this.activeSub]:this.text,this.ls(c,u,n,a.substring(r,s),o)):c},mv:function(e,t,n){var i=t[t.length-1],r=e.call(i);return"function"==typeof r?this.ct(u(r.call(i)),i,n):r},sub:function(e,t,n,i){var r=this.subs[e];r&&(this.activeSub=e,r(t,n,this,i),this.activeSub=!1)}};var n=/&/g,i=//g,s=/\'/g,o=/\"/g,a=/[&<>\"\']/;function u(e){return String(null==e?"":e)}var c=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)}}(t)},624:(e,t,n)=>{"use strict";var i,r,s,o=[n(5525),n(9201),n(8291),n(2709),n(2506),n(9176)],a=-1,u=[],c=!1;function l(){i&&r&&(i=!1,r.length?u=r.concat(u):a=-1,u.length&&h())}function h(){if(!i){c=!1,i=!0;for(var e=u.length,t=setTimeout(l);e;){for(r=u,u=[];r&&++a1)for(var n=1;n{"use strict";t.test=function(){return!n.g.setImmediate&&void 0!==n.g.MessageChannel},t.install=function(e){var t=new n.g.MessageChannel;return t.port1.onmessage=e,function(){t.port2.postMessage(0)}}},8291:(e,t,n)=>{"use strict";var i=n.g.MutationObserver||n.g.WebKitMutationObserver;t.test=function(){return i},t.install=function(e){var t=0,r=new i(e),s=n.g.document.createTextNode("");return r.observe(s,{characterData:!0}),function(){s.data=t=++t%2}}},9201:(e,t,n)=>{"use strict";t.test=function(){return"function"==typeof n.g.queueMicrotask},t.install=function(e){return function(){n.g.queueMicrotask(e)}}},2506:(e,t,n)=>{"use strict";t.test=function(){return"document"in n.g&&"onreadystatechange"in n.g.document.createElement("script")},t.install=function(e){return function(){var t=n.g.document.createElement("script");return t.onreadystatechange=function(){e(),t.onreadystatechange=null,t.parentNode.removeChild(t),t=null},n.g.document.documentElement.appendChild(t),e}}},9176:(e,t)=>{"use strict";t.test=function(){return!0},t.install=function(e){return function(){setTimeout(e,0)}}},1336:(e,t,n)=>{var i,r;!function(){var s,o,a,u,c,l,h,p,d,f,g,m,y,v,x,b,w,S,C,E,k,_,T,L,O,A,$,P,I,Q,R=function(e){var t=new R.Builder;return t.pipeline.add(R.trimmer,R.stopWordFilter,R.stemmer),t.searchPipeline.add(R.stemmer),e.call(t,t),t.build()};R.version="2.3.9",R.utils={},R.utils.warn=(s=this,function(e){s.console&&console.warn&&console.warn(e)}),R.utils.asString=function(e){return null==e?"":e.toString()},R.utils.clone=function(e){if(null==e)return e;for(var t=Object.create(null),n=Object.keys(e),i=0;i0){var u=R.utils.clone(t)||{};u.position=[o,a],u.index=r.length,r.push(new R.Token(n.slice(o,s),u))}o=s+1}}return r},R.tokenizer.separator=/[\s\-]+/,R.Pipeline=function(){this._stack=[]},R.Pipeline.registeredFunctions=Object.create(null),R.Pipeline.registerFunction=function(e,t){t in this.registeredFunctions&&R.utils.warn("Overwriting existing registered function: "+t),e.label=t,R.Pipeline.registeredFunctions[e.label]=e},R.Pipeline.warnIfFunctionNotRegistered=function(e){e.label&&e.label in this.registeredFunctions||R.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",e)},R.Pipeline.load=function(e){var t=new R.Pipeline;return e.forEach((function(e){var n=R.Pipeline.registeredFunctions[e];if(!n)throw new Error("Cannot load unregistered function: "+e);t.add(n)})),t},R.Pipeline.prototype.add=function(){Array.prototype.slice.call(arguments).forEach((function(e){R.Pipeline.warnIfFunctionNotRegistered(e),this._stack.push(e)}),this)},R.Pipeline.prototype.after=function(e,t){R.Pipeline.warnIfFunctionNotRegistered(t);var n=this._stack.indexOf(e);if(-1==n)throw new Error("Cannot find existingFn");n+=1,this._stack.splice(n,0,t)},R.Pipeline.prototype.before=function(e,t){R.Pipeline.warnIfFunctionNotRegistered(t);var n=this._stack.indexOf(e);if(-1==n)throw new Error("Cannot find existingFn");this._stack.splice(n,0,t)},R.Pipeline.prototype.remove=function(e){var t=this._stack.indexOf(e);-1!=t&&this._stack.splice(t,1)},R.Pipeline.prototype.run=function(e){for(var t=this._stack.length,n=0;n1&&(se&&(n=r),s!=e);)i=n-t,r=t+Math.floor(i/2),s=this.elements[2*r];return s==e||s>e?2*r:sa?c+=2:o==a&&(t+=n[u+1]*i[c+1],u+=2,c+=2);return t},R.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},R.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),t=1,n=0;t0){var s,o=r.str.charAt(0);o in r.node.edges?s=r.node.edges[o]:(s=new R.TokenSet,r.node.edges[o]=s),1==r.str.length&&(s.final=!0),i.push({node:s,editsRemaining:r.editsRemaining,str:r.str.slice(1)})}if(0!=r.editsRemaining){if("*"in r.node.edges)var a=r.node.edges["*"];else{a=new R.TokenSet;r.node.edges["*"]=a}if(0==r.str.length&&(a.final=!0),i.push({node:a,editsRemaining:r.editsRemaining-1,str:r.str}),r.str.length>1&&i.push({node:r.node,editsRemaining:r.editsRemaining-1,str:r.str.slice(1)}),1==r.str.length&&(r.node.final=!0),r.str.length>=1){if("*"in r.node.edges)var u=r.node.edges["*"];else{u=new R.TokenSet;r.node.edges["*"]=u}1==r.str.length&&(u.final=!0),i.push({node:u,editsRemaining:r.editsRemaining-1,str:r.str.slice(1)})}if(r.str.length>1){var c,l=r.str.charAt(0),h=r.str.charAt(1);h in r.node.edges?c=r.node.edges[h]:(c=new R.TokenSet,r.node.edges[h]=c),1==r.str.length&&(c.final=!0),i.push({node:c,editsRemaining:r.editsRemaining-1,str:l+r.str.slice(2)})}}}return n},R.TokenSet.fromString=function(e){for(var t=new R.TokenSet,n=t,i=0,r=e.length;i=e;t--){var n=this.uncheckedNodes[t],i=n.child.toString();i in this.minimizedNodes?n.parent.edges[n.char]=this.minimizedNodes[i]:(n.child._str=i,this.minimizedNodes[i]=n.child),this.uncheckedNodes.pop()}},R.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},R.Index.prototype.search=function(e){return this.query((function(t){new R.QueryParser(e,t).parse()}))},R.Index.prototype.query=function(e){for(var t=new R.Query(this.fields),n=Object.create(null),i=Object.create(null),r=Object.create(null),s=Object.create(null),o=Object.create(null),a=0;a1?1:e},R.Builder.prototype.k1=function(e){this._k1=e},R.Builder.prototype.add=function(e,t){var n=e[this._ref],i=Object.keys(this._fields);this._documents[n]=t||{},this.documentCount+=1;for(var r=0;r=this.length)return R.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},R.QueryLexer.prototype.width=function(){return this.pos-this.start},R.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},R.QueryLexer.prototype.backup=function(){this.pos-=1},R.QueryLexer.prototype.acceptDigitRun=function(){var e,t;do{t=(e=this.next()).charCodeAt(0)}while(t>47&&t<58);e!=R.QueryLexer.EOS&&this.backup()},R.QueryLexer.prototype.more=function(){return this.pos1&&(e.backup(),e.emit(R.QueryLexer.TERM)),e.ignore(),e.more())return R.QueryLexer.lexText},R.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(R.QueryLexer.EDIT_DISTANCE),R.QueryLexer.lexText},R.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(R.QueryLexer.BOOST),R.QueryLexer.lexText},R.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(R.QueryLexer.TERM)},R.QueryLexer.termSeparator=R.tokenizer.separator,R.QueryLexer.lexText=function(e){for(;;){var t=e.next();if(t==R.QueryLexer.EOS)return R.QueryLexer.lexEOS;if(92!=t.charCodeAt(0)){if(":"==t)return R.QueryLexer.lexField;if("~"==t)return e.backup(),e.width()>0&&e.emit(R.QueryLexer.TERM),R.QueryLexer.lexEditDistance;if("^"==t)return e.backup(),e.width()>0&&e.emit(R.QueryLexer.TERM),R.QueryLexer.lexBoost;if("+"==t&&1===e.width())return e.emit(R.QueryLexer.PRESENCE),R.QueryLexer.lexText;if("-"==t&&1===e.width())return e.emit(R.QueryLexer.PRESENCE),R.QueryLexer.lexText;if(t.match(R.QueryLexer.termSeparator))return R.QueryLexer.lexTerm}else e.escapeCharacter()}},R.QueryParser=function(e,t){this.lexer=new R.QueryLexer(e),this.query=t,this.currentClause={},this.lexemeIdx=0},R.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=R.QueryParser.parseClause;e;)e=e(this);return this.query},R.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},R.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},R.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},R.QueryParser.parseClause=function(e){var t=e.peekLexeme();if(null!=t)switch(t.type){case R.QueryLexer.PRESENCE:return R.QueryParser.parsePresence;case R.QueryLexer.FIELD:return R.QueryParser.parseField;case R.QueryLexer.TERM:return R.QueryParser.parseTerm;default:var n="expected either a field or a term, found "+t.type;throw t.str.length>=1&&(n+=" with value '"+t.str+"'"),new R.QueryParseError(n,t.start,t.end)}},R.QueryParser.parsePresence=function(e){var t=e.consumeLexeme();if(null!=t){switch(t.str){case"-":e.currentClause.presence=R.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=R.Query.presence.REQUIRED;break;default:var n="unrecognised presence operator'"+t.str+"'";throw new R.QueryParseError(n,t.start,t.end)}var i=e.peekLexeme();if(null==i){n="expecting term or field, found nothing";throw new R.QueryParseError(n,t.start,t.end)}switch(i.type){case R.QueryLexer.FIELD:return R.QueryParser.parseField;case R.QueryLexer.TERM:return R.QueryParser.parseTerm;default:n="expecting term or field, found '"+i.type+"'";throw new R.QueryParseError(n,i.start,i.end)}}},R.QueryParser.parseField=function(e){var t=e.consumeLexeme();if(null!=t){if(-1==e.query.allFields.indexOf(t.str)){var n=e.query.allFields.map((function(e){return"'"+e+"'"})).join(", "),i="unrecognised field '"+t.str+"', possible fields: "+n;throw new R.QueryParseError(i,t.start,t.end)}e.currentClause.fields=[t.str];var r=e.peekLexeme();if(null==r){i="expecting term, found nothing";throw new R.QueryParseError(i,t.start,t.end)}if(r.type===R.QueryLexer.TERM)return R.QueryParser.parseTerm;i="expecting term, found '"+r.type+"'";throw new R.QueryParseError(i,r.start,r.end)}},R.QueryParser.parseTerm=function(e){var t=e.consumeLexeme();if(null!=t){e.currentClause.term=t.str.toLowerCase(),-1!=t.str.indexOf("*")&&(e.currentClause.usePipeline=!1);var n=e.peekLexeme();if(null!=n)switch(n.type){case R.QueryLexer.TERM:return e.nextClause(),R.QueryParser.parseTerm;case R.QueryLexer.FIELD:return e.nextClause(),R.QueryParser.parseField;case R.QueryLexer.EDIT_DISTANCE:return R.QueryParser.parseEditDistance;case R.QueryLexer.BOOST:return R.QueryParser.parseBoost;case R.QueryLexer.PRESENCE:return e.nextClause(),R.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+n.type+"'";throw new R.QueryParseError(i,n.start,n.end)}else e.nextClause()}},R.QueryParser.parseEditDistance=function(e){var t=e.consumeLexeme();if(null!=t){var n=parseInt(t.str,10);if(isNaN(n)){var i="edit distance must be numeric";throw new R.QueryParseError(i,t.start,t.end)}e.currentClause.editDistance=n;var r=e.peekLexeme();if(null!=r)switch(r.type){case R.QueryLexer.TERM:return e.nextClause(),R.QueryParser.parseTerm;case R.QueryLexer.FIELD:return e.nextClause(),R.QueryParser.parseField;case R.QueryLexer.EDIT_DISTANCE:return R.QueryParser.parseEditDistance;case R.QueryLexer.BOOST:return R.QueryParser.parseBoost;case R.QueryLexer.PRESENCE:return e.nextClause(),R.QueryParser.parsePresence;default:i="Unexpected lexeme type '"+r.type+"'";throw new R.QueryParseError(i,r.start,r.end)}else e.nextClause()}},R.QueryParser.parseBoost=function(e){var t=e.consumeLexeme();if(null!=t){var n=parseInt(t.str,10);if(isNaN(n)){var i="boost must be numeric";throw new R.QueryParseError(i,t.start,t.end)}e.currentClause.boost=n;var r=e.peekLexeme();if(null!=r)switch(r.type){case R.QueryLexer.TERM:return e.nextClause(),R.QueryParser.parseTerm;case R.QueryLexer.FIELD:return e.nextClause(),R.QueryParser.parseField;case R.QueryLexer.EDIT_DISTANCE:return R.QueryParser.parseEditDistance;case R.QueryLexer.BOOST:return R.QueryParser.parseBoost;case R.QueryLexer.PRESENCE:return e.nextClause(),R.QueryParser.parsePresence;default:i="Unexpected lexeme type '"+r.type+"'";throw new R.QueryParseError(i,r.start,r.end)}else e.nextClause()}},void 0===(r="function"==typeof(i=function(){return R})?i.call(t,n,t,e):i)||(e.exports=r)}()}}]); \ No newline at end of file +/*! For license information please see 4611.70d0184b.js.LICENSE.txt */ +(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[4611],{1639:(e,t,n)=>{"use strict";e.exports=n(9281)},7114:(e,t,n)=>{"use strict";var i=n(5670),r={wrapper:{position:"relative",display:"inline-block"},hint:{position:"absolute",top:"0",left:"0",borderColor:"transparent",boxShadow:"none",opacity:"1"},input:{position:"relative",verticalAlign:"top",backgroundColor:"transparent"},inputWithNoHint:{position:"relative",verticalAlign:"top"},dropdown:{position:"absolute",top:"100%",left:"0",zIndex:"100",display:"none"},suggestions:{display:"block"},suggestion:{whiteSpace:"nowrap",cursor:"pointer"},suggestionChild:{whiteSpace:"normal"},ltr:{left:"0",right:"auto"},rtl:{left:"auto",right:"0"},defaultClasses:{root:"algolia-autocomplete",prefix:"aa",noPrefix:!1,dropdownMenu:"dropdown-menu",input:"input",hint:"hint",suggestions:"suggestions",suggestion:"suggestion",cursor:"cursor",dataset:"dataset",empty:"empty"},appendTo:{wrapper:{position:"absolute",zIndex:"100",display:"none"},input:{},inputWithNoHint:{},dropdown:{display:"block"}}};i.isMsie()&&i.mixin(r.input,{backgroundImage:"url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)"}),i.isMsie()&&i.isMsie()<=7&&i.mixin(r.input,{marginTop:"-1px"}),e.exports=r},3312:(e,t,n)=>{"use strict";var i="aaDataset",r="aaValue",s="aaDatum",o=n(5670),a=n(3855),u=n(6619),c=n(7114),l=n(6823);function h(e){var t;(e=e||{}).templates=e.templates||{},e.source||o.error("missing source"),e.name&&(t=e.name,!/^[_a-zA-Z0-9-]+$/.test(t))&&o.error("invalid dataset name: "+e.name),this.query=null,this._isEmpty=!0,this.highlight=!!e.highlight,this.name=void 0===e.name||null===e.name?o.getUniqueId():e.name,this.source=e.source,this.displayFn=function(e){return e=e||"value",o.isFunction(e)?e:t;function t(t){return t[e]}}(e.display||e.displayKey),this.debounce=e.debounce,this.cache=!1!==e.cache,this.templates=function(e,t){return{empty:e.empty&&o.templatify(e.empty),header:e.header&&o.templatify(e.header),footer:e.footer&&o.templatify(e.footer),suggestion:e.suggestion||n};function n(e){return"

"+t(e)+"

"}}(e.templates,this.displayFn),this.css=o.mixin({},c,e.appendTo?c.appendTo:{}),this.cssClasses=e.cssClasses=o.mixin({},c.defaultClasses,e.cssClasses||{}),this.cssClasses.prefix=e.cssClasses.formattedPrefix||o.formatPrefix(this.cssClasses.prefix,this.cssClasses.noPrefix);var n=o.className(this.cssClasses.prefix,this.cssClasses.dataset);this.$el=e.$menu&&e.$menu.find(n+"-"+this.name).length>0?a.element(e.$menu.find(n+"-"+this.name)[0]):a.element(u.dataset.replace("%CLASS%",this.name).replace("%PREFIX%",this.cssClasses.prefix).replace("%DATASET%",this.cssClasses.dataset)),this.$menu=e.$menu,this.clearCachedSuggestions()}h.extractDatasetName=function(e){return a.element(e).data(i)},h.extractValue=function(e){return a.element(e).data(r)},h.extractDatum=function(e){var t=a.element(e).data(s);return"string"==typeof t&&(t=JSON.parse(t)),t},o.mixin(h.prototype,l,{_render:function(e,t){if(this.$el){var n,c=this,l=[].slice.call(arguments,2);if(this.$el.empty(),n=t&&t.length,this._isEmpty=!n,!n&&this.templates.empty)this.$el.html(function(){var t=[].slice.call(arguments,0);return t=[{query:e,isEmpty:!0}].concat(t),c.templates.empty.apply(this,t)}.apply(this,l)).prepend(c.templates.header?h.apply(this,l):null).append(c.templates.footer?p.apply(this,l):null);else if(n)this.$el.html(function(){var e,n,l=[].slice.call(arguments,0),h=this,p=u.suggestions.replace("%PREFIX%",this.cssClasses.prefix).replace("%SUGGESTIONS%",this.cssClasses.suggestions);return e=a.element(p).css(this.css.suggestions),n=o.map(t,d),e.append.apply(e,n),e;function d(e){var t,n=u.suggestion.replace("%PREFIX%",h.cssClasses.prefix).replace("%SUGGESTION%",h.cssClasses.suggestion);return(t=a.element(n).attr({role:"option",id:["option",Math.floor(1e8*Math.random())].join("-")}).append(c.templates.suggestion.apply(this,[e].concat(l)))).data(i,c.name),t.data(r,c.displayFn(e)||void 0),t.data(s,JSON.stringify(e)),t.children().each((function(){a.element(this).css(h.css.suggestionChild)})),t}}.apply(this,l)).prepend(c.templates.header?h.apply(this,l):null).append(c.templates.footer?p.apply(this,l):null);else if(t&&!Array.isArray(t))throw new TypeError("suggestions must be an array");this.$menu&&this.$menu.addClass(this.cssClasses.prefix+(n?"with":"without")+"-"+this.name).removeClass(this.cssClasses.prefix+(n?"without":"with")+"-"+this.name),this.trigger("rendered",e)}function h(){var t=[].slice.call(arguments,0);return t=[{query:e,isEmpty:!n}].concat(t),c.templates.header.apply(this,t)}function p(){var t=[].slice.call(arguments,0);return t=[{query:e,isEmpty:!n}].concat(t),c.templates.footer.apply(this,t)}},getRoot:function(){return this.$el},update:function(e){function t(t){if(!this.canceled&&e===this.query){var n=[].slice.call(arguments,1);this.cacheSuggestions(e,t,n),this._render.apply(this,[e,t].concat(n))}}if(this.query=e,this.canceled=!1,this.shouldFetchFromCache(e))t.apply(this,[this.cachedSuggestions].concat(this.cachedRenderExtraArgs));else{var n=this,i=function(){n.canceled||n.source(e,t.bind(n))};if(this.debounce){clearTimeout(this.debounceTimeout),this.debounceTimeout=setTimeout((function(){n.debounceTimeout=null,i()}),this.debounce)}else i()}},cacheSuggestions:function(e,t,n){this.cachedQuery=e,this.cachedSuggestions=t,this.cachedRenderExtraArgs=n},shouldFetchFromCache:function(e){return this.cache&&this.cachedQuery===e&&this.cachedSuggestions&&this.cachedSuggestions.length},clearCachedSuggestions:function(){delete this.cachedQuery,delete this.cachedSuggestions,delete this.cachedRenderExtraArgs},cancel:function(){this.canceled=!0},clear:function(){this.$el&&(this.cancel(),this.$el.empty(),this.trigger("rendered",""))},isEmpty:function(){return this._isEmpty},destroy:function(){this.clearCachedSuggestions(),this.$el=null}}),e.exports=h},5445:(e,t,n)=>{"use strict";var i=n(5670),r=n(3855),s=n(6823),o=n(3312),a=n(7114);function u(e){var t,n,s,o=this;(e=e||{}).menu||i.error("menu is required"),i.isArray(e.datasets)||i.isObject(e.datasets)||i.error("1 or more datasets required"),e.datasets||i.error("datasets is required"),this.isOpen=!1,this.isEmpty=!0,this.minLength=e.minLength||0,this.templates={},this.appendTo=e.appendTo||!1,this.css=i.mixin({},a,e.appendTo?a.appendTo:{}),this.cssClasses=e.cssClasses=i.mixin({},a.defaultClasses,e.cssClasses||{}),this.cssClasses.prefix=e.cssClasses.formattedPrefix||i.formatPrefix(this.cssClasses.prefix,this.cssClasses.noPrefix),t=i.bind(this._onSuggestionClick,this),n=i.bind(this._onSuggestionMouseEnter,this),s=i.bind(this._onSuggestionMouseLeave,this);var c=i.className(this.cssClasses.prefix,this.cssClasses.suggestion);this.$menu=r.element(e.menu).on("mouseenter.aa",c,n).on("mouseleave.aa",c,s).on("click.aa",c,t),this.$container=e.appendTo?e.wrapper:this.$menu,e.templates&&e.templates.header&&(this.templates.header=i.templatify(e.templates.header),this.$menu.prepend(this.templates.header())),e.templates&&e.templates.empty&&(this.templates.empty=i.templatify(e.templates.empty),this.$empty=r.element('
'),this.$menu.append(this.$empty),this.$empty.hide()),this.datasets=i.map(e.datasets,(function(t){return function(e,t,n){return new u.Dataset(i.mixin({$menu:e,cssClasses:n},t))}(o.$menu,t,e.cssClasses)})),i.each(this.datasets,(function(e){var t=e.getRoot();t&&0===t.parent().length&&o.$menu.append(t),e.onSync("rendered",o._onRendered,o)})),e.templates&&e.templates.footer&&(this.templates.footer=i.templatify(e.templates.footer),this.$menu.append(this.templates.footer()));var l=this;r.element(window).resize((function(){l._redraw()}))}i.mixin(u.prototype,s,{_onSuggestionClick:function(e){this.trigger("suggestionClicked",r.element(e.currentTarget))},_onSuggestionMouseEnter:function(e){var t=r.element(e.currentTarget);if(!t.hasClass(i.className(this.cssClasses.prefix,this.cssClasses.cursor,!0))){this._removeCursor();var n=this;setTimeout((function(){n._setCursor(t,!1)}),0)}},_onSuggestionMouseLeave:function(e){if(e.relatedTarget&&r.element(e.relatedTarget).closest("."+i.className(this.cssClasses.prefix,this.cssClasses.cursor,!0)).length>0)return;this._removeCursor(),this.trigger("cursorRemoved")},_onRendered:function(e,t){if(this.isEmpty=i.every(this.datasets,(function(e){return e.isEmpty()})),this.isEmpty)if(t.length>=this.minLength&&this.trigger("empty"),this.$empty)if(t.length=this.minLength?this._show():this._hide());this.trigger("datasetRendered")},_hide:function(){this.$container.hide()},_show:function(){this.$container.css("display","block"),this._redraw(),this.trigger("shown")},_redraw:function(){this.isOpen&&this.appendTo&&this.trigger("redrawn")},_getSuggestions:function(){return this.$menu.find(i.className(this.cssClasses.prefix,this.cssClasses.suggestion))},_getCursor:function(){return this.$menu.find(i.className(this.cssClasses.prefix,this.cssClasses.cursor)).first()},_setCursor:function(e,t){e.first().addClass(i.className(this.cssClasses.prefix,this.cssClasses.cursor,!0)).attr("aria-selected","true"),this.trigger("cursorMoved",t)},_removeCursor:function(){this._getCursor().removeClass(i.className(this.cssClasses.prefix,this.cssClasses.cursor,!0)).removeAttr("aria-selected")},_moveCursor:function(e){var t,n,i,r;this.isOpen&&(n=this._getCursor(),t=this._getSuggestions(),this._removeCursor(),-1!==(i=((i=t.index(n)+e)+1)%(t.length+1)-1)?(i<-1&&(i=t.length-1),this._setCursor(r=t.eq(i),!0),this._ensureVisible(r)):this.trigger("cursorRemoved"))},_ensureVisible:function(e){var t,n,i,r;n=(t=e.position().top)+e.height()+parseInt(e.css("margin-top"),10)+parseInt(e.css("margin-bottom"),10),i=this.$menu.scrollTop(),r=this.$menu.height()+parseInt(this.$menu.css("padding-top"),10)+parseInt(this.$menu.css("padding-bottom"),10),t<0?this.$menu.scrollTop(i+t):r{"use strict";var i=n(5670),r=n(3855);function s(e){e&&e.el||i.error("EventBus initialized without el"),this.$el=r.element(e.el)}i.mixin(s.prototype,{trigger:function(e,t,n,r){var s=i.Event("autocomplete:"+e);return this.$el.trigger(s,[t,n,r]),s}}),e.exports=s},6823:(e,t,n)=>{"use strict";var i=n(624),r=/\s+/;function s(e,t,n,i){var s;if(!n)return this;for(t=t.split(r),n=i?function(e,t){return e.bind?e.bind(t):function(){e.apply(t,[].slice.call(arguments,0))}}(n,i):n,this._callbacks=this._callbacks||{};s=t.shift();)this._callbacks[s]=this._callbacks[s]||{sync:[],async:[]},this._callbacks[s][e].push(n);return this}function o(e,t,n){return function(){for(var i,r=0,s=e.length;!i&&r{"use strict";e.exports={wrapper:'',dropdown:'',dataset:'
',suggestions:'',suggestion:'
'}},1286:(e,t,n)=>{"use strict";var i;i={9:"tab",27:"esc",37:"left",39:"right",13:"enter",38:"up",40:"down"};var r=n(5670),s=n(3855),o=n(6823);function a(e){var t,n,o,a,u,c=this;(e=e||{}).input||r.error("input is missing"),t=r.bind(this._onBlur,this),n=r.bind(this._onFocus,this),o=r.bind(this._onKeydown,this),a=r.bind(this._onInput,this),this.$hint=s.element(e.hint),this.$input=s.element(e.input).on("blur.aa",t).on("focus.aa",n).on("keydown.aa",o),0===this.$hint.length&&(this.setHint=this.getHint=this.clearHint=this.clearHintIfInvalid=r.noop),r.isMsie()?this.$input.on("keydown.aa keypress.aa cut.aa paste.aa",(function(e){i[e.which||e.keyCode]||r.defer(r.bind(c._onInput,c,e))})):this.$input.on("input.aa",a),this.query=this.$input.val(),this.$overflowHelper=(u=this.$input,s.element('').css({position:"absolute",visibility:"hidden",whiteSpace:"pre",fontFamily:u.css("font-family"),fontSize:u.css("font-size"),fontStyle:u.css("font-style"),fontVariant:u.css("font-variant"),fontWeight:u.css("font-weight"),wordSpacing:u.css("word-spacing"),letterSpacing:u.css("letter-spacing"),textIndent:u.css("text-indent"),textRendering:u.css("text-rendering"),textTransform:u.css("text-transform")}).insertAfter(u))}function u(e){return e.altKey||e.ctrlKey||e.metaKey||e.shiftKey}a.normalizeQuery=function(e){return(e||"").replace(/^\s*/g,"").replace(/\s{2,}/g," ")},r.mixin(a.prototype,o,{_onBlur:function(){this.resetInputValue(),this.$input.removeAttr("aria-activedescendant"),this.trigger("blurred")},_onFocus:function(){this.trigger("focused")},_onKeydown:function(e){var t=i[e.which||e.keyCode];this._managePreventDefault(t,e),t&&this._shouldTrigger(t,e)&&this.trigger(t+"Keyed",e)},_onInput:function(){this._checkInputValue()},_managePreventDefault:function(e,t){var n,i,r;switch(e){case"tab":i=this.getHint(),r=this.getInputValue(),n=i&&i!==r&&!u(t);break;case"up":case"down":n=!u(t);break;default:n=!1}n&&t.preventDefault()},_shouldTrigger:function(e,t){var n;if("tab"===e)n=!u(t);else n=!0;return n},_checkInputValue:function(){var e,t,n,i,r;e=this.getInputValue(),i=e,r=this.query,n=!(!(t=a.normalizeQuery(i)===a.normalizeQuery(r))||!this.query)&&this.query.length!==e.length,this.query=e,t?n&&this.trigger("whitespaceChanged",this.query):this.trigger("queryChanged",this.query)},focus:function(){this.$input.focus()},blur:function(){this.$input.blur()},getQuery:function(){return this.query},setQuery:function(e){this.query=e},getInputValue:function(){return this.$input.val()},setInputValue:function(e,t){void 0===e&&(e=this.query),this.$input.val(e),t?this.clearHint():this._checkInputValue()},expand:function(){this.$input.attr("aria-expanded","true")},collapse:function(){this.$input.attr("aria-expanded","false")},setActiveDescendant:function(e){this.$input.attr("aria-activedescendant",e)},removeActiveDescendant:function(){this.$input.removeAttr("aria-activedescendant")},resetInputValue:function(){this.setInputValue(this.query,!0)},getHint:function(){return this.$hint.val()},setHint:function(e){this.$hint.val(e)},clearHint:function(){this.setHint("")},clearHintIfInvalid:function(){var e,t,n;n=(e=this.getInputValue())!==(t=this.getHint())&&0===t.indexOf(e),""!==e&&n&&!this.hasOverflow()||this.clearHint()},getLanguageDirection:function(){return(this.$input.css("direction")||"ltr").toLowerCase()},hasOverflow:function(){var e=this.$input.width()-2;return this.$overflowHelper.text(this.getInputValue()),this.$overflowHelper.width()>=e},isCursorAtEnd:function(){var e,t,n;return e=this.$input.val().length,t=this.$input[0].selectionStart,r.isNumber(t)?t===e:!document.selection||((n=document.selection.createRange()).moveStart("character",-e),e===n.text.length)},destroy:function(){this.$hint.off(".aa"),this.$input.off(".aa"),this.$hint=this.$input=this.$overflowHelper=null}}),e.exports=a},4520:(e,t,n)=>{"use strict";var i="aaAttrs",r=n(5670),s=n(3855),o=n(7368),a=n(1286),u=n(5445),c=n(6619),l=n(7114);function h(e){var t,n;if((e=e||{}).input||r.error("missing input"),this.isActivated=!1,this.debug=!!e.debug,this.autoselect=!!e.autoselect,this.autoselectOnBlur=!!e.autoselectOnBlur,this.openOnFocus=!!e.openOnFocus,this.minLength=r.isNumber(e.minLength)?e.minLength:1,this.autoWidth=void 0===e.autoWidth||!!e.autoWidth,this.clearOnSelected=!!e.clearOnSelected,this.tabAutocomplete=void 0===e.tabAutocomplete||!!e.tabAutocomplete,e.hint=!!e.hint,e.hint&&e.appendTo)throw new Error("[autocomplete.js] hint and appendTo options can't be used at the same time");this.css=e.css=r.mixin({},l,e.appendTo?l.appendTo:{}),this.cssClasses=e.cssClasses=r.mixin({},l.defaultClasses,e.cssClasses||{}),this.cssClasses.prefix=e.cssClasses.formattedPrefix=r.formatPrefix(this.cssClasses.prefix,this.cssClasses.noPrefix),this.listboxId=e.listboxId=[this.cssClasses.root,"listbox",r.getUniqueId()].join("-");var a=function(e){var t,n,o,a;t=s.element(e.input),n=s.element(c.wrapper.replace("%ROOT%",e.cssClasses.root)).css(e.css.wrapper),e.appendTo||"block"!==t.css("display")||"table"!==t.parent().css("display")||n.css("display","table-cell");var u=c.dropdown.replace("%PREFIX%",e.cssClasses.prefix).replace("%DROPDOWN_MENU%",e.cssClasses.dropdownMenu);o=s.element(u).css(e.css.dropdown).attr({role:"listbox",id:e.listboxId}),e.templates&&e.templates.dropdownMenu&&o.html(r.templatify(e.templates.dropdownMenu)());a=t.clone().css(e.css.hint).css(function(e){return{backgroundAttachment:e.css("background-attachment"),backgroundClip:e.css("background-clip"),backgroundColor:e.css("background-color"),backgroundImage:e.css("background-image"),backgroundOrigin:e.css("background-origin"),backgroundPosition:e.css("background-position"),backgroundRepeat:e.css("background-repeat"),backgroundSize:e.css("background-size")}}(t)),a.val("").addClass(r.className(e.cssClasses.prefix,e.cssClasses.hint,!0)).removeAttr("id name placeholder required").prop("readonly",!0).attr({"aria-hidden":"true",autocomplete:"off",spellcheck:"false",tabindex:-1}),a.removeData&&a.removeData();t.data(i,{"aria-autocomplete":t.attr("aria-autocomplete"),"aria-expanded":t.attr("aria-expanded"),"aria-owns":t.attr("aria-owns"),autocomplete:t.attr("autocomplete"),dir:t.attr("dir"),role:t.attr("role"),spellcheck:t.attr("spellcheck"),style:t.attr("style"),type:t.attr("type")}),t.addClass(r.className(e.cssClasses.prefix,e.cssClasses.input,!0)).attr({autocomplete:"off",spellcheck:!1,role:"combobox","aria-autocomplete":e.datasets&&e.datasets[0]&&e.datasets[0].displayKey?"both":"list","aria-expanded":"false","aria-label":e.ariaLabel,"aria-owns":e.listboxId}).css(e.hint?e.css.input:e.css.inputWithNoHint);try{t.attr("dir")||t.attr("dir","auto")}catch(l){}return n=e.appendTo?n.appendTo(s.element(e.appendTo).eq(0)).eq(0):t.wrap(n).parent(),n.prepend(e.hint?a:null).append(o),{wrapper:n,input:t,hint:a,menu:o}}(e);this.$node=a.wrapper;var u=this.$input=a.input;t=a.menu,n=a.hint,e.dropdownMenuContainer&&s.element(e.dropdownMenuContainer).css("position","relative").append(t.css("top","0")),u.on("blur.aa",(function(e){var n=document.activeElement;r.isMsie()&&(t[0]===n||t[0].contains(n))&&(e.preventDefault(),e.stopImmediatePropagation(),r.defer((function(){u.focus()})))})),t.on("mousedown.aa",(function(e){e.preventDefault()})),this.eventBus=e.eventBus||new o({el:u}),this.dropdown=new h.Dropdown({appendTo:e.appendTo,wrapper:this.$node,menu:t,datasets:e.datasets,templates:e.templates,cssClasses:e.cssClasses,minLength:this.minLength}).onSync("suggestionClicked",this._onSuggestionClicked,this).onSync("cursorMoved",this._onCursorMoved,this).onSync("cursorRemoved",this._onCursorRemoved,this).onSync("opened",this._onOpened,this).onSync("closed",this._onClosed,this).onSync("shown",this._onShown,this).onSync("empty",this._onEmpty,this).onSync("redrawn",this._onRedrawn,this).onAsync("datasetRendered",this._onDatasetRendered,this),this.input=new h.Input({input:u,hint:n}).onSync("focused",this._onFocused,this).onSync("blurred",this._onBlurred,this).onSync("enterKeyed",this._onEnterKeyed,this).onSync("tabKeyed",this._onTabKeyed,this).onSync("escKeyed",this._onEscKeyed,this).onSync("upKeyed",this._onUpKeyed,this).onSync("downKeyed",this._onDownKeyed,this).onSync("leftKeyed",this._onLeftKeyed,this).onSync("rightKeyed",this._onRightKeyed,this).onSync("queryChanged",this._onQueryChanged,this).onSync("whitespaceChanged",this._onWhitespaceChanged,this),this._bindKeyboardShortcuts(e),this._setLanguageDirection()}r.mixin(h.prototype,{_bindKeyboardShortcuts:function(e){if(e.keyboardShortcuts){var t=this.$input,n=[];r.each(e.keyboardShortcuts,(function(e){"string"==typeof e&&(e=e.toUpperCase().charCodeAt(0)),n.push(e)})),s.element(document).keydown((function(e){var i=e.target||e.srcElement,r=i.tagName;if(!i.isContentEditable&&"INPUT"!==r&&"SELECT"!==r&&"TEXTAREA"!==r){var s=e.which||e.keyCode;-1!==n.indexOf(s)&&(t.focus(),e.stopPropagation(),e.preventDefault())}}))}},_onSuggestionClicked:function(e,t){var n;(n=this.dropdown.getDatumForSuggestion(t))&&this._select(n,{selectionMethod:"click"})},_onCursorMoved:function(e,t){var n=this.dropdown.getDatumForCursor(),i=this.dropdown.getCurrentCursor().attr("id");this.input.setActiveDescendant(i),n&&(t&&this.input.setInputValue(n.value,!0),this.eventBus.trigger("cursorchanged",n.raw,n.datasetName))},_onCursorRemoved:function(){this.input.resetInputValue(),this._updateHint(),this.eventBus.trigger("cursorremoved")},_onDatasetRendered:function(){this._updateHint(),this.eventBus.trigger("updated")},_onOpened:function(){this._updateHint(),this.input.expand(),this.eventBus.trigger("opened")},_onEmpty:function(){this.eventBus.trigger("empty")},_onRedrawn:function(){this.$node.css("top","0px"),this.$node.css("left","0px");var e=this.$input[0].getBoundingClientRect();this.autoWidth&&this.$node.css("width",e.width+"px");var t=this.$node[0].getBoundingClientRect(),n=e.bottom-t.top;this.$node.css("top",n+"px");var i=e.left-t.left;this.$node.css("left",i+"px"),this.eventBus.trigger("redrawn")},_onShown:function(){this.eventBus.trigger("shown"),this.autoselect&&this.dropdown.cursorTopSuggestion()},_onClosed:function(){this.input.clearHint(),this.input.removeActiveDescendant(),this.input.collapse(),this.eventBus.trigger("closed")},_onFocused:function(){if(this.isActivated=!0,this.openOnFocus){var e=this.input.getQuery();e.length>=this.minLength?this.dropdown.update(e):this.dropdown.empty(),this.dropdown.open()}},_onBlurred:function(){var e,t;e=this.dropdown.getDatumForCursor(),t=this.dropdown.getDatumForTopSuggestion();var n={selectionMethod:"blur"};this.debug||(this.autoselectOnBlur&&e?this._select(e,n):this.autoselectOnBlur&&t?this._select(t,n):(this.isActivated=!1,this.dropdown.empty(),this.dropdown.close()))},_onEnterKeyed:function(e,t){var n,i;n=this.dropdown.getDatumForCursor(),i=this.dropdown.getDatumForTopSuggestion();var r={selectionMethod:"enterKey"};n?(this._select(n,r),t.preventDefault()):this.autoselect&&i&&(this._select(i,r),t.preventDefault())},_onTabKeyed:function(e,t){if(this.tabAutocomplete){var n;(n=this.dropdown.getDatumForCursor())?(this._select(n,{selectionMethod:"tabKey"}),t.preventDefault()):this._autocomplete(!0)}else this.dropdown.close()},_onEscKeyed:function(){this.dropdown.close(),this.input.resetInputValue()},_onUpKeyed:function(){var e=this.input.getQuery();this.dropdown.isEmpty&&e.length>=this.minLength?this.dropdown.update(e):this.dropdown.moveCursorUp(),this.dropdown.open()},_onDownKeyed:function(){var e=this.input.getQuery();this.dropdown.isEmpty&&e.length>=this.minLength?this.dropdown.update(e):this.dropdown.moveCursorDown(),this.dropdown.open()},_onLeftKeyed:function(){"rtl"===this.dir&&this._autocomplete()},_onRightKeyed:function(){"ltr"===this.dir&&this._autocomplete()},_onQueryChanged:function(e,t){this.input.clearHintIfInvalid(),t.length>=this.minLength?this.dropdown.update(t):this.dropdown.empty(),this.dropdown.open(),this._setLanguageDirection()},_onWhitespaceChanged:function(){this._updateHint(),this.dropdown.open()},_setLanguageDirection:function(){var e=this.input.getLanguageDirection();this.dir!==e&&(this.dir=e,this.$node.css("direction",e),this.dropdown.setLanguageDirection(e))},_updateHint:function(){var e,t,n,i,s;(e=this.dropdown.getDatumForTopSuggestion())&&this.dropdown.isVisible()&&!this.input.hasOverflow()?(t=this.input.getInputValue(),n=a.normalizeQuery(t),i=r.escapeRegExChars(n),(s=new RegExp("^(?:"+i+")(.+$)","i").exec(e.value))?this.input.setHint(t+s[1]):this.input.clearHint()):this.input.clearHint()},_autocomplete:function(e){var t,n,i,r;t=this.input.getHint(),n=this.input.getQuery(),i=e||this.input.isCursorAtEnd(),t&&n!==t&&i&&((r=this.dropdown.getDatumForTopSuggestion())&&this.input.setInputValue(r.value),this.eventBus.trigger("autocompleted",r.raw,r.datasetName))},_select:function(e,t){void 0!==e.value&&this.input.setQuery(e.value),this.clearOnSelected?this.setVal(""):this.input.setInputValue(e.value,!0),this._setLanguageDirection(),!1===this.eventBus.trigger("selected",e.raw,e.datasetName,t).isDefaultPrevented()&&(this.dropdown.close(),r.defer(r.bind(this.dropdown.empty,this.dropdown)))},open:function(){if(!this.isActivated){var e=this.input.getInputValue();e.length>=this.minLength?this.dropdown.update(e):this.dropdown.empty()}this.dropdown.open()},close:function(){this.dropdown.close()},setVal:function(e){e=r.toStr(e),this.isActivated?this.input.setInputValue(e):(this.input.setQuery(e),this.input.setInputValue(e,!0)),this._setLanguageDirection()},getVal:function(){return this.input.getQuery()},destroy:function(){this.input.destroy(),this.dropdown.destroy(),function(e,t){var n=e.find(r.className(t.prefix,t.input));r.each(n.data(i),(function(e,t){void 0===e?n.removeAttr(t):n.attr(t,e)})),n.detach().removeClass(r.className(t.prefix,t.input,!0)).insertAfter(e),n.removeData&&n.removeData(i);e.remove()}(this.$node,this.cssClasses),this.$node=null},getWrapper:function(){return this.dropdown.$container[0]}}),h.Dropdown=u,h.Input=a,h.sources=n(6331),e.exports=h},3855:e=>{"use strict";e.exports={element:null}},2926:e=>{"use strict";e.exports=function(e){var t=e.match(/Algolia for JavaScript \((\d+\.)(\d+\.)(\d+)\)/)||e.match(/Algolia for vanilla JavaScript (\d+\.)(\d+\.)(\d+)/);if(t)return[t[1],t[2],t[3]]}},5670:(e,t,n)=>{"use strict";var i,r=n(3855);function s(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}e.exports={isArray:null,isFunction:null,isObject:null,bind:null,each:null,map:null,mixin:null,isMsie:function(e){if(void 0===e&&(e=navigator.userAgent),/(msie|trident)/i.test(e)){var t=e.match(/(msie |rv:)(\d+(.\d+)?)/i);if(t)return t[2]}return!1},escapeRegExChars:function(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")},isNumber:function(e){return"number"==typeof e},toStr:function(e){return null==e?"":e+""},cloneDeep:function(e){var t=this.mixin({},e),n=this;return this.each(t,(function(e,i){e&&(n.isArray(e)?t[i]=[].concat(e):n.isObject(e)&&(t[i]=n.cloneDeep(e)))})),t},error:function(e){throw new Error(e)},every:function(e,t){var n=!0;return e?(this.each(e,(function(i,r){n&&(n=t.call(null,i,r,e)&&n)})),!!n):n},any:function(e,t){var n=!1;return e?(this.each(e,(function(i,r){if(t.call(null,i,r,e))return n=!0,!1})),n):n},getUniqueId:(i=0,function(){return i++}),templatify:function(e){if(this.isFunction(e))return e;var t=r.element(e);return"SCRIPT"===t.prop("tagName")?function(){return t.text()}:function(){return String(e)}},defer:function(e){setTimeout(e,0)},noop:function(){},formatPrefix:function(e,t){return t?"":e+"-"},className:function(e,t,n){return(n?"":".")+e+t},escapeHighlightedString:function(e,t,n){t=t||"";var i=document.createElement("div");i.appendChild(document.createTextNode(t)),n=n||"";var r=document.createElement("div");r.appendChild(document.createTextNode(n));var o=document.createElement("div");return o.appendChild(document.createTextNode(e)),o.innerHTML.replace(RegExp(s(i.innerHTML),"g"),t).replace(RegExp(s(r.innerHTML),"g"),n)}}},2683:(e,t,n)=>{"use strict";var i=n(5670),r=n(3489),s=n(2926);e.exports=function(e,t){var n=s(e.as._ua);return n&&n[0]>=3&&n[1]>20&&((t=t||{}).additionalUA="autocomplete.js "+r),function(n,r){e.search(n,t,(function(e,t){e?i.error(e.message):r(t.hits,t)}))}}},6331:(e,t,n)=>{"use strict";e.exports={hits:n(2683),popularIn:n(2226)}},2226:(e,t,n)=>{"use strict";var i=n(5670),r=n(3489),s=n(2926);e.exports=function(e,t,n,o){var a=s(e.as._ua);if(a&&a[0]>=3&&a[1]>20&&((t=t||{}).additionalUA="autocomplete.js "+r),!n.source)return i.error("Missing 'source' key");var u=i.isFunction(n.source)?n.source:function(e){return e[n.source]};if(!n.index)return i.error("Missing 'index' key");var c=n.index;return o=o||{},function(a,l){e.search(a,t,(function(e,a){if(e)i.error(e.message);else{if(a.hits.length>0){var h=a.hits[0],p=i.mixin({hitsPerPage:0},n);delete p.source,delete p.index;var d=s(c.as._ua);return d&&d[0]>=3&&d[1]>20&&(t.additionalUA="autocomplete.js "+r),void c.search(u(h),p,(function(e,t){if(e)i.error(e.message);else{var n=[];if(o.includeAll){var r=o.allTitle||"All departments";n.push(i.mixin({facet:{value:r,count:t.nbHits}},i.cloneDeep(h)))}i.each(t.facets,(function(e,t){i.each(e,(function(e,r){n.push(i.mixin({facet:{facet:t,value:r,count:e}},i.cloneDeep(h)))}))}));for(var s=1;s{"use strict";var i=n(7939);n(3855).element=i;var r=n(5670);r.isArray=i.isArray,r.isFunction=i.isFunction,r.isObject=i.isPlainObject,r.bind=i.proxy,r.each=function(e,t){i.each(e,(function(e,n){return t(n,e)}))},r.map=i.map,r.mixin=i.extend,r.Event=i.Event;var s="aaAutocomplete",o=n(4520),a=n(7368);function u(e,t,n,u){n=r.isArray(n)?n:[].slice.call(arguments,2);var c=i(e).each((function(e,r){var c=i(r),l=new a({el:c}),h=u||new o({input:c,eventBus:l,dropdownMenuContainer:t.dropdownMenuContainer,hint:void 0===t.hint||!!t.hint,minLength:t.minLength,autoselect:t.autoselect,autoselectOnBlur:t.autoselectOnBlur,tabAutocomplete:t.tabAutocomplete,openOnFocus:t.openOnFocus,templates:t.templates,debug:t.debug,clearOnSelected:t.clearOnSelected,cssClasses:t.cssClasses,datasets:n,keyboardShortcuts:t.keyboardShortcuts,appendTo:t.appendTo,autoWidth:t.autoWidth,ariaLabel:t.ariaLabel||r.getAttribute("aria-label")});c.data(s,h)}));return c.autocomplete={},r.each(["open","close","getVal","setVal","destroy","getWrapper"],(function(e){c.autocomplete[e]=function(){var t,n=arguments;return c.each((function(r,o){var a=i(o).data(s);t=a[e].apply(a,n)})),t}})),c}u.sources=o.sources,u.escapeHighlightedString=r.escapeHighlightedString;var c="autocomplete"in window,l=window.autocomplete;u.noConflict=function(){return c?window.autocomplete=l:delete window.autocomplete,u},e.exports=u},3489:e=>{e.exports="0.37.1"},7939:e=>{var t;t=window,e.exports=function(e){var t,n,i=function(){var t,n,i,r,s,o,a=[],u=a.concat,c=a.filter,l=a.slice,h=e.document,p={},d={},f={"column-count":1,columns:1,"font-weight":1,"line-height":1,opacity:1,"z-index":1,zoom:1},g=/^\s*<(\w+|!)[^>]*>/,m=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,v=/^(?:body|html)$/i,x=/([A-Z])/g,b=["val","css","html","text","data","width","height","offset"],w=["after","prepend","before","append"],S=h.createElement("table"),C=h.createElement("tr"),E={tr:h.createElement("tbody"),tbody:S,thead:S,tfoot:S,td:C,th:C,"*":h.createElement("div")},k=/complete|loaded|interactive/,_=/^[\w-]*$/,T={},L=T.toString,O={},A=h.createElement("div"),$={tabindex:"tabIndex",readonly:"readOnly",for:"htmlFor",class:"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},P=Array.isArray||function(e){return e instanceof Array};function I(e){return null==e?String(e):T[L.call(e)]||"object"}function Q(e){return"function"==I(e)}function R(e){return null!=e&&e==e.window}function N(e){return null!=e&&e.nodeType==e.DOCUMENT_NODE}function D(e){return"object"==I(e)}function F(e){return D(e)&&!R(e)&&Object.getPrototypeOf(e)==Object.prototype}function j(e){var t=!!e&&"length"in e&&e.length,n=i.type(e);return"function"!=n&&!R(e)&&("array"==n||0===t||"number"==typeof t&&t>0&&t-1 in e)}function H(e){return c.call(e,(function(e){return null!=e}))}function V(e){return e.length>0?i.fn.concat.apply([],e):e}function B(e){return e.replace(/::/g,"/").replace(/([A-Z]+)([A-Z][a-z])/g,"$1_$2").replace(/([a-z\d])([A-Z])/g,"$1_$2").replace(/_/g,"-").toLowerCase()}function M(e){return e in d?d[e]:d[e]=new RegExp("(^|\\s)"+e+"(\\s|$)")}function q(e,t){return"number"!=typeof t||f[B(e)]?t:t+"px"}function z(e){var t,n;return p[e]||(t=h.createElement(e),h.body.appendChild(t),n=getComputedStyle(t,"").getPropertyValue("display"),t.parentNode.removeChild(t),"none"==n&&(n="block"),p[e]=n),p[e]}function K(e){return"children"in e?l.call(e.children):i.map(e.childNodes,(function(e){if(1==e.nodeType)return e}))}function W(e,t){var n,i=e?e.length:0;for(n=0;n")),n===t&&(n=g.test(e)&&RegExp.$1),n in E||(n="*"),(a=E[n]).innerHTML=""+e,s=i.each(l.call(a.childNodes),(function(){a.removeChild(this)}))),F(r)&&(o=i(s),i.each(r,(function(e,t){b.indexOf(e)>-1?o[e](t):o.attr(e,t)}))),s},O.Z=function(e,t){return new W(e,t)},O.isZ=function(e){return e instanceof O.Z},O.init=function(e,n){var r;if(!e)return O.Z();if("string"==typeof e)if("<"==(e=e.trim())[0]&&g.test(e))r=O.fragment(e,RegExp.$1,n),e=null;else{if(n!==t)return i(n).find(e);r=O.qsa(h,e)}else{if(Q(e))return i(h).ready(e);if(O.isZ(e))return e;if(P(e))r=H(e);else if(D(e))r=[e],e=null;else if(g.test(e))r=O.fragment(e.trim(),RegExp.$1,n),e=null;else{if(n!==t)return i(n).find(e);r=O.qsa(h,e)}}return O.Z(r,e)},(i=function(e,t){return O.init(e,t)}).extend=function(e){var t,n=l.call(arguments,1);return"boolean"==typeof e&&(t=e,e=n.shift()),n.forEach((function(n){U(e,n,t)})),e},O.qsa=function(e,t){var n,i="#"==t[0],r=!i&&"."==t[0],s=i||r?t.slice(1):t,o=_.test(s);return e.getElementById&&o&&i?(n=e.getElementById(s))?[n]:[]:1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType?[]:l.call(o&&!i&&e.getElementsByClassName?r?e.getElementsByClassName(s):e.getElementsByTagName(t):e.querySelectorAll(t))},i.contains=h.documentElement.contains?function(e,t){return e!==t&&e.contains(t)}:function(e,t){for(;t&&(t=t.parentNode);)if(t===e)return!0;return!1},i.type=I,i.isFunction=Q,i.isWindow=R,i.isArray=P,i.isPlainObject=F,i.isEmptyObject=function(e){var t;for(t in e)return!1;return!0},i.isNumeric=function(e){var t=Number(e),n=typeof e;return null!=e&&"boolean"!=n&&("string"!=n||e.length)&&!isNaN(t)&&isFinite(t)||!1},i.inArray=function(e,t,n){return a.indexOf.call(t,e,n)},i.camelCase=s,i.trim=function(e){return null==e?"":String.prototype.trim.call(e)},i.uuid=0,i.support={},i.expr={},i.noop=function(){},i.map=function(e,t){var n,i,r,s=[];if(j(e))for(i=0;i=0?e:e+this.length]},toArray:function(){return this.get()},size:function(){return this.length},remove:function(){return this.each((function(){null!=this.parentNode&&this.parentNode.removeChild(this)}))},each:function(e){return a.every.call(this,(function(t,n){return!1!==e.call(t,n,t)})),this},filter:function(e){return Q(e)?this.not(this.not(e)):i(c.call(this,(function(t){return O.matches(t,e)})))},add:function(e,t){return i(o(this.concat(i(e,t))))},is:function(e){return this.length>0&&O.matches(this[0],e)},not:function(e){var n=[];if(Q(e)&&e.call!==t)this.each((function(t){e.call(this,t)||n.push(this)}));else{var r="string"==typeof e?this.filter(e):j(e)&&Q(e.item)?l.call(e):i(e);this.forEach((function(e){r.indexOf(e)<0&&n.push(e)}))}return i(n)},has:function(e){return this.filter((function(){return D(e)?i.contains(this,e):i(this).find(e).size()}))},eq:function(e){return-1===e?this.slice(e):this.slice(e,+e+1)},first:function(){var e=this[0];return e&&!D(e)?e:i(e)},last:function(){var e=this[this.length-1];return e&&!D(e)?e:i(e)},find:function(e){var t=this;return e?"object"==typeof e?i(e).filter((function(){var e=this;return a.some.call(t,(function(t){return i.contains(t,e)}))})):1==this.length?i(O.qsa(this[0],e)):this.map((function(){return O.qsa(this,e)})):i()},closest:function(e,t){var n=[],r="object"==typeof e&&i(e);return this.each((function(i,s){for(;s&&!(r?r.indexOf(s)>=0:O.matches(s,e));)s=s!==t&&!N(s)&&s.parentNode;s&&n.indexOf(s)<0&&n.push(s)})),i(n)},parents:function(e){for(var t=[],n=this;n.length>0;)n=i.map(n,(function(e){if((e=e.parentNode)&&!N(e)&&t.indexOf(e)<0)return t.push(e),e}));return Z(t,e)},parent:function(e){return Z(o(this.pluck("parentNode")),e)},children:function(e){return Z(this.map((function(){return K(this)})),e)},contents:function(){return this.map((function(){return this.contentDocument||l.call(this.childNodes)}))},siblings:function(e){return Z(this.map((function(e,t){return c.call(K(t.parentNode),(function(e){return e!==t}))})),e)},empty:function(){return this.each((function(){this.innerHTML=""}))},pluck:function(e){return i.map(this,(function(t){return t[e]}))},show:function(){return this.each((function(){"none"==this.style.display&&(this.style.display=""),"none"==getComputedStyle(this,"").getPropertyValue("display")&&(this.style.display=z(this.nodeName))}))},replaceWith:function(e){return this.before(e).remove()},wrap:function(e){var t=Q(e);if(this[0]&&!t)var n=i(e).get(0),r=n.parentNode||this.length>1;return this.each((function(s){i(this).wrapAll(t?e.call(this,s):r?n.cloneNode(!0):n)}))},wrapAll:function(e){if(this[0]){var t;for(i(this[0]).before(e=i(e));(t=e.children()).length;)e=t.first();i(e).append(this)}return this},wrapInner:function(e){var t=Q(e);return this.each((function(n){var r=i(this),s=r.contents(),o=t?e.call(this,n):e;s.length?s.wrapAll(o):r.append(o)}))},unwrap:function(){return this.parent().each((function(){i(this).replaceWith(i(this).children())})),this},clone:function(){return this.map((function(){return this.cloneNode(!0)}))},hide:function(){return this.css("display","none")},toggle:function(e){return this.each((function(){var n=i(this);(e===t?"none"==n.css("display"):e)?n.show():n.hide()}))},prev:function(e){return i(this.pluck("previousElementSibling")).filter(e||"*")},next:function(e){return i(this.pluck("nextElementSibling")).filter(e||"*")},html:function(e){return 0 in arguments?this.each((function(t){var n=this.innerHTML;i(this).empty().append(G(this,e,t,n))})):0 in this?this[0].innerHTML:null},text:function(e){return 0 in arguments?this.each((function(t){var n=G(this,e,t,this.textContent);this.textContent=null==n?"":""+n})):0 in this?this.pluck("textContent").join(""):null},attr:function(e,i){var r;return"string"!=typeof e||1 in arguments?this.each((function(t){if(1===this.nodeType)if(D(e))for(n in e)J(this,n,e[n]);else J(this,e,G(this,i,t,this.getAttribute(e)))})):0 in this&&1==this[0].nodeType&&null!=(r=this[0].getAttribute(e))?r:t},removeAttr:function(e){return this.each((function(){1===this.nodeType&&e.split(" ").forEach((function(e){J(this,e)}),this)}))},prop:function(e,t){return e=$[e]||e,1 in arguments?this.each((function(n){this[e]=G(this,t,n,this[e])})):this[0]&&this[0][e]},removeProp:function(e){return e=$[e]||e,this.each((function(){delete this[e]}))},data:function(e,n){var i="data-"+e.replace(x,"-$1").toLowerCase(),r=1 in arguments?this.attr(i,n):this.attr(i);return null!==r?Y(r):t},val:function(e){return 0 in arguments?(null==e&&(e=""),this.each((function(t){this.value=G(this,e,t,this.value)}))):this[0]&&(this[0].multiple?i(this[0]).find("option").filter((function(){return this.selected})).pluck("value"):this[0].value)},offset:function(t){if(t)return this.each((function(e){var n=i(this),r=G(this,t,e,n.offset()),s=n.offsetParent().offset(),o={top:r.top-s.top,left:r.left-s.left};"static"==n.css("position")&&(o.position="relative"),n.css(o)}));if(!this.length)return null;if(h.documentElement!==this[0]&&!i.contains(h.documentElement,this[0]))return{top:0,left:0};var n=this[0].getBoundingClientRect();return{left:n.left+e.pageXOffset,top:n.top+e.pageYOffset,width:Math.round(n.width),height:Math.round(n.height)}},css:function(e,t){if(arguments.length<2){var r=this[0];if("string"==typeof e){if(!r)return;return r.style[s(e)]||getComputedStyle(r,"").getPropertyValue(e)}if(P(e)){if(!r)return;var o={},a=getComputedStyle(r,"");return i.each(e,(function(e,t){o[t]=r.style[s(t)]||a.getPropertyValue(t)})),o}}var u="";if("string"==I(e))t||0===t?u=B(e)+":"+q(e,t):this.each((function(){this.style.removeProperty(B(e))}));else for(n in e)e[n]||0===e[n]?u+=B(n)+":"+q(n,e[n])+";":this.each((function(){this.style.removeProperty(B(n))}));return this.each((function(){this.style.cssText+=";"+u}))},index:function(e){return e?this.indexOf(i(e)[0]):this.parent().children().indexOf(this[0])},hasClass:function(e){return!!e&&a.some.call(this,(function(e){return this.test(X(e))}),M(e))},addClass:function(e){return e?this.each((function(t){if("className"in this){r=[];var n=X(this);G(this,e,t,n).split(/\s+/g).forEach((function(e){i(this).hasClass(e)||r.push(e)}),this),r.length&&X(this,n+(n?" ":"")+r.join(" "))}})):this},removeClass:function(e){return this.each((function(n){if("className"in this){if(e===t)return X(this,"");r=X(this),G(this,e,n,r).split(/\s+/g).forEach((function(e){r=r.replace(M(e)," ")})),X(this,r.trim())}}))},toggleClass:function(e,n){return e?this.each((function(r){var s=i(this);G(this,e,r,X(this)).split(/\s+/g).forEach((function(e){(n===t?!s.hasClass(e):n)?s.addClass(e):s.removeClass(e)}))})):this},scrollTop:function(e){if(this.length){var n="scrollTop"in this[0];return e===t?n?this[0].scrollTop:this[0].pageYOffset:this.each(n?function(){this.scrollTop=e}:function(){this.scrollTo(this.scrollX,e)})}},scrollLeft:function(e){if(this.length){var n="scrollLeft"in this[0];return e===t?n?this[0].scrollLeft:this[0].pageXOffset:this.each(n?function(){this.scrollLeft=e}:function(){this.scrollTo(e,this.scrollY)})}},position:function(){if(this.length){var e=this[0],t=this.offsetParent(),n=this.offset(),r=v.test(t[0].nodeName)?{top:0,left:0}:t.offset();return n.top-=parseFloat(i(e).css("margin-top"))||0,n.left-=parseFloat(i(e).css("margin-left"))||0,r.top+=parseFloat(i(t[0]).css("border-top-width"))||0,r.left+=parseFloat(i(t[0]).css("border-left-width"))||0,{top:n.top-r.top,left:n.left-r.left}}},offsetParent:function(){return this.map((function(){for(var e=this.offsetParent||h.body;e&&!v.test(e.nodeName)&&"static"==i(e).css("position");)e=e.offsetParent;return e}))}},i.fn.detach=i.fn.remove,["width","height"].forEach((function(e){var n=e.replace(/./,(function(e){return e[0].toUpperCase()}));i.fn[e]=function(r){var s,o=this[0];return r===t?R(o)?o["inner"+n]:N(o)?o.documentElement["scroll"+n]:(s=this.offset())&&s[e]:this.each((function(t){(o=i(this)).css(e,G(this,r,t,o[e]()))}))}})),w.forEach((function(n,r){var s=r%2;i.fn[n]=function(){var n,o,a=i.map(arguments,(function(e){var r=[];return"array"==(n=I(e))?(e.forEach((function(e){return e.nodeType!==t?r.push(e):i.zepto.isZ(e)?r=r.concat(e.get()):void(r=r.concat(O.fragment(e)))})),r):"object"==n||null==e?e:O.fragment(e)})),u=this.length>1;return a.length<1?this:this.each((function(t,n){o=s?n:n.parentNode,n=0==r?n.nextSibling:1==r?n.firstChild:2==r?n:null;var c=i.contains(h.documentElement,o);a.forEach((function(t){if(u)t=t.cloneNode(!0);else if(!o)return i(t).remove();o.insertBefore(t,n),c&&ee(t,(function(t){if(!(null==t.nodeName||"SCRIPT"!==t.nodeName.toUpperCase()||t.type&&"text/javascript"!==t.type||t.src)){var n=t.ownerDocument?t.ownerDocument.defaultView:e;n.eval.call(n,t.innerHTML)}}))}))}))},i.fn[s?n+"To":"insert"+(r?"Before":"After")]=function(e){return i(e)[n](this),this}})),O.Z.prototype=W.prototype=i.fn,O.uniq=o,O.deserializeValue=Y,i.zepto=O,i}();return function(t){var n,i=1,r=Array.prototype.slice,s=t.isFunction,o=function(e){return"string"==typeof e},a={},u={},c="onfocusin"in e,l={focus:"focusin",blur:"focusout"},h={mouseenter:"mouseover",mouseleave:"mouseout"};function p(e){return e._zid||(e._zid=i++)}function d(e,t,n,i){if((t=f(t)).ns)var r=g(t.ns);return(a[p(e)]||[]).filter((function(e){return e&&(!t.e||e.e==t.e)&&(!t.ns||r.test(e.ns))&&(!n||p(e.fn)===p(n))&&(!i||e.sel==i)}))}function f(e){var t=(""+e).split(".");return{e:t[0],ns:t.slice(1).sort().join(" ")}}function g(e){return new RegExp("(?:^| )"+e.replace(" "," .* ?")+"(?: |$)")}function m(e,t){return e.del&&!c&&e.e in l||!!t}function y(e){return h[e]||c&&l[e]||e}function v(e,i,r,s,o,u,c){var l=p(e),d=a[l]||(a[l]=[]);i.split(/\s/).forEach((function(i){if("ready"==i)return t(document).ready(r);var a=f(i);a.fn=r,a.sel=o,a.e in h&&(r=function(e){var n=e.relatedTarget;if(!n||n!==this&&!t.contains(this,n))return a.fn.apply(this,arguments)}),a.del=u;var l=u||r;a.proxy=function(t){if(!(t=E(t)).isImmediatePropagationStopped()){try{var i=Object.getOwnPropertyDescriptor(t,"data");i&&!i.writable||(t.data=s)}catch(t){}var r=l.apply(e,t._args==n?[t]:[t].concat(t._args));return!1===r&&(t.preventDefault(),t.stopPropagation()),r}},a.i=d.length,d.push(a),"addEventListener"in e&&e.addEventListener(y(a.e),a.proxy,m(a,c))}))}function x(e,t,n,i,r){var s=p(e);(t||"").split(/\s/).forEach((function(t){d(e,t,n,i).forEach((function(t){delete a[s][t.i],"removeEventListener"in e&&e.removeEventListener(y(t.e),t.proxy,m(t,r))}))}))}u.click=u.mousedown=u.mouseup=u.mousemove="MouseEvents",t.event={add:v,remove:x},t.proxy=function(e,n){var i=2 in arguments&&r.call(arguments,2);if(s(e)){var a=function(){return e.apply(n,i?i.concat(r.call(arguments)):arguments)};return a._zid=p(e),a}if(o(n))return i?(i.unshift(e[n],e),t.proxy.apply(null,i)):t.proxy(e[n],e);throw new TypeError("expected function")},t.fn.bind=function(e,t,n){return this.on(e,t,n)},t.fn.unbind=function(e,t){return this.off(e,t)},t.fn.one=function(e,t,n,i){return this.on(e,t,n,i,1)};var b=function(){return!0},w=function(){return!1},S=/^([A-Z]|returnValue$|layer[XY]$|webkitMovement[XY]$)/,C={preventDefault:"isDefaultPrevented",stopImmediatePropagation:"isImmediatePropagationStopped",stopPropagation:"isPropagationStopped"};function E(e,i){if(i||!e.isDefaultPrevented){i||(i=e),t.each(C,(function(t,n){var r=i[t];e[t]=function(){return this[n]=b,r&&r.apply(i,arguments)},e[n]=w}));try{e.timeStamp||(e.timeStamp=Date.now())}catch(r){}(i.defaultPrevented!==n?i.defaultPrevented:"returnValue"in i?!1===i.returnValue:i.getPreventDefault&&i.getPreventDefault())&&(e.isDefaultPrevented=b)}return e}function k(e){var t,i={originalEvent:e};for(t in e)S.test(t)||e[t]===n||(i[t]=e[t]);return E(i,e)}t.fn.delegate=function(e,t,n){return this.on(t,e,n)},t.fn.undelegate=function(e,t,n){return this.off(t,e,n)},t.fn.live=function(e,n){return t(document.body).delegate(this.selector,e,n),this},t.fn.die=function(e,n){return t(document.body).undelegate(this.selector,e,n),this},t.fn.on=function(e,i,a,u,c){var l,h,p=this;return e&&!o(e)?(t.each(e,(function(e,t){p.on(e,i,a,t,c)})),p):(o(i)||s(u)||!1===u||(u=a,a=i,i=n),u!==n&&!1!==a||(u=a,a=n),!1===u&&(u=w),p.each((function(n,s){c&&(l=function(e){return x(s,e.type,u),u.apply(this,arguments)}),i&&(h=function(e){var n,o=t(e.target).closest(i,s).get(0);if(o&&o!==s)return n=t.extend(k(e),{currentTarget:o,liveFired:s}),(l||u).apply(o,[n].concat(r.call(arguments,1)))}),v(s,e,u,a,i,h||l)})))},t.fn.off=function(e,i,r){var a=this;return e&&!o(e)?(t.each(e,(function(e,t){a.off(e,i,t)})),a):(o(i)||s(r)||!1===r||(r=i,i=n),!1===r&&(r=w),a.each((function(){x(this,e,r,i)})))},t.fn.trigger=function(e,n){return(e=o(e)||t.isPlainObject(e)?t.Event(e):E(e))._args=n,this.each((function(){e.type in l&&"function"==typeof this[e.type]?this[e.type]():"dispatchEvent"in this?this.dispatchEvent(e):t(this).triggerHandler(e,n)}))},t.fn.triggerHandler=function(e,n){var i,r;return this.each((function(s,a){(i=k(o(e)?t.Event(e):e))._args=n,i.target=a,t.each(d(a,e.type||e),(function(e,t){if(r=t.proxy(i),i.isImmediatePropagationStopped())return!1}))})),r},"focusin focusout focus blur load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select keydown keypress keyup error".split(" ").forEach((function(e){t.fn[e]=function(t){return 0 in arguments?this.bind(e,t):this.trigger(e)}})),t.Event=function(e,t){o(e)||(e=(t=e).type);var n=document.createEvent(u[e]||"Events"),i=!0;if(t)for(var r in t)"bubbles"==r?i=!!t[r]:n[r]=t[r];return n.initEvent(e,i,!0),E(n)}}(i),n=[],i.fn.remove=function(){return this.each((function(){this.parentNode&&("IMG"===this.tagName&&(n.push(this),this.src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=",t&&clearTimeout(t),t=setTimeout((function(){n=[]}),6e4)),this.parentNode.removeChild(this))}))},function(e){var t={},n=e.fn.data,i=e.camelCase,r=e.expando="Zepto"+ +new Date,s=[];function o(s,o){var u=s[r],c=u&&t[u];if(void 0===o)return c||a(s);if(c){if(o in c)return c[o];var l=i(o);if(l in c)return c[l]}return n.call(e(s),o)}function a(n,s,o){var a=n[r]||(n[r]=++e.uuid),c=t[a]||(t[a]=u(n));return void 0!==s&&(c[i(s)]=o),c}function u(t){var n={};return e.each(t.attributes||s,(function(t,r){0==r.name.indexOf("data-")&&(n[i(r.name.replace("data-",""))]=e.zepto.deserializeValue(r.value))})),n}e.fn.data=function(t,n){return void 0===n?e.isPlainObject(t)?this.each((function(n,i){e.each(t,(function(e,t){a(i,e,t)}))})):0 in this?o(this[0],t):void 0:this.each((function(){a(this,t,n)}))},e.data=function(t,n,i){return e(t).data(n,i)},e.hasData=function(n){var i=n[r],s=i&&t[i];return!!s&&!e.isEmptyObject(s)},e.fn.removeData=function(n){return"string"==typeof n&&(n=n.split(/\s+/)),this.each((function(){var s=this[r],o=s&&t[s];o&&e.each(n||o,(function(e){delete o[n?i(this):e]}))}))},["remove","empty"].forEach((function(t){var n=e.fn[t];e.fn[t]=function(){var e=this.find("*");return"remove"===t&&(e=e.add(this)),e.removeData(),n.call(this)}}))}(i),i}(t)},4734:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>m});var i=n(5485),r=n.n(i),s=n(9039);s.Z.tokenizer.separator=/[\s\-/]+/;const o=class{constructor(e,t,n){void 0===n&&(n="/"),this.searchDocs=e,this.lunrIndex=s.Z.Index.load(t),this.baseUrl=n}getLunrResult(e){return this.lunrIndex.query((function(t){const n=s.Z.tokenizer(e);t.term(n,{boost:10}),t.term(n,{wildcard:s.Z.Query.wildcard.TRAILING})}))}getHit(e,t,n){return{hierarchy:{lvl0:e.pageTitle||e.title,lvl1:0===e.type?null:e.title},url:e.url,version:e.version,_snippetResult:n?{content:{value:n,matchLevel:"full"}}:null,_highlightResult:{hierarchy:{lvl0:{value:0===e.type?t||e.title:e.pageTitle},lvl1:0===e.type?null:{value:t||e.title}}}}}getTitleHit(e,t,n){const i=t[0],r=t[0]+n;let s=e.title.substring(0,i)+''+e.title.substring(i,r)+""+e.title.substring(r,e.title.length);return this.getHit(e,s)}getKeywordHit(e,t,n){const i=t[0],r=t[0]+n;let s=e.title+"
Keywords: "+e.keywords.substring(0,i)+''+e.keywords.substring(i,r)+""+e.keywords.substring(r,e.keywords.length)+"";return this.getHit(e,s)}getContentHit(e,t){const n=t[0],i=t[0]+t[1];let r=n,s=i,o=!0,a=!0;for(let c=0;c<3;c++){const t=e.content.lastIndexOf(" ",r-2),n=e.content.lastIndexOf(".",r-2);if(n>0&&n>t){r=n+1,o=!1;break}if(t<0){r=0,o=!1;break}r=t+1}for(let c=0;c<10;c++){const t=e.content.indexOf(" ",s+1),n=e.content.indexOf(".",s+1);if(n>0&&n",u+=e.content.substring(i,s),a&&(u+=" ..."),this.getHit(e,null,u)}search(e){return new Promise(((t,n)=>{const i=this.getLunrResult(e),r=[];i.length>5&&(i.length=5),this.titleHitsRes=[],this.contentHitsRes=[],i.forEach((t=>{const n=this.searchDocs[t.ref],{metadata:i}=t.matchData;for(let s in i)if(i[s].title){if(!this.titleHitsRes.includes(t.ref)){const o=i[s].title.position[0];r.push(this.getTitleHit(n,o,e.length)),this.titleHitsRes.push(t.ref)}}else if(i[s].content){const e=i[s].content.position[0];r.push(this.getContentHit(n,e))}else if(i[s].keywords){const o=i[s].keywords.position[0];r.push(this.getKeywordHit(n,o,e.length)),this.titleHitsRes.push(t.ref)}})),r.length>5&&(r.length=5),t(r)}))}};var a=n(1639),u=n.n(a);const c="algolia-docsearch",l=`${c}-suggestion`,h={suggestion:`\n \n
\n {{{category}}}\n
\n
\n
\n {{{subcategory}}}\n
\n {{#isTextOrSubcategoryNonEmpty}}\n
\n
{{{subcategory}}}
\n
{{{title}}}
\n {{#text}}
{{{text}}}
{{/text}}\n {{#version}}
{{version}}
{{/version}}\n
\n {{/isTextOrSubcategoryNonEmpty}}\n
\n
\n `,suggestionSimple:`\n
\n
\n {{^isLvl0}}\n {{{category}}}\n {{^isLvl1}}\n {{^isLvl1EmptyOrDuplicate}}\n \n {{{subcategory}}}\n \n {{/isLvl1EmptyOrDuplicate}}\n {{/isLvl1}}\n {{/isLvl0}}\n
\n {{#isLvl2}}\n {{{title}}}\n {{/isLvl2}}\n {{#isLvl1}}\n {{{subcategory}}}\n {{/isLvl1}}\n {{#isLvl0}}\n {{{category}}}\n {{/isLvl0}}\n
\n
\n
\n {{#text}}\n
\n
{{{text}}}
\n
\n {{/text}}\n
\n
\n `,footer:`\n
\n
\n `,empty:`\n
\n
\n
\n
\n
\n No results found for query "{{query}}"\n
\n
\n
\n
\n
\n `,searchBox:'\n \n\n\n '};var p=n(7939),d=n.n(p);const f={mergeKeyWithParent(e,t){if(void 0===e[t])return e;if("object"!=typeof e[t])return e;const n=d().extend({},e,e[t]);return delete n[t],n},groupBy(e,t){const n={};return d().each(e,((e,i)=>{if(void 0===i[t])throw new Error(`[groupBy]: Object has no key ${t}`);let r=i[t];"string"==typeof r&&(r=r.toLowerCase()),Object.prototype.hasOwnProperty.call(n,r)||(n[r]=[]),n[r].push(i)})),n},values:e=>Object.keys(e).map((t=>e[t])),flatten(e){const t=[];return e.forEach((e=>{Array.isArray(e)?e.forEach((e=>{t.push(e)})):t.push(e)})),t},flattenAndFlagFirst(e,t){const n=this.values(e).map((e=>e.map(((e,n)=>(e[t]=0===n,e)))));return this.flatten(n)},compact(e){const t=[];return e.forEach((e=>{e&&t.push(e)})),t},getHighlightedValue:(e,t)=>e._highlightResult&&e._highlightResult.hierarchy_camel&&e._highlightResult.hierarchy_camel[t]&&e._highlightResult.hierarchy_camel[t].matchLevel&&"none"!==e._highlightResult.hierarchy_camel[t].matchLevel&&e._highlightResult.hierarchy_camel[t].value?e._highlightResult.hierarchy_camel[t].value:e._highlightResult&&e._highlightResult&&e._highlightResult[t]&&e._highlightResult[t].value?e._highlightResult[t].value:e[t],getSnippetedValue(e,t){if(!e._snippetResult||!e._snippetResult[t]||!e._snippetResult[t].value)return e[t];let n=e._snippetResult[t].value;return n[0]!==n[0].toUpperCase()&&(n=`\u2026${n}`),-1===[".","!","?"].indexOf(n[n.length-1])&&(n=`${n}\u2026`),n},deepClone:e=>JSON.parse(JSON.stringify(e))};class g{constructor(e){let{searchDocs:t,searchIndex:n,inputSelector:i,debug:r=!1,baseUrl:s="/",queryDataCallback:a=null,autocompleteOptions:c={debug:!1,hint:!1,autoselect:!0},transformData:l=!1,queryHook:p=!1,handleSelected:f=!1,enhancedSearchInput:m=!1,layout:y="column"}=e;this.input=g.getInputFromSelector(i),this.queryDataCallback=a||null;const v=!(!c||!c.debug)&&c.debug;c.debug=r||v,this.autocompleteOptions=c,this.autocompleteOptions.cssClasses=this.autocompleteOptions.cssClasses||{},this.autocompleteOptions.cssClasses.prefix=this.autocompleteOptions.cssClasses.prefix||"ds";const x=this.input&&"function"==typeof this.input.attr&&this.input.attr("aria-label");this.autocompleteOptions.ariaLabel=this.autocompleteOptions.ariaLabel||x||"search input",this.isSimpleLayout="simple"===y,this.client=new o(t,n,s),m&&(this.input=g.injectSearchBox(this.input)),this.autocomplete=u()(this.input,c,[{source:this.getAutocompleteSource(l,p),templates:{suggestion:g.getSuggestionTemplate(this.isSimpleLayout),footer:h.footer,empty:g.getEmptyTemplate()}}]);const b=f;this.handleSelected=b||this.handleSelected,b&&d()(".algolia-autocomplete").on("click",".ds-suggestions a",(e=>{e.preventDefault()})),this.autocomplete.on("autocomplete:selected",this.handleSelected.bind(null,this.autocomplete.autocomplete)),this.autocomplete.on("autocomplete:shown",this.handleShown.bind(null,this.input)),m&&g.bindSearchBoxEvent(),document.addEventListener("keydown",(e=>{e.ctrlKey&&"k"==e.key&&(this.input.focus(),e.preventDefault())}))}static injectSearchBox(e){e.before(h.searchBox);const t=e.prev().prev().find("input");return e.remove(),t}static bindSearchBoxEvent(){d()('.searchbox [type="reset"]').on("click",(function(){d()("input#docsearch").focus(),d()(this).addClass("hide"),u().autocomplete.setVal("")})),d()("input#docsearch").on("keyup",(()=>{const e=document.querySelector("input#docsearch"),t=document.querySelector('.searchbox [type="reset"]');t.className="searchbox__reset",0===e.value.length&&(t.className+=" hide")}))}static getInputFromSelector(e){const t=d()(e).filter("input");return t.length?d()(t[0]):null}getAutocompleteSource(e,t){return(n,i)=>{t&&(n=t(n)||n),this.client.search(n).then((t=>{this.queryDataCallback&&"function"==typeof this.queryDataCallback&&this.queryDataCallback(t),e&&(t=e(t)||t),i(g.formatHits(t))}))}}static formatHits(e){const t=f.deepClone(e).map((e=>(e._highlightResult&&(e._highlightResult=f.mergeKeyWithParent(e._highlightResult,"hierarchy")),f.mergeKeyWithParent(e,"hierarchy"))));let n=f.groupBy(t,"lvl0");return d().each(n,((e,t)=>{const i=f.groupBy(t,"lvl1"),r=f.flattenAndFlagFirst(i,"isSubCategoryHeader");n[e]=r})),n=f.flattenAndFlagFirst(n,"isCategoryHeader"),n.map((e=>{const t=g.formatURL(e),n=f.getHighlightedValue(e,"lvl0"),i=f.getHighlightedValue(e,"lvl1")||n,r=f.compact([f.getHighlightedValue(e,"lvl2")||i,f.getHighlightedValue(e,"lvl3"),f.getHighlightedValue(e,"lvl4"),f.getHighlightedValue(e,"lvl5"),f.getHighlightedValue(e,"lvl6")]).join(''),s=f.getSnippetedValue(e,"content"),o=i&&""!==i||r&&""!==r,a=!i||""===i||i===n,u=r&&""!==r&&r!==i,c=!u&&i&&""!==i&&i!==n,l=!c&&!u,h=e.version;return{isLvl0:l,isLvl1:c,isLvl2:u,isLvl1EmptyOrDuplicate:a,isCategoryHeader:e.isCategoryHeader,isSubCategoryHeader:e.isSubCategoryHeader,isTextOrSubcategoryNonEmpty:o,category:n,subcategory:i,title:r,text:s,url:t,version:h}}))}static formatURL(e){const{url:t,anchor:n}=e;if(t){return-1!==t.indexOf("#")?t:n?`${e.url}#${e.anchor}`:t}return n?`#${e.anchor}`:(console.warn("no anchor nor url for : ",JSON.stringify(e)),null)}static getEmptyTemplate(){return e=>r().compile(h.empty).render(e)}static getSuggestionTemplate(e){const t=e?h.suggestionSimple:h.suggestion,n=r().compile(t);return e=>n.render(e)}handleSelected(e,t,n,i,r){void 0===r&&(r={}),"click"!==r.selectionMethod&&(e.setVal(""),window.location.assign(n.url))}handleShown(e){const t=e.offset().left+e.width()/2;let n=d()(document).width()/2;isNaN(n)&&(n=900);const i=t-n>=0?"algolia-autocomplete-right":"algolia-autocomplete-left",r=t-n<0?"algolia-autocomplete-right":"algolia-autocomplete-left",s=d()(".algolia-autocomplete");s.hasClass(i)||s.addClass(i),s.hasClass(r)&&s.removeClass(r)}}const m=g},9397:(e,t)=>{!function(e){var t=/\S/,n=/\"/g,i=/\n/g,r=/\r/g,s=/\\/g,o=/\u2028/,a=/\u2029/;function u(e){"}"===e.n.substr(e.n.length-1)&&(e.n=e.n.substring(0,e.n.length-1))}function c(e){return e.trim?e.trim():e.replace(/^\s*|\s*$/g,"")}function l(e,t,n){if(t.charAt(n)!=e.charAt(0))return!1;for(var i=1,r=e.length;i":7,"=":8,_v:9,"{":10,"&":11,_t:12},e.scan=function(n,i){var r=n.length,s=0,o=null,a=null,h="",p=[],d=!1,f=0,g=0,m="{{",y="}}";function v(){h.length>0&&(p.push({tag:"_t",text:new String(h)}),h="")}function x(n,i){if(v(),n&&function(){for(var n=!0,i=g;i"==r.tag&&(r.indent=p[s].text.toString()),p.splice(s,1));else i||p.push({tag:"\n"});d=!1,g=p.length}function b(e,t){var n="="+y,i=e.indexOf(n,t),r=c(e.substring(e.indexOf("=",t)+1,i)).split(" ");return m=r[0],y=r[r.length-1],i+n.length-1}for(i&&(i=i.split(" "),m=i[0],y=i[1]),f=0;f0;){if(u=t.shift(),s&&"<"==s.tag&&!(u.tag in h))throw new Error("Illegal content in < super tag.");if(e.tags[u.tag]<=e.tags.$||d(u,r))i.push(u),u.nodes=p(t,u.tag,i,r);else{if("/"==u.tag){if(0===i.length)throw new Error("Closing tag without opener: /"+u.n);if(a=i.pop(),u.n!=a.n&&!f(u.n,a.n,r))throw new Error("Nesting error: "+a.n+" vs. "+u.n);return a.end=u.i,o}"\n"==u.tag&&(u.last=0==t.length||"\n"==t[0].tag)}o.push(u)}if(i.length>0)throw new Error("missing closing tag: "+i.pop().n);return o}function d(e,t){for(var n=0,i=t.length;n":x,"<":function(t,n){var i={partials:{},code:"",subs:{},inPartial:!0};e.walk(t.nodes,i);var r=n.partials[x(t,n)];r.subs=i.subs,r.partials=i.partials},$:function(t,n){var i={subs:{},code:"",partials:n.partials,prefix:t.n};e.walk(t.nodes,i),n.subs[t.n]=i.code,n.inPartial||(n.code+='t.sub("'+y(t.n)+'",c,p,i);')},"\n":function(e,t){t.code+=w('"\\n"'+(e.last?"":" + i"))},_v:function(e,t){t.code+="t.b(t.v(t."+v(e.n)+'("'+y(e.n)+'",c,p,0)));'},_t:function(e,t){t.code+=w('"'+y(e.text)+'"')},"{":b,"&":b},e.walk=function(t,n){for(var i,r=0,s=t.length;r{var i=n(9397);i.Template=n(2882).Template,i.template=i.Template,e.exports=i},2882:(e,t)=>{!function(e){function t(e,t,n){var i;return t&&"object"==typeof t&&(void 0!==t[e]?i=t[e]:n&&t.get&&"function"==typeof t.get&&(i=t.get(e))),i}e.Template=function(e,t,n,i){e=e||{},this.r=e.code||this.r,this.c=n,this.options=i||{},this.text=t||"",this.partials=e.partials||{},this.subs=e.subs||{},this.buf=""},e.Template.prototype={r:function(e,t,n){return""},v:function(e){return e=u(e),a.test(e)?e.replace(n,"&").replace(i,"<").replace(r,">").replace(s,"'").replace(o,"""):e},t:u,render:function(e,t,n){return this.ri([e],t||{},n)},ri:function(e,t,n){return this.r(e,t,n)},ep:function(e,t){var n=this.partials[e],i=t[n.name];if(n.instance&&n.base==i)return n.instance;if("string"==typeof i){if(!this.c)throw new Error("No compiler available.");i=this.c.compile(i,this.options)}if(!i)return null;if(this.partials[e].base=i,n.subs){for(key in t.stackText||(t.stackText={}),n.subs)t.stackText[key]||(t.stackText[key]=void 0!==this.activeSub&&t.stackText[this.activeSub]?t.stackText[this.activeSub]:this.text);i=function(e,t,n,i,r,s){function o(){}function a(){}var u;o.prototype=e,a.prototype=e.subs;var c=new o;for(u in c.subs=new a,c.subsText={},c.buf="",i=i||{},c.stackSubs=i,c.subsText=s,t)i[u]||(i[u]=t[u]);for(u in i)c.subs[u]=i[u];for(u in r=r||{},c.stackPartials=r,n)r[u]||(r[u]=n[u]);for(u in r)c.partials[u]=r[u];return c}(i,n.subs,n.partials,this.stackSubs,this.stackPartials,t.stackText)}return this.partials[e].instance=i,i},rp:function(e,t,n,i){var r=this.ep(e,n);return r?r.ri(t,n,i):""},rs:function(e,t,n){var i=e[e.length-1];if(c(i))for(var r=0;r=0;u--)if(void 0!==(s=t(e,n[u],a))){o=!0;break}return o?(r||"function"!=typeof s||(s=this.mv(s,n,i)),s):!r&&""},ls:function(e,t,n,i,r){var s=this.options.delimiters;return this.options.delimiters=r,this.b(this.ct(u(e.call(t,i)),t,n)),this.options.delimiters=s,!1},ct:function(e,t,n){if(this.options.disableLambda)throw new Error("Lambda features disabled.");return this.c.compile(e,this.options).render(t,n)},b:function(e){this.buf+=e},fl:function(){var e=this.buf;return this.buf="",e},ms:function(e,t,n,i,r,s,o){var a,u=t[t.length-1],c=e.call(u);return"function"==typeof c?!!i||(a=this.activeSub&&this.subsText&&this.subsText[this.activeSub]?this.subsText[this.activeSub]:this.text,this.ls(c,u,n,a.substring(r,s),o)):c},mv:function(e,t,n){var i=t[t.length-1],r=e.call(i);return"function"==typeof r?this.ct(u(r.call(i)),i,n):r},sub:function(e,t,n,i){var r=this.subs[e];r&&(this.activeSub=e,r(t,n,this,i),this.activeSub=!1)}};var n=/&/g,i=//g,s=/\'/g,o=/\"/g,a=/[&<>\"\']/;function u(e){return String(null==e?"":e)}var c=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)}}(t)},624:(e,t,n)=>{"use strict";var i,r,s,o=[n(5525),n(4785),n(8291),n(2709),n(2506),n(9176)],a=-1,u=[],c=!1;function l(){i&&r&&(i=!1,r.length?u=r.concat(u):a=-1,u.length&&h())}function h(){if(!i){c=!1,i=!0;for(var e=u.length,t=setTimeout(l);e;){for(r=u,u=[];r&&++a1)for(var n=1;n{"use strict";t.test=function(){return!n.g.setImmediate&&void 0!==n.g.MessageChannel},t.install=function(e){var t=new n.g.MessageChannel;return t.port1.onmessage=e,function(){t.port2.postMessage(0)}}},8291:(e,t,n)=>{"use strict";var i=n.g.MutationObserver||n.g.WebKitMutationObserver;t.test=function(){return i},t.install=function(e){var t=0,r=new i(e),s=n.g.document.createTextNode("");return r.observe(s,{characterData:!0}),function(){s.data=t=++t%2}}},4785:(e,t,n)=>{"use strict";t.test=function(){return"function"==typeof n.g.queueMicrotask},t.install=function(e){return function(){n.g.queueMicrotask(e)}}},2506:(e,t,n)=>{"use strict";t.test=function(){return"document"in n.g&&"onreadystatechange"in n.g.document.createElement("script")},t.install=function(e){return function(){var t=n.g.document.createElement("script");return t.onreadystatechange=function(){e(),t.onreadystatechange=null,t.parentNode.removeChild(t),t=null},n.g.document.documentElement.appendChild(t),e}}},9176:(e,t)=>{"use strict";t.test=function(){return!0},t.install=function(e){return function(){setTimeout(e,0)}}},1336:(e,t,n)=>{var i,r;!function(){var s,o,a,u,c,l,h,p,d,f,g,m,y,v,x,b,w,S,C,E,k,_,T,L,O,A,$,P,I,Q,R=function(e){var t=new R.Builder;return t.pipeline.add(R.trimmer,R.stopWordFilter,R.stemmer),t.searchPipeline.add(R.stemmer),e.call(t,t),t.build()};R.version="2.3.9",R.utils={},R.utils.warn=(s=this,function(e){s.console&&console.warn&&console.warn(e)}),R.utils.asString=function(e){return null==e?"":e.toString()},R.utils.clone=function(e){if(null==e)return e;for(var t=Object.create(null),n=Object.keys(e),i=0;i0){var u=R.utils.clone(t)||{};u.position=[o,a],u.index=r.length,r.push(new R.Token(n.slice(o,s),u))}o=s+1}}return r},R.tokenizer.separator=/[\s\-]+/,R.Pipeline=function(){this._stack=[]},R.Pipeline.registeredFunctions=Object.create(null),R.Pipeline.registerFunction=function(e,t){t in this.registeredFunctions&&R.utils.warn("Overwriting existing registered function: "+t),e.label=t,R.Pipeline.registeredFunctions[e.label]=e},R.Pipeline.warnIfFunctionNotRegistered=function(e){e.label&&e.label in this.registeredFunctions||R.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",e)},R.Pipeline.load=function(e){var t=new R.Pipeline;return e.forEach((function(e){var n=R.Pipeline.registeredFunctions[e];if(!n)throw new Error("Cannot load unregistered function: "+e);t.add(n)})),t},R.Pipeline.prototype.add=function(){Array.prototype.slice.call(arguments).forEach((function(e){R.Pipeline.warnIfFunctionNotRegistered(e),this._stack.push(e)}),this)},R.Pipeline.prototype.after=function(e,t){R.Pipeline.warnIfFunctionNotRegistered(t);var n=this._stack.indexOf(e);if(-1==n)throw new Error("Cannot find existingFn");n+=1,this._stack.splice(n,0,t)},R.Pipeline.prototype.before=function(e,t){R.Pipeline.warnIfFunctionNotRegistered(t);var n=this._stack.indexOf(e);if(-1==n)throw new Error("Cannot find existingFn");this._stack.splice(n,0,t)},R.Pipeline.prototype.remove=function(e){var t=this._stack.indexOf(e);-1!=t&&this._stack.splice(t,1)},R.Pipeline.prototype.run=function(e){for(var t=this._stack.length,n=0;n1&&(se&&(n=r),s!=e);)i=n-t,r=t+Math.floor(i/2),s=this.elements[2*r];return s==e||s>e?2*r:sa?c+=2:o==a&&(t+=n[u+1]*i[c+1],u+=2,c+=2);return t},R.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},R.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),t=1,n=0;t0){var s,o=r.str.charAt(0);o in r.node.edges?s=r.node.edges[o]:(s=new R.TokenSet,r.node.edges[o]=s),1==r.str.length&&(s.final=!0),i.push({node:s,editsRemaining:r.editsRemaining,str:r.str.slice(1)})}if(0!=r.editsRemaining){if("*"in r.node.edges)var a=r.node.edges["*"];else{a=new R.TokenSet;r.node.edges["*"]=a}if(0==r.str.length&&(a.final=!0),i.push({node:a,editsRemaining:r.editsRemaining-1,str:r.str}),r.str.length>1&&i.push({node:r.node,editsRemaining:r.editsRemaining-1,str:r.str.slice(1)}),1==r.str.length&&(r.node.final=!0),r.str.length>=1){if("*"in r.node.edges)var u=r.node.edges["*"];else{u=new R.TokenSet;r.node.edges["*"]=u}1==r.str.length&&(u.final=!0),i.push({node:u,editsRemaining:r.editsRemaining-1,str:r.str.slice(1)})}if(r.str.length>1){var c,l=r.str.charAt(0),h=r.str.charAt(1);h in r.node.edges?c=r.node.edges[h]:(c=new R.TokenSet,r.node.edges[h]=c),1==r.str.length&&(c.final=!0),i.push({node:c,editsRemaining:r.editsRemaining-1,str:l+r.str.slice(2)})}}}return n},R.TokenSet.fromString=function(e){for(var t=new R.TokenSet,n=t,i=0,r=e.length;i=e;t--){var n=this.uncheckedNodes[t],i=n.child.toString();i in this.minimizedNodes?n.parent.edges[n.char]=this.minimizedNodes[i]:(n.child._str=i,this.minimizedNodes[i]=n.child),this.uncheckedNodes.pop()}},R.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},R.Index.prototype.search=function(e){return this.query((function(t){new R.QueryParser(e,t).parse()}))},R.Index.prototype.query=function(e){for(var t=new R.Query(this.fields),n=Object.create(null),i=Object.create(null),r=Object.create(null),s=Object.create(null),o=Object.create(null),a=0;a1?1:e},R.Builder.prototype.k1=function(e){this._k1=e},R.Builder.prototype.add=function(e,t){var n=e[this._ref],i=Object.keys(this._fields);this._documents[n]=t||{},this.documentCount+=1;for(var r=0;r=this.length)return R.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},R.QueryLexer.prototype.width=function(){return this.pos-this.start},R.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},R.QueryLexer.prototype.backup=function(){this.pos-=1},R.QueryLexer.prototype.acceptDigitRun=function(){var e,t;do{t=(e=this.next()).charCodeAt(0)}while(t>47&&t<58);e!=R.QueryLexer.EOS&&this.backup()},R.QueryLexer.prototype.more=function(){return this.pos1&&(e.backup(),e.emit(R.QueryLexer.TERM)),e.ignore(),e.more())return R.QueryLexer.lexText},R.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(R.QueryLexer.EDIT_DISTANCE),R.QueryLexer.lexText},R.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(R.QueryLexer.BOOST),R.QueryLexer.lexText},R.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(R.QueryLexer.TERM)},R.QueryLexer.termSeparator=R.tokenizer.separator,R.QueryLexer.lexText=function(e){for(;;){var t=e.next();if(t==R.QueryLexer.EOS)return R.QueryLexer.lexEOS;if(92!=t.charCodeAt(0)){if(":"==t)return R.QueryLexer.lexField;if("~"==t)return e.backup(),e.width()>0&&e.emit(R.QueryLexer.TERM),R.QueryLexer.lexEditDistance;if("^"==t)return e.backup(),e.width()>0&&e.emit(R.QueryLexer.TERM),R.QueryLexer.lexBoost;if("+"==t&&1===e.width())return e.emit(R.QueryLexer.PRESENCE),R.QueryLexer.lexText;if("-"==t&&1===e.width())return e.emit(R.QueryLexer.PRESENCE),R.QueryLexer.lexText;if(t.match(R.QueryLexer.termSeparator))return R.QueryLexer.lexTerm}else e.escapeCharacter()}},R.QueryParser=function(e,t){this.lexer=new R.QueryLexer(e),this.query=t,this.currentClause={},this.lexemeIdx=0},R.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=R.QueryParser.parseClause;e;)e=e(this);return this.query},R.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},R.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},R.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},R.QueryParser.parseClause=function(e){var t=e.peekLexeme();if(null!=t)switch(t.type){case R.QueryLexer.PRESENCE:return R.QueryParser.parsePresence;case R.QueryLexer.FIELD:return R.QueryParser.parseField;case R.QueryLexer.TERM:return R.QueryParser.parseTerm;default:var n="expected either a field or a term, found "+t.type;throw t.str.length>=1&&(n+=" with value '"+t.str+"'"),new R.QueryParseError(n,t.start,t.end)}},R.QueryParser.parsePresence=function(e){var t=e.consumeLexeme();if(null!=t){switch(t.str){case"-":e.currentClause.presence=R.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=R.Query.presence.REQUIRED;break;default:var n="unrecognised presence operator'"+t.str+"'";throw new R.QueryParseError(n,t.start,t.end)}var i=e.peekLexeme();if(null==i){n="expecting term or field, found nothing";throw new R.QueryParseError(n,t.start,t.end)}switch(i.type){case R.QueryLexer.FIELD:return R.QueryParser.parseField;case R.QueryLexer.TERM:return R.QueryParser.parseTerm;default:n="expecting term or field, found '"+i.type+"'";throw new R.QueryParseError(n,i.start,i.end)}}},R.QueryParser.parseField=function(e){var t=e.consumeLexeme();if(null!=t){if(-1==e.query.allFields.indexOf(t.str)){var n=e.query.allFields.map((function(e){return"'"+e+"'"})).join(", "),i="unrecognised field '"+t.str+"', possible fields: "+n;throw new R.QueryParseError(i,t.start,t.end)}e.currentClause.fields=[t.str];var r=e.peekLexeme();if(null==r){i="expecting term, found nothing";throw new R.QueryParseError(i,t.start,t.end)}if(r.type===R.QueryLexer.TERM)return R.QueryParser.parseTerm;i="expecting term, found '"+r.type+"'";throw new R.QueryParseError(i,r.start,r.end)}},R.QueryParser.parseTerm=function(e){var t=e.consumeLexeme();if(null!=t){e.currentClause.term=t.str.toLowerCase(),-1!=t.str.indexOf("*")&&(e.currentClause.usePipeline=!1);var n=e.peekLexeme();if(null!=n)switch(n.type){case R.QueryLexer.TERM:return e.nextClause(),R.QueryParser.parseTerm;case R.QueryLexer.FIELD:return e.nextClause(),R.QueryParser.parseField;case R.QueryLexer.EDIT_DISTANCE:return R.QueryParser.parseEditDistance;case R.QueryLexer.BOOST:return R.QueryParser.parseBoost;case R.QueryLexer.PRESENCE:return e.nextClause(),R.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+n.type+"'";throw new R.QueryParseError(i,n.start,n.end)}else e.nextClause()}},R.QueryParser.parseEditDistance=function(e){var t=e.consumeLexeme();if(null!=t){var n=parseInt(t.str,10);if(isNaN(n)){var i="edit distance must be numeric";throw new R.QueryParseError(i,t.start,t.end)}e.currentClause.editDistance=n;var r=e.peekLexeme();if(null!=r)switch(r.type){case R.QueryLexer.TERM:return e.nextClause(),R.QueryParser.parseTerm;case R.QueryLexer.FIELD:return e.nextClause(),R.QueryParser.parseField;case R.QueryLexer.EDIT_DISTANCE:return R.QueryParser.parseEditDistance;case R.QueryLexer.BOOST:return R.QueryParser.parseBoost;case R.QueryLexer.PRESENCE:return e.nextClause(),R.QueryParser.parsePresence;default:i="Unexpected lexeme type '"+r.type+"'";throw new R.QueryParseError(i,r.start,r.end)}else e.nextClause()}},R.QueryParser.parseBoost=function(e){var t=e.consumeLexeme();if(null!=t){var n=parseInt(t.str,10);if(isNaN(n)){var i="boost must be numeric";throw new R.QueryParseError(i,t.start,t.end)}e.currentClause.boost=n;var r=e.peekLexeme();if(null!=r)switch(r.type){case R.QueryLexer.TERM:return e.nextClause(),R.QueryParser.parseTerm;case R.QueryLexer.FIELD:return e.nextClause(),R.QueryParser.parseField;case R.QueryLexer.EDIT_DISTANCE:return R.QueryParser.parseEditDistance;case R.QueryLexer.BOOST:return R.QueryParser.parseBoost;case R.QueryLexer.PRESENCE:return e.nextClause(),R.QueryParser.parsePresence;default:i="Unexpected lexeme type '"+r.type+"'";throw new R.QueryParseError(i,r.start,r.end)}else e.nextClause()}},void 0===(r="function"==typeof(i=function(){return R})?i.call(t,n,t,e):i)||(e.exports=r)}()}}]); \ No newline at end of file diff --git a/assets/js/4611.41e855eb.js.LICENSE.txt b/assets/js/4611.70d0184b.js.LICENSE.txt similarity index 100% rename from assets/js/4611.41e855eb.js.LICENSE.txt rename to assets/js/4611.70d0184b.js.LICENSE.txt diff --git a/assets/js/4924cac4.c95f2d0e.js b/assets/js/4924cac4.c95f2d0e.js deleted file mode 100644 index 813e9046f..000000000 --- a/assets/js/4924cac4.c95f2d0e.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[5270],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),u=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},c=function(e){var t=u(e.components);return r.createElement(s.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,l=e.originalType,s=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),d=u(n),m=a,f=d["".concat(s,".").concat(m)]||d[m]||p[m]||l;return n?r.createElement(f,o(o({ref:t},c),{},{components:n})):r.createElement(f,o({ref:t},c))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=n.length,o=new Array(l);o[0]=m;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[d]="string"==typeof e?e:a,o[1]=i;for(var u=2;u{n.d(t,{Z:()=>o});var r=n(7294),a=n(6010);const l={tabItem:"tabItem_Ymn6"};function o(e){let{children:t,hidden:n,className:o}=e;return r.createElement("div",{role:"tabpanel",className:(0,a.Z)(l.tabItem,o),hidden:n},t)}},4866:(e,t,n)=>{n.d(t,{Z:()=>N});var r=n(7462),a=n(7294),l=n(6010),o=n(2466),i=n(6550),s=n(1980),u=n(7392),c=n(12);function d(e){return function(e){return a.Children.map(e,(e=>{if(!e||(0,a.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:r,default:a}}=e;return{value:t,label:n,attributes:r,default:a}}))}function p(e){const{values:t,children:n}=e;return(0,a.useMemo)((()=>{const e=t??d(n);return function(e){const t=(0,u.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[t,n])}function m(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:n}=e;const r=(0,i.k6)(),l=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,s._X)(l),(0,a.useCallback)((e=>{if(!l)return;const t=new URLSearchParams(r.location.search);t.set(l,e),r.replace({...r.location,search:t.toString()})}),[l,r])]}function h(e){const{defaultValue:t,queryString:n=!1,groupId:r}=e,l=p(e),[o,i]=(0,a.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the component requires at least one children component");if(t){if(!m({value:t,tabValues:n}))throw new Error(`Docusaurus error: The has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const r=n.find((e=>e.default))??n[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:t,tabValues:l}))),[s,u]=f({queryString:n,groupId:r}),[d,h]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[r,l]=(0,c.Nk)(n);return[r,(0,a.useCallback)((e=>{n&&l.set(e)}),[n,l])]}({groupId:r}),b=(()=>{const e=s??d;return m({value:e,tabValues:l})?e:null})();(0,a.useLayoutEffect)((()=>{b&&i(b)}),[b]);return{selectedValue:o,selectValue:(0,a.useCallback)((e=>{if(!m({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);i(e),u(e),h(e)}),[u,h,l]),tabValues:l}}var b=n(2389);const g={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};function k(e){let{className:t,block:n,selectedValue:i,selectValue:s,tabValues:u}=e;const c=[],{blockElementScrollPositionUntilNextRender:d}=(0,o.o5)(),p=e=>{const t=e.currentTarget,n=c.indexOf(t),r=u[n].value;r!==i&&(d(t),s(r))},m=e=>{let t=null;switch(e.key){case"Enter":p(e);break;case"ArrowRight":{const n=c.indexOf(e.currentTarget)+1;t=c[n]??c[0];break}case"ArrowLeft":{const n=c.indexOf(e.currentTarget)-1;t=c[n]??c[c.length-1];break}}t?.focus()};return a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":n},t)},u.map((e=>{let{value:t,label:n,attributes:o}=e;return a.createElement("li",(0,r.Z)({role:"tab",tabIndex:i===t?0:-1,"aria-selected":i===t,key:t,ref:e=>c.push(e),onKeyDown:m,onClick:p},o,{className:(0,l.Z)("tabs__item",g.tabItem,o?.className,{"tabs__item--active":i===t})}),n??t)})))}function y(e){let{lazy:t,children:n,selectedValue:r}=e;const l=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=l.find((e=>e.props.value===r));return e?(0,a.cloneElement)(e,{className:"margin-top--md"}):null}return a.createElement("div",{className:"margin-top--md"},l.map(((e,t)=>(0,a.cloneElement)(e,{key:t,hidden:e.props.value!==r}))))}function v(e){const t=h(e);return a.createElement("div",{className:(0,l.Z)("tabs-container",g.tabList)},a.createElement(k,(0,r.Z)({},e,t)),a.createElement(y,(0,r.Z)({},e,t)))}function N(e){const t=(0,b.Z)();return a.createElement(v,(0,r.Z)({key:String(t)},e))}},8760:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>f,frontMatter:()=>i,metadata:()=>u,toc:()=>d});var r=n(7462),a=(n(7294),n(3905)),l=n(4866),o=n(5162);const i={title:"http-cors"},s=void 0,u={unversionedId:"middlewares/http-cors",id:"middlewares/http-cors",title:"http-cors",description:"This middleware sets HTTP CORS headers (Access-Control-Allow-Origin, Access-Control-Allow-Headers, Access-Control-Allow-Credentials), necessary for making cross-origin requests, to the response object.",source:"@site/docs/middlewares/http-cors.md",sourceDirName:"middlewares",slug:"/middlewares/http-cors",permalink:"/docs/middlewares/http-cors",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/middlewares/http-cors.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",frontMatter:{title:"http-cors"},sidebar:"tutorialSidebar",previous:{title:"http-content-negotiation",permalink:"/docs/middlewares/http-content-negotiation"},next:{title:"http-error-handler",permalink:"/docs/middlewares/http-error-handler"}},c={},d=[{value:"Install",id:"install",level:2},{value:"Options",id:"options",level:2},{value:"Sample usage",id:"sample-usage",level:2}],p={toc:d},m="wrapper";function f(e){let{components:t,...n}=e;return(0,a.kt)(m,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"This middleware sets HTTP CORS headers (",(0,a.kt)("inlineCode",{parentName:"p"},"Access-Control-Allow-Origin"),", ",(0,a.kt)("inlineCode",{parentName:"p"},"Access-Control-Allow-Headers"),", ",(0,a.kt)("inlineCode",{parentName:"p"},"Access-Control-Allow-Credentials"),"), necessary for making cross-origin requests, to the response object."),(0,a.kt)("p",null,"Sets headers in ",(0,a.kt)("inlineCode",{parentName:"p"},"after")," and ",(0,a.kt)("inlineCode",{parentName:"p"},"onError")," phases."),(0,a.kt)("h2",{id:"install"},"Install"),(0,a.kt)("p",null,"To install this middleware you can use NPM:"),(0,a.kt)(l.Z,{groupId:"npm2yarn",mdxType:"Tabs"},(0,a.kt)(o.Z,{value:"npm",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-bash"},"npm install --save @middy/http-cors\n"))),(0,a.kt)(o.Z,{value:"yarn",label:"Yarn",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-bash"},"yarn add @middy/http-cors\n"))),(0,a.kt)(o.Z,{value:"pnpm",label:"pnpm",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-bash"},"pnpm add @middy/http-cors\n")))),(0,a.kt)("h2",{id:"options"},"Options"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"credentials")," (bool) (optional): if true, sets ",(0,a.kt)("inlineCode",{parentName:"li"},"Access-Control-Allow-Credentials")," (default ",(0,a.kt)("inlineCode",{parentName:"li"},"false"),")"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"disableBeforePreflightResponse")," (bool) (optional): if false, replies automatically to cors preflight requests. Set to true if handling the response in a custom way (default ",(0,a.kt)("inlineCode",{parentName:"li"},"true"),")"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"headers")," (string) (optional): value to put in ",(0,a.kt)("inlineCode",{parentName:"li"},"Access-Control-Allow-Headers")," (default: ",(0,a.kt)("inlineCode",{parentName:"li"},"false"),")"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"methods")," (string) (optional): value to put in ",(0,a.kt)("inlineCode",{parentName:"li"},"Access-Control-Allow-Methods")," (default: ",(0,a.kt)("inlineCode",{parentName:"li"},"false"),")"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"getOrigin")," (function(incomingOrigin:string, options)) (optional): take full control of the generating the returned origin. Defaults to using the origin or origins option."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"origin"),' (string) (optional): origin to put in the header (default: "',(0,a.kt)("inlineCode",{parentName:"li"},"*"),'")'),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"origins")," (array) (optional): An array of allowed origins. The incoming origin is matched against the list and is returned if present."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"exposeHeaders")," (string) (optional): value to put in ",(0,a.kt)("inlineCode",{parentName:"li"},"Access-Control-Expose-Headers")," (default: ",(0,a.kt)("inlineCode",{parentName:"li"},"false"),")"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"maxAge")," (string) (optional): value to put in Access-Control-Max-Age header (default: ",(0,a.kt)("inlineCode",{parentName:"li"},"null"),")"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"requestHeaders")," (string) (optional): value to put in ",(0,a.kt)("inlineCode",{parentName:"li"},"Access-Control-Request-Headers")," (default: ",(0,a.kt)("inlineCode",{parentName:"li"},"false"),")"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"requestMethods")," (string) (optional): value to put in ",(0,a.kt)("inlineCode",{parentName:"li"},"Access-Control-Request-Methods")," (default: ",(0,a.kt)("inlineCode",{parentName:"li"},"false"),")"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"cacheControl")," (string) (optional): value to put in Cache-Control header on pre-flight (OPTIONS) requests (default: ",(0,a.kt)("inlineCode",{parentName:"li"},"null"),")")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\nimport httpErrorHandler from '@middy/http-error-handler'\nimport cors from '@middy/http-cors'\n\nconst handler = middy((event, context) => {\n throw new createError.UnprocessableEntity()\n})\nhandler.use(httpErrorHandler()).use(cors())\n\n// when Lambda runs the handler...\nhandler({}, {}, (_, response) => {\n t.is(response.headers['Access-Control-Allow-Origin'], '*')\n t.deepEqual(response, {\n statusCode: 422,\n body: 'Unprocessable Entity'\n })\n})\n")),(0,a.kt)("h2",{id:"sample-usage"},"Sample usage"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\nimport cors from '@middy/http-cors'\n\nconst handler = middy((event, context) => {\n return {}\n})\n\nhandler.use(cors())\n\n// when Lambda runs the handler...\nhandler({}, {}, (_, response) => {\n t.is(response.headers['Access-Control-Allow-Origin'], '*')\n})\n")))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4924cac4.cf1fb87d.js b/assets/js/4924cac4.cf1fb87d.js new file mode 100644 index 000000000..3eb6e41ff --- /dev/null +++ b/assets/js/4924cac4.cf1fb87d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[5270],{6535:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>d,contentTitle:()=>i,default:()=>p,frontMatter:()=>a,metadata:()=>c,toc:()=>u});var t=r(5893),s=r(1151),l=r(4866),o=r(5162);const a={title:"http-cors"},i=void 0,c={id:"middlewares/http-cors",title:"http-cors",description:"This middleware sets HTTP CORS headers (Access-Control-Allow-Origin, Access-Control-Allow-Headers, Access-Control-Allow-Credentials), necessary for making cross-origin requests, to the response object.",source:"@site/docs/middlewares/http-cors.md",sourceDirName:"middlewares",slug:"/middlewares/http-cors",permalink:"/docs/middlewares/http-cors",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/middlewares/http-cors.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",frontMatter:{title:"http-cors"},sidebar:"tutorialSidebar",previous:{title:"http-content-negotiation",permalink:"/docs/middlewares/http-content-negotiation"},next:{title:"http-error-handler",permalink:"/docs/middlewares/http-error-handler"}},d={},u=[{value:"Install",id:"install",level:2},{value:"Options",id:"options",level:2},{value:"Sample usage",id:"sample-usage",level:2}];function h(e){const n={code:"code",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,s.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(n.p,{children:["This middleware sets HTTP CORS headers (",(0,t.jsx)(n.code,{children:"Access-Control-Allow-Origin"}),", ",(0,t.jsx)(n.code,{children:"Access-Control-Allow-Headers"}),", ",(0,t.jsx)(n.code,{children:"Access-Control-Allow-Credentials"}),"), necessary for making cross-origin requests, to the response object."]}),"\n",(0,t.jsxs)(n.p,{children:["Sets headers in ",(0,t.jsx)(n.code,{children:"after"})," and ",(0,t.jsx)(n.code,{children:"onError"})," phases."]}),"\n",(0,t.jsx)(n.h2,{id:"install",children:"Install"}),"\n",(0,t.jsx)(n.p,{children:"To install this middleware you can use NPM:"}),"\n",(0,t.jsxs)(l.Z,{groupId:"npm2yarn",children:[(0,t.jsx)(o.Z,{value:"npm",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"npm install --save @middy/http-cors\n"})})}),(0,t.jsx)(o.Z,{value:"yarn",label:"Yarn",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"yarn add @middy/http-cors\n"})})}),(0,t.jsx)(o.Z,{value:"pnpm",label:"pnpm",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"pnpm add @middy/http-cors\n"})})})]}),"\n",(0,t.jsx)(n.h2,{id:"options",children:"Options"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"credentials"})," (bool) (optional): if true, sets ",(0,t.jsx)(n.code,{children:"Access-Control-Allow-Credentials"})," (default ",(0,t.jsx)(n.code,{children:"false"}),")"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"disableBeforePreflightResponse"})," (bool) (optional): if false, replies automatically to cors preflight requests. Set to true if handling the response in a custom way (default ",(0,t.jsx)(n.code,{children:"true"}),")"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"headers"})," (string) (optional): value to put in ",(0,t.jsx)(n.code,{children:"Access-Control-Allow-Headers"})," (default: ",(0,t.jsx)(n.code,{children:"false"}),")"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"methods"})," (string) (optional): value to put in ",(0,t.jsx)(n.code,{children:"Access-Control-Allow-Methods"})," (default: ",(0,t.jsx)(n.code,{children:"false"}),")"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"getOrigin"})," (function(incomingOrigin",":string",", options)) (optional): take full control of the generating the returned origin. Defaults to using the origin or origins option."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"origin"}),' (string) (optional): origin to put in the header (default: "',(0,t.jsx)(n.code,{children:"*"}),'")']}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"origins"})," (array) (optional): An array of allowed origins. The incoming origin is matched against the list and is returned if present."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"exposeHeaders"})," (string) (optional): value to put in ",(0,t.jsx)(n.code,{children:"Access-Control-Expose-Headers"})," (default: ",(0,t.jsx)(n.code,{children:"false"}),")"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"maxAge"})," (string) (optional): value to put in Access-Control-Max-Age header (default: ",(0,t.jsx)(n.code,{children:"null"}),")"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"requestHeaders"})," (string) (optional): value to put in ",(0,t.jsx)(n.code,{children:"Access-Control-Request-Headers"})," (default: ",(0,t.jsx)(n.code,{children:"false"}),")"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"requestMethods"})," (string) (optional): value to put in ",(0,t.jsx)(n.code,{children:"Access-Control-Request-Methods"})," (default: ",(0,t.jsx)(n.code,{children:"false"}),")"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"cacheControl"})," (string) (optional): value to put in Cache-Control header on pre-flight (OPTIONS) requests (default: ",(0,t.jsx)(n.code,{children:"null"}),")"]}),"\n"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-javascript",children:"import middy from '@middy/core'\nimport httpErrorHandler from '@middy/http-error-handler'\nimport cors from '@middy/http-cors'\n\nconst lambdaHandler = (event, context) => {\n throw new createError.UnprocessableEntity()\n}\nexport const handler = middy()\n .use(httpErrorHandler())\n .use(cors())\n .handler(lambdaHandler)\n\n// when Lambda runs the handler...\nhandler({}, {}, (_, response) => {\n t.is(response.headers['Access-Control-Allow-Origin'], '*')\n t.deepEqual(response, {\n statusCode: 422,\n body: 'Unprocessable Entity'\n })\n})\n"})}),"\n",(0,t.jsx)(n.h2,{id:"sample-usage",children:"Sample usage"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-javascript",children:"import middy from '@middy/core'\nimport cors from '@middy/http-cors'\n\nconst lambdaHandler = (event, context) => {\n return {}\n}\nexport const handler = middy().use(cors()).handler(lambdaHandler)\n\n// when Lambda runs the handler...\nhandler({}, {}, (_, response) => {\n t.is(response.headers['Access-Control-Allow-Origin'], '*')\n})\n"})})]})}function p(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(h,{...e})}):h(e)}},5162:(e,n,r)=>{r.d(n,{Z:()=>o});r(7294);var t=r(6010);const s={tabItem:"tabItem_Ymn6"};var l=r(5893);function o(e){let{children:n,hidden:r,className:o}=e;return(0,l.jsx)("div",{role:"tabpanel",className:(0,t.Z)(s.tabItem,o),hidden:r,children:n})}},4866:(e,n,r)=>{r.d(n,{Z:()=>w});var t=r(7294),s=r(6010),l=r(2466),o=r(6550),a=r(469),i=r(1980),c=r(7392),d=r(12);function u(e){return t.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,t.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function h(e){const{values:n,children:r}=e;return(0,t.useMemo)((()=>{const e=n??function(e){return u(e).map((e=>{let{props:{value:n,label:r,attributes:t,default:s}}=e;return{value:n,label:r,attributes:t,default:s}}))}(r);return function(e){const n=(0,c.l)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[n,r])}function p(e){let{value:n,tabValues:r}=e;return r.some((e=>e.value===n))}function m(e){let{queryString:n=!1,groupId:r}=e;const s=(0,o.k6)(),l=function(e){let{queryString:n=!1,groupId:r}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!r)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return r??null}({queryString:n,groupId:r});return[(0,i._X)(l),(0,t.useCallback)((e=>{if(!l)return;const n=new URLSearchParams(s.location.search);n.set(l,e),s.replace({...s.location,search:n.toString()})}),[l,s])]}function f(e){const{defaultValue:n,queryString:r=!1,groupId:s}=e,l=h(e),[o,i]=(0,t.useState)((()=>function(e){let{defaultValue:n,tabValues:r}=e;if(0===r.length)throw new Error("Docusaurus error: the component requires at least one children component");if(n){if(!p({value:n,tabValues:r}))throw new Error(`Docusaurus error: The has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${r.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const t=r.find((e=>e.default))??r[0];if(!t)throw new Error("Unexpected error: 0 tabValues");return t.value}({defaultValue:n,tabValues:l}))),[c,u]=m({queryString:r,groupId:s}),[f,x]=function(e){let{groupId:n}=e;const r=function(e){return e?`docusaurus.tab.${e}`:null}(n),[s,l]=(0,d.Nk)(r);return[s,(0,t.useCallback)((e=>{r&&l.set(e)}),[r,l])]}({groupId:s}),g=(()=>{const e=c??f;return p({value:e,tabValues:l})?e:null})();(0,a.Z)((()=>{g&&i(g)}),[g]);return{selectedValue:o,selectValue:(0,t.useCallback)((e=>{if(!p({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);i(e),u(e),x(e)}),[u,x,l]),tabValues:l}}var x=r(2389);const g={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var b=r(5893);function j(e){let{className:n,block:r,selectedValue:t,selectValue:o,tabValues:a}=e;const i=[],{blockElementScrollPositionUntilNextRender:c}=(0,l.o5)(),d=e=>{const n=e.currentTarget,r=i.indexOf(n),s=a[r].value;s!==t&&(c(n),o(s))},u=e=>{let n=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{const r=i.indexOf(e.currentTarget)+1;n=i[r]??i[0];break}case"ArrowLeft":{const r=i.indexOf(e.currentTarget)-1;n=i[r]??i[i.length-1];break}}n?.focus()};return(0,b.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,s.Z)("tabs",{"tabs--block":r},n),children:a.map((e=>{let{value:n,label:r,attributes:l}=e;return(0,b.jsx)("li",{role:"tab",tabIndex:t===n?0:-1,"aria-selected":t===n,ref:e=>i.push(e),onKeyDown:u,onClick:d,...l,className:(0,s.Z)("tabs__item",g.tabItem,l?.className,{"tabs__item--active":t===n}),children:r??n},n)}))})}function v(e){let{lazy:n,children:r,selectedValue:s}=e;const l=(Array.isArray(r)?r:[r]).filter(Boolean);if(n){const e=l.find((e=>e.props.value===s));return e?(0,t.cloneElement)(e,{className:"margin-top--md"}):null}return(0,b.jsx)("div",{className:"margin-top--md",children:l.map(((e,n)=>(0,t.cloneElement)(e,{key:n,hidden:e.props.value!==s})))})}function y(e){const n=f(e);return(0,b.jsxs)("div",{className:(0,s.Z)("tabs-container",g.tabList),children:[(0,b.jsx)(j,{...e,...n}),(0,b.jsx)(v,{...e,...n})]})}function w(e){const n=(0,x.Z)();return(0,b.jsx)(y,{...e,children:u(e.children)},String(n))}},1151:(e,n,r)=>{r.d(n,{Z:()=>a,a:()=>o});var t=r(7294);const s={},l=t.createContext(s);function o(e){const n=t.useContext(l);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),t.createElement(l.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/49fe1afb.02921dd7.js b/assets/js/49fe1afb.02921dd7.js deleted file mode 100644 index 3288da439..000000000 --- a/assets/js/49fe1afb.02921dd7.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[9076],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>u});var n=r(7294);function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var p=n.createContext({}),d=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},s=function(e){var t=d(e.components);return n.createElement(p.Provider,{value:t},e.children)},l="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,i=e.mdxType,o=e.originalType,p=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),l=d(r),y=i,u=l["".concat(p,".").concat(y)]||l[y]||m[y]||o;return r?n.createElement(u,a(a({ref:t},s),{},{components:r})):n.createElement(u,a({ref:t},s))}));function u(e,t){var r=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var o=r.length,a=new Array(o);a[0]=y;var c={};for(var p in t)hasOwnProperty.call(t,p)&&(c[p]=t[p]);c.originalType=e,c[l]="string"==typeof e?e:i,a[1]=c;for(var d=2;d{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>a,default:()=>m,frontMatter:()=>o,metadata:()=>c,toc:()=>d});var n=r(7462),i=(r(7294),r(3905));const o={title:"With TypeScript",position:7},a=void 0,c={unversionedId:"writing-middlewares/with-typescript",id:"writing-middlewares/with-typescript",title:"With TypeScript",description:"here's an example of how you can write a custom middleware for a Lambda receiving events from API Gateway:",source:"@site/docs/writing-middlewares/07-with-typescript.md",sourceDirName:"writing-middlewares",slug:"/writing-middlewares/with-typescript",permalink:"/docs/writing-middlewares/with-typescript",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/writing-middlewares/07-with-typescript.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",sidebarPosition:7,frontMatter:{title:"With TypeScript",position:7},sidebar:"tutorialSidebar",previous:{title:"More Examples",permalink:"/docs/writing-middlewares/more-examples"},next:{title:"Routers",permalink:"/docs/category/routers"}},p={},d=[],s={toc:d},l="wrapper";function m(e){let{components:t,...r}=e;return(0,i.kt)(l,(0,n.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"here's an example of how you can write a custom middleware for a Lambda receiving events from API Gateway:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-typescript"},"import middy from '@middy/core'\nimport { APIGatewayProxyEvent, APIGatewayProxyResult } from 'aws-lambda'\n\nconst middleware = (): middy.MiddlewareObj => {\n const before: middy.MiddlewareFn = async (\n request\n ): Promise => {\n // Your middleware logic\n }\n\n const after: middy.MiddlewareFn = async (\n request\n ): Promise => {\n // Your middleware logic\n }\n\n return {\n before,\n after\n }\n}\n\nexport default middleware\n")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Note"),": The Middy core team does not use TypeScript often and we can't certainly claim that we are TypeScript experts. We tried our best to come up\nwith type definitions that should give TypeScript users a good experience. There is certainly room for improvement, so we would be more than happy to receive contributions \ud83d\ude0a"),(0,i.kt)("p",null,"See ",(0,i.kt)("inlineCode",{parentName:"p"},"devDependencies")," for each middleware for list of dependencies that may be required with transpiling TypeScript."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/49fe1afb.0a61e2bb.js b/assets/js/49fe1afb.0a61e2bb.js new file mode 100644 index 000000000..32901ebe9 --- /dev/null +++ b/assets/js/49fe1afb.0a61e2bb.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[9076],{4451:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>d,contentTitle:()=>a,default:()=>l,frontMatter:()=>o,metadata:()=>s,toc:()=>c});var i=r(5893),n=r(1151);const o={title:"With TypeScript",position:7},a=void 0,s={id:"writing-middlewares/with-typescript",title:"With TypeScript",description:"here's an example of how you can write a custom middleware for a Lambda receiving events from API Gateway:",source:"@site/docs/writing-middlewares/07-with-typescript.md",sourceDirName:"writing-middlewares",slug:"/writing-middlewares/with-typescript",permalink:"/docs/writing-middlewares/with-typescript",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/writing-middlewares/07-with-typescript.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",sidebarPosition:7,frontMatter:{title:"With TypeScript",position:7},sidebar:"tutorialSidebar",previous:{title:"More Examples",permalink:"/docs/writing-middlewares/more-examples"},next:{title:"Routers",permalink:"/docs/category/routers"}},d={},c=[];function p(e){const t={code:"code",p:"p",pre:"pre",strong:"strong",...(0,n.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.p,{children:"here's an example of how you can write a custom middleware for a Lambda receiving events from API Gateway:"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-typescript",children:"import middy from '@middy/core'\nimport { APIGatewayProxyEvent, APIGatewayProxyResult } from 'aws-lambda'\n\nconst middleware = (): middy.MiddlewareObj => {\n const before: middy.MiddlewareFn = async (\n request\n ): Promise => {\n // Your middleware logic\n }\n\n const after: middy.MiddlewareFn = async (\n request\n ): Promise => {\n // Your middleware logic\n }\n\n return {\n before,\n after\n }\n}\n\nexport default middleware\n"})}),"\n",(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.strong,{children:"Note"}),": The Middy core team does not use TypeScript often and we can't certainly claim that we are TypeScript experts. We tried our best to come up\nwith type definitions that should give TypeScript users a good experience. There is certainly room for improvement, so we would be more than happy to receive contributions \ud83d\ude0a"]}),"\n",(0,i.jsxs)(t.p,{children:["See ",(0,i.jsx)(t.code,{children:"devDependencies"})," for each middleware for list of dependencies that may be required with transpiling TypeScript."]})]})}function l(e={}){const{wrapper:t}={...(0,n.a)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(p,{...e})}):p(e)}},1151:(e,t,r)=>{r.d(t,{Z:()=>s,a:()=>a});var i=r(7294);const n={},o=i.createContext(n);function a(e){const t=i.useContext(o);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:a(e.components),i.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/4f3a9363.4298b16b.js b/assets/js/4f3a9363.4298b16b.js new file mode 100644 index 000000000..7258efedf --- /dev/null +++ b/assets/js/4f3a9363.4298b16b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[8852],{3238:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>m,frontMatter:()=>s,metadata:()=>d,toc:()=>r});var o=n(5893),i=n(1151);const s={title:"DocumentDB"},a=void 0,d={id:"events/documentdb",title:"DocumentDB",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/events/documentdb.md",sourceDirName:"events",slug:"/events/documentdb",permalink:"/docs/events/documentdb",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/events/documentdb.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",frontMatter:{title:"DocumentDB"},sidebar:"tutorialSidebar",previous:{title:"Connect",permalink:"/docs/events/connect"},next:{title:"DynamoDB",permalink:"/docs/events/dynamodb"}},c={},r=[{value:"AWS Documentation",id:"aws-documentation",level:2},{value:"Example",id:"example",level:2}];function l(e){const t={a:"a",admonition:"admonition",code:"code",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,i.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.admonition,{type:"caution",children:(0,o.jsx)(t.p,{children:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub."})}),"\n",(0,o.jsx)(t.h2,{id:"aws-documentation",children:"AWS Documentation"}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsx)(t.li,{children:(0,o.jsx)(t.a,{href:"https://docs.aws.amazon.com/lambda/latest/dg/with-documentdb.html",children:"Using AWS Lambda with Amazon DocumentDB"})}),"\n"]}),"\n",(0,o.jsx)(t.h2,{id:"example",children:"Example"}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-javascript",children:"import middy from '@middy/core'\n\nexport const handler = middy().handler((event, context, { signal }) => {\n // ...\n})\n"})})]})}function m(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(l,{...e})}):l(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>d,a:()=>a});var o=n(7294);const i={},s=o.createContext(i);function a(e){const t=o.useContext(s);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function d(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),o.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/4f3a9363.c52828e7.js b/assets/js/4f3a9363.c52828e7.js deleted file mode 100644 index 13b034744..000000000 --- a/assets/js/4f3a9363.c52828e7.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[8852],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>f});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=r.createContext({}),s=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=s(e.components);return r.createElement(l.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),p=s(n),m=o,f=p["".concat(l,".").concat(m)]||p[m]||u[m]||a;return n?r.createElement(f,i(i({ref:t},d),{},{components:n})):r.createElement(f,i({ref:t},d))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=m;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[p]="string"==typeof e?e:o,i[1]=c;for(var s=2;s{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>u,frontMatter:()=>a,metadata:()=>c,toc:()=>s});var r=n(7462),o=(n(7294),n(3905));const a={title:"DocumentDB"},i=void 0,c={unversionedId:"events/documentdb",id:"events/documentdb",title:"DocumentDB",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/events/documentdb.md",sourceDirName:"events",slug:"/events/documentdb",permalink:"/docs/events/documentdb",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/events/documentdb.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",frontMatter:{title:"DocumentDB"},sidebar:"tutorialSidebar",previous:{title:"Connect",permalink:"/docs/events/connect"},next:{title:"DynamoDB",permalink:"/docs/events/dynamodb"}},l={},s=[{value:"AWS Documentation",id:"aws-documentation",level:2},{value:"Example",id:"example",level:2}],d={toc:s},p="wrapper";function u(e){let{components:t,...n}=e;return(0,o.kt)(p,(0,r.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("admonition",{type:"caution"},(0,o.kt)("p",{parentName:"admonition"},"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.")),(0,o.kt)("h2",{id:"aws-documentation"},"AWS Documentation"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://docs.aws.amazon.com/lambda/latest/dg/with-documentdb.html"},"Using AWS Lambda with Amazon DocumentDB"))),(0,o.kt)("h2",{id:"example"},"Example"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\n\nexport const handler = middy().handler((event, context, { signal }) => {\n // ...\n})\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5018e04c.8b337323.js b/assets/js/5018e04c.8b337323.js deleted file mode 100644 index a38b1fef6..000000000 --- a/assets/js/5018e04c.8b337323.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[9862],{3905:(e,t,r)=>{r.d(t,{Zo:()=>l,kt:()=>m});var n=r(7294);function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var c=n.createContext({}),s=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},l=function(e){var t=s(e.components);return n.createElement(c.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,i=e.mdxType,o=e.originalType,c=e.parentName,l=p(e,["components","mdxType","originalType","parentName"]),d=s(r),y=i,m=d["".concat(c,".").concat(y)]||d[y]||u[y]||o;return r?n.createElement(m,a(a({ref:t},l),{},{components:r})):n.createElement(m,a({ref:t},l))}));function m(e,t){var r=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var o=r.length,a=new Array(o);a[0]=y;var p={};for(var c in t)hasOwnProperty.call(t,c)&&(p[c]=t[c]);p.originalType=e,p[d]="string"==typeof e?e:i,a[1]=p;for(var s=2;s{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>u,frontMatter:()=>o,metadata:()=>p,toc:()=>s});var n=r(7462),i=(r(7294),r(3905));const o={title:"Use with TypeScript",position:6},a=void 0,p={unversionedId:"intro/typescript",id:"intro/typescript",title:"Use with TypeScript",description:"Middy can be used with TypeScript with typings built in in every official package.",source:"@site/docs/intro/06-typescript.md",sourceDirName:"intro",slug:"/intro/typescript",permalink:"/docs/intro/typescript",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/intro/06-typescript.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",sidebarPosition:6,frontMatter:{title:"Use with TypeScript",position:6},sidebar:"tutorialSidebar",previous:{title:"Testing",permalink:"/docs/intro/testing"},next:{title:"Hooks",permalink:"/docs/intro/hooks"}},c={},s=[],l={toc:s},d="wrapper";function u(e){let{components:t,...r}=e;return(0,i.kt)(d,(0,n.Z)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"Middy can be used with TypeScript with typings built in in every official package."),(0,i.kt)("p",null,"Here's an example of how you might be using Middy with TypeScript for a Lambda receiving events from API Gateway:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-typescript"},"import middy from '@middy/core'\nimport { APIGatewayProxyEvent, APIGatewayProxyResult } from 'aws-lambda'\n\nasync function lambdaHandler (event: APIGatewayProxyEvent): Promise {\n // the returned response will be checked against the type `APIGatewayProxyResult`\n return {\n statusCode: 200,\n body: `Hello from ${event.path}`\n }\n}\n\nlet handler = middy(lambdaHandler)\n .use(someMiddleware)\n .use(someOtherMiddleware)\n\nexport default handler\n")),(0,i.kt)("p",null,"You can also ",(0,i.kt)("a",{parentName:"p",href:"/docs/writing-middlewares/intro"},"write custom middlewares with TypeScript"),"."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5018e04c.ea56202a.js b/assets/js/5018e04c.ea56202a.js new file mode 100644 index 000000000..f60f5a664 --- /dev/null +++ b/assets/js/5018e04c.ea56202a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[9862],{2258:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>a,default:()=>l,frontMatter:()=>s,metadata:()=>o,toc:()=>c});var i=n(5893),r=n(1151);const s={title:"Use with TypeScript",position:6},a=void 0,o={id:"intro/typescript",title:"Use with TypeScript",description:"Middy can be used with TypeScript with typings built in in every official package.",source:"@site/docs/intro/06-typescript.md",sourceDirName:"intro",slug:"/intro/typescript",permalink:"/docs/intro/typescript",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/intro/06-typescript.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",sidebarPosition:6,frontMatter:{title:"Use with TypeScript",position:6},sidebar:"tutorialSidebar",previous:{title:"Testing",permalink:"/docs/intro/testing"},next:{title:"Hooks",permalink:"/docs/intro/hooks"}},d={},c=[];function p(e){const t={a:"a",code:"code",em:"em",p:"p",pre:"pre",...(0,r.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.p,{children:"Middy can be used with TypeScript with typings built in in every official package."}),"\n",(0,i.jsx)(t.p,{children:"Here's an example of how you might be using Middy with TypeScript for a Lambda receiving events from API Gateway and fetching secrets from Secrets Manager:"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-typescript",children:"import middy from '@middy/core'\nimport secretsManager from '@middy/secrets-manager'\nimport { APIGatewayProxyEvent, APIGatewayProxyResult } from 'aws-lambda'\n\nexport const handler = middy()\n .use(\n secretsManager({\n fetchData: {\n apiToken: 'dev/api_token'\n },\n awsClientOptions: {\n region: 'us-east-1'\n },\n setToContext: true\n })\n )\n .handler(async (req, context) => {\n // The context type gets augmented here by the secretsManager middleware.\n // This is just an example, obviously don't ever log your secret in real life!\n console.log(context.apiToken)\n return {\n statusCode: 200,\n body: JSON.stringify({\n message: `Hello from ${event.path}`,\n req\n }),\n }\n })\n"})}),"\n",(0,i.jsxs)(t.p,{children:["Note that when using TypeScript, you should use what we call the ",(0,i.jsx)(t.em,{children:"Middleware-first, Handler-last"})," approach, which means that you should always call the ",(0,i.jsx)(t.code,{children:"handler"})," method last, after you have attached all the middlewares you need."]}),"\n",(0,i.jsxs)(t.p,{children:["This approach makes sure that, as you attach middlewares, the type system understands how the ",(0,i.jsx)(t.code,{children:"event"})," and the ",(0,i.jsx)(t.code,{children:"context"})," arguments are augmented by the various middlewares and inside your handler code you can have a nice type-checking and auto-completion experience."]}),"\n",(0,i.jsxs)(t.p,{children:["You can also ",(0,i.jsx)(t.a,{href:"/docs/writing-middlewares/intro",children:"write custom middlewares with TypeScript"}),"."]})]})}function l(e={}){const{wrapper:t}={...(0,r.a)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(p,{...e})}):p(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>o,a:()=>a});var i=n(7294);const r={},s=i.createContext(r);function a(e){const t=i.useContext(s);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:a(e.components),i.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/52912c74.167c51c0.js b/assets/js/52912c74.167c51c0.js new file mode 100644 index 000000000..f9611dc19 --- /dev/null +++ b/assets/js/52912c74.167c51c0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[7452],{949:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>r,default:()=>u,frontMatter:()=>s,metadata:()=>a,toc:()=>c});var i=n(5893),o=n(1151);const s={title:"EventBridge"},r=void 0,a={id:"events/event-bridge",title:"EventBridge",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/events/event-bridge.md",sourceDirName:"events",slug:"/events/event-bridge",permalink:"/docs/events/event-bridge",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/events/event-bridge.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",frontMatter:{title:"EventBridge"},sidebar:"tutorialSidebar",previous:{title:"EC2",permalink:"/docs/events/ec2"},next:{title:"Function URL",permalink:"/docs/events/function-url"}},d={},c=[{value:"AWS Documentation",id:"aws-documentation",level:2},{value:"Example",id:"example",level:2}];function l(e){const t={a:"a",admonition:"admonition",code:"code",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,o.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.admonition,{type:"caution",children:(0,i.jsx)(t.p,{children:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub."})}),"\n",(0,i.jsx)(t.h2,{id:"aws-documentation",children:"AWS Documentation"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://docs.aws.amazon.com/lambda/latest/dg/services-cloudwatchevents.html",children:"Using AWS Lambda with Amazon EventBridge (CloudWatch Events)"})}),"\n"]}),"\n",(0,i.jsx)(t.h2,{id:"example",children:"Example"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-javascript",children:"import middy from '@middy/core'\n\nexport const handler = middy().handler((event, context, { signal }) => {\n // ...\n})\n"})})]})}function u(e={}){const{wrapper:t}={...(0,o.a)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(l,{...e})}):l(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>a,a:()=>r});var i=n(7294);const o={},s=i.createContext(o);function r(e){const t=i.useContext(s);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:r(e.components),i.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/52912c74.ef791cbf.js b/assets/js/52912c74.ef791cbf.js deleted file mode 100644 index 31f7ff806..000000000 --- a/assets/js/52912c74.ef791cbf.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[7452],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>v});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=r.createContext({}),s=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=s(e.components);return r.createElement(l.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),d=s(n),m=o,v=d["".concat(l,".").concat(m)]||d[m]||u[m]||a;return n?r.createElement(v,i(i({ref:t},p),{},{components:n})):r.createElement(v,i({ref:t},p))}));function v(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=m;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[d]="string"==typeof e?e:o,i[1]=c;for(var s=2;s{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>u,frontMatter:()=>a,metadata:()=>c,toc:()=>s});var r=n(7462),o=(n(7294),n(3905));const a={title:"EventBridge"},i=void 0,c={unversionedId:"events/event-bridge",id:"events/event-bridge",title:"EventBridge",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/events/event-bridge.md",sourceDirName:"events",slug:"/events/event-bridge",permalink:"/docs/events/event-bridge",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/events/event-bridge.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",frontMatter:{title:"EventBridge"},sidebar:"tutorialSidebar",previous:{title:"EC2",permalink:"/docs/events/ec2"},next:{title:"Function URL",permalink:"/docs/events/function-url"}},l={},s=[{value:"AWS Documentation",id:"aws-documentation",level:2},{value:"Example",id:"example",level:2}],p={toc:s},d="wrapper";function u(e){let{components:t,...n}=e;return(0,o.kt)(d,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("admonition",{type:"caution"},(0,o.kt)("p",{parentName:"admonition"},"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.")),(0,o.kt)("h2",{id:"aws-documentation"},"AWS Documentation"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://docs.aws.amazon.com/lambda/latest/dg/services-cloudwatchevents.html"},"Using AWS Lambda with Amazon EventBridge (CloudWatch Events)"))),(0,o.kt)("h2",{id:"example"},"Example"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\n\nexport const handler = middy().handler((event, context, { signal }) => {\n // ...\n})\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/53f1e98a.4aba1086.js b/assets/js/53f1e98a.4aba1086.js new file mode 100644 index 000000000..2658f6146 --- /dev/null +++ b/assets/js/53f1e98a.4aba1086.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[2469],{3099:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>a,default:()=>m,frontMatter:()=>o,metadata:()=>r,toc:()=>c});var s=n(5893),i=n(1151);const o={title:"S3"},a=void 0,r={id:"events/s3",title:"S3",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/events/s3.md",sourceDirName:"events",slug:"/events/s3",permalink:"/docs/events/s3",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/events/s3.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",frontMatter:{title:"S3"},sidebar:"tutorialSidebar",previous:{title:"S3 Object",permalink:"/docs/events/s3-object"},next:{title:"Secrets Manager",permalink:"/docs/events/secrets-manager"}},d={},c=[{value:"AWS Documentation",id:"aws-documentation",level:2},{value:"Example",id:"example",level:2}];function l(e){const t={a:"a",admonition:"admonition",code:"code",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,i.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.admonition,{type:"caution",children:(0,s.jsx)(t.p,{children:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub."})}),"\n",(0,s.jsx)(t.h2,{id:"aws-documentation",children:"AWS Documentation"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://docs.aws.amazon.com/lambda/latest/dg/with-s3.html",children:"Using AWS Lambda with Amazon S3"})}),"\n"]}),"\n",(0,s.jsx)(t.h2,{id:"example",children:"Example"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-javascript",children:"import middy from '@middy/core'\nimport eventNormalizerMiddleware from '@middy/event-normalizer'\n\nexport const handler = middy()\n .use(eventNormalizerMiddleware()) // S3 -> SNS -> SQS -> Lambda\n .handler((event, context, {signal}) => {\n // ...\n })\n"})})]})}function m(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(l,{...e})}):l(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>r,a:()=>a});var s=n(7294);const i={},o=s.createContext(i);function a(e){const t=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),s.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/53f1e98a.d91ee413.js b/assets/js/53f1e98a.d91ee413.js deleted file mode 100644 index bc464aa79..000000000 --- a/assets/js/53f1e98a.d91ee413.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[2469],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>f});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),c=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=c(e.components);return r.createElement(l.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),d=c(n),u=a,f=d["".concat(l,".").concat(u)]||d[u]||m[u]||o;return n?r.createElement(f,i(i({ref:t},p),{},{components:n})):r.createElement(f,i({ref:t},p))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=u;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[d]="string"==typeof e?e:a,i[1]=s;for(var c=2;c{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>s,toc:()=>c});var r=n(7462),a=(n(7294),n(3905));const o={title:"S3"},i=void 0,s={unversionedId:"events/s3",id:"events/s3",title:"S3",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/events/s3.md",sourceDirName:"events",slug:"/events/s3",permalink:"/docs/events/s3",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/events/s3.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",frontMatter:{title:"S3"},sidebar:"tutorialSidebar",previous:{title:"S3 Object",permalink:"/docs/events/s3-object"},next:{title:"Secrets Manager",permalink:"/docs/events/secrets-manager"}},l={},c=[{value:"AWS Documentation",id:"aws-documentation",level:2},{value:"Example",id:"example",level:2}],p={toc:c},d="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(d,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.")),(0,a.kt)("h2",{id:"aws-documentation"},"AWS Documentation"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://docs.aws.amazon.com/lambda/latest/dg/with-s3.html"},"Using AWS Lambda with Amazon S3"))),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\nimport eventNormalizerMiddleware from '@middy/event-normalizer'\n\nexport const handler = middy()\n .use(eventNormalizerMiddleware()) // S3 -> SNS -> SQS -> Lambda\n .handler((event, context, {signal}) => {\n // ...\n })\n")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/54ed1cf2.5990bf7a.js b/assets/js/54ed1cf2.5990bf7a.js new file mode 100644 index 000000000..383de7145 --- /dev/null +++ b/assets/js/54ed1cf2.5990bf7a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[6827],{5837:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>a,default:()=>h,frontMatter:()=>s,metadata:()=>i,toc:()=>l});var r=n(5893),o=n(1151);const s={title:"Profiling",sidebar_position:7},a=void 0,i={id:"best-practices/profiling",title:"Profiling",description:"Inside of @middy/core we've added some hook before and after every middleware called, the handler and from start to end of it's execution.",source:"@site/docs/best-practices/07-profiling.md",sourceDirName:"best-practices",slug:"/best-practices/profiling",permalink:"/docs/best-practices/profiling",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/best-practices/07-profiling.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",sidebarPosition:7,frontMatter:{title:"Profiling",sidebar_position:7},sidebar:"tutorialSidebar",previous:{title:"Small node_modules",permalink:"/docs/best-practices/small-node-modules"},next:{title:"FAQ",permalink:"/docs/faq"}},d={},l=[{value:"Time",id:"time",level:2},{value:"Memory",id:"memory",level:2}];function c(e){const t={code:"code",h2:"h2",p:"p",pre:"pre",...(0,o.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(t.p,{children:["Inside of ",(0,r.jsx)(t.code,{children:"@middy/core"})," we've added some hook before and after every middleware called, the handler and from start to end of it's execution."]}),"\n",(0,r.jsx)(t.h2,{id:"time",children:"Time"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-javascript",children:"\nconst defaults = {\n logger: console.log,\n enabled: true\n}\n\nconst timePlugin = (opts = {}) => {\n const { logger, enabled } = { ...defaults, ...opts }\n const store = {}\n\n const start = (id) => {\n store[id] = process.hrtime.bigint()\n }\n const stop = (id) => {\n if (!enabled) return\n logger(id, Number.parseInt((process.hrtime.bigint() - store[id]).toString()) / 1000000, 'ms')\n }\n\n // Only run during cold start\n const beforePrefetch = () => start('total')\n const requestStart = () => {\n if (!store.init) {\n store.init = store.total\n stop('init')\n } else {\n start('total')\n }\n }\n const beforeMiddleware = start\n const afterMiddleware = stop\n const beforeHandler = () => start('handler')\n const afterHandler = () => stop('handler')\n const requestEnd = () => stop('total')\n\n return {\n beforePrefetch,\n requestStart,\n beforeMiddleware,\n afterMiddleware,\n beforeHandler,\n afterHandler,\n requestEnd\n }\n}\n\nexport const handler = middy(timePlugin())\n .use(eventLogger())\n .use(errorLogger())\n .use(httpEventNormalizer())\n .use(httpHeaderNormalizer())\n .use(httpUrlencodePathParametersParser())\n .use(httpUrlencodeBodyParser())\n .use(httpJsonBodyParser())\n .use(httpCors())\n .use(httpSecurityHeaders())\n .use(validator({eventSchema}))\n .handler(()=>{})\n \nawait handler()\n"})}),"\n",(0,r.jsx)(t.p,{children:"This will log out something this:"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-shell",children:"inputOutputLoggerMiddlewareBefore 0.156033 ms\nhttpEventNormalizerMiddlewareBefore 0.073921 ms\nhttpHeaderNormalizerMiddlewareBefore 0.095098 ms\nhttpUrlencodePathParserMiddlewareBefore 0.036255 ms\nhttpUrlencodeBodyParserMiddlewareBefore 0.038809 ms\nhttpJsonBodyParserMiddlewareBefore 0.048383 ms\nhttpContentNegotiationMiddlewareBefore 0.042311 ms\nvalidatorMiddlewareBefore 0.083366 ms\nhandler 0.094875 ms\nvalidatorMiddlewareAfter 0.083601 ms\nhttpSecurityHeadersMiddlewareAfter 0.19702 ms\nhttpCorsMiddlewareAfter 0.080532 ms\ninputOutputLoggerMiddlewareAfter 0.066886 ms\nlambda 66.141835 ms\n"})}),"\n",(0,r.jsxs)(t.p,{children:["From this everything looks good. Sub 1ms for every middleware and the handler. But wait, that ",(0,r.jsx)(t.code,{children:"total"})," doesn't look right.\nYou're correct, ",(0,r.jsx)(t.code,{children:"total"})," includes the initial setup time (or cold start time) for all middlewares. In this case ",(0,r.jsx)(t.code,{children:"validator"})," is the culprit.\nThe Ajv constructor and compiler do a lot of magic when they first run to get ready for later schema validations.\nThis is why in the ",(0,r.jsx)(t.code,{children:"validator"})," middleware we now support passing in complied schema and expose the default compiler in\ncase you want to use it in a build step. We hope this feature will help to you in identify slow middlewares and improve your development experience."]}),"\n",(0,r.jsxs)(t.p,{children:["There is also a ",(0,r.jsx)(t.code,{children:"beforeRequest"})," hook, but was left out of the example for dramatic effect."]}),"\n",(0,r.jsx)(t.p,{children:"Additionally, you'll notice that each middleware shows a descriptive name. This is printing out the function name passed into middy core.\nIf you've looked at the code for some the supported middlewares, you'll see these long descriptive variable names being set, then returned.\nThis is why."}),"\n",(0,r.jsx)(t.h2,{id:"memory",children:"Memory"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-javascript",children:"import memwatch from '@airbnb/node-memwatch'\n\nconst defaults = {\n logger: console.log\n}\n\nconst memoryPlugin = (opts = {}) => {\n const { logger } = { ...defaults, ...opts }\n const store = {}\n\n const start = (id) => {\n store[id] = new memwatch.HeapDiff()\n }\n const stop = (id) => {\n logger(id, store[id].end())\n }\n\n const beforePrefetch = () => start('total')\n const requestStart = () => {\n store.init = store.total\n stop('init')\n }\n const beforeMiddleware = start\n const afterMiddleware = stop\n const beforeHandler = () => start('handler')\n const afterHandler = () => stop('handler')\n const requestEnd = () => stop('total')\n\n return {\n beforePrefetch,\n requestStart,\n beforeMiddleware,\n afterMiddleware,\n beforeHandler,\n afterHandler,\n requestEnd\n }\n}\n\nexport const handler = middy(memoryPlugin())\n .use(eventLogger())\n .use(errorLogger())\n .use(httpEventNormalizer())\n .use(httpHeaderNormalizer())\n .use(httpUrlencodePathParametersParser())\n .use(httpUrlencodeBodyParser())\n .use(httpJsonBodyParser())\n .use(httpCors())\n .use(httpSecurityHeaders())\n .use(validator({eventSchema}))\n .handler(()=>{})\n \nawait handler()\n"})})]})}function h(e={}){const{wrapper:t}={...(0,o.a)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(c,{...e})}):c(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>i,a:()=>a});var r=n(7294);const o={},s=r.createContext(o);function a(e){const t=r.useContext(s);return r.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:a(e.components),r.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/54ed1cf2.b7de75e2.js b/assets/js/54ed1cf2.b7de75e2.js deleted file mode 100644 index 79309cb73..000000000 --- a/assets/js/54ed1cf2.b7de75e2.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[6827],{3905:(e,t,r)=>{r.d(t,{Zo:()=>c,kt:()=>f});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),d=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},c=function(e){var t=d(e.components);return n.createElement(l.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),p=d(r),m=o,f=p["".concat(l,".").concat(m)]||p[m]||u[m]||a;return r?n.createElement(f,i(i({ref:t},c),{},{components:r})):n.createElement(f,i({ref:t},c))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=m;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[p]="string"==typeof e?e:o,i[1]=s;for(var d=2;d{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>u,frontMatter:()=>a,metadata:()=>s,toc:()=>d});var n=r(7462),o=(r(7294),r(3905));const a={title:"Profiling",sidebar_position:7},i=void 0,s={unversionedId:"best-practices/profiling",id:"best-practices/profiling",title:"Profiling",description:"Inside of @middy/core we've added some hook before and after every middleware called, the handler and from start to end of it's execution.",source:"@site/docs/best-practices/07-profiling.md",sourceDirName:"best-practices",slug:"/best-practices/profiling",permalink:"/docs/best-practices/profiling",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/best-practices/07-profiling.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",sidebarPosition:7,frontMatter:{title:"Profiling",sidebar_position:7},sidebar:"tutorialSidebar",previous:{title:"Small node_modules",permalink:"/docs/best-practices/small-node-modules"},next:{title:"FAQ",permalink:"/docs/faq"}},l={},d=[{value:"Time",id:"time",level:2},{value:"Memory",id:"memory",level:2}],c={toc:d},p="wrapper";function u(e){let{components:t,...r}=e;return(0,o.kt)(p,(0,n.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Inside of ",(0,o.kt)("inlineCode",{parentName:"p"},"@middy/core")," we've added some hook before and after every middleware called, the handler and from start to end of it's execution."),(0,o.kt)("h2",{id:"time"},"Time"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-javascript"},"\nconst defaults = {\n logger: console.log,\n enabled: true\n}\n\nconst timePlugin = (opts = {}) => {\n const { logger, enabled } = { ...defaults, ...opts }\n const store = {}\n\n const start = (id) => {\n store[id] = process.hrtime.bigint()\n }\n const stop = (id) => {\n if (!enabled) return\n logger(id, Number.parseInt((process.hrtime.bigint() - store[id]).toString()) / 1000000, 'ms')\n }\n\n // Only run during cold start\n const beforePrefetch = () => start('total')\n const requestStart = () => {\n if (!store.init) {\n store.init = store.total\n stop('init')\n } else {\n start('total')\n }\n }\n const beforeMiddleware = start\n const afterMiddleware = stop\n const beforeHandler = () => start('handler')\n const afterHandler = () => stop('handler')\n const requestEnd = () => stop('total')\n\n return {\n beforePrefetch,\n requestStart,\n beforeMiddleware,\n afterMiddleware,\n beforeHandler,\n afterHandler,\n requestEnd\n }\n}\n\nexport const handler = middy(timePlugin())\n .use(eventLogger())\n .use(errorLogger())\n .use(httpEventNormalizer())\n .use(httpHeaderNormalizer())\n .use(httpUrlencodePathParametersParser())\n .use(httpUrlencodeBodyParser())\n .use(httpJsonBodyParser())\n .use(httpCors())\n .use(httpSecurityHeaders())\n .use(validator({eventSchema}))\n .handler(()=>{})\n \nawait handler()\n")),(0,o.kt)("p",null,"This will log out something this:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"inputOutputLoggerMiddlewareBefore 0.156033 ms\nhttpEventNormalizerMiddlewareBefore 0.073921 ms\nhttpHeaderNormalizerMiddlewareBefore 0.095098 ms\nhttpUrlencodePathParserMiddlewareBefore 0.036255 ms\nhttpUrlencodeBodyParserMiddlewareBefore 0.038809 ms\nhttpJsonBodyParserMiddlewareBefore 0.048383 ms\nhttpContentNegotiationMiddlewareBefore 0.042311 ms\nvalidatorMiddlewareBefore 0.083366 ms\nhandler 0.094875 ms\nvalidatorMiddlewareAfter 0.083601 ms\nhttpSecurityHeadersMiddlewareAfter 0.19702 ms\nhttpCorsMiddlewareAfter 0.080532 ms\ninputOutputLoggerMiddlewareAfter 0.066886 ms\nlambda 66.141835 ms\n")),(0,o.kt)("p",null,"From this everything looks good. Sub 1ms for every middleware and the handler. But wait, that ",(0,o.kt)("inlineCode",{parentName:"p"},"total")," doesn't look right.\nYou're correct, ",(0,o.kt)("inlineCode",{parentName:"p"},"total")," includes the initial setup time (or cold start time) for all middlewares. In this case ",(0,o.kt)("inlineCode",{parentName:"p"},"validator")," is the culprit.\nThe Ajv constructor and compiler do a lot of magic when they first run to get ready for later schema validations.\nThis is why in the ",(0,o.kt)("inlineCode",{parentName:"p"},"validator")," middleware we now support passing in complied schema and expose the default compiler in\ncase you want to use it in a build step. We hope this feature will help to you in identify slow middlewares and improve your development experience."),(0,o.kt)("p",null,"There is also a ",(0,o.kt)("inlineCode",{parentName:"p"},"beforeRequest")," hook, but was left out of the example for dramatic effect."),(0,o.kt)("p",null,"Additionally, you'll notice that each middleware shows a descriptive name. This is printing out the function name passed into middy core.\nIf you've looked at the code for some the supported middlewares, you'll see these long descriptive variable names being set, then returned.\nThis is why."),(0,o.kt)("h2",{id:"memory"},"Memory"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-javascript"},"import memwatch from '@airbnb/node-memwatch'\n\nconst defaults = {\n logger: console.log\n}\n\nconst memoryPlugin = (opts = {}) => {\n const { logger } = { ...defaults, ...opts }\n const store = {}\n\n const start = (id) => {\n store[id] = new memwatch.HeapDiff()\n }\n const stop = (id) => {\n logger(id, store[id].end())\n }\n\n const beforePrefetch = () => start('total')\n const requestStart = () => {\n store.init = store.total\n stop('init')\n }\n const beforeMiddleware = start\n const afterMiddleware = stop\n const beforeHandler = () => start('handler')\n const afterHandler = () => stop('handler')\n const requestEnd = () => stop('total')\n\n return {\n beforePrefetch,\n requestStart,\n beforeMiddleware,\n afterMiddleware,\n beforeHandler,\n afterHandler,\n requestEnd\n }\n}\n\nexport const handler = middy(memoryPlugin())\n .use(eventLogger())\n .use(errorLogger())\n .use(httpEventNormalizer())\n .use(httpHeaderNormalizer())\n .use(httpUrlencodePathParametersParser())\n .use(httpUrlencodeBodyParser())\n .use(httpJsonBodyParser())\n .use(httpCors())\n .use(httpSecurityHeaders())\n .use(validator({eventSchema}))\n .handler(()=>{})\n \nawait handler()\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/54fc444e.0c42a823.js b/assets/js/54fc444e.0c42a823.js deleted file mode 100644 index 109461e88..000000000 --- a/assets/js/54fc444e.0c42a823.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[1790],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>m});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function c(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),l=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):c(c({},t),e)),n},p=function(e){var t=l(e.components);return r.createElement(s.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},f=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,i=e.originalType,s=e.parentName,p=a(e,["components","mdxType","originalType","parentName"]),u=l(n),f=o,m=u["".concat(s,".").concat(f)]||u[f]||d[f]||i;return n?r.createElement(m,c(c({ref:t},p),{},{components:n})):r.createElement(m,c({ref:t},p))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=n.length,c=new Array(i);c[0]=f;var a={};for(var s in t)hasOwnProperty.call(t,s)&&(a[s]=t[s]);a.originalType=e,a[u]="string"==typeof e?e:o,c[1]=a;for(var l=2;l{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>c,default:()=>d,frontMatter:()=>i,metadata:()=>a,toc:()=>l});var r=n(7462),o=(n(7294),n(3905));const i={title:"Connection reuse",sidebar_position:2},c=void 0,a={unversionedId:"best-practices/connection-reuse",id:"best-practices/connection-reuse",title:"Connection reuse",description:"Be sure to set the following environment variable when connecting to AWS services:",source:"@site/docs/best-practices/02-connection-reuse.md",sourceDirName:"best-practices",slug:"/best-practices/connection-reuse",permalink:"/docs/best-practices/connection-reuse",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/best-practices/02-connection-reuse.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",sidebarPosition:2,frontMatter:{title:"Connection reuse",sidebar_position:2},sidebar:"tutorialSidebar",previous:{title:"Intro",permalink:"/docs/best-practices/intro"},next:{title:"Internal Context",permalink:"/docs/best-practices/internal-context"}},s={},l=[],p={toc:l},u="wrapper";function d(e){let{components:t,...n}=e;return(0,o.kt)(u,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Be sure to set the following environment variable when connecting to AWS services:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-plain"},"AWS_NODEJS_CONNECTION_REUSE_ENABLED=1\n")),(0,o.kt)("p",null,"This allows you to reuse the first connection established across lambda invocations."),(0,o.kt)("p",null,"See ",(0,o.kt)("a",{parentName:"p",href:"https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/node-reusing-connections.html"},"Reusing Connections with Keep-Alive in Node.js")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/54fc444e.0c797511.js b/assets/js/54fc444e.0c797511.js new file mode 100644 index 000000000..f7b94ad8f --- /dev/null +++ b/assets/js/54fc444e.0c797511.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[1790],{737:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>r,default:()=>p,frontMatter:()=>i,metadata:()=>c,toc:()=>d});var s=n(5893),o=n(1151);const i={title:"Connection reuse",sidebar_position:2},r=void 0,c={id:"best-practices/connection-reuse",title:"Connection reuse",description:"Be sure to set the following environment variable when connecting to AWS services:",source:"@site/docs/best-practices/02-connection-reuse.md",sourceDirName:"best-practices",slug:"/best-practices/connection-reuse",permalink:"/docs/best-practices/connection-reuse",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/best-practices/02-connection-reuse.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",sidebarPosition:2,frontMatter:{title:"Connection reuse",sidebar_position:2},sidebar:"tutorialSidebar",previous:{title:"Intro",permalink:"/docs/best-practices/intro"},next:{title:"Internal Context",permalink:"/docs/best-practices/internal-context"}},a={},d=[];function l(e){const t={a:"a",code:"code",p:"p",pre:"pre",...(0,o.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.p,{children:"Be sure to set the following environment variable when connecting to AWS services:"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-plain",children:"AWS_NODEJS_CONNECTION_REUSE_ENABLED=1\n"})}),"\n",(0,s.jsx)(t.p,{children:"This allows you to reuse the first connection established across lambda invocations."}),"\n",(0,s.jsxs)(t.p,{children:["See ",(0,s.jsx)(t.a,{href:"https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/node-reusing-connections.html",children:"Reusing Connections with Keep-Alive in Node.js"})]})]})}function p(e={}){const{wrapper:t}={...(0,o.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(l,{...e})}):l(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>c,a:()=>r});var s=n(7294);const o={},i=s.createContext(o);function r(e){const t=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:r(e.components),s.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/56ed1c64.6a27c727.js b/assets/js/56ed1c64.6a27c727.js new file mode 100644 index 000000000..a0428b3ad --- /dev/null +++ b/assets/js/56ed1c64.6a27c727.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[4097],{8928:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>i,contentTitle:()=>d,default:()=>m,frontMatter:()=>s,metadata:()=>o,toc:()=>c});var r=t(5893),a=t(1151);const s={title:"All AWS Events",position:1},d=void 0,o={id:"events/intro",title:"All AWS Events",description:"Middy is built to help with all AWS Events that can connect with AWS Lambda.",source:"@site/docs/events/01-intro.md",sourceDirName:"events",slug:"/events/intro",permalink:"/docs/events/intro",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/events/01-intro.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",sidebarPosition:1,frontMatter:{title:"All AWS Events",position:1},sidebar:"tutorialSidebar",previous:{title:"AWS Event Examples",permalink:"/docs/category/aws-event-examples"},next:{title:"Alexa",permalink:"/docs/events/alexa"}},i={},c=[{value:"Middlewares that can benefit any Lambda",id:"middlewares-that-can-benefit-any-lambda",level:2},{value:"Need secrets? We have you covered there too",id:"need-secrets-we-have-you-covered-there-too",level:2},{value:"How about configs? We have you covered there as well",id:"how-about-configs-we-have-you-covered-there-as-well",level:2}];function l(e){const n={code:"code",h2:"h2",p:"p",pre:"pre",...(0,a.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.p,{children:"Middy is built to help with all AWS Events that can connect with AWS Lambda."}),"\n",(0,r.jsx)(n.h2,{id:"middlewares-that-can-benefit-any-lambda",children:"Middlewares that can benefit any Lambda"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-javascript",children:"import middy from '@middy/core'\nimport cloudWatchMetricsMiddleware from '@middy/cloudwatch-metrics'\nimport errorLoggerMiddleware from '@middy/error-logger'\nimport inputOutputLoggerMiddleware from '@middy/input-output-logger'\nimport validatorMiddleware from 'validator'\nimport warmupMiddleware from 'warmup'\n\nimport eventSchema from './eventSchema.json' assert { type: 'json' }\nimport responseSchema from './responseSchema.json' assert { type: 'json' }\n\nconst handler = middy()\n .use(warmupMiddleware())\n .use(cloudWatchMetricsMiddleware())\n .use(inputOutputLoggerMiddleware())\n .use(errorLoggerMiddleware())\n .use(validatorMiddleware({ eventSchema, responseSchema }))\n .handler(async (event, context, { signal }) => {\n // ...\n })\n"})}),"\n",(0,r.jsx)(n.h2,{id:"need-secrets-we-have-you-covered-there-too",children:"Need secrets? We have you covered there too"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-javascript",children:"import middy from '@middy/core'\nimport { getInternal } from '@middy/util'\nimport rdsSignerMiddleware from '@middy/rds-signer'\nimport secretsManagerMiddleware from '@middy/secrets-manager'\nimport ssmMiddleware from '@middy/ssm'\nimport stsMiddleware from '@middy/sts'\n\nexport const handler = middy()\n .use(\n rdsSignerMiddleware({\n fetchData: {\n rdsSigner: {\n region: process.env.AWS_REGION,\n hostname: process.env.RDS_HOSTNAME,\n username: 'iam_role',\n port: 5555\n }\n }\n })\n )\n .use(\n secretsManagerMiddleware({\n fetchData: {\n secretsManager: '/dev/service_name/key_name'\n }\n })\n )\n .use(\n ssmMiddleware({\n fetchData: {\n ssm: '/dev/service_name/key_name'\n }\n })\n )\n .use(\n stsMiddleware({\n fetchData: {\n sts: {\n RoleArn: '.../role'\n }\n }\n })\n )\n .before(async (request) => {\n request.context.secrets = await getInternal(true, request)\n })\n .handler(async (event, context, { signal }) => {\n // context.secrets = { rdsSigner, secretsManager, ssm, sts }\n })\n"})}),"\n",(0,r.jsx)(n.h2,{id:"how-about-configs-we-have-you-covered-there-as-well",children:"How about configs? We have you covered there as well"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-javascript",children:"import middy from '@middy/core'\nimport { getInternal } from '@middy/util'\nimport appConfigMiddleware from '@middy/appconfig'\nimport s3Middleware from '@middy/s3'\nimport dynamoDBMiddleware from '@middy/dynamodb'\nimport ssmMiddleware from '@middy/ssm'\n\nexport const handler = middy()\n .use(\n appConfigMiddleware({\n fetchData: {\n appConfig: {\n Application: '...',\n ClientId: '...',\n Configuration: '...',\n Environment: '...'\n }\n }\n })\n )\n .use(\n s3Middleware({\n fetchData: {\n s3: {\n Bucket: '...',\n Key: '...'\n }\n }\n })\n )\n .use(\n dynamoDBMiddleware({\n fetchData: {\n dynamodb: {\n TableName: '...',\n Key: { '...' }\n }\n }\n })\n )\n .use(\n ssmMiddleware({\n fetchData: {\n ssm: '/dev/service_name/key_name'\n }\n })\n )\n .before(async (request) => {\n request.context.configs = await getInternal(true, request)\n })\n .handler(async (event, context, { signal }) => {\n // context.configs = { appConfig, dynamodb, s3, ssm }\n })\n"})})]})}function m(e={}){const{wrapper:n}={...(0,a.a)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(l,{...e})}):l(e)}},1151:(e,n,t)=>{t.d(n,{Z:()=>o,a:()=>d});var r=t(7294);const a={},s=r.createContext(a);function d(e){const n=r.useContext(s);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:d(e.components),r.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/56ed1c64.7b4da069.js b/assets/js/56ed1c64.7b4da069.js deleted file mode 100644 index c265d57f8..000000000 --- a/assets/js/56ed1c64.7b4da069.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[4097],{3905:(e,n,t)=>{t.d(n,{Zo:()=>c,kt:()=>f});var r=t(7294);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function i(e){for(var n=1;n=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var d=r.createContext({}),l=function(e){var n=r.useContext(d),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},c=function(e){var n=l(e.components);return r.createElement(d.Provider,{value:n},e.children)},m="mdxType",p={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},u=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,o=e.originalType,d=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),m=l(t),u=a,f=m["".concat(d,".").concat(u)]||m[u]||p[u]||o;return t?r.createElement(f,i(i({ref:n},c),{},{components:t})):r.createElement(f,i({ref:n},c))}));function f(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var o=t.length,i=new Array(o);i[0]=u;var s={};for(var d in n)hasOwnProperty.call(n,d)&&(s[d]=n[d]);s.originalType=e,s[m]="string"==typeof e?e:a,i[1]=s;for(var l=2;l{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>i,default:()=>p,frontMatter:()=>o,metadata:()=>s,toc:()=>l});var r=t(7462),a=(t(7294),t(3905));const o={title:"All AWS Events",position:1},i=void 0,s={unversionedId:"events/intro",id:"events/intro",title:"All AWS Events",description:"Middy is built to help with all AWS Events that can connect with AWS Lambda.",source:"@site/docs/events/01-intro.md",sourceDirName:"events",slug:"/events/intro",permalink:"/docs/events/intro",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/events/01-intro.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",sidebarPosition:1,frontMatter:{title:"All AWS Events",position:1},sidebar:"tutorialSidebar",previous:{title:"AWS Event Examples",permalink:"/docs/category/aws-event-examples"},next:{title:"Alexa",permalink:"/docs/events/alexa"}},d={},l=[{value:"Middlewares that can benefit any Lambda",id:"middlewares-that-can-benefit-any-lambda",level:2},{value:"Need secrets? We have you covered there too",id:"need-secrets-we-have-you-covered-there-too",level:2},{value:"How about configs? We have you covered there as well",id:"how-about-configs-we-have-you-covered-there-as-well",level:2}],c={toc:l},m="wrapper";function p(e){let{components:n,...t}=e;return(0,a.kt)(m,(0,r.Z)({},c,t,{components:n,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"Middy is built to help with all AWS Events that can connect with AWS Lambda."),(0,a.kt)("h2",{id:"middlewares-that-can-benefit-any-lambda"},"Middlewares that can benefit any Lambda"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\nimport cloudWatchMetricsMiddleware from '@middy/cloudwatch-metrics'\nimport errorLoggerMiddleware from '@middy/error-logger'\nimport inputOutputLoggerMiddleware from '@middy/input-output-logger'\nimport validatorMiddleware from 'validator'\nimport warmupMiddleware from 'warmup'\n\nimport eventSchema from './eventSchema.json' assert { type: 'json' }\nimport responseSchema from './responseSchema.json' assert { type: 'json' }\n\nconst handler = middy()\n .use(warmupMiddleware())\n .use(cloudWatchMetricsMiddleware())\n .use(inputOutputLoggerMiddleware())\n .use(errorLoggerMiddleware())\n .use(validatorMiddleware({ eventSchema, responseSchema }))\n .handler(async (event, context, { signal }) => {\n // ...\n })\n")),(0,a.kt)("h2",{id:"need-secrets-we-have-you-covered-there-too"},"Need secrets? We have you covered there too"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\nimport { getInternal } from '@middy/util'\nimport rdsSignerMiddleware from '@middy/rds-signer'\nimport secretsManagerMiddleware from '@middy/secrets-manager'\nimport ssmMiddleware from '@middy/ssm'\nimport stsMiddleware from '@middy/sts'\n\nexport const handler = middy()\n .use(\n rdsSignerMiddleware({\n fetchData: {\n rdsSigner: {\n region: process.env.AWS_REGION,\n hostname: process.env.RDS_HOSTNAME,\n username: 'iam_role',\n database: 'database',\n port: 5555\n }\n }\n })\n )\n .use(\n secretsManagerMiddleware({\n fetchData: {\n secretsManager: '/dev/service_name/key_name'\n }\n })\n )\n .use(\n ssmMiddleware({\n fetchData: {\n ssm: '/dev/service_name/key_name'\n }\n })\n )\n .use(\n stsMiddleware({\n fetchData: {\n sts: {\n RoleArn: '.../role'\n }\n }\n })\n )\n .before(async (request) => {\n request.context.secrets = await getInternal(true, request)\n })\n .handler(async (event, context, { signal }) => {\n // context.secrets = { rdsSigner, secretsManager, ssm, sts }\n })\n")),(0,a.kt)("h2",{id:"how-about-configs-we-have-you-covered-there-as-well"},"How about configs? We have you covered there as well"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\nimport { getInternal } from '@middy/util'\nimport appConfigMiddleware from '@middy/appconfig'\nimport s3Middleware from '@middy/s3'\nimport dynamoDBMiddleware from '@middy/dynamodb'\nimport ssmMiddleware from '@middy/ssm'\n\nexport const handler = middy()\n .use(\n appConfigMiddleware({\n fetchData: {\n appConfig: {\n Application: '...',\n ClientId: '...',\n Configuration: '...',\n Environment: '...'\n }\n }\n })\n )\n .use(\n s3Middleware({\n fetchData: {\n s3: {\n Bucket: '...',\n Key: '...'\n }\n }\n })\n )\n .use(\n dynamoDBMiddleware({\n fetchData: {\n dynamodb: {\n TableName: '...',\n Key: { '...' }\n }\n }\n })\n )\n .use(\n ssmMiddleware({\n fetchData: {\n ssm: '/dev/service_name/key_name'\n }\n })\n )\n .before(async (request) => {\n request.context.configs = await getInternal(true, request)\n })\n .handler(async (event, context, { signal }) => {\n // context.configs = { appConfig, dynamodb, s3, ssm }\n })\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/58ba397f.3fb458fa.js b/assets/js/58ba397f.3fb458fa.js deleted file mode 100644 index 1f4c77581..000000000 --- a/assets/js/58ba397f.3fb458fa.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[1497],{3905:(e,t,r)=>{r.d(t,{Zo:()=>c,kt:()=>h});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=n.createContext({}),i=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},c=function(e){var t=i(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,l=e.originalType,s=e.parentName,c=u(e,["components","mdxType","originalType","parentName"]),p=i(r),m=a,h=p["".concat(s,".").concat(m)]||p[m]||d[m]||l;return r?n.createElement(h,o(o({ref:t},c),{},{components:r})):n.createElement(h,o({ref:t},c))}));function h(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=r.length,o=new Array(l);o[0]=m;var u={};for(var s in t)hasOwnProperty.call(t,s)&&(u[s]=t[s]);u.originalType=e,u[p]="string"==typeof e?e:a,o[1]=u;for(var i=2;i{r.d(t,{Z:()=>o});var n=r(7294),a=r(6010);const l={tabItem:"tabItem_Ymn6"};function o(e){let{children:t,hidden:r,className:o}=e;return n.createElement("div",{role:"tabpanel",className:(0,a.Z)(l.tabItem,o),hidden:r},t)}},4866:(e,t,r)=>{r.d(t,{Z:()=>k});var n=r(7462),a=r(7294),l=r(6010),o=r(2466),u=r(6550),s=r(1980),i=r(7392),c=r(12);function p(e){return function(e){return a.Children.map(e,(e=>{if(!e||(0,a.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:r,attributes:n,default:a}}=e;return{value:t,label:r,attributes:n,default:a}}))}function d(e){const{values:t,children:r}=e;return(0,a.useMemo)((()=>{const e=t??p(r);return function(e){const t=(0,i.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[t,r])}function m(e){let{value:t,tabValues:r}=e;return r.some((e=>e.value===t))}function h(e){let{queryString:t=!1,groupId:r}=e;const n=(0,u.k6)(),l=function(e){let{queryString:t=!1,groupId:r}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!r)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return r??null}({queryString:t,groupId:r});return[(0,s._X)(l),(0,a.useCallback)((e=>{if(!l)return;const t=new URLSearchParams(n.location.search);t.set(l,e),n.replace({...n.location,search:t.toString()})}),[l,n])]}function f(e){const{defaultValue:t,queryString:r=!1,groupId:n}=e,l=d(e),[o,u]=(0,a.useState)((()=>function(e){let{defaultValue:t,tabValues:r}=e;if(0===r.length)throw new Error("Docusaurus error: the component requires at least one children component");if(t){if(!m({value:t,tabValues:r}))throw new Error(`Docusaurus error: The has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${r.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const n=r.find((e=>e.default))??r[0];if(!n)throw new Error("Unexpected error: 0 tabValues");return n.value}({defaultValue:t,tabValues:l}))),[s,i]=h({queryString:r,groupId:n}),[p,f]=function(e){let{groupId:t}=e;const r=function(e){return e?`docusaurus.tab.${e}`:null}(t),[n,l]=(0,c.Nk)(r);return[n,(0,a.useCallback)((e=>{r&&l.set(e)}),[r,l])]}({groupId:n}),b=(()=>{const e=s??p;return m({value:e,tabValues:l})?e:null})();(0,a.useLayoutEffect)((()=>{b&&u(b)}),[b]);return{selectedValue:o,selectValue:(0,a.useCallback)((e=>{if(!m({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);u(e),i(e),f(e)}),[i,f,l]),tabValues:l}}var b=r(2389);const y={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};function v(e){let{className:t,block:r,selectedValue:u,selectValue:s,tabValues:i}=e;const c=[],{blockElementScrollPositionUntilNextRender:p}=(0,o.o5)(),d=e=>{const t=e.currentTarget,r=c.indexOf(t),n=i[r].value;n!==u&&(p(t),s(n))},m=e=>{let t=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{const r=c.indexOf(e.currentTarget)+1;t=c[r]??c[0];break}case"ArrowLeft":{const r=c.indexOf(e.currentTarget)-1;t=c[r]??c[c.length-1];break}}t?.focus()};return a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":r},t)},i.map((e=>{let{value:t,label:r,attributes:o}=e;return a.createElement("li",(0,n.Z)({role:"tab",tabIndex:u===t?0:-1,"aria-selected":u===t,key:t,ref:e=>c.push(e),onKeyDown:m,onClick:d},o,{className:(0,l.Z)("tabs__item",y.tabItem,o?.className,{"tabs__item--active":u===t})}),r??t)})))}function g(e){let{lazy:t,children:r,selectedValue:n}=e;const l=(Array.isArray(r)?r:[r]).filter(Boolean);if(t){const e=l.find((e=>e.props.value===n));return e?(0,a.cloneElement)(e,{className:"margin-top--md"}):null}return a.createElement("div",{className:"margin-top--md"},l.map(((e,t)=>(0,a.cloneElement)(e,{key:t,hidden:e.props.value!==n}))))}function w(e){const t=f(e);return a.createElement("div",{className:(0,l.Z)("tabs-container",y.tabList)},a.createElement(v,(0,n.Z)({},e,t)),a.createElement(g,(0,n.Z)({},e,t)))}function k(e){const t=(0,b.Z)();return a.createElement(w,(0,n.Z)({key:String(t)},e))}},3278:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>h,frontMatter:()=>u,metadata:()=>i,toc:()=>p});var n=r(7462),a=(r(7294),r(3905)),l=r(4866),o=r(5162);const u={title:"http-urlencode-path-parser"},s=void 0,i={unversionedId:"middlewares/http-urlencode-path-parser",id:"middlewares/http-urlencode-path-parser",title:"http-urlencode-path-parser",description:"This middleware automatically parses HTTP requests with URL-encoded paths. This can happen when using path variables (ie //) for an endpoint and the UI encodeURIComponent the values before making the request.",source:"@site/docs/middlewares/http-urlencode-path-parser.md",sourceDirName:"middlewares",slug:"/middlewares/http-urlencode-path-parser",permalink:"/docs/middlewares/http-urlencode-path-parser",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/middlewares/http-urlencode-path-parser.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",frontMatter:{title:"http-urlencode-path-parser"},sidebar:"tutorialSidebar",previous:{title:"http-urlencode-body-parser",permalink:"/docs/middlewares/http-urlencode-body-parser"},next:{title:"input-output-logger",permalink:"/docs/middlewares/input-output-logger"}},c={},p=[{value:"Install",id:"install",level:2},{value:"Options",id:"options",level:2},{value:"Sample usage",id:"sample-usage",level:2}],d={toc:p},m="wrapper";function h(e){let{components:t,...r}=e;return(0,a.kt)(m,(0,n.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"This middleware automatically parses HTTP requests with URL-encoded paths. This can happen when using path variables (ie ",(0,a.kt)("inlineCode",{parentName:"p"},"/{name}/"),") for an endpoint and the UI ",(0,a.kt)("inlineCode",{parentName:"p"},"encodeURIComponent")," the values before making the request."),(0,a.kt)("h2",{id:"install"},"Install"),(0,a.kt)("p",null,"To install this middleware you can use NPM:"),(0,a.kt)(l.Z,{groupId:"npm2yarn",mdxType:"Tabs"},(0,a.kt)(o.Z,{value:"npm",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-bash"},"npm install --save @middy/http-urlencode-path-parser\n"))),(0,a.kt)(o.Z,{value:"yarn",label:"Yarn",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-bash"},"yarn add @middy/http-urlencode-path-parser\n"))),(0,a.kt)(o.Z,{value:"pnpm",label:"pnpm",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-bash"},"pnpm add @middy/http-urlencode-path-parser\n")))),(0,a.kt)("h2",{id:"options"},"Options"),(0,a.kt)("p",null,"None"),(0,a.kt)("h2",{id:"sample-usage"},"Sample usage"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\nimport httpUrlEncodePathParser from '@middy/http-urlencode-path-parser'\n\nconst handler = middy((event, context) => {\n return event.body // propagates the body as response\n})\n\nhandler.use(httpUrlEncodePathParser())\n\n// When Lambda runs the handler with a sample event...\nconst event = {\n\n pathParameters: {\n name: encodeURIComponent('M\xeeddy')\n }\n}\n\nhandler(event, {}, (_, body) => {\n t.deepEqual(body, {\n name: 'M\xeeddy'\n })\n})\n")))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/58ba397f.7c21f350.js b/assets/js/58ba397f.7c21f350.js new file mode 100644 index 000000000..4f9a27922 --- /dev/null +++ b/assets/js/58ba397f.7c21f350.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[1497],{7095:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>u,default:()=>h,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var r=n(5893),a=n(1151),s=n(4866),l=n(5162);const o={title:"http-urlencode-path-parser"},u=void 0,i={id:"middlewares/http-urlencode-path-parser",title:"http-urlencode-path-parser",description:"This middleware automatically parses HTTP requests with URL-encoded paths. This can happen when using path variables (ie //) for an endpoint and the UI encodeURIComponent the values before making the request.",source:"@site/docs/middlewares/http-urlencode-path-parser.md",sourceDirName:"middlewares",slug:"/middlewares/http-urlencode-path-parser",permalink:"/docs/middlewares/http-urlencode-path-parser",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/middlewares/http-urlencode-path-parser.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",frontMatter:{title:"http-urlencode-path-parser"},sidebar:"tutorialSidebar",previous:{title:"http-urlencode-body-parser",permalink:"/docs/middlewares/http-urlencode-body-parser"},next:{title:"input-output-logger",permalink:"/docs/middlewares/input-output-logger"}},d={},c=[{value:"Install",id:"install",level:2},{value:"Options",id:"options",level:2},{value:"Sample usage",id:"sample-usage",level:2}];function p(e){const t={code:"code",h2:"h2",p:"p",pre:"pre",...(0,a.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(t.p,{children:["This middleware automatically parses HTTP requests with URL-encoded paths. This can happen when using path variables (ie ",(0,r.jsx)(t.code,{children:"/{name}/"}),") for an endpoint and the UI ",(0,r.jsx)(t.code,{children:"encodeURIComponent"})," the values before making the request."]}),"\n",(0,r.jsx)(t.h2,{id:"install",children:"Install"}),"\n",(0,r.jsx)(t.p,{children:"To install this middleware you can use NPM:"}),"\n",(0,r.jsxs)(s.Z,{groupId:"npm2yarn",children:[(0,r.jsx)(l.Z,{value:"npm",children:(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-bash",children:"npm install --save @middy/http-urlencode-path-parser\n"})})}),(0,r.jsx)(l.Z,{value:"yarn",label:"Yarn",children:(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-bash",children:"yarn add @middy/http-urlencode-path-parser\n"})})}),(0,r.jsx)(l.Z,{value:"pnpm",label:"pnpm",children:(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-bash",children:"pnpm add @middy/http-urlencode-path-parser\n"})})})]}),"\n",(0,r.jsx)(t.h2,{id:"options",children:"Options"}),"\n",(0,r.jsx)(t.p,{children:"None"}),"\n",(0,r.jsx)(t.h2,{id:"sample-usage",children:"Sample usage"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-javascript",children:"import middy from '@middy/core'\nimport httpUrlEncodePathParser from '@middy/http-urlencode-path-parser'\n\nconst handler = middy((event, context) => {\n return event.body // propagates the body as response\n})\n\nhandler.use(httpUrlEncodePathParser())\n\n// When Lambda runs the handler with a sample event...\nconst event = {\n\n pathParameters: {\n name: encodeURIComponent('M\xeeddy')\n }\n}\n\nhandler(event, {}, (_, body) => {\n t.deepEqual(body, {\n name: 'M\xeeddy'\n })\n})\n"})})]})}function h(e={}){const{wrapper:t}={...(0,a.a)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(p,{...e})}):p(e)}},5162:(e,t,n)=>{n.d(t,{Z:()=>l});n(7294);var r=n(6010);const a={tabItem:"tabItem_Ymn6"};var s=n(5893);function l(e){let{children:t,hidden:n,className:l}=e;return(0,s.jsx)("div",{role:"tabpanel",className:(0,r.Z)(a.tabItem,l),hidden:n,children:t})}},4866:(e,t,n)=>{n.d(t,{Z:()=>j});var r=n(7294),a=n(6010),s=n(2466),l=n(6550),o=n(469),u=n(1980),i=n(7392),d=n(12);function c(e){return r.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function p(e){const{values:t,children:n}=e;return(0,r.useMemo)((()=>{const e=t??function(e){return c(e).map((e=>{let{props:{value:t,label:n,attributes:r,default:a}}=e;return{value:t,label:n,attributes:r,default:a}}))}(n);return function(e){const t=(0,i.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[t,n])}function h(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function m(e){let{queryString:t=!1,groupId:n}=e;const a=(0,l.k6)(),s=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,u._X)(s),(0,r.useCallback)((e=>{if(!s)return;const t=new URLSearchParams(a.location.search);t.set(s,e),a.replace({...a.location,search:t.toString()})}),[s,a])]}function b(e){const{defaultValue:t,queryString:n=!1,groupId:a}=e,s=p(e),[l,u]=(0,r.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the component requires at least one children component");if(t){if(!h({value:t,tabValues:n}))throw new Error(`Docusaurus error: The has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const r=n.find((e=>e.default))??n[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:t,tabValues:s}))),[i,c]=m({queryString:n,groupId:a}),[b,f]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[a,s]=(0,d.Nk)(n);return[a,(0,r.useCallback)((e=>{n&&s.set(e)}),[n,s])]}({groupId:a}),v=(()=>{const e=i??b;return h({value:e,tabValues:s})?e:null})();(0,o.Z)((()=>{v&&u(v)}),[v]);return{selectedValue:l,selectValue:(0,r.useCallback)((e=>{if(!h({value:e,tabValues:s}))throw new Error(`Can't select invalid tab value=${e}`);u(e),c(e),f(e)}),[c,f,s]),tabValues:s}}var f=n(2389);const v={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var g=n(5893);function y(e){let{className:t,block:n,selectedValue:r,selectValue:l,tabValues:o}=e;const u=[],{blockElementScrollPositionUntilNextRender:i}=(0,s.o5)(),d=e=>{const t=e.currentTarget,n=u.indexOf(t),a=o[n].value;a!==r&&(i(t),l(a))},c=e=>{let t=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{const n=u.indexOf(e.currentTarget)+1;t=u[n]??u[0];break}case"ArrowLeft":{const n=u.indexOf(e.currentTarget)-1;t=u[n]??u[u.length-1];break}}t?.focus()};return(0,g.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,a.Z)("tabs",{"tabs--block":n},t),children:o.map((e=>{let{value:t,label:n,attributes:s}=e;return(0,g.jsx)("li",{role:"tab",tabIndex:r===t?0:-1,"aria-selected":r===t,ref:e=>u.push(e),onKeyDown:c,onClick:d,...s,className:(0,a.Z)("tabs__item",v.tabItem,s?.className,{"tabs__item--active":r===t}),children:n??t},t)}))})}function x(e){let{lazy:t,children:n,selectedValue:a}=e;const s=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=s.find((e=>e.props.value===a));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return(0,g.jsx)("div",{className:"margin-top--md",children:s.map(((e,t)=>(0,r.cloneElement)(e,{key:t,hidden:e.props.value!==a})))})}function w(e){const t=b(e);return(0,g.jsxs)("div",{className:(0,a.Z)("tabs-container",v.tabList),children:[(0,g.jsx)(y,{...e,...t}),(0,g.jsx)(x,{...e,...t})]})}function j(e){const t=(0,f.Z)();return(0,g.jsx)(w,{...e,children:c(e.children)},String(t))}},1151:(e,t,n)=>{n.d(t,{Z:()=>o,a:()=>l});var r=n(7294);const a={},s=r.createContext(a);function l(e){const t=r.useContext(s);return r.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:l(e.components),r.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/590578cb.2e0473b3.js b/assets/js/590578cb.2e0473b3.js new file mode 100644 index 000000000..e02c7ddb2 --- /dev/null +++ b/assets/js/590578cb.2e0473b3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[3181],{1115:(e,i,t)=>{t.r(i),t.d(i,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>d,toc:()=>a});var s=t(5893),n=t(1151);const r={title:"History"},o=void 0,d={id:"intro/history",title:"History",description:"A brief history of Middy",source:"@site/docs/intro/08-history.md",sourceDirName:"intro",slug:"/intro/history",permalink:"/docs/intro/history",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/intro/08-history.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",sidebarPosition:8,frontMatter:{title:"History"},sidebar:"tutorialSidebar",previous:{title:"Hooks",permalink:"/docs/intro/hooks"},next:{title:"Influence",permalink:"/docs/intro/influence"}},l={},a=[{value:"A brief history of Middy",id:"a-brief-history-of-middy",level:2}];function c(e){const i={a:"a",h2:"h2",li:"li",p:"p",strong:"strong",ul:"ul",...(0,n.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(i.h2,{id:"a-brief-history-of-middy",children:"A brief history of Middy"}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsx)(i.li,{children:"Middy was started in the early days of AWS Lambda (~2016) and it was initially only used to remove duplication in a big serverless project with tons of lambdas. Only in August 2017 Middy's source code was released on GitHub making it an open source project."}),"\n",(0,s.jsx)(i.li,{children:"2017-08-03: First commit"}),"\n",(0,s.jsx)(i.li,{children:"2017-09-04: v0.2.1 First release"}),"\n",(0,s.jsxs)(i.li,{children:["2020-04-25: ",(0,s.jsx)(i.a,{href:"https://loige.co/middy-1-is-here/",children:"v1.0.0"})," Released"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.a,{href:"https://loige.co/2020-a-year-in-review/#middy",children:"2020 Review"})," by ",(0,s.jsx)(i.a,{href:"https://github.com/lmammino",children:"@lmammino"})]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.a,{href:"https://github.com/middyjs/middy/issues/590",children:"2020 Review"})," by ",(0,s.jsx)(i.a,{href:"https://github.com/willfarrell",children:"@willfarrell"})]}),"\n",(0,s.jsxs)(i.li,{children:["2021: ",(0,s.jsx)(i.a,{href:"https://github.com/middyjs/middy/issues/585",children:"v2.0.0 Coming soon"})]}),"\n",(0,s.jsx)(i.li,{children:"2021-04-01: v2.0.0 Released"}),"\n",(0,s.jsxs)(i.li,{children:["2021-02-02: ",(0,s.jsx)(i.a,{href:"https://loige.co/2021-a-year-in-review#middy",children:"2021 Review"})," from ",(0,s.jsx)(i.a,{href:"https://github.com/lmammino",children:"@lmammino"})]}),"\n",(0,s.jsx)(i.li,{children:"2022-05-12: v3.0.0 Released"}),"\n",(0,s.jsx)(i.li,{children:"2022-11-24: v4.0.0 Released"}),"\n",(0,s.jsxs)(i.li,{children:["2023-08-22: ",(0,s.jsx)(i.a,{href:"https://www.linkedin.com/posts/jsdayie_javascript-nodejs-activity-7099445347520757760-hsUQ",children:"JSAwardsIE 2023 Most valued JavaScript open source project"})]}),"\n",(0,s.jsx)(i.li,{children:"2023-11-??: v5.0.0 Released"}),"\n",(0,s.jsx)(i.li,{children:"2024-11-??: v6.0.0 Released"}),"\n"]}),"\n",(0,s.jsxs)(i.p,{children:[(0,s.jsx)(i.strong,{children:"Fun Fact"}),": The adding of the emoji-icon was the ",(0,s.jsx)(i.a,{href:"https://github.com/middyjs/middy/commit/a0acf430bb72f6f6f604e38cfd8a571912b6b4d7",children:"2nd commit"})," to the project."]})]})}function h(e={}){const{wrapper:i}={...(0,n.a)(),...e.components};return i?(0,s.jsx)(i,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},1151:(e,i,t)=>{t.d(i,{Z:()=>d,a:()=>o});var s=t(7294);const n={},r=s.createContext(n);function o(e){const i=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(i):{...i,...e}}),[i,e])}function d(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:o(e.components),s.createElement(r.Provider,{value:i},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/590578cb.3cdcc18c.js b/assets/js/590578cb.3cdcc18c.js deleted file mode 100644 index 8e099c376..000000000 --- a/assets/js/590578cb.3cdcc18c.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[3181],{3905:(e,t,r)=>{r.d(t,{Zo:()=>d,kt:()=>f});var i=r(7294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function o(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=i.createContext({}),m=function(e){var t=i.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},d=function(e){var t=m(e.components);return i.createElement(s.Provider,{value:t},e.children)},c="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},u=i.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),c=m(r),u=n,f=c["".concat(s,".").concat(u)]||c[u]||p[u]||a;return r?i.createElement(f,o(o({ref:t},d),{},{components:r})):i.createElement(f,o({ref:t},d))}));function f(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,o=new Array(a);o[0]=u;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[c]="string"==typeof e?e:n,o[1]=l;for(var m=2;m{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>p,frontMatter:()=>a,metadata:()=>l,toc:()=>m});var i=r(7462),n=(r(7294),r(3905));const a={title:"History"},o=void 0,l={unversionedId:"intro/history",id:"intro/history",title:"History",description:"A brief history of Middy",source:"@site/docs/intro/08-history.md",sourceDirName:"intro",slug:"/intro/history",permalink:"/docs/intro/history",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/intro/08-history.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",sidebarPosition:8,frontMatter:{title:"History"},sidebar:"tutorialSidebar",previous:{title:"Hooks",permalink:"/docs/intro/hooks"},next:{title:"Influence",permalink:"/docs/intro/influence"}},s={},m=[{value:"A brief history of Middy",id:"a-brief-history-of-middy",level:2}],d={toc:m},c="wrapper";function p(e){let{components:t,...r}=e;return(0,n.kt)(c,(0,i.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"a-brief-history-of-middy"},"A brief history of Middy"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Middy was started in the early days of AWS Lambda (~2016) and it was initially only used to remove duplication in a big serverless project with tons of lambdas. Only in August 2017 Middy's source code was released on GitHub making it an open source project."),(0,n.kt)("li",{parentName:"ul"},"2017-08-03: First commit"),(0,n.kt)("li",{parentName:"ul"},"2017-09-04: v0.2.1 First release"),(0,n.kt)("li",{parentName:"ul"},"2020-04-25: ",(0,n.kt)("a",{parentName:"li",href:"https://loige.co/middy-1-is-here/"},"v1.0.0")," Released"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://loige.co/2020-a-year-in-review/#middy"},"2020 Review")," by ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/lmammino"},"@lmammino")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://github.com/middyjs/middy/issues/590"},"2020 Review")," by ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/willfarrell"},"@willfarrell")),(0,n.kt)("li",{parentName:"ul"},"2021: ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/middyjs/middy/issues/585"},"v2.0.0 Coming soon")),(0,n.kt)("li",{parentName:"ul"},"2021-04-01: v2.0.0 Released"),(0,n.kt)("li",{parentName:"ul"},"2021-02-02: ",(0,n.kt)("a",{parentName:"li",href:"https://loige.co/2021-a-year-in-review#middy"},"2021 Review")," from ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/lmammino"},"@lmammino")),(0,n.kt)("li",{parentName:"ul"},"2022-05-12: v3.0.0 Released"),(0,n.kt)("li",{parentName:"ul"},"2022-11-24: v4.0.0 Released")),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Fun Fact"),": The adding of the emoji-icon was the ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/middyjs/middy/commit/a0acf430bb72f6f6f604e38cfd8a571912b6b4d7"},"2nd commit")," to the project."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/59ac4306.a60dbbe2.js b/assets/js/59ac4306.a60dbbe2.js new file mode 100644 index 000000000..fc079dd30 --- /dev/null +++ b/assets/js/59ac4306.a60dbbe2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[3151],{487:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>h,frontMatter:()=>o,metadata:()=>d,toc:()=>c});var n=r(5893),a=r(1151),l=r(4866),s=r(5162);const o={title:"http-urlencode-body-parser"},i=void 0,d={id:"middlewares/http-urlencode-body-parser",title:"http-urlencode-body-parser",description:"This middleware automatically parses HTTP requests with URL-encoded body (typically the result",source:"@site/docs/middlewares/http-urlencode-body-parser.md",sourceDirName:"middlewares",slug:"/middlewares/http-urlencode-body-parser",permalink:"/docs/middlewares/http-urlencode-body-parser",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/middlewares/http-urlencode-body-parser.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",frontMatter:{title:"http-urlencode-body-parser"},sidebar:"tutorialSidebar",previous:{title:"http-security-headers",permalink:"/docs/middlewares/http-security-headers"},next:{title:"http-urlencode-path-parser",permalink:"/docs/middlewares/http-urlencode-path-parser"}},u={},c=[{value:"Install",id:"install",level:2},{value:"Options",id:"options",level:2},{value:"Sample usage",id:"sample-usage",level:2}];function p(e){const t={code:"code",em:"em",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,a.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(t.p,{children:["This middleware automatically parses HTTP requests with URL-encoded body (typically the result\nof a form submit). Also handles gracefully broken URL encoding as ",(0,n.jsx)(t.em,{children:"Unsupported Media Type"})," (415 errors)"]}),"\n",(0,n.jsx)(t.h2,{id:"install",children:"Install"}),"\n",(0,n.jsx)(t.p,{children:"To install this middleware you can use NPM:"}),"\n",(0,n.jsxs)(l.Z,{groupId:"npm2yarn",children:[(0,n.jsx)(s.Z,{value:"npm",children:(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-bash",children:"npm install --save @middy/http-urlencode-body-parser\n"})})}),(0,n.jsx)(s.Z,{value:"yarn",label:"Yarn",children:(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-bash",children:"yarn add @middy/http-urlencode-body-parser\n"})})}),(0,n.jsx)(s.Z,{value:"pnpm",label:"pnpm",children:(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-bash",children:"pnpm add @middy/http-urlencode-body-parser\n"})})})]}),"\n",(0,n.jsx)(t.h2,{id:"options",children:"Options"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"disableContentTypeError"})," (",(0,n.jsx)(t.code,{children:"boolean"}),") (optional): Skip throwing 415 when ",(0,n.jsx)(t.code,{children:"Content-Type"})," is invalid. Default: ",(0,n.jsx)(t.code,{children:"true"}),", will default to ",(0,n.jsx)(t.code,{children:"false"})," in next major version."]}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"sample-usage",children:"Sample usage"}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-javascript",children:"import middy from '@middy/core'\nimport httpHeaderNormalizer from '@middy/http-header-normalizer'\nimport httpUrlEncodeBodyParser from '@middy/http-urlencode-body-parser'\n\nconst lambdaHandler = (event, context) => {\n return event.body // propagates the body as response\n}\n\nexport const handler = middy()\n .use(httpHeaderNormalizer())\n .use(httpUrlEncodeBodyParser())\n .handler(lambdaHandler)\n\n// When Lambda runs the handler with a sample event...\nconst event = {\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded'\n },\n body: 'frappucino=muffin&goat%5B%5D=scone&pond=moose'\n}\n\nhandler(event, {}, (_, body) => {\n t.deepEqual(body, {\n frappucino: 'muffin',\n 'goat[]': 'scone',\n pond: 'moose'\n })\n})\n"})})]})}function h(e={}){const{wrapper:t}={...(0,a.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(p,{...e})}):p(e)}},5162:(e,t,r)=>{r.d(t,{Z:()=>s});r(7294);var n=r(6010);const a={tabItem:"tabItem_Ymn6"};var l=r(5893);function s(e){let{children:t,hidden:r,className:s}=e;return(0,l.jsx)("div",{role:"tabpanel",className:(0,n.Z)(a.tabItem,s),hidden:r,children:t})}},4866:(e,t,r)=>{r.d(t,{Z:()=>j});var n=r(7294),a=r(6010),l=r(2466),s=r(6550),o=r(469),i=r(1980),d=r(7392),u=r(12);function c(e){return n.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,n.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function p(e){const{values:t,children:r}=e;return(0,n.useMemo)((()=>{const e=t??function(e){return c(e).map((e=>{let{props:{value:t,label:r,attributes:n,default:a}}=e;return{value:t,label:r,attributes:n,default:a}}))}(r);return function(e){const t=(0,d.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[t,r])}function h(e){let{value:t,tabValues:r}=e;return r.some((e=>e.value===t))}function m(e){let{queryString:t=!1,groupId:r}=e;const a=(0,s.k6)(),l=function(e){let{queryString:t=!1,groupId:r}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!r)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return r??null}({queryString:t,groupId:r});return[(0,i._X)(l),(0,n.useCallback)((e=>{if(!l)return;const t=new URLSearchParams(a.location.search);t.set(l,e),a.replace({...a.location,search:t.toString()})}),[l,a])]}function b(e){const{defaultValue:t,queryString:r=!1,groupId:a}=e,l=p(e),[s,i]=(0,n.useState)((()=>function(e){let{defaultValue:t,tabValues:r}=e;if(0===r.length)throw new Error("Docusaurus error: the component requires at least one children component");if(t){if(!h({value:t,tabValues:r}))throw new Error(`Docusaurus error: The has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${r.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const n=r.find((e=>e.default))??r[0];if(!n)throw new Error("Unexpected error: 0 tabValues");return n.value}({defaultValue:t,tabValues:l}))),[d,c]=m({queryString:r,groupId:a}),[b,f]=function(e){let{groupId:t}=e;const r=function(e){return e?`docusaurus.tab.${e}`:null}(t),[a,l]=(0,u.Nk)(r);return[a,(0,n.useCallback)((e=>{r&&l.set(e)}),[r,l])]}({groupId:a}),y=(()=>{const e=d??b;return h({value:e,tabValues:l})?e:null})();(0,o.Z)((()=>{y&&i(y)}),[y]);return{selectedValue:s,selectValue:(0,n.useCallback)((e=>{if(!h({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);i(e),c(e),f(e)}),[c,f,l]),tabValues:l}}var f=r(2389);const y={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var v=r(5893);function g(e){let{className:t,block:r,selectedValue:n,selectValue:s,tabValues:o}=e;const i=[],{blockElementScrollPositionUntilNextRender:d}=(0,l.o5)(),u=e=>{const t=e.currentTarget,r=i.indexOf(t),a=o[r].value;a!==n&&(d(t),s(a))},c=e=>{let t=null;switch(e.key){case"Enter":u(e);break;case"ArrowRight":{const r=i.indexOf(e.currentTarget)+1;t=i[r]??i[0];break}case"ArrowLeft":{const r=i.indexOf(e.currentTarget)-1;t=i[r]??i[i.length-1];break}}t?.focus()};return(0,v.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,a.Z)("tabs",{"tabs--block":r},t),children:o.map((e=>{let{value:t,label:r,attributes:l}=e;return(0,v.jsx)("li",{role:"tab",tabIndex:n===t?0:-1,"aria-selected":n===t,ref:e=>i.push(e),onKeyDown:c,onClick:u,...l,className:(0,a.Z)("tabs__item",y.tabItem,l?.className,{"tabs__item--active":n===t}),children:r??t},t)}))})}function x(e){let{lazy:t,children:r,selectedValue:a}=e;const l=(Array.isArray(r)?r:[r]).filter(Boolean);if(t){const e=l.find((e=>e.props.value===a));return e?(0,n.cloneElement)(e,{className:"margin-top--md"}):null}return(0,v.jsx)("div",{className:"margin-top--md",children:l.map(((e,t)=>(0,n.cloneElement)(e,{key:t,hidden:e.props.value!==a})))})}function w(e){const t=b(e);return(0,v.jsxs)("div",{className:(0,a.Z)("tabs-container",y.tabList),children:[(0,v.jsx)(g,{...e,...t}),(0,v.jsx)(x,{...e,...t})]})}function j(e){const t=(0,f.Z)();return(0,v.jsx)(w,{...e,children:c(e.children)},String(t))}},1151:(e,t,r)=>{r.d(t,{Z:()=>o,a:()=>s});var n=r(7294);const a={},l=n.createContext(a);function s(e){const t=n.useContext(l);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:s(e.components),n.createElement(l.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/59ac4306.c8fe2288.js b/assets/js/59ac4306.c8fe2288.js deleted file mode 100644 index 665e2e912..000000000 --- a/assets/js/59ac4306.c8fe2288.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[3151],{3905:(e,t,r)=>{r.d(t,{Zo:()=>d,kt:()=>b});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=n.createContext({}),i=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},d=function(e){var t=i(e.components);return n.createElement(s.Provider,{value:t},e.children)},c="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,l=e.originalType,s=e.parentName,d=u(e,["components","mdxType","originalType","parentName"]),c=i(r),m=a,b=c["".concat(s,".").concat(m)]||c[m]||p[m]||l;return r?n.createElement(b,o(o({ref:t},d),{},{components:r})):n.createElement(b,o({ref:t},d))}));function b(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=r.length,o=new Array(l);o[0]=m;var u={};for(var s in t)hasOwnProperty.call(t,s)&&(u[s]=t[s]);u.originalType=e,u[c]="string"==typeof e?e:a,o[1]=u;for(var i=2;i{r.d(t,{Z:()=>o});var n=r(7294),a=r(6010);const l={tabItem:"tabItem_Ymn6"};function o(e){let{children:t,hidden:r,className:o}=e;return n.createElement("div",{role:"tabpanel",className:(0,a.Z)(l.tabItem,o),hidden:r},t)}},4866:(e,t,r)=>{r.d(t,{Z:()=>k});var n=r(7462),a=r(7294),l=r(6010),o=r(2466),u=r(6550),s=r(1980),i=r(7392),d=r(12);function c(e){return function(e){return a.Children.map(e,(e=>{if(!e||(0,a.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:r,attributes:n,default:a}}=e;return{value:t,label:r,attributes:n,default:a}}))}function p(e){const{values:t,children:r}=e;return(0,a.useMemo)((()=>{const e=t??c(r);return function(e){const t=(0,i.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[t,r])}function m(e){let{value:t,tabValues:r}=e;return r.some((e=>e.value===t))}function b(e){let{queryString:t=!1,groupId:r}=e;const n=(0,u.k6)(),l=function(e){let{queryString:t=!1,groupId:r}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!r)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return r??null}({queryString:t,groupId:r});return[(0,s._X)(l),(0,a.useCallback)((e=>{if(!l)return;const t=new URLSearchParams(n.location.search);t.set(l,e),n.replace({...n.location,search:t.toString()})}),[l,n])]}function f(e){const{defaultValue:t,queryString:r=!1,groupId:n}=e,l=p(e),[o,u]=(0,a.useState)((()=>function(e){let{defaultValue:t,tabValues:r}=e;if(0===r.length)throw new Error("Docusaurus error: the component requires at least one children component");if(t){if(!m({value:t,tabValues:r}))throw new Error(`Docusaurus error: The has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${r.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const n=r.find((e=>e.default))??r[0];if(!n)throw new Error("Unexpected error: 0 tabValues");return n.value}({defaultValue:t,tabValues:l}))),[s,i]=b({queryString:r,groupId:n}),[c,f]=function(e){let{groupId:t}=e;const r=function(e){return e?`docusaurus.tab.${e}`:null}(t),[n,l]=(0,d.Nk)(r);return[n,(0,a.useCallback)((e=>{r&&l.set(e)}),[r,l])]}({groupId:n}),y=(()=>{const e=s??c;return m({value:e,tabValues:l})?e:null})();(0,a.useLayoutEffect)((()=>{y&&u(y)}),[y]);return{selectedValue:o,selectValue:(0,a.useCallback)((e=>{if(!m({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);u(e),i(e),f(e)}),[i,f,l]),tabValues:l}}var y=r(2389);const h={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};function v(e){let{className:t,block:r,selectedValue:u,selectValue:s,tabValues:i}=e;const d=[],{blockElementScrollPositionUntilNextRender:c}=(0,o.o5)(),p=e=>{const t=e.currentTarget,r=d.indexOf(t),n=i[r].value;n!==u&&(c(t),s(n))},m=e=>{let t=null;switch(e.key){case"Enter":p(e);break;case"ArrowRight":{const r=d.indexOf(e.currentTarget)+1;t=d[r]??d[0];break}case"ArrowLeft":{const r=d.indexOf(e.currentTarget)-1;t=d[r]??d[d.length-1];break}}t?.focus()};return a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":r},t)},i.map((e=>{let{value:t,label:r,attributes:o}=e;return a.createElement("li",(0,n.Z)({role:"tab",tabIndex:u===t?0:-1,"aria-selected":u===t,key:t,ref:e=>d.push(e),onKeyDown:m,onClick:p},o,{className:(0,l.Z)("tabs__item",h.tabItem,o?.className,{"tabs__item--active":u===t})}),r??t)})))}function g(e){let{lazy:t,children:r,selectedValue:n}=e;const l=(Array.isArray(r)?r:[r]).filter(Boolean);if(t){const e=l.find((e=>e.props.value===n));return e?(0,a.cloneElement)(e,{className:"margin-top--md"}):null}return a.createElement("div",{className:"margin-top--md"},l.map(((e,t)=>(0,a.cloneElement)(e,{key:t,hidden:e.props.value!==n}))))}function w(e){const t=f(e);return a.createElement("div",{className:(0,l.Z)("tabs-container",h.tabList)},a.createElement(v,(0,n.Z)({},e,t)),a.createElement(g,(0,n.Z)({},e,t)))}function k(e){const t=(0,y.Z)();return a.createElement(w,(0,n.Z)({key:String(t)},e))}},6381:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>d,contentTitle:()=>s,default:()=>b,frontMatter:()=>u,metadata:()=>i,toc:()=>c});var n=r(7462),a=(r(7294),r(3905)),l=r(4866),o=r(5162);const u={title:"http-urlencode-body-parser"},s=void 0,i={unversionedId:"middlewares/http-urlencode-body-parser",id:"middlewares/http-urlencode-body-parser",title:"http-urlencode-body-parser",description:"This middleware automatically parses HTTP requests with URL-encoded body (typically the result",source:"@site/docs/middlewares/http-urlencode-body-parser.md",sourceDirName:"middlewares",slug:"/middlewares/http-urlencode-body-parser",permalink:"/docs/middlewares/http-urlencode-body-parser",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/middlewares/http-urlencode-body-parser.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",frontMatter:{title:"http-urlencode-body-parser"},sidebar:"tutorialSidebar",previous:{title:"http-security-headers",permalink:"/docs/middlewares/http-security-headers"},next:{title:"http-urlencode-path-parser",permalink:"/docs/middlewares/http-urlencode-path-parser"}},d={},c=[{value:"Install",id:"install",level:2},{value:"Options",id:"options",level:2},{value:"Sample usage",id:"sample-usage",level:2}],p={toc:c},m="wrapper";function b(e){let{components:t,...r}=e;return(0,a.kt)(m,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"This middleware automatically parses HTTP requests with URL-encoded body (typically the result\nof a form submit). Also handles gracefully broken URL encoding as ",(0,a.kt)("em",{parentName:"p"},"Unsupported Media Type")," (415 errors)"),(0,a.kt)("h2",{id:"install"},"Install"),(0,a.kt)("p",null,"To install this middleware you can use NPM:"),(0,a.kt)(l.Z,{groupId:"npm2yarn",mdxType:"Tabs"},(0,a.kt)(o.Z,{value:"npm",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-bash"},"npm install --save @middy/http-urlencode-body-parser\n"))),(0,a.kt)(o.Z,{value:"yarn",label:"Yarn",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-bash"},"yarn add @middy/http-urlencode-body-parser\n"))),(0,a.kt)(o.Z,{value:"pnpm",label:"pnpm",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-bash"},"pnpm add @middy/http-urlencode-body-parser\n")))),(0,a.kt)("h2",{id:"options"},"Options"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"disableContentTypeError")," (",(0,a.kt)("inlineCode",{parentName:"li"},"boolean"),") (optional): Skip throwing 415 when ",(0,a.kt)("inlineCode",{parentName:"li"},"Content-Type")," is invalid. Default: ",(0,a.kt)("inlineCode",{parentName:"li"},"true"),", will default to ",(0,a.kt)("inlineCode",{parentName:"li"},"false")," in next major version.")),(0,a.kt)("h2",{id:"sample-usage"},"Sample usage"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\nimport httpHeaderNormalizer from '@middy/http-header-normalizer'\nimport httpUrlEncodeBodyParser from '@middy/http-urlencode-body-parser'\n\nconst handler = middy((event, context) => {\n return event.body // propagates the body as response\n})\n\nhandler.use(httpHeaderNormalizer()).use(httpUrlEncodeBodyParser())\n\n// When Lambda runs the handler with a sample event...\nconst event = {\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded'\n },\n body: 'frappucino=muffin&goat%5B%5D=scone&pond=moose'\n}\n\nhandler(event, {}, (_, body) => {\n t.deepEqual(body, {\n frappucino: 'muffin',\n 'goat[]': 'scone',\n pond: 'moose'\n })\n})\n")))}b.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5a01598e.205a3971.js b/assets/js/5a01598e.205a3971.js new file mode 100644 index 000000000..a42321023 --- /dev/null +++ b/assets/js/5a01598e.205a3971.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[4297],{1627:(e,r,n)=>{n.r(r),n.d(r,{assets:()=>a,contentTitle:()=>l,default:()=>c,frontMatter:()=>i,metadata:()=>t,toc:()=>o});var s=n(5893),d=n(1151);const i={title:"Upgrade 3.x -> 4.x",sidebar_position:10},l=void 0,t={id:"upgrade/3-4",title:"Upgrade 3.x -> 4.x",description:'aka "The AWS SDK v3 Update"',source:"@site/docs/upgrade/3-4.md",sourceDirName:"upgrade",slug:"/upgrade/3-4",permalink:"/docs/upgrade/3-4",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/upgrade/3-4.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",sidebarPosition:10,frontMatter:{title:"Upgrade 3.x -> 4.x",sidebar_position:10},sidebar:"tutorialSidebar",previous:{title:"Upgrade 4.x -> 5.x",permalink:"/docs/upgrade/4-5"},next:{title:"Upgrade 2.x -> 3.x",permalink:"/docs/upgrade/2-3"}},a={},o=[{value:"Notable changes",id:"notable-changes",level:2},{value:"Core",id:"core",level:2},{value:"Util",id:"util",level:2},{value:"Middleware",id:"middleware",level:2},{value:"cloudwatch-metrics",id:"cloudwatch-metrics",level:3},{value:"do-not-wait-for-empty-event-loop",id:"do-not-wait-for-empty-event-loop",level:3},{value:"error-logger",id:"error-logger",level:3},{value:"event-normalizer",id:"event-normalizer",level:3},{value:"http-content-encoding",id:"http-content-encoding",level:3},{value:"http-content-negotiation",id:"http-content-negotiation",level:3},{value:"http-cors",id:"http-cors",level:3},{value:"http-error-handler",id:"http-error-handler",level:3},{value:"http-event-normalizer",id:"http-event-normalizer",level:3},{value:"http-header-normalizer",id:"http-header-normalizer",level:3},{value:"http-json-body-parser",id:"http-json-body-parser",level:3},{value:"http-multipart-body-parser",id:"http-multipart-body-parser",level:3},{value:"http-partial-response",id:"http-partial-response",level:3},{value:"http-response-serializer",id:"http-response-serializer",level:3},{value:"http-router",id:"http-router",level:3},{value:"http-security-headers",id:"http-security-headers",level:3},{value:"http-urlencode-body-parser",id:"http-urlencode-body-parser",level:3},{value:"http-urlencode-path-parser",id:"http-urlencode-path-parser",level:3},{value:"input-output-logger",id:"input-output-logger",level:3},{value:"rds-signer",id:"rds-signer",level:3},{value:"s3-object-response",id:"s3-object-response",level:3},{value:"secrets-manager",id:"secrets-manager",level:3},{value:"service-discovery",id:"service-discovery",level:3},{value:"sqs-partial-batch-failure",id:"sqs-partial-batch-failure",level:3},{value:"ssm",id:"ssm",level:3},{value:"sts",id:"sts",level:3},{value:"validator",id:"validator",level:3},{value:"warmup",id:"warmup",level:3},{value:"ws-json-body-parser",id:"ws-json-body-parser",level:3},{value:"ws-response",id:"ws-response",level:3},{value:"ws-router",id:"ws-router",level:3},{value:"Notes",id:"notes",level:2}];function h(e){const r={a:"a",code:"code",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,d.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(r.p,{children:'aka "The AWS SDK v3 Update"'}),"\n",(0,s.jsx)(r.p,{children:"Version 4.x of Middy no longer supports Node.js versions 14.x. You are highly encouraged to move to Node.js 18.x."}),"\n",(0,s.jsx)(r.h2,{id:"notable-changes",children:"Notable changes"}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsx)(r.li,{children:"Middy now uses AWS SDK v3 by default."}),"\n"]}),"\n",(0,s.jsx)(r.h2,{id:"core",children:"Core"}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:["Remove polyfill for ",(0,s.jsx)(r.code,{children:"AbortControler"})]}),"\n",(0,s.jsxs)(r.li,{children:["Remove polyfill for ",(0,s.jsx)(r.code,{children:"timers/promises"})]}),"\n"]}),"\n",(0,s.jsx)(r.h2,{id:"util",children:"Util"}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:[(0,s.jsx)(r.code,{children:"normalizeResponse"})," now will set the ",(0,s.jsx)(r.code,{children:"statusCode"})," to ",(0,s.jsx)(r.code,{children:"200"})," when casting to a new object or ",(0,s.jsx)(r.code,{children:"500"})," when missing ",(0,s.jsx)(r.strong,{children:"Breaking Change"})]}),"\n"]}),"\n",(0,s.jsx)(r.h2,{id:"middleware",children:"Middleware"}),"\n",(0,s.jsx)(r.h3,{id:"cloudwatch-metrics",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/cloudwatch-metrics",children:"cloudwatch-metrics"})}),"\n",(0,s.jsx)(r.p,{children:"No change"}),"\n",(0,s.jsx)(r.h3,{id:"do-not-wait-for-empty-event-loop",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/do-not-wait-for-empty-event-loop",children:"do-not-wait-for-empty-event-loop"})}),"\n",(0,s.jsx)(r.p,{children:"No change"}),"\n",(0,s.jsx)(r.h3,{id:"error-logger",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/error-logger",children:"error-logger"})}),"\n",(0,s.jsx)(r.p,{children:"No change"}),"\n",(0,s.jsx)(r.h3,{id:"event-normalizer",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/event-normalizer",children:"event-normalizer"})}),"\n",(0,s.jsx)(r.p,{children:"No change"}),"\n",(0,s.jsx)(r.h3,{id:"http-content-encoding",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/http-content-encoding",children:"http-content-encoding"})}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:["Removed body as stream support, will be brought back as a new middleware in a future middleware ",(0,s.jsx)(r.strong,{children:"Breaking Change"})]}),"\n"]}),"\n",(0,s.jsx)(r.h3,{id:"http-content-negotiation",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/http-content-negotiation",children:"http-content-negotiation"})}),"\n",(0,s.jsx)(r.p,{children:"No change"}),"\n",(0,s.jsx)(r.h3,{id:"http-cors",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/http-cors",children:"http-cors"})}),"\n",(0,s.jsx)(r.p,{children:"No change"}),"\n",(0,s.jsx)(r.h3,{id:"http-error-handler",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/http-error-handler",children:"http-error-handler"})}),"\n",(0,s.jsx)(r.p,{children:"No change"}),"\n",(0,s.jsx)(r.h3,{id:"http-event-normalizer",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/http-event-normalizer",children:"http-event-normalizer"})}),"\n",(0,s.jsx)(r.p,{children:"No change"}),"\n",(0,s.jsx)(r.h3,{id:"http-header-normalizer",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/http-header-normalizer",children:"http-header-normalizer"})}),"\n",(0,s.jsx)(r.p,{children:"No change"}),"\n",(0,s.jsx)(r.h3,{id:"http-json-body-parser",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/http-json-body-parser",children:"http-json-body-parser"})}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:["Deprecate ",(0,s.jsx)(r.code,{children:"event.rawBody"})," ",(0,s.jsx)(r.strong,{children:"Breaking Change"})]}),"\n"]}),"\n",(0,s.jsx)(r.p,{children:"You can add in an inline middleware as a workaround."}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-javascript",children:" .before((request) => {\n request.event.rawBody = request.event.body\n })\n .use(httpJSONBodyParserMiddleware())\n"})}),"\n",(0,s.jsxs)(r.p,{children:["See ",(0,s.jsx)(r.a,{href:"https://github.com/middyjs/middy/issues/945",children:"https://github.com/middyjs/middy/issues/945"})," for discussion and reasoning."]}),"\n",(0,s.jsx)(r.h3,{id:"http-multipart-body-parser",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/http-multipart-body-parser",children:"http-multipart-body-parser"})}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:["Add new option to set ",(0,s.jsx)(r.code,{children:"charset"})]}),"\n"]}),"\n",(0,s.jsx)(r.h3,{id:"http-partial-response",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/http-partial-response",children:"http-partial-response"})}),"\n",(0,s.jsx)(r.p,{children:"No change"}),"\n",(0,s.jsx)(r.h3,{id:"http-response-serializer",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/http-response-serializer",children:"http-response-serializer"})}),"\n",(0,s.jsx)(r.p,{children:"No change"}),"\n",(0,s.jsx)(r.h3,{id:"http-router",children:(0,s.jsx)(r.a,{href:"/docs/routers/http-router",children:"http-router"})}),"\n",(0,s.jsx)(r.p,{children:"No change"}),"\n",(0,s.jsx)(r.h3,{id:"http-security-headers",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/http-security-headers",children:"http-security-headers"})}),"\n",(0,s.jsx)(r.p,{children:"No change"}),"\n",(0,s.jsx)(r.h3,{id:"http-urlencode-body-parser",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/http-urlencode-body-parser",children:"http-urlencode-body-parser"})}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:["Now throws 422 when unable to parse JSON ",(0,s.jsx)(r.strong,{children:"Breaking Change"})]}),"\n"]}),"\n",(0,s.jsx)(r.h3,{id:"http-urlencode-path-parser",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/http-urlencode-path-parser",children:"http-urlencode-path-parser"})}),"\n",(0,s.jsx)(r.p,{children:"No change"}),"\n",(0,s.jsx)(r.h3,{id:"input-output-logger",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/input-output-logger",children:"input-output-logger"})}),"\n",(0,s.jsx)(r.p,{children:"No change"}),"\n",(0,s.jsx)(r.h3,{id:"rds-signer",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/rds-signer",children:"rds-signer"})}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:["Updated to use AWS SDK v3 ",(0,s.jsx)(r.strong,{children:"Breaking Change"})]}),"\n"]}),"\n",(0,s.jsx)(r.h3,{id:"s3-object-response",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/s3-object-response",children:"s3-object-response"})}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:["Updated to use AWS SDK v3 ",(0,s.jsx)(r.strong,{children:"Breaking Change"})]}),"\n"]}),"\n",(0,s.jsx)(r.h3,{id:"secrets-manager",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/secrets-manager",children:"secrets-manager"})}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:["Updated to use AWS SDK v3 ",(0,s.jsx)(r.strong,{children:"Breaking Change"})]}),"\n"]}),"\n",(0,s.jsx)(r.h3,{id:"service-discovery",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/service-discovery",children:"service-discovery"})}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:["Updated to use AWS SDK v3 ",(0,s.jsx)(r.strong,{children:"Breaking Change"})]}),"\n"]}),"\n",(0,s.jsx)(r.h3,{id:"sqs-partial-batch-failure",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/sqs-partial-batch-failure",children:"sqs-partial-batch-failure"})}),"\n",(0,s.jsx)(r.p,{children:"No change"}),"\n",(0,s.jsx)(r.h3,{id:"ssm",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/ssm",children:"ssm"})}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:["Updated to use AWS SDK v3 ",(0,s.jsx)(r.strong,{children:"Breaking Change"})]}),"\n"]}),"\n",(0,s.jsx)(r.h3,{id:"sts",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/sts",children:"sts"})}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:["Updated to use AWS SDK v3 ",(0,s.jsx)(r.strong,{children:"Breaking Change"})]}),"\n"]}),"\n",(0,s.jsx)(r.h3,{id:"validator",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/validator",children:"validator"})}),"\n",(0,s.jsx)(r.p,{children:"We've put a lot of work into making this middleware bundle smaller and faster by default, while allowing for opting into more functionality."}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:["Deprecate ",(0,s.jsx)(r.code,{children:"inputSchema"})," and ",(0,s.jsx)(r.code,{children:"outputSchema"})," options ",(0,s.jsx)(r.strong,{children:"Breaking Change"})]}),"\n",(0,s.jsxs)(r.li,{children:["Deprecated ",(0,s.jsx)(r.code,{children:"i18nEnabled"})," ",(0,s.jsx)(r.strong,{children:"Breaking Change"})]}),"\n",(0,s.jsxs)(r.li,{children:["Must now pass in ",(0,s.jsx)(r.code,{children:"defaultLanguage"})," localizations to ",(0,s.jsx)(r.code,{children:"languages"})," ",(0,s.jsx)(r.strong,{children:"Breaking Change"})]}),"\n",(0,s.jsxs)(r.li,{children:["Added in ",(0,s.jsx)(r.code,{children:"ajv-error"})," support"]}),"\n",(0,s.jsxs)(r.li,{children:["Pulled ",(0,s.jsx)(r.code,{children:"transpileSchema"})," out of middleware to allow for tree shaking and pre-compile option ",(0,s.jsx)(r.strong,{children:"Breaking Change"})]}),"\n",(0,s.jsxs)(r.li,{children:["Added in ",(0,s.jsx)(r.code,{children:"transpileLocale"})," to allow for custom internationalization of error messages including ",(0,s.jsx)(r.code,{children:"errorMessage"})]}),"\n"]}),"\n",(0,s.jsx)(r.p,{children:"How to update use of middleware"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-javascript",children:"import validatorMiddleware from '@middy/validator'\n// 1. Import transpileSchema\nimport { transpileSchema } from '@middy/validator/transpile'\n\nexport const handler = middy(...)\n .use(validatorMiddleware({\n // 2. Wrap schemas with transpileSchema\n eventSchema: transpileSchema(eventJsonSchema)\n }))\n"})}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-javascript",children:"import validatorMiddleware from '@middy/validator'\n// 1. Import localizations\nimport { en, fr } from 'ajv-ftl-i18n'\n\nexport const handler = middy(...)\n .use(validatorMiddleware({\n eventSchema: transpileSchema(eventJsonSchema),\n // 2. Add localizations in\n langauges: { en, fr }\n }))\n"})}),"\n",(0,s.jsx)(r.h3,{id:"warmup",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/warmup",children:"warmup"})}),"\n",(0,s.jsx)(r.p,{children:"No change"}),"\n",(0,s.jsx)(r.h3,{id:"ws-json-body-parser",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/ws-json-body-parser",children:"ws-json-body-parser"})}),"\n",(0,s.jsx)(r.p,{children:"No change"}),"\n",(0,s.jsx)(r.h3,{id:"ws-response",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/ws-response",children:"ws-response"})}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:["Updated to use AWS SDK v3 ",(0,s.jsx)(r.strong,{children:"Breaking Change"})]}),"\n"]}),"\n",(0,s.jsx)(r.h3,{id:"ws-router",children:(0,s.jsx)(r.a,{href:"/docs/routers/ws-router",children:"ws-router"})}),"\n",(0,s.jsx)(r.p,{children:"No change"}),"\n",(0,s.jsx)(r.h2,{id:"notes",children:"Notes"}),"\n",(0,s.jsx)(r.p,{children:"None"})]})}function c(e={}){const{wrapper:r}={...(0,d.a)(),...e.components};return r?(0,s.jsx)(r,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}},1151:(e,r,n)=>{n.d(r,{Z:()=>t,a:()=>l});var s=n(7294);const d={},i=s.createContext(d);function l(e){const r=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function t(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(d):e.components||d:l(e.components),s.createElement(i.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/5a01598e.3a78e8b4.js b/assets/js/5a01598e.3a78e8b4.js deleted file mode 100644 index b24712dd3..000000000 --- a/assets/js/5a01598e.3a78e8b4.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[4297],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>c});var a=r(7294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function o(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var d=a.createContext({}),s=function(e){var t=a.useContext(d),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},p=function(e){var t=s(e.components);return a.createElement(d.Provider,{value:t},e.children)},u="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,l=e.originalType,d=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),u=s(r),m=n,c=u["".concat(d,".").concat(m)]||u[m]||h[m]||l;return r?a.createElement(c,o(o({ref:t},p),{},{components:r})):a.createElement(c,o({ref:t},p))}));function c(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=r.length,o=new Array(l);o[0]=m;var i={};for(var d in t)hasOwnProperty.call(t,d)&&(i[d]=t[d]);i.originalType=e,i[u]="string"==typeof e?e:n,o[1]=i;for(var s=2;s{r.r(t),r.d(t,{assets:()=>d,contentTitle:()=>o,default:()=>h,frontMatter:()=>l,metadata:()=>i,toc:()=>s});var a=r(7462),n=(r(7294),r(3905));const l={title:"Upgrade 3.x -> 4.x",sidebar_position:10},o=void 0,i={unversionedId:"upgrade/3-4",id:"upgrade/3-4",title:"Upgrade 3.x -> 4.x",description:"Version 4.x of Middy no longer supports Node.js versions 14.x. You are highly encouraged to move to Node.js 18.x.",source:"@site/docs/upgrade/3-4.md",sourceDirName:"upgrade",slug:"/upgrade/3-4",permalink:"/docs/upgrade/3-4",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/upgrade/3-4.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",sidebarPosition:10,frontMatter:{title:"Upgrade 3.x -> 4.x",sidebar_position:10},sidebar:"tutorialSidebar",previous:{title:"Upgrade",permalink:"/docs/category/upgrade"},next:{title:"Upgrade 2.x -> 3.x",permalink:"/docs/upgrade/2-3"}},d={},s=[{value:"Notable changes",id:"notable-changes",level:2},{value:"Core",id:"core",level:2},{value:"Util",id:"util",level:2},{value:"Middleware",id:"middleware",level:2},{value:"cloudwatch-metrics",id:"cloudwatch-metrics",level:3},{value:"do-not-wait-for-empty-event-loop",id:"do-not-wait-for-empty-event-loop",level:3},{value:"error-logger",id:"error-logger",level:3},{value:"event-normalizer",id:"event-normalizer",level:3},{value:"http-content-encoding",id:"http-content-encoding",level:3},{value:"http-content-negotiation",id:"http-content-negotiation",level:3},{value:"http-cors",id:"http-cors",level:3},{value:"http-error-handler",id:"http-error-handler",level:3},{value:"http-event-normalizer",id:"http-event-normalizer",level:3},{value:"http-header-normalizer",id:"http-header-normalizer",level:3},{value:"http-json-body-parser",id:"http-json-body-parser",level:3},{value:"http-multipart-body-parser",id:"http-multipart-body-parser",level:3},{value:"http-partial-response",id:"http-partial-response",level:3},{value:"http-response-serializer",id:"http-response-serializer",level:3},{value:"http-router",id:"http-router",level:3},{value:"http-security-headers",id:"http-security-headers",level:3},{value:"http-urlencode-body-parser",id:"http-urlencode-body-parser",level:3},{value:"http-urlencode-path-parser",id:"http-urlencode-path-parser",level:3},{value:"input-output-logger",id:"input-output-logger",level:3},{value:"rds-signer",id:"rds-signer",level:3},{value:"s3-object-response",id:"s3-object-response",level:3},{value:"secrets-manager",id:"secrets-manager",level:3},{value:"service-discovery",id:"service-discovery",level:3},{value:"sqs-partial-batch-failure",id:"sqs-partial-batch-failure",level:3},{value:"ssm",id:"ssm",level:3},{value:"sts",id:"sts",level:3},{value:"validator",id:"validator",level:3},{value:"warmup",id:"warmup",level:3},{value:"ws-json-body-parser",id:"ws-json-body-parser",level:3},{value:"ws-response",id:"ws-response",level:3},{value:"ws-router",id:"ws-router",level:3},{value:"Notes",id:"notes",level:2}],p={toc:s},u="wrapper";function h(e){let{components:t,...r}=e;return(0,n.kt)(u,(0,a.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"Version 4.x of Middy no longer supports Node.js versions 14.x. You are highly encouraged to move to Node.js 18.x."),(0,n.kt)("p",null,"Middy now uses AWS SDK v3 by default."),(0,n.kt)("h2",{id:"notable-changes"},"Notable changes"),(0,n.kt)("h2",{id:"core"},"Core"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Remove polyfill for ",(0,n.kt)("inlineCode",{parentName:"li"},"AbortControler")),(0,n.kt)("li",{parentName:"ul"},"Remove polyfill for ",(0,n.kt)("inlineCode",{parentName:"li"},"timers/promises"))),(0,n.kt)("h2",{id:"util"},"Util"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"normalizeResponse")," now will set the ",(0,n.kt)("inlineCode",{parentName:"li"},"statusCode")," to ",(0,n.kt)("inlineCode",{parentName:"li"},"200")," when casting to a new object or ",(0,n.kt)("inlineCode",{parentName:"li"},"500")," when missing ",(0,n.kt)("strong",{parentName:"li"},"Breaking Change"))),(0,n.kt)("h2",{id:"middleware"},"Middleware"),(0,n.kt)("h3",{id:"cloudwatch-metrics"},(0,n.kt)("a",{parentName:"h3",href:"/docs/middlewares/cloudwatch-metrics"},"cloudwatch-metrics")),(0,n.kt)("p",null,"No change"),(0,n.kt)("h3",{id:"do-not-wait-for-empty-event-loop"},(0,n.kt)("a",{parentName:"h3",href:"/docs/middlewares/do-not-wait-for-empty-event-loop"},"do-not-wait-for-empty-event-loop")),(0,n.kt)("p",null,"No change"),(0,n.kt)("h3",{id:"error-logger"},(0,n.kt)("a",{parentName:"h3",href:"/docs/middlewares/error-logger"},"error-logger")),(0,n.kt)("p",null,"No change"),(0,n.kt)("h3",{id:"event-normalizer"},(0,n.kt)("a",{parentName:"h3",href:"/docs/middlewares/event-normalizer"},"event-normalizer")),(0,n.kt)("p",null,"No change"),(0,n.kt)("h3",{id:"http-content-encoding"},(0,n.kt)("a",{parentName:"h3",href:"/docs/middlewares/http-content-encoding"},"http-content-encoding")),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Removed body as stream support, will be brought back as a new middleware in a future middleware ",(0,n.kt)("strong",{parentName:"li"},"Breaking Change"))),(0,n.kt)("h3",{id:"http-content-negotiation"},(0,n.kt)("a",{parentName:"h3",href:"/docs/middlewares/http-content-negotiation"},"http-content-negotiation")),(0,n.kt)("p",null,"No change"),(0,n.kt)("h3",{id:"http-cors"},(0,n.kt)("a",{parentName:"h3",href:"/docs/middlewares/http-cors"},"http-cors")),(0,n.kt)("p",null,"No change"),(0,n.kt)("h3",{id:"http-error-handler"},(0,n.kt)("a",{parentName:"h3",href:"/docs/middlewares/http-error-handler"},"http-error-handler")),(0,n.kt)("p",null,"No change"),(0,n.kt)("h3",{id:"http-event-normalizer"},(0,n.kt)("a",{parentName:"h3",href:"/docs/middlewares/http-event-normalizer"},"http-event-normalizer")),(0,n.kt)("p",null,"No change"),(0,n.kt)("h3",{id:"http-header-normalizer"},(0,n.kt)("a",{parentName:"h3",href:"/docs/middlewares/http-header-normalizer"},"http-header-normalizer")),(0,n.kt)("p",null,"No change"),(0,n.kt)("h3",{id:"http-json-body-parser"},(0,n.kt)("a",{parentName:"h3",href:"/docs/middlewares/http-json-body-parser"},"http-json-body-parser")),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Deprecate ",(0,n.kt)("inlineCode",{parentName:"li"},"event.rawBody")," ",(0,n.kt)("strong",{parentName:"li"},"Breaking Change"))),(0,n.kt)("p",null,"You can add in an inline middleware as a workaround."),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-javascript"}," .before((request) => {\n request.event.rawBody = request.event.body\n })\n .use(httpJSONBodyParserMiddleware())\n")),(0,n.kt)("p",null,"See ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/middyjs/middy/issues/945"},"https://github.com/middyjs/middy/issues/945")," for discussion and reasoning."),(0,n.kt)("h3",{id:"http-multipart-body-parser"},(0,n.kt)("a",{parentName:"h3",href:"/docs/middlewares/http-multipart-body-parser"},"http-multipart-body-parser")),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Add new option to set ",(0,n.kt)("inlineCode",{parentName:"li"},"charset"))),(0,n.kt)("h3",{id:"http-partial-response"},(0,n.kt)("a",{parentName:"h3",href:"/docs/middlewares/http-partial-response"},"http-partial-response")),(0,n.kt)("p",null,"No change"),(0,n.kt)("h3",{id:"http-response-serializer"},(0,n.kt)("a",{parentName:"h3",href:"/docs/middlewares/http-response-serializer"},"http-response-serializer")),(0,n.kt)("p",null,"No change"),(0,n.kt)("h3",{id:"http-router"},(0,n.kt)("a",{parentName:"h3",href:"/docs/routers/http-router"},"http-router")),(0,n.kt)("p",null,"No change"),(0,n.kt)("h3",{id:"http-security-headers"},(0,n.kt)("a",{parentName:"h3",href:"/docs/middlewares/http-security-headers"},"http-security-headers")),(0,n.kt)("p",null,"No change"),(0,n.kt)("h3",{id:"http-urlencode-body-parser"},(0,n.kt)("a",{parentName:"h3",href:"/docs/middlewares/http-urlencode-body-parser"},"http-urlencode-body-parser")),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Now throws 422 when unable to parse JSON ",(0,n.kt)("strong",{parentName:"li"},"Breaking Change"))),(0,n.kt)("h3",{id:"http-urlencode-path-parser"},(0,n.kt)("a",{parentName:"h3",href:"/docs/middlewares/http-urlencode-path-parser"},"http-urlencode-path-parser")),(0,n.kt)("p",null,"No change"),(0,n.kt)("h3",{id:"input-output-logger"},(0,n.kt)("a",{parentName:"h3",href:"/docs/middlewares/input-output-logger"},"input-output-logger")),(0,n.kt)("p",null,"No change"),(0,n.kt)("h3",{id:"rds-signer"},(0,n.kt)("a",{parentName:"h3",href:"/docs/middlewares/rds-signer"},"rds-signer")),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Updated to use AWS SDK v3 ",(0,n.kt)("strong",{parentName:"li"},"Breaking Change"))),(0,n.kt)("h3",{id:"s3-object-response"},(0,n.kt)("a",{parentName:"h3",href:"/docs/middlewares/s3-object-response"},"s3-object-response")),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Updated to use AWS SDK v3 ",(0,n.kt)("strong",{parentName:"li"},"Breaking Change"))),(0,n.kt)("h3",{id:"secrets-manager"},(0,n.kt)("a",{parentName:"h3",href:"/docs/middlewares/secrets-manager"},"secrets-manager")),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Updated to use AWS SDK v3 ",(0,n.kt)("strong",{parentName:"li"},"Breaking Change"))),(0,n.kt)("h3",{id:"service-discovery"},(0,n.kt)("a",{parentName:"h3",href:"/docs/middlewares/service-discovery"},"service-discovery")),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Updated to use AWS SDK v3 ",(0,n.kt)("strong",{parentName:"li"},"Breaking Change"))),(0,n.kt)("h3",{id:"sqs-partial-batch-failure"},(0,n.kt)("a",{parentName:"h3",href:"/docs/middlewares/sqs-partial-batch-failure"},"sqs-partial-batch-failure")),(0,n.kt)("p",null,"No change"),(0,n.kt)("h3",{id:"ssm"},(0,n.kt)("a",{parentName:"h3",href:"/docs/middlewares/ssm"},"ssm")),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Updated to use AWS SDK v3 ",(0,n.kt)("strong",{parentName:"li"},"Breaking Change"))),(0,n.kt)("h3",{id:"sts"},(0,n.kt)("a",{parentName:"h3",href:"/docs/middlewares/sts"},"sts")),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Updated to use AWS SDK v3 ",(0,n.kt)("strong",{parentName:"li"},"Breaking Change"))),(0,n.kt)("h3",{id:"validator"},(0,n.kt)("a",{parentName:"h3",href:"/docs/middlewares/validator"},"validator")),(0,n.kt)("p",null,"We've put a lot of work into making this middleware bundle smaller and faster by default, while allowing for opting into more functionality."),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Deprecate ",(0,n.kt)("inlineCode",{parentName:"li"},"inputSchema")," and ",(0,n.kt)("inlineCode",{parentName:"li"},"outputSchema")," options ",(0,n.kt)("strong",{parentName:"li"},"Breaking Change")),(0,n.kt)("li",{parentName:"ul"},"Deprecated ",(0,n.kt)("inlineCode",{parentName:"li"},"i18nEnabled")," ",(0,n.kt)("strong",{parentName:"li"},"Breaking Change")),(0,n.kt)("li",{parentName:"ul"},"Must now pass in ",(0,n.kt)("inlineCode",{parentName:"li"},"defaultLanguage")," localizations to ",(0,n.kt)("inlineCode",{parentName:"li"},"languages")," ",(0,n.kt)("strong",{parentName:"li"},"Breaking Change")),(0,n.kt)("li",{parentName:"ul"},"Added in ",(0,n.kt)("inlineCode",{parentName:"li"},"ajv-error")," support"),(0,n.kt)("li",{parentName:"ul"},"Pulled ",(0,n.kt)("inlineCode",{parentName:"li"},"transpileSchema")," out of middleware to allow for tree shaking and pre-compile option ",(0,n.kt)("strong",{parentName:"li"},"Breaking Change")),(0,n.kt)("li",{parentName:"ul"},"Added in ",(0,n.kt)("inlineCode",{parentName:"li"},"transpileLocale")," to allow for custom internationalization of error messages including ",(0,n.kt)("inlineCode",{parentName:"li"},"errorMessage"))),(0,n.kt)("p",null,"How to update use of middleware"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-javascript"},"import validatorMiddleware from '@middy/validator'\n// 1. Import transpileSchema\nimport { transpileSchema } from '@middy/validator/transpile'\n\nexport const handler = middy(...)\n .use(validatorMiddleware({\n // 2. Wrap schemas with transpileSchema\n eventSchema: transpileSchema(eventJsonSchema)\n }))\n")),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-javascript"},"import validatorMiddleware from '@middy/validator'\n// 1. Import localizations\nimport { en, fr } from 'ajv-ftl-i18n'\n\nexport const handler = middy(...)\n .use(validatorMiddleware({\n eventSchema: transpileSchema(eventJsonSchema),\n // 2. Add localizations in\n langauges: { en, fr }\n }))\n")),(0,n.kt)("h3",{id:"warmup"},(0,n.kt)("a",{parentName:"h3",href:"/docs/middlewares/warmup"},"warmup")),(0,n.kt)("p",null,"No change"),(0,n.kt)("h3",{id:"ws-json-body-parser"},(0,n.kt)("a",{parentName:"h3",href:"/docs/middlewares/ws-json-body-parser"},"ws-json-body-parser")),(0,n.kt)("p",null,"No change"),(0,n.kt)("h3",{id:"ws-response"},(0,n.kt)("a",{parentName:"h3",href:"/docs/middlewares/ws-response"},"ws-response")),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Updated to use AWS SDK v3 ",(0,n.kt)("strong",{parentName:"li"},"Breaking Change"))),(0,n.kt)("h3",{id:"ws-router"},(0,n.kt)("a",{parentName:"h3",href:"/docs/routers/ws-router"},"ws-router")),(0,n.kt)("p",null,"No change"),(0,n.kt)("h2",{id:"notes"},"Notes"),(0,n.kt)("p",null,"None"))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5afe45f2.49392e1d.js b/assets/js/5afe45f2.49392e1d.js deleted file mode 100644 index 52afe593d..000000000 --- a/assets/js/5afe45f2.49392e1d.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[5938],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>f});var n=a(7294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var s=n.createContext({}),u=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},d=function(e){var t=u(e.components);return n.createElement(s.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},p=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,l=e.originalType,s=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),c=u(a),p=r,f=c["".concat(s,".").concat(p)]||c[p]||m[p]||l;return a?n.createElement(f,o(o({ref:t},d),{},{components:a})):n.createElement(f,o({ref:t},d))}));function f(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=a.length,o=new Array(l);o[0]=p;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[c]="string"==typeof e?e:r,o[1]=i;for(var u=2;u{a.d(t,{Z:()=>o});var n=a(7294),r=a(6010);const l={tabItem:"tabItem_Ymn6"};function o(e){let{children:t,hidden:a,className:o}=e;return n.createElement("div",{role:"tabpanel",className:(0,r.Z)(l.tabItem,o),hidden:a},t)}},4866:(e,t,a)=>{a.d(t,{Z:()=>k});var n=a(7462),r=a(7294),l=a(6010),o=a(2466),i=a(6550),s=a(1980),u=a(7392),d=a(12);function c(e){return function(e){return r.Children.map(e,(e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:a,attributes:n,default:r}}=e;return{value:t,label:a,attributes:n,default:r}}))}function m(e){const{values:t,children:a}=e;return(0,r.useMemo)((()=>{const e=t??c(a);return function(e){const t=(0,u.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[t,a])}function p(e){let{value:t,tabValues:a}=e;return a.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:a}=e;const n=(0,i.k6)(),l=function(e){let{queryString:t=!1,groupId:a}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!a)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return a??null}({queryString:t,groupId:a});return[(0,s._X)(l),(0,r.useCallback)((e=>{if(!l)return;const t=new URLSearchParams(n.location.search);t.set(l,e),n.replace({...n.location,search:t.toString()})}),[l,n])]}function b(e){const{defaultValue:t,queryString:a=!1,groupId:n}=e,l=m(e),[o,i]=(0,r.useState)((()=>function(e){let{defaultValue:t,tabValues:a}=e;if(0===a.length)throw new Error("Docusaurus error: the component requires at least one children component");if(t){if(!p({value:t,tabValues:a}))throw new Error(`Docusaurus error: The has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${a.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const n=a.find((e=>e.default))??a[0];if(!n)throw new Error("Unexpected error: 0 tabValues");return n.value}({defaultValue:t,tabValues:l}))),[s,u]=f({queryString:a,groupId:n}),[c,b]=function(e){let{groupId:t}=e;const a=function(e){return e?`docusaurus.tab.${e}`:null}(t),[n,l]=(0,d.Nk)(a);return[n,(0,r.useCallback)((e=>{a&&l.set(e)}),[a,l])]}({groupId:n}),y=(()=>{const e=s??c;return p({value:e,tabValues:l})?e:null})();(0,r.useLayoutEffect)((()=>{y&&i(y)}),[y]);return{selectedValue:o,selectValue:(0,r.useCallback)((e=>{if(!p({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);i(e),u(e),b(e)}),[u,b,l]),tabValues:l}}var y=a(2389);const g={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};function h(e){let{className:t,block:a,selectedValue:i,selectValue:s,tabValues:u}=e;const d=[],{blockElementScrollPositionUntilNextRender:c}=(0,o.o5)(),m=e=>{const t=e.currentTarget,a=d.indexOf(t),n=u[a].value;n!==i&&(c(t),s(n))},p=e=>{let t=null;switch(e.key){case"Enter":m(e);break;case"ArrowRight":{const a=d.indexOf(e.currentTarget)+1;t=d[a]??d[0];break}case"ArrowLeft":{const a=d.indexOf(e.currentTarget)-1;t=d[a]??d[d.length-1];break}}t?.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":a},t)},u.map((e=>{let{value:t,label:a,attributes:o}=e;return r.createElement("li",(0,n.Z)({role:"tab",tabIndex:i===t?0:-1,"aria-selected":i===t,key:t,ref:e=>d.push(e),onKeyDown:p,onClick:m},o,{className:(0,l.Z)("tabs__item",g.tabItem,o?.className,{"tabs__item--active":i===t})}),a??t)})))}function v(e){let{lazy:t,children:a,selectedValue:n}=e;const l=(Array.isArray(a)?a:[a]).filter(Boolean);if(t){const e=l.find((e=>e.props.value===n));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},l.map(((e,t)=>(0,r.cloneElement)(e,{key:t,hidden:e.props.value!==n}))))}function w(e){const t=b(e);return r.createElement("div",{className:(0,l.Z)("tabs-container",g.tabList)},r.createElement(h,(0,n.Z)({},e,t)),r.createElement(v,(0,n.Z)({},e,t)))}function k(e){const t=(0,y.Z)();return r.createElement(w,(0,n.Z)({key:String(t)},e))}},6179:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>d,contentTitle:()=>s,default:()=>f,frontMatter:()=>i,metadata:()=>u,toc:()=>c});var n=a(7462),r=(a(7294),a(3905)),l=a(4866),o=a(5162);const i={title:"Getting started",position:2},s=void 0,u={unversionedId:"intro/getting-started",id:"intro/getting-started",title:"Getting started",description:"Install",source:"@site/docs/intro/02-getting-started.md",sourceDirName:"intro",slug:"/intro/getting-started",permalink:"/docs/intro/getting-started",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/intro/02-getting-started.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",sidebarPosition:2,frontMatter:{title:"Getting started",position:2},sidebar:"tutorialSidebar",previous:{title:"Introduction",permalink:"/docs/"},next:{title:"How it works",permalink:"/docs/intro/how-it-works"}},d={},c=[{value:"Install",id:"install",level:2},{value:"Usage",id:"usage",level:2},{value:"Example",id:"example",level:2}],m={toc:c},p="wrapper";function f(e){let{components:t,...a}=e;return(0,r.kt)(p,(0,n.Z)({},m,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"install"},"Install"),(0,r.kt)("p",null,"To install middy, you can use NPM:"),(0,r.kt)(l.Z,{groupId:"npm2yarn",mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"npm",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"npm install --save @middy/core\n"))),(0,r.kt)(o.Z,{value:"yarn",label:"Yarn",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"yarn add @middy/core\n"))),(0,r.kt)(o.Z,{value:"pnpm",label:"pnpm",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"pnpm add @middy/core\n")))),(0,r.kt)("p",null,"If you are using TypeScript, you will also want to make sure that you have installed the ",(0,r.kt)("inlineCode",{parentName:"p"},"@types/aws-lambda")," peer-dependency:"),(0,r.kt)(l.Z,{groupId:"npm2yarn",mdxType:"Tabs"},(0,r.kt)(o.Z,{value:"npm",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"npm install --save-dev @types/aws-lambda\n"))),(0,r.kt)(o.Z,{value:"yarn",label:"Yarn",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"yarn add --dev @types/aws-lambda\n"))),(0,r.kt)(o.Z,{value:"pnpm",label:"pnpm",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"pnpm add --save-dev @types/aws-lambda\n")))),(0,r.kt)("h2",{id:"usage"},"Usage"),(0,r.kt)("p",null,"As you will see in the next example, using middy is very\nsimple and requires just few steps:"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"Write your Lambda handlers as usual, focusing mostly on implementing the bare\nbusiness logic for them."),(0,r.kt)("li",{parentName:"ol"},"Import ",(0,r.kt)("inlineCode",{parentName:"li"},"middy")," and all the middlewares you want to use."),(0,r.kt)("li",{parentName:"ol"},"Wrap your handler in the ",(0,r.kt)("inlineCode",{parentName:"li"},"middy()")," factory function. This will return a new\nenhanced instance of your original handler, to which you will be able to attach\nthe middlewares you need."),(0,r.kt)("li",{parentName:"ol"},"Attach all the middlewares you need using the function ",(0,r.kt)("inlineCode",{parentName:"li"},".use(somemiddleware())"))),(0,r.kt)("h2",{id:"example"},"Example"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\nimport middleware1 from 'sample-middleware1'\nimport middleware2 from 'sample-middleware2'\nimport middleware3 from 'sample-middleware3'\n\nconst lambdaHandler = (event, context) => {\n /* your business logic */\n}\n\nexport const handler = middy(lambdaHandler)\n\nhandler\n .use(middleware1())\n .use(middleware2())\n .use(middleware3())\n\n")),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},".use()")," takes a single middleware or an array of middlewares, so you can attach multiple middlewares in a single call:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-javascript"},'import middy from "@middy/core"\nimport middleware1 from "sample-middleware1"\nimport middleware2 from "sample-middleware2"\nimport middleware3 from "sample-middleware3"\nconst middlewares = [middleware1(), middleware2(), middleware3()]\n\nconst lambdaHandler = (event, context) => {\n /* your business logic */\n};\n\nexport const handler = middy(lambdaHandler)\n\nhandler.use(middlewares)\n\n')),(0,r.kt)("p",null,"You can also attach ",(0,r.kt)("a",{parentName:"p",href:"#inline-middlewares"},"inline middlewares")," by using the functions ",(0,r.kt)("inlineCode",{parentName:"p"},".before"),", ",(0,r.kt)("inlineCode",{parentName:"p"},".after")," and ",(0,r.kt)("inlineCode",{parentName:"p"},".onError"),"."),(0,r.kt)("p",null,"For a more detailed use case and examples check the ",(0,r.kt)("a",{parentName:"p",href:"#writing-a-middleware"},"Writing a middleware section"),"."))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5afe45f2.a47a34d1.js b/assets/js/5afe45f2.a47a34d1.js new file mode 100644 index 000000000..6a5af4f58 --- /dev/null +++ b/assets/js/5afe45f2.a47a34d1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[5938],{770:(e,n,a)=>{a.r(n),a.d(n,{assets:()=>c,contentTitle:()=>d,default:()=>h,frontMatter:()=>i,metadata:()=>o,toc:()=>u});var r=a(5893),t=a(1151),l=a(4866),s=a(5162);const i={title:"Getting started",position:2},d=void 0,o={id:"intro/getting-started",title:"Getting started",description:"Install",source:"@site/docs/intro/02-getting-started.md",sourceDirName:"intro",slug:"/intro/getting-started",permalink:"/docs/intro/getting-started",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/intro/02-getting-started.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",sidebarPosition:2,frontMatter:{title:"Getting started",position:2},sidebar:"tutorialSidebar",previous:{title:"Introduction",permalink:"/docs/"},next:{title:"How it works",permalink:"/docs/intro/how-it-works"}},c={},u=[{value:"Install",id:"install",level:2},{value:"Usage",id:"usage",level:2},{value:"Example",id:"example",level:2}];function m(e){const n={a:"a",code:"code",h2:"h2",li:"li",ol:"ol",p:"p",pre:"pre",...(0,t.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.h2,{id:"install",children:"Install"}),"\n",(0,r.jsx)(n.p,{children:"To install middy, you can use NPM:"}),"\n",(0,r.jsxs)(l.Z,{groupId:"npm2yarn",children:[(0,r.jsx)(s.Z,{value:"npm",children:(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"npm install --save @middy/core\n"})})}),(0,r.jsx)(s.Z,{value:"yarn",label:"Yarn",children:(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"yarn add @middy/core\n"})})}),(0,r.jsx)(s.Z,{value:"pnpm",label:"pnpm",children:(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"pnpm add @middy/core\n"})})})]}),"\n",(0,r.jsxs)(n.p,{children:["If you are using TypeScript, you will also want to make sure that you have installed the ",(0,r.jsx)(n.code,{children:"@types/aws-lambda"})," peer-dependency:"]}),"\n",(0,r.jsxs)(l.Z,{groupId:"npm2yarn",children:[(0,r.jsx)(s.Z,{value:"npm",children:(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"npm install --save-dev @types/aws-lambda\n"})})}),(0,r.jsx)(s.Z,{value:"yarn",label:"Yarn",children:(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"yarn add --dev @types/aws-lambda\n"})})}),(0,r.jsx)(s.Z,{value:"pnpm",label:"pnpm",children:(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"pnpm add --save-dev @types/aws-lambda\n"})})})]}),"\n",(0,r.jsx)(n.h2,{id:"usage",children:"Usage"}),"\n",(0,r.jsx)(n.p,{children:"As you will see in the next example, using middy is very\nsimple and requires just few steps:"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsx)(n.li,{children:"Write your Lambda handlers as usual, focusing mostly on implementing the bare\nbusiness logic for them."}),"\n",(0,r.jsxs)(n.li,{children:["Import ",(0,r.jsx)(n.code,{children:"middy"})," and all the middlewares you want to use."]}),"\n",(0,r.jsxs)(n.li,{children:["Wrap your handler in the ",(0,r.jsx)(n.code,{children:"middy()"})," factory function. This will return a new\nenhanced instance of your original handler, to which you will be able to attach\nthe middlewares you need."]}),"\n",(0,r.jsxs)(n.li,{children:["Attach all the middlewares you need using the function ",(0,r.jsx)(n.code,{children:".use(somemiddleware())"})]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"example",children:"Example"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-javascript",children:"import middy from '@middy/core'\nimport middleware1 from 'sample-middleware1'\nimport middleware2 from 'sample-middleware2'\nimport middleware3 from 'sample-middleware3'\n\nconst lambdaHandler = (event, context) => {\n /* your business logic */\n}\n\nexport const handler = middy()\n .use(middleware1())\n .use(middleware2())\n .use(middleware3())\n .handler(lambdaHandler)\n"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.code,{children:".use()"})," takes a single middleware or an array of middlewares, so you can attach multiple middlewares in a single call:"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-javascript",children:"import middy from '@middy/core'\nimport middleware1 from 'sample-middleware1'\nimport middleware2 from 'sample-middleware2'\nimport middleware3 from 'sample-middleware3'\n\nconst lambdaHandler = (event, context) => {\n /* your business logic */\n}\n\nexport const handler = middy()\n .use([middleware1(), middleware2(), middleware3()])\n .handler(lambdaHandler)\n"})}),"\n",(0,r.jsxs)(n.p,{children:["You can also attach ",(0,r.jsx)(n.a,{href:"#inline-middlewares",children:"inline middlewares"})," by using the functions ",(0,r.jsx)(n.code,{children:".before"}),", ",(0,r.jsx)(n.code,{children:".after"})," and ",(0,r.jsx)(n.code,{children:".onError"}),"."]}),"\n",(0,r.jsxs)(n.p,{children:["For a more detailed use case and examples check the ",(0,r.jsx)(n.a,{href:"#writing-a-middleware",children:"Writing a middleware section"}),"."]})]})}function h(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(m,{...e})}):m(e)}},5162:(e,n,a)=>{a.d(n,{Z:()=>s});a(7294);var r=a(6010);const t={tabItem:"tabItem_Ymn6"};var l=a(5893);function s(e){let{children:n,hidden:a,className:s}=e;return(0,l.jsx)("div",{role:"tabpanel",className:(0,r.Z)(t.tabItem,s),hidden:a,children:n})}},4866:(e,n,a)=>{a.d(n,{Z:()=>j});var r=a(7294),t=a(6010),l=a(2466),s=a(6550),i=a(469),d=a(1980),o=a(7392),c=a(12);function u(e){return r.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function m(e){const{values:n,children:a}=e;return(0,r.useMemo)((()=>{const e=n??function(e){return u(e).map((e=>{let{props:{value:n,label:a,attributes:r,default:t}}=e;return{value:n,label:a,attributes:r,default:t}}))}(a);return function(e){const n=(0,o.l)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[n,a])}function h(e){let{value:n,tabValues:a}=e;return a.some((e=>e.value===n))}function p(e){let{queryString:n=!1,groupId:a}=e;const t=(0,s.k6)(),l=function(e){let{queryString:n=!1,groupId:a}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!a)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return a??null}({queryString:n,groupId:a});return[(0,d._X)(l),(0,r.useCallback)((e=>{if(!l)return;const n=new URLSearchParams(t.location.search);n.set(l,e),t.replace({...t.location,search:n.toString()})}),[l,t])]}function b(e){const{defaultValue:n,queryString:a=!1,groupId:t}=e,l=m(e),[s,d]=(0,r.useState)((()=>function(e){let{defaultValue:n,tabValues:a}=e;if(0===a.length)throw new Error("Docusaurus error: the component requires at least one children component");if(n){if(!h({value:n,tabValues:a}))throw new Error(`Docusaurus error: The has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${a.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const r=a.find((e=>e.default))??a[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:n,tabValues:l}))),[o,u]=p({queryString:a,groupId:t}),[b,f]=function(e){let{groupId:n}=e;const a=function(e){return e?`docusaurus.tab.${e}`:null}(n),[t,l]=(0,c.Nk)(a);return[t,(0,r.useCallback)((e=>{a&&l.set(e)}),[a,l])]}({groupId:t}),g=(()=>{const e=o??b;return h({value:e,tabValues:l})?e:null})();(0,i.Z)((()=>{g&&d(g)}),[g]);return{selectedValue:s,selectValue:(0,r.useCallback)((e=>{if(!h({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);d(e),u(e),f(e)}),[u,f,l]),tabValues:l}}var f=a(2389);const g={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var x=a(5893);function y(e){let{className:n,block:a,selectedValue:r,selectValue:s,tabValues:i}=e;const d=[],{blockElementScrollPositionUntilNextRender:o}=(0,l.o5)(),c=e=>{const n=e.currentTarget,a=d.indexOf(n),t=i[a].value;t!==r&&(o(n),s(t))},u=e=>{let n=null;switch(e.key){case"Enter":c(e);break;case"ArrowRight":{const a=d.indexOf(e.currentTarget)+1;n=d[a]??d[0];break}case"ArrowLeft":{const a=d.indexOf(e.currentTarget)-1;n=d[a]??d[d.length-1];break}}n?.focus()};return(0,x.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,t.Z)("tabs",{"tabs--block":a},n),children:i.map((e=>{let{value:n,label:a,attributes:l}=e;return(0,x.jsx)("li",{role:"tab",tabIndex:r===n?0:-1,"aria-selected":r===n,ref:e=>d.push(e),onKeyDown:u,onClick:c,...l,className:(0,t.Z)("tabs__item",g.tabItem,l?.className,{"tabs__item--active":r===n}),children:a??n},n)}))})}function v(e){let{lazy:n,children:a,selectedValue:t}=e;const l=(Array.isArray(a)?a:[a]).filter(Boolean);if(n){const e=l.find((e=>e.props.value===t));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return(0,x.jsx)("div",{className:"margin-top--md",children:l.map(((e,n)=>(0,r.cloneElement)(e,{key:n,hidden:e.props.value!==t})))})}function w(e){const n=b(e);return(0,x.jsxs)("div",{className:(0,t.Z)("tabs-container",g.tabList),children:[(0,x.jsx)(y,{...e,...n}),(0,x.jsx)(v,{...e,...n})]})}function j(e){const n=(0,f.Z)();return(0,x.jsx)(w,{...e,children:u(e.children)},String(n))}},1151:(e,n,a)=>{a.d(n,{Z:()=>i,a:()=>s});var r=a(7294);const t={},l=r.createContext(t);function s(e){const n=r.useContext(l);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:s(e.components),r.createElement(l.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/5e80d65e.cbb9295d.js b/assets/js/5e80d65e.cbb9295d.js new file mode 100644 index 000000000..b4fae9843 --- /dev/null +++ b/assets/js/5e80d65e.cbb9295d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[1436],{9114:(e,r,t)=>{t.r(r),t.d(r,{assets:()=>c,contentTitle:()=>s,default:()=>h,frontMatter:()=>i,metadata:()=>d,toc:()=>a});var o=t(5893),n=t(1151);const i={title:"Hooks",position:2},s=void 0,d={id:"intro/hooks",title:"Hooks",description:"Middy provides hooks into it's core to allow for monitoring, setup, and cleaning that may not be possible within a middleware.",source:"@site/docs/intro/07-hooks.md",sourceDirName:"intro",slug:"/intro/hooks",permalink:"/docs/intro/hooks",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/intro/07-hooks.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",sidebarPosition:7,frontMatter:{title:"Hooks",position:2},sidebar:"tutorialSidebar",previous:{title:"Use with TypeScript",permalink:"/docs/intro/typescript"},next:{title:"History",permalink:"/docs/intro/history"}},c={},a=[];function l(e){const r={a:"a",code:"code",li:"li",p:"p",ul:"ul",...(0,n.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(r.p,{children:"Middy provides hooks into it's core to allow for monitoring, setup, and cleaning that may not be possible within a middleware."}),"\n",(0,o.jsx)(r.p,{children:"In order of execution"}),"\n",(0,o.jsxs)(r.ul,{children:["\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.code,{children:"beforePrefetch"}),"(): Triggered once before middlewares are attached and prefetches are executed."]}),"\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.code,{children:"requestStart"}),"(): Triggered on every request before the first middleware."]}),"\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.code,{children:"beforeMiddleware"}),"/",(0,o.jsx)(r.code,{children:"afterMiddleware"}),"(fctName): Triggered before/after every ",(0,o.jsx)(r.code,{children:"before"}),", ",(0,o.jsx)(r.code,{children:"after"}),", and ",(0,o.jsx)(r.code,{children:"onError"})," middleware function. The function name is passed in, this is why all middlewares use a verbose naming pattern."]}),"\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.code,{children:"beforeHandler"}),"/",(0,o.jsx)(r.code,{children:"afterHandler"}),"(): Triggered before/after the handler."]}),"\n",(0,o.jsxs)(r.li,{children:[(0,o.jsx)(r.code,{children:"requestEnd"}),"(request): Triggered right before the response is returned, including thrown errors."]}),"\n"]}),"\n",(0,o.jsxs)(r.p,{children:["See ",(0,o.jsx)(r.a,{href:"https://middy.js.org/docs/best-practices/profiling",children:"Profiling"})," for example usage."]})]})}function h(e={}){const{wrapper:r}={...(0,n.a)(),...e.components};return r?(0,o.jsx)(r,{...e,children:(0,o.jsx)(l,{...e})}):l(e)}},1151:(e,r,t)=>{t.d(r,{Z:()=>d,a:()=>s});var o=t(7294);const n={},i=o.createContext(n);function s(e){const r=o.useContext(i);return o.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function d(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:s(e.components),o.createElement(i.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/5e80d65e.ffabbe17.js b/assets/js/5e80d65e.ffabbe17.js deleted file mode 100644 index 3e2e99ecf..000000000 --- a/assets/js/5e80d65e.ffabbe17.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[1436],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>m});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),d=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},p=function(e){var t=d(e.components);return n.createElement(s.Provider,{value:t},e.children)},c="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),c=d(r),f=o,m=c["".concat(s,".").concat(f)]||c[f]||u[f]||i;return r?n.createElement(m,a(a({ref:t},p),{},{components:r})):n.createElement(m,a({ref:t},p))}));function m(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,a=new Array(i);a[0]=f;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[c]="string"==typeof e?e:o,a[1]=l;for(var d=2;d{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>a,default:()=>u,frontMatter:()=>i,metadata:()=>l,toc:()=>d});var n=r(7462),o=(r(7294),r(3905));const i={title:"Hooks",position:2},a=void 0,l={unversionedId:"intro/hooks",id:"intro/hooks",title:"Hooks",description:"Middy provides hooks into it's core to allow for monitoring, setup, and cleaning that may not be possible within a middleware.",source:"@site/docs/intro/07-hooks.md",sourceDirName:"intro",slug:"/intro/hooks",permalink:"/docs/intro/hooks",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/intro/07-hooks.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",sidebarPosition:7,frontMatter:{title:"Hooks",position:2},sidebar:"tutorialSidebar",previous:{title:"Use with TypeScript",permalink:"/docs/intro/typescript"},next:{title:"History",permalink:"/docs/intro/history"}},s={},d=[],p={toc:d},c="wrapper";function u(e){let{components:t,...r}=e;return(0,o.kt)(c,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Middy provides hooks into it's core to allow for monitoring, setup, and cleaning that may not be possible within a middleware."),(0,o.kt)("p",null,"In order of execution"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"beforePrefetch"),"(): Triggered once before middlewares are attached and prefetches are executed."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"requestStart"),"(): Triggered on every request before the first middleware."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"beforeMiddleware"),"/",(0,o.kt)("inlineCode",{parentName:"li"},"afterMiddleware"),"(fctName): Triggered before/after every ",(0,o.kt)("inlineCode",{parentName:"li"},"before"),", ",(0,o.kt)("inlineCode",{parentName:"li"},"after"),", and ",(0,o.kt)("inlineCode",{parentName:"li"},"onError")," middleware function. The function name is passed in, this is why all middlewares use a verbose naming pattern."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"beforeHandler"),"/",(0,o.kt)("inlineCode",{parentName:"li"},"afterHandler"),"(): Triggered before/after the handler."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"requestEnd"),"(request): Triggered right before the response is returned, including thrown errors.")),(0,o.kt)("p",null,"See ",(0,o.kt)("a",{parentName:"p",href:"https://middy.js.org/docs/best-practices/profiling"},"Profiling")," for example usage."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5e95c892.601ebc7c.js b/assets/js/5e95c892.601ebc7c.js new file mode 100644 index 000000000..f16becfaf --- /dev/null +++ b/assets/js/5e95c892.601ebc7c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[9661],{1892:(e,s,r)=>{r.r(s),r.d(s,{default:()=>i});r(7294);var d=r(6010),u=r(1944),a=r(5281),c=r(8790),n=r(63),t=r(5893);function i(e){return(0,t.jsx)(u.FG,{className:(0,d.Z)(a.k.wrapper.docsPages),children:(0,t.jsx)(n.Z,{children:(0,c.H)(e.route.routes)})})}}}]); \ No newline at end of file diff --git a/assets/js/614.f05f7964.js b/assets/js/614.f05f7964.js deleted file mode 100644 index 60da3cdce..000000000 --- a/assets/js/614.f05f7964.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[614],{614:(e,t,n)=>{"use strict";n.d(t,{Z:()=>q});var o=n(7462),r=n(7294),c=n(2389),a=n(6010),s=n(2949),l=n(6668);function i(){const{prism:e}=(0,l.L)(),{colorMode:t}=(0,s.I)(),n=e.theme,o=e.darkTheme||n;return"dark"===t?o:n}var u=n(5281),d=n(7594),p=n.n(d);const m=/title=(?["'])(?.*?)\1/,g=/\{(?<range>[\d,-]+)\}/,f={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"\x3c!--",end:"--\x3e"}};function y(e,t){const n=e.map((e=>{const{start:n,end:o}=f[e];return`(?:${n}\\s*(${t.flatMap((e=>[e.line,e.block?.start,e.block?.end].filter(Boolean))).join("|")})\\s*${o})`})).join("|");return new RegExp(`^\\s*(?:${n})\\s*$`)}function h(e,t){let n=e.replace(/\n$/,"");const{language:o,magicComments:r,metastring:c}=t;if(c&&g.test(c)){const e=c.match(g).groups.range;if(0===r.length)throw new Error(`A highlight range has been given in code block's metastring (\`\`\` ${c}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);const t=r[0].className,o=p()(e).filter((e=>e>0)).map((e=>[e-1,[t]]));return{lineClassNames:Object.fromEntries(o),code:n}}if(void 0===o)return{lineClassNames:{},code:n};const a=function(e,t){switch(e){case"js":case"javascript":case"ts":case"typescript":return y(["js","jsBlock"],t);case"jsx":case"tsx":return y(["js","jsBlock","jsx"],t);case"html":return y(["js","jsBlock","html"],t);case"python":case"py":case"bash":return y(["bash"],t);case"markdown":case"md":return y(["html","jsx","bash"],t);default:return y(Object.keys(f),t)}}(o,r),s=n.split("\n"),l=Object.fromEntries(r.map((e=>[e.className,{start:0,range:""}]))),i=Object.fromEntries(r.filter((e=>e.line)).map((e=>{let{className:t,line:n}=e;return[n,t]}))),u=Object.fromEntries(r.filter((e=>e.block)).map((e=>{let{className:t,block:n}=e;return[n.start,t]}))),d=Object.fromEntries(r.filter((e=>e.block)).map((e=>{let{className:t,block:n}=e;return[n.end,t]})));for(let p=0;p<s.length;){const e=s[p].match(a);if(!e){p+=1;continue}const t=e.slice(1).find((e=>void 0!==e));i[t]?l[i[t]].range+=`${p},`:u[t]?l[u[t]].start=p:d[t]&&(l[d[t]].range+=`${l[d[t]].start}-${p-1},`),s.splice(p,1)}n=s.join("\n");const m={};return Object.entries(l).forEach((e=>{let[t,{range:n}]=e;p()(n).forEach((e=>{m[e]??=[],m[e].push(t)}))})),{lineClassNames:m,code:n}}const b={codeBlockContainer:"codeBlockContainer_Ckt0"};function k(e){let{as:t,...n}=e;const c=function(e){const t={color:"--prism-color",backgroundColor:"--prism-background-color"},n={};return Object.entries(e.plain).forEach((e=>{let[o,r]=e;const c=t[o];c&&"string"==typeof r&&(n[c]=r)})),n}(i());return r.createElement(t,(0,o.Z)({},n,{style:c,className:(0,a.Z)(n.className,b.codeBlockContainer,u.k.common.codeBlock)}))}const v={codeBlockContent:"codeBlockContent_biex",codeBlockTitle:"codeBlockTitle_Ktv7",codeBlock:"codeBlock_bY9V",codeBlockStandalone:"codeBlockStandalone_MEMb",codeBlockLines:"codeBlockLines_e6Vv",codeBlockLinesWithNumbering:"codeBlockLinesWithNumbering_o6Pm",buttonGroup:"buttonGroup__atx"};function E(e){let{children:t,className:n}=e;return r.createElement(k,{as:"pre",tabIndex:0,className:(0,a.Z)(v.codeBlockStandalone,"thin-scrollbar",n)},r.createElement("code",{className:v.codeBlockLines},t))}var B=n(902);const N={attributes:!0,characterData:!0,childList:!0,subtree:!0};function C(e,t){const[n,o]=(0,r.useState)(),c=(0,r.useCallback)((()=>{o(e.current?.closest("[role=tabpanel][hidden]"))}),[e,o]);(0,r.useEffect)((()=>{c()}),[c]),function(e,t,n){void 0===n&&(n=N);const o=(0,B.zX)(t),c=(0,B.Ql)(n);(0,r.useEffect)((()=>{const t=new MutationObserver(o);return e&&t.observe(e,c),()=>t.disconnect()}),[e,o,c])}(n,(e=>{e.forEach((e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(t(),c())}))}),{attributes:!0,characterData:!1,childList:!1,subtree:!1})}const w={plain:{backgroundColor:"#2a2734",color:"#9a86fd"},styles:[{types:["comment","prolog","doctype","cdata","punctuation"],style:{color:"#6c6783"}},{types:["namespace"],style:{opacity:.7}},{types:["tag","operator","number"],style:{color:"#e09142"}},{types:["property","function"],style:{color:"#9a86fd"}},{types:["tag-id","selector","atrule-id"],style:{color:"#eeebff"}},{types:["attr-name"],style:{color:"#c4b9fe"}},{types:["boolean","string","entity","url","attr-value","keyword","control","directive","unit","statement","regex","atrule","placeholder","variable"],style:{color:"#ffcc99"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"#c4b9fe"}}]};var L={Prism:n(7410).Z,theme:w};function j(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function T(){return T=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},T.apply(this,arguments)}var x=/\r\n|\r|\n/,S=function(e){0===e.length?e.push({types:["plain"],content:"\n",empty:!0}):1===e.length&&""===e[0].content&&(e[0].content="\n",e[0].empty=!0)},I=function(e,t){var n=e.length;return n>0&&e[n-1]===t?e:e.concat(t)};function _(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&-1===t.indexOf(o)&&(n[o]=e[o]);return n}var O=function(e){function t(){for(var t=this,n=[],o=arguments.length;o--;)n[o]=arguments[o];e.apply(this,n),j(this,"getThemeDict",(function(e){if(void 0!==t.themeDict&&e.theme===t.prevTheme&&e.language===t.prevLanguage)return t.themeDict;t.prevTheme=e.theme,t.prevLanguage=e.language;var n=e.theme?function(e,t){var n=e.plain,o=Object.create(null),r=e.styles.reduce((function(e,n){var o=n.languages,r=n.style;return o&&!o.includes(t)||n.types.forEach((function(t){var n=T({},e[t],r);e[t]=n})),e}),o);return r.root=n,r.plain=T({},n,{backgroundColor:null}),r}(e.theme,e.language):void 0;return t.themeDict=n})),j(this,"getLineProps",(function(e){var n=e.key,o=e.className,r=e.style,c=T({},_(e,["key","className","style","line"]),{className:"token-line",style:void 0,key:void 0}),a=t.getThemeDict(t.props);return void 0!==a&&(c.style=a.plain),void 0!==r&&(c.style=void 0!==c.style?T({},c.style,r):r),void 0!==n&&(c.key=n),o&&(c.className+=" "+o),c})),j(this,"getStyleForToken",(function(e){var n=e.types,o=e.empty,r=n.length,c=t.getThemeDict(t.props);if(void 0!==c){if(1===r&&"plain"===n[0])return o?{display:"inline-block"}:void 0;if(1===r&&!o)return c[n[0]];var a=o?{display:"inline-block"}:{},s=n.map((function(e){return c[e]}));return Object.assign.apply(Object,[a].concat(s))}})),j(this,"getTokenProps",(function(e){var n=e.key,o=e.className,r=e.style,c=e.token,a=T({},_(e,["key","className","style","token"]),{className:"token "+c.types.join(" "),children:c.content,style:t.getStyleForToken(c),key:void 0});return void 0!==r&&(a.style=void 0!==a.style?T({},a.style,r):r),void 0!==n&&(a.key=n),o&&(a.className+=" "+o),a})),j(this,"tokenize",(function(e,t,n,o){var r={code:t,grammar:n,language:o,tokens:[]};e.hooks.run("before-tokenize",r);var c=r.tokens=e.tokenize(r.code,r.grammar,r.language);return e.hooks.run("after-tokenize",r),c}))}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.render=function(){var e=this.props,t=e.Prism,n=e.language,o=e.code,r=e.children,c=this.getThemeDict(this.props),a=t.languages[n];return r({tokens:function(e){for(var t=[[]],n=[e],o=[0],r=[e.length],c=0,a=0,s=[],l=[s];a>-1;){for(;(c=o[a]++)<r[a];){var i=void 0,u=t[a],d=n[a][c];if("string"==typeof d?(u=a>0?u:["plain"],i=d):(u=I(u,d.type),d.alias&&(u=I(u,d.alias)),i=d.content),"string"==typeof i){var p=i.split(x),m=p.length;s.push({types:u,content:p[0]});for(var g=1;g<m;g++)S(s),l.push(s=[]),s.push({types:u,content:p[g]})}else a++,t.push(u),n.push(i),o.push(0),r.push(i.length)}a--,t.pop(),n.pop(),o.pop(),r.pop()}return S(s),l}(void 0!==a?this.tokenize(t,o,a,n):[o]),className:"prism-code language-"+n,style:void 0!==c?c.root:{},getLineProps:this.getLineProps,getTokenProps:this.getTokenProps})},t}(r.Component);const Z=O,P={codeLine:"codeLine_lJS_",codeLineNumber:"codeLineNumber_Tfdd",codeLineContent:"codeLineContent_feaV"};function A(e){let{line:t,classNames:n,showLineNumbers:c,getLineProps:s,getTokenProps:l}=e;1===t.length&&"\n"===t[0].content&&(t[0].content="");const i=s({line:t,className:(0,a.Z)(n,c&&P.codeLine)}),u=t.map(((e,t)=>r.createElement("span",(0,o.Z)({key:t},l({token:e,key:t})))));return r.createElement("span",i,c?r.createElement(r.Fragment,null,r.createElement("span",{className:P.codeLineNumber}),r.createElement("span",{className:P.codeLineContent},u)):u,r.createElement("br",null))}var W=n(5999);function $(e){return r.createElement("svg",(0,o.Z)({viewBox:"0 0 24 24"},e),r.createElement("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"}))}function z(e){return r.createElement("svg",(0,o.Z)({viewBox:"0 0 24 24"},e),r.createElement("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"}))}const D={copyButtonCopied:"copyButtonCopied_obH4",copyButtonIcons:"copyButtonIcons_eSgA",copyButtonIcon:"copyButtonIcon_y97N",copyButtonSuccessIcon:"copyButtonSuccessIcon_LjdS"};function H(e){let{code:t,className:n}=e;const[o,c]=(0,r.useState)(!1),s=(0,r.useRef)(void 0),l=(0,r.useCallback)((()=>{!function(e,t){let{target:n=document.body}=void 0===t?{}:t;if("string"!=typeof e)throw new TypeError(`Expected parameter \`text\` to be a \`string\`, got \`${typeof e}\`.`);const o=document.createElement("textarea"),r=document.activeElement;o.value=e,o.setAttribute("readonly",""),o.style.contain="strict",o.style.position="absolute",o.style.left="-9999px",o.style.fontSize="12pt";const c=document.getSelection(),a=c.rangeCount>0&&c.getRangeAt(0);n.append(o),o.select(),o.selectionStart=0,o.selectionEnd=e.length;let s=!1;try{s=document.execCommand("copy")}catch{}o.remove(),a&&(c.removeAllRanges(),c.addRange(a)),r&&r.focus()}(t),c(!0),s.current=window.setTimeout((()=>{c(!1)}),1e3)}),[t]);return(0,r.useEffect)((()=>()=>window.clearTimeout(s.current)),[]),r.createElement("button",{type:"button","aria-label":o?(0,W.I)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,W.I)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,W.I)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,a.Z)("clean-btn",n,D.copyButton,o&&D.copyButtonCopied),onClick:l},r.createElement("span",{className:D.copyButtonIcons,"aria-hidden":"true"},r.createElement($,{className:D.copyButtonIcon}),r.createElement(z,{className:D.copyButtonSuccessIcon})))}function M(e){return r.createElement("svg",(0,o.Z)({viewBox:"0 0 24 24"},e),r.createElement("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"}))}const V={wordWrapButtonIcon:"wordWrapButtonIcon_Bwma",wordWrapButtonEnabled:"wordWrapButtonEnabled_EoeP"};function R(e){let{className:t,onClick:n,isEnabled:o}=e;const c=(0,W.I)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return r.createElement("button",{type:"button",onClick:n,className:(0,a.Z)("clean-btn",t,o&&V.wordWrapButtonEnabled),"aria-label":c,title:c},r.createElement(M,{className:V.wordWrapButtonIcon,"aria-hidden":"true"}))}function F(e){let{children:t,className:n="",metastring:c,title:s,showLineNumbers:u,language:d}=e;const{prism:{defaultLanguage:p,magicComments:g}}=(0,l.L)(),f=d??function(e){const t=e.split(" ").find((e=>e.startsWith("language-")));return t?.replace(/language-/,"")}(n)??p,y=i(),b=function(){const[e,t]=(0,r.useState)(!1),[n,o]=(0,r.useState)(!1),c=(0,r.useRef)(null),a=(0,r.useCallback)((()=>{const n=c.current.querySelector("code");e?n.removeAttribute("style"):(n.style.whiteSpace="pre-wrap",n.style.overflowWrap="anywhere"),t((e=>!e))}),[c,e]),s=(0,r.useCallback)((()=>{const{scrollWidth:e,clientWidth:t}=c.current,n=e>t||c.current.querySelector("code").hasAttribute("style");o(n)}),[c]);return C(c,s),(0,r.useEffect)((()=>{s()}),[e,s]),(0,r.useEffect)((()=>(window.addEventListener("resize",s,{passive:!0}),()=>{window.removeEventListener("resize",s)})),[s]),{codeBlockRef:c,isEnabled:e,isCodeScrollable:n,toggle:a}}(),E=function(e){return e?.match(m)?.groups.title??""}(c)||s,{lineClassNames:B,code:N}=h(t,{metastring:c,language:f,magicComments:g}),w=u??function(e){return Boolean(e?.includes("showLineNumbers"))}(c);return r.createElement(k,{as:"div",className:(0,a.Z)(n,f&&!n.includes(`language-${f}`)&&`language-${f}`)},E&&r.createElement("div",{className:v.codeBlockTitle},E),r.createElement("div",{className:v.codeBlockContent},r.createElement(Z,(0,o.Z)({},L,{theme:y,code:N,language:f??"text"}),(e=>{let{className:t,tokens:n,getLineProps:o,getTokenProps:c}=e;return r.createElement("pre",{tabIndex:0,ref:b.codeBlockRef,className:(0,a.Z)(t,v.codeBlock,"thin-scrollbar")},r.createElement("code",{className:(0,a.Z)(v.codeBlockLines,w&&v.codeBlockLinesWithNumbering)},n.map(((e,t)=>r.createElement(A,{key:t,line:e,getLineProps:o,getTokenProps:c,classNames:B[t],showLineNumbers:w})))))})),r.createElement("div",{className:v.buttonGroup},(b.isEnabled||b.isCodeScrollable)&&r.createElement(R,{className:v.codeButton,onClick:()=>b.toggle(),isEnabled:b.isEnabled}),r.createElement(H,{className:v.codeButton,code:N}))))}function q(e){let{children:t,...n}=e;const a=(0,c.Z)(),s=function(e){return r.Children.toArray(e).some((e=>(0,r.isValidElement)(e)))?e:Array.isArray(e)?e.join(""):e}(t),l="string"==typeof s?F:E;return r.createElement(l,(0,o.Z)({key:String(a)},n),s)}},7594:(e,t)=>{function n(e){let t,n=[];for(let o of e.split(",").map((e=>e.trim())))if(/^-?\d+$/.test(o))n.push(parseInt(o,10));else if(t=o.match(/^(-?\d+)(-|\.\.\.?|\u2025|\u2026|\u22EF)(-?\d+)$/)){let[e,o,r,c]=t;if(o&&c){o=parseInt(o),c=parseInt(c);const e=o<c?1:-1;"-"!==r&&".."!==r&&"\u2025"!==r||(c+=e);for(let t=o;t!==c;t+=e)n.push(t)}}return n}t.default=n,e.exports=n}}]); \ No newline at end of file diff --git a/assets/js/632f0854.1a482285.js b/assets/js/632f0854.1a482285.js new file mode 100644 index 000000000..340a318d5 --- /dev/null +++ b/assets/js/632f0854.1a482285.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[9997],{5189:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>a,default:()=>m,frontMatter:()=>r,metadata:()=>s,toc:()=>l});var i=n(5893),o=n(1151);const r={title:"Handle Timeouts",position:5},a=void 0,s={id:"writing-middlewares/timeouts",title:"Handle Timeouts",description:"When a lambda times out it throws an error that cannot be caught by middy. To work around this middy maintains an AbortController that can be signalled early to allow time to clean up and log the error properly.",source:"@site/docs/writing-middlewares/05-timeouts.md",sourceDirName:"writing-middlewares",slug:"/writing-middlewares/timeouts",permalink:"/docs/writing-middlewares/timeouts",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/writing-middlewares/05-timeouts.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",sidebarPosition:5,frontMatter:{title:"Handle Timeouts",position:5},sidebar:"tutorialSidebar",previous:{title:"Internal Storage",permalink:"/docs/writing-middlewares/internal-storage"},next:{title:"More Examples",permalink:"/docs/writing-middlewares/more-examples"}},d={},l=[];function c(e){const t={code:"code",p:"p",pre:"pre",...(0,o.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(t.p,{children:["When a lambda times out it throws an error that cannot be caught by middy. To work around this middy maintains an ",(0,i.jsx)(t.code,{children:"AbortController"})," that can be signalled early to allow time to clean up and log the error properly."]}),"\n",(0,i.jsxs)(t.p,{children:["You can set ",(0,i.jsx)(t.code,{children:"timeoutEarlyInMillis"})," to 0 to disable this functionality. If you want to override during testing, mock the lambda context to set ",(0,i.jsx)(t.code,{children:"getRemainingTimeInMillis"})," to a function that returns a very large value (e.g. ",(0,i.jsx)(t.code,{children:"() => 99999"}),")."]}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-javascript",children:"import middy from '@middy/core'\n\nconst lambdaHandler = (event, context, { signal }) => {\n signal.onabort = () => {\n // cancel events\n }\n // ...\n}\n\nexport const handler = middy({\n timeoutEarlyInMillis: 50,\n timeoutEarlyResponse: () => {\n return {\n statusCode: 408\n }\n }\n}).handler(lambdaHandler)\n"})})]})}function m(e={}){const{wrapper:t}={...(0,o.a)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>s,a:()=>a});var i=n(7294);const o={},r=i.createContext(o);function a(e){const t=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:a(e.components),i.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/632f0854.25f656ed.js b/assets/js/632f0854.25f656ed.js deleted file mode 100644 index c7b754958..000000000 --- a/assets/js/632f0854.25f656ed.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[9997],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>y});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),d=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},c=function(e){var t=d(e.components);return r.createElement(s.Provider,{value:t},e.children)},m="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),m=d(n),u=a,y=m["".concat(s,".").concat(u)]||m[u]||p[u]||o;return n?r.createElement(y,i(i({ref:t},c),{},{components:n})):r.createElement(y,i({ref:t},c))}));function y(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=u;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[m]="string"==typeof e?e:a,i[1]=l;for(var d=2;d<o;d++)i[d]=n[d];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}u.displayName="MDXCreateElement"},698:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>p,frontMatter:()=>o,metadata:()=>l,toc:()=>d});var r=n(7462),a=(n(7294),n(3905));const o={title:"Handle Timeouts",position:5},i=void 0,l={unversionedId:"writing-middlewares/timeouts",id:"writing-middlewares/timeouts",title:"Handle Timeouts",description:"When a lambda times out it throws an error that cannot be caught by middy. To work around this middy maintains an AbortController that can be signalled early to allow time to clean up and log the error properly.",source:"@site/docs/writing-middlewares/05-timeouts.md",sourceDirName:"writing-middlewares",slug:"/writing-middlewares/timeouts",permalink:"/docs/writing-middlewares/timeouts",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/writing-middlewares/05-timeouts.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",sidebarPosition:5,frontMatter:{title:"Handle Timeouts",position:5},sidebar:"tutorialSidebar",previous:{title:"Internal Storage",permalink:"/docs/writing-middlewares/internal-storage"},next:{title:"More Examples",permalink:"/docs/writing-middlewares/more-examples"}},s={},d=[],c={toc:d},m="wrapper";function p(e){let{components:t,...n}=e;return(0,a.kt)(m,(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"When a lambda times out it throws an error that cannot be caught by middy. To work around this middy maintains an ",(0,a.kt)("inlineCode",{parentName:"p"},"AbortController")," that can be signalled early to allow time to clean up and log the error properly."),(0,a.kt)("p",null,"You can set ",(0,a.kt)("inlineCode",{parentName:"p"},"timeoutEarlyInMillis")," to 0 to disable this functionality. If you want to override during testing, mock the lambda context to set ",(0,a.kt)("inlineCode",{parentName:"p"},"getRemainingTimeInMillis")," to a function that returns a very large value (e.g. ",(0,a.kt)("inlineCode",{parentName:"p"},"() => 99999"),")."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\n\nconst lambdaHandler = (event, context, {signal}) => {\n signal.onabort = () => {\n // cancel events\n }\n // ... \n}\n\nexport const handler = middy(lambdaHandler, {\n timeoutEarlyInMillis: 50,\n timeoutEarlyResponse: () => {\n return {\n statusCode: 408\n }\n }\n})\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/646b055a.39a57bde.js b/assets/js/646b055a.39a57bde.js deleted file mode 100644 index 711d8bc8c..000000000 --- a/assets/js/646b055a.39a57bde.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[5686],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>f});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),l=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=l(e.components);return r.createElement(s.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),d=l(n),u=a,f=d["".concat(s,".").concat(u)]||d[u]||m[u]||o;return n?r.createElement(f,i(i({ref:t},p),{},{components:n})):r.createElement(f,i({ref:t},p))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=u;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[d]="string"==typeof e?e:a,i[1]=c;for(var l=2;l<o;l++)i[l]=n[l];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}u.displayName="MDXCreateElement"},5010:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>c,toc:()=>l});var r=n(7462),a=(n(7294),n(3905));const o={title:"S3 Batch"},i=void 0,c={unversionedId:"events/s3-batch",id:"events/s3-batch",title:"S3 Batch",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/events/s3-batch.md",sourceDirName:"events",slug:"/events/s3-batch",permalink:"/docs/events/s3-batch",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/events/s3-batch.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",frontMatter:{title:"S3 Batch"},sidebar:"tutorialSidebar",previous:{title:"RDS",permalink:"/docs/events/rds"},next:{title:"S3 Object",permalink:"/docs/events/s3-object"}},s={},l=[{value:"AWS Documentation",id:"aws-documentation",level:2},{value:"Example",id:"example",level:2}],p={toc:l},d="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(d,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.")),(0,a.kt)("h2",{id:"aws-documentation"},"AWS Documentation"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://docs.aws.amazon.com/lambda/latest/dg/services-s3-batch.html"},"Using AWS Lambda with Amazon S3 batch operations"))),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\nimport eventNormalizerMiddleware from '@middy/event-normalizer'\n\nexport const handler = middy()\n .use(eventNormalizerMiddleware())\n .handler((event, context, {signal}) => {\n // ...\n })\n")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/646b055a.e743fb12.js b/assets/js/646b055a.e743fb12.js new file mode 100644 index 000000000..a4b0774bd --- /dev/null +++ b/assets/js/646b055a.e743fb12.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[5686],{4468:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>m,frontMatter:()=>o,metadata:()=>r,toc:()=>d});var s=n(5893),i=n(1151);const o={title:"S3 Batch"},a=void 0,r={id:"events/s3-batch",title:"S3 Batch",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/events/s3-batch.md",sourceDirName:"events",slug:"/events/s3-batch",permalink:"/docs/events/s3-batch",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/events/s3-batch.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",frontMatter:{title:"S3 Batch"},sidebar:"tutorialSidebar",previous:{title:"RDS",permalink:"/docs/events/rds"},next:{title:"S3 Object",permalink:"/docs/events/s3-object"}},c={},d=[{value:"AWS Documentation",id:"aws-documentation",level:2},{value:"Example",id:"example",level:2}];function l(e){const t={a:"a",admonition:"admonition",code:"code",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,i.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.admonition,{type:"caution",children:(0,s.jsx)(t.p,{children:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub."})}),"\n",(0,s.jsx)(t.h2,{id:"aws-documentation",children:"AWS Documentation"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://docs.aws.amazon.com/lambda/latest/dg/services-s3-batch.html",children:"Using AWS Lambda with Amazon S3 batch operations"})}),"\n"]}),"\n",(0,s.jsx)(t.h2,{id:"example",children:"Example"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-javascript",children:"import middy from '@middy/core'\nimport eventNormalizerMiddleware from '@middy/event-normalizer'\n\nexport const handler = middy()\n .use(eventNormalizerMiddleware())\n .handler((event, context, {signal}) => {\n // ...\n })\n"})})]})}function m(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(l,{...e})}):l(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>r,a:()=>a});var s=n(7294);const i={},o=s.createContext(i);function a(e){const t=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),s.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/654635c7.104154c4.js b/assets/js/654635c7.104154c4.js deleted file mode 100644 index 00497de0f..000000000 --- a/assets/js/654635c7.104154c4.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[1338],{3905:(e,t,r)=>{r.d(t,{Zo:()=>d,kt:()=>h});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?l(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):l(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function i(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},l=Object.keys(e);for(n=0;n<l.length;n++)r=l[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n<l.length;n++)r=l[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var u=n.createContext({}),s=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},d=function(e){var t=s(e.components);return n.createElement(u.Provider,{value:t},e.children)},c="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,l=e.originalType,u=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),c=s(r),m=a,h=c["".concat(u,".").concat(m)]||c[m]||p[m]||l;return r?n.createElement(h,o(o({ref:t},d),{},{components:r})):n.createElement(h,o({ref:t},d))}));function h(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=r.length,o=new Array(l);o[0]=m;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[c]="string"==typeof e?e:a,o[1]=i;for(var s=2;s<l;s++)o[s]=r[s];return n.createElement.apply(null,o)}return n.createElement.apply(null,r)}m.displayName="MDXCreateElement"},5162:(e,t,r)=>{r.d(t,{Z:()=>o});var n=r(7294),a=r(6010);const l={tabItem:"tabItem_Ymn6"};function o(e){let{children:t,hidden:r,className:o}=e;return n.createElement("div",{role:"tabpanel",className:(0,a.Z)(l.tabItem,o),hidden:r},t)}},4866:(e,t,r)=>{r.d(t,{Z:()=>N});var n=r(7462),a=r(7294),l=r(6010),o=r(2466),i=r(6550),u=r(1980),s=r(7392),d=r(12);function c(e){return function(e){return a.Children.map(e,(e=>{if(!e||(0,a.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:r,attributes:n,default:a}}=e;return{value:t,label:r,attributes:n,default:a}}))}function p(e){const{values:t,children:r}=e;return(0,a.useMemo)((()=>{const e=t??c(r);return function(e){const t=(0,s.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,r])}function m(e){let{value:t,tabValues:r}=e;return r.some((e=>e.value===t))}function h(e){let{queryString:t=!1,groupId:r}=e;const n=(0,i.k6)(),l=function(e){let{queryString:t=!1,groupId:r}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!r)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return r??null}({queryString:t,groupId:r});return[(0,u._X)(l),(0,a.useCallback)((e=>{if(!l)return;const t=new URLSearchParams(n.location.search);t.set(l,e),n.replace({...n.location,search:t.toString()})}),[l,n])]}function f(e){const{defaultValue:t,queryString:r=!1,groupId:n}=e,l=p(e),[o,i]=(0,a.useState)((()=>function(e){let{defaultValue:t,tabValues:r}=e;if(0===r.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!m({value:t,tabValues:r}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${r.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const n=r.find((e=>e.default))??r[0];if(!n)throw new Error("Unexpected error: 0 tabValues");return n.value}({defaultValue:t,tabValues:l}))),[u,s]=h({queryString:r,groupId:n}),[c,f]=function(e){let{groupId:t}=e;const r=function(e){return e?`docusaurus.tab.${e}`:null}(t),[n,l]=(0,d.Nk)(r);return[n,(0,a.useCallback)((e=>{r&&l.set(e)}),[r,l])]}({groupId:n}),b=(()=>{const e=u??c;return m({value:e,tabValues:l})?e:null})();(0,a.useLayoutEffect)((()=>{b&&i(b)}),[b]);return{selectedValue:o,selectValue:(0,a.useCallback)((e=>{if(!m({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);i(e),s(e),f(e)}),[s,f,l]),tabValues:l}}var b=r(2389);const y={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};function v(e){let{className:t,block:r,selectedValue:i,selectValue:u,tabValues:s}=e;const d=[],{blockElementScrollPositionUntilNextRender:c}=(0,o.o5)(),p=e=>{const t=e.currentTarget,r=d.indexOf(t),n=s[r].value;n!==i&&(c(t),u(n))},m=e=>{let t=null;switch(e.key){case"Enter":p(e);break;case"ArrowRight":{const r=d.indexOf(e.currentTarget)+1;t=d[r]??d[0];break}case"ArrowLeft":{const r=d.indexOf(e.currentTarget)-1;t=d[r]??d[d.length-1];break}}t?.focus()};return a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":r},t)},s.map((e=>{let{value:t,label:r,attributes:o}=e;return a.createElement("li",(0,n.Z)({role:"tab",tabIndex:i===t?0:-1,"aria-selected":i===t,key:t,ref:e=>d.push(e),onKeyDown:m,onClick:p},o,{className:(0,l.Z)("tabs__item",y.tabItem,o?.className,{"tabs__item--active":i===t})}),r??t)})))}function k(e){let{lazy:t,children:r,selectedValue:n}=e;const l=(Array.isArray(r)?r:[r]).filter(Boolean);if(t){const e=l.find((e=>e.props.value===n));return e?(0,a.cloneElement)(e,{className:"margin-top--md"}):null}return a.createElement("div",{className:"margin-top--md"},l.map(((e,t)=>(0,a.cloneElement)(e,{key:t,hidden:e.props.value!==n}))))}function g(e){const t=f(e);return a.createElement("div",{className:(0,l.Z)("tabs-container",y.tabList)},a.createElement(v,(0,n.Z)({},e,t)),a.createElement(k,(0,n.Z)({},e,t)))}function N(e){const t=(0,b.Z)();return a.createElement(g,(0,n.Z)({key:String(t)},e))}},3423:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>d,contentTitle:()=>u,default:()=>h,frontMatter:()=>i,metadata:()=>s,toc:()=>c});var n=r(7462),a=(r(7294),r(3905)),l=r(4866),o=r(5162);const i={title:"http-router"},u=void 0,s={unversionedId:"routers/http-router",id:"routers/http-router",title:"http-router",description:"This handler can route to requests to one of a nested handler based on method and path of an http event from API Gateway (REST or HTTP) or Elastic Load Balancer.",source:"@site/docs/routers/http-router.md",sourceDirName:"routers",slug:"/routers/http-router",permalink:"/docs/routers/http-router",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/routers/http-router.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",frontMatter:{title:"http-router"},sidebar:"tutorialSidebar",previous:{title:"Routers",permalink:"/docs/category/routers"},next:{title:"ws-router",permalink:"/docs/routers/ws-router"}},d={},c=[{value:"Install",id:"install",level:2},{value:"Options",id:"options",level:2},{value:"Sample usage",id:"sample-usage",level:2}],p={toc:c},m="wrapper";function h(e){let{components:t,...r}=e;return(0,a.kt)(m,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"This handler can route to requests to one of a nested handler based on ",(0,a.kt)("inlineCode",{parentName:"p"},"method")," and ",(0,a.kt)("inlineCode",{parentName:"p"},"path")," of an http event from API Gateway (REST or HTTP) or Elastic Load Balancer."),(0,a.kt)("h2",{id:"install"},"Install"),(0,a.kt)("p",null,"To install this middleware you can use NPM:"),(0,a.kt)(l.Z,{groupId:"npm2yarn",mdxType:"Tabs"},(0,a.kt)(o.Z,{value:"npm",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-bash"},"npm install --save @middy/http-router\n"))),(0,a.kt)(o.Z,{value:"yarn",label:"Yarn",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-bash"},"yarn add @middy/http-router\n"))),(0,a.kt)(o.Z,{value:"pnpm",label:"pnpm",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-bash"},"pnpm add @middy/http-router\n")))),(0,a.kt)("h2",{id:"options"},"Options"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"routes")," (array","[{method, path, handler}]",") (required): Array of route objects.",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"method")," (string) (required): One of ",(0,a.kt)("inlineCode",{parentName:"li"},"GET"),", ",(0,a.kt)("inlineCode",{parentName:"li"},"POST"),", ",(0,a.kt)("inlineCode",{parentName:"li"},"PUT"),", ",(0,a.kt)("inlineCode",{parentName:"li"},"PATCH"),", ",(0,a.kt)("inlineCode",{parentName:"li"},"DELETE"),", ",(0,a.kt)("inlineCode",{parentName:"li"},"OPTIONS")," and ",(0,a.kt)("inlineCode",{parentName:"li"},"ANY")," that will match to any method passed in"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"path")," (string) (required): AWS formatted path starting with ",(0,a.kt)("inlineCode",{parentName:"li"},"/"),". Variable: ",(0,a.kt)("inlineCode",{parentName:"li"},"/{id}/"),", Wildcard: ",(0,a.kt)("inlineCode",{parentName:"li"},"/{proxy+}")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"handler")," (function) (required): Any ",(0,a.kt)("inlineCode",{parentName:"li"},"handler(event, context)")," function")))),(0,a.kt)("p",null,"NOTES:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"When using API Gateway it may be required to prefix ",(0,a.kt)("inlineCode",{parentName:"li"},"routes[].path")," with ",(0,a.kt)("inlineCode",{parentName:"li"},"/{stage}")," depending on your use case."),(0,a.kt)("li",{parentName:"ul"},"Errors should be handled as part of the router middleware stack ",(0,a.kt)("strong",{parentName:"li"},"or")," the lambdaHandler middleware stack. Handled errors in the later will trigger the ",(0,a.kt)("inlineCode",{parentName:"li"},"after")," middleware stack of the former."),(0,a.kt)("li",{parentName:"ul"},"Shared middlewares, connected to the router middleware stack, can only be run before the lambdaHandler middleware stack."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"pathParameters")," will automatically be set if not already set")),(0,a.kt)("h2",{id:"sample-usage"},"Sample usage"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\nimport httpRouterHandler from '@middy/http-router'\nimport validatorMiddleware from '@middy/validator'\n\nconst getHandler = middy()\n .use(validatorMiddleware({eventSchema: {...} }))\n .handler((event, context) => {\n return {\n statusCode: 200,\n body: '{...}'\n }\n })\n\nconst postHandler = middy()\n .use(validatorMiddleware({eventSchema: {...} }))\n .handler((event, context) => {\n return {\n statusCode: 200,\n body: '{...}'\n }\n })\n\nconst routes = [\n {\n method: 'GET',\n path: '/user/{id}',\n handler: getHandler\n },\n {\n method: 'POST',\n path: '/user',\n handler: postHandler\n }\n]\n\nexport const handler = middy()\n .use(httpHeaderNormalizer())\n .handler(httpRouterHandler(routes))\n\n")))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/654635c7.dc35b4f1.js b/assets/js/654635c7.dc35b4f1.js new file mode 100644 index 000000000..73440cc1a --- /dev/null +++ b/assets/js/654635c7.dc35b4f1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[1338],{7803:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>d,default:()=>p,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var n=r(5893),a=r(1151),l=r(4866),s=r(5162);const o={title:"http-router"},d=void 0,i={id:"routers/http-router",title:"http-router",description:"This handler can route to requests to one of a nested handler based on method and path of an http event from API Gateway (REST or HTTP) or Elastic Load Balancer.",source:"@site/docs/routers/http-router.md",sourceDirName:"routers",slug:"/routers/http-router",permalink:"/docs/routers/http-router",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/routers/http-router.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",frontMatter:{title:"http-router"},sidebar:"tutorialSidebar",previous:{title:"Routers",permalink:"/docs/category/routers"},next:{title:"ws-router",permalink:"/docs/routers/ws-router"}},u={},c=[{value:"Install",id:"install",level:2},{value:"Options",id:"options",level:2},{value:"Sample usage",id:"sample-usage",level:2}];function h(e){const t={code:"code",h2:"h2",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,a.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(t.p,{children:["This handler can route to requests to one of a nested handler based on ",(0,n.jsx)(t.code,{children:"method"})," and ",(0,n.jsx)(t.code,{children:"path"})," of an http event from API Gateway (REST or HTTP) or Elastic Load Balancer."]}),"\n",(0,n.jsx)(t.h2,{id:"install",children:"Install"}),"\n",(0,n.jsx)(t.p,{children:"To install this middleware you can use NPM:"}),"\n",(0,n.jsxs)(l.Z,{groupId:"npm2yarn",children:[(0,n.jsx)(s.Z,{value:"npm",children:(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-bash",children:"npm install --save @middy/http-router\n"})})}),(0,n.jsx)(s.Z,{value:"yarn",label:"Yarn",children:(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-bash",children:"yarn add @middy/http-router\n"})})}),(0,n.jsx)(s.Z,{value:"pnpm",label:"pnpm",children:(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-bash",children:"pnpm add @middy/http-router\n"})})})]}),"\n",(0,n.jsx)(t.h2,{id:"options",children:"Options"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"routes"})," (array[{method, path, handler}]) (required): Array of route objects.","\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"method"})," (string) (required): One of ",(0,n.jsx)(t.code,{children:"GET"}),", ",(0,n.jsx)(t.code,{children:"POST"}),", ",(0,n.jsx)(t.code,{children:"PUT"}),", ",(0,n.jsx)(t.code,{children:"PATCH"}),", ",(0,n.jsx)(t.code,{children:"DELETE"}),", ",(0,n.jsx)(t.code,{children:"OPTIONS"})," and ",(0,n.jsx)(t.code,{children:"ANY"})," that will match to any method passed in"]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"path"})," (string) (required): AWS formatted path starting with ",(0,n.jsx)(t.code,{children:"/"}),". Variable: ",(0,n.jsx)(t.code,{children:"/{id}/"}),", Wildcard: ",(0,n.jsx)(t.code,{children:"/{proxy+}"})]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"handler"})," (function) (required): Any ",(0,n.jsx)(t.code,{children:"handler(event, context)"})," function"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(t.p,{children:"NOTES:"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:["When using API Gateway it may be required to prefix ",(0,n.jsx)(t.code,{children:"routes[].path"})," with ",(0,n.jsx)(t.code,{children:"/{stage}"})," depending on your use case."]}),"\n",(0,n.jsxs)(t.li,{children:["Errors should be handled as part of the router middleware stack ",(0,n.jsx)(t.strong,{children:"or"})," the lambdaHandler middleware stack. Handled errors in the later will trigger the ",(0,n.jsx)(t.code,{children:"after"})," middleware stack of the former."]}),"\n",(0,n.jsx)(t.li,{children:"Shared middlewares, connected to the router middleware stack, can only be run before the lambdaHandler middleware stack."}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"pathParameters"})," will automatically be set if not already set"]}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"sample-usage",children:"Sample usage"}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-javascript",children:"import middy from '@middy/core'\nimport httpRouterHandler from '@middy/http-router'\nimport validatorMiddleware from '@middy/validator'\n\nconst getHandler = middy()\n .use(validatorMiddleware({eventSchema: {...} }))\n .handler((event, context) => {\n return {\n statusCode: 200,\n body: '{...}'\n }\n })\n\nconst postHandler = middy()\n .use(validatorMiddleware({eventSchema: {...} }))\n .handler((event, context) => {\n return {\n statusCode: 200,\n body: '{...}'\n }\n })\n\nconst routes = [\n {\n method: 'GET',\n path: '/user/{id}',\n handler: getHandler\n },\n {\n method: 'POST',\n path: '/user',\n handler: postHandler\n }\n]\n\nexport const handler = middy()\n .use(httpHeaderNormalizer())\n .handler(httpRouterHandler(routes))\n\n"})})]})}function p(e={}){const{wrapper:t}={...(0,a.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(h,{...e})}):h(e)}},5162:(e,t,r)=>{r.d(t,{Z:()=>s});r(7294);var n=r(6010);const a={tabItem:"tabItem_Ymn6"};var l=r(5893);function s(e){let{children:t,hidden:r,className:s}=e;return(0,l.jsx)("div",{role:"tabpanel",className:(0,n.Z)(a.tabItem,s),hidden:r,children:t})}},4866:(e,t,r)=>{r.d(t,{Z:()=>w});var n=r(7294),a=r(6010),l=r(2466),s=r(6550),o=r(469),d=r(1980),i=r(7392),u=r(12);function c(e){return n.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,n.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function h(e){const{values:t,children:r}=e;return(0,n.useMemo)((()=>{const e=t??function(e){return c(e).map((e=>{let{props:{value:t,label:r,attributes:n,default:a}}=e;return{value:t,label:r,attributes:n,default:a}}))}(r);return function(e){const t=(0,i.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,r])}function p(e){let{value:t,tabValues:r}=e;return r.some((e=>e.value===t))}function m(e){let{queryString:t=!1,groupId:r}=e;const a=(0,s.k6)(),l=function(e){let{queryString:t=!1,groupId:r}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!r)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return r??null}({queryString:t,groupId:r});return[(0,d._X)(l),(0,n.useCallback)((e=>{if(!l)return;const t=new URLSearchParams(a.location.search);t.set(l,e),a.replace({...a.location,search:t.toString()})}),[l,a])]}function f(e){const{defaultValue:t,queryString:r=!1,groupId:a}=e,l=h(e),[s,d]=(0,n.useState)((()=>function(e){let{defaultValue:t,tabValues:r}=e;if(0===r.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!p({value:t,tabValues:r}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${r.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const n=r.find((e=>e.default))??r[0];if(!n)throw new Error("Unexpected error: 0 tabValues");return n.value}({defaultValue:t,tabValues:l}))),[i,c]=m({queryString:r,groupId:a}),[f,b]=function(e){let{groupId:t}=e;const r=function(e){return e?`docusaurus.tab.${e}`:null}(t),[a,l]=(0,u.Nk)(r);return[a,(0,n.useCallback)((e=>{r&&l.set(e)}),[r,l])]}({groupId:a}),x=(()=>{const e=i??f;return p({value:e,tabValues:l})?e:null})();(0,o.Z)((()=>{x&&d(x)}),[x]);return{selectedValue:s,selectValue:(0,n.useCallback)((e=>{if(!p({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);d(e),c(e),b(e)}),[c,b,l]),tabValues:l}}var b=r(2389);const x={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var v=r(5893);function j(e){let{className:t,block:r,selectedValue:n,selectValue:s,tabValues:o}=e;const d=[],{blockElementScrollPositionUntilNextRender:i}=(0,l.o5)(),u=e=>{const t=e.currentTarget,r=d.indexOf(t),a=o[r].value;a!==n&&(i(t),s(a))},c=e=>{let t=null;switch(e.key){case"Enter":u(e);break;case"ArrowRight":{const r=d.indexOf(e.currentTarget)+1;t=d[r]??d[0];break}case"ArrowLeft":{const r=d.indexOf(e.currentTarget)-1;t=d[r]??d[d.length-1];break}}t?.focus()};return(0,v.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,a.Z)("tabs",{"tabs--block":r},t),children:o.map((e=>{let{value:t,label:r,attributes:l}=e;return(0,v.jsx)("li",{role:"tab",tabIndex:n===t?0:-1,"aria-selected":n===t,ref:e=>d.push(e),onKeyDown:c,onClick:u,...l,className:(0,a.Z)("tabs__item",x.tabItem,l?.className,{"tabs__item--active":n===t}),children:r??t},t)}))})}function g(e){let{lazy:t,children:r,selectedValue:a}=e;const l=(Array.isArray(r)?r:[r]).filter(Boolean);if(t){const e=l.find((e=>e.props.value===a));return e?(0,n.cloneElement)(e,{className:"margin-top--md"}):null}return(0,v.jsx)("div",{className:"margin-top--md",children:l.map(((e,t)=>(0,n.cloneElement)(e,{key:t,hidden:e.props.value!==a})))})}function y(e){const t=f(e);return(0,v.jsxs)("div",{className:(0,a.Z)("tabs-container",x.tabList),children:[(0,v.jsx)(j,{...e,...t}),(0,v.jsx)(g,{...e,...t})]})}function w(e){const t=(0,b.Z)();return(0,v.jsx)(y,{...e,children:c(e.children)},String(t))}},1151:(e,t,r)=>{r.d(t,{Z:()=>o,a:()=>s});var n=r(7294);const a={},l=n.createContext(a);function s(e){const t=n.useContext(l);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:s(e.components),n.createElement(l.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/65ce35be.70a66fc9.js b/assets/js/65ce35be.70a66fc9.js new file mode 100644 index 000000000..1f39dc0b8 --- /dev/null +++ b/assets/js/65ce35be.70a66fc9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[8002],{350:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>o,default:()=>m,frontMatter:()=>s,metadata:()=>r,toc:()=>l});var a=t(5893),i=t(1151);const s={title:"Kafka, Self-Managed"},o=void 0,r={id:"events/kafka-self-managed",title:"Kafka, Self-Managed",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/events/kafka-self-managed.md",sourceDirName:"events",slug:"/events/kafka-self-managed",permalink:"/docs/events/kafka-self-managed",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/events/kafka-self-managed.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",frontMatter:{title:"Kafka, Self-Managed"},sidebar:"tutorialSidebar",previous:{title:"Kafka, Managed Streaming (MSK)",permalink:"/docs/events/kafka-managed-streaming"},next:{title:"Kinesis Firehose",permalink:"/docs/events/kinesis-firehose"}},d={},l=[{value:"AWS Documentation",id:"aws-documentation",level:2},{value:"Example",id:"example",level:2}];function c(e){const n={a:"a",admonition:"admonition",code:"code",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,i.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(n.admonition,{type:"caution",children:(0,a.jsx)(n.p,{children:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub."})}),"\n",(0,a.jsx)(n.h2,{id:"aws-documentation",children:"AWS Documentation"}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsx)(n.li,{children:(0,a.jsx)(n.a,{href:"https://docs.aws.amazon.com/lambda/latest/dg/with-kafka.html",children:"Using Lambda with self-managed Apache Kafka"})}),"\n"]}),"\n",(0,a.jsx)(n.h2,{id:"example",children:"Example"}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-javascript",children:"import middy from '@middy/core'\nimport eventNormalizerMiddleware from '@middy/event-normalizer'\n\nexport const handler = middy()\n .use(eventNormalizerMiddleware())\n .handler((event, context, {signal}) => {\n // ...\n })\n"})})]})}function m(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,a.jsx)(n,{...e,children:(0,a.jsx)(c,{...e})}):c(e)}},1151:(e,n,t)=>{t.d(n,{Z:()=>r,a:()=>o});var a=t(7294);const i={},s=a.createContext(i);function o(e){const n=a.useContext(s);return a.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),a.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/65ce35be.ada22df1.js b/assets/js/65ce35be.ada22df1.js deleted file mode 100644 index d09813472..000000000 --- a/assets/js/65ce35be.ada22df1.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[8002],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>f});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},o=Object.keys(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=a.createContext({}),c=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=c(e.components);return a.createElement(s.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},u=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),p=c(n),u=r,f=p["".concat(s,".").concat(u)]||p[u]||m[u]||o;return n?a.createElement(f,i(i({ref:t},d),{},{components:n})):a.createElement(f,i({ref:t},d))}));function f(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,i=new Array(o);i[0]=u;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[p]="string"==typeof e?e:r,i[1]=l;for(var c=2;c<o;c++)i[c]=n[c];return a.createElement.apply(null,i)}return a.createElement.apply(null,n)}u.displayName="MDXCreateElement"},8056:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var a=n(7462),r=(n(7294),n(3905));const o={title:"Kafka, Self-Managed"},i=void 0,l={unversionedId:"events/kafka-self-managed",id:"events/kafka-self-managed",title:"Kafka, Self-Managed",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/events/kafka-self-managed.md",sourceDirName:"events",slug:"/events/kafka-self-managed",permalink:"/docs/events/kafka-self-managed",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/events/kafka-self-managed.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",frontMatter:{title:"Kafka, Self-Managed"},sidebar:"tutorialSidebar",previous:{title:"Kafka, Managed Streaming (MSK)",permalink:"/docs/events/kafka-managed-streaming"},next:{title:"Kinesis Firehose",permalink:"/docs/events/kinesis-firehose"}},s={},c=[{value:"AWS Documentation",id:"aws-documentation",level:2},{value:"Example",id:"example",level:2}],d={toc:c},p="wrapper";function m(e){let{components:t,...n}=e;return(0,r.kt)(p,(0,a.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("admonition",{type:"caution"},(0,r.kt)("p",{parentName:"admonition"},"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.")),(0,r.kt)("h2",{id:"aws-documentation"},"AWS Documentation"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://docs.aws.amazon.com/lambda/latest/dg/with-kafka.html"},"Using Lambda with self-managed Apache Kafka"))),(0,r.kt)("h2",{id:"example"},"Example"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\nimport eventNormalizerMiddleware from '@middy/event-normalizer'\n\nexport const handler = middy()\n .use(eventNormalizerMiddleware())\n .handler((event, context, {signal}) => {\n // ...\n })\n")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/667584a0.b4226377.js b/assets/js/667584a0.b4226377.js deleted file mode 100644 index 4cf9ae9d1..000000000 --- a/assets/js/667584a0.b4226377.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[2600],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>f});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=r.createContext({}),c=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=c(e.components);return r.createElement(l.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),d=c(n),u=o,f=d["".concat(l,".").concat(u)]||d[u]||m[u]||a;return n?r.createElement(f,i(i({ref:t},p),{},{components:n})):r.createElement(f,i({ref:t},p))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=u;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[d]="string"==typeof e?e:o,i[1]=s;for(var c=2;c<a;c++)i[c]=n[c];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}u.displayName="MDXCreateElement"},1023:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>m,frontMatter:()=>a,metadata:()=>s,toc:()=>c});var r=n(7462),o=(n(7294),n(3905));const a={title:"SNS"},i=void 0,s={unversionedId:"events/sns",id:"events/sns",title:"SNS",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/events/sns.md",sourceDirName:"events",slug:"/events/sns",permalink:"/docs/events/sns",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/events/sns.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",frontMatter:{title:"SNS"},sidebar:"tutorialSidebar",previous:{title:"SES",permalink:"/docs/events/ses"},next:{title:"SQS",permalink:"/docs/events/sqs"}},l={},c=[{value:"AWS Documentation",id:"aws-documentation",level:2},{value:"Example",id:"example",level:2}],p={toc:c},d="wrapper";function m(e){let{components:t,...n}=e;return(0,o.kt)(d,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("admonition",{type:"caution"},(0,o.kt)("p",{parentName:"admonition"},"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.")),(0,o.kt)("h2",{id:"aws-documentation"},"AWS Documentation"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://docs.aws.amazon.com/lambda/latest/dg/with-sns.html"},"Using AWS Lambda with Amazon SNS"))),(0,o.kt)("h2",{id:"example"},"Example"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\nimport eventNormalizerMiddleware from '@middy/event-normalizer'\n\nexport const handler = middy()\n .use(eventNormalizerMiddleware())\n .handler((event, context, {signal}) => {\n // ...\n })\n")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/667584a0.c856e970.js b/assets/js/667584a0.c856e970.js new file mode 100644 index 000000000..e9b24fa0d --- /dev/null +++ b/assets/js/667584a0.c856e970.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[2600],{7199:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>a,default:()=>m,frontMatter:()=>o,metadata:()=>r,toc:()=>c});var s=n(5893),i=n(1151);const o={title:"SNS"},a=void 0,r={id:"events/sns",title:"SNS",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/events/sns.md",sourceDirName:"events",slug:"/events/sns",permalink:"/docs/events/sns",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/events/sns.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",frontMatter:{title:"SNS"},sidebar:"tutorialSidebar",previous:{title:"SES",permalink:"/docs/events/ses"},next:{title:"SQS",permalink:"/docs/events/sqs"}},d={},c=[{value:"AWS Documentation",id:"aws-documentation",level:2},{value:"Example",id:"example",level:2}];function l(e){const t={a:"a",admonition:"admonition",code:"code",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,i.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.admonition,{type:"caution",children:(0,s.jsx)(t.p,{children:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub."})}),"\n",(0,s.jsx)(t.h2,{id:"aws-documentation",children:"AWS Documentation"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://docs.aws.amazon.com/lambda/latest/dg/with-sns.html",children:"Using AWS Lambda with Amazon SNS"})}),"\n"]}),"\n",(0,s.jsx)(t.h2,{id:"example",children:"Example"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-javascript",children:"import middy from '@middy/core'\nimport eventNormalizerMiddleware from '@middy/event-normalizer'\n\nexport const handler = middy()\n .use(eventNormalizerMiddleware())\n .handler((event, context, {signal}) => {\n // ...\n })\n"})})]})}function m(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(l,{...e})}):l(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>r,a:()=>a});var s=n(7294);const i={},o=s.createContext(i);function a(e){const t=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),s.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/68318e94.b49dc391.js b/assets/js/68318e94.b49dc391.js deleted file mode 100644 index 16318e1f3..000000000 --- a/assets/js/68318e94.b49dc391.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[811],{3905:(e,t,r)=>{r.d(t,{Zo:()=>c,kt:()=>y});var a=r(7294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function p(e,t){if(null==e)return{};var r,a,n=function(e,t){if(null==e)return{};var r,a,n={},o=Object.keys(e);for(a=0;a<o.length;a++)r=o[a],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)r=o[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var l=a.createContext({}),s=function(e){var t=a.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},c=function(e){var t=s(e.components);return a.createElement(l.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,l=e.parentName,c=p(e,["components","mdxType","originalType","parentName"]),u=s(r),m=n,y=u["".concat(l,".").concat(m)]||u[m]||d[m]||o;return r?a.createElement(y,i(i({ref:t},c),{},{components:r})):a.createElement(y,i({ref:t},c))}));function y(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,i=new Array(o);i[0]=m;var p={};for(var l in t)hasOwnProperty.call(t,l)&&(p[l]=t[l]);p.originalType=e,p[u]="string"==typeof e?e:n,i[1]=p;for(var s=2;s<o;s++)i[s]=r[s];return a.createElement.apply(null,i)}return a.createElement.apply(null,r)}m.displayName="MDXCreateElement"},1910:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>p,toc:()=>s});var a=r(7462),n=(r(7294),r(3905));const o={title:"API Gateway Authorizer"},i=void 0,p={unversionedId:"events/api-gateway-authorizer",id:"events/api-gateway-authorizer",title:"API Gateway Authorizer",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/events/api-gateway-authorizer.md",sourceDirName:"events",slug:"/events/api-gateway-authorizer",permalink:"/docs/events/api-gateway-authorizer",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/events/api-gateway-authorizer.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",frontMatter:{title:"API Gateway Authorizer"},sidebar:"tutorialSidebar",previous:{title:"Alexa",permalink:"/docs/events/alexa"},next:{title:"API Gateway (HTTP)",permalink:"/docs/events/api-gateway-http"}},l={},s=[{value:"AWS Documentation",id:"aws-documentation",level:2},{value:"Example",id:"example",level:2}],c={toc:s},u="wrapper";function d(e){let{components:t,...r}=e;return(0,n.kt)(u,(0,a.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("admonition",{type:"caution"},(0,n.kt)("p",{parentName:"admonition"},"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.")),(0,n.kt)("h2",{id:"aws-documentation"},"AWS Documentation"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html"},"Working with AWS Lambda authorizers for HTTP APIs")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-lambda-authorizer-input.html"},"Input to an Amazon API Gateway Lambda authorizer"))),(0,n.kt)("h2",{id:"example"},"Example"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\nexport const handler = middy().handler((event, context, { signal }) => {\n // ...\n})\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/68318e94.f0552e72.js b/assets/js/68318e94.f0552e72.js new file mode 100644 index 000000000..54a36a73d --- /dev/null +++ b/assets/js/68318e94.f0552e72.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[811],{4756:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>d,contentTitle:()=>r,default:()=>p,frontMatter:()=>o,metadata:()=>s,toc:()=>l});var n=a(5893),i=a(1151);const o={title:"API Gateway Authorizer"},r=void 0,s={id:"events/api-gateway-authorizer",title:"API Gateway Authorizer",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/events/api-gateway-authorizer.md",sourceDirName:"events",slug:"/events/api-gateway-authorizer",permalink:"/docs/events/api-gateway-authorizer",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/events/api-gateway-authorizer.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",frontMatter:{title:"API Gateway Authorizer"},sidebar:"tutorialSidebar",previous:{title:"Alexa",permalink:"/docs/events/alexa"},next:{title:"API Gateway (HTTP)",permalink:"/docs/events/api-gateway-http"}},d={},l=[{value:"AWS Documentation",id:"aws-documentation",level:2},{value:"Example",id:"example",level:2}];function c(e){const t={a:"a",admonition:"admonition",code:"code",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,i.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.admonition,{type:"caution",children:(0,n.jsx)(t.p,{children:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub."})}),"\n",(0,n.jsx)(t.h2,{id:"aws-documentation",children:"AWS Documentation"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html",children:"Working with AWS Lambda authorizers for HTTP APIs"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-lambda-authorizer-input.html",children:"Input to an Amazon API Gateway Lambda authorizer"})}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"example",children:"Example"}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-javascript",children:"import middy from '@middy/core'\nexport const handler = middy().handler((event, context, { signal }) => {\n // ...\n})\n"})})]})}function p(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(c,{...e})}):c(e)}},1151:(e,t,a)=>{a.d(t,{Z:()=>s,a:()=>r});var n=a(7294);const i={},o=n.createContext(i);function r(e){const t=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),n.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/687b60fb.12305578.js b/assets/js/687b60fb.12305578.js new file mode 100644 index 000000000..3af3b62a0 --- /dev/null +++ b/assets/js/687b60fb.12305578.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[7783],{1476:(e,d,n)=>{n.r(d),n.d(d,{assets:()=>a,contentTitle:()=>o,default:()=>l,frontMatter:()=>t,metadata:()=>i,toc:()=>c});var r=n(5893),s=n(1151);const t={title:"Upgrade 0.x -> 1.x",sidebar_position:1e4},o=void 0,i={id:"upgrade/0-1",title:"Upgrade 0.x -> 1.x",description:'aka "The It\'s Stable Update"',source:"@site/docs/upgrade/0-1.md",sourceDirName:"upgrade",slug:"/upgrade/0-1",permalink:"/docs/upgrade/0-1",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/upgrade/0-1.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",sidebarPosition:1e4,frontMatter:{title:"Upgrade 0.x -> 1.x",sidebar_position:1e4},sidebar:"tutorialSidebar",previous:{title:"Upgrade 1.x -> 2.x",permalink:"/docs/upgrade/1-2"},next:{title:"AWS Event Examples",permalink:"/docs/category/aws-event-examples"}},a={},c=[{value:"Independent packages structure",id:"independent-packages-structure",level:2},{value:"Header normalization in <code>http-header-normalizer</code>",id:"header-normalization-in-http-header-normalizer",level:2},{value:"Node.js 10 and 12 now supported / Node.js 6 and 8 now dropped",id:"nodejs-10-and-12-now-supported--nodejs-6-and-8-now-dropped",level:2}];function h(e){const d={a:"a",code:"code",h2:"h2",li:"li",p:"p",ul:"ul",...(0,s.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(d.p,{children:'aka "The It\'s Stable Update"'}),"\n",(0,r.jsx)(d.h2,{id:"independent-packages-structure",children:"Independent packages structure"}),"\n",(0,r.jsxs)(d.p,{children:["Version 1.x of Middy features decoupled independent packages published on npm under the ",(0,r.jsx)(d.code,{children:"@middy"})," namespace. The core middleware engine has been moved to ",(0,r.jsx)(d.a,{href:"https://www.npmjs.com/package/@middy/core",children:(0,r.jsx)(d.code,{children:"@middy/core"})})," and all the other middlewares are moved into their own packages as well. This allows to only install the features that are needed and to keep your Lambda dependencies small. See the list below to check which packages you need based on the middlewares you use:"]}),"\n",(0,r.jsxs)(d.ul,{children:["\n",(0,r.jsxs)(d.li,{children:["Core middleware functionality -> ",(0,r.jsx)(d.a,{href:"https://www.npmjs.com/package/@middy/core",children:(0,r.jsx)(d.code,{children:"@middy/core"})})]}),"\n",(0,r.jsxs)(d.li,{children:[(0,r.jsx)(d.code,{children:"cache"})," -> ",(0,r.jsx)(d.a,{href:"https://www.npmjs.com/package/@middy/cache",children:(0,r.jsx)(d.code,{children:"@middy/cache"})})]}),"\n",(0,r.jsxs)(d.li,{children:[(0,r.jsx)(d.code,{children:"cors"})," -> ",(0,r.jsx)(d.a,{href:"https://www.npmjs.com/package/@middy/http-cors",children:(0,r.jsx)(d.code,{children:"@middy/http-cors"})})]}),"\n",(0,r.jsxs)(d.li,{children:[(0,r.jsx)(d.code,{children:"doNotWaitForEmptyEventLoop"})," -> ",(0,r.jsx)(d.a,{href:"https://www.npmjs.com/package/@middy/do-not-wait-for-empty-event-loop",children:(0,r.jsx)(d.code,{children:"@middy/do-not-wait-for-empty-event-loop"})})]}),"\n",(0,r.jsxs)(d.li,{children:[(0,r.jsx)(d.code,{children:"httpContentNegotiation"})," -> ",(0,r.jsx)(d.a,{href:"https://www.npmjs.com/package/@middy/http-content-negotiation",children:(0,r.jsx)(d.code,{children:"@middy/http-content-negotiation"})})]}),"\n",(0,r.jsxs)(d.li,{children:[(0,r.jsx)(d.code,{children:"httpErrorHandler"})," -> ",(0,r.jsx)(d.a,{href:"https://www.npmjs.com/package/@middy/http-error-handler",children:(0,r.jsx)(d.code,{children:"@middy/http-error-handler"})})]}),"\n",(0,r.jsxs)(d.li,{children:[(0,r.jsx)(d.code,{children:"httpEventNormalizer"})," -> ",(0,r.jsx)(d.a,{href:"https://www.npmjs.com/package/@middy/http-event-normalizer",children:(0,r.jsx)(d.code,{children:"@middy/http-event-normalizer"})})]}),"\n",(0,r.jsxs)(d.li,{children:[(0,r.jsx)(d.code,{children:"httpHeaderNormalizer"})," -> ",(0,r.jsx)(d.a,{href:"https://www.npmjs.com/package/@middy/http-header-normalizer",children:(0,r.jsx)(d.code,{children:"@middy/http-header-normalizer"})})]}),"\n",(0,r.jsxs)(d.li,{children:[(0,r.jsx)(d.code,{children:"httpMultipartBodyParser"})," -> ",(0,r.jsx)(d.a,{href:"https://www.npmjs.com/package/@middy/http-json-body-parser",children:(0,r.jsx)(d.code,{children:"@middy/http-json-body-parser"})})]}),"\n",(0,r.jsxs)(d.li,{children:[(0,r.jsx)(d.code,{children:"httpPartialResponse"})," -> ",(0,r.jsx)(d.a,{href:"https://www.npmjs.com/package/@middy/http-partial-response",children:(0,r.jsx)(d.code,{children:"@middy/http-partial-response"})})]}),"\n",(0,r.jsxs)(d.li,{children:[(0,r.jsx)(d.code,{children:"jsonBodyParser"})," -> ",(0,r.jsx)(d.a,{href:"https://www.npmjs.com/package/@middy/http-json-body-parser",children:(0,r.jsx)(d.code,{children:"@middy/http-json-body-parser"})})]}),"\n",(0,r.jsxs)(d.li,{children:[(0,r.jsx)(d.code,{children:"s3KeyNormalizer"})," -> ",(0,r.jsx)(d.a,{href:"https://www.npmjs.com/package/@middy/s3-key-normalizer",children:(0,r.jsx)(d.code,{children:"@middy/s3-key-normalizer"})})]}),"\n",(0,r.jsxs)(d.li,{children:[(0,r.jsx)(d.code,{children:"secretsManager"})," -> ",(0,r.jsx)(d.a,{href:"https://www.npmjs.com/package/@middy/secrets-manager",children:(0,r.jsx)(d.code,{children:"@middy/secrets-manager"})})]}),"\n",(0,r.jsxs)(d.li,{children:[(0,r.jsx)(d.code,{children:"ssm"})," -> ",(0,r.jsx)(d.a,{href:"https://www.npmjs.com/package/@middy/ssm",children:(0,r.jsx)(d.code,{children:"@middy/ssm"})})]}),"\n",(0,r.jsxs)(d.li,{children:[(0,r.jsx)(d.code,{children:"validator"})," -> ",(0,r.jsx)(d.a,{href:"https://www.npmjs.com/package/@middy/validator",children:(0,r.jsx)(d.code,{children:"@middy/validator"})})]}),"\n",(0,r.jsxs)(d.li,{children:[(0,r.jsx)(d.code,{children:"urlEncodeBodyParser"})," -> ",(0,r.jsx)(d.a,{href:"https://www.npmjs.com/package/@middy/http-urlencode-body-parser",children:(0,r.jsx)(d.code,{children:"@middy/http-urlencode-body-parser"})})]}),"\n",(0,r.jsxs)(d.li,{children:[(0,r.jsx)(d.code,{children:"warmup"})," -> ",(0,r.jsx)(d.a,{href:"https://www.npmjs.com/package/@middy/warmup",children:(0,r.jsx)(d.code,{children:"@middy/warmup"})})]}),"\n"]}),"\n",(0,r.jsxs)(d.h2,{id:"header-normalization-in-http-header-normalizer",children:["Header normalization in ",(0,r.jsx)(d.code,{children:"http-header-normalizer"})]}),"\n",(0,r.jsxs)(d.p,{children:["In Middy 0.x the ",(0,r.jsx)(d.code,{children:"httpHeaderNormalizer"})," middleware normalizes HTTP header names into their own canonical format, for instance ",(0,r.jsx)(d.code,{children:"Sec-WebSocket-Key"})," (notice the casing). In Middy 1.x this behavior has been changed to provide header names in lowercase format (e.g. ",(0,r.jsx)(d.code,{children:"sec-webSocket-key"}),"). This new behavior is more consistent with what Node.js core ",(0,r.jsx)(d.code,{children:"http"})," package does and what other famous http frameworks like Express or Fastify do, so this is considered a more intuitive approach.\nWhen updating to Middy 1.x, make sure you double check all your references to HTTP headers and switch to the lowercase version to read them.\nAll the middy core modules have been already updated to support the new format, so you should worry only about your userland code."]}),"\n",(0,r.jsx)(d.h2,{id:"nodejs-10-and-12-now-supported--nodejs-6-and-8-now-dropped",children:"Node.js 10 and 12 now supported / Node.js 6 and 8 now dropped"}),"\n",(0,r.jsx)(d.p,{children:"Version 1.x of Middy no longer supports Node.js versions 6.x and 8.x as these versions have been dropped by the AWS Lambda runtime itself and not supported anymore by the Node.js community. You are highly encouraged to move to Node.js 12 or 10, which are the new supported versions in Middy 1.x."})]})}function l(e={}){const{wrapper:d}={...(0,s.a)(),...e.components};return d?(0,r.jsx)(d,{...e,children:(0,r.jsx)(h,{...e})}):h(e)}},1151:(e,d,n)=>{n.d(d,{Z:()=>i,a:()=>o});var r=n(7294);const s={},t=r.createContext(s);function o(e){const d=r.useContext(t);return r.useMemo((function(){return"function"==typeof e?e(d):{...d,...e}}),[d,e])}function i(e){let d;return d=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),r.createElement(t.Provider,{value:d},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/687b60fb.c6dbbab9.js b/assets/js/687b60fb.c6dbbab9.js deleted file mode 100644 index 375fffda2..000000000 --- a/assets/js/687b60fb.c6dbbab9.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[7783],{3905:(e,t,a)=>{a.d(t,{Zo:()=>m,kt:()=>u});var n=a(7294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?i(Object(a),!0).forEach((function(t){r(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):i(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function d(e,t){if(null==e)return{};var a,n,r=function(e,t){if(null==e)return{};var a,n,r={},i=Object.keys(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var p=n.createContext({}),l=function(e){var t=n.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},m=function(e){var t=l(e.components);return n.createElement(p.Provider,{value:t},e.children)},s="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},h=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,i=e.originalType,p=e.parentName,m=d(e,["components","mdxType","originalType","parentName"]),s=l(a),h=r,u=s["".concat(p,".").concat(h)]||s[h]||c[h]||i;return a?n.createElement(u,o(o({ref:t},m),{},{components:a})):n.createElement(u,o({ref:t},m))}));function u(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=a.length,o=new Array(i);o[0]=h;var d={};for(var p in t)hasOwnProperty.call(t,p)&&(d[p]=t[p]);d.originalType=e,d[s]="string"==typeof e?e:r,o[1]=d;for(var l=2;l<i;l++)o[l]=a[l];return n.createElement.apply(null,o)}return n.createElement.apply(null,a)}h.displayName="MDXCreateElement"},2391:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>c,frontMatter:()=>i,metadata:()=>d,toc:()=>l});var n=a(7462),r=(a(7294),a(3905));const i={title:"Upgrade 0.x -> 1.x",sidebar_position:1e4},o=void 0,d={unversionedId:"upgrade/0-1",id:"upgrade/0-1",title:"Upgrade 0.x -> 1.x",description:"Independent packages structure",source:"@site/docs/upgrade/0-1.md",sourceDirName:"upgrade",slug:"/upgrade/0-1",permalink:"/docs/upgrade/0-1",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/upgrade/0-1.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",sidebarPosition:1e4,frontMatter:{title:"Upgrade 0.x -> 1.x",sidebar_position:1e4},sidebar:"tutorialSidebar",previous:{title:"Upgrade 1.x -> 2.x",permalink:"/docs/upgrade/1-2"},next:{title:"AWS Event Examples",permalink:"/docs/category/aws-event-examples"}},p={},l=[{value:"Independent packages structure",id:"independent-packages-structure",level:2},{value:"Header normalization in <code>http-header-normalizer</code>",id:"header-normalization-in-http-header-normalizer",level:2},{value:"Node.js 10 and 12 now supported / Node.js 6 and 8 now dropped",id:"nodejs-10-and-12-now-supported--nodejs-6-and-8-now-dropped",level:2}],m={toc:l},s="wrapper";function c(e){let{components:t,...a}=e;return(0,r.kt)(s,(0,n.Z)({},m,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"independent-packages-structure"},"Independent packages structure"),(0,r.kt)("p",null,"Version 1.x of Middy features decoupled independent packages published on npm under the ",(0,r.kt)("inlineCode",{parentName:"p"},"@middy")," namespace. The core middleware engine has been moved to ",(0,r.kt)("a",{parentName:"p",href:"https://www.npmjs.com/package/@middy/core"},(0,r.kt)("inlineCode",{parentName:"a"},"@middy/core"))," and all the other middlewares are moved into their own packages as well. This allows to only install the features that are needed and to keep your Lambda dependencies small. See the list below to check which packages you need based on the middlewares you use:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Core middleware functionality -> ",(0,r.kt)("a",{parentName:"li",href:"https://www.npmjs.com/package/@middy/core"},(0,r.kt)("inlineCode",{parentName:"a"},"@middy/core"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"cache")," -> ",(0,r.kt)("a",{parentName:"li",href:"https://www.npmjs.com/package/@middy/cache"},(0,r.kt)("inlineCode",{parentName:"a"},"@middy/cache"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"cors")," -> ",(0,r.kt)("a",{parentName:"li",href:"https://www.npmjs.com/package/@middy/http-cors"},(0,r.kt)("inlineCode",{parentName:"a"},"@middy/http-cors"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"doNotWaitForEmptyEventLoop")," -> ",(0,r.kt)("a",{parentName:"li",href:"https://www.npmjs.com/package/@middy/do-not-wait-for-empty-event-loop"},(0,r.kt)("inlineCode",{parentName:"a"},"@middy/do-not-wait-for-empty-event-loop"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"httpContentNegotiation")," -> ",(0,r.kt)("a",{parentName:"li",href:"https://www.npmjs.com/package/@middy/http-content-negotiation"},(0,r.kt)("inlineCode",{parentName:"a"},"@middy/http-content-negotiation"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"httpErrorHandler")," -> ",(0,r.kt)("a",{parentName:"li",href:"https://www.npmjs.com/package/@middy/http-error-handler"},(0,r.kt)("inlineCode",{parentName:"a"},"@middy/http-error-handler"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"httpEventNormalizer")," -> ",(0,r.kt)("a",{parentName:"li",href:"https://www.npmjs.com/package/@middy/http-event-normalizer"},(0,r.kt)("inlineCode",{parentName:"a"},"@middy/http-event-normalizer"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"httpHeaderNormalizer")," -> ",(0,r.kt)("a",{parentName:"li",href:"https://www.npmjs.com/package/@middy/http-header-normalizer"},(0,r.kt)("inlineCode",{parentName:"a"},"@middy/http-header-normalizer"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"httpMultipartBodyParser")," -> ",(0,r.kt)("a",{parentName:"li",href:"https://www.npmjs.com/package/@middy/http-json-body-parser"},(0,r.kt)("inlineCode",{parentName:"a"},"@middy/http-json-body-parser"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"httpPartialResponse")," -> ",(0,r.kt)("a",{parentName:"li",href:"https://www.npmjs.com/package/@middy/http-partial-response"},(0,r.kt)("inlineCode",{parentName:"a"},"@middy/http-partial-response"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"jsonBodyParser")," -> ",(0,r.kt)("a",{parentName:"li",href:"https://www.npmjs.com/package/@middy/http-json-body-parser"},(0,r.kt)("inlineCode",{parentName:"a"},"@middy/http-json-body-parser"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"s3KeyNormalizer")," -> ",(0,r.kt)("a",{parentName:"li",href:"https://www.npmjs.com/package/@middy/s3-key-normalizer"},(0,r.kt)("inlineCode",{parentName:"a"},"@middy/s3-key-normalizer"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"secretsManager")," -> ",(0,r.kt)("a",{parentName:"li",href:"https://www.npmjs.com/package/@middy/secrets-manager"},(0,r.kt)("inlineCode",{parentName:"a"},"@middy/secrets-manager"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"ssm")," -> ",(0,r.kt)("a",{parentName:"li",href:"https://www.npmjs.com/package/@middy/ssm"},(0,r.kt)("inlineCode",{parentName:"a"},"@middy/ssm"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"validator")," -> ",(0,r.kt)("a",{parentName:"li",href:"https://www.npmjs.com/package/@middy/validator"},(0,r.kt)("inlineCode",{parentName:"a"},"@middy/validator"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"urlEncodeBodyParser")," -> ",(0,r.kt)("a",{parentName:"li",href:"https://www.npmjs.com/package/@middy/http-urlencode-body-parser"},(0,r.kt)("inlineCode",{parentName:"a"},"@middy/http-urlencode-body-parser"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"warmup")," -> ",(0,r.kt)("a",{parentName:"li",href:"https://www.npmjs.com/package/@middy/warmup"},(0,r.kt)("inlineCode",{parentName:"a"},"@middy/warmup")))),(0,r.kt)("h2",{id:"header-normalization-in-http-header-normalizer"},"Header normalization in ",(0,r.kt)("inlineCode",{parentName:"h2"},"http-header-normalizer")),(0,r.kt)("p",null,"In Middy 0.x the ",(0,r.kt)("inlineCode",{parentName:"p"},"httpHeaderNormalizer")," middleware normalizes HTTP header names into their own canonical format, for instance ",(0,r.kt)("inlineCode",{parentName:"p"},"Sec-WebSocket-Key")," (notice the casing). In Middy 1.x this behavior has been changed to provide header names in lowercase format (e.g. ",(0,r.kt)("inlineCode",{parentName:"p"},"sec-webSocket-key"),"). This new behavior is more consistent with what Node.js core ",(0,r.kt)("inlineCode",{parentName:"p"},"http")," package does and what other famous http frameworks like Express or Fastify do, so this is considered a more intuitive approach.\nWhen updating to Middy 1.x, make sure you double check all your references to HTTP headers and switch to the lowercase version to read them.\nAll the middy core modules have been already updated to support the new format, so you should worry only about your userland code."),(0,r.kt)("h2",{id:"nodejs-10-and-12-now-supported--nodejs-6-and-8-now-dropped"},"Node.js 10 and 12 now supported / Node.js 6 and 8 now dropped"),(0,r.kt)("p",null,"Version 1.x of Middy no longer supports Node.js versions 6.x and 8.x as these versions have been dropped by the AWS Lambda runtime itself and not supported anymore by the Node.js community. You are highly encouraged to move to Node.js 12 or 10, which are the new supported versions in Middy 1.x."))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6a1376e9.81fc68cb.js b/assets/js/6a1376e9.81fc68cb.js new file mode 100644 index 000000000..d03cf2980 --- /dev/null +++ b/assets/js/6a1376e9.81fc68cb.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[8644],{8550:(e,a,t)=>{t.r(a),t.d(a,{assets:()=>c,contentTitle:()=>o,default:()=>m,frontMatter:()=>i,metadata:()=>u,toc:()=>d});var r=t(5893),n=t(1151),s=t(4866),l=t(5162);const i={title:"sqs-partial-batch-failure"},o=void 0,u={id:"middlewares/sqs-partial-batch-failure",title:"sqs-partial-batch-failure",description:"Middleware for handling partially failed SQS batches.",source:"@site/docs/middlewares/sqs-partial-batch-failure.md",sourceDirName:"middlewares",slug:"/middlewares/sqs-partial-batch-failure",permalink:"/docs/middlewares/sqs-partial-batch-failure",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/middlewares/sqs-partial-batch-failure.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",frontMatter:{title:"sqs-partial-batch-failure"},sidebar:"tutorialSidebar",previous:{title:"service-discovery",permalink:"/docs/middlewares/service-discovery"},next:{title:"ssm",permalink:"/docs/middlewares/ssm"}},c={},d=[{value:"Install",id:"install",level:2},{value:"Options",id:"options",level:2},{value:"Sample usage",id:"sample-usage",level:2},{value:"Important",id:"important",level:2}];function p(e){const a={a:"a",code:"code",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,n.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(a.p,{children:"Middleware for handling partially failed SQS batches."}),"\n",(0,r.jsx)(a.h2,{id:"install",children:"Install"}),"\n",(0,r.jsx)(a.p,{children:"To install this middleware you can use NPM:"}),"\n",(0,r.jsxs)(s.Z,{groupId:"npm2yarn",children:[(0,r.jsx)(l.Z,{value:"npm",children:(0,r.jsx)(a.pre,{children:(0,r.jsx)(a.code,{className:"language-bash",children:"npm install --save @middy/sqs-partial-batch-failure\n# Required for types only\nnpm install --save-dev @aws-sdk/client-sqs\n"})})}),(0,r.jsx)(l.Z,{value:"yarn",label:"Yarn",children:(0,r.jsx)(a.pre,{children:(0,r.jsx)(a.code,{className:"language-bash",children:"yarn add @middy/sqs-partial-batch-failure\n# Required for types only\nyarn add --dev @aws-sdk/client-sqs\n"})})}),(0,r.jsx)(l.Z,{value:"pnpm",label:"pnpm",children:(0,r.jsx)(a.pre,{children:(0,r.jsx)(a.code,{className:"language-bash",children:"pnpm add @middy/sqs-partial-batch-failure\n# Required for types only\npnpm add --save-dev @aws-sdk/client-sqs\n"})})})]}),"\n",(0,r.jsx)(a.h2,{id:"options",children:"Options"}),"\n",(0,r.jsxs)(a.ul,{children:["\n",(0,r.jsxs)(a.li,{children:[(0,r.jsx)(a.code,{children:"logger"})," (function) (optional): A function that will be called when a record fails to be processed. Default: ",(0,r.jsx)(a.code,{children:"console.error"})]}),"\n"]}),"\n",(0,r.jsx)(a.h2,{id:"sample-usage",children:"Sample usage"}),"\n",(0,r.jsx)(a.pre,{children:(0,r.jsx)(a.code,{className:"language-javascript",children:"import middy from '@middy/core'\nimport sqsBatch from '@middy/sqs-partial-batch-failure'\n\nconst lambdaHandler = (event, context) => {\n const recordPromises = event.Records.map(async (record, index) => {\n /* Custom message processing logic */\n return record\n })\n return Promise.allSettled(recordPromises)\n}\n\nexport const handler = middy().use(sqsBatch()).handler(lambdaHandler)\n"})}),"\n",(0,r.jsx)(a.h2,{id:"important",children:"Important"}),"\n",(0,r.jsxs)(a.p,{children:["The value ",(0,r.jsx)(a.code,{children:"ReportBatchItemFailures"})," must be added to your Lambda's ",(0,r.jsx)(a.code,{children:"FunctionResponseTypes"})," in the ",(0,r.jsx)(a.code,{children:"EventSourceMapping"}),". See ",(0,r.jsx)(a.a,{href:"https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html#services-sqs-batchfailurereporting",children:"Reporting batch item failures"})," and ",(0,r.jsx)(a.a,{href:"https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html",children:"Lambda EventSourceMapping"})]})]})}function m(e={}){const{wrapper:a}={...(0,n.a)(),...e.components};return a?(0,r.jsx)(a,{...e,children:(0,r.jsx)(p,{...e})}):p(e)}},5162:(e,a,t)=>{t.d(a,{Z:()=>l});t(7294);var r=t(6010);const n={tabItem:"tabItem_Ymn6"};var s=t(5893);function l(e){let{children:a,hidden:t,className:l}=e;return(0,s.jsx)("div",{role:"tabpanel",className:(0,r.Z)(n.tabItem,l),hidden:t,children:a})}},4866:(e,a,t)=>{t.d(a,{Z:()=>w});var r=t(7294),n=t(6010),s=t(2466),l=t(6550),i=t(469),o=t(1980),u=t(7392),c=t(12);function d(e){return r.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:a}=e;return!!a&&"object"==typeof a&&"value"in a}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function p(e){const{values:a,children:t}=e;return(0,r.useMemo)((()=>{const e=a??function(e){return d(e).map((e=>{let{props:{value:a,label:t,attributes:r,default:n}}=e;return{value:a,label:t,attributes:r,default:n}}))}(t);return function(e){const a=(0,u.l)(e,((e,a)=>e.value===a.value));if(a.length>0)throw new Error(`Docusaurus error: Duplicate values "${a.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[a,t])}function m(e){let{value:a,tabValues:t}=e;return t.some((e=>e.value===a))}function h(e){let{queryString:a=!1,groupId:t}=e;const n=(0,l.k6)(),s=function(e){let{queryString:a=!1,groupId:t}=e;if("string"==typeof a)return a;if(!1===a)return null;if(!0===a&&!t)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:a,groupId:t});return[(0,o._X)(s),(0,r.useCallback)((e=>{if(!s)return;const a=new URLSearchParams(n.location.search);a.set(s,e),n.replace({...n.location,search:a.toString()})}),[s,n])]}function f(e){const{defaultValue:a,queryString:t=!1,groupId:n}=e,s=p(e),[l,o]=(0,r.useState)((()=>function(e){let{defaultValue:a,tabValues:t}=e;if(0===t.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(a){if(!m({value:a,tabValues:t}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${a}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return a}const r=t.find((e=>e.default))??t[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:a,tabValues:s}))),[u,d]=h({queryString:t,groupId:n}),[f,b]=function(e){let{groupId:a}=e;const t=function(e){return e?`docusaurus.tab.${e}`:null}(a),[n,s]=(0,c.Nk)(t);return[n,(0,r.useCallback)((e=>{t&&s.set(e)}),[t,s])]}({groupId:n}),v=(()=>{const e=u??f;return m({value:e,tabValues:s})?e:null})();(0,i.Z)((()=>{v&&o(v)}),[v]);return{selectedValue:l,selectValue:(0,r.useCallback)((e=>{if(!m({value:e,tabValues:s}))throw new Error(`Can't select invalid tab value=${e}`);o(e),d(e),b(e)}),[d,b,s]),tabValues:s}}var b=t(2389);const v={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var g=t(5893);function y(e){let{className:a,block:t,selectedValue:r,selectValue:l,tabValues:i}=e;const o=[],{blockElementScrollPositionUntilNextRender:u}=(0,s.o5)(),c=e=>{const a=e.currentTarget,t=o.indexOf(a),n=i[t].value;n!==r&&(u(a),l(n))},d=e=>{let a=null;switch(e.key){case"Enter":c(e);break;case"ArrowRight":{const t=o.indexOf(e.currentTarget)+1;a=o[t]??o[0];break}case"ArrowLeft":{const t=o.indexOf(e.currentTarget)-1;a=o[t]??o[o.length-1];break}}a?.focus()};return(0,g.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,n.Z)("tabs",{"tabs--block":t},a),children:i.map((e=>{let{value:a,label:t,attributes:s}=e;return(0,g.jsx)("li",{role:"tab",tabIndex:r===a?0:-1,"aria-selected":r===a,ref:e=>o.push(e),onKeyDown:d,onClick:c,...s,className:(0,n.Z)("tabs__item",v.tabItem,s?.className,{"tabs__item--active":r===a}),children:t??a},a)}))})}function x(e){let{lazy:a,children:t,selectedValue:n}=e;const s=(Array.isArray(t)?t:[t]).filter(Boolean);if(a){const e=s.find((e=>e.props.value===n));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return(0,g.jsx)("div",{className:"margin-top--md",children:s.map(((e,a)=>(0,r.cloneElement)(e,{key:a,hidden:e.props.value!==n})))})}function j(e){const a=f(e);return(0,g.jsxs)("div",{className:(0,n.Z)("tabs-container",v.tabList),children:[(0,g.jsx)(y,{...e,...a}),(0,g.jsx)(x,{...e,...a})]})}function w(e){const a=(0,b.Z)();return(0,g.jsx)(j,{...e,children:d(e.children)},String(a))}},1151:(e,a,t)=>{t.d(a,{Z:()=>i,a:()=>l});var r=t(7294);const n={},s=r.createContext(n);function l(e){const a=r.useContext(s);return r.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function i(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:l(e.components),r.createElement(s.Provider,{value:a},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/6a1376e9.f2e2eda2.js b/assets/js/6a1376e9.f2e2eda2.js deleted file mode 100644 index b8e35c9c6..000000000 --- a/assets/js/6a1376e9.f2e2eda2.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[8644],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>f});var r=a(7294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function s(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?l(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):l(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function o(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},l=Object.keys(e);for(r=0;r<l.length;r++)a=l[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r<l.length;r++)a=l[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var i=r.createContext({}),u=function(e){var t=r.useContext(i),a=t;return e&&(a="function"==typeof e?e(t):s(s({},t),e)),a},c=function(e){var t=u(e.components);return r.createElement(i.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,l=e.originalType,i=e.parentName,c=o(e,["components","mdxType","originalType","parentName"]),d=u(a),m=n,f=d["".concat(i,".").concat(m)]||d[m]||p[m]||l;return a?r.createElement(f,s(s({ref:t},c),{},{components:a})):r.createElement(f,s({ref:t},c))}));function f(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=a.length,s=new Array(l);s[0]=m;var o={};for(var i in t)hasOwnProperty.call(t,i)&&(o[i]=t[i]);o.originalType=e,o[d]="string"==typeof e?e:n,s[1]=o;for(var u=2;u<l;u++)s[u]=a[u];return r.createElement.apply(null,s)}return r.createElement.apply(null,a)}m.displayName="MDXCreateElement"},5162:(e,t,a)=>{a.d(t,{Z:()=>s});var r=a(7294),n=a(6010);const l={tabItem:"tabItem_Ymn6"};function s(e){let{children:t,hidden:a,className:s}=e;return r.createElement("div",{role:"tabpanel",className:(0,n.Z)(l.tabItem,s),hidden:a},t)}},4866:(e,t,a)=>{a.d(t,{Z:()=>w});var r=a(7462),n=a(7294),l=a(6010),s=a(2466),o=a(6550),i=a(1980),u=a(7392),c=a(12);function d(e){return function(e){return n.Children.map(e,(e=>{if(!e||(0,n.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:a,attributes:r,default:n}}=e;return{value:t,label:a,attributes:r,default:n}}))}function p(e){const{values:t,children:a}=e;return(0,n.useMemo)((()=>{const e=t??d(a);return function(e){const t=(0,u.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,a])}function m(e){let{value:t,tabValues:a}=e;return a.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:a}=e;const r=(0,o.k6)(),l=function(e){let{queryString:t=!1,groupId:a}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!a)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return a??null}({queryString:t,groupId:a});return[(0,i._X)(l),(0,n.useCallback)((e=>{if(!l)return;const t=new URLSearchParams(r.location.search);t.set(l,e),r.replace({...r.location,search:t.toString()})}),[l,r])]}function b(e){const{defaultValue:t,queryString:a=!1,groupId:r}=e,l=p(e),[s,o]=(0,n.useState)((()=>function(e){let{defaultValue:t,tabValues:a}=e;if(0===a.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!m({value:t,tabValues:a}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${a.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const r=a.find((e=>e.default))??a[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:t,tabValues:l}))),[i,u]=f({queryString:a,groupId:r}),[d,b]=function(e){let{groupId:t}=e;const a=function(e){return e?`docusaurus.tab.${e}`:null}(t),[r,l]=(0,c.Nk)(a);return[r,(0,n.useCallback)((e=>{a&&l.set(e)}),[a,l])]}({groupId:r}),h=(()=>{const e=i??d;return m({value:e,tabValues:l})?e:null})();(0,n.useLayoutEffect)((()=>{h&&o(h)}),[h]);return{selectedValue:s,selectValue:(0,n.useCallback)((e=>{if(!m({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);o(e),u(e),b(e)}),[u,b,l]),tabValues:l}}var h=a(2389);const v={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};function y(e){let{className:t,block:a,selectedValue:o,selectValue:i,tabValues:u}=e;const c=[],{blockElementScrollPositionUntilNextRender:d}=(0,s.o5)(),p=e=>{const t=e.currentTarget,a=c.indexOf(t),r=u[a].value;r!==o&&(d(t),i(r))},m=e=>{let t=null;switch(e.key){case"Enter":p(e);break;case"ArrowRight":{const a=c.indexOf(e.currentTarget)+1;t=c[a]??c[0];break}case"ArrowLeft":{const a=c.indexOf(e.currentTarget)-1;t=c[a]??c[c.length-1];break}}t?.focus()};return n.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":a},t)},u.map((e=>{let{value:t,label:a,attributes:s}=e;return n.createElement("li",(0,r.Z)({role:"tab",tabIndex:o===t?0:-1,"aria-selected":o===t,key:t,ref:e=>c.push(e),onKeyDown:m,onClick:p},s,{className:(0,l.Z)("tabs__item",v.tabItem,s?.className,{"tabs__item--active":o===t})}),a??t)})))}function g(e){let{lazy:t,children:a,selectedValue:r}=e;const l=(Array.isArray(a)?a:[a]).filter(Boolean);if(t){const e=l.find((e=>e.props.value===r));return e?(0,n.cloneElement)(e,{className:"margin-top--md"}):null}return n.createElement("div",{className:"margin-top--md"},l.map(((e,t)=>(0,n.cloneElement)(e,{key:t,hidden:e.props.value!==r}))))}function k(e){const t=b(e);return n.createElement("div",{className:(0,l.Z)("tabs-container",v.tabList)},n.createElement(y,(0,r.Z)({},e,t)),n.createElement(g,(0,r.Z)({},e,t)))}function w(e){const t=(0,h.Z)();return n.createElement(k,(0,r.Z)({key:String(t)},e))}},7886:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>f,frontMatter:()=>o,metadata:()=>u,toc:()=>d});var r=a(7462),n=(a(7294),a(3905)),l=a(4866),s=a(5162);const o={title:"sqs-partial-batch-failure"},i=void 0,u={unversionedId:"middlewares/sqs-partial-batch-failure",id:"middlewares/sqs-partial-batch-failure",title:"sqs-partial-batch-failure",description:"Middleware for handling partially failed SQS batches.",source:"@site/docs/middlewares/sqs-partial-batch-failure.md",sourceDirName:"middlewares",slug:"/middlewares/sqs-partial-batch-failure",permalink:"/docs/middlewares/sqs-partial-batch-failure",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/middlewares/sqs-partial-batch-failure.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",frontMatter:{title:"sqs-partial-batch-failure"},sidebar:"tutorialSidebar",previous:{title:"service-discovery",permalink:"/docs/middlewares/service-discovery"},next:{title:"ssm",permalink:"/docs/middlewares/ssm"}},c={},d=[{value:"Install",id:"install",level:2},{value:"Options",id:"options",level:2},{value:"Sample usage",id:"sample-usage",level:2},{value:"Important",id:"important",level:2}],p={toc:d},m="wrapper";function f(e){let{components:t,...a}=e;return(0,n.kt)(m,(0,r.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"Middleware for handling partially failed SQS batches."),(0,n.kt)("h2",{id:"install"},"Install"),(0,n.kt)("p",null,"To install this middleware you can use NPM:"),(0,n.kt)(l.Z,{groupId:"npm2yarn",mdxType:"Tabs"},(0,n.kt)(s.Z,{value:"npm",mdxType:"TabItem"},(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-bash"},"npm install --save @middy/sqs-partial-batch-failure\n# Required for types only\nnpm install --save-dev @aws-sdk/client-sqs\n"))),(0,n.kt)(s.Z,{value:"yarn",label:"Yarn",mdxType:"TabItem"},(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-bash"},"yarn add @middy/sqs-partial-batch-failure\n# Required for types only\nyarn add --dev @aws-sdk/client-sqs\n"))),(0,n.kt)(s.Z,{value:"pnpm",label:"pnpm",mdxType:"TabItem"},(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-bash"},"pnpm add @middy/sqs-partial-batch-failure\n# Required for types only\npnpm add --save-dev @aws-sdk/client-sqs\n")))),(0,n.kt)("h2",{id:"options"},"Options"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"logger")," (function) (optional): A function that will be called when a record fails to be processed. Default: ",(0,n.kt)("inlineCode",{parentName:"li"},"console.error"))),(0,n.kt)("h2",{id:"sample-usage"},"Sample usage"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\nimport sqsBatch from '@middy/sqs-partial-batch-failure'\n\nconst lambdaHandler = (event, context) => {\n const recordPromises = event.Records.map(async (record, index) => {\n /* Custom message processing logic */\n return record\n })\n return Promise.allSettled(recordPromises)\n}\n\nexport const handler = middy(lambdaHandler).use(sqsBatch())\n")),(0,n.kt)("h2",{id:"important"},"Important"),(0,n.kt)("p",null,"The value ",(0,n.kt)("inlineCode",{parentName:"p"},"ReportBatchItemFailures")," must be added to your Lambda's ",(0,n.kt)("inlineCode",{parentName:"p"},"FunctionResponseTypes")," in the ",(0,n.kt)("inlineCode",{parentName:"p"},"EventSourceMapping"),". See ",(0,n.kt)("a",{parentName:"p",href:"https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html#services-sqs-batchfailurereporting"},"Reporting batch item failures")," and ",(0,n.kt)("a",{parentName:"p",href:"https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html"},"Lambda EventSourceMapping")),(0,n.kt)("p",null,"When being used with ",(0,n.kt)("inlineCode",{parentName:"p"},"@middy/validator"),", ensure errors are caught and handled properly to avoid infinite loops."))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6c4d050a.93c2ac11.js b/assets/js/6c4d050a.93c2ac11.js deleted file mode 100644 index 53063955e..000000000 --- a/assets/js/6c4d050a.93c2ac11.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[5512],{3905:(e,t,r)=>{r.d(t,{Zo:()=>d,kt:()=>f});var a=r(7294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?l(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):l(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function i(e,t){if(null==e)return{};var r,a,n=function(e,t){if(null==e)return{};var r,a,n={},l=Object.keys(e);for(a=0;a<l.length;a++)r=l[a],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a<l.length;a++)r=l[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=a.createContext({}),u=function(e){var t=a.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},d=function(e){var t=u(e.components);return a.createElement(s.Provider,{value:t},e.children)},c="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,l=e.originalType,s=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),c=u(r),m=n,f=c["".concat(s,".").concat(m)]||c[m]||p[m]||l;return r?a.createElement(f,o(o({ref:t},d),{},{components:r})):a.createElement(f,o({ref:t},d))}));function f(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=r.length,o=new Array(l);o[0]=m;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[c]="string"==typeof e?e:n,o[1]=i;for(var u=2;u<l;u++)o[u]=r[u];return a.createElement.apply(null,o)}return a.createElement.apply(null,r)}m.displayName="MDXCreateElement"},5162:(e,t,r)=>{r.d(t,{Z:()=>o});var a=r(7294),n=r(6010);const l={tabItem:"tabItem_Ymn6"};function o(e){let{children:t,hidden:r,className:o}=e;return a.createElement("div",{role:"tabpanel",className:(0,n.Z)(l.tabItem,o),hidden:r},t)}},4866:(e,t,r)=>{r.d(t,{Z:()=>k});var a=r(7462),n=r(7294),l=r(6010),o=r(2466),i=r(6550),s=r(1980),u=r(7392),d=r(12);function c(e){return function(e){return n.Children.map(e,(e=>{if(!e||(0,n.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:r,attributes:a,default:n}}=e;return{value:t,label:r,attributes:a,default:n}}))}function p(e){const{values:t,children:r}=e;return(0,n.useMemo)((()=>{const e=t??c(r);return function(e){const t=(0,u.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,r])}function m(e){let{value:t,tabValues:r}=e;return r.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:r}=e;const a=(0,i.k6)(),l=function(e){let{queryString:t=!1,groupId:r}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!r)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return r??null}({queryString:t,groupId:r});return[(0,s._X)(l),(0,n.useCallback)((e=>{if(!l)return;const t=new URLSearchParams(a.location.search);t.set(l,e),a.replace({...a.location,search:t.toString()})}),[l,a])]}function h(e){const{defaultValue:t,queryString:r=!1,groupId:a}=e,l=p(e),[o,i]=(0,n.useState)((()=>function(e){let{defaultValue:t,tabValues:r}=e;if(0===r.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!m({value:t,tabValues:r}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${r.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const a=r.find((e=>e.default))??r[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:t,tabValues:l}))),[s,u]=f({queryString:r,groupId:a}),[c,h]=function(e){let{groupId:t}=e;const r=function(e){return e?`docusaurus.tab.${e}`:null}(t),[a,l]=(0,d.Nk)(r);return[a,(0,n.useCallback)((e=>{r&&l.set(e)}),[r,l])]}({groupId:a}),b=(()=>{const e=s??c;return m({value:e,tabValues:l})?e:null})();(0,n.useLayoutEffect)((()=>{b&&i(b)}),[b]);return{selectedValue:o,selectValue:(0,n.useCallback)((e=>{if(!m({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);i(e),u(e),h(e)}),[u,h,l]),tabValues:l}}var b=r(2389);const y={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};function v(e){let{className:t,block:r,selectedValue:i,selectValue:s,tabValues:u}=e;const d=[],{blockElementScrollPositionUntilNextRender:c}=(0,o.o5)(),p=e=>{const t=e.currentTarget,r=d.indexOf(t),a=u[r].value;a!==i&&(c(t),s(a))},m=e=>{let t=null;switch(e.key){case"Enter":p(e);break;case"ArrowRight":{const r=d.indexOf(e.currentTarget)+1;t=d[r]??d[0];break}case"ArrowLeft":{const r=d.indexOf(e.currentTarget)-1;t=d[r]??d[d.length-1];break}}t?.focus()};return n.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":r},t)},u.map((e=>{let{value:t,label:r,attributes:o}=e;return n.createElement("li",(0,a.Z)({role:"tab",tabIndex:i===t?0:-1,"aria-selected":i===t,key:t,ref:e=>d.push(e),onKeyDown:m,onClick:p},o,{className:(0,l.Z)("tabs__item",y.tabItem,o?.className,{"tabs__item--active":i===t})}),r??t)})))}function g(e){let{lazy:t,children:r,selectedValue:a}=e;const l=(Array.isArray(r)?r:[r]).filter(Boolean);if(t){const e=l.find((e=>e.props.value===a));return e?(0,n.cloneElement)(e,{className:"margin-top--md"}):null}return n.createElement("div",{className:"margin-top--md"},l.map(((e,t)=>(0,n.cloneElement)(e,{key:t,hidden:e.props.value!==a}))))}function w(e){const t=h(e);return n.createElement("div",{className:(0,l.Z)("tabs-container",y.tabList)},n.createElement(v,(0,a.Z)({},e,t)),n.createElement(g,(0,a.Z)({},e,t)))}function k(e){const t=(0,b.Z)();return n.createElement(w,(0,a.Z)({key:String(t)},e))}},3058:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>d,contentTitle:()=>s,default:()=>f,frontMatter:()=>i,metadata:()=>u,toc:()=>c});var a=r(7462),n=(r(7294),r(3905)),l=r(4866),o=r(5162);const i={title:"http-header-normalizer"},s=void 0,u={unversionedId:"middlewares/http-header-normalizer",id:"middlewares/http-header-normalizer",title:"http-header-normalizer",description:"This middleware normalizes HTTP header names. By default, it normalizes to lowercase. It",source:"@site/docs/middlewares/http-header-normalizer.md",sourceDirName:"middlewares",slug:"/middlewares/http-header-normalizer",permalink:"/docs/middlewares/http-header-normalizer",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/middlewares/http-header-normalizer.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",frontMatter:{title:"http-header-normalizer"},sidebar:"tutorialSidebar",previous:{title:"http-event-normalizer",permalink:"/docs/middlewares/http-event-normalizer"},next:{title:"http-json-body-parser",permalink:"/docs/middlewares/http-json-body-parser"}},d={},c=[{value:"Install",id:"install",level:2},{value:"Options",id:"options",level:2},{value:"Sample usage",id:"sample-usage",level:2}],p={toc:c},m="wrapper";function f(e){let{components:t,...r}=e;return(0,n.kt)(m,(0,a.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"This middleware normalizes HTTP header names. By default, it normalizes to lowercase. It\ncan also normalize to canonical form."),(0,n.kt)("p",null,"API Gateway does not perform any normalization, so without this middleware headers\nare propagated to Lambda exactly as they were sent by the client. Headers names are\ncase insensitive, so normalization allows code reading header values to be simplified."),(0,n.kt)("p",null,"Other middlewares like ",(0,n.kt)("a",{parentName:"p",href:"#jsonbodyparser"},(0,n.kt)("inlineCode",{parentName:"a"},"jsonBodyParser"))," or ",(0,n.kt)("a",{parentName:"p",href:"#urlencodebodyparser"},(0,n.kt)("inlineCode",{parentName:"a"},"urlEncodeBodyParser")),"\nwill rely on headers to be one of the normalized formats, so if you want to support non-normalized headers in your\napp you have to use this middleware before those ones."),(0,n.kt)("p",null,"This middleware will copy the original headers in ",(0,n.kt)("inlineCode",{parentName:"p"},"event.rawHeaders"),"."),(0,n.kt)("h2",{id:"install"},"Install"),(0,n.kt)("p",null,"To install this middleware you can use NPM:"),(0,n.kt)(l.Z,{groupId:"npm2yarn",mdxType:"Tabs"},(0,n.kt)(o.Z,{value:"npm",mdxType:"TabItem"},(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-bash"},"npm install --save @middy/http-header-normalizer\n"))),(0,n.kt)(o.Z,{value:"yarn",label:"Yarn",mdxType:"TabItem"},(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-bash"},"yarn add @middy/http-header-normalizer\n"))),(0,n.kt)(o.Z,{value:"pnpm",label:"pnpm",mdxType:"TabItem"},(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-bash"},"pnpm add @middy/http-header-normalizer\n")))),(0,n.kt)("h2",{id:"options"},"Options"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"canonical")," (bool) (optional): if true, modifies the headers to canonical format, otherwise the headers are normalized to lowercase (default ",(0,n.kt)("inlineCode",{parentName:"li"},"false"),")"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"defaultHeaders")," (object) (optional): Default headers to used if any are missing. i.e. ",(0,n.kt)("inlineCode",{parentName:"li"},"Content-Type")," (default ",(0,n.kt)("inlineCode",{parentName:"li"},"{}"),")"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"normalizeHeaderKey")," (function) (optional): a function that accepts an header name as a parameter and returns its\ncanonical representation.")),(0,n.kt)("h2",{id:"sample-usage"},"Sample usage"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\nimport httpHeaderNormalizer from '@middy/http-header-normalizer'\n\nconst handler = middy()\n .use(httpHeaderNormalizer())\n .handler((event, context) => {\n return {}\n })\n")))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6c4d050a.c509b4ce.js b/assets/js/6c4d050a.c509b4ce.js new file mode 100644 index 000000000..9d1240c27 --- /dev/null +++ b/assets/js/6c4d050a.c509b4ce.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[5512],{9794:(e,r,a)=>{a.r(r),a.d(r,{assets:()=>u,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>d,toc:()=>c});var t=a(5893),n=a(1151),l=a(4866),s=a(5162);const o={title:"http-header-normalizer"},i=void 0,d={id:"middlewares/http-header-normalizer",title:"http-header-normalizer",description:"This middleware normalizes HTTP header names. By default, it normalizes to lowercase. It",source:"@site/docs/middlewares/http-header-normalizer.md",sourceDirName:"middlewares",slug:"/middlewares/http-header-normalizer",permalink:"/docs/middlewares/http-header-normalizer",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/middlewares/http-header-normalizer.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",frontMatter:{title:"http-header-normalizer"},sidebar:"tutorialSidebar",previous:{title:"http-event-normalizer",permalink:"/docs/middlewares/http-event-normalizer"},next:{title:"http-json-body-parser",permalink:"/docs/middlewares/http-json-body-parser"}},u={},c=[{value:"Install",id:"install",level:2},{value:"Options",id:"options",level:2},{value:"Sample usage",id:"sample-usage",level:2}];function h(e){const r={a:"a",code:"code",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,n.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(r.p,{children:"This middleware normalizes HTTP header names. By default, it normalizes to lowercase. It\ncan also normalize to canonical form."}),"\n",(0,t.jsx)(r.p,{children:"API Gateway does not perform any normalization, so without this middleware headers\nare propagated to Lambda exactly as they were sent by the client. Headers names are\ncase insensitive, so normalization allows code reading header values to be simplified."}),"\n",(0,t.jsxs)(r.p,{children:["Other middlewares like ",(0,t.jsx)(r.a,{href:"#jsonbodyparser",children:(0,t.jsx)(r.code,{children:"jsonBodyParser"})})," or ",(0,t.jsx)(r.a,{href:"#urlencodebodyparser",children:(0,t.jsx)(r.code,{children:"urlEncodeBodyParser"})}),"\nwill rely on headers to be one of the normalized formats, so if you want to support non-normalized headers in your\napp you have to use this middleware before those ones."]}),"\n",(0,t.jsxs)(r.p,{children:["This middleware will copy the original headers in ",(0,t.jsx)(r.code,{children:"event.rawHeaders"}),"."]}),"\n",(0,t.jsx)(r.h2,{id:"install",children:"Install"}),"\n",(0,t.jsx)(r.p,{children:"To install this middleware you can use NPM:"}),"\n",(0,t.jsxs)(l.Z,{groupId:"npm2yarn",children:[(0,t.jsx)(s.Z,{value:"npm",children:(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-bash",children:"npm install --save @middy/http-header-normalizer\n"})})}),(0,t.jsx)(s.Z,{value:"yarn",label:"Yarn",children:(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-bash",children:"yarn add @middy/http-header-normalizer\n"})})}),(0,t.jsx)(s.Z,{value:"pnpm",label:"pnpm",children:(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-bash",children:"pnpm add @middy/http-header-normalizer\n"})})})]}),"\n",(0,t.jsx)(r.h2,{id:"options",children:"Options"}),"\n",(0,t.jsxs)(r.ul,{children:["\n",(0,t.jsxs)(r.li,{children:[(0,t.jsx)(r.code,{children:"canonical"})," (bool) (optional): if true, modifies the headers to canonical format, otherwise the headers are normalized to lowercase (default ",(0,t.jsx)(r.code,{children:"false"}),")"]}),"\n",(0,t.jsxs)(r.li,{children:[(0,t.jsx)(r.code,{children:"defaultHeaders"})," (object) (optional): Default headers to used if any are missing. i.e. ",(0,t.jsx)(r.code,{children:"Content-Type"})," (default ",(0,t.jsx)(r.code,{children:"{}"}),")"]}),"\n",(0,t.jsxs)(r.li,{children:[(0,t.jsx)(r.code,{children:"normalizeHeaderKey"})," (function) (optional): a function that accepts an header name as a parameter and returns its\ncanonical representation."]}),"\n"]}),"\n",(0,t.jsx)(r.h2,{id:"sample-usage",children:"Sample usage"}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-javascript",children:"import middy from '@middy/core'\nimport httpHeaderNormalizer from '@middy/http-header-normalizer'\n\nconst lambdaHandler = (event, context) => {\n return {}\n}\n\nexport const handler = middy()\n .use(httpHeaderNormalizer())\n .handler(lambdaHandler)\n"})})]})}function m(e={}){const{wrapper:r}={...(0,n.a)(),...e.components};return r?(0,t.jsx)(r,{...e,children:(0,t.jsx)(h,{...e})}):h(e)}},5162:(e,r,a)=>{a.d(r,{Z:()=>s});a(7294);var t=a(6010);const n={tabItem:"tabItem_Ymn6"};var l=a(5893);function s(e){let{children:r,hidden:a,className:s}=e;return(0,l.jsx)("div",{role:"tabpanel",className:(0,t.Z)(n.tabItem,s),hidden:a,children:r})}},4866:(e,r,a)=>{a.d(r,{Z:()=>g});var t=a(7294),n=a(6010),l=a(2466),s=a(6550),o=a(469),i=a(1980),d=a(7392),u=a(12);function c(e){return t.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,t.isValidElement)(e)&&function(e){const{props:r}=e;return!!r&&"object"==typeof r&&"value"in r}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function h(e){const{values:r,children:a}=e;return(0,t.useMemo)((()=>{const e=r??function(e){return c(e).map((e=>{let{props:{value:r,label:a,attributes:t,default:n}}=e;return{value:r,label:a,attributes:t,default:n}}))}(a);return function(e){const r=(0,d.l)(e,((e,r)=>e.value===r.value));if(r.length>0)throw new Error(`Docusaurus error: Duplicate values "${r.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[r,a])}function m(e){let{value:r,tabValues:a}=e;return a.some((e=>e.value===r))}function p(e){let{queryString:r=!1,groupId:a}=e;const n=(0,s.k6)(),l=function(e){let{queryString:r=!1,groupId:a}=e;if("string"==typeof r)return r;if(!1===r)return null;if(!0===r&&!a)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return a??null}({queryString:r,groupId:a});return[(0,i._X)(l),(0,t.useCallback)((e=>{if(!l)return;const r=new URLSearchParams(n.location.search);r.set(l,e),n.replace({...n.location,search:r.toString()})}),[l,n])]}function f(e){const{defaultValue:r,queryString:a=!1,groupId:n}=e,l=h(e),[s,i]=(0,t.useState)((()=>function(e){let{defaultValue:r,tabValues:a}=e;if(0===a.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(r){if(!m({value:r,tabValues:a}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${r}" but none of its children has the corresponding value. Available values are: ${a.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return r}const t=a.find((e=>e.default))??a[0];if(!t)throw new Error("Unexpected error: 0 tabValues");return t.value}({defaultValue:r,tabValues:l}))),[d,c]=p({queryString:a,groupId:n}),[f,b]=function(e){let{groupId:r}=e;const a=function(e){return e?`docusaurus.tab.${e}`:null}(r),[n,l]=(0,u.Nk)(a);return[n,(0,t.useCallback)((e=>{a&&l.set(e)}),[a,l])]}({groupId:n}),v=(()=>{const e=d??f;return m({value:e,tabValues:l})?e:null})();(0,o.Z)((()=>{v&&i(v)}),[v]);return{selectedValue:s,selectValue:(0,t.useCallback)((e=>{if(!m({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);i(e),c(e),b(e)}),[c,b,l]),tabValues:l}}var b=a(2389);const v={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var y=a(5893);function x(e){let{className:r,block:a,selectedValue:t,selectValue:s,tabValues:o}=e;const i=[],{blockElementScrollPositionUntilNextRender:d}=(0,l.o5)(),u=e=>{const r=e.currentTarget,a=i.indexOf(r),n=o[a].value;n!==t&&(d(r),s(n))},c=e=>{let r=null;switch(e.key){case"Enter":u(e);break;case"ArrowRight":{const a=i.indexOf(e.currentTarget)+1;r=i[a]??i[0];break}case"ArrowLeft":{const a=i.indexOf(e.currentTarget)-1;r=i[a]??i[i.length-1];break}}r?.focus()};return(0,y.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,n.Z)("tabs",{"tabs--block":a},r),children:o.map((e=>{let{value:r,label:a,attributes:l}=e;return(0,y.jsx)("li",{role:"tab",tabIndex:t===r?0:-1,"aria-selected":t===r,ref:e=>i.push(e),onKeyDown:c,onClick:u,...l,className:(0,n.Z)("tabs__item",v.tabItem,l?.className,{"tabs__item--active":t===r}),children:a??r},r)}))})}function j(e){let{lazy:r,children:a,selectedValue:n}=e;const l=(Array.isArray(a)?a:[a]).filter(Boolean);if(r){const e=l.find((e=>e.props.value===n));return e?(0,t.cloneElement)(e,{className:"margin-top--md"}):null}return(0,y.jsx)("div",{className:"margin-top--md",children:l.map(((e,r)=>(0,t.cloneElement)(e,{key:r,hidden:e.props.value!==n})))})}function w(e){const r=f(e);return(0,y.jsxs)("div",{className:(0,n.Z)("tabs-container",v.tabList),children:[(0,y.jsx)(x,{...e,...r}),(0,y.jsx)(j,{...e,...r})]})}function g(e){const r=(0,b.Z)();return(0,y.jsx)(w,{...e,children:c(e.children)},String(r))}},1151:(e,r,a)=>{a.d(r,{Z:()=>o,a:()=>s});var t=a(7294);const n={},l=t.createContext(n);function s(e){const r=t.useContext(l);return t.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function o(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:s(e.components),t.createElement(l.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/70761510.54dab7d8.js b/assets/js/70761510.54dab7d8.js new file mode 100644 index 000000000..0f79e57d4 --- /dev/null +++ b/assets/js/70761510.54dab7d8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[5024],{3455:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>a,toc:()=>d});var s=t(5893),r=t(1151);const o={title:"Small node_modules",sidebar_position:6},i=void 0,a={id:"best-practices/small-node-modules",title:"Small node_modules",description:"Using a bundler is the optimal solution, but can be complex depending on your setup.",source:"@site/docs/best-practices/06-small-node-modules.md",sourceDirName:"best-practices",slug:"/best-practices/small-node-modules",permalink:"/docs/best-practices/small-node-modules",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/best-practices/06-small-node-modules.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",sidebarPosition:6,frontMatter:{title:"Small node_modules",sidebar_position:6},sidebar:"tutorialSidebar",previous:{title:"Bundling Lambda packages",permalink:"/docs/best-practices/bundling"},next:{title:"Profiling",permalink:"/docs/best-practices/profiling"}},c={},d=[];function l(e){const n={code:"code",p:"p",pre:"pre",...(0,r.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.p,{children:"Using a bundler is the optimal solution, but can be complex depending on your setup."}),"\n",(0,s.jsxs)(n.p,{children:["In this case you should remove excess files from your ",(0,s.jsx)(n.code,{children:"node_modules"})," directory to ensure it doesn't have anything excess shipped to AWS."]}),"\n",(0,s.jsxs)(n.p,{children:["We put together a ",(0,s.jsx)(n.code,{children:".yarnclean"})," file you can check out and use as part of your CI/CD process:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-git",metastring:'title=".yarnclean"',children:"# -- Middy.js --\n\n# Dependencies\n**/ajv/lib\n**/ajv/.runkit_examples.js\n**/ajv-errors/src\n**/ajv-formats/src\n**/ajv-formats-draft2019/.github\n**/ajv-formats-draft2019/.prettierrc.js\n**/ajv-formats-draft2019/index.test.js\n**/ajv-i18n/localize/.eslintrc.yml\n**/json-mask/bin\n**/json-mask/build\n**/qs/.github\n**/qs/dist\n**/qs/test\n**/qs/.editorconfig\n**/qs/.eslintrc\n**/qs/.nycrc\n**/qs/CHANGELOG.md\n\n# DevDependencies\n**/@types\n**/@serverless/event-mocks\n\n## Sub[/Sub] Dependencies\n**/bowser/src\n**/bowser/bundled.js\n**/dicer/bench\n**/dicer/test\n**/inherits/inherits_browser.js\n**/json-schema-traverse/.github\n**/json-schema-traverse/spec\n**/fast-deep-equal/es6\n**/fast-deep-equal/react.js\n**/querystring/test\n**/react-native-get-random-values/android\n**/react-native-get-random-values/ios\n**/react-native-get-random-values/index.web.js\n**/react-native-get-random-values/react-native-get-random-values.podspec\n**/setprototypeof/test\n**/tslib\n**/uri-js/dist/esnext\n**/url/.zuul.yml\n**/url/test.js\n**/uuid/bin\n\n# Builds\n*.ts\ntsconfig.json\n*.js.map\npackage-lock.json\nyarn.lock\n.travis.yml\n\n# Common\n.bin\n.cache\n.editorconfig\n.eslintignore\n.eslintrc\n.eslintrc.yml\n.gitattributes\n.npmignore\nAUTHORS\nLICENSE\n*.md\n*.txt\n"})})]})}function u(e={}){const{wrapper:n}={...(0,r.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(l,{...e})}):l(e)}},1151:(e,n,t)=>{t.d(n,{Z:()=>a,a:()=>i});var s=t(7294);const r={},o=s.createContext(r);function i(e){const n=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:i(e.components),s.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/70761510.57516ede.js b/assets/js/70761510.57516ede.js deleted file mode 100644 index 2e8efa29b..000000000 --- a/assets/js/70761510.57516ede.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[5024],{3905:(e,n,t)=>{t.d(n,{Zo:()=>d,kt:()=>b});var r=t(7294);function s(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function a(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function o(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?a(Object(t),!0).forEach((function(n){s(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):a(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function i(e,n){if(null==e)return{};var t,r,s=function(e,n){if(null==e)return{};var t,r,s={},a=Object.keys(e);for(r=0;r<a.length;r++)t=a[r],n.indexOf(t)>=0||(s[t]=e[t]);return s}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)t=a[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(s[t]=e[t])}return s}var l=r.createContext({}),c=function(e){var n=r.useContext(l),t=n;return e&&(t="function"==typeof e?e(n):o(o({},n),e)),t},d=function(e){var n=c(e.components);return r.createElement(l.Provider,{value:n},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},m=r.forwardRef((function(e,n){var t=e.components,s=e.mdxType,a=e.originalType,l=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),u=c(t),m=s,b=u["".concat(l,".").concat(m)]||u[m]||p[m]||a;return t?r.createElement(b,o(o({ref:n},d),{},{components:t})):r.createElement(b,o({ref:n},d))}));function b(e,n){var t=arguments,s=n&&n.mdxType;if("string"==typeof e||s){var a=t.length,o=new Array(a);o[0]=m;var i={};for(var l in n)hasOwnProperty.call(n,l)&&(i[l]=n[l]);i.originalType=e,i[u]="string"==typeof e?e:s,o[1]=i;for(var c=2;c<a;c++)o[c]=t[c];return r.createElement.apply(null,o)}return r.createElement.apply(null,t)}m.displayName="MDXCreateElement"},491:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>p,frontMatter:()=>a,metadata:()=>i,toc:()=>c});var r=t(7462),s=(t(7294),t(3905));const a={title:"Small node_modules",sidebar_position:6},o=void 0,i={unversionedId:"best-practices/small-node-modules",id:"best-practices/small-node-modules",title:"Small node_modules",description:"Using a bundler is the optimal solution, but can be complex depending on your setup.",source:"@site/docs/best-practices/06-small-node-modules.md",sourceDirName:"best-practices",slug:"/best-practices/small-node-modules",permalink:"/docs/best-practices/small-node-modules",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/best-practices/06-small-node-modules.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",sidebarPosition:6,frontMatter:{title:"Small node_modules",sidebar_position:6},sidebar:"tutorialSidebar",previous:{title:"Bundling Lambda packages",permalink:"/docs/best-practices/bundling"},next:{title:"Profiling",permalink:"/docs/best-practices/profiling"}},l={},c=[],d={toc:c},u="wrapper";function p(e){let{components:n,...t}=e;return(0,s.kt)(u,(0,r.Z)({},d,t,{components:n,mdxType:"MDXLayout"}),(0,s.kt)("p",null,"Using a bundler is the optimal solution, but can be complex depending on your setup."),(0,s.kt)("p",null,"In this case you should remove excess files from your ",(0,s.kt)("inlineCode",{parentName:"p"},"node_modules")," directory to ensure it doesn't have anything excess shipped to AWS."),(0,s.kt)("p",null,"We put together a ",(0,s.kt)("inlineCode",{parentName:"p"},".yarnclean")," file you can check out and use as part of your CI/CD process:"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-git",metastring:'title=".yarnclean"',title:'".yarnclean"'},"# -- Middy.js --\n\n# Dependencies\n**/ajv/lib\n**/ajv/.runkit_examples.js\n**/ajv-errors/src\n**/ajv-formats/src\n**/ajv-formats-draft2019/.github\n**/ajv-formats-draft2019/.prettierrc.js\n**/ajv-formats-draft2019/index.test.js\n**/ajv-i18n/localize/.eslintrc.yml\n**/json-mask/bin\n**/json-mask/build\n**/qs/.github\n**/qs/dist\n**/qs/test\n**/qs/.editorconfig\n**/qs/.eslintrc\n**/qs/.nycrc\n**/qs/CHANGELOG.md\n\n# DevDependencies\n**/@types\n**/@serverless/event-mocks\n\n## Sub[/Sub] Dependencies\n**/bowser/src\n**/bowser/bundled.js\n**/dicer/bench\n**/dicer/test\n**/inherits/inherits_browser.js\n**/json-schema-traverse/.github\n**/json-schema-traverse/spec\n**/fast-deep-equal/es6\n**/fast-deep-equal/react.js\n**/querystring/test\n**/react-native-get-random-values/android\n**/react-native-get-random-values/ios\n**/react-native-get-random-values/index.web.js\n**/react-native-get-random-values/react-native-get-random-values.podspec\n**/setprototypeof/test\n**/tslib\n**/uri-js/dist/esnext\n**/url/.zuul.yml\n**/url/test.js\n**/uuid/bin\n\n# Builds\n*.ts\ntsconfig.json\n*.js.map\npackage-lock.json\nyarn.lock\n.travis.yml\n\n# Common\n.bin\n.cache\n.editorconfig\n.eslintignore\n.eslintrc\n.eslintrc.yml\n.gitattributes\n.npmignore\nAUTHORS\nLICENSE\n*.md\n*.txt\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7076eee1.c00cdf79.js b/assets/js/7076eee1.c00cdf79.js new file mode 100644 index 000000000..f81aeb931 --- /dev/null +++ b/assets/js/7076eee1.c00cdf79.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[481],{2865:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>d,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>l});var n=r(5893),a=r(1151);const o={title:"Application Load Balancer"},d=void 0,i={id:"events/application-load-balancer",title:"Application Load Balancer",description:"Same as API Gateway (REST)",source:"@site/docs/events/application-load-balancer.md",sourceDirName:"events",slug:"/events/application-load-balancer",permalink:"/docs/events/application-load-balancer",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/events/application-load-balancer.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",frontMatter:{title:"Application Load Balancer"},sidebar:"tutorialSidebar",previous:{title:"API Gateway (WebSocket)",permalink:"/docs/events/api-gateway-ws"},next:{title:"AppSync",permalink:"/docs/events/appsync"}},s={},l=[{value:"AWS Documentation",id:"aws-documentation",level:2},{value:"Example",id:"example",level:2}];function p(e){const t={a:"a",admonition:"admonition",code:"code",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,a.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.p,{children:"Same as API Gateway (REST)"}),"\n",(0,n.jsx)(t.admonition,{type:"caution",children:(0,n.jsx)(t.p,{children:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub."})}),"\n",(0,n.jsx)(t.h2,{id:"aws-documentation",children:"AWS Documentation"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://docs.aws.amazon.com/lambda/latest/dg/services-alb.html",children:"Using AWS Lambda with an Application Load Balancer"})}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"example",children:"Example"}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-javascript",children:"import middy from '@middy/core'\nimport httpRouterHandler from '@middy/http-router'\nimport errorLoggerMiddleware from '@middy/error-logger'\nimport inputOutputLoggerMiddleware from '@middy/input-output-logger'\nimport httpContentNegotiationMiddleware from '@middy/http-content-negotiation'\nimport httpContentEncodingMiddleware from '@middy/http-content-encoding'\nimport httpCorsMiddleware from '@middy/http-cors'\nimport httpErrorHandlerMiddleware from '@middy/http-error-handler'\nimport httpEventNormalizerMiddleware from '@middy/http-event-normalizer'\nimport httpHeaderNormalizerMiddleware from '@middy/http-header-normalizer'\nimport httpJsonBodyParserMiddleware from '@middy/http-json-body-parser'\nimport httpMultipartBodyParserMiddleware from '@middy/http-multipart-body-parser'\nimport httpPartialResponseMiddleware from '@middy/http-partial-response'\nimport httpResponseSerializerMiddleware from '@middy/http-response-serializer'\nimport httpSecurityHeadersMiddleware from '@middy/http-security-headers'\nimport httpUrlencodeBodyParserMiddleware from '@middy/http-urlencode-body-parser'\nimport httpUrlencodePathParametersParserMiddleware from '@middy/http-urlencode-path-parser'\nimport warmupMiddleware from 'warmup'\n\nimport { handler as getHandler } from './handlers/get-user.js'\nimport { handler as postHandler } from './handlers/get-user.js'\n\nconst routes = [\n {\n method: 'GET',\n path: '/user/{id}',\n handler: getHandler\n },\n {\n method: 'POST',\n path: '/user',\n handler: postHandler\n }\n]\n\nexport const handler = middy({\n timeoutEarlyResponse: () => {\n return {\n statusCode: 408\n }\n }\n})\n .use(warmupMiddleware())\n .use(httpEventNormalizerMiddleware())\n .use(httpHeaderNormalizerMiddleware())\n .use(\n httpContentNegotiationMiddleware({\n availableLanguages: ['en-CA', 'fr-CA'],\n availableMediaTypes: ['application/json']\n })\n )\n .use(httpUrlencodePathParametersParserMiddleware())\n // Start oneOf\n .use(httpUrlencodeBodyParserMiddleware())\n .use(httpJsonBodyParserMiddleware())\n .use(httpMultipartBodyParserMiddleware())\n // End oneOf\n .use(httpSecurityHeadersMiddleware())\n .use(httpCorsMiddleware())\n .use(httpContentEncodingMiddleware())\n .use(\n httpResponseSerializerMiddleware({\n serializers: [\n {\n regex: /^application\\/json$/,\n serializer: ({ body }) => JSON.stringify(body)\n }\n ],\n default: 'application/json'\n })\n )\n .use(httpPartialResponseMiddleware())\n .use(httpErrorHandlerMiddleware())\n .handler(httpRouterHandler(routes))\n"})})]})}function m(e={}){const{wrapper:t}={...(0,a.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(p,{...e})}):p(e)}},1151:(e,t,r)=>{r.d(t,{Z:()=>i,a:()=>d});var n=r(7294);const a={},o=n.createContext(a);function d(e){const t=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:d(e.components),n.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/7076eee1.cddaa659.js b/assets/js/7076eee1.cddaa659.js deleted file mode 100644 index 31db5da1c..000000000 --- a/assets/js/7076eee1.cddaa659.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[481],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>h});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function d(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),l=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},s=function(e){var t=l(e.components);return n.createElement(p.Provider,{value:t},e.children)},m="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,s=d(e,["components","mdxType","originalType","parentName"]),m=l(r),u=a,h=m["".concat(p,".").concat(u)]||m[u]||c[u]||o;return r?n.createElement(h,i(i({ref:t},s),{},{components:r})):n.createElement(h,i({ref:t},s))}));function h(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=u;var d={};for(var p in t)hasOwnProperty.call(t,p)&&(d[p]=t[p]);d.originalType=e,d[m]="string"==typeof e?e:a,i[1]=d;for(var l=2;l<o;l++)i[l]=r[l];return n.createElement.apply(null,i)}return n.createElement.apply(null,r)}u.displayName="MDXCreateElement"},5846:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>c,frontMatter:()=>o,metadata:()=>d,toc:()=>l});var n=r(7462),a=(r(7294),r(3905));const o={title:"Application Load Balancer"},i=void 0,d={unversionedId:"events/application-load-balancer",id:"events/application-load-balancer",title:"Application Load Balancer",description:"Same as API Gateway (REST)",source:"@site/docs/events/application-load-balancer.md",sourceDirName:"events",slug:"/events/application-load-balancer",permalink:"/docs/events/application-load-balancer",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/events/application-load-balancer.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",frontMatter:{title:"Application Load Balancer"},sidebar:"tutorialSidebar",previous:{title:"API Gateway (WebSocket)",permalink:"/docs/events/api-gateway-ws"},next:{title:"AppSync",permalink:"/docs/events/appsync"}},p={},l=[{value:"AWS Documentation",id:"aws-documentation",level:2},{value:"Example",id:"example",level:2}],s={toc:l},m="wrapper";function c(e){let{components:t,...r}=e;return(0,a.kt)(m,(0,n.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"Same as API Gateway (REST)"),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.")),(0,a.kt)("h2",{id:"aws-documentation"},"AWS Documentation"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://docs.aws.amazon.com/lambda/latest/dg/services-alb.html"},"Using AWS Lambda with an Application Load Balancer"))),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\nimport httpRouterHandler from '@middy/http-router'\nimport errorLoggerMiddleware from '@middy/error-logger'\nimport inputOutputLoggerMiddleware from '@middy/input-output-logger'\nimport httpContentNegotiationMiddleware from '@middy/http-content-negotiation'\nimport httpContentEncodingMiddleware from '@middy/http-content-encoding'\nimport httpCorsMiddleware from '@middy/http-cors'\nimport httpErrorHandlerMiddleware from '@middy/http-error-handler'\nimport httpEventNormalizerMiddleware from '@middy/http-event-normalizer'\nimport httpHeaderNormalizerMiddleware from '@middy/http-header-normalizer'\nimport httpJsonBodyParserMiddleware from '@middy/http-json-body-parser'\nimport httpMultipartBodyParserMiddleware from '@middy/http-multipart-body-parser'\nimport httpPartialResponseMiddleware from '@middy/http-partial-response'\nimport httpResponseSerializerMiddleware from '@middy/http-response-serializer'\nimport httpSecurityHeadersMiddleware from '@middy/http-security-headers'\nimport httpUrlencodeBodyParserMiddleware from '@middy/http-urlencode-body-parser'\nimport httpUrlencodePathParametersParserMiddleware from '@middy/http-urlencode-path-parser'\nimport warmupMiddleware from 'warmup'\n\nimport { handler as getHandler } from './handlers/get-user.js'\nimport { handler as postHandler } from './handlers/get-user.js'\n\nconst routes = [\n {\n method: 'GET',\n path: '/user/{id}',\n handler: getHandler\n },\n {\n method: 'POST',\n path: '/user',\n handler: postHandler\n }\n]\n\nexport const handler = middy({\n timeoutEarlyResponse: () => {\n return {\n statusCode: 408\n }\n }\n})\n .use(warmupMiddleware())\n .use(httpEventNormalizerMiddleware())\n .use(httpHeaderNormalizerMiddleware())\n .use(\n httpContentNegotiationMiddleware({\n availableLanguages: ['en-CA', 'fr-CA'],\n availableMediaTypes: ['application/json']\n })\n )\n .use(httpUrlencodePathParametersParserMiddleware())\n // Start oneOf\n .use(httpUrlencodeBodyParserMiddleware())\n .use(httpJsonBodyParserMiddleware())\n .use(httpMultipartBodyParserMiddleware())\n // End oneOf\n .use(httpSecurityHeadersMiddleware())\n .use(httpCorsMiddleware())\n .use(httpContentEncodingMiddleware())\n .use(\n httpResponseSerializerMiddleware({\n serializers: [\n {\n regex: /^application\\/json$/,\n serializer: ({ body }) => JSON.stringify(body)\n }\n ],\n default: 'application/json'\n })\n )\n .use(httpPartialResponseMiddleware())\n .use(httpErrorHandlerMiddleware())\n .handler(httpRouterHandler(routes))\n")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/71d5009c.8aa8b59c.js b/assets/js/71d5009c.8aa8b59c.js deleted file mode 100644 index 8cc7a6f8d..000000000 --- a/assets/js/71d5009c.8aa8b59c.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[2193],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>f});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=r.createContext({}),s=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=s(e.components);return r.createElement(l.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),d=s(n),m=o,f=d["".concat(l,".").concat(m)]||d[m]||u[m]||a;return n?r.createElement(f,i(i({ref:t},p),{},{components:n})):r.createElement(f,i({ref:t},p))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=m;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[d]="string"==typeof e?e:o,i[1]=c;for(var s=2;s<a;s++)i[s]=n[s];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}m.displayName="MDXCreateElement"},9987:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>u,frontMatter:()=>a,metadata:()=>c,toc:()=>s});var r=n(7462),o=(n(7294),n(3905));const a={title:"Config"},i=void 0,c={unversionedId:"events/config",id:"events/config",title:"Config",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/events/config.md",sourceDirName:"events",slug:"/events/config",permalink:"/docs/events/config",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/events/config.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",frontMatter:{title:"Config"},sidebar:"tutorialSidebar",previous:{title:"Cognito",permalink:"/docs/events/cognito"},next:{title:"Connect",permalink:"/docs/events/connect"}},l={},s=[{value:"AWS Documentation",id:"aws-documentation",level:2},{value:"Example",id:"example",level:2}],p={toc:s},d="wrapper";function u(e){let{components:t,...n}=e;return(0,o.kt)(d,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("admonition",{type:"caution"},(0,o.kt)("p",{parentName:"admonition"},"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.")),(0,o.kt)("h2",{id:"aws-documentation"},"AWS Documentation"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://docs.aws.amazon.com/lambda/latest/dg/services-config.html"},"Using AWS Lambda with AWS Config"))),(0,o.kt)("h2",{id:"example"},"Example"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\nimport eventNormalizerMiddleware from '@middy/event-normalizer'\n\nexport const handler = middy()\n .use(eventNormalizerMiddleware())\n .handler((event, context, {signal}) => {\n // ...\n })\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/71d5009c.d9df73e2.js b/assets/js/71d5009c.d9df73e2.js new file mode 100644 index 000000000..40fef7377 --- /dev/null +++ b/assets/js/71d5009c.d9df73e2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[2193],{1853:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>r,default:()=>m,frontMatter:()=>s,metadata:()=>a,toc:()=>c});var o=t(5893),i=t(1151);const s={title:"Config"},r=void 0,a={id:"events/config",title:"Config",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/events/config.md",sourceDirName:"events",slug:"/events/config",permalink:"/docs/events/config",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/events/config.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",frontMatter:{title:"Config"},sidebar:"tutorialSidebar",previous:{title:"Cognito",permalink:"/docs/events/cognito"},next:{title:"Connect",permalink:"/docs/events/connect"}},d={},c=[{value:"AWS Documentation",id:"aws-documentation",level:2},{value:"Example",id:"example",level:2}];function l(e){const n={a:"a",admonition:"admonition",code:"code",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,i.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.admonition,{type:"caution",children:(0,o.jsx)(n.p,{children:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub."})}),"\n",(0,o.jsx)(n.h2,{id:"aws-documentation",children:"AWS Documentation"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsx)(n.li,{children:(0,o.jsx)(n.a,{href:"https://docs.aws.amazon.com/lambda/latest/dg/services-config.html",children:"Using AWS Lambda with AWS Config"})}),"\n"]}),"\n",(0,o.jsx)(n.h2,{id:"example",children:"Example"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-javascript",children:"import middy from '@middy/core'\nimport eventNormalizerMiddleware from '@middy/event-normalizer'\n\nexport const handler = middy()\n .use(eventNormalizerMiddleware())\n .handler((event, context, {signal}) => {\n // ...\n })\n"})})]})}function m(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(l,{...e})}):l(e)}},1151:(e,n,t)=>{t.d(n,{Z:()=>a,a:()=>r});var o=t(7294);const i={},s=o.createContext(i);function r(e){const n=o.useContext(s);return o.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),o.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/73083085.12ad991c.js b/assets/js/73083085.12ad991c.js deleted file mode 100644 index a8ae0c55c..000000000 --- a/assets/js/73083085.12ad991c.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[8365],{3905:(e,t,r)=>{r.d(t,{Zo:()=>l,kt:()=>y});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function d(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),s=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},l=function(e){var t=s(e.components);return n.createElement(p.Provider,{value:t},e.children)},m="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,l=d(e,["components","mdxType","originalType","parentName"]),m=s(r),u=a,y=m["".concat(p,".").concat(u)]||m[u]||c[u]||o;return r?n.createElement(y,i(i({ref:t},l),{},{components:r})):n.createElement(y,i({ref:t},l))}));function y(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=u;var d={};for(var p in t)hasOwnProperty.call(t,p)&&(d[p]=t[p]);d.originalType=e,d[m]="string"==typeof e?e:a,i[1]=d;for(var s=2;s<o;s++)i[s]=r[s];return n.createElement.apply(null,i)}return n.createElement.apply(null,r)}u.displayName="MDXCreateElement"},4465:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>c,frontMatter:()=>o,metadata:()=>d,toc:()=>s});var n=r(7462),a=(r(7294),r(3905));const o={title:"API Gateway (REST)"},i=void 0,d={unversionedId:"events/api-gateway-rest",id:"events/api-gateway-rest",title:"API Gateway (REST)",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/events/api-gateway-rest.md",sourceDirName:"events",slug:"/events/api-gateway-rest",permalink:"/docs/events/api-gateway-rest",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/events/api-gateway-rest.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",frontMatter:{title:"API Gateway (REST)"},sidebar:"tutorialSidebar",previous:{title:"API Gateway (HTTP)",permalink:"/docs/events/api-gateway-http"},next:{title:"API Gateway (WebSocket)",permalink:"/docs/events/api-gateway-ws"}},p={},s=[{value:"AWS Documentation",id:"aws-documentation",level:2},{value:"Example",id:"example",level:2}],l={toc:s},m="wrapper";function c(e){let{components:t,...r}=e;return(0,a.kt)(m,(0,n.Z)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.")),(0,a.kt)("h2",{id:"aws-documentation"},"AWS Documentation"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://docs.aws.amazon.com/lambda/latest/dg/services-apigateway.html"},"Using AWS Lambda with Amazon API Gateway")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-rest-api.html"},"Working with REST APIs"))),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\nimport errorLoggerMiddleware from '@middy/error-logger'\nimport inputOutputLoggerMiddleware from '@middy/input-output-logger'\nimport httpContentNegotiationMiddleware from '@middy/http-content-negotiation'\nimport httpContentEncodingMiddleware from '@middy/http-content-encoding'\nimport httpCorsMiddleware from '@middy/http-cors'\nimport httpErrorHandlerMiddleware from '@middy/http-error-handler'\nimport httpEventNormalizerMiddleware from '@middy/http-event-normalizer'\nimport httpHeaderNormalizerMiddleware from '@middy/http-header-normalizer'\nimport httpJsonBodyParserMiddleware from '@middy/http-json-body-parser'\nimport httpMultipartBodyParserMiddleware from '@middy/http-multipart-body-parser'\nimport httpPartialResponseMiddleware from '@middy/http-partial-response'\nimport httpResponseSerializerMiddleware from '@middy/http-response-serializer'\nimport httpSecurityHeadersMiddleware from '@middy/http-security-headers'\nimport httpUrlencodeBodyParserMiddleware from '@middy/http-urlencode-body-parser'\nimport httpUrlencodePathParametersParserMiddleware from '@middy/http-urlencode-path-parser'\nimport validatorMiddleware from 'validator'\nimport warmupMiddleware from 'warmup'\n\nimport eventSchema from './eventSchema.json' assert { type: 'json' }\nimport responseSchema from './responseSchema.json' assert { type: 'json' }\n\nexport const handler = middy({\n timeoutEarlyResponse: () => {\n return {\n statusCode: 408\n }\n }\n})\n .use(warmupMiddleware())\n .use(httpEventNormalizerMiddleware())\n .use(httpHeaderNormalizerMiddleware())\n .use(\n httpContentNegotiationMiddleware({\n availableLanguages: ['en-CA', 'fr-CA'],\n availableMediaTypes: ['application/json']\n })\n )\n .use(httpUrlencodePathParametersParserMiddleware())\n // Start oneOf\n .use(httpUrlencodeBodyParserMiddleware())\n .use(httpJsonBodyParserMiddleware())\n .use(httpMultipartBodyParserMiddleware())\n // End oneOf\n .use(httpSecurityHeadersMiddleware())\n .use(httpCorsMiddleware())\n .use(httpContentEncodingMiddleware())\n .use(\n httpResponseSerializerMiddleware({\n serializers: [\n {\n regex: /^application\\/json$/,\n serializer: ({ body }) => JSON.stringify(body)\n }\n ],\n defaultContentType: 'application/json'\n })\n )\n .use(httpPartialResponseMiddleware())\n .use(validatorMiddleware({ eventSchema, responseSchema }))\n .use(httpErrorHandlerMiddleware())\n .handler((event, context, { signal }) => {\n // ...\n })\n")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/73083085.4ed98a51.js b/assets/js/73083085.4ed98a51.js new file mode 100644 index 000000000..795d6b653 --- /dev/null +++ b/assets/js/73083085.4ed98a51.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[8365],{3131:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>m,frontMatter:()=>i,metadata:()=>d,toc:()=>p});var n=r(5893),a=r(1151);const i={title:"API Gateway (REST)"},o=void 0,d={id:"events/api-gateway-rest",title:"API Gateway (REST)",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/events/api-gateway-rest.md",sourceDirName:"events",slug:"/events/api-gateway-rest",permalink:"/docs/events/api-gateway-rest",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/events/api-gateway-rest.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",frontMatter:{title:"API Gateway (REST)"},sidebar:"tutorialSidebar",previous:{title:"API Gateway (HTTP)",permalink:"/docs/events/api-gateway-http"},next:{title:"API Gateway (WebSocket)",permalink:"/docs/events/api-gateway-ws"}},s={},p=[{value:"AWS Documentation",id:"aws-documentation",level:2},{value:"Example",id:"example",level:2}];function l(e){const t={a:"a",admonition:"admonition",code:"code",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,a.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.admonition,{type:"caution",children:(0,n.jsx)(t.p,{children:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub."})}),"\n",(0,n.jsx)(t.h2,{id:"aws-documentation",children:"AWS Documentation"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://docs.aws.amazon.com/lambda/latest/dg/services-apigateway.html",children:"Using AWS Lambda with Amazon API Gateway"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-rest-api.html",children:"Working with REST APIs"})}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"example",children:"Example"}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-javascript",children:"import middy from '@middy/core'\nimport errorLoggerMiddleware from '@middy/error-logger'\nimport inputOutputLoggerMiddleware from '@middy/input-output-logger'\nimport httpContentNegotiationMiddleware from '@middy/http-content-negotiation'\nimport httpContentEncodingMiddleware from '@middy/http-content-encoding'\nimport httpCorsMiddleware from '@middy/http-cors'\nimport httpErrorHandlerMiddleware from '@middy/http-error-handler'\nimport httpEventNormalizerMiddleware from '@middy/http-event-normalizer'\nimport httpHeaderNormalizerMiddleware from '@middy/http-header-normalizer'\nimport httpJsonBodyParserMiddleware from '@middy/http-json-body-parser'\nimport httpMultipartBodyParserMiddleware from '@middy/http-multipart-body-parser'\nimport httpPartialResponseMiddleware from '@middy/http-partial-response'\nimport httpResponseSerializerMiddleware from '@middy/http-response-serializer'\nimport httpSecurityHeadersMiddleware from '@middy/http-security-headers'\nimport httpUrlencodeBodyParserMiddleware from '@middy/http-urlencode-body-parser'\nimport httpUrlencodePathParametersParserMiddleware from '@middy/http-urlencode-path-parser'\nimport validatorMiddleware from 'validator'\nimport warmupMiddleware from 'warmup'\n\nimport eventSchema from './eventSchema.json' assert { type: 'json' }\nimport responseSchema from './responseSchema.json' assert { type: 'json' }\n\nexport const handler = middy({\n timeoutEarlyResponse: () => {\n return {\n statusCode: 408\n }\n }\n})\n .use(warmupMiddleware())\n .use(httpEventNormalizerMiddleware())\n .use(httpHeaderNormalizerMiddleware())\n .use(\n httpContentNegotiationMiddleware({\n availableLanguages: ['en-CA', 'fr-CA'],\n availableMediaTypes: ['application/json']\n })\n )\n .use(httpUrlencodePathParametersParserMiddleware())\n // Start oneOf\n .use(httpUrlencodeBodyParserMiddleware())\n .use(httpJsonBodyParserMiddleware())\n .use(httpMultipartBodyParserMiddleware())\n // End oneOf\n .use(httpSecurityHeadersMiddleware())\n .use(httpCorsMiddleware())\n .use(httpContentEncodingMiddleware())\n .use(\n httpResponseSerializerMiddleware({\n serializers: [\n {\n regex: /^application\\/json$/,\n serializer: ({ body }) => JSON.stringify(body)\n }\n ],\n defaultContentType: 'application/json'\n })\n )\n .use(httpPartialResponseMiddleware())\n .use(validatorMiddleware({ eventSchema, responseSchema }))\n .use(httpErrorHandlerMiddleware())\n .handler((event, context, { signal }) => {\n // ...\n })\n"})})]})}function m(e={}){const{wrapper:t}={...(0,a.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(l,{...e})}):l(e)}},1151:(e,t,r)=>{r.d(t,{Z:()=>d,a:()=>o});var n=r(7294);const a={},i=n.createContext(a);function o(e){const t=n.useContext(i);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function d(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:o(e.components),n.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/7745d517.16dc1797.js b/assets/js/7745d517.16dc1797.js new file mode 100644 index 000000000..03475cb93 --- /dev/null +++ b/assets/js/7745d517.16dc1797.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[1702],{1391:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>o,default:()=>h,frontMatter:()=>l,metadata:()=>d,toc:()=>u});var a=t(5893),r=t(1151),s=t(4866),i=t(5162);const l={title:"appconfig"},o=void 0,d={id:"middlewares/appconfig",title:"appconfig",description:"Fetches AppConfig stored configuration and parses out JSON.",source:"@site/docs/middlewares/appconfig.md",sourceDirName:"middlewares",slug:"/middlewares/appconfig",permalink:"/docs/middlewares/appconfig",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/middlewares/appconfig.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",frontMatter:{title:"appconfig"},sidebar:"tutorialSidebar",previous:{title:"Third-party middlewares",permalink:"/docs/middlewares/third-party"},next:{title:"cloudwatch-metrics",permalink:"/docs/middlewares/cloudwatch-metrics"}},c={},u=[{value:"Install",id:"install",level:2},{value:"Options",id:"options",level:2},{value:"Sample usage",id:"sample-usage",level:2},{value:"Bundling",id:"bundling",level:2},{value:"Usage with TypeScript",id:"usage-with-typescript",level:2}];function p(e){const n={a:"a",code:"code",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(n.p,{children:"Fetches AppConfig stored configuration and parses out JSON."}),"\n",(0,a.jsx)(n.h2,{id:"install",children:"Install"}),"\n",(0,a.jsx)(n.p,{children:"To install this middleware you can use NPM:"}),"\n",(0,a.jsxs)(s.Z,{groupId:"npm2yarn",children:[(0,a.jsx)(i.Z,{value:"npm",children:(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-bash",children:"npm install --save @middy/appconfig\nnpm install --save-dev @aws-sdk/client-appconfigdata\n"})})}),(0,a.jsx)(i.Z,{value:"yarn",label:"Yarn",children:(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-bash",children:"yarn add @middy/appconfig\nyarn add --dev @aws-sdk/client-appconfigdata\n"})})}),(0,a.jsx)(i.Z,{value:"pnpm",label:"pnpm",children:(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-bash",children:"pnpm add @middy/appconfig\npnpm add --save-dev @aws-sdk/client-appconfigdata\n"})})})]}),"\n",(0,a.jsx)(n.h2,{id:"options",children:"Options"}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"AwsClient"})," (object) (default ",(0,a.jsx)(n.code,{children:"AppConfigClient"}),"): AppConfigClient class constructor (i.e. that has been instrumented with AWS XRay). Must be from ",(0,a.jsx)(n.code,{children:"@aws-sdk/client-appconfig"}),"."]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"awsClientOptions"})," (object) (default ",(0,a.jsx)(n.code,{children:"undefined"}),"): Options to pass to AppConfigClient class constructor."]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"awsClientAssumeRole"})," (string) (default ",(0,a.jsx)(n.code,{children:"undefined"}),"): Internal key where secrets are stored. See ",(0,a.jsx)(n.a,{href:"/docs/middlewares/sts",children:"@middy/sts"})," on to set this."]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"awsClientCapture"})," (function) (default ",(0,a.jsx)(n.code,{children:"undefined"}),"): Enable XRay by passing ",(0,a.jsx)(n.code,{children:"captureAWSv3Client"})," from ",(0,a.jsx)(n.code,{children:"aws-xray-sdk"})," in."]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"fetchData"})," (object) (required): Mapping of internal key name to API request parameters."]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"disablePrefetch"})," (boolean) (default ",(0,a.jsx)(n.code,{children:"false"}),"): On cold start requests will trigger early if they can. Setting ",(0,a.jsx)(n.code,{children:"awsClientAssumeRole"})," disables prefetch."]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"cacheKey"})," (string) (default ",(0,a.jsx)(n.code,{children:"appconfig"}),"): Cache key for the fetched data responses. Must be unique across all middleware."]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"cacheExpiry"})," (number) (default ",(0,a.jsx)(n.code,{children:"-1"}),"): How long fetch data responses should be cached for. ",(0,a.jsx)(n.code,{children:"-1"}),": cache forever, ",(0,a.jsx)(n.code,{children:"0"}),": never cache, ",(0,a.jsx)(n.code,{children:"n"}),": cache for n ms."]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"setToContext"})," (boolean) (default ",(0,a.jsx)(n.code,{children:"false"}),"): Store credentials to ",(0,a.jsx)(n.code,{children:"request.context"}),"."]}),"\n"]}),"\n",(0,a.jsx)(n.p,{children:"NOTES:"}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsxs)(n.li,{children:["Lambda is required to have IAM permission for ",(0,a.jsx)(n.code,{children:"appconfig:StartConfigurationSession"})," and ",(0,a.jsx)(n.code,{children:"appconfig:GetLatestConfiguration"})]}),"\n"]}),"\n",(0,a.jsx)(n.h2,{id:"sample-usage",children:"Sample usage"}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-javascript",children:"import middy from '@middy/core'\nimport appConfig from '@middy/appconfig'\n\nconst handler = middy()\n .use(\n appConfig({\n fetchData: {\n config: {\n Application: '...',\n ClientId: '...',\n Configuration: '...',\n Environment: '...'\n }\n }\n })\n )\n .handler((event, context) => {\n const response = {\n statusCode: 200,\n headers: {},\n body: JSON.stringify({ message: 'hello world' })\n }\n\n return response\n })\n"})}),"\n",(0,a.jsx)(n.h2,{id:"bundling",children:"Bundling"}),"\n",(0,a.jsxs)(n.p,{children:["To exclude ",(0,a.jsx)(n.code,{children:"@aws-sdk"})," add ",(0,a.jsx)(n.code,{children:"@aws-sdk/client-appconfig"})," to the exclude list."]}),"\n",(0,a.jsx)(n.h2,{id:"usage-with-typescript",children:"Usage with TypeScript"}),"\n",(0,a.jsxs)(n.p,{children:["Data in AppConfig can be stored as arbitrary structured data. It's not possible to know in advance what shape the fetched data will have, so by default the fetched parameters will have type ",(0,a.jsx)(n.code,{children:"unknown"}),"."]}),"\n",(0,a.jsxs)(n.p,{children:["You can provide some type hints by leveraging the ",(0,a.jsx)(n.code,{children:"appConfigReq"})," utility function. This function allows you to specify what's the expected type that will be fetched for every AppConfig request."]}),"\n",(0,a.jsxs)(n.p,{children:["The idea is that, for every request specified in the ",(0,a.jsx)(n.code,{children:"fetchData"})," option, rather than just providing the parameter path as a string, you can wrap it in a ",(0,a.jsx)(n.code,{children:"appConfigReq<ParamType>(config)"})," call. Internally, ",(0,a.jsx)(n.code,{children:"appConfigReq"})," is a function that will return ",(0,a.jsx)(n.code,{children:"config"})," as received, but it allows you to use generics to provide type hints for the expected type for that parameter."]}),"\n",(0,a.jsx)(n.p,{children:"This way TypeScript can understand how to treat the additional data attached to the context and stored in the internal storage."}),"\n",(0,a.jsxs)(n.p,{children:["The following example illustrates how to use ",(0,a.jsx)(n.code,{children:"appConfigReq"}),":"]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-typescript",children:"import middy from '@middy/core'\nimport appConfig, { appConfigReq } from '@middy/appconfig'\n\nconst lambdaHandler = (event, context) => {\n return {\n statusCode: 200,\n headers: {},\n body: JSON.stringify({ message: 'hello world' })\n }\n})\n\nexport const handler = middy()\n .use(\n appConfig({\n fetchData: {\n config: {\n Application: '...',\n ClientId: '...',\n Configuration: '...',\n Environment: '...'\n }\n }\n })\n )\n .before(async (request) => {\n const data = await getInternal('config', request)\n // data.config.field1 (string)\n // data.config.field2 (string)\n // data.config.field3 (number)\n })\n.handler(lambdaHandler)\n"})})]})}function h(e={}){const{wrapper:n}={...(0,r.a)(),...e.components};return n?(0,a.jsx)(n,{...e,children:(0,a.jsx)(p,{...e})}):p(e)}},5162:(e,n,t)=>{t.d(n,{Z:()=>i});t(7294);var a=t(6010);const r={tabItem:"tabItem_Ymn6"};var s=t(5893);function i(e){let{children:n,hidden:t,className:i}=e;return(0,s.jsx)("div",{role:"tabpanel",className:(0,a.Z)(r.tabItem,i),hidden:t,children:n})}},4866:(e,n,t)=>{t.d(n,{Z:()=>w});var a=t(7294),r=t(6010),s=t(2466),i=t(6550),l=t(469),o=t(1980),d=t(7392),c=t(12);function u(e){return a.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,a.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function p(e){const{values:n,children:t}=e;return(0,a.useMemo)((()=>{const e=n??function(e){return u(e).map((e=>{let{props:{value:n,label:t,attributes:a,default:r}}=e;return{value:n,label:t,attributes:a,default:r}}))}(t);return function(e){const n=(0,d.l)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[n,t])}function h(e){let{value:n,tabValues:t}=e;return t.some((e=>e.value===n))}function f(e){let{queryString:n=!1,groupId:t}=e;const r=(0,i.k6)(),s=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t});return[(0,o._X)(s),(0,a.useCallback)((e=>{if(!s)return;const n=new URLSearchParams(r.location.search);n.set(s,e),r.replace({...r.location,search:n.toString()})}),[s,r])]}function m(e){const{defaultValue:n,queryString:t=!1,groupId:r}=e,s=p(e),[i,o]=(0,a.useState)((()=>function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(n){if(!h({value:n,tabValues:t}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const a=t.find((e=>e.default))??t[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:n,tabValues:s}))),[d,u]=f({queryString:t,groupId:r}),[m,g]=function(e){let{groupId:n}=e;const t=function(e){return e?`docusaurus.tab.${e}`:null}(n),[r,s]=(0,c.Nk)(t);return[r,(0,a.useCallback)((e=>{t&&s.set(e)}),[t,s])]}({groupId:r}),x=(()=>{const e=d??m;return h({value:e,tabValues:s})?e:null})();(0,l.Z)((()=>{x&&o(x)}),[x]);return{selectedValue:i,selectValue:(0,a.useCallback)((e=>{if(!h({value:e,tabValues:s}))throw new Error(`Can't select invalid tab value=${e}`);o(e),u(e),g(e)}),[u,g,s]),tabValues:s}}var g=t(2389);const x={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var b=t(5893);function j(e){let{className:n,block:t,selectedValue:a,selectValue:i,tabValues:l}=e;const o=[],{blockElementScrollPositionUntilNextRender:d}=(0,s.o5)(),c=e=>{const n=e.currentTarget,t=o.indexOf(n),r=l[t].value;r!==a&&(d(n),i(r))},u=e=>{let n=null;switch(e.key){case"Enter":c(e);break;case"ArrowRight":{const t=o.indexOf(e.currentTarget)+1;n=o[t]??o[0];break}case"ArrowLeft":{const t=o.indexOf(e.currentTarget)-1;n=o[t]??o[o.length-1];break}}n?.focus()};return(0,b.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,r.Z)("tabs",{"tabs--block":t},n),children:l.map((e=>{let{value:n,label:t,attributes:s}=e;return(0,b.jsx)("li",{role:"tab",tabIndex:a===n?0:-1,"aria-selected":a===n,ref:e=>o.push(e),onKeyDown:u,onClick:c,...s,className:(0,r.Z)("tabs__item",x.tabItem,s?.className,{"tabs__item--active":a===n}),children:t??n},n)}))})}function y(e){let{lazy:n,children:t,selectedValue:r}=e;const s=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){const e=s.find((e=>e.props.value===r));return e?(0,a.cloneElement)(e,{className:"margin-top--md"}):null}return(0,b.jsx)("div",{className:"margin-top--md",children:s.map(((e,n)=>(0,a.cloneElement)(e,{key:n,hidden:e.props.value!==r})))})}function v(e){const n=m(e);return(0,b.jsxs)("div",{className:(0,r.Z)("tabs-container",x.tabList),children:[(0,b.jsx)(j,{...e,...n}),(0,b.jsx)(y,{...e,...n})]})}function w(e){const n=(0,g.Z)();return(0,b.jsx)(v,{...e,children:u(e.children)},String(n))}},1151:(e,n,t)=>{t.d(n,{Z:()=>l,a:()=>i});var a=t(7294);const r={},s=a.createContext(r);function i(e){const n=a.useContext(s);return a.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:i(e.components),a.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/7745d517.2d2d7514.js b/assets/js/7745d517.2d2d7514.js deleted file mode 100644 index 243b7627f..000000000 --- a/assets/js/7745d517.2d2d7514.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[1702],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function o(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},l=Object.keys(e);for(a=0;a<l.length;a++)n=l[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a<l.length;a++)n=l[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=a.createContext({}),u=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},c=function(e){var t=u(e.components);return a.createElement(s.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,l=e.originalType,s=e.parentName,c=o(e,["components","mdxType","originalType","parentName"]),d=u(n),m=r,f=d["".concat(s,".").concat(m)]||d[m]||p[m]||l;return n?a.createElement(f,i(i({ref:t},c),{},{components:n})):a.createElement(f,i({ref:t},c))}));function f(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=n.length,i=new Array(l);i[0]=m;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[d]="string"==typeof e?e:r,i[1]=o;for(var u=2;u<l;u++)i[u]=n[u];return a.createElement.apply(null,i)}return a.createElement.apply(null,n)}m.displayName="MDXCreateElement"},5162:(e,t,n)=>{n.d(t,{Z:()=>i});var a=n(7294),r=n(6010);const l={tabItem:"tabItem_Ymn6"};function i(e){let{children:t,hidden:n,className:i}=e;return a.createElement("div",{role:"tabpanel",className:(0,r.Z)(l.tabItem,i),hidden:n},t)}},4866:(e,t,n)=>{n.d(t,{Z:()=>w});var a=n(7462),r=n(7294),l=n(6010),i=n(2466),o=n(6550),s=n(1980),u=n(7392),c=n(12);function d(e){return function(e){return r.Children.map(e,(e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:a,default:r}}=e;return{value:t,label:n,attributes:a,default:r}}))}function p(e){const{values:t,children:n}=e;return(0,r.useMemo)((()=>{const e=t??d(n);return function(e){const t=(0,u.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,n])}function m(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:n}=e;const a=(0,o.k6)(),l=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,s._X)(l),(0,r.useCallback)((e=>{if(!l)return;const t=new URLSearchParams(a.location.search);t.set(l,e),a.replace({...a.location,search:t.toString()})}),[l,a])]}function b(e){const{defaultValue:t,queryString:n=!1,groupId:a}=e,l=p(e),[i,o]=(0,r.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!m({value:t,tabValues:n}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const a=n.find((e=>e.default))??n[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:t,tabValues:l}))),[s,u]=f({queryString:n,groupId:a}),[d,b]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[a,l]=(0,c.Nk)(n);return[a,(0,r.useCallback)((e=>{n&&l.set(e)}),[n,l])]}({groupId:a}),g=(()=>{const e=s??d;return m({value:e,tabValues:l})?e:null})();(0,r.useLayoutEffect)((()=>{g&&o(g)}),[g]);return{selectedValue:i,selectValue:(0,r.useCallback)((e=>{if(!m({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);o(e),u(e),b(e)}),[u,b,l]),tabValues:l}}var g=n(2389);const h={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};function k(e){let{className:t,block:n,selectedValue:o,selectValue:s,tabValues:u}=e;const c=[],{blockElementScrollPositionUntilNextRender:d}=(0,i.o5)(),p=e=>{const t=e.currentTarget,n=c.indexOf(t),a=u[n].value;a!==o&&(d(t),s(a))},m=e=>{let t=null;switch(e.key){case"Enter":p(e);break;case"ArrowRight":{const n=c.indexOf(e.currentTarget)+1;t=c[n]??c[0];break}case"ArrowLeft":{const n=c.indexOf(e.currentTarget)-1;t=c[n]??c[c.length-1];break}}t?.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":n},t)},u.map((e=>{let{value:t,label:n,attributes:i}=e;return r.createElement("li",(0,a.Z)({role:"tab",tabIndex:o===t?0:-1,"aria-selected":o===t,key:t,ref:e=>c.push(e),onKeyDown:m,onClick:p},i,{className:(0,l.Z)("tabs__item",h.tabItem,i?.className,{"tabs__item--active":o===t})}),n??t)})))}function y(e){let{lazy:t,children:n,selectedValue:a}=e;const l=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=l.find((e=>e.props.value===a));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},l.map(((e,t)=>(0,r.cloneElement)(e,{key:t,hidden:e.props.value!==a}))))}function v(e){const t=b(e);return r.createElement("div",{className:(0,l.Z)("tabs-container",h.tabList)},r.createElement(k,(0,a.Z)({},e,t)),r.createElement(y,(0,a.Z)({},e,t)))}function w(e){const t=(0,g.Z)();return r.createElement(v,(0,a.Z)({key:String(t)},e))}},2426:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>f,frontMatter:()=>o,metadata:()=>u,toc:()=>d});var a=n(7462),r=(n(7294),n(3905)),l=n(4866),i=n(5162);const o={title:"appconfig"},s=void 0,u={unversionedId:"middlewares/appconfig",id:"middlewares/appconfig",title:"appconfig",description:"Fetches AppConfig stored configuration and parses out JSON.",source:"@site/docs/middlewares/appconfig.md",sourceDirName:"middlewares",slug:"/middlewares/appconfig",permalink:"/docs/middlewares/appconfig",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/middlewares/appconfig.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",frontMatter:{title:"appconfig"},sidebar:"tutorialSidebar",previous:{title:"Third-party middlewares",permalink:"/docs/middlewares/third-party"},next:{title:"cloudwatch-metrics",permalink:"/docs/middlewares/cloudwatch-metrics"}},c={},d=[{value:"Install",id:"install",level:2},{value:"Options",id:"options",level:2},{value:"Sample usage",id:"sample-usage",level:2},{value:"Bundling",id:"bundling",level:2}],p={toc:d},m="wrapper";function f(e){let{components:t,...n}=e;return(0,r.kt)(m,(0,a.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"Fetches AppConfig stored configuration and parses out JSON."),(0,r.kt)("h2",{id:"install"},"Install"),(0,r.kt)("p",null,"To install this middleware you can use NPM:"),(0,r.kt)(l.Z,{groupId:"npm2yarn",mdxType:"Tabs"},(0,r.kt)(i.Z,{value:"npm",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"npm install --save @middy/appconfig\nnpm install --save-dev @aws-sdk/client-appconfig\n"))),(0,r.kt)(i.Z,{value:"yarn",label:"Yarn",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"yarn add @middy/appconfig\nyarn add --dev @aws-sdk/client-appconfig\n"))),(0,r.kt)(i.Z,{value:"pnpm",label:"pnpm",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"pnpm add @middy/appconfig\npnpm add --save-dev @aws-sdk/client-appconfig\n")))),(0,r.kt)("h2",{id:"options"},"Options"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"AwsClient")," (object) (default ",(0,r.kt)("inlineCode",{parentName:"li"},"AppConfigClient"),"): AppConfigClient class constructor (i.e. that has been instrumented with AWS XRay). Must be from ",(0,r.kt)("inlineCode",{parentName:"li"},"@aws-sdk/client-appconfig"),"."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"awsClientOptions")," (object) (default ",(0,r.kt)("inlineCode",{parentName:"li"},"undefined"),"): Options to pass to AppConfigClient class constructor."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"awsClientAssumeRole")," (string) (default ",(0,r.kt)("inlineCode",{parentName:"li"},"undefined"),"): Internal key where secrets are stored. See ",(0,r.kt)("a",{parentName:"li",href:"/docs/middlewares/sts"},"@middy/sts")," on to set this."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"awsClientCapture")," (function) (default ",(0,r.kt)("inlineCode",{parentName:"li"},"undefined"),"): Enable XRay by passing ",(0,r.kt)("inlineCode",{parentName:"li"},"captureAWSv3Client")," from ",(0,r.kt)("inlineCode",{parentName:"li"},"aws-xray-sdk")," in."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"fetchData")," (object) (required): Mapping of internal key name to API request parameters."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"disablePrefetch")," (boolean) (default ",(0,r.kt)("inlineCode",{parentName:"li"},"false"),"): On cold start requests will trigger early if they can. Setting ",(0,r.kt)("inlineCode",{parentName:"li"},"awsClientAssumeRole")," disables prefetch."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"cacheKey")," (string) (default ",(0,r.kt)("inlineCode",{parentName:"li"},"appconfig"),"): Cache key for the fetched data responses. Must be unique across all middleware."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"cacheExpiry")," (number) (default ",(0,r.kt)("inlineCode",{parentName:"li"},"-1"),"): How long fetch data responses should be cached for. ",(0,r.kt)("inlineCode",{parentName:"li"},"-1"),": cache forever, ",(0,r.kt)("inlineCode",{parentName:"li"},"0"),": never cache, ",(0,r.kt)("inlineCode",{parentName:"li"},"n"),": cache for n ms."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"setToContext")," (boolean) (default ",(0,r.kt)("inlineCode",{parentName:"li"},"false"),"): Store credentials to ",(0,r.kt)("inlineCode",{parentName:"li"},"request.context"),".")),(0,r.kt)("p",null,"NOTES:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Lambda is required to have IAM permission for ",(0,r.kt)("inlineCode",{parentName:"li"},"appconfig:GetConfiguration"))),(0,r.kt)("h2",{id:"sample-usage"},"Sample usage"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\nimport appConfig from '@middy/appconfig'\n\nconst handler = middy((event, context) => {\n const response = {\n statusCode: 200,\n headers: {},\n body: JSON.stringify({ message: 'hello world' })\n }\n\n return response\n})\n\nhandler.use(\n appConfig({\n fetchData: {\n config: {\n Application: '...',\n ClientId: '...',\n Configuration: '...',\n Environment: '...'\n }\n }\n })\n)\n")),(0,r.kt)("h2",{id:"bundling"},"Bundling"),(0,r.kt)("p",null,"To exclude ",(0,r.kt)("inlineCode",{parentName:"p"},"@aws-sdk")," add ",(0,r.kt)("inlineCode",{parentName:"p"},"@aws-sdk/client-appconfig")," to the exclude list."))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7908.7f651888.js b/assets/js/7908.7f651888.js new file mode 100644 index 000000000..117d828a7 --- /dev/null +++ b/assets/js/7908.7f651888.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[7908],{9047:(e,n,t)=>{t.d(n,{Z:()=>w});var i=t(7294),s=t(5893);function o(e){const{mdxAdmonitionTitle:n,rest:t}=function(e){const n=i.Children.toArray(e),t=n.find((e=>i.isValidElement(e)&&"mdxAdmonitionTitle"===e.type)),o=n.filter((e=>e!==t)),a=t?.props.children;return{mdxAdmonitionTitle:a,rest:o.length>0?(0,s.jsx)(s.Fragment,{children:o}):null}}(e.children),o=e.title??n;return{...e,...o&&{title:o},children:t}}var a=t(6010),l=t(5999),r=t(5281);const c={admonition:"admonition_xJq3",admonitionHeading:"admonitionHeading_Gvgb",admonitionIcon:"admonitionIcon_Rf37",admonitionContent:"admonitionContent_BuS1"};function d(e){let{type:n,className:t,children:i}=e;return(0,s.jsx)("div",{className:(0,a.Z)(r.k.common.admonition,r.k.common.admonitionType(n),c.admonition,t),children:i})}function u(e){let{icon:n,title:t}=e;return(0,s.jsxs)("div",{className:c.admonitionHeading,children:[(0,s.jsx)("span",{className:c.admonitionIcon,children:n}),t]})}function m(e){let{children:n}=e;return n?(0,s.jsx)("div",{className:c.admonitionContent,children:n}):null}function h(e){const{type:n,icon:t,title:i,children:o,className:a}=e;return(0,s.jsxs)(d,{type:n,className:a,children:[(0,s.jsx)(u,{title:i,icon:t}),(0,s.jsx)(m,{children:o})]})}function f(e){return(0,s.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})})}const x={icon:(0,s.jsx)(f,{}),title:(0,s.jsx)(l.Z,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function v(e){return(0,s.jsx)(h,{...x,...e,className:(0,a.Z)("alert alert--secondary",e.className),children:e.children})}function p(e){return(0,s.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})})}const j={icon:(0,s.jsx)(p,{}),title:(0,s.jsx)(l.Z,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function g(e){return(0,s.jsx)(h,{...j,...e,className:(0,a.Z)("alert alert--success",e.className),children:e.children})}function N(e){return(0,s.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})})}const C={icon:(0,s.jsx)(N,{}),title:(0,s.jsx)(l.Z,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function b(e){return(0,s.jsx)(h,{...C,...e,className:(0,a.Z)("alert alert--info",e.className),children:e.children})}function L(e){return(0,s.jsx)("svg",{viewBox:"0 0 16 16",...e,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})})}const Z={icon:(0,s.jsx)(L,{}),title:(0,s.jsx)(l.Z,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})};function y(e){return(0,s.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})})}const H={icon:(0,s.jsx)(y,{}),title:(0,s.jsx)(l.Z,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})};const k={icon:(0,s.jsx)(L,{}),title:(0,s.jsx)(l.Z,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};const _={...{note:v,tip:g,info:b,warning:function(e){return(0,s.jsx)(h,{...Z,...e,className:(0,a.Z)("alert alert--warning",e.className),children:e.children})},danger:function(e){return(0,s.jsx)(h,{...H,...e,className:(0,a.Z)("alert alert--danger",e.className),children:e.children})}},...{secondary:e=>(0,s.jsx)(v,{title:"secondary",...e}),important:e=>(0,s.jsx)(b,{title:"important",...e}),success:e=>(0,s.jsx)(g,{title:"success",...e}),caution:function(e){return(0,s.jsx)(h,{...k,...e,className:(0,a.Z)("alert alert--warning",e.className),children:e.children})}}};function w(e){const n=o(e),t=(i=n.type,_[i]||(console.warn(`No admonition component found for admonition type "${i}". Using Info as fallback.`),_.info));var i;return(0,s.jsx)(t,{...n})}},591:(e,n,t)=>{t.d(n,{Z:()=>k});var i=t(7294),s=t(1151),o=t(5742),a=t(9286),l=t(5893);var r=t(9960);var c=t(6010),d=t(2389),u=t(6043);const m={details:"details_lb9f",isBrowser:"isBrowser_bmU9",collapsibleContent:"collapsibleContent_i85q"};function h(e){return!!e&&("SUMMARY"===e.tagName||h(e.parentElement))}function f(e,n){return!!e&&(e===n||f(e.parentElement,n))}function x(e){let{summary:n,children:t,...s}=e;const o=(0,d.Z)(),a=(0,i.useRef)(null),{collapsed:r,setCollapsed:x}=(0,u.u)({initialState:!s.open}),[v,p]=(0,i.useState)(s.open),j=i.isValidElement(n)?n:(0,l.jsx)("summary",{children:n??"Details"});return(0,l.jsxs)("details",{...s,ref:a,open:v,"data-collapsed":r,className:(0,c.Z)(m.details,o&&m.isBrowser,s.className),onMouseDown:e=>{h(e.target)&&e.detail>1&&e.preventDefault()},onClick:e=>{e.stopPropagation();const n=e.target;h(n)&&f(n,a.current)&&(e.preventDefault(),r?(x(!1),p(!0)):x(!0))},children:[j,(0,l.jsx)(u.z,{lazy:!1,collapsed:r,disableSSRStyle:!0,onCollapseTransitionEnd:e=>{x(e),p(!e)},children:(0,l.jsx)("div",{className:m.collapsibleContent,children:t})})]})}const v={details:"details_b_Ee"},p="alert alert--info";function j(e){let{...n}=e;return(0,l.jsx)(x,{...n,className:(0,c.Z)(p,v.details,n.className)})}function g(e){const n=i.Children.toArray(e.children),t=n.find((e=>i.isValidElement(e)&&"summary"===e.type)),s=(0,l.jsx)(l.Fragment,{children:n.filter((e=>e!==t))});return(0,l.jsx)(j,{...e,summary:t,children:s})}var N=t(2503);function C(e){return(0,l.jsx)(N.Z,{...e})}const b={containsTaskList:"containsTaskList_mC6p"};function L(e){if(void 0!==e)return(0,c.Z)(e,e?.includes("contains-task-list")&&b.containsTaskList)}const Z={img:"img_ev3q"};var y=t(9047);const H={Head:o.Z,details:g,Details:g,code:function(e){return i.Children.toArray(e.children).every((e=>"string"==typeof e&&!e.includes("\n")))?(0,l.jsx)("code",{...e}):(0,l.jsx)(a.Z,{...e})},a:function(e){return(0,l.jsx)(r.Z,{...e})},pre:function(e){return(0,l.jsx)(l.Fragment,{children:e.children})},ul:function(e){return(0,l.jsx)("ul",{...e,className:L(e.className)})},img:function(e){return(0,l.jsx)("img",{loading:"lazy",...e,className:(n=e.className,(0,c.Z)(n,Z.img))});var n},h1:e=>(0,l.jsx)(C,{as:"h1",...e}),h2:e=>(0,l.jsx)(C,{as:"h2",...e}),h3:e=>(0,l.jsx)(C,{as:"h3",...e}),h4:e=>(0,l.jsx)(C,{as:"h4",...e}),h5:e=>(0,l.jsx)(C,{as:"h5",...e}),h6:e=>(0,l.jsx)(C,{as:"h6",...e}),admonition:y.Z,mermaid:()=>null};function k(e){let{children:n}=e;return(0,l.jsx)(s.Z,{components:H,children:n})}},9407:(e,n,t)=>{t.d(n,{Z:()=>c});t(7294);var i=t(6010),s=t(3743);const o={tableOfContents:"tableOfContents_bqdL",docItemContainer:"docItemContainer_F8PC"};var a=t(5893);const l="table-of-contents__link toc-highlight",r="table-of-contents__link--active";function c(e){let{className:n,...t}=e;return(0,a.jsx)("div",{className:(0,i.Z)(o.tableOfContents,"thin-scrollbar",n),children:(0,a.jsx)(s.Z,{...t,linkClassName:l,linkActiveClassName:r})})}},3743:(e,n,t)=>{t.d(n,{Z:()=>x});var i=t(7294),s=t(6668);function o(e){const n=e.map((e=>({...e,parentIndex:-1,children:[]}))),t=Array(7).fill(-1);n.forEach(((e,n)=>{const i=t.slice(2,e.level);e.parentIndex=Math.max(...i),t[e.level]=n}));const i=[];return n.forEach((e=>{const{parentIndex:t,...s}=e;t>=0?n[t].children.push(s):i.push(s)})),i}function a(e){let{toc:n,minHeadingLevel:t,maxHeadingLevel:i}=e;return n.flatMap((e=>{const n=a({toc:e.children,minHeadingLevel:t,maxHeadingLevel:i});return function(e){return e.level>=t&&e.level<=i}(e)?[{...e,children:n}]:n}))}function l(e){const n=e.getBoundingClientRect();return n.top===n.bottom?l(e.parentNode):n}function r(e,n){let{anchorTopOffset:t}=n;const i=e.find((e=>l(e).top>=t));if(i){return function(e){return e.top>0&&e.bottom<window.innerHeight/2}(l(i))?i:e[e.indexOf(i)-1]??null}return e[e.length-1]??null}function c(){const e=(0,i.useRef)(0),{navbar:{hideOnScroll:n}}=(0,s.L)();return(0,i.useEffect)((()=>{e.current=n?0:document.querySelector(".navbar").clientHeight}),[n]),e}function d(e){const n=(0,i.useRef)(void 0),t=c();(0,i.useEffect)((()=>{if(!e)return()=>{};const{linkClassName:i,linkActiveClassName:s,minHeadingLevel:o,maxHeadingLevel:a}=e;function l(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(i),l=function(e){let{minHeadingLevel:n,maxHeadingLevel:t}=e;const i=[];for(let s=n;s<=t;s+=1)i.push(`h${s}.anchor`);return Array.from(document.querySelectorAll(i.join()))}({minHeadingLevel:o,maxHeadingLevel:a}),c=r(l,{anchorTopOffset:t.current}),d=e.find((e=>c&&c.id===function(e){return decodeURIComponent(e.href.substring(e.href.indexOf("#")+1))}(e)));e.forEach((e=>{!function(e,t){t?(n.current&&n.current!==e&&n.current.classList.remove(s),e.classList.add(s),n.current=e):e.classList.remove(s)}(e,e===d)}))}return document.addEventListener("scroll",l),document.addEventListener("resize",l),l(),()=>{document.removeEventListener("scroll",l),document.removeEventListener("resize",l)}}),[e,t])}var u=t(9960),m=t(5893);function h(e){let{toc:n,className:t,linkClassName:i,isChild:s}=e;return n.length?(0,m.jsx)("ul",{className:s?void 0:t,children:n.map((e=>(0,m.jsxs)("li",{children:[(0,m.jsx)(u.Z,{to:`#${e.id}`,className:i??void 0,dangerouslySetInnerHTML:{__html:e.value}}),(0,m.jsx)(h,{isChild:!0,toc:e.children,className:t,linkClassName:i})]},e.id)))}):null}const f=i.memo(h);function x(e){let{toc:n,className:t="table-of-contents table-of-contents__left-border",linkClassName:l="table-of-contents__link",linkActiveClassName:r,minHeadingLevel:c,maxHeadingLevel:u,...h}=e;const x=(0,s.L)(),v=c??x.tableOfContents.minHeadingLevel,p=u??x.tableOfContents.maxHeadingLevel,j=function(e){let{toc:n,minHeadingLevel:t,maxHeadingLevel:s}=e;return(0,i.useMemo)((()=>a({toc:o(n),minHeadingLevel:t,maxHeadingLevel:s})),[n,t,s])}({toc:n,minHeadingLevel:v,maxHeadingLevel:p});return d((0,i.useMemo)((()=>{if(l&&r)return{linkClassName:l,linkActiveClassName:r,minHeadingLevel:v,maxHeadingLevel:p}}),[l,r,v,p])),(0,m.jsx)(f,{toc:j,className:t,linkClassName:l,...h})}},2212:(e,n,t)=>{t.d(n,{Z:()=>h});t(7294);var i=t(6010),s=t(5999),o=t(5742),a=t(5893);function l(){return(0,a.jsx)(s.Z,{id:"theme.unlistedContent.title",description:"The unlisted content banner title",children:"Unlisted page"})}function r(){return(0,a.jsx)(s.Z,{id:"theme.unlistedContent.message",description:"The unlisted content banner message",children:"This page is unlisted. Search engines will not index it, and only users having a direct link can access it."})}function c(){return(0,a.jsx)(o.Z,{children:(0,a.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})}var d=t(5281),u=t(9047);function m(e){let{className:n}=e;return(0,a.jsx)(u.Z,{type:"caution",title:(0,a.jsx)(l,{}),className:(0,i.Z)(n,d.k.common.unlistedBanner),children:(0,a.jsx)(r,{})})}function h(e){return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(c,{}),(0,a.jsx)(m,{...e})]})}},1151:(e,n,t)=>{t.d(n,{Z:()=>l,a:()=>a});var i=t(7294);const s={},o=i.createContext(s);function a(e){const n=i.useContext(o);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),i.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/79674995.11a9a6a4.js b/assets/js/79674995.11a9a6a4.js new file mode 100644 index 000000000..a7eb8b41c --- /dev/null +++ b/assets/js/79674995.11a9a6a4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[8200],{1934:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>s,default:()=>u,frontMatter:()=>a,metadata:()=>r,toc:()=>c});var o=n(5893),i=n(1151);const a={title:"CloudFormation"},s=void 0,r={id:"events/cloud-formation",title:"CloudFormation",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/events/cloud-formation.md",sourceDirName:"events",slug:"/events/cloud-formation",permalink:"/docs/events/cloud-formation",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/events/cloud-formation.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",frontMatter:{title:"CloudFormation"},sidebar:"tutorialSidebar",previous:{title:"AppSync",permalink:"/docs/events/appsync"},next:{title:"CloudFront Lambda@Edge",permalink:"/docs/events/cloud-front"}},d={},c=[{value:"AWS Documentation",id:"aws-documentation",level:2},{value:"Example",id:"example",level:2}];function l(e){const t={a:"a",admonition:"admonition",code:"code",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,i.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.admonition,{type:"caution",children:(0,o.jsx)(t.p,{children:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub."})}),"\n",(0,o.jsx)(t.h2,{id:"aws-documentation",children:"AWS Documentation"}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsx)(t.li,{children:(0,o.jsx)(t.a,{href:"https://docs.aws.amazon.com/lambda/latest/dg/services-cloudformation.html",children:"Using AWS Lambda with AWS CloudFormation"})}),"\n"]}),"\n",(0,o.jsx)(t.h2,{id:"example",children:"Example"}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-javascript",children:"import middy from '@middy/core'\n\nexport const handler = middy()\n .handler((event, context, {signal}) => {\n // ...\n })\n"})})]})}function u(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(l,{...e})}):l(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>r,a:()=>s});var o=n(7294);const i={},a=o.createContext(i);function s(e){const t=o.useContext(a);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:s(e.components),o.createElement(a.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/79674995.b354a8ed.js b/assets/js/79674995.b354a8ed.js deleted file mode 100644 index 8b8f05eec..000000000 --- a/assets/js/79674995.b354a8ed.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[8200],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>f});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var c=r.createContext({}),s=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=s(e.components);return r.createElement(c.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),u=s(n),m=o,f=u["".concat(c,".").concat(m)]||u[m]||d[m]||a;return n?r.createElement(f,i(i({ref:t},p),{},{components:n})):r.createElement(f,i({ref:t},p))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=m;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[u]="string"==typeof e?e:o,i[1]=l;for(var s=2;s<a;s++)i[s]=n[s];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}m.displayName="MDXCreateElement"},1189:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>l,toc:()=>s});var r=n(7462),o=(n(7294),n(3905));const a={title:"CloudFormation"},i=void 0,l={unversionedId:"events/cloud-formation",id:"events/cloud-formation",title:"CloudFormation",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/events/cloud-formation.md",sourceDirName:"events",slug:"/events/cloud-formation",permalink:"/docs/events/cloud-formation",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/events/cloud-formation.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",frontMatter:{title:"CloudFormation"},sidebar:"tutorialSidebar",previous:{title:"AppSync",permalink:"/docs/events/appsync"},next:{title:"CloudFront Lambda@Edge",permalink:"/docs/events/cloud-front"}},c={},s=[{value:"AWS Documentation",id:"aws-documentation",level:2},{value:"Example",id:"example",level:2}],p={toc:s},u="wrapper";function d(e){let{components:t,...n}=e;return(0,o.kt)(u,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("admonition",{type:"caution"},(0,o.kt)("p",{parentName:"admonition"},"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.")),(0,o.kt)("h2",{id:"aws-documentation"},"AWS Documentation"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://docs.aws.amazon.com/lambda/latest/dg/services-cloudformation.html"},"Using AWS Lambda with AWS CloudFormation"))),(0,o.kt)("h2",{id:"example"},"Example"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\n\nexport const handler = middy()\n .handler((event, context, {signal}) => {\n // ...\n })\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/796ad5a5.48948616.js b/assets/js/796ad5a5.48948616.js new file mode 100644 index 000000000..3a615bf24 --- /dev/null +++ b/assets/js/796ad5a5.48948616.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[6172],{5621:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>l,frontMatter:()=>a,metadata:()=>r,toc:()=>d});var o=n(5893),i=n(1151);const a={title:"AppSync"},s=void 0,r={id:"events/appsync",title:"AppSync",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/events/appsync.md",sourceDirName:"events",slug:"/events/appsync",permalink:"/docs/events/appsync",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/events/appsync.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",frontMatter:{title:"AppSync"},sidebar:"tutorialSidebar",previous:{title:"Application Load Balancer",permalink:"/docs/events/application-load-balancer"},next:{title:"CloudFormation",permalink:"/docs/events/cloud-formation"}},c={},d=[{value:"AWS Documentation",id:"aws-documentation",level:2},{value:"Example",id:"example",level:2}];function p(e){const t={a:"a",admonition:"admonition",code:"code",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,i.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.admonition,{type:"caution",children:(0,o.jsx)(t.p,{children:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub."})}),"\n",(0,o.jsx)(t.h2,{id:"aws-documentation",children:"AWS Documentation"}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsx)(t.li,{children:(0,o.jsx)(t.a,{href:"https://docs.aws.amazon.com/appsync/latest/devguide/resolver-context-reference.html",children:"Using AWS Lambda with AppSync"})}),"\n"]}),"\n",(0,o.jsx)(t.h2,{id:"example",children:"Example"}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-javascript",children:"import middy from '@middy/core'\n\nexport const handler = middy().handler((event, context, { signal }) => {\n // ...\n})\n"})})]})}function l(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(p,{...e})}):p(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>r,a:()=>s});var o=n(7294);const i={},a=o.createContext(i);function s(e){const t=o.useContext(a);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:s(e.components),o.createElement(a.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/796ad5a5.678cffcd.js b/assets/js/796ad5a5.678cffcd.js deleted file mode 100644 index e880facfe..000000000 --- a/assets/js/796ad5a5.678cffcd.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[6172],{3905:(e,t,n)=>{n.d(t,{Zo:()=>s,kt:()=>y});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function p(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var c=r.createContext({}),l=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},s=function(e){var t=l(e.components);return r.createElement(c.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,s=p(e,["components","mdxType","originalType","parentName"]),u=l(n),m=a,y=u["".concat(c,".").concat(m)]||u[m]||d[m]||o;return n?r.createElement(y,i(i({ref:t},s),{},{components:n})):r.createElement(y,i({ref:t},s))}));function y(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=m;var p={};for(var c in t)hasOwnProperty.call(t,c)&&(p[c]=t[c]);p.originalType=e,p[u]="string"==typeof e?e:a,i[1]=p;for(var l=2;l<o;l++)i[l]=n[l];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}m.displayName="MDXCreateElement"},4619:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>p,toc:()=>l});var r=n(7462),a=(n(7294),n(3905));const o={title:"AppSync"},i=void 0,p={unversionedId:"events/appsync",id:"events/appsync",title:"AppSync",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/events/appsync.md",sourceDirName:"events",slug:"/events/appsync",permalink:"/docs/events/appsync",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/events/appsync.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",frontMatter:{title:"AppSync"},sidebar:"tutorialSidebar",previous:{title:"Application Load Balancer",permalink:"/docs/events/application-load-balancer"},next:{title:"CloudFormation",permalink:"/docs/events/cloud-formation"}},c={},l=[{value:"AWS Documentation",id:"aws-documentation",level:2},{value:"Example",id:"example",level:2}],s={toc:l},u="wrapper";function d(e){let{components:t,...n}=e;return(0,a.kt)(u,(0,r.Z)({},s,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.")),(0,a.kt)("h2",{id:"aws-documentation"},"AWS Documentation"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://docs.aws.amazon.com/appsync/latest/devguide/resolver-context-reference.html"},"Using AWS Lambda with AppSync"))),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\n\nexport const handler = middy().handler((event, context, { signal }) => {\n // ...\n})\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7cb784f6.1d2f8128.js b/assets/js/7cb784f6.1d2f8128.js deleted file mode 100644 index 8859720fc..000000000 --- a/assets/js/7cb784f6.1d2f8128.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[711],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>m});var a=r(7294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function l(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function i(e,t){if(null==e)return{};var r,a,n=function(e,t){if(null==e)return{};var r,a,n={},o=Object.keys(e);for(a=0;a<o.length;a++)r=o[a],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)r=o[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=a.createContext({}),d=function(e){var t=a.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},p=function(e){var t=d(e.components);return a.createElement(s.Provider,{value:t},e.children)},u="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},h=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,s=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),u=d(r),h=n,m=u["".concat(s,".").concat(h)]||u[h]||c[h]||o;return r?a.createElement(m,l(l({ref:t},p),{},{components:r})):a.createElement(m,l({ref:t},p))}));function m(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,l=new Array(o);l[0]=h;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[u]="string"==typeof e?e:n,l[1]=i;for(var d=2;d<o;d++)l[d]=r[d];return a.createElement.apply(null,l)}return a.createElement.apply(null,r)}h.displayName="MDXCreateElement"},7124:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>c,frontMatter:()=>o,metadata:()=>i,toc:()=>d});var a=r(7462),n=(r(7294),r(3905));const o={title:"Upgrade 1.x -> 2.x",sidebar_position:1e3},l=void 0,i={unversionedId:"upgrade/1-2",id:"upgrade/1-2",title:"Upgrade 1.x -> 2.x",description:"Version 2.x of Middy no longer supports Node.js versions 10.x. You are highly encouraged to move to Node.js 14.x,",source:"@site/docs/upgrade/1-2.md",sourceDirName:"upgrade",slug:"/upgrade/1-2",permalink:"/docs/upgrade/1-2",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/upgrade/1-2.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",sidebarPosition:1e3,frontMatter:{title:"Upgrade 1.x -> 2.x",sidebar_position:1e3},sidebar:"tutorialSidebar",previous:{title:"Upgrade 2.x -> 3.x",permalink:"/docs/upgrade/2-3"},next:{title:"Upgrade 0.x -> 1.x",permalink:"/docs/upgrade/0-1"}},s={},d=[{value:"Core",id:"core",level:2},{value:"Middleware",id:"middleware",level:2},{value:"cache",id:"cache",level:3},{value:"db-manager",id:"db-manager",level:3},{value:"do-not-wait-for-empty-event-loop",id:"do-not-wait-for-empty-event-loop",level:3},{value:"function-shield",id:"function-shield",level:3},{value:"http-content-negotiation",id:"http-content-negotiation",level:3},{value:"http-cors",id:"http-cors",level:3},{value:"http-error-handler",id:"http-error-handler",level:3},{value:"http-event-normalizer",id:"http-event-normalizer",level:3},{value:"http-header-normalizer",id:"http-header-normalizer",level:3},{value:"http-json-body-parser",id:"http-json-body-parser",level:3},{value:"http-multipart-body-parser",id:"http-multipart-body-parser",level:3},{value:"http-partial-response",id:"http-partial-response",level:3},{value:"http-response-serializer",id:"http-response-serializer",level:3},{value:"http-security-headers",id:"http-security-headers",level:3},{value:"http-urlencode-body-parser",id:"http-urlencode-body-parser",level:3},{value:"http-urlencode-path-parser",id:"http-urlencode-path-parser",level:3},{value:"input-output-logger",id:"input-output-logger",level:3},{value:"rds-signer",id:"rds-signer",level:3},{value:"s3-key-normalizer",id:"s3-key-normalizer",level:3},{value:"s3-object-response",id:"s3-object-response",level:3},{value:"secrets-manager",id:"secrets-manager",level:3},{value:"sqs-json-body-parser",id:"sqs-json-body-parser",level:3},{value:"sqs-partial-batch-failure",id:"sqs-partial-batch-failure",level:3},{value:"ssm",id:"ssm",level:3},{value:"sts",id:"sts",level:3},{value:"validator",id:"validator",level:3},{value:"warmup",id:"warmup",level:3}],p={toc:d},u="wrapper";function c(e){let{components:t,...r}=e;return(0,n.kt)(u,(0,a.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"Version 2.x of Middy no longer supports Node.js versions 10.x. You are highly encouraged to move to Node.js 14.x,\nwhich support ES6 modules by default (",(0,n.kt)("inlineCode",{parentName:"p"},"export"),"), optional chaining (",(0,n.kt)("inlineCode",{parentName:"p"},"?."),") and nullish coalescing operator (",(0,n.kt)("inlineCode",{parentName:"p"},"??"),") natively."),(0,n.kt)("h2",{id:"core"},"Core"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"In handler ",(0,n.kt)("inlineCode",{parentName:"li"},"callback(err, response)")," have been removed for ",(0,n.kt)("inlineCode",{parentName:"li"},"async/await")," support",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"return response")," to trigger ",(0,n.kt)("inlineCode",{parentName:"li"},"after")," middleware stack"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"throw new Error(...)")," to trigger ",(0,n.kt)("inlineCode",{parentName:"li"},"onError")," middleware stack"))),(0,n.kt)("li",{parentName:"ul"},"In middleware ",(0,n.kt)("inlineCode",{parentName:"li"},"next(err)")," has been removed for ",(0,n.kt)("inlineCode",{parentName:"li"},"async/await")," support",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"throw new Error(...)")," to trigger ",(0,n.kt)("inlineCode",{parentName:"li"},"onError")," middleware stack"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"return response")," to ",(0,n.kt)("strong",{parentName:"li"},"short circuit")," any middleware stack and respond. v1.x currently throws an error when something is returned")))),(0,n.kt)("h2",{id:"middleware"},"Middleware"),(0,n.kt)("h3",{id:"cache"},"cache"),(0,n.kt)("p",null,"Deprecated. Too generic and had low usage."),(0,n.kt)("p",null,"However, you can use the following if needed:"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-javascript"},"const { createHash } = require('crypto')\n\nmodule.exports = (opts) => {\n const storage = {}\n const defaults = {\n calculateCacheId: async (event) => createHash('md5').update(JSON.stringify(event)).digest('hex'),\n getValue: async (key) => storage[key],\n setValue: async (key, value) => {\n storage[key] = value\n }\n }\n\n const options = { ...defaults, ...opts }\n let currentCacheKey\n\n const cacheMiddlewareBefore = async (request) => {\n const cacheKey = await options.calculateCacheId(request.event)\n const response = await options.getValue(cacheKey)\n if (response) {\n return response\n }\n request.internal.cacheKey = cacheKey\n }\n\n const cacheMiddlewareAfter = async (request) => {\n await options.setValue(request.internal.cacheKey, request.response)\n }\n \n return {\n before: cacheMiddlewareBefore,\n after: cacheMiddlewareAfter\n }\n}\n")),(0,n.kt)("h3",{id:"db-manager"},"db-manager"),(0,n.kt)("p",null,"Deprecated. Too generic and had low usage. You can check out ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/willfarrell/middy-rds"},"middy-rds")," as a\npossible alternative or example on building your own replacement."),(0,n.kt)("h3",{id:"do-not-wait-for-empty-event-loop"},(0,n.kt)("a",{parentName:"h3",href:"/docs/middlewares/do-not-wait-for-empty-event-loop"},"do-not-wait-for-empty-event-loop")),(0,n.kt)("p",null,"No change"),(0,n.kt)("h3",{id:"function-shield"},"function-shield"),(0,n.kt)("p",null,"Deprecated. Only supported up to Node v10."),(0,n.kt)("h3",{id:"http-content-negotiation"},(0,n.kt)("a",{parentName:"h3",href:"/docs/middlewares/http-content-negotiation"},"http-content-negotiation")),(0,n.kt)("p",null,"No change"),(0,n.kt)("h3",{id:"http-cors"},(0,n.kt)("a",{parentName:"h3",href:"/docs/middlewares/http-cors"},"http-cors")),(0,n.kt)("p",null,"Added new options to support more headers"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"methods"),(0,n.kt)("li",{parentName:"ul"},"exposeHeaders"),(0,n.kt)("li",{parentName:"ul"},"requestHeaders"),(0,n.kt)("li",{parentName:"ul"},"requestMethods")),(0,n.kt)("h3",{id:"http-error-handler"},(0,n.kt)("a",{parentName:"h3",href:"/docs/middlewares/http-error-handler"},"http-error-handler")),(0,n.kt)("p",null,"Added in support to honour httpError.expose. Errors with statusCode >= 500 are no longer applied to response by default.\nAdded new option to catch any non-http and statusCode >= 500 errors"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"fallbackMessage")),(0,n.kt)("h3",{id:"http-event-normalizer"},(0,n.kt)("a",{parentName:"h3",href:"/docs/middlewares/http-event-normalizer"},"http-event-normalizer")),(0,n.kt)("p",null,"No change"),(0,n.kt)("h3",{id:"http-header-normalizer"},(0,n.kt)("a",{parentName:"h3",href:"/docs/middlewares/http-header-normalizer"},"http-header-normalizer")),(0,n.kt)("p",null,"No change"),(0,n.kt)("h3",{id:"http-json-body-parser"},(0,n.kt)("a",{parentName:"h3",href:"/docs/middlewares/http-json-body-parser"},"http-json-body-parser")),(0,n.kt)("p",null,"No change"),(0,n.kt)("h3",{id:"http-multipart-body-parser"},(0,n.kt)("a",{parentName:"h3",href:"/docs/middlewares/http-multipart-body-parser"},"http-multipart-body-parser")),(0,n.kt)("p",null,"No change"),(0,n.kt)("h3",{id:"http-partial-response"},(0,n.kt)("a",{parentName:"h3",href:"/docs/middlewares/http-partial-response"},"http-partial-response")),(0,n.kt)("p",null,"No change"),(0,n.kt)("h3",{id:"http-response-serializer"},(0,n.kt)("a",{parentName:"h3",href:"/docs/middlewares/http-response-serializer"},"http-response-serializer")),(0,n.kt)("p",null,"No change"),(0,n.kt)("h3",{id:"http-security-headers"},(0,n.kt)("a",{parentName:"h3",href:"/docs/middlewares/http-security-headers"},"http-security-headers")),(0,n.kt)("p",null,"No longer adds ",(0,n.kt)("inlineCode",{parentName:"p"},"statusCode:500")," when there is no response."),(0,n.kt)("h3",{id:"http-urlencode-body-parser"},(0,n.kt)("a",{parentName:"h3",href:"/docs/middlewares/http-urlencode-body-parser"},"http-urlencode-body-parser")),(0,n.kt)("p",null,"Remove ",(0,n.kt)("inlineCode",{parentName:"p"},"extended")," option. Only uses ",(0,n.kt)("inlineCode",{parentName:"p"},"qs")," as the parser, formally enabled by options ",(0,n.kt)("inlineCode",{parentName:"p"},"{extended: true}"),"."),(0,n.kt)("h3",{id:"http-urlencode-path-parser"},(0,n.kt)("a",{parentName:"h3",href:"/docs/middlewares/http-urlencode-path-parser"},"http-urlencode-path-parser")),(0,n.kt)("p",null,"No change"),(0,n.kt)("h3",{id:"input-output-logger"},(0,n.kt)("a",{parentName:"h3",href:"/docs/middlewares/input-output-logger"},"input-output-logger")),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Now additionally logs response from the ",(0,n.kt)("inlineCode",{parentName:"li"},"onError")," middleware stack"),(0,n.kt)("li",{parentName:"ul"},"Support for omiting within nested arrays"),(0,n.kt)("li",{parentName:"ul"},"Add in support for ",(0,n.kt)("inlineCode",{parentName:"li"},"replacer")," to be passed into ",(0,n.kt)("inlineCode",{parentName:"li"},"JSON.stringify()"))),(0,n.kt)("h3",{id:"rds-signer"},(0,n.kt)("a",{parentName:"h3",href:"/docs/middlewares/rds-signer"},"rds-signer")),(0,n.kt)("p",null,"New middleware to fetch RDS credential used when connecting with IAM roles. This was built into ",(0,n.kt)("inlineCode",{parentName:"p"},"db-manager"),"."),(0,n.kt)("h3",{id:"s3-key-normalizer"},"s3-key-normalizer"),(0,n.kt)("p",null,"No change"),(0,n.kt)("h3",{id:"s3-object-response"},(0,n.kt)("a",{parentName:"h3",href:"/docs/middlewares/s3-object-response"},"s3-object-response")),(0,n.kt)("p",null,"New middleware to fetch and respond to S3 Object Get request event."),(0,n.kt)("h3",{id:"secrets-manager"},(0,n.kt)("a",{parentName:"h3",href:"/docs/middlewares/secrets-manager"},"secrets-manager")),(0,n.kt)("p",null,"Refactored, see documentation"),(0,n.kt)("h3",{id:"sqs-json-body-parser"},"sqs-json-body-parser"),(0,n.kt)("p",null,"No change"),(0,n.kt)("h3",{id:"sqs-partial-batch-failure"},(0,n.kt)("a",{parentName:"h3",href:"/docs/middlewares/sqs-partial-batch-failure"},"sqs-partial-batch-failure")),(0,n.kt)("p",null,"Replaced option ",(0,n.kt)("inlineCode",{parentName:"p"},"sqs")," with ",(0,n.kt)("inlineCode",{parentName:"p"},"AwsClient")," and added in more options for control."),(0,n.kt)("h3",{id:"ssm"},(0,n.kt)("a",{parentName:"h3",href:"/docs/middlewares/ssm"},"ssm")),(0,n.kt)("p",null,"Refactored, see documentation"),(0,n.kt)("h3",{id:"sts"},(0,n.kt)("a",{parentName:"h3",href:"/docs/middlewares/sts"},"sts")),(0,n.kt)("p",null,"New middleware to fetch assume role credentials."),(0,n.kt)("h3",{id:"validator"},(0,n.kt)("a",{parentName:"h3",href:"/docs/middlewares/validator"},"validator")),(0,n.kt)("p",null,"Upgraded ",(0,n.kt)("inlineCode",{parentName:"p"},"ajv")," and it's plugins to support JSON Schema Draft 2020-12 specification. Defaults were change because of this."),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Plugin ",(0,n.kt)("inlineCode",{parentName:"li"},"ajv-keywords")," removed from being included by default because it's quite a large package and usually only one keyword is used."),(0,n.kt)("li",{parentName:"ul"},"Plugin ",(0,n.kt)("inlineCode",{parentName:"li"},"ajv-errors")," removed from included by default because it conflicts with ",(0,n.kt)("inlineCode",{parentName:"li"},"ajv-i18n")," when dealing with custom messages for multiple languages")),(0,n.kt)("h3",{id:"warmup"},"warmup"),(0,n.kt)("p",null,"Deprecated. This was a work round for a missing feature in AWS Lambda. AWS added in the ability to use ",(0,n.kt)("a",{parentName:"p",href:"https://aws.amazon.com/blogs/aws/new-provisioned-concurrency-for-lambda-functions/"},"provisioned concurrency"),"\non 2019-12-03, removing the need for this work around."),(0,n.kt)("p",null,"However, you can use the following if needed:"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-javascript"},"middy(lambdaHandler)\n .before((request) => {\n if (request.event.source === 'serverless-plugin-warmup') {\n console.log('Exiting early via warmup Middleware')\n return 'warmup'\n }\n })\n")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7cb784f6.f1547972.js b/assets/js/7cb784f6.f1547972.js new file mode 100644 index 000000000..edc9e9b23 --- /dev/null +++ b/assets/js/7cb784f6.f1547972.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[711],{4122:(e,r,n)=>{n.r(r),n.d(r,{assets:()=>l,contentTitle:()=>i,default:()=>h,frontMatter:()=>t,metadata:()=>a,toc:()=>o});var s=n(5893),d=n(1151);const t={title:"Upgrade 1.x -> 2.x",sidebar_position:1e3},i=void 0,a={id:"upgrade/1-2",title:"Upgrade 1.x -> 2.x",description:'aka "The async/await Update"',source:"@site/docs/upgrade/1-2.md",sourceDirName:"upgrade",slug:"/upgrade/1-2",permalink:"/docs/upgrade/1-2",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/upgrade/1-2.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",sidebarPosition:1e3,frontMatter:{title:"Upgrade 1.x -> 2.x",sidebar_position:1e3},sidebar:"tutorialSidebar",previous:{title:"Upgrade 2.x -> 3.x",permalink:"/docs/upgrade/2-3"},next:{title:"Upgrade 0.x -> 1.x",permalink:"/docs/upgrade/0-1"}},l={},o=[{value:"Core",id:"core",level:2},{value:"Middleware",id:"middleware",level:2},{value:"cache",id:"cache",level:3},{value:"db-manager",id:"db-manager",level:3},{value:"do-not-wait-for-empty-event-loop",id:"do-not-wait-for-empty-event-loop",level:3},{value:"function-shield",id:"function-shield",level:3},{value:"http-content-negotiation",id:"http-content-negotiation",level:3},{value:"http-cors",id:"http-cors",level:3},{value:"http-error-handler",id:"http-error-handler",level:3},{value:"http-event-normalizer",id:"http-event-normalizer",level:3},{value:"http-header-normalizer",id:"http-header-normalizer",level:3},{value:"http-json-body-parser",id:"http-json-body-parser",level:3},{value:"http-multipart-body-parser",id:"http-multipart-body-parser",level:3},{value:"http-partial-response",id:"http-partial-response",level:3},{value:"http-response-serializer",id:"http-response-serializer",level:3},{value:"http-security-headers",id:"http-security-headers",level:3},{value:"http-urlencode-body-parser",id:"http-urlencode-body-parser",level:3},{value:"http-urlencode-path-parser",id:"http-urlencode-path-parser",level:3},{value:"input-output-logger",id:"input-output-logger",level:3},{value:"rds-signer",id:"rds-signer",level:3},{value:"s3-key-normalizer",id:"s3-key-normalizer",level:3},{value:"s3-object-response",id:"s3-object-response",level:3},{value:"secrets-manager",id:"secrets-manager",level:3},{value:"sqs-json-body-parser",id:"sqs-json-body-parser",level:3},{value:"sqs-partial-batch-failure",id:"sqs-partial-batch-failure",level:3},{value:"ssm",id:"ssm",level:3},{value:"sts",id:"sts",level:3},{value:"validator",id:"validator",level:3},{value:"warmup",id:"warmup",level:3}];function c(e){const r={a:"a",code:"code",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,d.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(r.p,{children:'aka "The async/await Update"'}),"\n",(0,s.jsxs)(r.p,{children:["Version 2.x of Middy no longer supports Node.js versions 10.x. You are highly encouraged to move to Node.js 14.x,\nwhich support ES6 modules by default (",(0,s.jsx)(r.code,{children:"export"}),"), optional chaining (",(0,s.jsx)(r.code,{children:"?."}),") and nullish coalescing operator (",(0,s.jsx)(r.code,{children:"??"}),") natively."]}),"\n",(0,s.jsx)(r.h2,{id:"core",children:"Core"}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:["In handler ",(0,s.jsx)(r.code,{children:"callback(err, response)"})," have been removed for ",(0,s.jsx)(r.code,{children:"async/await"})," support","\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:[(0,s.jsx)(r.code,{children:"return response"})," to trigger ",(0,s.jsx)(r.code,{children:"after"})," middleware stack"]}),"\n",(0,s.jsxs)(r.li,{children:[(0,s.jsx)(r.code,{children:"throw new Error(...)"})," to trigger ",(0,s.jsx)(r.code,{children:"onError"})," middleware stack"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(r.li,{children:["In middleware ",(0,s.jsx)(r.code,{children:"next(err)"})," has been removed for ",(0,s.jsx)(r.code,{children:"async/await"})," support","\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:[(0,s.jsx)(r.code,{children:"throw new Error(...)"})," to trigger ",(0,s.jsx)(r.code,{children:"onError"})," middleware stack"]}),"\n",(0,s.jsxs)(r.li,{children:[(0,s.jsx)(r.code,{children:"return response"})," to ",(0,s.jsx)(r.strong,{children:"short circuit"})," any middleware stack and respond. v1.x currently throws an error when something is returned"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(r.h2,{id:"middleware",children:"Middleware"}),"\n",(0,s.jsx)(r.h3,{id:"cache",children:"cache"}),"\n",(0,s.jsx)(r.p,{children:"Deprecated. Too generic and had low usage."}),"\n",(0,s.jsx)(r.p,{children:"However, you can use the following if needed:"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-javascript",children:"const { createHash } = require('crypto')\n\nmodule.exports = (opts) => {\n const storage = {}\n const defaults = {\n calculateCacheId: async (event) =>\n createHash('md5').update(JSON.stringify(event)).digest('hex'),\n getValue: async (key) => storage[key],\n setValue: async (key, value) => {\n storage[key] = value\n }\n }\n\n const options = { ...defaults, ...opts }\n let currentCacheKey\n\n const cacheMiddlewareBefore = async (request) => {\n const cacheKey = await options.calculateCacheId(request.event)\n const response = await options.getValue(cacheKey)\n if (response) {\n return response\n }\n request.internal.cacheKey = cacheKey\n }\n\n const cacheMiddlewareAfter = async (request) => {\n await options.setValue(request.internal.cacheKey, request.response)\n }\n\n return {\n before: cacheMiddlewareBefore,\n after: cacheMiddlewareAfter\n }\n}\n"})}),"\n",(0,s.jsx)(r.h3,{id:"db-manager",children:"db-manager"}),"\n",(0,s.jsxs)(r.p,{children:["Deprecated. Too generic and had low usage. You can check out ",(0,s.jsx)(r.a,{href:"https://github.com/willfarrell/middy-rds",children:"middy-rds"})," as a\npossible alternative or example on building your own replacement."]}),"\n",(0,s.jsx)(r.h3,{id:"do-not-wait-for-empty-event-loop",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/do-not-wait-for-empty-event-loop",children:"do-not-wait-for-empty-event-loop"})}),"\n",(0,s.jsx)(r.p,{children:"No change"}),"\n",(0,s.jsx)(r.h3,{id:"function-shield",children:"function-shield"}),"\n",(0,s.jsx)(r.p,{children:"Deprecated. Only supported up to Node v10."}),"\n",(0,s.jsx)(r.h3,{id:"http-content-negotiation",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/http-content-negotiation",children:"http-content-negotiation"})}),"\n",(0,s.jsx)(r.p,{children:"No change"}),"\n",(0,s.jsx)(r.h3,{id:"http-cors",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/http-cors",children:"http-cors"})}),"\n",(0,s.jsx)(r.p,{children:"Added new options to support more headers"}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsx)(r.li,{children:"methods"}),"\n",(0,s.jsx)(r.li,{children:"exposeHeaders"}),"\n",(0,s.jsx)(r.li,{children:"requestHeaders"}),"\n",(0,s.jsx)(r.li,{children:"requestMethods"}),"\n"]}),"\n",(0,s.jsx)(r.h3,{id:"http-error-handler",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/http-error-handler",children:"http-error-handler"})}),"\n",(0,s.jsx)(r.p,{children:"Added in support to honour httpError.expose. Errors with statusCode >= 500 are no longer applied to response by default.\nAdded new option to catch any non-http and statusCode >= 500 errors"}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsx)(r.li,{children:"fallbackMessage"}),"\n"]}),"\n",(0,s.jsx)(r.h3,{id:"http-event-normalizer",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/http-event-normalizer",children:"http-event-normalizer"})}),"\n",(0,s.jsx)(r.p,{children:"No change"}),"\n",(0,s.jsx)(r.h3,{id:"http-header-normalizer",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/http-header-normalizer",children:"http-header-normalizer"})}),"\n",(0,s.jsx)(r.p,{children:"No change"}),"\n",(0,s.jsx)(r.h3,{id:"http-json-body-parser",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/http-json-body-parser",children:"http-json-body-parser"})}),"\n",(0,s.jsx)(r.p,{children:"No change"}),"\n",(0,s.jsx)(r.h3,{id:"http-multipart-body-parser",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/http-multipart-body-parser",children:"http-multipart-body-parser"})}),"\n",(0,s.jsx)(r.p,{children:"No change"}),"\n",(0,s.jsx)(r.h3,{id:"http-partial-response",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/http-partial-response",children:"http-partial-response"})}),"\n",(0,s.jsx)(r.p,{children:"No change"}),"\n",(0,s.jsx)(r.h3,{id:"http-response-serializer",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/http-response-serializer",children:"http-response-serializer"})}),"\n",(0,s.jsx)(r.p,{children:"No change"}),"\n",(0,s.jsx)(r.h3,{id:"http-security-headers",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/http-security-headers",children:"http-security-headers"})}),"\n",(0,s.jsxs)(r.p,{children:["No longer adds ",(0,s.jsx)(r.code,{children:"statusCode:500"})," when there is no response."]}),"\n",(0,s.jsx)(r.h3,{id:"http-urlencode-body-parser",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/http-urlencode-body-parser",children:"http-urlencode-body-parser"})}),"\n",(0,s.jsxs)(r.p,{children:["Remove ",(0,s.jsx)(r.code,{children:"extended"})," option. Only uses ",(0,s.jsx)(r.code,{children:"qs"})," as the parser, formally enabled by options ",(0,s.jsx)(r.code,{children:"{extended: true}"}),"."]}),"\n",(0,s.jsx)(r.h3,{id:"http-urlencode-path-parser",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/http-urlencode-path-parser",children:"http-urlencode-path-parser"})}),"\n",(0,s.jsx)(r.p,{children:"No change"}),"\n",(0,s.jsx)(r.h3,{id:"input-output-logger",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/input-output-logger",children:"input-output-logger"})}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:["Now additionally logs response from the ",(0,s.jsx)(r.code,{children:"onError"})," middleware stack"]}),"\n",(0,s.jsx)(r.li,{children:"Support for omiting within nested arrays"}),"\n",(0,s.jsxs)(r.li,{children:["Add in support for ",(0,s.jsx)(r.code,{children:"replacer"})," to be passed into ",(0,s.jsx)(r.code,{children:"JSON.stringify()"})]}),"\n"]}),"\n",(0,s.jsx)(r.h3,{id:"rds-signer",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/rds-signer",children:"rds-signer"})}),"\n",(0,s.jsxs)(r.p,{children:["New middleware to fetch RDS credential used when connecting with IAM roles. This was built into ",(0,s.jsx)(r.code,{children:"db-manager"}),"."]}),"\n",(0,s.jsx)(r.h3,{id:"s3-key-normalizer",children:"s3-key-normalizer"}),"\n",(0,s.jsx)(r.p,{children:"No change"}),"\n",(0,s.jsx)(r.h3,{id:"s3-object-response",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/s3-object-response",children:"s3-object-response"})}),"\n",(0,s.jsx)(r.p,{children:"New middleware to fetch and respond to S3 Object Get request event."}),"\n",(0,s.jsx)(r.h3,{id:"secrets-manager",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/secrets-manager",children:"secrets-manager"})}),"\n",(0,s.jsx)(r.p,{children:"Refactored, see documentation"}),"\n",(0,s.jsx)(r.h3,{id:"sqs-json-body-parser",children:"sqs-json-body-parser"}),"\n",(0,s.jsx)(r.p,{children:"No change"}),"\n",(0,s.jsx)(r.h3,{id:"sqs-partial-batch-failure",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/sqs-partial-batch-failure",children:"sqs-partial-batch-failure"})}),"\n",(0,s.jsxs)(r.p,{children:["Replaced option ",(0,s.jsx)(r.code,{children:"sqs"})," with ",(0,s.jsx)(r.code,{children:"AwsClient"})," and added in more options for control."]}),"\n",(0,s.jsx)(r.h3,{id:"ssm",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/ssm",children:"ssm"})}),"\n",(0,s.jsx)(r.p,{children:"Refactored, see documentation"}),"\n",(0,s.jsx)(r.h3,{id:"sts",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/sts",children:"sts"})}),"\n",(0,s.jsx)(r.p,{children:"New middleware to fetch assume role credentials."}),"\n",(0,s.jsx)(r.h3,{id:"validator",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/validator",children:"validator"})}),"\n",(0,s.jsxs)(r.p,{children:["Upgraded ",(0,s.jsx)(r.code,{children:"ajv"})," and it's plugins to support JSON Schema Draft 2020-12 specification. Defaults were change because of this."]}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:["Plugin ",(0,s.jsx)(r.code,{children:"ajv-keywords"})," removed from being included by default because it's quite a large package and usually only one keyword is used."]}),"\n",(0,s.jsxs)(r.li,{children:["Plugin ",(0,s.jsx)(r.code,{children:"ajv-errors"})," removed from included by default because it conflicts with ",(0,s.jsx)(r.code,{children:"ajv-i18n"})," when dealing with custom messages for multiple languages"]}),"\n"]}),"\n",(0,s.jsx)(r.h3,{id:"warmup",children:"warmup"}),"\n",(0,s.jsxs)(r.p,{children:["Deprecated. This was a work round for a missing feature in AWS Lambda. AWS added in the ability to use ",(0,s.jsx)(r.a,{href:"https://aws.amazon.com/blogs/aws/new-provisioned-concurrency-for-lambda-functions/",children:"provisioned concurrency"}),"\non 2019-12-03, removing the need for this work around."]}),"\n",(0,s.jsx)(r.p,{children:"However, you can use the following if needed:"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-javascript",children:"middy(lambdaHandler).before((request) => {\n if (request.event.source === 'serverless-plugin-warmup') {\n console.log('Exiting early via warmup Middleware')\n return 'warmup'\n }\n})\n"})})]})}function h(e={}){const{wrapper:r}={...(0,d.a)(),...e.components};return r?(0,s.jsx)(r,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},1151:(e,r,n)=>{n.d(r,{Z:()=>a,a:()=>i});var s=n(7294);const d={},t=s.createContext(d);function i(e){const r=s.useContext(t);return s.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function a(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(d):e.components||d:i(e.components),s.createElement(t.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/817.acd323f2.js b/assets/js/817.acd323f2.js deleted file mode 100644 index f8f738667..000000000 --- a/assets/js/817.acd323f2.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[817],{3905:(e,n,t)=>{t.d(n,{Zo:()=>m,kt:()=>p});var a=t(7294);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function l(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?i(Object(t),!0).forEach((function(n){r(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):i(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function o(e,n){if(null==e)return{};var t,a,r=function(e,n){if(null==e)return{};var t,a,r={},i=Object.keys(e);for(a=0;a<i.length;a++)t=i[a],n.indexOf(t)>=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)t=i[a],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var c=a.createContext({}),s=function(e){var n=a.useContext(c),t=n;return e&&(t="function"==typeof e?e(n):l(l({},n),e)),t},m=function(e){var n=s(e.components);return a.createElement(c.Provider,{value:n},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},f=a.forwardRef((function(e,n){var t=e.components,r=e.mdxType,i=e.originalType,c=e.parentName,m=o(e,["components","mdxType","originalType","parentName"]),d=s(t),f=r,p=d["".concat(c,".").concat(f)]||d[f]||u[f]||i;return t?a.createElement(p,l(l({ref:n},m),{},{components:t})):a.createElement(p,l({ref:n},m))}));function p(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var i=t.length,l=new Array(i);l[0]=f;var o={};for(var c in n)hasOwnProperty.call(n,c)&&(o[c]=n[c]);o.originalType=e,o[d]="string"==typeof e?e:r,l[1]=o;for(var s=2;s<i;s++)l[s]=t[s];return a.createElement.apply(null,l)}return a.createElement.apply(null,t)}f.displayName="MDXCreateElement"},2503:(e,n,t)=>{t.d(n,{Z:()=>m});var a=t(7462),r=t(7294),i=t(6010),l=t(5999),o=t(6668),c=t(9960);const s={anchorWithStickyNavbar:"anchorWithStickyNavbar_LWe7",anchorWithHideOnScrollNavbar:"anchorWithHideOnScrollNavbar_WYt5"};function m(e){let{as:n,id:t,...m}=e;const{navbar:{hideOnScroll:d}}=(0,o.L)();if("h1"===n||!t)return r.createElement(n,(0,a.Z)({},m,{id:void 0}));const u=(0,l.I)({id:"theme.common.headingLinkTitle",message:"Direct link to {heading}",description:"Title for link to heading"},{heading:"string"==typeof m.children?m.children:t});return r.createElement(n,(0,a.Z)({},m,{className:(0,i.Z)("anchor",d?s.anchorWithHideOnScrollNavbar:s.anchorWithStickyNavbar,m.className),id:t}),m.children,r.createElement(c.Z,{className:"hash-link",to:`#${t}`,"aria-label":u,title:u},"\u200b"))}},3140:(e,n,t)=>{t.d(n,{Z:()=>M});var a=t(7294),r=t(3905),i=t(7462),l=t(5742);var o=t(614);var c=t(9960);var s=t(6010),m=t(2389),d=t(6043);const u={details:"details_lb9f",isBrowser:"isBrowser_bmU9",collapsibleContent:"collapsibleContent_i85q"};function f(e){return!!e&&("SUMMARY"===e.tagName||f(e.parentElement))}function p(e,n){return!!e&&(e===n||p(e.parentElement,n))}function h(e){let{summary:n,children:t,...r}=e;const l=(0,m.Z)(),o=(0,a.useRef)(null),{collapsed:c,setCollapsed:h}=(0,d.u)({initialState:!r.open}),[v,g]=(0,a.useState)(r.open),b=a.isValidElement(n)?n:a.createElement("summary",null,n??"Details");return a.createElement("details",(0,i.Z)({},r,{ref:o,open:v,"data-collapsed":c,className:(0,s.Z)(u.details,l&&u.isBrowser,r.className),onMouseDown:e=>{f(e.target)&&e.detail>1&&e.preventDefault()},onClick:e=>{e.stopPropagation();const n=e.target;f(n)&&p(n,o.current)&&(e.preventDefault(),c?(h(!1),g(!0)):h(!0))}}),b,a.createElement(d.z,{lazy:!1,collapsed:c,disableSSRStyle:!0,onCollapseTransitionEnd:e=>{h(e),g(!e)}},a.createElement("div",{className:u.collapsibleContent},t)))}const v={details:"details_b_Ee"},g="alert alert--info";function b(e){let{...n}=e;return a.createElement(h,(0,i.Z)({},n,{className:(0,s.Z)(g,v.details,n.className)}))}var E=t(2503);function y(e){return a.createElement(E.Z,e)}const C={containsTaskList:"containsTaskList_mC6p"};function N(e){if(void 0!==e)return(0,s.Z)(e,e?.includes("contains-task-list")&&C.containsTaskList)}const L={img:"img_ev3q"};var O=t(5281),Z=t(5999);const k="admonition_LlT9",x="admonitionHeading_tbUL",H="admonitionIcon_kALy",T="admonitionContent_S0QG";const w={note:{infimaClassName:"secondary",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 14 16"},a.createElement("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"}))},label:a.createElement(Z.Z,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)"},"note")},tip:{infimaClassName:"success",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 12 16"},a.createElement("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"}))},label:a.createElement(Z.Z,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)"},"tip")},danger:{infimaClassName:"danger",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 12 16"},a.createElement("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"}))},label:a.createElement(Z.Z,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)"},"danger")},info:{infimaClassName:"info",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 14 16"},a.createElement("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"}))},label:a.createElement(Z.Z,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)"},"info")},caution:{infimaClassName:"warning",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 16 16"},a.createElement("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"}))},label:a.createElement(Z.Z,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)"},"caution")}},_={secondary:"note",important:"info",success:"tip",warning:"danger"};function S(e){const{mdxAdmonitionTitle:n,rest:t}=function(e){const n=a.Children.toArray(e),t=n.find((e=>a.isValidElement(e)&&"mdxAdmonitionTitle"===e.props?.mdxType)),r=a.createElement(a.Fragment,null,n.filter((e=>e!==t)));return{mdxAdmonitionTitle:t,rest:r}}(e.children);return{...e,title:e.title??n,children:t}}const z={head:function(e){const n=a.Children.map(e.children,(e=>a.isValidElement(e)?function(e){if(e.props?.mdxType&&e.props.originalType){const{mdxType:n,originalType:t,...r}=e.props;return a.createElement(e.props.originalType,r)}return e}(e):e));return a.createElement(l.Z,e,n)},code:function(e){const n=["a","abbr","b","br","button","cite","code","del","dfn","em","i","img","input","ins","kbd","label","object","output","q","ruby","s","small","span","strong","sub","sup","time","u","var","wbr"];return a.Children.toArray(e.children).every((e=>"string"==typeof e&&!e.includes("\n")||(0,a.isValidElement)(e)&&n.includes(e.props?.mdxType)))?a.createElement("code",e):a.createElement(o.Z,e)},a:function(e){return a.createElement(c.Z,e)},pre:function(e){return a.createElement(o.Z,(0,a.isValidElement)(e.children)&&"code"===e.children.props?.originalType?e.children.props:{...e})},details:function(e){const n=a.Children.toArray(e.children),t=n.find((e=>a.isValidElement(e)&&"summary"===e.props?.mdxType)),r=a.createElement(a.Fragment,null,n.filter((e=>e!==t)));return a.createElement(b,(0,i.Z)({},e,{summary:t}),r)},ul:function(e){return a.createElement("ul",(0,i.Z)({},e,{className:N(e.className)}))},img:function(e){return a.createElement("img",(0,i.Z)({loading:"lazy"},e,{className:(n=e.className,(0,s.Z)(n,L.img))}));var n},h1:e=>a.createElement(y,(0,i.Z)({as:"h1"},e)),h2:e=>a.createElement(y,(0,i.Z)({as:"h2"},e)),h3:e=>a.createElement(y,(0,i.Z)({as:"h3"},e)),h4:e=>a.createElement(y,(0,i.Z)({as:"h4"},e)),h5:e=>a.createElement(y,(0,i.Z)({as:"h5"},e)),h6:e=>a.createElement(y,(0,i.Z)({as:"h6"},e)),admonition:function(e){const{children:n,type:t,title:r,icon:i}=S(e),l=function(e){const n=_[e]??e,t=w[n];return t||(console.warn(`No admonition config found for admonition type "${n}". Using Info as fallback.`),w.info)}(t),o=r??l.label,{iconComponent:c}=l,m=i??a.createElement(c,null);return a.createElement("div",{className:(0,s.Z)(O.k.common.admonition,O.k.common.admonitionType(e.type),"alert",`alert--${l.infimaClassName}`,k)},a.createElement("div",{className:x},a.createElement("span",{className:H},m),o),a.createElement("div",{className:T},n))},mermaid:()=>null};function M(e){let{children:n}=e;return a.createElement(r.Zo,{components:z},n)}},9407:(e,n,t)=>{t.d(n,{Z:()=>m});var a=t(7462),r=t(7294),i=t(6010),l=t(3743);const o={tableOfContents:"tableOfContents_bqdL",docItemContainer:"docItemContainer_F8PC"},c="table-of-contents__link toc-highlight",s="table-of-contents__link--active";function m(e){let{className:n,...t}=e;return r.createElement("div",{className:(0,i.Z)(o.tableOfContents,"thin-scrollbar",n)},r.createElement(l.Z,(0,a.Z)({},t,{linkClassName:c,linkActiveClassName:s})))}},3743:(e,n,t)=>{t.d(n,{Z:()=>p});var a=t(7462),r=t(7294),i=t(6668);function l(e){const n=e.map((e=>({...e,parentIndex:-1,children:[]}))),t=Array(7).fill(-1);n.forEach(((e,n)=>{const a=t.slice(2,e.level);e.parentIndex=Math.max(...a),t[e.level]=n}));const a=[];return n.forEach((e=>{const{parentIndex:t,...r}=e;t>=0?n[t].children.push(r):a.push(r)})),a}function o(e){let{toc:n,minHeadingLevel:t,maxHeadingLevel:a}=e;return n.flatMap((e=>{const n=o({toc:e.children,minHeadingLevel:t,maxHeadingLevel:a});return function(e){return e.level>=t&&e.level<=a}(e)?[{...e,children:n}]:n}))}function c(e){const n=e.getBoundingClientRect();return n.top===n.bottom?c(e.parentNode):n}function s(e,n){let{anchorTopOffset:t}=n;const a=e.find((e=>c(e).top>=t));if(a){return function(e){return e.top>0&&e.bottom<window.innerHeight/2}(c(a))?a:e[e.indexOf(a)-1]??null}return e[e.length-1]??null}function m(){const e=(0,r.useRef)(0),{navbar:{hideOnScroll:n}}=(0,i.L)();return(0,r.useEffect)((()=>{e.current=n?0:document.querySelector(".navbar").clientHeight}),[n]),e}function d(e){const n=(0,r.useRef)(void 0),t=m();(0,r.useEffect)((()=>{if(!e)return()=>{};const{linkClassName:a,linkActiveClassName:r,minHeadingLevel:i,maxHeadingLevel:l}=e;function o(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(a),o=function(e){let{minHeadingLevel:n,maxHeadingLevel:t}=e;const a=[];for(let r=n;r<=t;r+=1)a.push(`h${r}.anchor`);return Array.from(document.querySelectorAll(a.join()))}({minHeadingLevel:i,maxHeadingLevel:l}),c=s(o,{anchorTopOffset:t.current}),m=e.find((e=>c&&c.id===function(e){return decodeURIComponent(e.href.substring(e.href.indexOf("#")+1))}(e)));e.forEach((e=>{!function(e,t){t?(n.current&&n.current!==e&&n.current.classList.remove(r),e.classList.add(r),n.current=e):e.classList.remove(r)}(e,e===m)}))}return document.addEventListener("scroll",o),document.addEventListener("resize",o),o(),()=>{document.removeEventListener("scroll",o),document.removeEventListener("resize",o)}}),[e,t])}function u(e){let{toc:n,className:t,linkClassName:a,isChild:i}=e;return n.length?r.createElement("ul",{className:i?void 0:t},n.map((e=>r.createElement("li",{key:e.id},r.createElement("a",{href:`#${e.id}`,className:a??void 0,dangerouslySetInnerHTML:{__html:e.value}}),r.createElement(u,{isChild:!0,toc:e.children,className:t,linkClassName:a}))))):null}const f=r.memo(u);function p(e){let{toc:n,className:t="table-of-contents table-of-contents__left-border",linkClassName:c="table-of-contents__link",linkActiveClassName:s,minHeadingLevel:m,maxHeadingLevel:u,...p}=e;const h=(0,i.L)(),v=m??h.tableOfContents.minHeadingLevel,g=u??h.tableOfContents.maxHeadingLevel,b=function(e){let{toc:n,minHeadingLevel:t,maxHeadingLevel:a}=e;return(0,r.useMemo)((()=>o({toc:l(n),minHeadingLevel:t,maxHeadingLevel:a})),[n,t,a])}({toc:n,minHeadingLevel:v,maxHeadingLevel:g});return d((0,r.useMemo)((()=>{if(c&&s)return{linkClassName:c,linkActiveClassName:s,minHeadingLevel:v,maxHeadingLevel:g}}),[c,s,v,g])),r.createElement(f,(0,a.Z)({toc:b,className:t,linkClassName:c},p))}}}]); \ No newline at end of file diff --git a/assets/js/89ce8835.11025618.js b/assets/js/89ce8835.11025618.js deleted file mode 100644 index 6b106c4f6..000000000 --- a/assets/js/89ce8835.11025618.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[1955],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>f});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=r.createContext({}),s=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=s(e.components);return r.createElement(l.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),u=s(n),m=o,f=u["".concat(l,".").concat(m)]||u[m]||d[m]||a;return n?r.createElement(f,i(i({ref:t},p),{},{components:n})):r.createElement(f,i({ref:t},p))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=m;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[u]="string"==typeof e?e:o,i[1]=c;for(var s=2;s<a;s++)i[s]=n[s];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}m.displayName="MDXCreateElement"},8086:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>s});var r=n(7462),o=(n(7294),n(3905));const a={title:"Cognito"},i=void 0,c={unversionedId:"events/cognito",id:"events/cognito",title:"Cognito",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/events/cognito.md",sourceDirName:"events",slug:"/events/cognito",permalink:"/docs/events/cognito",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/events/cognito.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",frontMatter:{title:"Cognito"},sidebar:"tutorialSidebar",previous:{title:"CodePipeline",permalink:"/docs/events/code-pipeline"},next:{title:"Config",permalink:"/docs/events/config"}},l={},s=[{value:"AWS Documentation",id:"aws-documentation",level:2},{value:"Example",id:"example",level:2}],p={toc:s},u="wrapper";function d(e){let{components:t,...n}=e;return(0,o.kt)(u,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("admonition",{type:"caution"},(0,o.kt)("p",{parentName:"admonition"},"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.")),(0,o.kt)("h2",{id:"aws-documentation"},"AWS Documentation"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://docs.aws.amazon.com/lambda/latest/dg/services-cognito.html"},"Using AWS Lambda with Amazon Cognito"))),(0,o.kt)("h2",{id:"example"},"Example"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\n\nexport const handler = middy()\n .handler((event, context, {signal}) => {\n // ...\n })\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/89ce8835.2c537261.js b/assets/js/89ce8835.2c537261.js new file mode 100644 index 000000000..bc1a44801 --- /dev/null +++ b/assets/js/89ce8835.2c537261.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[1955],{3596:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>p,frontMatter:()=>s,metadata:()=>r,toc:()=>d});var o=n(5893),i=n(1151);const s={title:"Cognito"},a=void 0,r={id:"events/cognito",title:"Cognito",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/events/cognito.md",sourceDirName:"events",slug:"/events/cognito",permalink:"/docs/events/cognito",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/events/cognito.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",frontMatter:{title:"Cognito"},sidebar:"tutorialSidebar",previous:{title:"CodePipeline",permalink:"/docs/events/code-pipeline"},next:{title:"Config",permalink:"/docs/events/config"}},c={},d=[{value:"AWS Documentation",id:"aws-documentation",level:2},{value:"Example",id:"example",level:2}];function l(e){const t={a:"a",admonition:"admonition",code:"code",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,i.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.admonition,{type:"caution",children:(0,o.jsx)(t.p,{children:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub."})}),"\n",(0,o.jsx)(t.h2,{id:"aws-documentation",children:"AWS Documentation"}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsx)(t.li,{children:(0,o.jsx)(t.a,{href:"https://docs.aws.amazon.com/lambda/latest/dg/services-cognito.html",children:"Using AWS Lambda with Amazon Cognito"})}),"\n"]}),"\n",(0,o.jsx)(t.h2,{id:"example",children:"Example"}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-javascript",children:"import middy from '@middy/core'\n\nexport const handler = middy()\n .handler((event, context, {signal}) => {\n // ...\n })\n"})})]})}function p(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(l,{...e})}):l(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>r,a:()=>a});var o=n(7294);const i={},s=o.createContext(i);function a(e){const t=o.useContext(s);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),o.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/9286.2ea53de4.js b/assets/js/9286.2ea53de4.js new file mode 100644 index 000000000..7ae2db4a8 --- /dev/null +++ b/assets/js/9286.2ea53de4.js @@ -0,0 +1 @@ +(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[9286],{9286:(e,t,n)=>{"use strict";n.d(t,{Z:()=>Z});var o=n(7294),s=n(2389),c=n(6010),a=n(2949),r=n(6668);function l(){const{prism:e}=(0,r.L)(),{colorMode:t}=(0,a.I)(),n=e.theme,o=e.darkTheme||n;return"dark"===t?o:n}var i=n(5281),d=n(7594),u=n.n(d);const m=/title=(?<quote>["'])(?<title>.*?)\1/,p=/\{(?<range>[\d,-]+)\}/,b={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"\x3c!--",end:"--\x3e"},lua:{start:"--",end:""},wasm:{start:"\\;\\;",end:""},tex:{start:"%",end:""}};function h(e,t){const n=e.map((e=>{const{start:n,end:o}=b[e];return`(?:${n}\\s*(${t.flatMap((e=>[e.line,e.block?.start,e.block?.end].filter(Boolean))).join("|")})\\s*${o})`})).join("|");return new RegExp(`^\\s*(?:${n})\\s*$`)}function f(e,t){let n=e.replace(/\n$/,"");const{language:o,magicComments:s,metastring:c}=t;if(c&&p.test(c)){const e=c.match(p).groups.range;if(0===s.length)throw new Error(`A highlight range has been given in code block's metastring (\`\`\` ${c}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);const t=s[0].className,o=u()(e).filter((e=>e>0)).map((e=>[e-1,[t]]));return{lineClassNames:Object.fromEntries(o),code:n}}if(void 0===o)return{lineClassNames:{},code:n};const a=function(e,t){switch(e){case"js":case"javascript":case"ts":case"typescript":return h(["js","jsBlock"],t);case"jsx":case"tsx":return h(["js","jsBlock","jsx"],t);case"html":return h(["js","jsBlock","html"],t);case"python":case"py":case"bash":return h(["bash"],t);case"markdown":case"md":return h(["html","jsx","bash"],t);case"tex":case"latex":case"matlab":return h(["tex"],t);case"lua":case"haskell":case"sql":return h(["lua"],t);case"wasm":return h(["wasm"],t);default:return h(Object.keys(b).filter((e=>!["lua","wasm","tex","latex","matlab"].includes(e))),t)}}(o,s),r=n.split("\n"),l=Object.fromEntries(s.map((e=>[e.className,{start:0,range:""}]))),i=Object.fromEntries(s.filter((e=>e.line)).map((e=>{let{className:t,line:n}=e;return[n,t]}))),d=Object.fromEntries(s.filter((e=>e.block)).map((e=>{let{className:t,block:n}=e;return[n.start,t]}))),m=Object.fromEntries(s.filter((e=>e.block)).map((e=>{let{className:t,block:n}=e;return[n.end,t]})));for(let u=0;u<r.length;){const e=r[u].match(a);if(!e){u+=1;continue}const t=e.slice(1).find((e=>void 0!==e));i[t]?l[i[t]].range+=`${u},`:d[t]?l[d[t]].start=u:m[t]&&(l[m[t]].range+=`${l[m[t]].start}-${u-1},`),r.splice(u,1)}n=r.join("\n");const f={};return Object.entries(l).forEach((e=>{let[t,{range:n}]=e;u()(n).forEach((e=>{f[e]??=[],f[e].push(t)}))})),{lineClassNames:f,code:n}}const g={codeBlockContainer:"codeBlockContainer_Ckt0"};var k=n(5893);function B(e){let{as:t,...n}=e;const o=function(e){const t={color:"--prism-color",backgroundColor:"--prism-background-color"},n={};return Object.entries(e.plain).forEach((e=>{let[o,s]=e;const c=t[o];c&&"string"==typeof s&&(n[c]=s)})),n}(l());return(0,k.jsx)(t,{...n,style:o,className:(0,c.Z)(n.className,g.codeBlockContainer,i.k.common.codeBlock)})}const x={codeBlockContent:"codeBlockContent_biex",codeBlockTitle:"codeBlockTitle_Ktv7",codeBlock:"codeBlock_bY9V",codeBlockStandalone:"codeBlockStandalone_MEMb",codeBlockLines:"codeBlockLines_e6Vv",codeBlockLinesWithNumbering:"codeBlockLinesWithNumbering_o6Pm",buttonGroup:"buttonGroup__atx"};function j(e){let{children:t,className:n}=e;return(0,k.jsx)(B,{as:"pre",tabIndex:0,className:(0,c.Z)(x.codeBlockStandalone,"thin-scrollbar",n),children:(0,k.jsx)("code",{className:x.codeBlockLines,children:t})})}var y=n(902);const N={attributes:!0,characterData:!0,childList:!0,subtree:!0};function C(e,t){const[n,s]=(0,o.useState)(),c=(0,o.useCallback)((()=>{s(e.current?.closest("[role=tabpanel][hidden]"))}),[e,s]);(0,o.useEffect)((()=>{c()}),[c]),function(e,t,n){void 0===n&&(n=N);const s=(0,y.zX)(t),c=(0,y.Ql)(n);(0,o.useEffect)((()=>{const t=new MutationObserver(s);return e&&t.observe(e,c),()=>t.disconnect()}),[e,s,c])}(n,(e=>{e.forEach((e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(t(),c())}))}),{attributes:!0,characterData:!1,childList:!1,subtree:!1})}var w=n(2573);const v={codeLine:"codeLine_lJS_",codeLineNumber:"codeLineNumber_Tfdd",codeLineContent:"codeLineContent_feaV"};function L(e){let{line:t,classNames:n,showLineNumbers:o,getLineProps:s,getTokenProps:a}=e;1===t.length&&"\n"===t[0].content&&(t[0].content="");const r=s({line:t,className:(0,c.Z)(n,o&&v.codeLine)}),l=t.map(((e,t)=>(0,k.jsx)("span",{...a({token:e,key:t})},t)));return(0,k.jsxs)("span",{...r,children:[o?(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)("span",{className:v.codeLineNumber}),(0,k.jsx)("span",{className:v.codeLineContent,children:l})]}):l,(0,k.jsx)("br",{})]})}var E=n(5999);function I(e){return(0,k.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,k.jsx)("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"})})}function S(e){return(0,k.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,k.jsx)("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"})})}const _={copyButtonCopied:"copyButtonCopied_obH4",copyButtonIcons:"copyButtonIcons_eSgA",copyButtonIcon:"copyButtonIcon_y97N",copyButtonSuccessIcon:"copyButtonSuccessIcon_LjdS"};function A(e){let{code:t,className:n}=e;const[s,a]=(0,o.useState)(!1),r=(0,o.useRef)(void 0),l=(0,o.useCallback)((()=>{!function(e,t){let{target:n=document.body}=void 0===t?{}:t;if("string"!=typeof e)throw new TypeError(`Expected parameter \`text\` to be a \`string\`, got \`${typeof e}\`.`);const o=document.createElement("textarea"),s=document.activeElement;o.value=e,o.setAttribute("readonly",""),o.style.contain="strict",o.style.position="absolute",o.style.left="-9999px",o.style.fontSize="12pt";const c=document.getSelection(),a=c.rangeCount>0&&c.getRangeAt(0);n.append(o),o.select(),o.selectionStart=0,o.selectionEnd=e.length;let r=!1;try{r=document.execCommand("copy")}catch{}o.remove(),a&&(c.removeAllRanges(),c.addRange(a)),s&&s.focus()}(t),a(!0),r.current=window.setTimeout((()=>{a(!1)}),1e3)}),[t]);return(0,o.useEffect)((()=>()=>window.clearTimeout(r.current)),[]),(0,k.jsx)("button",{type:"button","aria-label":s?(0,E.I)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,E.I)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,E.I)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,c.Z)("clean-btn",n,_.copyButton,s&&_.copyButtonCopied),onClick:l,children:(0,k.jsxs)("span",{className:_.copyButtonIcons,"aria-hidden":"true",children:[(0,k.jsx)(I,{className:_.copyButtonIcon}),(0,k.jsx)(S,{className:_.copyButtonSuccessIcon})]})})}function T(e){return(0,k.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,k.jsx)("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"})})}const $={wordWrapButtonIcon:"wordWrapButtonIcon_Bwma",wordWrapButtonEnabled:"wordWrapButtonEnabled_EoeP"};function W(e){let{className:t,onClick:n,isEnabled:o}=e;const s=(0,E.I)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return(0,k.jsx)("button",{type:"button",onClick:n,className:(0,c.Z)("clean-btn",t,o&&$.wordWrapButtonEnabled),"aria-label":s,title:s,children:(0,k.jsx)(T,{className:$.wordWrapButtonIcon,"aria-hidden":"true"})})}function H(e){let{children:t,className:n="",metastring:s,title:a,showLineNumbers:i,language:d}=e;const{prism:{defaultLanguage:u,magicComments:p}}=(0,r.L)(),b=function(e){return e?.toLowerCase()}(d??function(e){const t=e.split(" ").find((e=>e.startsWith("language-")));return t?.replace(/language-/,"")}(n)??u),h=l(),g=function(){const[e,t]=(0,o.useState)(!1),[n,s]=(0,o.useState)(!1),c=(0,o.useRef)(null),a=(0,o.useCallback)((()=>{const n=c.current.querySelector("code");e?n.removeAttribute("style"):(n.style.whiteSpace="pre-wrap",n.style.overflowWrap="anywhere"),t((e=>!e))}),[c,e]),r=(0,o.useCallback)((()=>{const{scrollWidth:e,clientWidth:t}=c.current,n=e>t||c.current.querySelector("code").hasAttribute("style");s(n)}),[c]);return C(c,r),(0,o.useEffect)((()=>{r()}),[e,r]),(0,o.useEffect)((()=>(window.addEventListener("resize",r,{passive:!0}),()=>{window.removeEventListener("resize",r)})),[r]),{codeBlockRef:c,isEnabled:e,isCodeScrollable:n,toggle:a}}(),j=function(e){return e?.match(m)?.groups.title??""}(s)||a,{lineClassNames:y,code:N}=f(t,{metastring:s,language:b,magicComments:p}),v=i??function(e){return Boolean(e?.includes("showLineNumbers"))}(s);return(0,k.jsxs)(B,{as:"div",className:(0,c.Z)(n,b&&!n.includes(`language-${b}`)&&`language-${b}`),children:[j&&(0,k.jsx)("div",{className:x.codeBlockTitle,children:j}),(0,k.jsxs)("div",{className:x.codeBlockContent,children:[(0,k.jsx)(w.y$,{theme:h,code:N,language:b??"text",children:e=>{let{className:t,style:n,tokens:o,getLineProps:s,getTokenProps:a}=e;return(0,k.jsx)("pre",{tabIndex:0,ref:g.codeBlockRef,className:(0,c.Z)(t,x.codeBlock,"thin-scrollbar"),style:n,children:(0,k.jsx)("code",{className:(0,c.Z)(x.codeBlockLines,v&&x.codeBlockLinesWithNumbering),children:o.map(((e,t)=>(0,k.jsx)(L,{line:e,getLineProps:s,getTokenProps:a,classNames:y[t],showLineNumbers:v},t)))})})}}),(0,k.jsxs)("div",{className:x.buttonGroup,children:[(g.isEnabled||g.isCodeScrollable)&&(0,k.jsx)(W,{className:x.codeButton,onClick:()=>g.toggle(),isEnabled:g.isEnabled}),(0,k.jsx)(A,{className:x.codeButton,code:N})]})]})]})}function Z(e){let{children:t,...n}=e;const c=(0,s.Z)(),a=function(e){return o.Children.toArray(e).some((e=>(0,o.isValidElement)(e)))?e:Array.isArray(e)?e.join(""):e}(t),r="string"==typeof a?H:j;return(0,k.jsx)(r,{...n,children:a},String(c))}},7594:(e,t)=>{function n(e){let t,n=[];for(let o of e.split(",").map((e=>e.trim())))if(/^-?\d+$/.test(o))n.push(parseInt(o,10));else if(t=o.match(/^(-?\d+)(-|\.\.\.?|\u2025|\u2026|\u22EF)(-?\d+)$/)){let[e,o,s,c]=t;if(o&&c){o=parseInt(o),c=parseInt(c);const e=o<c?1:-1;"-"!==s&&".."!==s&&"\u2025"!==s||(c+=e);for(let t=o;t!==c;t+=e)n.push(t)}}return n}t.default=n,e.exports=n}}]); \ No newline at end of file diff --git a/assets/js/935f2afb.786a574b.js b/assets/js/935f2afb.786a574b.js new file mode 100644 index 000000000..bf4060b25 --- /dev/null +++ b/assets/js/935f2afb.786a574b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[53],{1109:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"tutorialSidebar":[{"type":"category","label":"Intro to Middy","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Introduction","href":"/docs/","docId":"intro/intro","unlisted":false},{"type":"link","label":"Getting started","href":"/docs/intro/getting-started","docId":"intro/getting-started","unlisted":false},{"type":"link","label":"How it works","href":"/docs/intro/how-it-works","docId":"intro/how-it-works","unlisted":false},{"type":"link","label":"Early return","href":"/docs/intro/early-interrupt","docId":"intro/early-interrupt","unlisted":false},{"type":"link","label":"Handling Errors","href":"/docs/intro/handling-errors","docId":"intro/handling-errors","unlisted":false},{"type":"link","label":"Streamify Response","href":"/docs/intro/streamify-response","docId":"intro/streamify-response","unlisted":false},{"type":"link","label":"Testing","href":"/docs/intro/testing","docId":"intro/testing","unlisted":false},{"type":"link","label":"Use with TypeScript","href":"/docs/intro/typescript","docId":"intro/typescript","unlisted":false},{"type":"link","label":"Hooks","href":"/docs/intro/hooks","docId":"intro/hooks","unlisted":false},{"type":"link","label":"History","href":"/docs/intro/history","docId":"intro/history","unlisted":false},{"type":"link","label":"Influence","href":"/docs/intro/influence","docId":"intro/influence","unlisted":false},{"type":"link","label":"Utilities","href":"/docs/intro/utilities","docId":"intro/utilities","unlisted":false},{"type":"link","label":"Release Cycle","href":"/docs/intro/release-cycle","docId":"intro/release-cycle","unlisted":false},{"type":"link","label":"Contributing","href":"/docs/intro/contributing","docId":"intro/contributing","unlisted":false},{"type":"link","label":"Sponsoring","href":"/docs/intro/sponsoring","docId":"intro/sponsoring","unlisted":false}],"href":"/docs/category/intro-to-middy"},{"type":"category","label":"Middlewares","collapsible":true,"collapsed":true,"className":"red","items":[{"type":"link","label":"Official middlewares","href":"/docs/middlewares/intro","docId":"middlewares/intro","unlisted":false},{"type":"link","label":"Third-party middlewares","href":"/docs/middlewares/third-party","docId":"middlewares/third-party","unlisted":false},{"type":"link","label":"appconfig","href":"/docs/middlewares/appconfig","docId":"middlewares/appconfig","unlisted":false},{"type":"link","label":"cloudwatch-metrics","href":"/docs/middlewares/cloudwatch-metrics","docId":"middlewares/cloudwatch-metrics","unlisted":false},{"type":"link","label":"do-not-wait-for-empty-event-loop","href":"/docs/middlewares/do-not-wait-for-empty-event-loop","docId":"middlewares/do-not-wait-for-empty-event-loop","unlisted":false},{"type":"link","label":"dynamodb","href":"/docs/middlewares/dynamodb","docId":"middlewares/dynamodb","unlisted":false},{"type":"link","label":"error-logger","href":"/docs/middlewares/error-logger","docId":"middlewares/error-logger","unlisted":false},{"type":"link","label":"event-normalizer","href":"/docs/middlewares/event-normalizer","docId":"middlewares/event-normalizer","unlisted":false},{"type":"link","label":"http-content-encoding","href":"/docs/middlewares/http-content-encoding","docId":"middlewares/http-content-encoding","unlisted":false},{"type":"link","label":"http-content-negotiation","href":"/docs/middlewares/http-content-negotiation","docId":"middlewares/http-content-negotiation","unlisted":false},{"type":"link","label":"http-cors","href":"/docs/middlewares/http-cors","docId":"middlewares/http-cors","unlisted":false},{"type":"link","label":"http-error-handler","href":"/docs/middlewares/http-error-handler","docId":"middlewares/http-error-handler","unlisted":false},{"type":"link","label":"http-event-normalizer","href":"/docs/middlewares/http-event-normalizer","docId":"middlewares/http-event-normalizer","unlisted":false},{"type":"link","label":"http-header-normalizer","href":"/docs/middlewares/http-header-normalizer","docId":"middlewares/http-header-normalizer","unlisted":false},{"type":"link","label":"http-json-body-parser","href":"/docs/middlewares/http-json-body-parser","docId":"middlewares/http-json-body-parser","unlisted":false},{"type":"link","label":"http-multipart-body-parser","href":"/docs/middlewares/http-multipart-body-parser","docId":"middlewares/http-multipart-body-parser","unlisted":false},{"type":"link","label":"http-partial-response","href":"/docs/middlewares/http-partial-response","docId":"middlewares/http-partial-response","unlisted":false},{"type":"link","label":"http-response-serializer","href":"/docs/middlewares/http-response-serializer","docId":"middlewares/http-response-serializer","unlisted":false},{"type":"link","label":"http-security-headers","href":"/docs/middlewares/http-security-headers","docId":"middlewares/http-security-headers","unlisted":false},{"type":"link","label":"http-urlencode-body-parser","href":"/docs/middlewares/http-urlencode-body-parser","docId":"middlewares/http-urlencode-body-parser","unlisted":false},{"type":"link","label":"http-urlencode-path-parser","href":"/docs/middlewares/http-urlencode-path-parser","docId":"middlewares/http-urlencode-path-parser","unlisted":false},{"type":"link","label":"input-output-logger","href":"/docs/middlewares/input-output-logger","docId":"middlewares/input-output-logger","unlisted":false},{"type":"link","label":"rds-signer","href":"/docs/middlewares/rds-signer","docId":"middlewares/rds-signer","unlisted":false},{"type":"link","label":"s3-object-response","href":"/docs/middlewares/s3-object-response","docId":"middlewares/s3-object-response","unlisted":false},{"type":"link","label":"s3","href":"/docs/middlewares/s3","docId":"middlewares/s3","unlisted":false},{"type":"link","label":"secrets-manager","href":"/docs/middlewares/secrets-manager","docId":"middlewares/secrets-manager","unlisted":false},{"type":"link","label":"service-discovery","href":"/docs/middlewares/service-discovery","docId":"middlewares/service-discovery","unlisted":false},{"type":"link","label":"sqs-partial-batch-failure","href":"/docs/middlewares/sqs-partial-batch-failure","docId":"middlewares/sqs-partial-batch-failure","unlisted":false},{"type":"link","label":"ssm","href":"/docs/middlewares/ssm","docId":"middlewares/ssm","unlisted":false},{"type":"link","label":"sts","href":"/docs/middlewares/sts","docId":"middlewares/sts","unlisted":false},{"type":"link","label":"validator","href":"/docs/middlewares/validator","docId":"middlewares/validator","unlisted":false},{"type":"link","label":"warmup","href":"/docs/middlewares/warmup","docId":"middlewares/warmup","unlisted":false},{"type":"link","label":"ws-json-body-parser","href":"/docs/middlewares/ws-json-body-parser","docId":"middlewares/ws-json-body-parser","unlisted":false},{"type":"link","label":"ws-response","href":"/docs/middlewares/ws-response","docId":"middlewares/ws-response","unlisted":false}],"href":"/docs/category/middlewares"},{"type":"category","label":"Writing Middlewares","collapsible":true,"collapsed":true,"className":"red","items":[{"type":"link","label":"Custom Middlewares","href":"/docs/writing-middlewares/intro","docId":"writing-middlewares/intro","unlisted":false},{"type":"link","label":"Configurable Middlewares","href":"/docs/writing-middlewares/configurable-middlewares","docId":"writing-middlewares/configurable-middlewares","unlisted":false},{"type":"link","label":"Inline Middlewares","href":"/docs/writing-middlewares/inline-middlewares","docId":"writing-middlewares/inline-middlewares","unlisted":false},{"type":"link","label":"Internal Storage","href":"/docs/writing-middlewares/internal-storage","docId":"writing-middlewares/internal-storage","unlisted":false},{"type":"link","label":"Handle Timeouts","href":"/docs/writing-middlewares/timeouts","docId":"writing-middlewares/timeouts","unlisted":false},{"type":"link","label":"More Examples","href":"/docs/writing-middlewares/more-examples","docId":"writing-middlewares/more-examples","unlisted":false},{"type":"link","label":"With TypeScript","href":"/docs/writing-middlewares/with-typescript","docId":"writing-middlewares/with-typescript","unlisted":false}],"href":"/docs/category/writing-middlewares"},{"type":"category","label":"Routers","collapsible":true,"collapsed":true,"className":"red","items":[{"type":"link","label":"http-router","href":"/docs/routers/http-router","docId":"routers/http-router","unlisted":false},{"type":"link","label":"ws-router","href":"/docs/routers/ws-router","docId":"routers/ws-router","unlisted":false}],"href":"/docs/category/routers"},{"type":"category","label":"Upgrade","collapsible":true,"collapsed":true,"className":"red","items":[{"type":"link","label":"Upgrade 4.x -> 5.x","href":"/docs/upgrade/4-5","docId":"upgrade/4-5","unlisted":false},{"type":"link","label":"Upgrade 3.x -> 4.x","href":"/docs/upgrade/3-4","docId":"upgrade/3-4","unlisted":false},{"type":"link","label":"Upgrade 2.x -> 3.x","href":"/docs/upgrade/2-3","docId":"upgrade/2-3","unlisted":false},{"type":"link","label":"Upgrade 1.x -> 2.x","href":"/docs/upgrade/1-2","docId":"upgrade/1-2","unlisted":false},{"type":"link","label":"Upgrade 0.x -> 1.x","href":"/docs/upgrade/0-1","docId":"upgrade/0-1","unlisted":false}],"href":"/docs/category/upgrade"},{"type":"category","label":"AWS Event Examples","collapsible":true,"collapsed":true,"className":"red","items":[{"type":"link","label":"All AWS Events","href":"/docs/events/intro","docId":"events/intro","unlisted":false},{"type":"link","label":"Alexa","href":"/docs/events/alexa","docId":"events/alexa","unlisted":false},{"type":"link","label":"API Gateway Authorizer","href":"/docs/events/api-gateway-authorizer","docId":"events/api-gateway-authorizer","unlisted":false},{"type":"link","label":"API Gateway (HTTP)","href":"/docs/events/api-gateway-http","docId":"events/api-gateway-http","unlisted":false},{"type":"link","label":"API Gateway (REST)","href":"/docs/events/api-gateway-rest","docId":"events/api-gateway-rest","unlisted":false},{"type":"link","label":"API Gateway (WebSocket)","href":"/docs/events/api-gateway-ws","docId":"events/api-gateway-ws","unlisted":false},{"type":"link","label":"Application Load Balancer","href":"/docs/events/application-load-balancer","docId":"events/application-load-balancer","unlisted":false},{"type":"link","label":"AppSync","href":"/docs/events/appsync","docId":"events/appsync","unlisted":false},{"type":"link","label":"CloudFormation","href":"/docs/events/cloud-formation","docId":"events/cloud-formation","unlisted":false},{"type":"link","label":"CloudFront Lambda@Edge","href":"/docs/events/cloud-front","docId":"events/cloud-front","unlisted":false},{"type":"link","label":"CloudTrail","href":"/docs/events/cloud-trail","docId":"events/cloud-trail","unlisted":false},{"type":"link","label":"Cloud Watch Logs","href":"/docs/events/cloud-watch-logs","docId":"events/cloud-watch-logs","unlisted":false},{"type":"link","label":"Code Commit","href":"/docs/events/code-commit","docId":"events/code-commit","unlisted":false},{"type":"link","label":"CodePipeline","href":"/docs/events/code-pipeline","docId":"events/code-pipeline","unlisted":false},{"type":"link","label":"Cognito","href":"/docs/events/cognito","docId":"events/cognito","unlisted":false},{"type":"link","label":"Config","href":"/docs/events/config","docId":"events/config","unlisted":false},{"type":"link","label":"Connect","href":"/docs/events/connect","docId":"events/connect","unlisted":false},{"type":"link","label":"DocumentDB","href":"/docs/events/documentdb","docId":"events/documentdb","unlisted":false},{"type":"link","label":"DynamoDB","href":"/docs/events/dynamodb","docId":"events/dynamodb","unlisted":false},{"type":"link","label":"EC2","href":"/docs/events/ec2","docId":"events/ec2","unlisted":false},{"type":"link","label":"EventBridge","href":"/docs/events/event-bridge","docId":"events/event-bridge","unlisted":false},{"type":"link","label":"Function URL","href":"/docs/events/function-url","docId":"events/function-url","unlisted":false},{"type":"link","label":"IoT Events","href":"/docs/events/iot-events","docId":"events/iot-events","unlisted":false},{"type":"link","label":"Internet of things (IoT)","href":"/docs/events/iot","docId":"events/iot","unlisted":false},{"type":"link","label":"Kafka, Managed Streaming (MSK)","href":"/docs/events/kafka-managed-streaming","docId":"events/kafka-managed-streaming","unlisted":false},{"type":"link","label":"Kafka, Self-Managed","href":"/docs/events/kafka-self-managed","docId":"events/kafka-self-managed","unlisted":false},{"type":"link","label":"Kinesis Firehose","href":"/docs/events/kinesis-firehose","docId":"events/kinesis-firehose","unlisted":false},{"type":"link","label":"Kinesis Streams","href":"/docs/events/kinesis-streams","docId":"events/kinesis-streams","unlisted":false},{"type":"link","label":"Lex","href":"/docs/events/lex","docId":"events/lex","unlisted":false},{"type":"link","label":"MQ","href":"/docs/events/mq","docId":"events/mq","unlisted":false},{"type":"link","label":"RDS","href":"/docs/events/rds","docId":"events/rds","unlisted":false},{"type":"link","label":"S3 Batch","href":"/docs/events/s3-batch","docId":"events/s3-batch","unlisted":false},{"type":"link","label":"S3 Object","href":"/docs/events/s3-object","docId":"events/s3-object","unlisted":false},{"type":"link","label":"S3","href":"/docs/events/s3","docId":"events/s3","unlisted":false},{"type":"link","label":"Secrets Manager","href":"/docs/events/secrets-manager","docId":"events/secrets-manager","unlisted":false},{"type":"link","label":"SES","href":"/docs/events/ses","docId":"events/ses","unlisted":false},{"type":"link","label":"SNS","href":"/docs/events/sns","docId":"events/sns","unlisted":false},{"type":"link","label":"SQS","href":"/docs/events/sqs","docId":"events/sqs","unlisted":false},{"type":"link","label":"VPC Lattice","href":"/docs/events/vpc-lattice","docId":"events/vpc-lattice","unlisted":false},{"type":"link","label":"WorkMail","href":"/docs/events/workmail","docId":"events/workmail","unlisted":false}],"href":"/docs/category/aws-event-examples"},{"type":"category","label":"Integrations","collapsible":true,"collapsed":true,"className":"red","items":[{"type":"link","label":"Integrations","href":"/docs/integrations/intro","docId":"integrations/intro","unlisted":false},{"type":"link","label":"AWS Relational Database Service (RDS)","href":"/docs/integrations/RDS","docId":"integrations/RDS","unlisted":false},{"type":"link","label":"Apollo Server","href":"/docs/integrations/apollo-server","docId":"integrations/apollo-server","unlisted":false},{"type":"link","label":"Powertools for AWS Lambda","href":"/docs/integrations/lambda-powertools","docId":"integrations/lambda-powertools","unlisted":false},{"type":"link","label":"Pino","href":"/docs/integrations/pino","docId":"integrations/pino","unlisted":false},{"type":"link","label":"Serverless Framework","href":"/docs/integrations/serverless-framework","docId":"integrations/serverless-framework","unlisted":false},{"type":"link","label":"Serverless Stack","href":"/docs/integrations/serverless-stack","docId":"integrations/serverless-stack","unlisted":false}],"href":"/docs/category/integrations"},{"type":"category","label":"Best Practices","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Intro","href":"/docs/best-practices/intro","docId":"best-practices/intro","unlisted":false},{"type":"link","label":"Connection reuse","href":"/docs/best-practices/connection-reuse","docId":"best-practices/connection-reuse","unlisted":false},{"type":"link","label":"Internal Context","href":"/docs/best-practices/internal-context","docId":"best-practices/internal-context","unlisted":false},{"type":"link","label":"Bundling Lambda packages","href":"/docs/best-practices/bundling","docId":"best-practices/bundling","unlisted":false},{"type":"link","label":"Small node_modules","href":"/docs/best-practices/small-node-modules","docId":"best-practices/small-node-modules","unlisted":false},{"type":"link","label":"Profiling","href":"/docs/best-practices/profiling","docId":"best-practices/profiling","unlisted":false}],"href":"/docs/category/best-practices"},{"type":"link","label":"FAQ","href":"/docs/faq","docId":"faq","unlisted":false}]},"docs":{"best-practices/bundling":{"id":"best-practices/bundling","title":"Bundling Lambda packages","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"best-practices/connection-reuse":{"id":"best-practices/connection-reuse","title":"Connection reuse","description":"Be sure to set the following environment variable when connecting to AWS services:","sidebar":"tutorialSidebar"},"best-practices/internal-context":{"id":"best-practices/internal-context","title":"Internal Context","description":"Middy is built to be async even at it\'s core. Middlewares can set promises to internal.","sidebar":"tutorialSidebar"},"best-practices/intro":{"id":"best-practices/intro","title":"Intro","description":"In this section you will find some common tips and tricks to ensure you don\'t hit any performance or security issues.","sidebar":"tutorialSidebar"},"best-practices/profiling":{"id":"best-practices/profiling","title":"Profiling","description":"Inside of @middy/core we\'ve added some hook before and after every middleware called, the handler and from start to end of it\'s execution.","sidebar":"tutorialSidebar"},"best-practices/small-node-modules":{"id":"best-practices/small-node-modules","title":"Small node_modules","description":"Using a bundler is the optimal solution, but can be complex depending on your setup.","sidebar":"tutorialSidebar"},"events/alexa":{"id":"events/alexa","title":"Alexa","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"events/api-gateway-authorizer":{"id":"events/api-gateway-authorizer","title":"API Gateway Authorizer","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"events/api-gateway-http":{"id":"events/api-gateway-http","title":"API Gateway (HTTP)","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"events/api-gateway-rest":{"id":"events/api-gateway-rest","title":"API Gateway (REST)","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"events/api-gateway-ws":{"id":"events/api-gateway-ws","title":"API Gateway (WebSocket)","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"events/application-load-balancer":{"id":"events/application-load-balancer","title":"Application Load Balancer","description":"Same as API Gateway (REST)","sidebar":"tutorialSidebar"},"events/appsync":{"id":"events/appsync","title":"AppSync","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"events/cloud-formation":{"id":"events/cloud-formation","title":"CloudFormation","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"events/cloud-front":{"id":"events/cloud-front","title":"CloudFront Lambda@Edge","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"events/cloud-trail":{"id":"events/cloud-trail","title":"CloudTrail","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"events/cloud-watch-logs":{"id":"events/cloud-watch-logs","title":"Cloud Watch Logs","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"events/code-commit":{"id":"events/code-commit","title":"Code Commit","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"events/code-pipeline":{"id":"events/code-pipeline","title":"CodePipeline","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"events/cognito":{"id":"events/cognito","title":"Cognito","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"events/config":{"id":"events/config","title":"Config","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"events/connect":{"id":"events/connect","title":"Connect","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"events/documentdb":{"id":"events/documentdb","title":"DocumentDB","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"events/dynamodb":{"id":"events/dynamodb","title":"DynamoDB","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"events/ec2":{"id":"events/ec2","title":"EC2","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"events/event-bridge":{"id":"events/event-bridge","title":"EventBridge","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"events/function-url":{"id":"events/function-url","title":"Function URL","description":"Same as API Gateway (HTTP), but with support for response streams.","sidebar":"tutorialSidebar"},"events/intro":{"id":"events/intro","title":"All AWS Events","description":"Middy is built to help with all AWS Events that can connect with AWS Lambda.","sidebar":"tutorialSidebar"},"events/iot":{"id":"events/iot","title":"Internet of things (IoT)","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"events/iot-events":{"id":"events/iot-events","title":"IoT Events","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"events/kafka-managed-streaming":{"id":"events/kafka-managed-streaming","title":"Kafka, Managed Streaming (MSK)","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"events/kafka-self-managed":{"id":"events/kafka-self-managed","title":"Kafka, Self-Managed","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"events/kinesis-firehose":{"id":"events/kinesis-firehose","title":"Kinesis Firehose","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"events/kinesis-streams":{"id":"events/kinesis-streams","title":"Kinesis Streams","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"events/lex":{"id":"events/lex","title":"Lex","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"events/mq":{"id":"events/mq","title":"MQ","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"events/rds":{"id":"events/rds","title":"RDS","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"events/s3":{"id":"events/s3","title":"S3","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"events/s3-batch":{"id":"events/s3-batch","title":"S3 Batch","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"events/s3-object":{"id":"events/s3-object","title":"S3 Object","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"events/secrets-manager":{"id":"events/secrets-manager","title":"Secrets Manager","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"events/ses":{"id":"events/ses","title":"SES","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"events/sns":{"id":"events/sns","title":"SNS","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"events/sqs":{"id":"events/sqs","title":"SQS","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"events/vpc-lattice":{"id":"events/vpc-lattice","title":"VPC Lattice","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"events/workmail":{"id":"events/workmail","title":"WorkMail","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"faq":{"id":"faq","title":"FAQ","description":"My lambda keep timing out without responding, what do I do?","sidebar":"tutorialSidebar"},"integrations/apollo-server":{"id":"integrations/apollo-server","title":"Apollo Server","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"integrations/intro":{"id":"integrations/intro","title":"Integrations","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"integrations/lambda-powertools":{"id":"integrations/lambda-powertools","title":"Powertools for AWS Lambda","description":"Powertools for AWS is a developer toolkit to implement Serverless best practices and increase developer velocity.","sidebar":"tutorialSidebar"},"integrations/pino":{"id":"integrations/pino","title":"Pino","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"integrations/RDS":{"id":"integrations/RDS","title":"AWS Relational Database Service (RDS)","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"integrations/serverless-framework":{"id":"integrations/serverless-framework","title":"Serverless Framework","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"integrations/serverless-stack":{"id":"integrations/serverless-stack","title":"Serverless Stack","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"intro/contributing":{"id":"intro/contributing","title":"Contributing","description":"In the spirit of Open Source Software, everyone is very welcome to contribute to this repository. Feel free to raise issues or to submit Pull Requests.","sidebar":"tutorialSidebar"},"intro/early-interrupt":{"id":"intro/early-interrupt","title":"Early return","description":"Some middlewares might need to stop the whole execution flow and return a response immediately.","sidebar":"tutorialSidebar"},"intro/getting-started":{"id":"intro/getting-started","title":"Getting started","description":"Install","sidebar":"tutorialSidebar"},"intro/handling-errors":{"id":"intro/handling-errors","title":"Handling Errors","description":"But, what happens when there is an error?","sidebar":"tutorialSidebar"},"intro/history":{"id":"intro/history","title":"History","description":"A brief history of Middy","sidebar":"tutorialSidebar"},"intro/hooks":{"id":"intro/hooks","title":"Hooks","description":"Middy provides hooks into it\'s core to allow for monitoring, setup, and cleaning that may not be possible within a middleware.","sidebar":"tutorialSidebar"},"intro/how-it-works":{"id":"intro/how-it-works","title":"How it works","description":"Middy implements the classic onion-like middleware pattern, with some peculiar details.","sidebar":"tutorialSidebar"},"intro/influence":{"id":"intro/influence","title":"Influence","description":"Middy has been one of the first projects to encourage the adoption of middlewares to simplify code reuse and best practices within the context of Lambda.","sidebar":"tutorialSidebar"},"intro/intro":{"id":"intro/intro","title":"Introduction","description":"What is middy","sidebar":"tutorialSidebar"},"intro/release-cycle":{"id":"intro/release-cycle","title":"Release Cycle","description":"Each major release has a two (2) month Alpha period, one (1) month Beta, before a full release and becomes Stable.","sidebar":"tutorialSidebar"},"intro/sponsoring":{"id":"intro/sponsoring","title":"Sponsoring","description":"If Middy is adding value to your project or organization and you would like to support its long term maintenance, becoming a sponsor is a great way to do that.","sidebar":"tutorialSidebar"},"intro/streamify-response":{"id":"intro/streamify-response","title":"Streamify Response","description":"Middy also supports streamed responses.","sidebar":"tutorialSidebar"},"intro/testing":{"id":"intro/testing","title":"Testing","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"intro/typescript":{"id":"intro/typescript","title":"Use with TypeScript","description":"Middy can be used with TypeScript with typings built in in every official package.","sidebar":"tutorialSidebar"},"intro/utilities":{"id":"intro/utilities","title":"Utilities","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"middlewares/appconfig":{"id":"middlewares/appconfig","title":"appconfig","description":"Fetches AppConfig stored configuration and parses out JSON.","sidebar":"tutorialSidebar"},"middlewares/cloudwatch-metrics":{"id":"middlewares/cloudwatch-metrics","title":"cloudwatch-metrics","description":"This middleware hydrates lambda\'s context.metrics property with an instance of MetricLogger. This instance can be used to easily generate custom metrics from Lambda functions without requiring custom batching code, making blocking network requests or relying on 3rd party software.","sidebar":"tutorialSidebar"},"middlewares/do-not-wait-for-empty-event-loop":{"id":"middlewares/do-not-wait-for-empty-event-loop","title":"do-not-wait-for-empty-event-loop","description":"This middleware sets context.callbackWaitsForEmptyEventLoop property to false.","sidebar":"tutorialSidebar"},"middlewares/dynamodb":{"id":"middlewares/dynamodb","title":"dynamodb","description":"Fetches DynamoDB stored configuration and parses out JSON.","sidebar":"tutorialSidebar"},"middlewares/error-logger":{"id":"middlewares/error-logger","title":"error-logger","description":"Logs the error and propagates it to the next middleware.","sidebar":"tutorialSidebar"},"middlewares/event-normalizer":{"id":"middlewares/event-normalizer","title":"event-normalizer","description":"Middleware for iterating through an AWS event records, parsing and normalizing nested events.","sidebar":"tutorialSidebar"},"middlewares/http-content-encoding":{"id":"middlewares/http-content-encoding","title":"http-content-encoding","description":"This middleware take the preferredEncoding output from @middy/http-content-negotiation and applies the encoding to response.body when a string.","sidebar":"tutorialSidebar"},"middlewares/http-content-negotiation":{"id":"middlewares/http-content-negotiation","title":"http-content-negotiation","description":"This middleware parses Accept-* headers and provides utilities for HTTP content negotiation (charset, encoding, language and media type).","sidebar":"tutorialSidebar"},"middlewares/http-cors":{"id":"middlewares/http-cors","title":"http-cors","description":"This middleware sets HTTP CORS headers (Access-Control-Allow-Origin, Access-Control-Allow-Headers, Access-Control-Allow-Credentials), necessary for making cross-origin requests, to the response object.","sidebar":"tutorialSidebar"},"middlewares/http-error-handler":{"id":"middlewares/http-error-handler","title":"http-error-handler","description":"Automatically handles uncaught errors that contain the properties statusCode (number) and message (string) and creates a proper HTTP response","sidebar":"tutorialSidebar"},"middlewares/http-event-normalizer":{"id":"middlewares/http-event-normalizer","title":"http-event-normalizer","description":"If you need to access the query string or path parameters in an API Gateway event you","sidebar":"tutorialSidebar"},"middlewares/http-header-normalizer":{"id":"middlewares/http-header-normalizer","title":"http-header-normalizer","description":"This middleware normalizes HTTP header names. By default, it normalizes to lowercase. It","sidebar":"tutorialSidebar"},"middlewares/http-json-body-parser":{"id":"middlewares/http-json-body-parser","title":"http-json-body-parser","description":"This middleware automatically parses HTTP requests with a JSON body and converts the body into an","sidebar":"tutorialSidebar"},"middlewares/http-multipart-body-parser":{"id":"middlewares/http-multipart-body-parser","title":"http-multipart-body-parser","description":"Automatically parses HTTP requests with content type multipart/form-data and converts the body into an","sidebar":"tutorialSidebar"},"middlewares/http-partial-response":{"id":"middlewares/http-partial-response","title":"http-partial-response","description":"Filtering the data returned in an object or JSON stringified response has never been so easy. Add the httpPartialResponse middleware to your middleware chain, specify a custom filteringKeyName if you want to and that\'s it. Any consumer of your API will be able to filter your JSON response by adding a querystring key with the fields to filter such as fields=firstname,lastname.","sidebar":"tutorialSidebar"},"middlewares/http-response-serializer":{"id":"middlewares/http-response-serializer","title":"http-response-serializer","description":"The Http Serializer middleware lets you define serialization mechanisms based on the current content negotiation.","sidebar":"tutorialSidebar"},"middlewares/http-security-headers":{"id":"middlewares/http-security-headers","title":"http-security-headers","description":"Applies best practice security headers to responses. It\'s a simplified port of HelmetJS. See HelmetJS documentation for more details.","sidebar":"tutorialSidebar"},"middlewares/http-urlencode-body-parser":{"id":"middlewares/http-urlencode-body-parser","title":"http-urlencode-body-parser","description":"This middleware automatically parses HTTP requests with URL-encoded body (typically the result","sidebar":"tutorialSidebar"},"middlewares/http-urlencode-path-parser":{"id":"middlewares/http-urlencode-path-parser","title":"http-urlencode-path-parser","description":"This middleware automatically parses HTTP requests with URL-encoded paths. This can happen when using path variables (ie //) for an endpoint and the UI encodeURIComponent the values before making the request.","sidebar":"tutorialSidebar"},"middlewares/input-output-logger":{"id":"middlewares/input-output-logger","title":"input-output-logger","description":"Logs the incoming request (input) and the response (output).","sidebar":"tutorialSidebar"},"middlewares/intro":{"id":"middlewares/intro","title":"Official middlewares","description":"Middy comes with a series of additional (opt-in) plugins that are officially maintained by the core team and kept in sync with every release of the core package.","sidebar":"tutorialSidebar"},"middlewares/rds-signer":{"id":"middlewares/rds-signer","title":"rds-signer","description":"Fetches RDS credentials to be used when connecting to RDS with IAM roles.","sidebar":"tutorialSidebar"},"middlewares/s3":{"id":"middlewares/s3","title":"s3","description":"Fetches S3 stored configuration and parses out JSON.","sidebar":"tutorialSidebar"},"middlewares/s3-object-response":{"id":"middlewares/s3-object-response","title":"s3-object-response","description":"This middleware is a Proof of Concept and requires real world testing before use, not recommended for production","sidebar":"tutorialSidebar"},"middlewares/secrets-manager":{"id":"middlewares/secrets-manager","title":"secrets-manager","description":"This middleware fetches secrets from AWS Secrets Manager.","sidebar":"tutorialSidebar"},"middlewares/service-discovery":{"id":"middlewares/service-discovery","title":"service-discovery","description":"Fetches Service Discovery instances to be used when connecting to other AWS services.","sidebar":"tutorialSidebar"},"middlewares/sqs-partial-batch-failure":{"id":"middlewares/sqs-partial-batch-failure","title":"sqs-partial-batch-failure","description":"Middleware for handling partially failed SQS batches.","sidebar":"tutorialSidebar"},"middlewares/ssm":{"id":"middlewares/ssm","title":"ssm","description":"This middleware fetches parameters from AWS Systems Manager Parameter Store.","sidebar":"tutorialSidebar"},"middlewares/sts":{"id":"middlewares/sts","title":"sts","description":"Fetches STS credentials to be used when connecting to other AWS services.","sidebar":"tutorialSidebar"},"middlewares/third-party":{"id":"middlewares/third-party","title":"Third-party middlewares","description":"The following middlewares are created and maintained outside this project. We cannot guarantee for its functionality.","sidebar":"tutorialSidebar"},"middlewares/validator":{"id":"middlewares/validator","title":"validator","description":"This middleware automatically validates incoming events and outgoing responses against custom","sidebar":"tutorialSidebar"},"middlewares/warmup":{"id":"middlewares/warmup","title":"warmup","description":"Warmup middleware that helps to reduce the cold-start issue. Compatible by default with serverless-plugin-warmup, but it can be configured to suit your implementation.","sidebar":"tutorialSidebar"},"middlewares/ws-json-body-parser":{"id":"middlewares/ws-json-body-parser","title":"ws-json-body-parser","description":"This middleware automatically parses WebSocket requests with a JSON body and converts the body into an","sidebar":"tutorialSidebar"},"middlewares/ws-response":{"id":"middlewares/ws-response","title":"ws-response","description":"Post message to WebSocket connection.","sidebar":"tutorialSidebar"},"routers/http-router":{"id":"routers/http-router","title":"http-router","description":"This handler can route to requests to one of a nested handler based on method and path of an http event from API Gateway (REST or HTTP) or Elastic Load Balancer.","sidebar":"tutorialSidebar"},"routers/ws-router":{"id":"routers/ws-router","title":"ws-router","description":"This handler can route to requests to one of a nested handler based on routeKey of an WebSocket event from API Gateway (WebSocket).","sidebar":"tutorialSidebar"},"upgrade/0-1":{"id":"upgrade/0-1","title":"Upgrade 0.x -> 1.x","description":"aka \\"The It\'s Stable Update\\"","sidebar":"tutorialSidebar"},"upgrade/1-2":{"id":"upgrade/1-2","title":"Upgrade 1.x -> 2.x","description":"aka \\"The async/await Update\\"","sidebar":"tutorialSidebar"},"upgrade/2-3":{"id":"upgrade/2-3","title":"Upgrade 2.x -> 3.x","description":"aka \\"The onError Reversal Update\\"","sidebar":"tutorialSidebar"},"upgrade/3-4":{"id":"upgrade/3-4","title":"Upgrade 3.x -> 4.x","description":"aka \\"The AWS SDK v3 Update\\"","sidebar":"tutorialSidebar"},"upgrade/4-5":{"id":"upgrade/4-5","title":"Upgrade 4.x -> 5.x","description":"aka \\"The ESM Only Update\\"","sidebar":"tutorialSidebar"},"writing-middlewares/configurable-middlewares":{"id":"writing-middlewares/configurable-middlewares","title":"Configurable Middlewares","description":"In order to make middlewares configurable, they are generally exported as a function that accepts","sidebar":"tutorialSidebar"},"writing-middlewares/inline-middlewares":{"id":"writing-middlewares/inline-middlewares","title":"Inline Middlewares","description":"Sometimes you want to create handlers that serve a very small need and that are not","sidebar":"tutorialSidebar"},"writing-middlewares/internal-storage":{"id":"writing-middlewares/internal-storage","title":"Internal Storage","description":"The handler also contains an internal object that can be used to store values securely between middlewares that","sidebar":"tutorialSidebar"},"writing-middlewares/intro":{"id":"writing-middlewares/intro","title":"Custom Middlewares","description":"A middleware is an object that should contain at least 1 of 3 possible keys:","sidebar":"tutorialSidebar"},"writing-middlewares/more-examples":{"id":"writing-middlewares/more-examples","title":"More Examples","description":"Check the code for existing middlewares to see more examples on how to write a middleware.","sidebar":"tutorialSidebar"},"writing-middlewares/timeouts":{"id":"writing-middlewares/timeouts","title":"Handle Timeouts","description":"When a lambda times out it throws an error that cannot be caught by middy. To work around this middy maintains an AbortController that can be signalled early to allow time to clean up and log the error properly.","sidebar":"tutorialSidebar"},"writing-middlewares/with-typescript":{"id":"writing-middlewares/with-typescript","title":"With TypeScript","description":"here\'s an example of how you can write a custom middleware for a Lambda receiving events from API Gateway:","sidebar":"tutorialSidebar"}}}')}}]); \ No newline at end of file diff --git a/assets/js/935f2afb.a874467f.js b/assets/js/935f2afb.a874467f.js deleted file mode 100644 index da839480b..000000000 --- a/assets/js/935f2afb.a874467f.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[53],{1109:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"tutorialSidebar":[{"type":"category","label":"Intro to Middy","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Introduction","href":"/docs/","docId":"intro/intro"},{"type":"link","label":"Getting started","href":"/docs/intro/getting-started","docId":"intro/getting-started"},{"type":"link","label":"How it works","href":"/docs/intro/how-it-works","docId":"intro/how-it-works"},{"type":"link","label":"Early return","href":"/docs/intro/early-interrupt","docId":"intro/early-interrupt"},{"type":"link","label":"Handling Errors","href":"/docs/intro/handling-errors","docId":"intro/handling-errors"},{"type":"link","label":"Streamify Response","href":"/docs/intro/streamify-response","docId":"intro/streamify-response"},{"type":"link","label":"Testing","href":"/docs/intro/testing","docId":"intro/testing"},{"type":"link","label":"Use with TypeScript","href":"/docs/intro/typescript","docId":"intro/typescript"},{"type":"link","label":"Hooks","href":"/docs/intro/hooks","docId":"intro/hooks"},{"type":"link","label":"History","href":"/docs/intro/history","docId":"intro/history"},{"type":"link","label":"Influence","href":"/docs/intro/influence","docId":"intro/influence"},{"type":"link","label":"Utilities","href":"/docs/intro/utilities","docId":"intro/utilities"},{"type":"link","label":"Release Cycle","href":"/docs/intro/release-cycle","docId":"intro/release-cycle"},{"type":"link","label":"Contributing","href":"/docs/intro/contributing","docId":"intro/contributing"},{"type":"link","label":"Sponsoring","href":"/docs/intro/sponsoring","docId":"intro/sponsoring"}],"href":"/docs/category/intro-to-middy"},{"type":"category","label":"Middlewares","collapsible":true,"collapsed":true,"className":"red","items":[{"type":"link","label":"Official middlewares","href":"/docs/middlewares/intro","docId":"middlewares/intro"},{"type":"link","label":"Third-party middlewares","href":"/docs/middlewares/third-party","docId":"middlewares/third-party"},{"type":"link","label":"appconfig","href":"/docs/middlewares/appconfig","docId":"middlewares/appconfig"},{"type":"link","label":"cloudwatch-metrics","href":"/docs/middlewares/cloudwatch-metrics","docId":"middlewares/cloudwatch-metrics"},{"type":"link","label":"do-not-wait-for-empty-event-loop","href":"/docs/middlewares/do-not-wait-for-empty-event-loop","docId":"middlewares/do-not-wait-for-empty-event-loop"},{"type":"link","label":"dynamodb","href":"/docs/middlewares/dynamodb","docId":"middlewares/dynamodb"},{"type":"link","label":"error-logger","href":"/docs/middlewares/error-logger","docId":"middlewares/error-logger"},{"type":"link","label":"event-normalizer","href":"/docs/middlewares/event-normalizer","docId":"middlewares/event-normalizer"},{"type":"link","label":"http-content-encoding","href":"/docs/middlewares/http-content-encoding","docId":"middlewares/http-content-encoding"},{"type":"link","label":"http-content-negotiation","href":"/docs/middlewares/http-content-negotiation","docId":"middlewares/http-content-negotiation"},{"type":"link","label":"http-cors","href":"/docs/middlewares/http-cors","docId":"middlewares/http-cors"},{"type":"link","label":"http-error-handler","href":"/docs/middlewares/http-error-handler","docId":"middlewares/http-error-handler"},{"type":"link","label":"http-event-normalizer","href":"/docs/middlewares/http-event-normalizer","docId":"middlewares/http-event-normalizer"},{"type":"link","label":"http-header-normalizer","href":"/docs/middlewares/http-header-normalizer","docId":"middlewares/http-header-normalizer"},{"type":"link","label":"http-json-body-parser","href":"/docs/middlewares/http-json-body-parser","docId":"middlewares/http-json-body-parser"},{"type":"link","label":"http-multipart-body-parser","href":"/docs/middlewares/http-multipart-body-parser","docId":"middlewares/http-multipart-body-parser"},{"type":"link","label":"http-partial-response","href":"/docs/middlewares/http-partial-response","docId":"middlewares/http-partial-response"},{"type":"link","label":"http-response-serializer","href":"/docs/middlewares/http-response-serializer","docId":"middlewares/http-response-serializer"},{"type":"link","label":"http-security-headers","href":"/docs/middlewares/http-security-headers","docId":"middlewares/http-security-headers"},{"type":"link","label":"http-urlencode-body-parser","href":"/docs/middlewares/http-urlencode-body-parser","docId":"middlewares/http-urlencode-body-parser"},{"type":"link","label":"http-urlencode-path-parser","href":"/docs/middlewares/http-urlencode-path-parser","docId":"middlewares/http-urlencode-path-parser"},{"type":"link","label":"input-output-logger","href":"/docs/middlewares/input-output-logger","docId":"middlewares/input-output-logger"},{"type":"link","label":"rds-signer","href":"/docs/middlewares/rds-signer","docId":"middlewares/rds-signer"},{"type":"link","label":"s3-object-response","href":"/docs/middlewares/s3-object-response","docId":"middlewares/s3-object-response"},{"type":"link","label":"s3","href":"/docs/middlewares/s3","docId":"middlewares/s3"},{"type":"link","label":"secrets-manager","href":"/docs/middlewares/secrets-manager","docId":"middlewares/secrets-manager"},{"type":"link","label":"service-discovery","href":"/docs/middlewares/service-discovery","docId":"middlewares/service-discovery"},{"type":"link","label":"sqs-partial-batch-failure","href":"/docs/middlewares/sqs-partial-batch-failure","docId":"middlewares/sqs-partial-batch-failure"},{"type":"link","label":"ssm","href":"/docs/middlewares/ssm","docId":"middlewares/ssm"},{"type":"link","label":"sts","href":"/docs/middlewares/sts","docId":"middlewares/sts"},{"type":"link","label":"validator","href":"/docs/middlewares/validator","docId":"middlewares/validator"},{"type":"link","label":"warmup","href":"/docs/middlewares/warmup","docId":"middlewares/warmup"},{"type":"link","label":"ws-json-body-parser","href":"/docs/middlewares/ws-json-body-parser","docId":"middlewares/ws-json-body-parser"},{"type":"link","label":"ws-response","href":"/docs/middlewares/ws-response","docId":"middlewares/ws-response"}],"href":"/docs/category/middlewares"},{"type":"category","label":"Writing Middlewares","collapsible":true,"collapsed":true,"className":"red","items":[{"type":"link","label":"Custom Middlewares","href":"/docs/writing-middlewares/intro","docId":"writing-middlewares/intro"},{"type":"link","label":"Configurable Middlewares","href":"/docs/writing-middlewares/configurable-middlewares","docId":"writing-middlewares/configurable-middlewares"},{"type":"link","label":"Inline Middlewares","href":"/docs/writing-middlewares/inline-middlewares","docId":"writing-middlewares/inline-middlewares"},{"type":"link","label":"Internal Storage","href":"/docs/writing-middlewares/internal-storage","docId":"writing-middlewares/internal-storage"},{"type":"link","label":"Handle Timeouts","href":"/docs/writing-middlewares/timeouts","docId":"writing-middlewares/timeouts"},{"type":"link","label":"More Examples","href":"/docs/writing-middlewares/more-examples","docId":"writing-middlewares/more-examples"},{"type":"link","label":"With TypeScript","href":"/docs/writing-middlewares/with-typescript","docId":"writing-middlewares/with-typescript"}],"href":"/docs/category/writing-middlewares"},{"type":"category","label":"Routers","collapsible":true,"collapsed":true,"className":"red","items":[{"type":"link","label":"http-router","href":"/docs/routers/http-router","docId":"routers/http-router"},{"type":"link","label":"ws-router","href":"/docs/routers/ws-router","docId":"routers/ws-router"}],"href":"/docs/category/routers"},{"type":"category","label":"Upgrade","collapsible":true,"collapsed":true,"className":"red","items":[{"type":"link","label":"Upgrade 3.x -> 4.x","href":"/docs/upgrade/3-4","docId":"upgrade/3-4"},{"type":"link","label":"Upgrade 2.x -> 3.x","href":"/docs/upgrade/2-3","docId":"upgrade/2-3"},{"type":"link","label":"Upgrade 1.x -> 2.x","href":"/docs/upgrade/1-2","docId":"upgrade/1-2"},{"type":"link","label":"Upgrade 0.x -> 1.x","href":"/docs/upgrade/0-1","docId":"upgrade/0-1"}],"href":"/docs/category/upgrade"},{"type":"category","label":"AWS Event Examples","collapsible":true,"collapsed":true,"className":"red","items":[{"type":"link","label":"All AWS Events","href":"/docs/events/intro","docId":"events/intro"},{"type":"link","label":"Alexa","href":"/docs/events/alexa","docId":"events/alexa"},{"type":"link","label":"API Gateway Authorizer","href":"/docs/events/api-gateway-authorizer","docId":"events/api-gateway-authorizer"},{"type":"link","label":"API Gateway (HTTP)","href":"/docs/events/api-gateway-http","docId":"events/api-gateway-http"},{"type":"link","label":"API Gateway (REST)","href":"/docs/events/api-gateway-rest","docId":"events/api-gateway-rest"},{"type":"link","label":"API Gateway (WebSocket)","href":"/docs/events/api-gateway-ws","docId":"events/api-gateway-ws"},{"type":"link","label":"Application Load Balancer","href":"/docs/events/application-load-balancer","docId":"events/application-load-balancer"},{"type":"link","label":"AppSync","href":"/docs/events/appsync","docId":"events/appsync"},{"type":"link","label":"CloudFormation","href":"/docs/events/cloud-formation","docId":"events/cloud-formation"},{"type":"link","label":"CloudFront Lambda@Edge","href":"/docs/events/cloud-front","docId":"events/cloud-front"},{"type":"link","label":"CloudTrail","href":"/docs/events/cloud-trail","docId":"events/cloud-trail"},{"type":"link","label":"Cloud Watch Logs","href":"/docs/events/cloud-watch-logs","docId":"events/cloud-watch-logs"},{"type":"link","label":"Code Commit","href":"/docs/events/code-commit","docId":"events/code-commit"},{"type":"link","label":"CodePipeline","href":"/docs/events/code-pipeline","docId":"events/code-pipeline"},{"type":"link","label":"Cognito","href":"/docs/events/cognito","docId":"events/cognito"},{"type":"link","label":"Config","href":"/docs/events/config","docId":"events/config"},{"type":"link","label":"Connect","href":"/docs/events/connect","docId":"events/connect"},{"type":"link","label":"DocumentDB","href":"/docs/events/documentdb","docId":"events/documentdb"},{"type":"link","label":"DynamoDB","href":"/docs/events/dynamodb","docId":"events/dynamodb"},{"type":"link","label":"EC2","href":"/docs/events/ec2","docId":"events/ec2"},{"type":"link","label":"EventBridge","href":"/docs/events/event-bridge","docId":"events/event-bridge"},{"type":"link","label":"Function URL","href":"/docs/events/function-url","docId":"events/function-url"},{"type":"link","label":"IoT Events","href":"/docs/events/iot-events","docId":"events/iot-events"},{"type":"link","label":"Internet of things (IoT)","href":"/docs/events/iot","docId":"events/iot"},{"type":"link","label":"Kafka, Managed Streaming (MSK)","href":"/docs/events/kafka-managed-streaming","docId":"events/kafka-managed-streaming"},{"type":"link","label":"Kafka, Self-Managed","href":"/docs/events/kafka-self-managed","docId":"events/kafka-self-managed"},{"type":"link","label":"Kinesis Firehose","href":"/docs/events/kinesis-firehose","docId":"events/kinesis-firehose"},{"type":"link","label":"Kinesis Streams","href":"/docs/events/kinesis-streams","docId":"events/kinesis-streams"},{"type":"link","label":"Lex","href":"/docs/events/lex","docId":"events/lex"},{"type":"link","label":"MQ","href":"/docs/events/mq","docId":"events/mq"},{"type":"link","label":"RDS","href":"/docs/events/rds","docId":"events/rds"},{"type":"link","label":"S3 Batch","href":"/docs/events/s3-batch","docId":"events/s3-batch"},{"type":"link","label":"S3 Object","href":"/docs/events/s3-object","docId":"events/s3-object"},{"type":"link","label":"S3","href":"/docs/events/s3","docId":"events/s3"},{"type":"link","label":"Secrets Manager","href":"/docs/events/secrets-manager","docId":"events/secrets-manager"},{"type":"link","label":"SES","href":"/docs/events/ses","docId":"events/ses"},{"type":"link","label":"SNS","href":"/docs/events/sns","docId":"events/sns"},{"type":"link","label":"SQS","href":"/docs/events/sqs","docId":"events/sqs"},{"type":"link","label":"VPC Lattice","href":"/docs/events/vpc-lattice","docId":"events/vpc-lattice"},{"type":"link","label":"WorkMail","href":"/docs/events/workmail","docId":"events/workmail"}],"href":"/docs/category/aws-event-examples"},{"type":"category","label":"Integrations","collapsible":true,"collapsed":true,"className":"red","items":[{"type":"link","label":"Integrations","href":"/docs/integrations/intro","docId":"integrations/intro"},{"type":"link","label":"AWS Relational Database Service (RDS)","href":"/docs/integrations/RDS","docId":"integrations/RDS"},{"type":"link","label":"Apollo Server","href":"/docs/integrations/apollo-server","docId":"integrations/apollo-server"},{"type":"link","label":"Powertools for AWS Lambda","href":"/docs/integrations/lambda-powertools","docId":"integrations/lambda-powertools"},{"type":"link","label":"Pino","href":"/docs/integrations/pino","docId":"integrations/pino"},{"type":"link","label":"Serverless Framework","href":"/docs/integrations/serverless-framework","docId":"integrations/serverless-framework"},{"type":"link","label":"Serverless Stack","href":"/docs/integrations/serverless-stack","docId":"integrations/serverless-stack"}],"href":"/docs/category/integrations"},{"type":"category","label":"Best Practices","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Intro","href":"/docs/best-practices/intro","docId":"best-practices/intro"},{"type":"link","label":"Connection reuse","href":"/docs/best-practices/connection-reuse","docId":"best-practices/connection-reuse"},{"type":"link","label":"Internal Context","href":"/docs/best-practices/internal-context","docId":"best-practices/internal-context"},{"type":"link","label":"Bundling Lambda packages","href":"/docs/best-practices/bundling","docId":"best-practices/bundling"},{"type":"link","label":"Small node_modules","href":"/docs/best-practices/small-node-modules","docId":"best-practices/small-node-modules"},{"type":"link","label":"Profiling","href":"/docs/best-practices/profiling","docId":"best-practices/profiling"}],"href":"/docs/category/best-practices"},{"type":"link","label":"FAQ","href":"/docs/faq","docId":"faq"}]},"docs":{"best-practices/bundling":{"id":"best-practices/bundling","title":"Bundling Lambda packages","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"best-practices/connection-reuse":{"id":"best-practices/connection-reuse","title":"Connection reuse","description":"Be sure to set the following environment variable when connecting to AWS services:","sidebar":"tutorialSidebar"},"best-practices/internal-context":{"id":"best-practices/internal-context","title":"Internal Context","description":"Middy is built to be async even at it\'s core. Middlewares can set promises to internal.","sidebar":"tutorialSidebar"},"best-practices/intro":{"id":"best-practices/intro","title":"Intro","description":"In this section you will find some common tips and tricks to ensure you don\'t hit any performance or security issues.","sidebar":"tutorialSidebar"},"best-practices/profiling":{"id":"best-practices/profiling","title":"Profiling","description":"Inside of @middy/core we\'ve added some hook before and after every middleware called, the handler and from start to end of it\'s execution.","sidebar":"tutorialSidebar"},"best-practices/small-node-modules":{"id":"best-practices/small-node-modules","title":"Small node_modules","description":"Using a bundler is the optimal solution, but can be complex depending on your setup.","sidebar":"tutorialSidebar"},"events/alexa":{"id":"events/alexa","title":"Alexa","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"events/api-gateway-authorizer":{"id":"events/api-gateway-authorizer","title":"API Gateway Authorizer","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"events/api-gateway-http":{"id":"events/api-gateway-http","title":"API Gateway (HTTP)","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"events/api-gateway-rest":{"id":"events/api-gateway-rest","title":"API Gateway (REST)","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"events/api-gateway-ws":{"id":"events/api-gateway-ws","title":"API Gateway (WebSocket)","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"events/application-load-balancer":{"id":"events/application-load-balancer","title":"Application Load Balancer","description":"Same as API Gateway (REST)","sidebar":"tutorialSidebar"},"events/appsync":{"id":"events/appsync","title":"AppSync","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"events/cloud-formation":{"id":"events/cloud-formation","title":"CloudFormation","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"events/cloud-front":{"id":"events/cloud-front","title":"CloudFront Lambda@Edge","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"events/cloud-trail":{"id":"events/cloud-trail","title":"CloudTrail","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"events/cloud-watch-logs":{"id":"events/cloud-watch-logs","title":"Cloud Watch Logs","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"events/code-commit":{"id":"events/code-commit","title":"Code Commit","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"events/code-pipeline":{"id":"events/code-pipeline","title":"CodePipeline","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"events/cognito":{"id":"events/cognito","title":"Cognito","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"events/config":{"id":"events/config","title":"Config","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"events/connect":{"id":"events/connect","title":"Connect","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"events/documentdb":{"id":"events/documentdb","title":"DocumentDB","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"events/dynamodb":{"id":"events/dynamodb","title":"DynamoDB","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"events/ec2":{"id":"events/ec2","title":"EC2","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"events/event-bridge":{"id":"events/event-bridge","title":"EventBridge","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"events/function-url":{"id":"events/function-url","title":"Function URL","description":"Same as API Gateway (HTTP), but with support for response streams.","sidebar":"tutorialSidebar"},"events/intro":{"id":"events/intro","title":"All AWS Events","description":"Middy is built to help with all AWS Events that can connect with AWS Lambda.","sidebar":"tutorialSidebar"},"events/iot":{"id":"events/iot","title":"Internet of things (IoT)","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"events/iot-events":{"id":"events/iot-events","title":"IoT Events","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"events/kafka-managed-streaming":{"id":"events/kafka-managed-streaming","title":"Kafka, Managed Streaming (MSK)","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"events/kafka-self-managed":{"id":"events/kafka-self-managed","title":"Kafka, Self-Managed","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"events/kinesis-firehose":{"id":"events/kinesis-firehose","title":"Kinesis Firehose","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"events/kinesis-streams":{"id":"events/kinesis-streams","title":"Kinesis Streams","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"events/lex":{"id":"events/lex","title":"Lex","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"events/mq":{"id":"events/mq","title":"MQ","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"events/rds":{"id":"events/rds","title":"RDS","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"events/s3":{"id":"events/s3","title":"S3","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"events/s3-batch":{"id":"events/s3-batch","title":"S3 Batch","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"events/s3-object":{"id":"events/s3-object","title":"S3 Object","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"events/secrets-manager":{"id":"events/secrets-manager","title":"Secrets Manager","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"events/ses":{"id":"events/ses","title":"SES","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"events/sns":{"id":"events/sns","title":"SNS","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"events/sqs":{"id":"events/sqs","title":"SQS","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"events/vpc-lattice":{"id":"events/vpc-lattice","title":"VPC Lattice","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"events/workmail":{"id":"events/workmail","title":"WorkMail","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"faq":{"id":"faq","title":"FAQ","description":"My lambda keep timing out without responding, what do I do?","sidebar":"tutorialSidebar"},"integrations/apollo-server":{"id":"integrations/apollo-server","title":"Apollo Server","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"integrations/intro":{"id":"integrations/intro","title":"Integrations","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"integrations/lambda-powertools":{"id":"integrations/lambda-powertools","title":"Powertools for AWS Lambda","description":"Powertools for AWS is a developer toolkit to implement Serverless best practices and increase developer velocity.","sidebar":"tutorialSidebar"},"integrations/pino":{"id":"integrations/pino","title":"Pino","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"integrations/RDS":{"id":"integrations/RDS","title":"AWS Relational Database Service (RDS)","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"integrations/serverless-framework":{"id":"integrations/serverless-framework","title":"Serverless Framework","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"integrations/serverless-stack":{"id":"integrations/serverless-stack","title":"Serverless Stack","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"intro/contributing":{"id":"intro/contributing","title":"Contributing","description":"In the spirit of Open Source Software, everyone is very welcome to contribute to this repository. Feel free to raise issues or to submit Pull Requests.","sidebar":"tutorialSidebar"},"intro/early-interrupt":{"id":"intro/early-interrupt","title":"Early return","description":"Some middlewares might need to stop the whole execution flow and return a response immediately.","sidebar":"tutorialSidebar"},"intro/getting-started":{"id":"intro/getting-started","title":"Getting started","description":"Install","sidebar":"tutorialSidebar"},"intro/handling-errors":{"id":"intro/handling-errors","title":"Handling Errors","description":"But, what happens when there is an error?","sidebar":"tutorialSidebar"},"intro/history":{"id":"intro/history","title":"History","description":"A brief history of Middy","sidebar":"tutorialSidebar"},"intro/hooks":{"id":"intro/hooks","title":"Hooks","description":"Middy provides hooks into it\'s core to allow for monitoring, setup, and cleaning that may not be possible within a middleware.","sidebar":"tutorialSidebar"},"intro/how-it-works":{"id":"intro/how-it-works","title":"How it works","description":"Middy implements the classic onion-like middleware pattern, with some peculiar details.","sidebar":"tutorialSidebar"},"intro/influence":{"id":"intro/influence","title":"Influence","description":"Middy has been one of the first projects to encourage the adoption of middlewares to simplify code reuse and best practices within the context of Lambda.","sidebar":"tutorialSidebar"},"intro/intro":{"id":"intro/intro","title":"Introduction","description":"What is middy","sidebar":"tutorialSidebar"},"intro/release-cycle":{"id":"intro/release-cycle","title":"Release Cycle","description":"Each major release has a two (2) month Alpha period, one (1) month Beta, before a full release and becomes Stable.","sidebar":"tutorialSidebar"},"intro/sponsoring":{"id":"intro/sponsoring","title":"Sponsoring","description":"If Middy is adding value to your project or organization and you would like to support its long term maintenance, becoming a sponsor is a great way to do that.","sidebar":"tutorialSidebar"},"intro/streamify-response":{"id":"intro/streamify-response","title":"Streamify Response","description":"Middy also supports streamed responses.","sidebar":"tutorialSidebar"},"intro/testing":{"id":"intro/testing","title":"Testing","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"intro/typescript":{"id":"intro/typescript","title":"Use with TypeScript","description":"Middy can be used with TypeScript with typings built in in every official package.","sidebar":"tutorialSidebar"},"intro/utilities":{"id":"intro/utilities","title":"Utilities","description":"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","sidebar":"tutorialSidebar"},"middlewares/appconfig":{"id":"middlewares/appconfig","title":"appconfig","description":"Fetches AppConfig stored configuration and parses out JSON.","sidebar":"tutorialSidebar"},"middlewares/cloudwatch-metrics":{"id":"middlewares/cloudwatch-metrics","title":"cloudwatch-metrics","description":"This middleware hydrates lambda\'s context.metrics property with an instance of MetricLogger. This instance can be used to easily generate custom metrics from Lambda functions without requiring custom batching code, making blocking network requests or relying on 3rd party software.","sidebar":"tutorialSidebar"},"middlewares/do-not-wait-for-empty-event-loop":{"id":"middlewares/do-not-wait-for-empty-event-loop","title":"do-not-wait-for-empty-event-loop","description":"This middleware sets context.callbackWaitsForEmptyEventLoop property to false.","sidebar":"tutorialSidebar"},"middlewares/dynamodb":{"id":"middlewares/dynamodb","title":"dynamodb","description":"Fetches DynamoDB stored configuration and parses out JSON.","sidebar":"tutorialSidebar"},"middlewares/error-logger":{"id":"middlewares/error-logger","title":"error-logger","description":"Logs the error and propagates it to the next middleware.","sidebar":"tutorialSidebar"},"middlewares/event-normalizer":{"id":"middlewares/event-normalizer","title":"event-normalizer","description":"Middleware for iterating through an AWS event records, parsing and normalizing nested events.","sidebar":"tutorialSidebar"},"middlewares/http-content-encoding":{"id":"middlewares/http-content-encoding","title":"http-content-encoding","description":"This middleware take the preferredEncoding output from @middy/http-content-negotiation and applies the encoding to response.body when a string.","sidebar":"tutorialSidebar"},"middlewares/http-content-negotiation":{"id":"middlewares/http-content-negotiation","title":"http-content-negotiation","description":"This middleware parses Accept-* headers and provides utilities for HTTP content negotiation (charset, encoding, language and media type).","sidebar":"tutorialSidebar"},"middlewares/http-cors":{"id":"middlewares/http-cors","title":"http-cors","description":"This middleware sets HTTP CORS headers (Access-Control-Allow-Origin, Access-Control-Allow-Headers, Access-Control-Allow-Credentials), necessary for making cross-origin requests, to the response object.","sidebar":"tutorialSidebar"},"middlewares/http-error-handler":{"id":"middlewares/http-error-handler","title":"http-error-handler","description":"Automatically handles uncaught errors that contain the properties statusCode (number) and message (string) and creates a proper HTTP response","sidebar":"tutorialSidebar"},"middlewares/http-event-normalizer":{"id":"middlewares/http-event-normalizer","title":"http-event-normalizer","description":"If you need to access the query string or path parameters in an API Gateway event you","sidebar":"tutorialSidebar"},"middlewares/http-header-normalizer":{"id":"middlewares/http-header-normalizer","title":"http-header-normalizer","description":"This middleware normalizes HTTP header names. By default, it normalizes to lowercase. It","sidebar":"tutorialSidebar"},"middlewares/http-json-body-parser":{"id":"middlewares/http-json-body-parser","title":"http-json-body-parser","description":"This middleware automatically parses HTTP requests with a JSON body and converts the body into an","sidebar":"tutorialSidebar"},"middlewares/http-multipart-body-parser":{"id":"middlewares/http-multipart-body-parser","title":"http-multipart-body-parser","description":"Automatically parses HTTP requests with content type multipart/form-data and converts the body into an","sidebar":"tutorialSidebar"},"middlewares/http-partial-response":{"id":"middlewares/http-partial-response","title":"http-partial-response","description":"Filtering the data returned in an object or JSON stringified response has never been so easy. Add the httpPartialResponse middleware to your middleware chain, specify a custom filteringKeyName if you want to and that\'s it. Any consumer of your API will be able to filter your JSON response by adding a querystring key with the fields to filter such as fields=firstname,lastname.","sidebar":"tutorialSidebar"},"middlewares/http-response-serializer":{"id":"middlewares/http-response-serializer","title":"http-response-serializer","description":"The Http Serializer middleware lets you define serialization mechanisms based on the current content negotiation.","sidebar":"tutorialSidebar"},"middlewares/http-security-headers":{"id":"middlewares/http-security-headers","title":"http-security-headers","description":"Applies best practice security headers to responses. It\'s a simplified port of HelmetJS. See HelmetJS documentation for more details.","sidebar":"tutorialSidebar"},"middlewares/http-urlencode-body-parser":{"id":"middlewares/http-urlencode-body-parser","title":"http-urlencode-body-parser","description":"This middleware automatically parses HTTP requests with URL-encoded body (typically the result","sidebar":"tutorialSidebar"},"middlewares/http-urlencode-path-parser":{"id":"middlewares/http-urlencode-path-parser","title":"http-urlencode-path-parser","description":"This middleware automatically parses HTTP requests with URL-encoded paths. This can happen when using path variables (ie //) for an endpoint and the UI encodeURIComponent the values before making the request.","sidebar":"tutorialSidebar"},"middlewares/input-output-logger":{"id":"middlewares/input-output-logger","title":"input-output-logger","description":"Logs the incoming request (input) and the response (output).","sidebar":"tutorialSidebar"},"middlewares/intro":{"id":"middlewares/intro","title":"Official middlewares","description":"Middy comes with a series of additional (opt-in) plugins that are officially maintained by the core team and kept in sync with every release of the core package.","sidebar":"tutorialSidebar"},"middlewares/rds-signer":{"id":"middlewares/rds-signer","title":"rds-signer","description":"Fetches RDS credentials to be used when connecting to RDS with IAM roles.","sidebar":"tutorialSidebar"},"middlewares/s3":{"id":"middlewares/s3","title":"s3","description":"Fetches S3 stored configuration and parses out JSON.","sidebar":"tutorialSidebar"},"middlewares/s3-object-response":{"id":"middlewares/s3-object-response","title":"s3-object-response","description":"This middleware is a Proof of Concept and requires real world testing before use, not recommended for production","sidebar":"tutorialSidebar"},"middlewares/secrets-manager":{"id":"middlewares/secrets-manager","title":"secrets-manager","description":"This middleware fetches secrets from AWS Secrets Manager.","sidebar":"tutorialSidebar"},"middlewares/service-discovery":{"id":"middlewares/service-discovery","title":"service-discovery","description":"Fetches Service Discovery instances to be used when connecting to other AWS services.","sidebar":"tutorialSidebar"},"middlewares/sqs-partial-batch-failure":{"id":"middlewares/sqs-partial-batch-failure","title":"sqs-partial-batch-failure","description":"Middleware for handling partially failed SQS batches.","sidebar":"tutorialSidebar"},"middlewares/ssm":{"id":"middlewares/ssm","title":"ssm","description":"This middleware fetches parameters from AWS Systems Manager Parameter Store.","sidebar":"tutorialSidebar"},"middlewares/sts":{"id":"middlewares/sts","title":"sts","description":"Fetches STS credentials to be used when connecting to other AWS services.","sidebar":"tutorialSidebar"},"middlewares/third-party":{"id":"middlewares/third-party","title":"Third-party middlewares","description":"The following middlewares are created and maintained outside this project. We cannot guarantee for its functionality.","sidebar":"tutorialSidebar"},"middlewares/validator":{"id":"middlewares/validator","title":"validator","description":"This middleware automatically validates incoming events and outgoing responses against custom","sidebar":"tutorialSidebar"},"middlewares/warmup":{"id":"middlewares/warmup","title":"warmup","description":"Warmup middleware that helps to reduce the cold-start issue. Compatible by default with serverless-plugin-warmup, but it can be configured to suit your implementation.","sidebar":"tutorialSidebar"},"middlewares/ws-json-body-parser":{"id":"middlewares/ws-json-body-parser","title":"ws-json-body-parser","description":"This middleware automatically parses WebSocket requests with a JSON body and converts the body into an","sidebar":"tutorialSidebar"},"middlewares/ws-response":{"id":"middlewares/ws-response","title":"ws-response","description":"Post message to WebSocket connection.","sidebar":"tutorialSidebar"},"routers/http-router":{"id":"routers/http-router","title":"http-router","description":"This handler can route to requests to one of a nested handler based on method and path of an http event from API Gateway (REST or HTTP) or Elastic Load Balancer.","sidebar":"tutorialSidebar"},"routers/ws-router":{"id":"routers/ws-router","title":"ws-router","description":"This handler can route to requests to one of a nested handler based on routeKey of an WebSocket event from API Gateway (WebSocket).","sidebar":"tutorialSidebar"},"upgrade/0-1":{"id":"upgrade/0-1","title":"Upgrade 0.x -> 1.x","description":"Independent packages structure","sidebar":"tutorialSidebar"},"upgrade/1-2":{"id":"upgrade/1-2","title":"Upgrade 1.x -> 2.x","description":"Version 2.x of Middy no longer supports Node.js versions 10.x. You are highly encouraged to move to Node.js 14.x,","sidebar":"tutorialSidebar"},"upgrade/2-3":{"id":"upgrade/2-3","title":"Upgrade 2.x -> 3.x","description":"Version 3.x of Middy no longer supports Node.js versions 12.x. You are highly encouraged to move to Node.js 16.x.","sidebar":"tutorialSidebar"},"upgrade/3-4":{"id":"upgrade/3-4","title":"Upgrade 3.x -> 4.x","description":"Version 4.x of Middy no longer supports Node.js versions 14.x. You are highly encouraged to move to Node.js 18.x.","sidebar":"tutorialSidebar"},"writing-middlewares/configurable-middlewares":{"id":"writing-middlewares/configurable-middlewares","title":"Configurable Middlewares","description":"In order to make middlewares configurable, they are generally exported as a function that accepts","sidebar":"tutorialSidebar"},"writing-middlewares/inline-middlewares":{"id":"writing-middlewares/inline-middlewares","title":"Inline Middlewares","description":"Sometimes you want to create handlers that serve a very small need and that are not","sidebar":"tutorialSidebar"},"writing-middlewares/internal-storage":{"id":"writing-middlewares/internal-storage","title":"Internal Storage","description":"The handler also contains an internal object that can be used to store values securely between middlewares that","sidebar":"tutorialSidebar"},"writing-middlewares/intro":{"id":"writing-middlewares/intro","title":"Custom Middlewares","description":"A middleware is an object that should contain at least 1 of 3 possible keys:","sidebar":"tutorialSidebar"},"writing-middlewares/more-examples":{"id":"writing-middlewares/more-examples","title":"More Examples","description":"Check the code for existing middlewares to see more examples on how to write a middleware.","sidebar":"tutorialSidebar"},"writing-middlewares/timeouts":{"id":"writing-middlewares/timeouts","title":"Handle Timeouts","description":"When a lambda times out it throws an error that cannot be caught by middy. To work around this middy maintains an AbortController that can be signalled early to allow time to clean up and log the error properly.","sidebar":"tutorialSidebar"},"writing-middlewares/with-typescript":{"id":"writing-middlewares/with-typescript","title":"With TypeScript","description":"here\'s an example of how you can write a custom middleware for a Lambda receiving events from API Gateway:","sidebar":"tutorialSidebar"}}}')}}]); \ No newline at end of file diff --git a/assets/js/949815f5.49d9a0c3.js b/assets/js/949815f5.49d9a0c3.js new file mode 100644 index 000000000..6a24cb6c3 --- /dev/null +++ b/assets/js/949815f5.49d9a0c3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[8394],{5707:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>s,default:()=>c,frontMatter:()=>o,metadata:()=>r,toc:()=>m});var a=n(5893),i=n(1151);const o={title:"Kafka, Managed Streaming (MSK)"},s=void 0,r={id:"events/kafka-managed-streaming",title:"Kafka, Managed Streaming (MSK)",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/events/kafka-managed-streaming.md",sourceDirName:"events",slug:"/events/kafka-managed-streaming",permalink:"/docs/events/kafka-managed-streaming",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/events/kafka-managed-streaming.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",frontMatter:{title:"Kafka, Managed Streaming (MSK)"},sidebar:"tutorialSidebar",previous:{title:"Internet of things (IoT)",permalink:"/docs/events/iot"},next:{title:"Kafka, Self-Managed",permalink:"/docs/events/kafka-self-managed"}},d={},m=[{value:"AWS Documentation",id:"aws-documentation",level:2},{value:"Example",id:"example",level:2}];function l(e){const t={a:"a",admonition:"admonition",code:"code",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,i.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(t.admonition,{type:"caution",children:(0,a.jsx)(t.p,{children:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub."})}),"\n",(0,a.jsx)(t.h2,{id:"aws-documentation",children:"AWS Documentation"}),"\n",(0,a.jsxs)(t.ul,{children:["\n",(0,a.jsx)(t.li,{children:(0,a.jsx)(t.a,{href:"https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html",children:"Using Lambda with Amazon MSK"})}),"\n"]}),"\n",(0,a.jsx)(t.h2,{id:"example",children:"Example"}),"\n",(0,a.jsx)(t.pre,{children:(0,a.jsx)(t.code,{className:"language-javascript",children:"import middy from '@middy/core'\nimport eventNormalizerMiddleware from '@middy/event-normalizer'\n\nexport const handler = middy()\n .use(eventNormalizerMiddleware())\n .handler((event, context, {signal}) => {\n // ...\n })\n"})})]})}function c(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,a.jsx)(t,{...e,children:(0,a.jsx)(l,{...e})}):l(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>r,a:()=>s});var a=n(7294);const i={},o=a.createContext(i);function s(e){const t=a.useContext(o);return a.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:s(e.components),a.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/949815f5.a2e0521d.js b/assets/js/949815f5.a2e0521d.js deleted file mode 100644 index a31dc1c56..000000000 --- a/assets/js/949815f5.a2e0521d.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[8394],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),m=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},c=function(e){var t=m(e.components);return r.createElement(l.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),d=m(n),u=a,f=d["".concat(l,".").concat(u)]||d[u]||p[u]||o;return n?r.createElement(f,i(i({ref:t},c),{},{components:n})):r.createElement(f,i({ref:t},c))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=u;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[d]="string"==typeof e?e:a,i[1]=s;for(var m=2;m<o;m++)i[m]=n[m];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}u.displayName="MDXCreateElement"},1057:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>p,frontMatter:()=>o,metadata:()=>s,toc:()=>m});var r=n(7462),a=(n(7294),n(3905));const o={title:"Kafka, Managed Streaming (MSK)"},i=void 0,s={unversionedId:"events/kafka-managed-streaming",id:"events/kafka-managed-streaming",title:"Kafka, Managed Streaming (MSK)",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/events/kafka-managed-streaming.md",sourceDirName:"events",slug:"/events/kafka-managed-streaming",permalink:"/docs/events/kafka-managed-streaming",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/events/kafka-managed-streaming.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",frontMatter:{title:"Kafka, Managed Streaming (MSK)"},sidebar:"tutorialSidebar",previous:{title:"Internet of things (IoT)",permalink:"/docs/events/iot"},next:{title:"Kafka, Self-Managed",permalink:"/docs/events/kafka-self-managed"}},l={},m=[{value:"AWS Documentation",id:"aws-documentation",level:2},{value:"Example",id:"example",level:2}],c={toc:m},d="wrapper";function p(e){let{components:t,...n}=e;return(0,a.kt)(d,(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.")),(0,a.kt)("h2",{id:"aws-documentation"},"AWS Documentation"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html"},"Using Lambda with Amazon MSK"))),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\nimport eventNormalizerMiddleware from '@middy/event-normalizer'\n\nexport const handler = middy()\n .use(eventNormalizerMiddleware())\n .handler((event, context, {signal}) => {\n // ...\n })\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/958c573d.1bb3f8f4.js b/assets/js/958c573d.1bb3f8f4.js deleted file mode 100644 index f1fcbce62..000000000 --- a/assets/js/958c573d.1bb3f8f4.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[8786],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>b});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var c=r.createContext({}),l=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=l(e.components);return r.createElement(c.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),m=l(n),d=a,b=m["".concat(c,".").concat(d)]||m[d]||u[d]||o;return n?r.createElement(b,i(i({ref:t},p),{},{components:n})):r.createElement(b,i({ref:t},p))}));function b(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=d;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s[m]="string"==typeof e?e:a,i[1]=s;for(var l=2;l<o;l++)i[l]=n[l];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}d.displayName="MDXCreateElement"},6551:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>s,toc:()=>l});var r=n(7462),a=(n(7294),n(3905));const o={title:"S3 Object"},i=void 0,s={unversionedId:"events/s3-object",id:"events/s3-object",title:"S3 Object",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/events/s3-object.md",sourceDirName:"events",slug:"/events/s3-object",permalink:"/docs/events/s3-object",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/events/s3-object.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",frontMatter:{title:"S3 Object"},sidebar:"tutorialSidebar",previous:{title:"S3 Batch",permalink:"/docs/events/s3-batch"},next:{title:"S3",permalink:"/docs/events/s3"}},c={},l=[{value:"AWS Documentation",id:"aws-documentation",level:2},{value:"Example",id:"example",level:2}],p={toc:l},m="wrapper";function u(e){let{components:t,...n}=e;return(0,a.kt)(m,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.")),(0,a.kt)("h2",{id:"aws-documentation"},"AWS Documentation"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://docs.aws.amazon.com/lambda/latest/dg/with-s3.html"},"Transforming S3 Objects with S3 Object Lambda")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://docs.aws.amazon.com/AmazonS3/latest/userguide/transforming-objects.html"},"Transforming objects with S3 Object Lambda"))),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\nimport s3ObjectResponseMiddleware from '@middy/s3-object-response'\nimport {captureAWSv3Client, captureHTTPsGlobal} from 'aws-xray-sdk-core'\n\nexport const handler = middy()\n .use(s3ObjectResponseMiddleware({\n awsClientCapture: captureAWSv3Client,\n httpsCapture: captureHTTPsGlobal,\n bodyType: 'promise'\n }))\n .handler((event, context, {signal}) => {\n // ...\n })\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/958c573d.2c60aa10.js b/assets/js/958c573d.2c60aa10.js new file mode 100644 index 000000000..f6d16a764 --- /dev/null +++ b/assets/js/958c573d.2c60aa10.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[8786],{5585:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>m,frontMatter:()=>a,metadata:()=>r,toc:()=>d});var s=n(5893),o=n(1151);const a={title:"S3 Object"},i=void 0,r={id:"events/s3-object",title:"S3 Object",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/events/s3-object.md",sourceDirName:"events",slug:"/events/s3-object",permalink:"/docs/events/s3-object",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/events/s3-object.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",frontMatter:{title:"S3 Object"},sidebar:"tutorialSidebar",previous:{title:"S3 Batch",permalink:"/docs/events/s3-batch"},next:{title:"S3",permalink:"/docs/events/s3"}},c={},d=[{value:"AWS Documentation",id:"aws-documentation",level:2},{value:"Example",id:"example",level:2}];function l(e){const t={a:"a",admonition:"admonition",code:"code",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,o.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.admonition,{type:"caution",children:(0,s.jsx)(t.p,{children:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub."})}),"\n",(0,s.jsx)(t.h2,{id:"aws-documentation",children:"AWS Documentation"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://docs.aws.amazon.com/lambda/latest/dg/with-s3.html",children:"Transforming S3 Objects with S3 Object Lambda"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://docs.aws.amazon.com/AmazonS3/latest/userguide/transforming-objects.html",children:"Transforming objects with S3 Object Lambda"})}),"\n"]}),"\n",(0,s.jsx)(t.h2,{id:"example",children:"Example"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-javascript",children:"import middy from '@middy/core'\nimport s3ObjectResponseMiddleware from '@middy/s3-object-response'\nimport {captureAWSv3Client, captureHTTPsGlobal} from 'aws-xray-sdk-core'\n\nexport const handler = middy()\n .use(s3ObjectResponseMiddleware({\n awsClientCapture: captureAWSv3Client,\n httpsCapture: captureHTTPsGlobal,\n bodyType: 'promise'\n }))\n .handler((event, context, {signal}) => {\n // ...\n })\n"})})]})}function m(e={}){const{wrapper:t}={...(0,o.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(l,{...e})}):l(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>r,a:()=>i});var s=n(7294);const o={},a=s.createContext(o);function i(e){const t=s.useContext(a);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:i(e.components),s.createElement(a.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/9d43f09c.080e48a0.js b/assets/js/9d43f09c.080e48a0.js new file mode 100644 index 000000000..1c6fd171a --- /dev/null +++ b/assets/js/9d43f09c.080e48a0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[8591],{7663:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>a,default:()=>m,frontMatter:()=>s,metadata:()=>r,toc:()=>c});var i=n(5893),o=n(1151);const s={title:"EC2"},a=void 0,r={id:"events/ec2",title:"EC2",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/events/ec2.md",sourceDirName:"events",slug:"/events/ec2",permalink:"/docs/events/ec2",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/events/ec2.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",frontMatter:{title:"EC2"},sidebar:"tutorialSidebar",previous:{title:"DynamoDB",permalink:"/docs/events/dynamodb"},next:{title:"EventBridge",permalink:"/docs/events/event-bridge"}},d={},c=[{value:"AWS Documentation",id:"aws-documentation",level:2},{value:"Example",id:"example",level:2}];function l(e){const t={a:"a",admonition:"admonition",code:"code",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,o.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.admonition,{type:"caution",children:(0,i.jsx)(t.p,{children:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub."})}),"\n",(0,i.jsx)(t.h2,{id:"aws-documentation",children:"AWS Documentation"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://docs.aws.amazon.com/lambda/latest/dg/services-ec2.html",children:"Using AWS Lambda with Amazon EC2"})}),"\n"]}),"\n",(0,i.jsx)(t.h2,{id:"example",children:"Example"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-javascript",children:"import middy from '@middy/core'\n\nexport const handler = middy()\n .handler((event, context, {signal}) => {\n // ...\n })\n"})})]})}function m(e={}){const{wrapper:t}={...(0,o.a)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(l,{...e})}):l(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>r,a:()=>a});var i=n(7294);const o={},s=i.createContext(o);function a(e){const t=i.useContext(s);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:a(e.components),i.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/9d43f09c.a980de4d.js b/assets/js/9d43f09c.a980de4d.js deleted file mode 100644 index 4babed77f..000000000 --- a/assets/js/9d43f09c.a980de4d.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[8591],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>f});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),l=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=l(e.components);return r.createElement(s.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),d=l(n),m=o,f=d["".concat(s,".").concat(m)]||d[m]||u[m]||a;return n?r.createElement(f,i(i({ref:t},p),{},{components:n})):r.createElement(f,i({ref:t},p))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=m;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[d]="string"==typeof e?e:o,i[1]=c;for(var l=2;l<a;l++)i[l]=n[l];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}m.displayName="MDXCreateElement"},3380:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>u,frontMatter:()=>a,metadata:()=>c,toc:()=>l});var r=n(7462),o=(n(7294),n(3905));const a={title:"EC2"},i=void 0,c={unversionedId:"events/ec2",id:"events/ec2",title:"EC2",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/events/ec2.md",sourceDirName:"events",slug:"/events/ec2",permalink:"/docs/events/ec2",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/events/ec2.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",frontMatter:{title:"EC2"},sidebar:"tutorialSidebar",previous:{title:"DynamoDB",permalink:"/docs/events/dynamodb"},next:{title:"EventBridge",permalink:"/docs/events/event-bridge"}},s={},l=[{value:"AWS Documentation",id:"aws-documentation",level:2},{value:"Example",id:"example",level:2}],p={toc:l},d="wrapper";function u(e){let{components:t,...n}=e;return(0,o.kt)(d,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("admonition",{type:"caution"},(0,o.kt)("p",{parentName:"admonition"},"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.")),(0,o.kt)("h2",{id:"aws-documentation"},"AWS Documentation"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://docs.aws.amazon.com/lambda/latest/dg/services-ec2.html"},"Using AWS Lambda with Amazon EC2"))),(0,o.kt)("h2",{id:"example"},"Example"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\n\nexport const handler = middy()\n .handler((event, context, {signal}) => {\n // ...\n })\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9d560f77.5b92a322.js b/assets/js/9d560f77.5b92a322.js deleted file mode 100644 index 2381b1064..000000000 --- a/assets/js/9d560f77.5b92a322.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[310],{3905:(e,t,n)=>{n.d(t,{Zo:()=>s,kt:()=>y});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var c=r.createContext({}),d=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},s=function(e){var t=d(e.components);return r.createElement(c.Provider,{value:t},e.children)},m="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),m=d(n),u=o,y=m["".concat(c,".").concat(u)]||m[u]||p[u]||a;return n?r.createElement(y,i(i({ref:t},s),{},{components:n})):r.createElement(y,i({ref:t},s))}));function y(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=u;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[m]="string"==typeof e?e:o,i[1]=l;for(var d=2;d<a;d++)i[d]=n[d];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}u.displayName="MDXCreateElement"},7904:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>p,frontMatter:()=>a,metadata:()=>l,toc:()=>d});var r=n(7462),o=(n(7294),n(3905));const a={title:"DynamoDB"},i=void 0,l={unversionedId:"events/dynamodb",id:"events/dynamodb",title:"DynamoDB",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/events/dynamodb.md",sourceDirName:"events",slug:"/events/dynamodb",permalink:"/docs/events/dynamodb",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/events/dynamodb.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",frontMatter:{title:"DynamoDB"},sidebar:"tutorialSidebar",previous:{title:"DocumentDB",permalink:"/docs/events/documentdb"},next:{title:"EC2",permalink:"/docs/events/ec2"}},c={},d=[{value:"AWS Documentation",id:"aws-documentation",level:2},{value:"Example",id:"example",level:2}],s={toc:d},m="wrapper";function p(e){let{components:t,...n}=e;return(0,o.kt)(m,(0,r.Z)({},s,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("admonition",{type:"caution"},(0,o.kt)("p",{parentName:"admonition"},"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.")),(0,o.kt)("h2",{id:"aws-documentation"},"AWS Documentation"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://docs.aws.amazon.com/lambda/latest/dg/with-ddb.html"},"Using AWS Lambda with Amazon DynamoDB"))),(0,o.kt)("h2",{id:"example"},"Example"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\nimport eventNormalizerMiddleware from '@middy/event-normalizer'\n\nexport const handler = middy()\n .use(eventNormalizerMiddleware())\n .handler((event, context, {signal}) => {\n // ...\n })\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9d560f77.b2ec2bf6.js b/assets/js/9d560f77.b2ec2bf6.js new file mode 100644 index 000000000..182f8a36f --- /dev/null +++ b/assets/js/9d560f77.b2ec2bf6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[310],{8618:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>r,contentTitle:()=>s,default:()=>m,frontMatter:()=>a,metadata:()=>d,toc:()=>c});var o=n(5893),i=n(1151);const a={title:"DynamoDB"},s=void 0,d={id:"events/dynamodb",title:"DynamoDB",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/events/dynamodb.md",sourceDirName:"events",slug:"/events/dynamodb",permalink:"/docs/events/dynamodb",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/events/dynamodb.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",frontMatter:{title:"DynamoDB"},sidebar:"tutorialSidebar",previous:{title:"DocumentDB",permalink:"/docs/events/documentdb"},next:{title:"EC2",permalink:"/docs/events/ec2"}},r={},c=[{value:"AWS Documentation",id:"aws-documentation",level:2},{value:"Example",id:"example",level:2}];function l(e){const t={a:"a",admonition:"admonition",code:"code",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,i.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.admonition,{type:"caution",children:(0,o.jsx)(t.p,{children:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub."})}),"\n",(0,o.jsx)(t.h2,{id:"aws-documentation",children:"AWS Documentation"}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsx)(t.li,{children:(0,o.jsx)(t.a,{href:"https://docs.aws.amazon.com/lambda/latest/dg/with-ddb.html",children:"Using AWS Lambda with Amazon DynamoDB"})}),"\n"]}),"\n",(0,o.jsx)(t.h2,{id:"example",children:"Example"}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-javascript",children:"import middy from '@middy/core'\nimport eventNormalizerMiddleware from '@middy/event-normalizer'\n\nexport const handler = middy()\n .use(eventNormalizerMiddleware())\n .handler((event, context, {signal}) => {\n // ...\n })\n"})})]})}function m(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(l,{...e})}):l(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>d,a:()=>s});var o=n(7294);const i={},a=o.createContext(i);function s(e){const t=o.useContext(a);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function d(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:s(e.components),o.createElement(a.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/a0697f1b.34b26408.js b/assets/js/a0697f1b.34b26408.js deleted file mode 100644 index d2c7f6d57..000000000 --- a/assets/js/a0697f1b.34b26408.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[5258],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>y});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function d(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),l=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},s=function(e){var t=l(e.components);return n.createElement(p.Provider,{value:t},e.children)},m="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,s=d(e,["components","mdxType","originalType","parentName"]),m=l(r),u=a,y=m["".concat(p,".").concat(u)]||m[u]||c[u]||o;return r?n.createElement(y,i(i({ref:t},s),{},{components:r})):n.createElement(y,i({ref:t},s))}));function y(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=u;var d={};for(var p in t)hasOwnProperty.call(t,p)&&(d[p]=t[p]);d.originalType=e,d[m]="string"==typeof e?e:a,i[1]=d;for(var l=2;l<o;l++)i[l]=r[l];return n.createElement.apply(null,i)}return n.createElement.apply(null,r)}u.displayName="MDXCreateElement"},5549:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>c,frontMatter:()=>o,metadata:()=>d,toc:()=>l});var n=r(7462),a=(r(7294),r(3905));const o={title:"VPC Lattice"},i=void 0,d={unversionedId:"events/vpc-lattice",id:"events/vpc-lattice",title:"VPC Lattice",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/events/vpc-lattice.md",sourceDirName:"events",slug:"/events/vpc-lattice",permalink:"/docs/events/vpc-lattice",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/events/vpc-lattice.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",frontMatter:{title:"VPC Lattice"},sidebar:"tutorialSidebar",previous:{title:"SQS",permalink:"/docs/events/sqs"},next:{title:"WorkMail",permalink:"/docs/events/workmail"}},p={},l=[{value:"AWS Documentation",id:"aws-documentation",level:2},{value:"Example",id:"example",level:2}],s={toc:l},m="wrapper";function c(e){let{components:t,...r}=e;return(0,a.kt)(m,(0,n.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.")),(0,a.kt)("p",null,"We recommend using ",(0,a.kt)("inlineCode",{parentName:"p"},"@middy/http-event-normalizer")," if you place to use any of the following: ",(0,a.kt)("inlineCode",{parentName:"p"},"@middy/http-json-body-parser"),", ",(0,a.kt)("inlineCode",{parentName:"p"},"@middy/http-multipart-body-parser"),", ",(0,a.kt)("inlineCode",{parentName:"p"},"@middy/http-urlencode-body-parser"),", ",(0,a.kt)("inlineCode",{parentName:"p"},"@middy/http-partial-response")),(0,a.kt)("h2",{id:"aws-documentation"},"AWS Documentation"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://docs.aws.amazon.com/lambda/latest/dg/services-vpc-lattice.html"},"Using AWS Lambda with Amazon VPC Lattice"))),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\nimport errorLoggerMiddleware from '@middy/error-logger'\nimport inputOutputLoggerMiddleware from '@middy/input-output-logger'\nimport httpContentNegotiationMiddleware from '@middy/http-content-negotiation'\nimport httpContentEncodingMiddleware from '@middy/http-content-encoding'\nimport httpCorsMiddleware from '@middy/http-cors'\nimport httpErrorHandlerMiddleware from '@middy/http-error-handler'\nimport httpEventNormalizerMiddleware from '@middy/http-event-normalizer' // required\nimport httpHeaderNormalizerMiddleware from '@middy/http-header-normalizer'\nimport httpJsonBodyParserMiddleware from '@middy/http-json-body-parser'\nimport httpMultipartBodyParserMiddleware from '@middy/http-multipart-body-parser'\nimport httpPartialResponseMiddleware from '@middy/http-partial-response'\nimport httpResponseSerializerMiddleware from '@middy/http-response-serializer'\nimport httpSecurityHeadersMiddleware from '@middy/http-security-headers'\nimport httpUrlencodeBodyParserMiddleware from '@middy/http-urlencode-body-parser'\nimport httpUrlencodePathParametersParserMiddleware from '@middy/http-urlencode-path-parser'\nimport validatorMiddleware from 'validator'\nimport warmupMiddleware from 'warmup'\n\nimport eventSchema from './eventSchema.json' assert { type: 'json' }\nimport responseSchema from './responseSchema.json' assert { type: 'json' }\n\nexport const handler = middy({\n timeoutEarlyResponse: () => {\n return {\n statusCode: 408\n }\n }\n})\n .use(warmupMiddleware())\n .use(httpEventNormalizerMiddleware())\n .use(httpHeaderNormalizerMiddleware())\n .use(\n httpContentNegotiationMiddleware({\n availableLanguages: ['en-CA', 'fr-CA'],\n availableMediaTypes: ['application/json']\n })\n )\n .use(httpUrlencodePathParametersParserMiddleware())\n // Start oneOf\n .use(httpUrlencodeBodyParserMiddleware())\n .use(httpJsonBodyParserMiddleware())\n .use(httpMultipartBodyParserMiddleware())\n // End oneOf\n .use(httpSecurityHeadersMiddleware())\n .use(httpCorsMiddleware())\n .use(httpContentEncodingMiddleware())\n .use(\n httpResponseSerializerMiddleware({\n serializers: [\n {\n regex: /^application\\/json$/,\n serializer: ({ body }) => JSON.stringify(body)\n }\n ],\n default: 'application/json'\n })\n )\n .use(httpPartialResponseMiddleware())\n .use(validatorMiddleware({ eventSchema, responseSchema }))\n .use(httpErrorHandlerMiddleware())\n .handler((event, context, { signal }) => {\n // ...\n })\n")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/a0697f1b.8503c09e.js b/assets/js/a0697f1b.8503c09e.js new file mode 100644 index 000000000..d70d1d563 --- /dev/null +++ b/assets/js/a0697f1b.8503c09e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[5258],{957:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>d,default:()=>m,frontMatter:()=>o,metadata:()=>a,toc:()=>p});var n=r(5893),i=r(1151);const o={title:"VPC Lattice"},d=void 0,a={id:"events/vpc-lattice",title:"VPC Lattice",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/events/vpc-lattice.md",sourceDirName:"events",slug:"/events/vpc-lattice",permalink:"/docs/events/vpc-lattice",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/events/vpc-lattice.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",frontMatter:{title:"VPC Lattice"},sidebar:"tutorialSidebar",previous:{title:"SQS",permalink:"/docs/events/sqs"},next:{title:"WorkMail",permalink:"/docs/events/workmail"}},s={},p=[{value:"AWS Documentation",id:"aws-documentation",level:2},{value:"Example",id:"example",level:2}];function l(e){const t={a:"a",admonition:"admonition",code:"code",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,i.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.admonition,{type:"caution",children:(0,n.jsx)(t.p,{children:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub."})}),"\n",(0,n.jsxs)(t.p,{children:["We recommend using ",(0,n.jsx)(t.code,{children:"@middy/http-event-normalizer"})," if you place to use any of the following: ",(0,n.jsx)(t.code,{children:"@middy/http-json-body-parser"}),", ",(0,n.jsx)(t.code,{children:"@middy/http-multipart-body-parser"}),", ",(0,n.jsx)(t.code,{children:"@middy/http-urlencode-body-parser"}),", ",(0,n.jsx)(t.code,{children:"@middy/http-partial-response"})]}),"\n",(0,n.jsx)(t.h2,{id:"aws-documentation",children:"AWS Documentation"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://docs.aws.amazon.com/lambda/latest/dg/services-vpc-lattice.html",children:"Using AWS Lambda with Amazon VPC Lattice"})}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"example",children:"Example"}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-javascript",children:"import middy from '@middy/core'\nimport errorLoggerMiddleware from '@middy/error-logger'\nimport inputOutputLoggerMiddleware from '@middy/input-output-logger'\nimport httpContentNegotiationMiddleware from '@middy/http-content-negotiation'\nimport httpContentEncodingMiddleware from '@middy/http-content-encoding'\nimport httpCorsMiddleware from '@middy/http-cors'\nimport httpErrorHandlerMiddleware from '@middy/http-error-handler'\nimport httpEventNormalizerMiddleware from '@middy/http-event-normalizer' // required\nimport httpHeaderNormalizerMiddleware from '@middy/http-header-normalizer'\nimport httpJsonBodyParserMiddleware from '@middy/http-json-body-parser'\nimport httpMultipartBodyParserMiddleware from '@middy/http-multipart-body-parser'\nimport httpPartialResponseMiddleware from '@middy/http-partial-response'\nimport httpResponseSerializerMiddleware from '@middy/http-response-serializer'\nimport httpSecurityHeadersMiddleware from '@middy/http-security-headers'\nimport httpUrlencodeBodyParserMiddleware from '@middy/http-urlencode-body-parser'\nimport httpUrlencodePathParametersParserMiddleware from '@middy/http-urlencode-path-parser'\nimport validatorMiddleware from 'validator'\nimport warmupMiddleware from 'warmup'\n\nimport eventSchema from './eventSchema.json' assert { type: 'json' }\nimport responseSchema from './responseSchema.json' assert { type: 'json' }\n\nexport const handler = middy({\n timeoutEarlyResponse: () => {\n return {\n statusCode: 408\n }\n }\n})\n .use(warmupMiddleware())\n .use(httpEventNormalizerMiddleware())\n .use(httpHeaderNormalizerMiddleware())\n .use(\n httpContentNegotiationMiddleware({\n availableLanguages: ['en-CA', 'fr-CA'],\n availableMediaTypes: ['application/json']\n })\n )\n .use(httpUrlencodePathParametersParserMiddleware())\n // Start oneOf\n .use(httpUrlencodeBodyParserMiddleware())\n .use(httpJsonBodyParserMiddleware())\n .use(httpMultipartBodyParserMiddleware())\n // End oneOf\n .use(httpSecurityHeadersMiddleware())\n .use(httpCorsMiddleware())\n .use(httpContentEncodingMiddleware())\n .use(\n httpResponseSerializerMiddleware({\n serializers: [\n {\n regex: /^application\\/json$/,\n serializer: ({ body }) => JSON.stringify(body)\n }\n ],\n default: 'application/json'\n })\n )\n .use(httpPartialResponseMiddleware())\n .use(validatorMiddleware({ eventSchema, responseSchema }))\n .use(httpErrorHandlerMiddleware())\n .handler((event, context, { signal }) => {\n // ...\n })\n"})})]})}function m(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(l,{...e})}):l(e)}},1151:(e,t,r)=>{r.d(t,{Z:()=>a,a:()=>d});var n=r(7294);const i={},o=n.createContext(i);function d(e){const t=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:d(e.components),n.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/a07e9812.09648006.js b/assets/js/a07e9812.09648006.js new file mode 100644 index 000000000..3268fd7a2 --- /dev/null +++ b/assets/js/a07e9812.09648006.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[2511],{6916:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>r,default:()=>m,frontMatter:()=>o,metadata:()=>a,toc:()=>c});var s=n(5893),i=n(1151);const o={title:"RDS"},r=void 0,a={id:"events/rds",title:"RDS",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/events/rds.md",sourceDirName:"events",slug:"/events/rds",permalink:"/docs/events/rds",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/events/rds.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",frontMatter:{title:"RDS"},sidebar:"tutorialSidebar",previous:{title:"MQ",permalink:"/docs/events/mq"},next:{title:"S3 Batch",permalink:"/docs/events/s3-batch"}},d={},c=[{value:"AWS Documentation",id:"aws-documentation",level:2},{value:"Example",id:"example",level:2}];function l(e){const t={a:"a",admonition:"admonition",code:"code",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,i.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.admonition,{type:"caution",children:(0,s.jsx)(t.p,{children:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub."})}),"\n",(0,s.jsx)(t.h2,{id:"aws-documentation",children:"AWS Documentation"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://docs.aws.amazon.com/lambda/latest/dg/services-rds.html",children:"Using AWS Lambda with Amazon RDS"})}),"\n"]}),"\n",(0,s.jsx)(t.h2,{id:"example",children:"Example"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-javascript",children:"import middy from '@middy/core'\nimport eventNormalizerMiddleware from '@middy/event-normalizer'\n\nexport const handler = middy()\n .use(eventNormalizerMiddleware()) // RDS -> SNS -> Lambda\n .handler((event, context, {signal}) => {\n // ...\n })\n"})})]})}function m(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(l,{...e})}):l(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>a,a:()=>r});var s=n(7294);const i={},o=s.createContext(i);function r(e){const t=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),s.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/a07e9812.570f67a7.js b/assets/js/a07e9812.570f67a7.js deleted file mode 100644 index 5b8c71835..000000000 --- a/assets/js/a07e9812.570f67a7.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[2511],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>f});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function s(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var l=n.createContext({}),c=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=c(e.components);return n.createElement(l.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),d=c(r),u=a,f=d["".concat(l,".").concat(u)]||d[u]||m[u]||o;return r?n.createElement(f,i(i({ref:t},p),{},{components:r})):n.createElement(f,i({ref:t},p))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=u;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[d]="string"==typeof e?e:a,i[1]=s;for(var c=2;c<o;c++)i[c]=r[c];return n.createElement.apply(null,i)}return n.createElement.apply(null,r)}u.displayName="MDXCreateElement"},7963:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>s,toc:()=>c});var n=r(7462),a=(r(7294),r(3905));const o={title:"RDS"},i=void 0,s={unversionedId:"events/rds",id:"events/rds",title:"RDS",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/events/rds.md",sourceDirName:"events",slug:"/events/rds",permalink:"/docs/events/rds",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/events/rds.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",frontMatter:{title:"RDS"},sidebar:"tutorialSidebar",previous:{title:"MQ",permalink:"/docs/events/mq"},next:{title:"S3 Batch",permalink:"/docs/events/s3-batch"}},l={},c=[{value:"AWS Documentation",id:"aws-documentation",level:2},{value:"Example",id:"example",level:2}],p={toc:c},d="wrapper";function m(e){let{components:t,...r}=e;return(0,a.kt)(d,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.")),(0,a.kt)("h2",{id:"aws-documentation"},"AWS Documentation"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://docs.aws.amazon.com/lambda/latest/dg/services-rds.html"},"Using AWS Lambda with Amazon RDS"))),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\nimport eventNormalizerMiddleware from '@middy/event-normalizer'\n\nexport const handler = middy()\n .use(eventNormalizerMiddleware()) // RDS -> SNS -> Lambda\n .handler((event, context, {signal}) => {\n // ...\n })\n")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/a17e0e42.13707390.js b/assets/js/a17e0e42.13707390.js new file mode 100644 index 000000000..7c44c7a89 --- /dev/null +++ b/assets/js/a17e0e42.13707390.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[2201],{5276:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>o,default:()=>p,frontMatter:()=>i,metadata:()=>d,toc:()=>u});var s=t(5893),r=t(1151),a=t(4866),l=t(5162);const i={title:"s3"},o=void 0,d={id:"middlewares/s3",title:"s3",description:"Fetches S3 stored configuration and parses out JSON.",source:"@site/docs/middlewares/s3.md",sourceDirName:"middlewares",slug:"/middlewares/s3",permalink:"/docs/middlewares/s3",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/middlewares/s3.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",frontMatter:{title:"s3"},sidebar:"tutorialSidebar",previous:{title:"s3-object-response",permalink:"/docs/middlewares/s3-object-response"},next:{title:"secrets-manager",permalink:"/docs/middlewares/secrets-manager"}},c={},u=[{value:"Install",id:"install",level:2},{value:"Options",id:"options",level:2},{value:"Sample usage",id:"sample-usage",level:2},{value:"Bundling",id:"bundling",level:2},{value:"Usage with TypeScript",id:"usage-with-typescript",level:2}];function h(e){const n={a:"a",code:"code",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.p,{children:"Fetches S3 stored configuration and parses out JSON."}),"\n",(0,s.jsx)(n.h2,{id:"install",children:"Install"}),"\n",(0,s.jsx)(n.p,{children:"To install this middleware you can use NPM:"}),"\n",(0,s.jsxs)(a.Z,{groupId:"npm2yarn",children:[(0,s.jsx)(l.Z,{value:"npm",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"npm install --save @middy/s3\nnpm install --save-dev @aws-sdk/client-s3\n"})})}),(0,s.jsx)(l.Z,{value:"yarn",label:"Yarn",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"yarn add @middy/s3\nyarn add --dev @aws-sdk/client-s3\n"})})}),(0,s.jsx)(l.Z,{value:"pnpm",label:"pnpm",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"pnpm add @middy/s3\npnpm add --save-dev @aws-sdk/client-s3\n"})})})]}),"\n",(0,s.jsx)(n.h2,{id:"options",children:"Options"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"AwsClient"})," (object) (default ",(0,s.jsx)(n.code,{children:"S3Client"}),"): S3Client class constructor (i.e. that has been instrumented with AWS XRay). Must be from ",(0,s.jsx)(n.code,{children:"@aws-sdk/client-appconfig"}),"."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"awsClientOptions"})," (object) (default ",(0,s.jsx)(n.code,{children:"undefined"}),"): Options to pass to S3Client class constructor."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"awsClientAssumeRole"})," (string) (default ",(0,s.jsx)(n.code,{children:"undefined"}),"): Internal key where secrets are stored. See ",(0,s.jsx)(n.a,{href:"/docs/middlewares/sts",children:"@middy/sts"})," on to set this."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"awsClientCapture"})," (function) (default ",(0,s.jsx)(n.code,{children:"undefined"}),"): Enable XRay by passing ",(0,s.jsx)(n.code,{children:"captureAWSv3Client"})," from ",(0,s.jsx)(n.code,{children:"aws-xray-sdk"})," in."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"fetchData"})," (object) (required): Mapping of internal key name to API request parameters."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"disablePrefetch"})," (boolean) (default ",(0,s.jsx)(n.code,{children:"false"}),"): On cold start requests will trigger early if they can. Setting ",(0,s.jsx)(n.code,{children:"awsClientAssumeRole"})," disables prefetch."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"cacheKey"})," (string) (default ",(0,s.jsx)(n.code,{children:"s3"}),"): Cache key for the fetched data responses. Must be unique across all middleware."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"cacheExpiry"})," (number) (default ",(0,s.jsx)(n.code,{children:"-1"}),"): How long fetch data responses should be cached for. ",(0,s.jsx)(n.code,{children:"-1"}),": cache forever, ",(0,s.jsx)(n.code,{children:"0"}),": never cache, ",(0,s.jsx)(n.code,{children:"n"}),": cache for n ms."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"setToContext"})," (boolean) (default ",(0,s.jsx)(n.code,{children:"false"}),"): Store credentials to ",(0,s.jsx)(n.code,{children:"request.context"}),"."]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"NOTES:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Lambda is required to have IAM permission for ",(0,s.jsx)(n.code,{children:"s3:GetObject"})]}),"\n",(0,s.jsxs)(n.li,{children:["If the file is stored without ",(0,s.jsx)(n.code,{children:"ContentType"}),", you can set it on the response using ",(0,s.jsx)(n.code,{children:"ResponseContentType"})," as part of the input"]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"sample-usage",children:"Sample usage"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-javascript",children:"import middy from '@middy/core'\nimport s3 from '@middy/s3'\n\nconst lambdaHandler = (event, context) => {\n console.log(context.config)\n const response = {\n statusCode: 200,\n headers: {},\n body: JSON.stringify({ message: 'hello world' })\n }\n\n return response\n}\n\nexport const handler = middy()\n .use(\n s3({\n fetchData: {\n config: {\n Bucket: '...',\n Key: '...'\n }\n },\n setToContext: true\n })\n )\n .handler(lambdaHandler)\n"})}),"\n",(0,s.jsx)(n.h2,{id:"bundling",children:"Bundling"}),"\n",(0,s.jsxs)(n.p,{children:["To exclude ",(0,s.jsx)(n.code,{children:"@aws-sdk"})," add ",(0,s.jsx)(n.code,{children:"@aws-sdk/client-s3"})," to the exclude list."]}),"\n",(0,s.jsx)(n.h2,{id:"usage-with-typescript",children:"Usage with TypeScript"}),"\n",(0,s.jsxs)(n.p,{children:["Data in an S3 object can be stored as arbitrary structured data. It's not possible to know in advance what shape the fetched data will have, so by default the fetched parameters will have type ",(0,s.jsx)(n.code,{children:"unknown"}),"."]}),"\n",(0,s.jsxs)(n.p,{children:["You can provide some type hints by leveraging the ",(0,s.jsx)(n.code,{children:"s3Req"})," utility function. This function allows you to specify what's the expected type that will be fetched for every S3 request."]}),"\n",(0,s.jsxs)(n.p,{children:["The idea is that, for every request specified in the ",(0,s.jsx)(n.code,{children:"fetchData"})," option, rather than just providing the parameter configuration as an object, you can wrap it in a ",(0,s.jsx)(n.code,{children:"s3Req<ParamType>(config)"})," call. Internally, ",(0,s.jsx)(n.code,{children:"s3Req"})," is a function that will return ",(0,s.jsx)(n.code,{children:"config"})," as received, but it allows you to use generics to provide type hints for the expected fetched value type for that request."]}),"\n",(0,s.jsx)(n.p,{children:"This way TypeScript can understand how to treat the additional data attached to the context and stored in the internal storage."}),"\n",(0,s.jsxs)(n.p,{children:["The following example illustrates how to use ",(0,s.jsx)(n.code,{children:"s3Req"}),":"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"import middy from '@middy/core'\nimport s3, { s3Req } from '@middy/s3'\n\nconst handler = middy((event, context) => {\n console.log(context.config)\n const response = {\n statusCode: 200,\n headers: {},\n body: JSON.stringify({ message: 'hello world' })\n }\n\n return response\n})\n\nhandler.use(\n s3({\n fetchData: {\n config: s3Req<{field1: string, field2: string, field3: number}>({\n Bucket: '...',\n Key: '...'\n }\n }),\n setToContext: true\n })\n)\n.before(async (request) => {\n const data = await getInternal('config', request)\n // data.config.field1 (string)\n // data.config.field2 (string)\n // data.config.field3 (number)\n})\n"})})]})}function p(e={}){const{wrapper:n}={...(0,r.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}},5162:(e,n,t)=>{t.d(n,{Z:()=>l});t(7294);var s=t(6010);const r={tabItem:"tabItem_Ymn6"};var a=t(5893);function l(e){let{children:n,hidden:t,className:l}=e;return(0,a.jsx)("div",{role:"tabpanel",className:(0,s.Z)(r.tabItem,l),hidden:t,children:n})}},4866:(e,n,t)=>{t.d(n,{Z:()=>w});var s=t(7294),r=t(6010),a=t(2466),l=t(6550),i=t(469),o=t(1980),d=t(7392),c=t(12);function u(e){return s.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,s.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function h(e){const{values:n,children:t}=e;return(0,s.useMemo)((()=>{const e=n??function(e){return u(e).map((e=>{let{props:{value:n,label:t,attributes:s,default:r}}=e;return{value:n,label:t,attributes:s,default:r}}))}(t);return function(e){const n=(0,d.l)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[n,t])}function p(e){let{value:n,tabValues:t}=e;return t.some((e=>e.value===n))}function f(e){let{queryString:n=!1,groupId:t}=e;const r=(0,l.k6)(),a=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t});return[(0,o._X)(a),(0,s.useCallback)((e=>{if(!a)return;const n=new URLSearchParams(r.location.search);n.set(a,e),r.replace({...r.location,search:n.toString()})}),[a,r])]}function m(e){const{defaultValue:n,queryString:t=!1,groupId:r}=e,a=h(e),[l,o]=(0,s.useState)((()=>function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(n){if(!p({value:n,tabValues:t}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const s=t.find((e=>e.default))??t[0];if(!s)throw new Error("Unexpected error: 0 tabValues");return s.value}({defaultValue:n,tabValues:a}))),[d,u]=f({queryString:t,groupId:r}),[m,x]=function(e){let{groupId:n}=e;const t=function(e){return e?`docusaurus.tab.${e}`:null}(n),[r,a]=(0,c.Nk)(t);return[r,(0,s.useCallback)((e=>{t&&a.set(e)}),[t,a])]}({groupId:r}),b=(()=>{const e=d??m;return p({value:e,tabValues:a})?e:null})();(0,i.Z)((()=>{b&&o(b)}),[b]);return{selectedValue:l,selectValue:(0,s.useCallback)((e=>{if(!p({value:e,tabValues:a}))throw new Error(`Can't select invalid tab value=${e}`);o(e),u(e),x(e)}),[u,x,a]),tabValues:a}}var x=t(2389);const b={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var j=t(5893);function g(e){let{className:n,block:t,selectedValue:s,selectValue:l,tabValues:i}=e;const o=[],{blockElementScrollPositionUntilNextRender:d}=(0,a.o5)(),c=e=>{const n=e.currentTarget,t=o.indexOf(n),r=i[t].value;r!==s&&(d(n),l(r))},u=e=>{let n=null;switch(e.key){case"Enter":c(e);break;case"ArrowRight":{const t=o.indexOf(e.currentTarget)+1;n=o[t]??o[0];break}case"ArrowLeft":{const t=o.indexOf(e.currentTarget)-1;n=o[t]??o[o.length-1];break}}n?.focus()};return(0,j.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,r.Z)("tabs",{"tabs--block":t},n),children:i.map((e=>{let{value:n,label:t,attributes:a}=e;return(0,j.jsx)("li",{role:"tab",tabIndex:s===n?0:-1,"aria-selected":s===n,ref:e=>o.push(e),onKeyDown:u,onClick:c,...a,className:(0,r.Z)("tabs__item",b.tabItem,a?.className,{"tabs__item--active":s===n}),children:t??n},n)}))})}function y(e){let{lazy:n,children:t,selectedValue:r}=e;const a=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){const e=a.find((e=>e.props.value===r));return e?(0,s.cloneElement)(e,{className:"margin-top--md"}):null}return(0,j.jsx)("div",{className:"margin-top--md",children:a.map(((e,n)=>(0,s.cloneElement)(e,{key:n,hidden:e.props.value!==r})))})}function v(e){const n=m(e);return(0,j.jsxs)("div",{className:(0,r.Z)("tabs-container",b.tabList),children:[(0,j.jsx)(g,{...e,...n}),(0,j.jsx)(y,{...e,...n})]})}function w(e){const n=(0,x.Z)();return(0,j.jsx)(v,{...e,children:u(e.children)},String(n))}},1151:(e,n,t)=>{t.d(n,{Z:()=>i,a:()=>l});var s=t(7294);const r={},a=s.createContext(r);function l(e){const n=s.useContext(a);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:l(e.components),s.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/a17e0e42.956b919b.js b/assets/js/a17e0e42.956b919b.js deleted file mode 100644 index 11893f1bf..000000000 --- a/assets/js/a17e0e42.956b919b.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[2201],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>f});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},l=Object.keys(e);for(a=0;a<l.length;a++)n=l[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a<l.length;a++)n=l[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var o=a.createContext({}),u=function(e){var t=a.useContext(o),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=u(e.components);return a.createElement(o.Provider,{value:t},e.children)},c="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,l=e.originalType,o=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),c=u(n),m=r,f=c["".concat(o,".").concat(m)]||c[m]||p[m]||l;return n?a.createElement(f,i(i({ref:t},d),{},{components:n})):a.createElement(f,i({ref:t},d))}));function f(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=n.length,i=new Array(l);i[0]=m;var s={};for(var o in t)hasOwnProperty.call(t,o)&&(s[o]=t[o]);s.originalType=e,s[c]="string"==typeof e?e:r,i[1]=s;for(var u=2;u<l;u++)i[u]=n[u];return a.createElement.apply(null,i)}return a.createElement.apply(null,n)}m.displayName="MDXCreateElement"},5162:(e,t,n)=>{n.d(t,{Z:()=>i});var a=n(7294),r=n(6010);const l={tabItem:"tabItem_Ymn6"};function i(e){let{children:t,hidden:n,className:i}=e;return a.createElement("div",{role:"tabpanel",className:(0,r.Z)(l.tabItem,i),hidden:n},t)}},4866:(e,t,n)=>{n.d(t,{Z:()=>N});var a=n(7462),r=n(7294),l=n(6010),i=n(2466),s=n(6550),o=n(1980),u=n(7392),d=n(12);function c(e){return function(e){return r.Children.map(e,(e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:a,default:r}}=e;return{value:t,label:n,attributes:a,default:r}}))}function p(e){const{values:t,children:n}=e;return(0,r.useMemo)((()=>{const e=t??c(n);return function(e){const t=(0,u.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,n])}function m(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:n}=e;const a=(0,s.k6)(),l=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,o._X)(l),(0,r.useCallback)((e=>{if(!l)return;const t=new URLSearchParams(a.location.search);t.set(l,e),a.replace({...a.location,search:t.toString()})}),[l,a])]}function b(e){const{defaultValue:t,queryString:n=!1,groupId:a}=e,l=p(e),[i,s]=(0,r.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!m({value:t,tabValues:n}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const a=n.find((e=>e.default))??n[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:t,tabValues:l}))),[o,u]=f({queryString:n,groupId:a}),[c,b]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[a,l]=(0,d.Nk)(n);return[a,(0,r.useCallback)((e=>{n&&l.set(e)}),[n,l])]}({groupId:a}),k=(()=>{const e=o??c;return m({value:e,tabValues:l})?e:null})();(0,r.useLayoutEffect)((()=>{k&&s(k)}),[k]);return{selectedValue:i,selectValue:(0,r.useCallback)((e=>{if(!m({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);s(e),u(e),b(e)}),[u,b,l]),tabValues:l}}var k=n(2389);const h={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};function y(e){let{className:t,block:n,selectedValue:s,selectValue:o,tabValues:u}=e;const d=[],{blockElementScrollPositionUntilNextRender:c}=(0,i.o5)(),p=e=>{const t=e.currentTarget,n=d.indexOf(t),a=u[n].value;a!==s&&(c(t),o(a))},m=e=>{let t=null;switch(e.key){case"Enter":p(e);break;case"ArrowRight":{const n=d.indexOf(e.currentTarget)+1;t=d[n]??d[0];break}case"ArrowLeft":{const n=d.indexOf(e.currentTarget)-1;t=d[n]??d[d.length-1];break}}t?.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":n},t)},u.map((e=>{let{value:t,label:n,attributes:i}=e;return r.createElement("li",(0,a.Z)({role:"tab",tabIndex:s===t?0:-1,"aria-selected":s===t,key:t,ref:e=>d.push(e),onKeyDown:m,onClick:p},i,{className:(0,l.Z)("tabs__item",h.tabItem,i?.className,{"tabs__item--active":s===t})}),n??t)})))}function v(e){let{lazy:t,children:n,selectedValue:a}=e;const l=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=l.find((e=>e.props.value===a));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},l.map(((e,t)=>(0,r.cloneElement)(e,{key:t,hidden:e.props.value!==a}))))}function g(e){const t=b(e);return r.createElement("div",{className:(0,l.Z)("tabs-container",h.tabList)},r.createElement(y,(0,a.Z)({},e,t)),r.createElement(v,(0,a.Z)({},e,t)))}function N(e){const t=(0,k.Z)();return r.createElement(g,(0,a.Z)({key:String(t)},e))}},6951:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>o,default:()=>f,frontMatter:()=>s,metadata:()=>u,toc:()=>c});var a=n(7462),r=(n(7294),n(3905)),l=n(4866),i=n(5162);const s={title:"s3"},o=void 0,u={unversionedId:"middlewares/s3",id:"middlewares/s3",title:"s3",description:"Fetches S3 stored configuration and parses out JSON.",source:"@site/docs/middlewares/s3.md",sourceDirName:"middlewares",slug:"/middlewares/s3",permalink:"/docs/middlewares/s3",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/middlewares/s3.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",frontMatter:{title:"s3"},sidebar:"tutorialSidebar",previous:{title:"s3-object-response",permalink:"/docs/middlewares/s3-object-response"},next:{title:"secrets-manager",permalink:"/docs/middlewares/secrets-manager"}},d={},c=[{value:"Install",id:"install",level:2},{value:"Options",id:"options",level:2},{value:"Sample usage",id:"sample-usage",level:2},{value:"Bundling",id:"bundling",level:2}],p={toc:c},m="wrapper";function f(e){let{components:t,...n}=e;return(0,r.kt)(m,(0,a.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"Fetches S3 stored configuration and parses out JSON."),(0,r.kt)("h2",{id:"install"},"Install"),(0,r.kt)("p",null,"To install this middleware you can use NPM:"),(0,r.kt)(l.Z,{groupId:"npm2yarn",mdxType:"Tabs"},(0,r.kt)(i.Z,{value:"npm",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"npm install --save @middy/s3\nnpm install --save-dev @aws-sdk/client-s3\n"))),(0,r.kt)(i.Z,{value:"yarn",label:"Yarn",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"yarn add @middy/s3\nyarn add --dev @aws-sdk/client-s3\n"))),(0,r.kt)(i.Z,{value:"pnpm",label:"pnpm",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"pnpm add @middy/s3\npnpm add --save-dev @aws-sdk/client-s3\n")))),(0,r.kt)("h2",{id:"options"},"Options"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"AwsClient")," (object) (default ",(0,r.kt)("inlineCode",{parentName:"li"},"S3Client"),"): S3Client class constructor (i.e. that has been instrumented with AWS XRay). Must be from ",(0,r.kt)("inlineCode",{parentName:"li"},"@aws-sdk/client-appconfig"),"."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"awsClientOptions")," (object) (default ",(0,r.kt)("inlineCode",{parentName:"li"},"undefined"),"): Options to pass to S3Client class constructor."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"awsClientAssumeRole")," (string) (default ",(0,r.kt)("inlineCode",{parentName:"li"},"undefined"),"): Internal key where secrets are stored. See ",(0,r.kt)("a",{parentName:"li",href:"/docs/middlewares/sts"},"@middy/sts")," on to set this."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"awsClientCapture")," (function) (default ",(0,r.kt)("inlineCode",{parentName:"li"},"undefined"),"): Enable XRay by passing ",(0,r.kt)("inlineCode",{parentName:"li"},"captureAWSv3Client")," from ",(0,r.kt)("inlineCode",{parentName:"li"},"aws-xray-sdk")," in."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"fetchData")," (object) (required): Mapping of internal key name to API request parameters."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"disablePrefetch")," (boolean) (default ",(0,r.kt)("inlineCode",{parentName:"li"},"false"),"): On cold start requests will trigger early if they can. Setting ",(0,r.kt)("inlineCode",{parentName:"li"},"awsClientAssumeRole")," disables prefetch."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"cacheKey")," (string) (default ",(0,r.kt)("inlineCode",{parentName:"li"},"s3"),"): Cache key for the fetched data responses. Must be unique across all middleware."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"cacheExpiry")," (number) (default ",(0,r.kt)("inlineCode",{parentName:"li"},"-1"),"): How long fetch data responses should be cached for. ",(0,r.kt)("inlineCode",{parentName:"li"},"-1"),": cache forever, ",(0,r.kt)("inlineCode",{parentName:"li"},"0"),": never cache, ",(0,r.kt)("inlineCode",{parentName:"li"},"n"),": cache for n ms."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"setToContext")," (boolean) (default ",(0,r.kt)("inlineCode",{parentName:"li"},"false"),"): Store credentials to ",(0,r.kt)("inlineCode",{parentName:"li"},"request.context"),".")),(0,r.kt)("p",null,"NOTES:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Lambda is required to have IAM permission for ",(0,r.kt)("inlineCode",{parentName:"li"},"s3:GetObject")),(0,r.kt)("li",{parentName:"ul"},"If the file is stored without ",(0,r.kt)("inlineCode",{parentName:"li"},"ContentType"),", you can set it on the response using ",(0,r.kt)("inlineCode",{parentName:"li"},"ResponseContentType")," as part of the input")),(0,r.kt)("h2",{id:"sample-usage"},"Sample usage"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\nimport s3 from '@middy/s3'\n\nconst handler = middy((event, context) => {\n console.log(context.config)\n const response = {\n statusCode: 200,\n headers: {},\n body: JSON.stringify({ message: 'hello world' })\n }\n\n return response\n})\n\nhandler.use(\n s3({\n fetchData: {\n config: {\n Bucket: '...',\n Key: '...'\n }\n },\n setToContext: true\n })\n)\n")),(0,r.kt)("h2",{id:"bundling"},"Bundling"),(0,r.kt)("p",null,"To exclude ",(0,r.kt)("inlineCode",{parentName:"p"},"@aws-sdk")," add ",(0,r.kt)("inlineCode",{parentName:"p"},"@aws-sdk/client-s3")," to the exclude list."))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/a2b2d33a.938a0662.js b/assets/js/a2b2d33a.938a0662.js new file mode 100644 index 000000000..79d27cf53 --- /dev/null +++ b/assets/js/a2b2d33a.938a0662.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[8974],{9635:(e,t,i)=>{i.r(t),i.d(t,{assets:()=>a,contentTitle:()=>n,default:()=>c,frontMatter:()=>s,metadata:()=>d,toc:()=>m});var r=i(5893),o=i(1151);const s={title:"More Examples",position:6},n=void 0,d={id:"writing-middlewares/more-examples",title:"More Examples",description:"Check the code for existing middlewares to see more examples on how to write a middleware.",source:"@site/docs/writing-middlewares/06-more-examples.md",sourceDirName:"writing-middlewares",slug:"/writing-middlewares/more-examples",permalink:"/docs/writing-middlewares/more-examples",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/writing-middlewares/06-more-examples.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",sidebarPosition:6,frontMatter:{title:"More Examples",position:6},sidebar:"tutorialSidebar",previous:{title:"Handle Timeouts",permalink:"/docs/writing-middlewares/timeouts"},next:{title:"With TypeScript",permalink:"/docs/writing-middlewares/with-typescript"}},a={},m=[];function l(e){const t={a:"a",p:"p",...(0,o.a)(),...e.components};return(0,r.jsxs)(t.p,{children:["Check the ",(0,r.jsx)(t.a,{href:"https://github.com/middyjs/middy/tree/main/packages",children:"code for existing middlewares"})," to see more examples on how to write a middleware."]})}function c(e={}){const{wrapper:t}={...(0,o.a)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(l,{...e})}):l(e)}},1151:(e,t,i)=>{i.d(t,{Z:()=>d,a:()=>n});var r=i(7294);const o={},s=r.createContext(o);function n(e){const t=r.useContext(s);return r.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function d(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:n(e.components),r.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/a2b2d33a.aacf6f8a.js b/assets/js/a2b2d33a.aacf6f8a.js deleted file mode 100644 index b05922d32..000000000 --- a/assets/js/a2b2d33a.aacf6f8a.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[8974],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>f});var n=r(7294);function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){i(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function s(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r,n,i={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var l=n.createContext({}),c=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},p=function(e){var t=c(e.components);return n.createElement(l.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var r=e.components,i=e.mdxType,o=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),d=c(r),u=i,f=d["".concat(l,".").concat(u)]||d[u]||m[u]||o;return r?n.createElement(f,a(a({ref:t},p),{},{components:r})):n.createElement(f,a({ref:t},p))}));function f(e,t){var r=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var o=r.length,a=new Array(o);a[0]=u;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[d]="string"==typeof e?e:i,a[1]=s;for(var c=2;c<o;c++)a[c]=r[c];return n.createElement.apply(null,a)}return n.createElement.apply(null,r)}u.displayName="MDXCreateElement"},4794:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>m,frontMatter:()=>o,metadata:()=>s,toc:()=>c});var n=r(7462),i=(r(7294),r(3905));const o={title:"More Examples",position:6},a=void 0,s={unversionedId:"writing-middlewares/more-examples",id:"writing-middlewares/more-examples",title:"More Examples",description:"Check the code for existing middlewares to see more examples on how to write a middleware.",source:"@site/docs/writing-middlewares/06-more-examples.md",sourceDirName:"writing-middlewares",slug:"/writing-middlewares/more-examples",permalink:"/docs/writing-middlewares/more-examples",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/writing-middlewares/06-more-examples.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",sidebarPosition:6,frontMatter:{title:"More Examples",position:6},sidebar:"tutorialSidebar",previous:{title:"Handle Timeouts",permalink:"/docs/writing-middlewares/timeouts"},next:{title:"With TypeScript",permalink:"/docs/writing-middlewares/with-typescript"}},l={},c=[],p={toc:c},d="wrapper";function m(e){let{components:t,...r}=e;return(0,i.kt)(d,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"Check the ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/middyjs/middy/tree/main/packages"},"code for existing middlewares")," to see more examples on how to write a middleware."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/a3787fd8.36df0bd8.js b/assets/js/a3787fd8.36df0bd8.js deleted file mode 100644 index 7450bdfc1..000000000 --- a/assets/js/a3787fd8.36df0bd8.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[9576],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>m});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function c(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),s=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},p=function(e){var t=s(e.components);return n.createElement(l.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,l=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),u=s(r),f=o,m=u["".concat(l,".").concat(f)]||u[f]||d[f]||i;return r?n.createElement(m,a(a({ref:t},p),{},{components:r})):n.createElement(m,a({ref:t},p))}));function m(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,a=new Array(i);a[0]=f;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[u]="string"==typeof e?e:o,a[1]=c;for(var s=2;s<i;s++)a[s]=r[s];return n.createElement.apply(null,a)}return n.createElement.apply(null,r)}f.displayName="MDXCreateElement"},6710:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>d,frontMatter:()=>i,metadata:()=>c,toc:()=>s});var n=r(7462),o=(r(7294),r(3905));const i={title:"Influence"},a=void 0,c={unversionedId:"intro/influence",id:"intro/influence",title:"Influence",description:"Middy has been one of the first projects to encourage the adoption of middlewares to simplify code reuse and best practices within the context of Lambda.",source:"@site/docs/intro/08-influence.md",sourceDirName:"intro",slug:"/intro/influence",permalink:"/docs/intro/influence",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/intro/08-influence.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",sidebarPosition:8,frontMatter:{title:"Influence"},sidebar:"tutorialSidebar",previous:{title:"History",permalink:"/docs/intro/history"},next:{title:"Utilities",permalink:"/docs/intro/utilities"}},l={},s=[],p={toc:s},u="wrapper";function d(e){let{components:t,...r}=e;return(0,o.kt)(u,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Middy has been one of the first projects to encourage the adoption of middlewares to simplify code reuse and best practices within the context of Lambda."),(0,o.kt)("p",null,"Since middy started to gain popularity in the Node.js ecosystem, we have seen some independent projects taking the same ideas to other ecosystems:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},".Net port ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/VoxelGroup/Voxel.MiddyNet"},"Voxel.MiddyNet")," ",(0,o.kt)("a",{parentName:"li",href:"https://twitter.com/vgaltes/status/1366371605337825284"},"@vgaltes")),(0,o.kt)("li",{parentName:"ul"},"GoLang port ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/mefellows/vesper"},"Vesper"))),(0,o.kt)("p",null,"Do you have a similar project? Let us know."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/a3787fd8.f9a8a6d5.js b/assets/js/a3787fd8.f9a8a6d5.js new file mode 100644 index 000000000..c6e79113d --- /dev/null +++ b/assets/js/a3787fd8.f9a8a6d5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[9576],{8133:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>r,default:()=>u,frontMatter:()=>s,metadata:()=>c,toc:()=>a});var i=n(5893),o=n(1151);const s={title:"Influence"},r=void 0,c={id:"intro/influence",title:"Influence",description:"Middy has been one of the first projects to encourage the adoption of middlewares to simplify code reuse and best practices within the context of Lambda.",source:"@site/docs/intro/08-influence.md",sourceDirName:"intro",slug:"/intro/influence",permalink:"/docs/intro/influence",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/intro/08-influence.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",sidebarPosition:8,frontMatter:{title:"Influence"},sidebar:"tutorialSidebar",previous:{title:"History",permalink:"/docs/intro/history"},next:{title:"Utilities",permalink:"/docs/intro/utilities"}},d={},a=[];function l(e){const t={a:"a",li:"li",p:"p",ul:"ul",...(0,o.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.p,{children:"Middy has been one of the first projects to encourage the adoption of middlewares to simplify code reuse and best practices within the context of Lambda."}),"\n",(0,i.jsx)(t.p,{children:"Since middy started to gain popularity in the Node.js ecosystem, we have seen some independent projects taking the same ideas to other ecosystems:"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:[".Net port ",(0,i.jsx)(t.a,{href:"https://github.com/VoxelGroup/Voxel.MiddyNet",children:"Voxel.MiddyNet"})," ",(0,i.jsx)(t.a,{href:"https://twitter.com/vgaltes/status/1366371605337825284",children:"@vgaltes"})]}),"\n",(0,i.jsxs)(t.li,{children:["GoLang port ",(0,i.jsx)(t.a,{href:"https://github.com/mefellows/vesper",children:"Vesper"})]}),"\n"]}),"\n",(0,i.jsx)(t.p,{children:"Do you have a similar project? Let us know."})]})}function u(e={}){const{wrapper:t}={...(0,o.a)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(l,{...e})}):l(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>c,a:()=>r});var i=n(7294);const o={},s=i.createContext(o);function r(e){const t=i.useContext(s);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:r(e.components),i.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/a7630442.2196a043.js b/assets/js/a7630442.2196a043.js deleted file mode 100644 index e0ed6f207..000000000 --- a/assets/js/a7630442.2196a043.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[9502],{3905:(e,t,r)=>{r.d(t,{Zo:()=>l,kt:()=>f});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function s(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=n.createContext({}),c=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},l=function(e){var t=c(e.components);return n.createElement(p.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,p=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),u=c(r),m=o,f=u["".concat(p,".").concat(m)]||u[m]||d[m]||i;return r?n.createElement(f,a(a({ref:t},l),{},{components:r})):n.createElement(f,a({ref:t},l))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,a=new Array(i);a[0]=m;var s={};for(var p in t)hasOwnProperty.call(t,p)&&(s[p]=t[p]);s.originalType=e,s[u]="string"==typeof e?e:o,a[1]=s;for(var c=2;c<i;c++)a[c]=r[c];return n.createElement.apply(null,a)}return n.createElement.apply(null,r)}m.displayName="MDXCreateElement"},1822:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>a,default:()=>d,frontMatter:()=>i,metadata:()=>s,toc:()=>c});var n=r(7462),o=(r(7294),r(3905));const i={title:"Sponsoring"},a=void 0,s={unversionedId:"intro/sponsoring",id:"intro/sponsoring",title:"Sponsoring",description:"If Middy is adding value to your project or organization and you would like to support its long term maintenance, becoming a sponsor is a great way to do that.",source:"@site/docs/intro/11-sponsoring.md",sourceDirName:"intro",slug:"/intro/sponsoring",permalink:"/docs/intro/sponsoring",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/intro/11-sponsoring.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",sidebarPosition:11,frontMatter:{title:"Sponsoring"},sidebar:"tutorialSidebar",previous:{title:"Contributing",permalink:"/docs/intro/contributing"},next:{title:"Middlewares",permalink:"/docs/category/middlewares"}},p={},c=[],l={toc:c},u="wrapper";function d(e){let{components:t,...r}=e;return(0,o.kt)(u,(0,n.Z)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"If Middy is adding value to your project or organization and you would like to support its long term maintenance, becoming a sponsor is a great way to do that."),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"https://github.com/sponsors/willfarrell"},"GitHub Sponsors")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/a7630442.30bdd835.js b/assets/js/a7630442.30bdd835.js new file mode 100644 index 000000000..ab458c3a7 --- /dev/null +++ b/assets/js/a7630442.30bdd835.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[9502],{9878:(t,o,n)=>{n.r(o),n.d(o,{assets:()=>d,contentTitle:()=>s,default:()=>u,frontMatter:()=>r,metadata:()=>a,toc:()=>c});var e=n(5893),i=n(1151);const r={title:"Sponsoring"},s=void 0,a={id:"intro/sponsoring",title:"Sponsoring",description:"If Middy is adding value to your project or organization and you would like to support its long term maintenance, becoming a sponsor is a great way to do that.",source:"@site/docs/intro/11-sponsoring.md",sourceDirName:"intro",slug:"/intro/sponsoring",permalink:"/docs/intro/sponsoring",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/intro/11-sponsoring.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",sidebarPosition:11,frontMatter:{title:"Sponsoring"},sidebar:"tutorialSidebar",previous:{title:"Contributing",permalink:"/docs/intro/contributing"},next:{title:"Middlewares",permalink:"/docs/category/middlewares"}},d={},c=[];function p(t){const o={a:"a",p:"p",...(0,i.a)(),...t.components};return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(o.p,{children:"If Middy is adding value to your project or organization and you would like to support its long term maintenance, becoming a sponsor is a great way to do that."}),"\n",(0,e.jsx)(o.p,{children:(0,e.jsx)(o.a,{href:"https://github.com/sponsors/willfarrell",children:"GitHub Sponsors"})})]})}function u(t={}){const{wrapper:o}={...(0,i.a)(),...t.components};return o?(0,e.jsx)(o,{...t,children:(0,e.jsx)(p,{...t})}):p(t)}},1151:(t,o,n)=>{n.d(o,{Z:()=>a,a:()=>s});var e=n(7294);const i={},r=e.createContext(i);function s(t){const o=e.useContext(r);return e.useMemo((function(){return"function"==typeof t?t(o):{...o,...t}}),[o,t])}function a(t){let o;return o=t.disableParentContext?"function"==typeof t.components?t.components(i):t.components||i:s(t.components),e.createElement(r.Provider,{value:o},t.children)}}}]); \ No newline at end of file diff --git a/assets/js/a7bd4aaa.baf2abb2.js b/assets/js/a7bd4aaa.baf2abb2.js new file mode 100644 index 000000000..243a93217 --- /dev/null +++ b/assets/js/a7bd4aaa.baf2abb2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[8518],{8564:(n,e,s)=>{s.r(e),s.d(e,{default:()=>l});s(7294);var r=s(1944),o=s(3320),t=s(4477),i=s(8790),c=s(197),d=s(5893);function u(n){const{version:e}=n;return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(c.Z,{version:e.version,tag:(0,o.os)(e.pluginId,e.version)}),(0,d.jsx)(r.d,{children:e.noIndex&&(0,d.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})]})}function a(n){const{version:e,route:s}=n;return(0,d.jsx)(r.FG,{className:e.className,children:(0,d.jsx)(t.q,{version:e,children:(0,i.H)(s.routes)})})}function l(n){return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(u,{...n}),(0,d.jsx)(a,{...n})]})}}}]); \ No newline at end of file diff --git a/assets/js/a7c9f8b5.6238d387.js b/assets/js/a7c9f8b5.6238d387.js new file mode 100644 index 000000000..8654dfa58 --- /dev/null +++ b/assets/js/a7c9f8b5.6238d387.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[5898],{207:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>a,default:()=>m,frontMatter:()=>o,metadata:()=>r,toc:()=>c});var s=n(5893),i=n(1151);const o={title:"SES"},a=void 0,r={id:"events/ses",title:"SES",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/events/ses.md",sourceDirName:"events",slug:"/events/ses",permalink:"/docs/events/ses",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/events/ses.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",frontMatter:{title:"SES"},sidebar:"tutorialSidebar",previous:{title:"Secrets Manager",permalink:"/docs/events/secrets-manager"},next:{title:"SNS",permalink:"/docs/events/sns"}},d={},c=[{value:"AWS Documentation",id:"aws-documentation",level:2},{value:"Example",id:"example",level:2}];function l(e){const t={a:"a",admonition:"admonition",code:"code",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,i.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.admonition,{type:"caution",children:(0,s.jsx)(t.p,{children:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub."})}),"\n",(0,s.jsx)(t.h2,{id:"aws-documentation",children:"AWS Documentation"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://docs.aws.amazon.com/lambda/latest/dg/services-ses.html",children:"Using AWS Lambda with Amazon SES"})}),"\n"]}),"\n",(0,s.jsx)(t.h2,{id:"example",children:"Example"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-javascript",children:"import middy from '@middy/core'\n\nexport const handler = middy()\n .handler((event, context, {signal}) => {\n // ...\n })\n"})})]})}function m(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(l,{...e})}):l(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>r,a:()=>a});var s=n(7294);const i={},o=s.createContext(i);function a(e){const t=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),s.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/a7c9f8b5.b66d0f76.js b/assets/js/a7c9f8b5.b66d0f76.js deleted file mode 100644 index 92433beac..000000000 --- a/assets/js/a7c9f8b5.b66d0f76.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[5898],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>f});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var c=r.createContext({}),l=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=l(e.components);return r.createElement(c.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),u=l(n),m=a,f=u["".concat(c,".").concat(m)]||u[m]||d[m]||o;return n?r.createElement(f,i(i({ref:t},p),{},{components:n})):r.createElement(f,i({ref:t},p))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=m;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s[u]="string"==typeof e?e:a,i[1]=s;for(var l=2;l<o;l++)i[l]=n[l];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}m.displayName="MDXCreateElement"},6881:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>s,toc:()=>l});var r=n(7462),a=(n(7294),n(3905));const o={title:"SES"},i=void 0,s={unversionedId:"events/ses",id:"events/ses",title:"SES",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/events/ses.md",sourceDirName:"events",slug:"/events/ses",permalink:"/docs/events/ses",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/events/ses.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",frontMatter:{title:"SES"},sidebar:"tutorialSidebar",previous:{title:"Secrets Manager",permalink:"/docs/events/secrets-manager"},next:{title:"SNS",permalink:"/docs/events/sns"}},c={},l=[{value:"AWS Documentation",id:"aws-documentation",level:2},{value:"Example",id:"example",level:2}],p={toc:l},u="wrapper";function d(e){let{components:t,...n}=e;return(0,a.kt)(u,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.")),(0,a.kt)("h2",{id:"aws-documentation"},"AWS Documentation"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://docs.aws.amazon.com/lambda/latest/dg/services-ses.html"},"Using AWS Lambda with Amazon SES"))),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\n\nexport const handler = middy()\n .handler((event, context, {signal}) => {\n // ...\n })\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/a8e9225e.69182c73.js b/assets/js/a8e9225e.69182c73.js deleted file mode 100644 index 8e9214e11..000000000 --- a/assets/js/a8e9225e.69182c73.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[9319],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>f});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function o(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},i=Object.keys(e);for(a=0;a<i.length;a++)n=i[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)n=i[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=a.createContext({}),d=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},p=function(e){var t=d(e.components);return a.createElement(s.Provider,{value:t},e.children)},u="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,s=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),u=d(n),m=r,f=u["".concat(s,".").concat(m)]||u[m]||c[m]||i;return n?a.createElement(f,l(l({ref:t},p),{},{components:n})):a.createElement(f,l({ref:t},p))}));function f(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,l=new Array(i);l[0]=m;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[u]="string"==typeof e?e:r,l[1]=o;for(var d=2;d<i;d++)l[d]=n[d];return a.createElement.apply(null,l)}return a.createElement.apply(null,n)}m.displayName="MDXCreateElement"},5162:(e,t,n)=>{n.d(t,{Z:()=>l});var a=n(7294),r=n(6010);const i={tabItem:"tabItem_Ymn6"};function l(e){let{children:t,hidden:n,className:l}=e;return a.createElement("div",{role:"tabpanel",className:(0,r.Z)(i.tabItem,l),hidden:n},t)}},4866:(e,t,n)=>{n.d(t,{Z:()=>v});var a=n(7462),r=n(7294),i=n(6010),l=n(2466),o=n(6550),s=n(1980),d=n(7392),p=n(12);function u(e){return function(e){return r.Children.map(e,(e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:a,default:r}}=e;return{value:t,label:n,attributes:a,default:r}}))}function c(e){const{values:t,children:n}=e;return(0,r.useMemo)((()=>{const e=t??u(n);return function(e){const t=(0,d.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,n])}function m(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:n}=e;const a=(0,o.k6)(),i=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,s._X)(i),(0,r.useCallback)((e=>{if(!i)return;const t=new URLSearchParams(a.location.search);t.set(i,e),a.replace({...a.location,search:t.toString()})}),[i,a])]}function h(e){const{defaultValue:t,queryString:n=!1,groupId:a}=e,i=c(e),[l,o]=(0,r.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!m({value:t,tabValues:n}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const a=n.find((e=>e.default))??n[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:t,tabValues:i}))),[s,d]=f({queryString:n,groupId:a}),[u,h]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[a,i]=(0,p.Nk)(n);return[a,(0,r.useCallback)((e=>{n&&i.set(e)}),[n,i])]}({groupId:a}),g=(()=>{const e=s??u;return m({value:e,tabValues:i})?e:null})();(0,r.useLayoutEffect)((()=>{g&&o(g)}),[g]);return{selectedValue:l,selectValue:(0,r.useCallback)((e=>{if(!m({value:e,tabValues:i}))throw new Error(`Can't select invalid tab value=${e}`);o(e),d(e),h(e)}),[d,h,i]),tabValues:i}}var g=n(2389);const b={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};function y(e){let{className:t,block:n,selectedValue:o,selectValue:s,tabValues:d}=e;const p=[],{blockElementScrollPositionUntilNextRender:u}=(0,l.o5)(),c=e=>{const t=e.currentTarget,n=p.indexOf(t),a=d[n].value;a!==o&&(u(t),s(a))},m=e=>{let t=null;switch(e.key){case"Enter":c(e);break;case"ArrowRight":{const n=p.indexOf(e.currentTarget)+1;t=p[n]??p[0];break}case"ArrowLeft":{const n=p.indexOf(e.currentTarget)-1;t=p[n]??p[p.length-1];break}}t?.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,i.Z)("tabs",{"tabs--block":n},t)},d.map((e=>{let{value:t,label:n,attributes:l}=e;return r.createElement("li",(0,a.Z)({role:"tab",tabIndex:o===t?0:-1,"aria-selected":o===t,key:t,ref:e=>p.push(e),onKeyDown:m,onClick:c},l,{className:(0,i.Z)("tabs__item",b.tabItem,l?.className,{"tabs__item--active":o===t})}),n??t)})))}function k(e){let{lazy:t,children:n,selectedValue:a}=e;const i=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=i.find((e=>e.props.value===a));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},i.map(((e,t)=>(0,r.cloneElement)(e,{key:t,hidden:e.props.value!==a}))))}function N(e){const t=h(e);return r.createElement("div",{className:(0,i.Z)("tabs-container",b.tabList)},r.createElement(y,(0,a.Z)({},e,t)),r.createElement(k,(0,a.Z)({},e,t)))}function v(e){const t=(0,g.Z)();return r.createElement(N,(0,a.Z)({key:String(t)},e))}},1468:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>s,default:()=>f,frontMatter:()=>o,metadata:()=>d,toc:()=>u});var a=n(7462),r=(n(7294),n(3905)),i=n(4866),l=n(5162);const o={title:"http-content-negotiation"},s=void 0,d={unversionedId:"middlewares/http-content-negotiation",id:"middlewares/http-content-negotiation",title:"http-content-negotiation",description:"This middleware parses Accept-* headers and provides utilities for HTTP content negotiation (charset, encoding, language and media type).",source:"@site/docs/middlewares/http-content-negotiation.md",sourceDirName:"middlewares",slug:"/middlewares/http-content-negotiation",permalink:"/docs/middlewares/http-content-negotiation",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/middlewares/http-content-negotiation.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",frontMatter:{title:"http-content-negotiation"},sidebar:"tutorialSidebar",previous:{title:"http-content-encoding",permalink:"/docs/middlewares/http-content-encoding"},next:{title:"http-cors",permalink:"/docs/middlewares/http-cors"}},p={},u=[{value:"Install",id:"install",level:2},{value:"Options",id:"options",level:2},{value:"Sample usage",id:"sample-usage",level:2}],c={toc:u},m="wrapper";function f(e){let{components:t,...n}=e;return(0,r.kt)(m,(0,a.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"This middleware parses ",(0,r.kt)("inlineCode",{parentName:"p"},"Accept-*")," headers and provides utilities for ",(0,r.kt)("a",{parentName:"p",href:"https://tools.ietf.org/html/rfc7231#section-5.3"},"HTTP content negotiation")," (charset, encoding, language and media type)."),(0,r.kt)("p",null,"By default the middleware parses charsets (",(0,r.kt)("inlineCode",{parentName:"p"},"Accept-Charset"),"), languages (",(0,r.kt)("inlineCode",{parentName:"p"},"Accept-Language"),"), encodings (",(0,r.kt)("inlineCode",{parentName:"p"},"Accept-Encoding"),") and media types (",(0,r.kt)("inlineCode",{parentName:"p"},"Accept"),") during the\n",(0,r.kt)("inlineCode",{parentName:"p"},"before")," phase and expands the ",(0,r.kt)("inlineCode",{parentName:"p"},"event")," object by adding the following properties:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"preferredCharsets")," (",(0,r.kt)("inlineCode",{parentName:"li"},"array"),") - The list of charsets that can be safely used by the app (as the result of the negotiation)"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"preferredCharset")," (",(0,r.kt)("inlineCode",{parentName:"li"},"string"),") - The preferred charset (as the result of the negotiation)"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"preferredEncodings")," (",(0,r.kt)("inlineCode",{parentName:"li"},"array"),") - The list of encodings that can be safely used by the app (as the result of the negotiation)"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"preferredEncoding")," (",(0,r.kt)("inlineCode",{parentName:"li"},"string"),") - The preferred encoding (as the result of the negotiation)"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"preferredLanguages")," (",(0,r.kt)("inlineCode",{parentName:"li"},"array"),") - The list of languages that can be safely used by the app (as the result of the negotiation)"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"preferredLanguage")," (",(0,r.kt)("inlineCode",{parentName:"li"},"string"),") - The preferred language (as the result of the negotiation)"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"preferredMediaTypes")," (",(0,r.kt)("inlineCode",{parentName:"li"},"array"),") - The list of media types that can be safely used by the app (as the result of the negotiation)"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"preferredMediaType")," (",(0,r.kt)("inlineCode",{parentName:"li"},"string"),") - The preferred media types (as the result of the negotiation)")),(0,r.kt)("p",null,"This middleware expects the headers in canonical format, so it should be attached after the ",(0,r.kt)("a",{parentName:"p",href:"#httpheadernormalizer"},(0,r.kt)("inlineCode",{parentName:"a"},"httpHeaderNormalizer"))," middleware.\nIt also can throw an HTTP exception, so it can be convenient to use it in combination with the ",(0,r.kt)("a",{parentName:"p",href:"#httperrorhandler"},(0,r.kt)("inlineCode",{parentName:"a"},"httpErrorHandler")),"."),(0,r.kt)("h2",{id:"install"},"Install"),(0,r.kt)("p",null,"To install this middleware you can use NPM:"),(0,r.kt)(i.Z,{groupId:"npm2yarn",mdxType:"Tabs"},(0,r.kt)(l.Z,{value:"npm",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"npm install --save @middy/http-content-negotiation\n"))),(0,r.kt)(l.Z,{value:"yarn",label:"Yarn",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"yarn add @middy/http-content-negotiation\n"))),(0,r.kt)(l.Z,{value:"pnpm",label:"pnpm",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"pnpm add @middy/http-content-negotiation\n")))),(0,r.kt)("h2",{id:"options"},"Options"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"parseCharsets")," (defaults to ",(0,r.kt)("inlineCode",{parentName:"li"},"true"),") - Allows enabling/disabling the charsets parsing"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"availableCharsets")," (defaults to ",(0,r.kt)("inlineCode",{parentName:"li"},"undefined"),") - Allows defining the list of charsets supported by the Lambda function"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"parseEncodings")," (defaults to ",(0,r.kt)("inlineCode",{parentName:"li"},"true"),") - Allows enabling/disabling the encodings parsing"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"availableEncodings")," (defaults to ",(0,r.kt)("inlineCode",{parentName:"li"},"undefined"),") - Allows defining the list of encodings supported by the Lambda function"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"parseLanguages")," (defaults to ",(0,r.kt)("inlineCode",{parentName:"li"},"true"),") - Allows enabling/disabling the languages parsing"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"availableLanguages")," (defaults to ",(0,r.kt)("inlineCode",{parentName:"li"},"undefined"),") - Allows defining the list of languages supported by the Lambda function"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"parseMediaTypes")," (defaults to ",(0,r.kt)("inlineCode",{parentName:"li"},"true"),") - Allows enabling/disabling the media types parsing"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"availableMediaTypes")," (defaults to ",(0,r.kt)("inlineCode",{parentName:"li"},"undefined"),") - Allows defining the list of media types supported by the Lambda function"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"failOnMismatch")," (defaults to ",(0,r.kt)("inlineCode",{parentName:"li"},"true"),") - If set to true it will throw an HTTP ",(0,r.kt)("inlineCode",{parentName:"li"},"NotAcceptable")," (406) exception when the negotiation fails for one of the headers (e.g. none of the languages requested are supported by the app)")),(0,r.kt)("h2",{id:"sample-usage"},"Sample usage"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\nimport httpContentNegotiation from '@middy/http-content-negotiation'\nimport httpHeaderNormalizer from '@middy/http-header-normalizer'\nimport httpErrorHandler from '@middy/http-error-handler'\n\nexport const handler = middy((event, context) => {\n let message, body\n\n switch (event.preferredLanguage) {\n case 'it-it':\n message = 'Ciao Mondo'\n break\n case 'fr-fr':\n message = 'Bonjour le monde'\n break\n default:\n message = 'Hello world'\n }\n\n switch (event.preferredMediaType) {\n case 'application/xml':\n body = `<message>${message}</message>`\n break\n case 'application/yaml':\n body = `---\\nmessage: ${message}`\n break\n case 'application/json':\n body = JSON.stringify({ message })\n break\n default:\n body = message\n }\n\n return {\n statusCode: 200,\n body\n }\n})\n\nhandler\n .use(httpHeaderNormalizer())\n .use(httpContentNegotiation({\n parseCharsets: false,\n parseEncodings: false,\n availableLanguages: ['it-it', 'fr-fr', 'en'],\n availableMediaTypes: ['application/xml', 'application/yaml', 'application/json', 'text/plain']\n }))\n .use(httpErrorHandler())\n\n")))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/a8e9225e.cbd3d422.js b/assets/js/a8e9225e.cbd3d422.js new file mode 100644 index 000000000..99f8a2f35 --- /dev/null +++ b/assets/js/a8e9225e.cbd3d422.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[9319],{4579:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>o,default:()=>p,frontMatter:()=>l,metadata:()=>d,toc:()=>u});var a=t(5893),r=t(1151),s=t(4866),i=t(5162);const l={title:"http-content-negotiation"},o=void 0,d={id:"middlewares/http-content-negotiation",title:"http-content-negotiation",description:"This middleware parses Accept-* headers and provides utilities for HTTP content negotiation (charset, encoding, language and media type).",source:"@site/docs/middlewares/http-content-negotiation.md",sourceDirName:"middlewares",slug:"/middlewares/http-content-negotiation",permalink:"/docs/middlewares/http-content-negotiation",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/middlewares/http-content-negotiation.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",frontMatter:{title:"http-content-negotiation"},sidebar:"tutorialSidebar",previous:{title:"http-content-encoding",permalink:"/docs/middlewares/http-content-encoding"},next:{title:"http-cors",permalink:"/docs/middlewares/http-cors"}},c={},u=[{value:"Install",id:"install",level:2},{value:"Options",id:"options",level:2},{value:"Sample usage",id:"sample-usage",level:2}];function h(e){const n={a:"a",code:"code",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(n.p,{children:["This middleware parses ",(0,a.jsx)(n.code,{children:"Accept-*"})," headers and provides utilities for ",(0,a.jsx)(n.a,{href:"https://tools.ietf.org/html/rfc7231#section-5.3",children:"HTTP content negotiation"})," (charset, encoding, language and media type)."]}),"\n",(0,a.jsxs)(n.p,{children:["By default the middleware parses charsets (",(0,a.jsx)(n.code,{children:"Accept-Charset"}),"), languages (",(0,a.jsx)(n.code,{children:"Accept-Language"}),"), encodings (",(0,a.jsx)(n.code,{children:"Accept-Encoding"}),") and media types (",(0,a.jsx)(n.code,{children:"Accept"}),") during the\n",(0,a.jsx)(n.code,{children:"before"})," phase and expands the ",(0,a.jsx)(n.code,{children:"context"})," object by adding the following properties:"]}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"preferredCharsets"})," (",(0,a.jsx)(n.code,{children:"array"}),") - The list of charsets that can be safely used by the app (as the result of the negotiation)"]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"preferredCharset"})," (",(0,a.jsx)(n.code,{children:"string"}),") - The preferred charset (as the result of the negotiation)"]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"preferredEncodings"})," (",(0,a.jsx)(n.code,{children:"array"}),") - The list of encodings that can be safely used by the app (as the result of the negotiation)"]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"preferredEncoding"})," (",(0,a.jsx)(n.code,{children:"string"}),") - The preferred encoding (as the result of the negotiation)"]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"preferredLanguages"})," (",(0,a.jsx)(n.code,{children:"array"}),") - The list of languages that can be safely used by the app (as the result of the negotiation)"]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"preferredLanguage"})," (",(0,a.jsx)(n.code,{children:"string"}),") - The preferred language (as the result of the negotiation)"]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"preferredMediaTypes"})," (",(0,a.jsx)(n.code,{children:"array"}),") - The list of media types that can be safely used by the app (as the result of the negotiation)"]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"preferredMediaType"})," (",(0,a.jsx)(n.code,{children:"string"}),") - The preferred media types (as the result of the negotiation)"]}),"\n"]}),"\n",(0,a.jsxs)(n.p,{children:["This middleware expects the headers in canonical format, so it should be attached after the ",(0,a.jsx)(n.a,{href:"#httpheadernormalizer",children:(0,a.jsx)(n.code,{children:"httpHeaderNormalizer"})})," middleware.\nIt also can throw an HTTP exception, so it can be convenient to use it in combination with the ",(0,a.jsx)(n.a,{href:"#httperrorhandler",children:(0,a.jsx)(n.code,{children:"httpErrorHandler"})}),"."]}),"\n",(0,a.jsx)(n.h2,{id:"install",children:"Install"}),"\n",(0,a.jsx)(n.p,{children:"To install this middleware you can use NPM:"}),"\n",(0,a.jsxs)(s.Z,{groupId:"npm2yarn",children:[(0,a.jsx)(i.Z,{value:"npm",children:(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-bash",children:"npm install --save @middy/http-content-negotiation\n"})})}),(0,a.jsx)(i.Z,{value:"yarn",label:"Yarn",children:(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-bash",children:"yarn add @middy/http-content-negotiation\n"})})}),(0,a.jsx)(i.Z,{value:"pnpm",label:"pnpm",children:(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-bash",children:"pnpm add @middy/http-content-negotiation\n"})})})]}),"\n",(0,a.jsx)(n.h2,{id:"options",children:"Options"}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"parseCharsets"})," (defaults to ",(0,a.jsx)(n.code,{children:"true"}),") - Allows enabling/disabling the charsets parsing"]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"availableCharsets"})," (defaults to ",(0,a.jsx)(n.code,{children:"undefined"}),") - Allows defining the list of charsets supported by the Lambda function"]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"parseEncodings"})," (defaults to ",(0,a.jsx)(n.code,{children:"true"}),") - Allows enabling/disabling the encodings parsing"]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"availableEncodings"})," (defaults to ",(0,a.jsx)(n.code,{children:"undefined"}),") - Allows defining the list of encodings supported by the Lambda function"]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"parseLanguages"})," (defaults to ",(0,a.jsx)(n.code,{children:"true"}),") - Allows enabling/disabling the languages parsing"]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"availableLanguages"})," (defaults to ",(0,a.jsx)(n.code,{children:"undefined"}),") - Allows defining the list of languages supported by the Lambda function"]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"parseMediaTypes"})," (defaults to ",(0,a.jsx)(n.code,{children:"true"}),") - Allows enabling/disabling the media types parsing"]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"availableMediaTypes"})," (defaults to ",(0,a.jsx)(n.code,{children:"undefined"}),") - Allows defining the list of media types supported by the Lambda function"]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"failOnMismatch"})," (defaults to ",(0,a.jsx)(n.code,{children:"true"}),") - If set to true it will throw an HTTP ",(0,a.jsx)(n.code,{children:"NotAcceptable"})," (406) exception when the negotiation fails for one of the headers (e.g. none of the languages requested are supported by the app)"]}),"\n"]}),"\n",(0,a.jsx)(n.h2,{id:"sample-usage",children:"Sample usage"}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-javascript",children:"import middy from '@middy/core'\nimport httpContentNegotiation from '@middy/http-content-negotiation'\nimport httpHeaderNormalizer from '@middy/http-header-normalizer'\nimport httpErrorHandler from '@middy/http-error-handler'\n\nconst lambdaHandler = (event, context) => {\n let message, body\n\n switch (context.preferredLanguage) {\n case 'it-it':\n message = 'Ciao Mondo'\n break\n case 'fr-fr':\n message = 'Bonjour le monde'\n break\n default:\n message = 'Hello world'\n }\n\n switch (context.preferredMediaType) {\n case 'application/xml':\n body = `<message>${message}</message>`\n break\n case 'application/yaml':\n body = `---\\nmessage: ${message}`\n break\n case 'application/json':\n body = JSON.stringify({ message })\n break\n default:\n body = message\n }\n\n return {\n statusCode: 200,\n body\n }\n}\n\nexport const handler = middy()\n .use(httpHeaderNormalizer())\n .use(\n httpContentNegotiation({\n parseCharsets: false,\n parseEncodings: false,\n availableLanguages: ['it-it', 'fr-fr', 'en'],\n availableMediaTypes: [\n 'application/xml',\n 'application/yaml',\n 'application/json',\n 'text/plain'\n ]\n })\n )\n .use(httpErrorHandler())\n .handler(lambdaHandler)\n"})})]})}function p(e={}){const{wrapper:n}={...(0,r.a)(),...e.components};return n?(0,a.jsx)(n,{...e,children:(0,a.jsx)(h,{...e})}):h(e)}},5162:(e,n,t)=>{t.d(n,{Z:()=>i});t(7294);var a=t(6010);const r={tabItem:"tabItem_Ymn6"};var s=t(5893);function i(e){let{children:n,hidden:t,className:i}=e;return(0,s.jsx)("div",{role:"tabpanel",className:(0,a.Z)(r.tabItem,i),hidden:t,children:n})}},4866:(e,n,t)=>{t.d(n,{Z:()=>w});var a=t(7294),r=t(6010),s=t(2466),i=t(6550),l=t(469),o=t(1980),d=t(7392),c=t(12);function u(e){return a.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,a.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function h(e){const{values:n,children:t}=e;return(0,a.useMemo)((()=>{const e=n??function(e){return u(e).map((e=>{let{props:{value:n,label:t,attributes:a,default:r}}=e;return{value:n,label:t,attributes:a,default:r}}))}(t);return function(e){const n=(0,d.l)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[n,t])}function p(e){let{value:n,tabValues:t}=e;return t.some((e=>e.value===n))}function f(e){let{queryString:n=!1,groupId:t}=e;const r=(0,i.k6)(),s=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t});return[(0,o._X)(s),(0,a.useCallback)((e=>{if(!s)return;const n=new URLSearchParams(r.location.search);n.set(s,e),r.replace({...r.location,search:n.toString()})}),[s,r])]}function g(e){const{defaultValue:n,queryString:t=!1,groupId:r}=e,s=h(e),[i,o]=(0,a.useState)((()=>function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(n){if(!p({value:n,tabValues:t}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const a=t.find((e=>e.default))??t[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:n,tabValues:s}))),[d,u]=f({queryString:t,groupId:r}),[g,m]=function(e){let{groupId:n}=e;const t=function(e){return e?`docusaurus.tab.${e}`:null}(n),[r,s]=(0,c.Nk)(t);return[r,(0,a.useCallback)((e=>{t&&s.set(e)}),[t,s])]}({groupId:r}),b=(()=>{const e=d??g;return p({value:e,tabValues:s})?e:null})();(0,l.Z)((()=>{b&&o(b)}),[b]);return{selectedValue:i,selectValue:(0,a.useCallback)((e=>{if(!p({value:e,tabValues:s}))throw new Error(`Can't select invalid tab value=${e}`);o(e),u(e),m(e)}),[u,m,s]),tabValues:s}}var m=t(2389);const b={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var x=t(5893);function j(e){let{className:n,block:t,selectedValue:a,selectValue:i,tabValues:l}=e;const o=[],{blockElementScrollPositionUntilNextRender:d}=(0,s.o5)(),c=e=>{const n=e.currentTarget,t=o.indexOf(n),r=l[t].value;r!==a&&(d(n),i(r))},u=e=>{let n=null;switch(e.key){case"Enter":c(e);break;case"ArrowRight":{const t=o.indexOf(e.currentTarget)+1;n=o[t]??o[0];break}case"ArrowLeft":{const t=o.indexOf(e.currentTarget)-1;n=o[t]??o[o.length-1];break}}n?.focus()};return(0,x.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,r.Z)("tabs",{"tabs--block":t},n),children:l.map((e=>{let{value:n,label:t,attributes:s}=e;return(0,x.jsx)("li",{role:"tab",tabIndex:a===n?0:-1,"aria-selected":a===n,ref:e=>o.push(e),onKeyDown:u,onClick:c,...s,className:(0,r.Z)("tabs__item",b.tabItem,s?.className,{"tabs__item--active":a===n}),children:t??n},n)}))})}function y(e){let{lazy:n,children:t,selectedValue:r}=e;const s=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){const e=s.find((e=>e.props.value===r));return e?(0,a.cloneElement)(e,{className:"margin-top--md"}):null}return(0,x.jsx)("div",{className:"margin-top--md",children:s.map(((e,n)=>(0,a.cloneElement)(e,{key:n,hidden:e.props.value!==r})))})}function v(e){const n=g(e);return(0,x.jsxs)("div",{className:(0,r.Z)("tabs-container",b.tabList),children:[(0,x.jsx)(j,{...e,...n}),(0,x.jsx)(y,{...e,...n})]})}function w(e){const n=(0,m.Z)();return(0,x.jsx)(v,{...e,children:u(e.children)},String(n))}},1151:(e,n,t)=>{t.d(n,{Z:()=>l,a:()=>i});var a=t(7294);const r={},s=a.createContext(r);function i(e){const n=a.useContext(s);return a.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:i(e.components),a.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/a94703ab.20bd98ab.js b/assets/js/a94703ab.20bd98ab.js new file mode 100644 index 000000000..66fed28d8 --- /dev/null +++ b/assets/js/a94703ab.20bd98ab.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[4368],{4867:(e,t,n)=>{n.r(t),n.d(t,{default:()=>he});var a=n(7294),o=n(6010),i=n(1944),s=n(5281),l=n(3438),r=n(1116),c=n(5999),d=n(2466),u=n(5936);const m={backToTopButton:"backToTopButton_sjWU",backToTopButtonShow:"backToTopButtonShow_xfvO"};var b=n(5893);function h(){const{shown:e,scrollToTop:t}=function(e){let{threshold:t}=e;const[n,o]=(0,a.useState)(!1),i=(0,a.useRef)(!1),{startScroll:s,cancelScroll:l}=(0,d.Ct)();return(0,d.RF)(((e,n)=>{let{scrollY:a}=e;const s=n?.scrollY;s&&(i.current?i.current=!1:a>=s?(l(),o(!1)):a<t?o(!1):a+window.innerHeight<document.documentElement.scrollHeight&&o(!0))})),(0,u.S)((e=>{e.location.hash&&(i.current=!0,o(!1))})),{shown:n,scrollToTop:()=>s(0)}}({threshold:300});return(0,b.jsx)("button",{"aria-label":(0,c.I)({id:"theme.BackToTopButton.buttonAriaLabel",message:"Scroll back to top",description:"The ARIA label for the back to top button"}),className:(0,o.Z)("clean-btn",s.k.common.backToTopButton,m.backToTopButton,e&&m.backToTopButtonShow),type:"button",onClick:t})}var p=n(1442),x=n(6550),f=n(7524),j=n(6668),k=n(1327);function _(e){return(0,b.jsx)("svg",{width:"20",height:"20","aria-hidden":"true",...e,children:(0,b.jsxs)("g",{fill:"#7a7a7a",children:[(0,b.jsx)("path",{d:"M9.992 10.023c0 .2-.062.399-.172.547l-4.996 7.492a.982.982 0 01-.828.454H1c-.55 0-1-.453-1-1 0-.2.059-.403.168-.551l4.629-6.942L.168 3.078A.939.939 0 010 2.528c0-.548.45-.997 1-.997h2.996c.352 0 .649.18.828.45L9.82 9.472c.11.148.172.347.172.55zm0 0"}),(0,b.jsx)("path",{d:"M19.98 10.023c0 .2-.058.399-.168.547l-4.996 7.492a.987.987 0 01-.828.454h-3c-.547 0-.996-.453-.996-1 0-.2.059-.403.168-.551l4.625-6.942-4.625-6.945a.939.939 0 01-.168-.55 1 1 0 01.996-.997h3c.348 0 .649.18.828.45l4.996 7.492c.11.148.168.347.168.55zm0 0"})]})})}const v={collapseSidebarButton:"collapseSidebarButton_PEFL",collapseSidebarButtonIcon:"collapseSidebarButtonIcon_kv0_"};function g(e){let{onClick:t}=e;return(0,b.jsx)("button",{type:"button",title:(0,c.I)({id:"theme.docs.sidebar.collapseButtonTitle",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),"aria-label":(0,c.I)({id:"theme.docs.sidebar.collapseButtonAriaLabel",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),className:(0,o.Z)("button button--secondary button--outline",v.collapseSidebarButton),onClick:t,children:(0,b.jsx)(_,{className:v.collapseSidebarButtonIcon})})}var C=n(9689),S=n(902);const I=Symbol("EmptyContext"),N=a.createContext(I);function T(e){let{children:t}=e;const[n,o]=(0,a.useState)(null),i=(0,a.useMemo)((()=>({expandedItem:n,setExpandedItem:o})),[n]);return(0,b.jsx)(N.Provider,{value:i,children:t})}var B=n(6043),y=n(8596),Z=n(9960),A=n(2389);function L(e){let{collapsed:t,categoryLabel:n,onClick:a}=e;return(0,b.jsx)("button",{"aria-label":t?(0,c.I)({id:"theme.DocSidebarItem.expandCategoryAriaLabel",message:"Expand sidebar category '{label}'",description:"The ARIA label to expand the sidebar category"},{label:n}):(0,c.I)({id:"theme.DocSidebarItem.collapseCategoryAriaLabel",message:"Collapse sidebar category '{label}'",description:"The ARIA label to collapse the sidebar category"},{label:n}),type:"button",className:"clean-btn menu__caret",onClick:a})}function w(e){let{item:t,onItemClick:n,activePath:i,level:r,index:c,...d}=e;const{items:u,label:m,collapsible:h,className:p,href:x}=t,{docs:{sidebar:{autoCollapseCategories:f}}}=(0,j.L)(),k=function(e){const t=(0,A.Z)();return(0,a.useMemo)((()=>e.href&&!e.linkUnlisted?e.href:!t&&e.collapsible?(0,l.LM)(e):void 0),[e,t])}(t),_=(0,l._F)(t,i),v=(0,y.Mg)(x,i),{collapsed:g,setCollapsed:C}=(0,B.u)({initialState:()=>!!h&&(!_&&t.collapsed)}),{expandedItem:T,setExpandedItem:w}=function(){const e=(0,a.useContext)(N);if(e===I)throw new S.i6("DocSidebarItemsExpandedStateProvider");return e}(),E=function(e){void 0===e&&(e=!g),w(e?null:c),C(e)};return function(e){let{isActive:t,collapsed:n,updateCollapsed:o}=e;const i=(0,S.D9)(t);(0,a.useEffect)((()=>{t&&!i&&n&&o(!1)}),[t,i,n,o])}({isActive:_,collapsed:g,updateCollapsed:E}),(0,a.useEffect)((()=>{h&&null!=T&&T!==c&&f&&C(!0)}),[h,T,c,C,f]),(0,b.jsxs)("li",{className:(0,o.Z)(s.k.docs.docSidebarItemCategory,s.k.docs.docSidebarItemCategoryLevel(r),"menu__list-item",{"menu__list-item--collapsed":g},p),children:[(0,b.jsxs)("div",{className:(0,o.Z)("menu__list-item-collapsible",{"menu__list-item-collapsible--active":v}),children:[(0,b.jsx)(Z.Z,{className:(0,o.Z)("menu__link",{"menu__link--sublist":h,"menu__link--sublist-caret":!x&&h,"menu__link--active":_}),onClick:h?e=>{n?.(t),x?E(!1):(e.preventDefault(),E())}:()=>{n?.(t)},"aria-current":v?"page":void 0,"aria-expanded":h?!g:void 0,href:h?k??"#":k,...d,children:m}),x&&h&&(0,b.jsx)(L,{collapsed:g,categoryLabel:m,onClick:e=>{e.preventDefault(),E()}})]}),(0,b.jsx)(B.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:g,children:(0,b.jsx)(V,{items:u,tabIndex:g?-1:0,onItemClick:n,activePath:i,level:r+1})})]})}var E=n(3919),H=n(9471);const M={menuExternalLink:"menuExternalLink_NmtK"};function R(e){let{item:t,onItemClick:n,activePath:a,level:i,index:r,...c}=e;const{href:d,label:u,className:m,autoAddBaseUrl:h}=t,p=(0,l._F)(t,a),x=(0,E.Z)(d);return(0,b.jsx)("li",{className:(0,o.Z)(s.k.docs.docSidebarItemLink,s.k.docs.docSidebarItemLinkLevel(i),"menu__list-item",m),children:(0,b.jsxs)(Z.Z,{className:(0,o.Z)("menu__link",!x&&M.menuExternalLink,{"menu__link--active":p}),autoAddBaseUrl:h,"aria-current":p?"page":void 0,to:d,...x&&{onClick:n?()=>n(t):void 0},...c,children:[u,!x&&(0,b.jsx)(H.Z,{})]})},u)}const W={menuHtmlItem:"menuHtmlItem_M9Kj"};function F(e){let{item:t,level:n,index:a}=e;const{value:i,defaultStyle:l,className:r}=t;return(0,b.jsx)("li",{className:(0,o.Z)(s.k.docs.docSidebarItemLink,s.k.docs.docSidebarItemLinkLevel(n),l&&[W.menuHtmlItem,"menu__list-item"],r),dangerouslySetInnerHTML:{__html:i}},a)}function P(e){let{item:t,...n}=e;switch(t.type){case"category":return(0,b.jsx)(w,{item:t,...n});case"html":return(0,b.jsx)(F,{item:t,...n});default:return(0,b.jsx)(R,{item:t,...n})}}function D(e){let{items:t,...n}=e;const a=(0,l.f)(t,n.activePath);return(0,b.jsx)(T,{children:a.map(((e,t)=>(0,b.jsx)(P,{item:e,index:t,...n},t)))})}const V=(0,a.memo)(D),U={menu:"menu_SIkG",menuWithAnnouncementBar:"menuWithAnnouncementBar_GW3s"};function K(e){let{path:t,sidebar:n,className:i}=e;const l=function(){const{isActive:e}=(0,C.nT)(),[t,n]=(0,a.useState)(e);return(0,d.RF)((t=>{let{scrollY:a}=t;e&&n(0===a)}),[e]),e&&t}();return(0,b.jsx)("nav",{"aria-label":(0,c.I)({id:"theme.docs.sidebar.navAriaLabel",message:"Docs sidebar",description:"The ARIA label for the sidebar navigation"}),className:(0,o.Z)("menu thin-scrollbar",U.menu,l&&U.menuWithAnnouncementBar,i),children:(0,b.jsx)("ul",{className:(0,o.Z)(s.k.docs.docSidebarMenu,"menu__list"),children:(0,b.jsx)(V,{items:n,activePath:t,level:1})})})}const Y="sidebar_njMd",z="sidebarWithHideableNavbar_wUlq",G="sidebarHidden_VK0M",O="sidebarLogo_isFc";function q(e){let{path:t,sidebar:n,onCollapse:a,isHidden:i}=e;const{navbar:{hideOnScroll:s},docs:{sidebar:{hideable:l}}}=(0,j.L)();return(0,b.jsxs)("div",{className:(0,o.Z)(Y,s&&z,i&&G),children:[s&&(0,b.jsx)(k.Z,{tabIndex:-1,className:O}),(0,b.jsx)(K,{path:t,sidebar:n}),l&&(0,b.jsx)(g,{onClick:a})]})}const J=a.memo(q);var Q=n(3102),X=n(3163);const $=e=>{let{sidebar:t,path:n}=e;const a=(0,X.e)();return(0,b.jsx)("ul",{className:(0,o.Z)(s.k.docs.docSidebarMenu,"menu__list"),children:(0,b.jsx)(V,{items:t,activePath:n,onItemClick:e=>{"category"===e.type&&e.href&&a.toggle(),"link"===e.type&&a.toggle()},level:1})})};function ee(e){return(0,b.jsx)(Q.Zo,{component:$,props:e})}const te=a.memo(ee);function ne(e){const t=(0,f.i)(),n="desktop"===t||"ssr"===t,a="mobile"===t;return(0,b.jsxs)(b.Fragment,{children:[n&&(0,b.jsx)(J,{...e}),a&&(0,b.jsx)(te,{...e})]})}const ae={expandButton:"expandButton_TmdG",expandButtonIcon:"expandButtonIcon_i1dp"};function oe(e){let{toggleSidebar:t}=e;return(0,b.jsx)("div",{className:ae.expandButton,title:(0,c.I)({id:"theme.docs.sidebar.expandButtonTitle",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),"aria-label":(0,c.I)({id:"theme.docs.sidebar.expandButtonAriaLabel",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),tabIndex:0,role:"button",onKeyDown:t,onClick:t,children:(0,b.jsx)(_,{className:ae.expandButtonIcon})})}const ie={docSidebarContainer:"docSidebarContainer_YfHR",docSidebarContainerHidden:"docSidebarContainerHidden_DPk8",sidebarViewport:"sidebarViewport_aRkj"};function se(e){let{children:t}=e;const n=(0,r.V)();return(0,b.jsx)(a.Fragment,{children:t},n?.name??"noSidebar")}function le(e){let{sidebar:t,hiddenSidebarContainer:n,setHiddenSidebarContainer:i}=e;const{pathname:l}=(0,x.TH)(),[r,c]=(0,a.useState)(!1),d=(0,a.useCallback)((()=>{r&&c(!1),!r&&(0,p.n)()&&c(!0),i((e=>!e))}),[i,r]);return(0,b.jsx)("aside",{className:(0,o.Z)(s.k.docs.docSidebarContainer,ie.docSidebarContainer,n&&ie.docSidebarContainerHidden),onTransitionEnd:e=>{e.currentTarget.classList.contains(ie.docSidebarContainer)&&n&&c(!0)},children:(0,b.jsx)(se,{children:(0,b.jsxs)("div",{className:(0,o.Z)(ie.sidebarViewport,r&&ie.sidebarViewportHidden),children:[(0,b.jsx)(ne,{sidebar:t,path:l,onCollapse:d,isHidden:r}),r&&(0,b.jsx)(oe,{toggleSidebar:d})]})})})}const re={docMainContainer:"docMainContainer_TBSr",docMainContainerEnhanced:"docMainContainerEnhanced_lQrH",docItemWrapperEnhanced:"docItemWrapperEnhanced_JWYK"};function ce(e){let{hiddenSidebarContainer:t,children:n}=e;const a=(0,r.V)();return(0,b.jsx)("main",{className:(0,o.Z)(re.docMainContainer,(t||!a)&&re.docMainContainerEnhanced),children:(0,b.jsx)("div",{className:(0,o.Z)("container padding-top--md padding-bottom--lg",re.docItemWrapper,t&&re.docItemWrapperEnhanced),children:n})})}const de={docRoot:"docRoot_UBD9",docsWrapper:"docsWrapper_hBAB"};function ue(e){let{children:t}=e;const n=(0,r.V)(),[o,i]=(0,a.useState)(!1);return(0,b.jsxs)("div",{className:de.docsWrapper,children:[(0,b.jsx)(h,{}),(0,b.jsxs)("div",{className:de.docRoot,children:[n&&(0,b.jsx)(le,{sidebar:n.items,hiddenSidebarContainer:o,setHiddenSidebarContainer:i}),(0,b.jsx)(ce,{hiddenSidebarContainer:o,children:t})]})]})}var me=n(2503);function be(e){let{className:t}=e;return(0,b.jsx)("main",{className:(0,o.Z)("container margin-vert--xl",t),children:(0,b.jsx)("div",{className:"row",children:(0,b.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,b.jsx)(me.Z,{as:"h1",className:"hero__title",children:(0,b.jsx)(c.Z,{id:"theme.NotFound.title",description:"The title of the 404 page",children:"Page Not Found"})}),(0,b.jsx)("p",{children:(0,b.jsx)(c.Z,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page",children:"We could not find what you were looking for."})}),(0,b.jsx)("p",{children:(0,b.jsx)(c.Z,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page",children:"Please contact the owner of the site that linked you to the original URL and let them know their link is broken."})})]})})})}function he(e){const t=(0,l.SN)(e);if(!t)return(0,b.jsx)(be,{});const{docElement:n,sidebarName:a,sidebarItems:c}=t;return(0,b.jsx)(i.FG,{className:(0,o.Z)(s.k.page.docsDocPage),children:(0,b.jsx)(r.b,{name:a,items:c,children:(0,b.jsx)(ue,{children:n})})})}}}]); \ No newline at end of file diff --git a/assets/js/acb7d57c.a6d16426.js b/assets/js/acb7d57c.a6d16426.js new file mode 100644 index 000000000..b1c0d8b22 --- /dev/null +++ b/assets/js/acb7d57c.a6d16426.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[1819],{7593:(t,e,n)=>{n.r(e),n.d(e,{assets:()=>a,contentTitle:()=>r,default:()=>p,frontMatter:()=>i,metadata:()=>c,toc:()=>d});var s=n(5893),o=n(1151);const i={title:"Intro",sidebar_position:1},r=void 0,c={id:"best-practices/intro",title:"Intro",description:"In this section you will find some common tips and tricks to ensure you don't hit any performance or security issues.",source:"@site/docs/best-practices/01-intro.md",sourceDirName:"best-practices",slug:"/best-practices/intro",permalink:"/docs/best-practices/intro",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/best-practices/01-intro.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",sidebarPosition:1,frontMatter:{title:"Intro",sidebar_position:1},sidebar:"tutorialSidebar",previous:{title:"Best Practices",permalink:"/docs/category/best-practices"},next:{title:"Connection reuse",permalink:"/docs/best-practices/connection-reuse"}},a={},d=[];function u(t){const e={p:"p",...(0,o.a)(),...t.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(e.p,{children:"In this section you will find some common tips and tricks to ensure you don't hit any performance or security issues."}),"\n",(0,s.jsx)(e.p,{children:"Did we miss something? Let us know."})]})}function p(t={}){const{wrapper:e}={...(0,o.a)(),...t.components};return e?(0,s.jsx)(e,{...t,children:(0,s.jsx)(u,{...t})}):u(t)}},1151:(t,e,n)=>{n.d(e,{Z:()=>c,a:()=>r});var s=n(7294);const o={},i=s.createContext(o);function r(t){const e=s.useContext(i);return s.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function c(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(o):t.components||o:r(t.components),s.createElement(i.Provider,{value:e},t.children)}}}]); \ No newline at end of file diff --git a/assets/js/acb7d57c.ee753c93.js b/assets/js/acb7d57c.ee753c93.js deleted file mode 100644 index e6f3cf49f..000000000 --- a/assets/js/acb7d57c.ee753c93.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[1819],{3905:(e,t,r)=>{r.d(t,{Zo:()=>l,kt:()=>f});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function s(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var a=n.createContext({}),p=function(e){var t=n.useContext(a),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},l=function(e){var t=p(e.components);return n.createElement(a.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,a=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),u=p(r),m=o,f=u["".concat(a,".").concat(m)]||u[m]||d[m]||i;return r?n.createElement(f,c(c({ref:t},l),{},{components:r})):n.createElement(f,c({ref:t},l))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,c=new Array(i);c[0]=m;var s={};for(var a in t)hasOwnProperty.call(t,a)&&(s[a]=t[a]);s.originalType=e,s[u]="string"==typeof e?e:o,c[1]=s;for(var p=2;p<i;p++)c[p]=r[p];return n.createElement.apply(null,c)}return n.createElement.apply(null,r)}m.displayName="MDXCreateElement"},3019:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>a,contentTitle:()=>c,default:()=>d,frontMatter:()=>i,metadata:()=>s,toc:()=>p});var n=r(7462),o=(r(7294),r(3905));const i={title:"Intro",sidebar_position:1},c=void 0,s={unversionedId:"best-practices/intro",id:"best-practices/intro",title:"Intro",description:"In this section you will find some common tips and tricks to ensure you don't hit any performance or security issues.",source:"@site/docs/best-practices/01-intro.md",sourceDirName:"best-practices",slug:"/best-practices/intro",permalink:"/docs/best-practices/intro",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/best-practices/01-intro.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",sidebarPosition:1,frontMatter:{title:"Intro",sidebar_position:1},sidebar:"tutorialSidebar",previous:{title:"Best Practices",permalink:"/docs/category/best-practices"},next:{title:"Connection reuse",permalink:"/docs/best-practices/connection-reuse"}},a={},p=[],l={toc:p},u="wrapper";function d(e){let{components:t,...r}=e;return(0,o.kt)(u,(0,n.Z)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"In this section you will find some common tips and tricks to ensure you don't hit any performance or security issues."),(0,o.kt)("p",null,"Did we miss something? Let us know."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ace0032f.1ea8d713.js b/assets/js/ace0032f.1ea8d713.js deleted file mode 100644 index 873abca86..000000000 --- a/assets/js/ace0032f.1ea8d713.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[2521],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>m});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function s(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),l=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=l(e.components);return n.createElement(c.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),u=l(r),f=o,m=u["".concat(c,".").concat(f)]||u[f]||d[f]||a;return r?n.createElement(m,i(i({ref:t},p),{},{components:r})):n.createElement(m,i({ref:t},p))}));function m(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=f;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s[u]="string"==typeof e?e:o,i[1]=s;for(var l=2;l<a;l++)i[l]=r[l];return n.createElement.apply(null,i)}return n.createElement.apply(null,r)}f.displayName="MDXCreateElement"},1173:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>s,toc:()=>l});var n=r(7462),o=(r(7294),r(3905));const a={title:"Serverless Stack"},i=void 0,s={unversionedId:"integrations/serverless-stack",id:"integrations/serverless-stack",title:"Serverless Stack",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/integrations/serverless-stack.md",sourceDirName:"integrations",slug:"/integrations/serverless-stack",permalink:"/docs/integrations/serverless-stack",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/integrations/serverless-stack.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",frontMatter:{title:"Serverless Stack"},sidebar:"tutorialSidebar",previous:{title:"Serverless Framework",permalink:"/docs/integrations/serverless-framework"},next:{title:"Best Practices",permalink:"/docs/category/best-practices"}},c={},l=[],p={toc:l},u="wrapper";function d(e){let{components:t,...r}=e;return(0,o.kt)(u,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("admonition",{type:"caution"},(0,o.kt)("p",{parentName:"admonition"},"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ace0032f.98acff1b.js b/assets/js/ace0032f.98acff1b.js new file mode 100644 index 000000000..3a5b2ccc6 --- /dev/null +++ b/assets/js/ace0032f.98acff1b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[2521],{2114:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>a,toc:()=>d});var n=s(5893),r=s(1151);const o={title:"Serverless Stack"},i=void 0,a={id:"integrations/serverless-stack",title:"Serverless Stack",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/integrations/serverless-stack.md",sourceDirName:"integrations",slug:"/integrations/serverless-stack",permalink:"/docs/integrations/serverless-stack",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/integrations/serverless-stack.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",frontMatter:{title:"Serverless Stack"},sidebar:"tutorialSidebar",previous:{title:"Serverless Framework",permalink:"/docs/integrations/serverless-framework"},next:{title:"Best Practices",permalink:"/docs/category/best-practices"}},c={},d=[];function l(e){const t={admonition:"admonition",p:"p",...(0,r.a)(),...e.components};return(0,n.jsx)(t.admonition,{type:"caution",children:(0,n.jsx)(t.p,{children:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub."})})}function u(e={}){const{wrapper:t}={...(0,r.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(l,{...e})}):l(e)}},1151:(e,t,s)=>{s.d(t,{Z:()=>a,a:()=>i});var n=s(7294);const r={},o=n.createContext(r);function i(e){const t=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:i(e.components),n.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/ad1e712e.2fe9c84a.js b/assets/js/ad1e712e.2fe9c84a.js deleted file mode 100644 index 227fecfeb..000000000 --- a/assets/js/ad1e712e.2fe9c84a.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[9235],{3905:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>h});var r=a(7294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?i(Object(a),!0).forEach((function(t){n(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):i(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function s(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},i=Object.keys(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var l=r.createContext({}),d=function(e){var t=r.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},p=function(e){var t=d(e.components);return r.createElement(l.Provider,{value:t},e.children)},m="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),m=d(a),u=n,h=m["".concat(l,".").concat(u)]||m[u]||c[u]||i;return a?r.createElement(h,o(o({ref:t},p),{},{components:a})):r.createElement(h,o({ref:t},p))}));function h(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,o=new Array(i);o[0]=u;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[m]="string"==typeof e?e:n,o[1]=s;for(var d=2;d<i;d++)o[d]=a[d];return r.createElement.apply(null,o)}return r.createElement.apply(null,a)}u.displayName="MDXCreateElement"},6592:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>c,frontMatter:()=>i,metadata:()=>s,toc:()=>d});var r=a(7462),n=(a(7294),a(3905));const i={title:"Official middlewares",sidebar_position:0},o=void 0,s={unversionedId:"middlewares/intro",id:"middlewares/intro",title:"Official middlewares",description:"Middy comes with a series of additional (opt-in) plugins that are officially maintained by the core team and kept in sync with every release of the core package.",source:"@site/docs/middlewares/00-intro.md",sourceDirName:"middlewares",slug:"/middlewares/intro",permalink:"/docs/middlewares/intro",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/middlewares/00-intro.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",sidebarPosition:0,frontMatter:{title:"Official middlewares",sidebar_position:0},sidebar:"tutorialSidebar",previous:{title:"Middlewares",permalink:"/docs/category/middlewares"},next:{title:"Third-party middlewares",permalink:"/docs/middlewares/third-party"}},l={},d=[{value:"Misc",id:"misc",level:2},{value:"Request Transformation",id:"request-transformation",level:2},{value:"Response Transformation",id:"response-transformation",level:2},{value:"Fetch Data",id:"fetch-data",level:2}],p={toc:d},m="wrapper";function c(e){let{components:t,...a}=e;return(0,n.kt)(m,(0,r.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"Middy comes with a series of additional (opt-in) plugins that are officially maintained by the core team and kept in sync with every release of the core package."),(0,n.kt)("p",null,"These middleware focus on common use cases when using Lambda with other AWS services."),(0,n.kt)("p",null,"Each middleware should do a single task. We try to balance each to be as performant as possible while meeting the majority of developer needs."),(0,n.kt)("h2",{id:"misc"},"Misc"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"/docs/middlewares/cloudwatch-metrics"},(0,n.kt)("inlineCode",{parentName:"a"},"cloudwatch-metrics")),": Hydrates lambda's ",(0,n.kt)("inlineCode",{parentName:"li"},"context.metrics")," property with an instance of AWS MetricLogger"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"/docs/middlewares/do-not-wait-for-empty-event-loop"},(0,n.kt)("inlineCode",{parentName:"a"},"do-not-wait-for-empty-event-loop")),": Sets callbackWaitsForEmptyEventLoop property to false"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"/docs/middlewares/error-logger"},(0,n.kt)("inlineCode",{parentName:"a"},"error-logger")),": Logs errors"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"/docs/middlewares/input-output-logger"},(0,n.kt)("inlineCode",{parentName:"a"},"input-output-logger")),": Logs request and response"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"/docs/middlewares/warmup"},(0,n.kt)("inlineCode",{parentName:"a"},"warmup")),": Used to pre-warm a lambda function")),(0,n.kt)("h2",{id:"request-transformation"},"Request Transformation"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"/docs/middlewares/event-normalizer"},(0,n.kt)("inlineCode",{parentName:"a"},"event-normalizer")),": Middleware for iterating through an AWS event records, parsing and normalizing nested events."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"/docs/middlewares/http-content-negotiation"},(0,n.kt)("inlineCode",{parentName:"a"},"http-content-negotiation")),": Parses ",(0,n.kt)("inlineCode",{parentName:"li"},"Accept-*")," headers and provides utilities for content negotiation (charset, encoding, language and media type) for HTTP requests"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"/docs/middlewares/http-event-normalizer"},(0,n.kt)("inlineCode",{parentName:"a"},"http-event-normalizer")),": Normalizes HTTP events by adding an empty object for ",(0,n.kt)("inlineCode",{parentName:"li"},"queryStringParameters"),", ",(0,n.kt)("inlineCode",{parentName:"li"},"multiValueQueryStringParameters")," or ",(0,n.kt)("inlineCode",{parentName:"li"},"pathParameters")," if they are missing."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"/docs/middlewares/http-header-normalizer"},(0,n.kt)("inlineCode",{parentName:"a"},"http-header-normalizer")),": Normalizes HTTP header names to their canonical format"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"/docs/middlewares/http-json-body-parser"},(0,n.kt)("inlineCode",{parentName:"a"},"http-json-body-parser")),": Automatically parses HTTP requests with JSON body and converts the body into an object. Also handles gracefully broken JSON if used in combination of\n",(0,n.kt)("inlineCode",{parentName:"li"},"httpErrorHandler"),"."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"/docs/middlewares/http-multipart-body-parser"},(0,n.kt)("inlineCode",{parentName:"a"},"http-multipart-body-parser")),": Automatically parses HTTP requests with content type ",(0,n.kt)("inlineCode",{parentName:"li"},"multipart/form-data")," and converts the body into an object."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"/docs/middlewares/http-urlencode-body-parser"},(0,n.kt)("inlineCode",{parentName:"a"},"http-urlencode-body-parser")),": Automatically parses HTTP requests with URL encoded body (typically the result of a form submit)."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"/docs/middlewares/http-urlencode-path-parser"},(0,n.kt)("inlineCode",{parentName:"a"},"http-urlencode-path-parser")),": Automatically parses HTTP requests with URL encoded path."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"/docs/middlewares/validator"},(0,n.kt)("inlineCode",{parentName:"a"},"validator")),": Automatically validates incoming events and outgoing responses against custom schemas."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"/docs/middlewares/ws-json-body-parser"},(0,n.kt)("inlineCode",{parentName:"a"},"ws-json-body-parser")),": Automatically parses WebSocket requests with JSON message and converts the message into an object.")),(0,n.kt)("h2",{id:"response-transformation"},"Response Transformation"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"/docs/middlewares/http-content-encoding"},(0,n.kt)("inlineCode",{parentName:"a"},"http-content-encoding")),": Sets HTTP Content-Encoding header on response and compresses response body"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"/docs/middlewares/http-cors"},(0,n.kt)("inlineCode",{parentName:"a"},"http-cors")),": Sets HTTP CORS headers on response"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"/docs/middlewares/http-error-handler"},(0,n.kt)("inlineCode",{parentName:"a"},"http-error-handler")),": Creates a proper HTTP response for errors that are created with the ",(0,n.kt)("a",{parentName:"li",href:"https://www.npmjs.com/package/http-errors"},"http-errors")," module and represents proper HTTP errors."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"/docs/middlewares/http-security-headers"},(0,n.kt)("inlineCode",{parentName:"a"},"http-security-headers")),": Applies best practice security headers to responses. It's a simplified port of HelmetJS."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"/docs/middlewares/http-partial-response"},(0,n.kt)("inlineCode",{parentName:"a"},"http-partial-response")),": Filter response objects attributes based on query string parameters."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"/docs/middlewares/http-response-serializer"},(0,n.kt)("inlineCode",{parentName:"a"},"http-response-serializer")),": HTTP response serializer."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"/docs/middlewares/sqs-partial-batch-failure"},(0,n.kt)("inlineCode",{parentName:"a"},"sqs-partial-batch-failure")),": Handles partially failed SQS batches."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"/docs/middlewares/ws-response"},(0,n.kt)("inlineCode",{parentName:"a"},"ws-response")),": Forwards response to WebSocket endpoint.")),(0,n.kt)("h2",{id:"fetch-data"},"Fetch Data"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"/docs/middlewares/appconfig"},(0,n.kt)("inlineCode",{parentName:"a"},"appconfig")),": Fetch JSON configurations from AppConfig."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"/docs/middlewares/dynamodb"},(0,n.kt)("inlineCode",{parentName:"a"},"dynamodb")),": Fetch configurations from DynamoDB."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"/docs/middlewares/rds-signer"},(0,n.kt)("inlineCode",{parentName:"a"},"rds-signer")),": Fetches token for connecting to RDS with IAM users."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"/docs/middlewares/s3"},(0,n.kt)("inlineCode",{parentName:"a"},"s3")),": Fetch JSON configurations from S3."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"/docs/middlewares/s3-object-response"},(0,n.kt)("inlineCode",{parentName:"a"},"s3-object-response")),": Gets and write S3 object response."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"/docs/middlewares/secrets-manager"},(0,n.kt)("inlineCode",{parentName:"a"},"secrets-manager")),": Fetches parameters from ",(0,n.kt)("a",{parentName:"li",href:"https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html"},"AWS Secrets Manager"),"."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"/docs/middlewares/service-discovery"},(0,n.kt)("inlineCode",{parentName:"a"},"service-discovery")),": Fetches Service Discovery instances to be used when connecting to other AWS services."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"/docs/middlewares/ssm"},(0,n.kt)("inlineCode",{parentName:"a"},"ssm")),": Fetches parameters from ",(0,n.kt)("a",{parentName:"li",href:"https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-paramstore.html"},"AWS Systems Manager Parameter Store"),"."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"/docs/middlewares/sts"},(0,n.kt)("inlineCode",{parentName:"a"},"sts")),": Fetches credentials to assumes IAM roles for connection to other AWS services.")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ad1e712e.e1378430.js b/assets/js/ad1e712e.e1378430.js new file mode 100644 index 000000000..970bc65e2 --- /dev/null +++ b/assets/js/ad1e712e.e1378430.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[9235],{9869:(e,s,r)=>{r.r(s),r.d(s,{assets:()=>o,contentTitle:()=>d,default:()=>h,frontMatter:()=>t,metadata:()=>a,toc:()=>c});var n=r(5893),i=r(1151);const t={title:"Official middlewares",sidebar_position:0},d=void 0,a={id:"middlewares/intro",title:"Official middlewares",description:"Middy comes with a series of additional (opt-in) plugins that are officially maintained by the core team and kept in sync with every release of the core package.",source:"@site/docs/middlewares/00-intro.md",sourceDirName:"middlewares",slug:"/middlewares/intro",permalink:"/docs/middlewares/intro",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/middlewares/00-intro.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",sidebarPosition:0,frontMatter:{title:"Official middlewares",sidebar_position:0},sidebar:"tutorialSidebar",previous:{title:"Middlewares",permalink:"/docs/category/middlewares"},next:{title:"Third-party middlewares",permalink:"/docs/middlewares/third-party"}},o={},c=[{value:"Misc",id:"misc",level:2},{value:"Request Transformation",id:"request-transformation",level:2},{value:"Response Transformation",id:"response-transformation",level:2},{value:"Fetch Data",id:"fetch-data",level:2}];function l(e){const s={a:"a",code:"code",h2:"h2",li:"li",p:"p",ul:"ul",...(0,i.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(s.p,{children:"Middy comes with a series of additional (opt-in) plugins that are officially maintained by the core team and kept in sync with every release of the core package."}),"\n",(0,n.jsx)(s.p,{children:"These middleware focus on common use cases when using Lambda with other AWS services."}),"\n",(0,n.jsx)(s.p,{children:"Each middleware should do a single task. We try to balance each to be as performant as possible while meeting the majority of developer needs."}),"\n",(0,n.jsx)(s.h2,{id:"misc",children:"Misc"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.a,{href:"/docs/middlewares/cloudwatch-metrics",children:(0,n.jsx)(s.code,{children:"cloudwatch-metrics"})}),": Hydrates lambda's ",(0,n.jsx)(s.code,{children:"context.metrics"})," property with an instance of AWS MetricLogger"]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.a,{href:"/docs/middlewares/do-not-wait-for-empty-event-loop",children:(0,n.jsx)(s.code,{children:"do-not-wait-for-empty-event-loop"})}),": Sets callbackWaitsForEmptyEventLoop property to false"]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.a,{href:"/docs/middlewares/error-logger",children:(0,n.jsx)(s.code,{children:"error-logger"})}),": Logs errors"]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.a,{href:"/docs/middlewares/input-output-logger",children:(0,n.jsx)(s.code,{children:"input-output-logger"})}),": Logs request and response"]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.a,{href:"/docs/middlewares/warmup",children:(0,n.jsx)(s.code,{children:"warmup"})}),": Used to pre-warm a lambda function"]}),"\n"]}),"\n",(0,n.jsx)(s.h2,{id:"request-transformation",children:"Request Transformation"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.a,{href:"/docs/middlewares/event-normalizer",children:(0,n.jsx)(s.code,{children:"event-normalizer"})}),": Middleware for iterating through an AWS event records, parsing and normalizing nested events."]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.a,{href:"/docs/middlewares/http-content-negotiation",children:(0,n.jsx)(s.code,{children:"http-content-negotiation"})}),": Parses ",(0,n.jsx)(s.code,{children:"Accept-*"})," headers and provides utilities for content negotiation (charset, encoding, language and media type) for HTTP requests"]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.a,{href:"/docs/middlewares/http-event-normalizer",children:(0,n.jsx)(s.code,{children:"http-event-normalizer"})}),": Normalizes HTTP events by adding an empty object for ",(0,n.jsx)(s.code,{children:"queryStringParameters"}),", ",(0,n.jsx)(s.code,{children:"multiValueQueryStringParameters"})," or ",(0,n.jsx)(s.code,{children:"pathParameters"})," if they are missing."]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.a,{href:"/docs/middlewares/http-header-normalizer",children:(0,n.jsx)(s.code,{children:"http-header-normalizer"})}),": Normalizes HTTP header names to their canonical format"]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.a,{href:"/docs/middlewares/http-json-body-parser",children:(0,n.jsx)(s.code,{children:"http-json-body-parser"})}),": Automatically parses HTTP requests with JSON body and converts the body into an object. Also handles gracefully broken JSON if used in combination of\n",(0,n.jsx)(s.code,{children:"httpErrorHandler"}),"."]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.a,{href:"/docs/middlewares/http-multipart-body-parser",children:(0,n.jsx)(s.code,{children:"http-multipart-body-parser"})}),": Automatically parses HTTP requests with content type ",(0,n.jsx)(s.code,{children:"multipart/form-data"})," and converts the body into an object."]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.a,{href:"/docs/middlewares/http-urlencode-body-parser",children:(0,n.jsx)(s.code,{children:"http-urlencode-body-parser"})}),": Automatically parses HTTP requests with URL encoded body (typically the result of a form submit)."]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.a,{href:"/docs/middlewares/http-urlencode-path-parser",children:(0,n.jsx)(s.code,{children:"http-urlencode-path-parser"})}),": Automatically parses HTTP requests with URL encoded path."]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.a,{href:"/docs/middlewares/validator",children:(0,n.jsx)(s.code,{children:"validator"})}),": Automatically validates incoming events and outgoing responses against custom schemas."]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.a,{href:"/docs/middlewares/ws-json-body-parser",children:(0,n.jsx)(s.code,{children:"ws-json-body-parser"})}),": Automatically parses WebSocket requests with JSON message and converts the message into an object."]}),"\n"]}),"\n",(0,n.jsx)(s.h2,{id:"response-transformation",children:"Response Transformation"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.a,{href:"/docs/middlewares/http-content-encoding",children:(0,n.jsx)(s.code,{children:"http-content-encoding"})}),": Sets HTTP Content-Encoding header on response and compresses response body"]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.a,{href:"/docs/middlewares/http-cors",children:(0,n.jsx)(s.code,{children:"http-cors"})}),": Sets HTTP CORS headers on response"]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.a,{href:"/docs/middlewares/http-error-handler",children:(0,n.jsx)(s.code,{children:"http-error-handler"})}),": Creates a proper HTTP response for errors that are created with the ",(0,n.jsx)(s.a,{href:"https://www.npmjs.com/package/http-errors",children:"http-errors"})," module and represents proper HTTP errors."]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.a,{href:"/docs/middlewares/http-security-headers",children:(0,n.jsx)(s.code,{children:"http-security-headers"})}),": Applies best practice security headers to responses. It's a simplified port of HelmetJS."]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.a,{href:"/docs/middlewares/http-partial-response",children:(0,n.jsx)(s.code,{children:"http-partial-response"})}),": Filter response objects attributes based on query string parameters."]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.a,{href:"/docs/middlewares/http-response-serializer",children:(0,n.jsx)(s.code,{children:"http-response-serializer"})}),": HTTP response serializer."]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.a,{href:"/docs/middlewares/sqs-partial-batch-failure",children:(0,n.jsx)(s.code,{children:"sqs-partial-batch-failure"})}),": Handles partially failed SQS batches."]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.a,{href:"/docs/middlewares/ws-response",children:(0,n.jsx)(s.code,{children:"ws-response"})}),": Forwards response to WebSocket endpoint."]}),"\n"]}),"\n",(0,n.jsx)(s.h2,{id:"fetch-data",children:"Fetch Data"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.a,{href:"/docs/middlewares/appconfig",children:(0,n.jsx)(s.code,{children:"appconfig"})}),": Fetch JSON configurations from AppConfig."]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.a,{href:"/docs/middlewares/dynamodb",children:(0,n.jsx)(s.code,{children:"dynamodb"})}),": Fetch configurations from DynamoDB."]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.a,{href:"/docs/middlewares/rds-signer",children:(0,n.jsx)(s.code,{children:"rds-signer"})}),": Fetches token for connecting to RDS with IAM users."]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.a,{href:"/docs/middlewares/s3",children:(0,n.jsx)(s.code,{children:"s3"})}),": Fetch JSON configurations from S3."]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.a,{href:"/docs/middlewares/s3-object-response",children:(0,n.jsx)(s.code,{children:"s3-object-response"})}),": Gets and write S3 object response."]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.a,{href:"/docs/middlewares/secrets-manager",children:(0,n.jsx)(s.code,{children:"secrets-manager"})}),": Fetches parameters from ",(0,n.jsx)(s.a,{href:"https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html",children:"AWS Secrets Manager"}),"."]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.a,{href:"/docs/middlewares/service-discovery",children:(0,n.jsx)(s.code,{children:"service-discovery"})}),": Fetches Service Discovery instances to be used when connecting to other AWS services."]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.a,{href:"/docs/middlewares/ssm",children:(0,n.jsx)(s.code,{children:"ssm"})}),": Fetches parameters from ",(0,n.jsx)(s.a,{href:"https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-paramstore.html",children:"AWS Systems Manager Parameter Store"}),"."]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.a,{href:"/docs/middlewares/sts",children:(0,n.jsx)(s.code,{children:"sts"})}),": Fetches credentials to assumes IAM roles for connection to other AWS services."]}),"\n"]})]})}function h(e={}){const{wrapper:s}={...(0,i.a)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(l,{...e})}):l(e)}},1151:(e,s,r)=>{r.d(s,{Z:()=>a,a:()=>d});var n=r(7294);const i={},t=n.createContext(i);function d(e){const s=n.useContext(t);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function a(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:d(e.components),n.createElement(t.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/aecdbf7e.b4cde063.js b/assets/js/aecdbf7e.b4cde063.js deleted file mode 100644 index d2daabea4..000000000 --- a/assets/js/aecdbf7e.b4cde063.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[1073],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>f});var a=r(7294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function l(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function i(e,t){if(null==e)return{};var r,a,n=function(e,t){if(null==e)return{};var r,a,n={},o=Object.keys(e);for(a=0;a<o.length;a++)r=o[a],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)r=o[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=a.createContext({}),c=function(e){var t=a.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},u=function(e){var t=c(e.components);return a.createElement(s.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,s=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),d=c(r),p=n,f=d["".concat(s,".").concat(p)]||d[p]||m[p]||o;return r?a.createElement(f,l(l({ref:t},u),{},{components:r})):a.createElement(f,l({ref:t},u))}));function f(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,l=new Array(o);l[0]=p;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[d]="string"==typeof e?e:n,l[1]=i;for(var c=2;c<o;c++)l[c]=r[c];return a.createElement.apply(null,l)}return a.createElement.apply(null,r)}p.displayName="MDXCreateElement"},5162:(e,t,r)=>{r.d(t,{Z:()=>l});var a=r(7294),n=r(6010);const o={tabItem:"tabItem_Ymn6"};function l(e){let{children:t,hidden:r,className:l}=e;return a.createElement("div",{role:"tabpanel",className:(0,n.Z)(o.tabItem,l),hidden:r},t)}},4866:(e,t,r)=>{r.d(t,{Z:()=>k});var a=r(7462),n=r(7294),o=r(6010),l=r(2466),i=r(6550),s=r(1980),c=r(7392),u=r(12);function d(e){return function(e){return n.Children.map(e,(e=>{if(!e||(0,n.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:r,attributes:a,default:n}}=e;return{value:t,label:r,attributes:a,default:n}}))}function m(e){const{values:t,children:r}=e;return(0,n.useMemo)((()=>{const e=t??d(r);return function(e){const t=(0,c.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,r])}function p(e){let{value:t,tabValues:r}=e;return r.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:r}=e;const a=(0,i.k6)(),o=function(e){let{queryString:t=!1,groupId:r}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!r)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return r??null}({queryString:t,groupId:r});return[(0,s._X)(o),(0,n.useCallback)((e=>{if(!o)return;const t=new URLSearchParams(a.location.search);t.set(o,e),a.replace({...a.location,search:t.toString()})}),[o,a])]}function h(e){const{defaultValue:t,queryString:r=!1,groupId:a}=e,o=m(e),[l,i]=(0,n.useState)((()=>function(e){let{defaultValue:t,tabValues:r}=e;if(0===r.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!p({value:t,tabValues:r}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${r.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const a=r.find((e=>e.default))??r[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:t,tabValues:o}))),[s,c]=f({queryString:r,groupId:a}),[d,h]=function(e){let{groupId:t}=e;const r=function(e){return e?`docusaurus.tab.${e}`:null}(t),[a,o]=(0,u.Nk)(r);return[a,(0,n.useCallback)((e=>{r&&o.set(e)}),[r,o])]}({groupId:a}),b=(()=>{const e=s??d;return p({value:e,tabValues:o})?e:null})();(0,n.useLayoutEffect)((()=>{b&&i(b)}),[b]);return{selectedValue:l,selectValue:(0,n.useCallback)((e=>{if(!p({value:e,tabValues:o}))throw new Error(`Can't select invalid tab value=${e}`);i(e),c(e),h(e)}),[c,h,o]),tabValues:o}}var b=r(2389);const g={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};function y(e){let{className:t,block:r,selectedValue:i,selectValue:s,tabValues:c}=e;const u=[],{blockElementScrollPositionUntilNextRender:d}=(0,l.o5)(),m=e=>{const t=e.currentTarget,r=u.indexOf(t),a=c[r].value;a!==i&&(d(t),s(a))},p=e=>{let t=null;switch(e.key){case"Enter":m(e);break;case"ArrowRight":{const r=u.indexOf(e.currentTarget)+1;t=u[r]??u[0];break}case"ArrowLeft":{const r=u.indexOf(e.currentTarget)-1;t=u[r]??u[u.length-1];break}}t?.focus()};return n.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,o.Z)("tabs",{"tabs--block":r},t)},c.map((e=>{let{value:t,label:r,attributes:l}=e;return n.createElement("li",(0,a.Z)({role:"tab",tabIndex:i===t?0:-1,"aria-selected":i===t,key:t,ref:e=>u.push(e),onKeyDown:p,onClick:m},l,{className:(0,o.Z)("tabs__item",g.tabItem,l?.className,{"tabs__item--active":i===t})}),r??t)})))}function w(e){let{lazy:t,children:r,selectedValue:a}=e;const o=(Array.isArray(r)?r:[r]).filter(Boolean);if(t){const e=o.find((e=>e.props.value===a));return e?(0,n.cloneElement)(e,{className:"margin-top--md"}):null}return n.createElement("div",{className:"margin-top--md"},o.map(((e,t)=>(0,n.cloneElement)(e,{key:t,hidden:e.props.value!==a}))))}function v(e){const t=h(e);return n.createElement("div",{className:(0,o.Z)("tabs-container",g.tabList)},n.createElement(y,(0,a.Z)({},e,t)),n.createElement(w,(0,a.Z)({},e,t)))}function k(e){const t=(0,b.Z)();return n.createElement(v,(0,a.Z)({key:String(t)},e))}},7676:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>s,default:()=>f,frontMatter:()=>i,metadata:()=>c,toc:()=>d});var a=r(7462),n=(r(7294),r(3905)),o=r(4866),l=r(5162);const i={title:"cloudwatch-metrics"},s=void 0,c={unversionedId:"middlewares/cloudwatch-metrics",id:"middlewares/cloudwatch-metrics",title:"cloudwatch-metrics",description:"This middleware hydrates lambda's context.metrics property with an instance of MetricLogger. This instance can be used to easily generate custom metrics from Lambda functions without requiring custom batching code, making blocking network requests or relying on 3rd party software.",source:"@site/docs/middlewares/cloudwatch-metrics.md",sourceDirName:"middlewares",slug:"/middlewares/cloudwatch-metrics",permalink:"/docs/middlewares/cloudwatch-metrics",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/middlewares/cloudwatch-metrics.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",frontMatter:{title:"cloudwatch-metrics"},sidebar:"tutorialSidebar",previous:{title:"appconfig",permalink:"/docs/middlewares/appconfig"},next:{title:"do-not-wait-for-empty-event-loop",permalink:"/docs/middlewares/do-not-wait-for-empty-event-loop"}},u={},d=[{value:"Install",id:"install",level:2},{value:"Options",id:"options",level:2},{value:"Sample usage",id:"sample-usage",level:2}],m={toc:d},p="wrapper";function f(e){let{components:t,...r}=e;return(0,n.kt)(p,(0,a.Z)({},m,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"This middleware hydrates lambda's ",(0,n.kt)("inlineCode",{parentName:"p"},"context.metrics")," property with an instance of ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/awslabs/aws-embedded-metrics-node#metriclogger"},"MetricLogger"),". This instance can be used to easily generate custom metrics from Lambda functions without requiring custom batching code, making blocking network requests or relying on 3rd party software."),(0,n.kt)("p",null,"Metrics collected with this logger are then available for querying within ",(0,n.kt)("a",{parentName:"p",href:"https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AnalyzingLogData.html"},"AWS CloudWatch Log Insights")),(0,n.kt)("p",null,"You can explore all the MetricLogger APIs following ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/awslabs/aws-embedded-metrics-node"},"aws-embedded-metrics")," documentation."),(0,n.kt)("h2",{id:"install"},"Install"),(0,n.kt)("p",null,"To install this middleware you can use NPM:"),(0,n.kt)(o.Z,{groupId:"npm2yarn",mdxType:"Tabs"},(0,n.kt)(l.Z,{value:"npm",mdxType:"TabItem"},(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-bash"},"npm install --save @middy/cloudwatch-metrics\n"))),(0,n.kt)(l.Z,{value:"yarn",label:"Yarn",mdxType:"TabItem"},(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-bash"},"yarn add @middy/cloudwatch-metrics\n"))),(0,n.kt)(l.Z,{value:"pnpm",label:"pnpm",mdxType:"TabItem"},(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-bash"},"pnpm add @middy/cloudwatch-metrics\n")))),(0,n.kt)("h2",{id:"options"},"Options"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"namespace")," (",(0,n.kt)("inlineCode",{parentName:"li"},"string"),") (optional): Defaults to ",(0,n.kt)("inlineCode",{parentName:"li"},"aws-embedded-metrics"),". Sets the CloudWatch ",(0,n.kt)("a",{parentName:"li",href:"https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Namespace"},"namespace")," that extracted metrics should be published to."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"dimensions")," (",(0,n.kt)("inlineCode",{parentName:"li"},"Record<String, String> | Record<String, String>[]"),") (optional): Explicitly overrides all dimensions. This will remove the default dimensions. You can provide an empty array to record all metrics without dimensions. For dimensions defaults and configuration see the ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/awslabs/aws-embedded-metrics-node/tree/v4.1.0#configuration"},"aws-embedded-metrics docs"),".")),(0,n.kt)("h2",{id:"sample-usage"},"Sample usage"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-javascript"},"const middy = require('@middy/core')\nconst cloudwatchMetrics = require('@middy/cloudwatch-metrics')\n\nconst handler = middy((event, context) => {\n context.metrics.putMetric('ProcessingLatency', 100, 'Milliseconds')\n context.metrics.setProperty(\n 'RequestId',\n '422b1569-16f6-4a03-b8f0-fe3fd9b100f8'\n )\n})\n\nhandler.use(\n cloudwatchMetrics({\n namespace: 'myAppliction',\n dimensions: [{ Action: 'Buy' }]\n })\n)\n")))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/aecdbf7e.bfba9e83.js b/assets/js/aecdbf7e.bfba9e83.js new file mode 100644 index 000000000..6bc4b2a30 --- /dev/null +++ b/assets/js/aecdbf7e.bfba9e83.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[1073],{9232:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>o,default:()=>h,frontMatter:()=>i,metadata:()=>c,toc:()=>u});var r=n(5893),a=n(1151),s=n(4866),l=n(5162);const i={title:"cloudwatch-metrics"},o=void 0,c={id:"middlewares/cloudwatch-metrics",title:"cloudwatch-metrics",description:"This middleware hydrates lambda's context.metrics property with an instance of MetricLogger. This instance can be used to easily generate custom metrics from Lambda functions without requiring custom batching code, making blocking network requests or relying on 3rd party software.",source:"@site/docs/middlewares/cloudwatch-metrics.md",sourceDirName:"middlewares",slug:"/middlewares/cloudwatch-metrics",permalink:"/docs/middlewares/cloudwatch-metrics",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/middlewares/cloudwatch-metrics.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",frontMatter:{title:"cloudwatch-metrics"},sidebar:"tutorialSidebar",previous:{title:"appconfig",permalink:"/docs/middlewares/appconfig"},next:{title:"do-not-wait-for-empty-event-loop",permalink:"/docs/middlewares/do-not-wait-for-empty-event-loop"}},d={},u=[{value:"Install",id:"install",level:2},{value:"Options",id:"options",level:2},{value:"Sample usage",id:"sample-usage",level:2}];function m(e){const t={a:"a",code:"code",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,a.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(t.p,{children:["This middleware hydrates lambda's ",(0,r.jsx)(t.code,{children:"context.metrics"})," property with an instance of ",(0,r.jsx)(t.a,{href:"https://github.com/awslabs/aws-embedded-metrics-node#metriclogger",children:"MetricLogger"}),". This instance can be used to easily generate custom metrics from Lambda functions without requiring custom batching code, making blocking network requests or relying on 3rd party software."]}),"\n",(0,r.jsxs)(t.p,{children:["Metrics collected with this logger are then available for querying within ",(0,r.jsx)(t.a,{href:"https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AnalyzingLogData.html",children:"AWS CloudWatch Log Insights"})]}),"\n",(0,r.jsxs)(t.p,{children:["You can explore all the MetricLogger APIs following ",(0,r.jsx)(t.a,{href:"https://github.com/awslabs/aws-embedded-metrics-node",children:"aws-embedded-metrics"})," documentation."]}),"\n",(0,r.jsx)(t.h2,{id:"install",children:"Install"}),"\n",(0,r.jsx)(t.p,{children:"To install this middleware you can use NPM:"}),"\n",(0,r.jsxs)(s.Z,{groupId:"npm2yarn",children:[(0,r.jsx)(l.Z,{value:"npm",children:(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-bash",children:"npm install --save @middy/cloudwatch-metrics\n"})})}),(0,r.jsx)(l.Z,{value:"yarn",label:"Yarn",children:(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-bash",children:"yarn add @middy/cloudwatch-metrics\n"})})}),(0,r.jsx)(l.Z,{value:"pnpm",label:"pnpm",children:(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-bash",children:"pnpm add @middy/cloudwatch-metrics\n"})})})]}),"\n",(0,r.jsx)(t.h2,{id:"options",children:"Options"}),"\n",(0,r.jsxs)(t.ul,{children:["\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:"namespace"})," (",(0,r.jsx)(t.code,{children:"string"}),") (optional): Defaults to ",(0,r.jsx)(t.code,{children:"aws-embedded-metrics"}),". Sets the CloudWatch ",(0,r.jsx)(t.a,{href:"https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Namespace",children:"namespace"})," that extracted metrics should be published to."]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:"dimensions"})," (",(0,r.jsx)(t.code,{children:"Record<String, String> | Record<String, String>[]"}),") (optional): Explicitly overrides all dimensions. This will remove the default dimensions. You can provide an empty array to record all metrics without dimensions. For dimensions defaults and configuration see the ",(0,r.jsx)(t.a,{href:"https://github.com/awslabs/aws-embedded-metrics-node/tree/v4.1.0#configuration",children:"aws-embedded-metrics docs"}),"."]}),"\n"]}),"\n",(0,r.jsx)(t.h2,{id:"sample-usage",children:"Sample usage"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-javascript",children:"const middy = require('@middy/core')\nconst cloudwatchMetrics = require('@middy/cloudwatch-metrics')\n\nconst lambdaHandler = (event, context) => {\n context.metrics.putMetric('ProcessingLatency', 100, 'Milliseconds')\n context.metrics.setProperty(\n 'RequestId',\n '422b1569-16f6-4a03-b8f0-fe3fd9b100f8'\n )\n}\nexport const handler = middy()\n .use(\n cloudwatchMetrics({\n namespace: 'myAppliction',\n dimensions: [{ Action: 'Buy' }]\n })\n )\n .handler(lambdaHandler)\n"})})]})}function h(e={}){const{wrapper:t}={...(0,a.a)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(m,{...e})}):m(e)}},5162:(e,t,n)=>{n.d(t,{Z:()=>l});n(7294);var r=n(6010);const a={tabItem:"tabItem_Ymn6"};var s=n(5893);function l(e){let{children:t,hidden:n,className:l}=e;return(0,s.jsx)("div",{role:"tabpanel",className:(0,r.Z)(a.tabItem,l),hidden:n,children:t})}},4866:(e,t,n)=>{n.d(t,{Z:()=>j});var r=n(7294),a=n(6010),s=n(2466),l=n(6550),i=n(469),o=n(1980),c=n(7392),d=n(12);function u(e){return r.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function m(e){const{values:t,children:n}=e;return(0,r.useMemo)((()=>{const e=t??function(e){return u(e).map((e=>{let{props:{value:t,label:n,attributes:r,default:a}}=e;return{value:t,label:n,attributes:r,default:a}}))}(n);return function(e){const t=(0,c.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,n])}function h(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function p(e){let{queryString:t=!1,groupId:n}=e;const a=(0,l.k6)(),s=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,o._X)(s),(0,r.useCallback)((e=>{if(!s)return;const t=new URLSearchParams(a.location.search);t.set(s,e),a.replace({...a.location,search:t.toString()})}),[s,a])]}function b(e){const{defaultValue:t,queryString:n=!1,groupId:a}=e,s=m(e),[l,o]=(0,r.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!h({value:t,tabValues:n}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const r=n.find((e=>e.default))??n[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:t,tabValues:s}))),[c,u]=p({queryString:n,groupId:a}),[b,f]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[a,s]=(0,d.Nk)(n);return[a,(0,r.useCallback)((e=>{n&&s.set(e)}),[n,s])]}({groupId:a}),g=(()=>{const e=c??b;return h({value:e,tabValues:s})?e:null})();(0,i.Z)((()=>{g&&o(g)}),[g]);return{selectedValue:l,selectValue:(0,r.useCallback)((e=>{if(!h({value:e,tabValues:s}))throw new Error(`Can't select invalid tab value=${e}`);o(e),u(e),f(e)}),[u,f,s]),tabValues:s}}var f=n(2389);const g={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var w=n(5893);function v(e){let{className:t,block:n,selectedValue:r,selectValue:l,tabValues:i}=e;const o=[],{blockElementScrollPositionUntilNextRender:c}=(0,s.o5)(),d=e=>{const t=e.currentTarget,n=o.indexOf(t),a=i[n].value;a!==r&&(c(t),l(a))},u=e=>{let t=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{const n=o.indexOf(e.currentTarget)+1;t=o[n]??o[0];break}case"ArrowLeft":{const n=o.indexOf(e.currentTarget)-1;t=o[n]??o[o.length-1];break}}t?.focus()};return(0,w.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,a.Z)("tabs",{"tabs--block":n},t),children:i.map((e=>{let{value:t,label:n,attributes:s}=e;return(0,w.jsx)("li",{role:"tab",tabIndex:r===t?0:-1,"aria-selected":r===t,ref:e=>o.push(e),onKeyDown:u,onClick:d,...s,className:(0,a.Z)("tabs__item",g.tabItem,s?.className,{"tabs__item--active":r===t}),children:n??t},t)}))})}function x(e){let{lazy:t,children:n,selectedValue:a}=e;const s=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=s.find((e=>e.props.value===a));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return(0,w.jsx)("div",{className:"margin-top--md",children:s.map(((e,t)=>(0,r.cloneElement)(e,{key:t,hidden:e.props.value!==a})))})}function y(e){const t=b(e);return(0,w.jsxs)("div",{className:(0,a.Z)("tabs-container",g.tabList),children:[(0,w.jsx)(v,{...e,...t}),(0,w.jsx)(x,{...e,...t})]})}function j(e){const t=(0,f.Z)();return(0,w.jsx)(y,{...e,children:u(e.children)},String(t))}},1151:(e,t,n)=>{n.d(t,{Z:()=>i,a:()=>l});var r=n(7294);const a={},s=r.createContext(a);function l(e){const t=r.useContext(s);return r.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:l(e.components),r.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/b3edb814.faade522.js b/assets/js/b3edb814.faade522.js new file mode 100644 index 000000000..d481ff46c --- /dev/null +++ b/assets/js/b3edb814.faade522.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[3786],{7963:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>o,default:()=>p,frontMatter:()=>i,metadata:()=>c,toc:()=>u});var s=t(5893),r=t(1151),a=t(4866),l=t(5162);const i={title:"sts"},o=void 0,c={id:"middlewares/sts",title:"sts",description:"Fetches STS credentials to be used when connecting to other AWS services.",source:"@site/docs/middlewares/sts.md",sourceDirName:"middlewares",slug:"/middlewares/sts",permalink:"/docs/middlewares/sts",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/middlewares/sts.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",frontMatter:{title:"sts"},sidebar:"tutorialSidebar",previous:{title:"ssm",permalink:"/docs/middlewares/ssm"},next:{title:"validator",permalink:"/docs/middlewares/validator"}},d={},u=[{value:"Install",id:"install",level:2},{value:"Options",id:"options",level:2},{value:"Sample usage",id:"sample-usage",level:2},{value:"Bundling",id:"bundling",level:2}];function h(e){const n={code:"code",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.p,{children:"Fetches STS credentials to be used when connecting to other AWS services."}),"\n",(0,s.jsx)(n.h2,{id:"install",children:"Install"}),"\n",(0,s.jsx)(n.p,{children:"To install this middleware you can use NPM:"}),"\n",(0,s.jsxs)(a.Z,{groupId:"npm2yarn",children:[(0,s.jsx)(l.Z,{value:"npm",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"npm install --save @middy/sts\nnpm install --save-dev @aws-sdk/client-sts\n"})})}),(0,s.jsx)(l.Z,{value:"yarn",label:"Yarn",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"yarn add @middy/sts\nyarn add --dev @aws-sdk/client-sts\n"})})}),(0,s.jsx)(l.Z,{value:"pnpm",label:"pnpm",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"pnpm add @middy/sts\npnpm add --save-dev @aws-sdk/client-sts\n"})})})]}),"\n",(0,s.jsx)(n.h2,{id:"options",children:"Options"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"AwsClient"})," (object) (default ",(0,s.jsx)(n.code,{children:"STSClient"}),"): STSClient class constructor (i.e. that has been instrumented with AWS XRay). Must be from ",(0,s.jsx)(n.code,{children:"@aws-sdk/client-sts"}),"."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"awsClientOptions"})," (object) (optional): Options to pass to STSClient class constructor."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"awsClientCapture"})," (function) (optional): Enable XRay by passing ",(0,s.jsx)(n.code,{children:"captureAWSv3Client"})," from ",(0,s.jsx)(n.code,{children:"aws-xray-sdk"})," in."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"fetchData"})," (object) (required): Mapping of internal key name to API request parameters."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"disablePrefetch"})," (boolean) (default ",(0,s.jsx)(n.code,{children:"false"}),"): On cold start requests will trigger early if they can. Setting ",(0,s.jsx)(n.code,{children:"awsClientAssumeRole"})," disables prefetch."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"cacheKey"})," (string) (default ",(0,s.jsx)(n.code,{children:"sts"}),"): Cache key for the fetched data responses. Must be unique across all middleware."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"cacheExpiry"})," (number) (default ",(0,s.jsx)(n.code,{children:"-1"}),"): How long fetch data responses should be cached for. ",(0,s.jsx)(n.code,{children:"-1"}),": cache forever, ",(0,s.jsx)(n.code,{children:"0"}),": never cache, ",(0,s.jsx)(n.code,{children:"n"}),": cache for n ms."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"setToContext"})," (boolean) (default ",(0,s.jsx)(n.code,{children:"false"}),"): Store credentials to ",(0,s.jsx)(n.code,{children:"request.context"}),"."]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"NOTES:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Lambda is required to have IAM permission for ",(0,s.jsx)(n.code,{children:"sts:AssumeRole"})]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"setToContext"})," are included for legacy support and should be avoided for performance and security reasons. See main documentation for best practices."]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"sample-usage",children:"Sample usage"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-javascript",children:"import middy from '@middy/core'\nimport sts from '@middy/sts'\n\nconst lambdaHandler = (event, context) => {\n const response = {\n statusCode: 200,\n headers: {},\n body: JSON.stringify({ message: 'hello world' })\n }\n\n return response\n}\n\nexport const handler = middy()\n .use(\n sts({\n fetchData: {\n assumeRole: {\n RoleArn: '...',\n RoleSessionName: '' // optional\n }\n }\n })\n )\n .handler(lambdaHandler)\n"})}),"\n",(0,s.jsx)(n.h2,{id:"bundling",children:"Bundling"}),"\n",(0,s.jsxs)(n.p,{children:["To exclude ",(0,s.jsx)(n.code,{children:"@aws-sdk"})," add ",(0,s.jsx)(n.code,{children:"@aws-sdk/client-sts"})," to the exclude list."]})]})}function p(e={}){const{wrapper:n}={...(0,r.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}},5162:(e,n,t)=>{t.d(n,{Z:()=>l});t(7294);var s=t(6010);const r={tabItem:"tabItem_Ymn6"};var a=t(5893);function l(e){let{children:n,hidden:t,className:l}=e;return(0,a.jsx)("div",{role:"tabpanel",className:(0,s.Z)(r.tabItem,l),hidden:t,children:n})}},4866:(e,n,t)=>{t.d(n,{Z:()=>w});var s=t(7294),r=t(6010),a=t(2466),l=t(6550),i=t(469),o=t(1980),c=t(7392),d=t(12);function u(e){return s.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,s.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function h(e){const{values:n,children:t}=e;return(0,s.useMemo)((()=>{const e=n??function(e){return u(e).map((e=>{let{props:{value:n,label:t,attributes:s,default:r}}=e;return{value:n,label:t,attributes:s,default:r}}))}(t);return function(e){const n=(0,c.l)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[n,t])}function p(e){let{value:n,tabValues:t}=e;return t.some((e=>e.value===n))}function m(e){let{queryString:n=!1,groupId:t}=e;const r=(0,l.k6)(),a=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t});return[(0,o._X)(a),(0,s.useCallback)((e=>{if(!a)return;const n=new URLSearchParams(r.location.search);n.set(a,e),r.replace({...r.location,search:n.toString()})}),[a,r])]}function f(e){const{defaultValue:n,queryString:t=!1,groupId:r}=e,a=h(e),[l,o]=(0,s.useState)((()=>function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(n){if(!p({value:n,tabValues:t}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const s=t.find((e=>e.default))??t[0];if(!s)throw new Error("Unexpected error: 0 tabValues");return s.value}({defaultValue:n,tabValues:a}))),[c,u]=m({queryString:t,groupId:r}),[f,b]=function(e){let{groupId:n}=e;const t=function(e){return e?`docusaurus.tab.${e}`:null}(n),[r,a]=(0,d.Nk)(t);return[r,(0,s.useCallback)((e=>{t&&a.set(e)}),[t,a])]}({groupId:r}),x=(()=>{const e=c??f;return p({value:e,tabValues:a})?e:null})();(0,i.Z)((()=>{x&&o(x)}),[x]);return{selectedValue:l,selectValue:(0,s.useCallback)((e=>{if(!p({value:e,tabValues:a}))throw new Error(`Can't select invalid tab value=${e}`);o(e),u(e),b(e)}),[u,b,a]),tabValues:a}}var b=t(2389);const x={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var v=t(5893);function j(e){let{className:n,block:t,selectedValue:s,selectValue:l,tabValues:i}=e;const o=[],{blockElementScrollPositionUntilNextRender:c}=(0,a.o5)(),d=e=>{const n=e.currentTarget,t=o.indexOf(n),r=i[t].value;r!==s&&(c(n),l(r))},u=e=>{let n=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{const t=o.indexOf(e.currentTarget)+1;n=o[t]??o[0];break}case"ArrowLeft":{const t=o.indexOf(e.currentTarget)-1;n=o[t]??o[o.length-1];break}}n?.focus()};return(0,v.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,r.Z)("tabs",{"tabs--block":t},n),children:i.map((e=>{let{value:n,label:t,attributes:a}=e;return(0,v.jsx)("li",{role:"tab",tabIndex:s===n?0:-1,"aria-selected":s===n,ref:e=>o.push(e),onKeyDown:u,onClick:d,...a,className:(0,r.Z)("tabs__item",x.tabItem,a?.className,{"tabs__item--active":s===n}),children:t??n},n)}))})}function g(e){let{lazy:n,children:t,selectedValue:r}=e;const a=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){const e=a.find((e=>e.props.value===r));return e?(0,s.cloneElement)(e,{className:"margin-top--md"}):null}return(0,v.jsx)("div",{className:"margin-top--md",children:a.map(((e,n)=>(0,s.cloneElement)(e,{key:n,hidden:e.props.value!==r})))})}function y(e){const n=f(e);return(0,v.jsxs)("div",{className:(0,r.Z)("tabs-container",x.tabList),children:[(0,v.jsx)(j,{...e,...n}),(0,v.jsx)(g,{...e,...n})]})}function w(e){const n=(0,b.Z)();return(0,v.jsx)(y,{...e,children:u(e.children)},String(n))}},1151:(e,n,t)=>{t.d(n,{Z:()=>i,a:()=>l});var s=t(7294);const r={},a=s.createContext(r);function l(e){const n=s.useContext(a);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:l(e.components),s.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/b3edb814.fcce4aa8.js b/assets/js/b3edb814.fcce4aa8.js deleted file mode 100644 index aedee7865..000000000 --- a/assets/js/b3edb814.fcce4aa8.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[3786],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},l=Object.keys(e);for(a=0;a<l.length;a++)n=l[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a<l.length;a++)n=l[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var o=a.createContext({}),u=function(e){var t=a.useContext(o),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},c=function(e){var t=u(e.components);return a.createElement(o.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,l=e.originalType,o=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),d=u(n),m=r,f=d["".concat(o,".").concat(m)]||d[m]||p[m]||l;return n?a.createElement(f,s(s({ref:t},c),{},{components:n})):a.createElement(f,s({ref:t},c))}));function f(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=n.length,s=new Array(l);s[0]=m;var i={};for(var o in t)hasOwnProperty.call(t,o)&&(i[o]=t[o]);i.originalType=e,i[d]="string"==typeof e?e:r,s[1]=i;for(var u=2;u<l;u++)s[u]=n[u];return a.createElement.apply(null,s)}return a.createElement.apply(null,n)}m.displayName="MDXCreateElement"},5162:(e,t,n)=>{n.d(t,{Z:()=>s});var a=n(7294),r=n(6010);const l={tabItem:"tabItem_Ymn6"};function s(e){let{children:t,hidden:n,className:s}=e;return a.createElement("div",{role:"tabpanel",className:(0,r.Z)(l.tabItem,s),hidden:n},t)}},4866:(e,t,n)=>{n.d(t,{Z:()=>w});var a=n(7462),r=n(7294),l=n(6010),s=n(2466),i=n(6550),o=n(1980),u=n(7392),c=n(12);function d(e){return function(e){return r.Children.map(e,(e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:a,default:r}}=e;return{value:t,label:n,attributes:a,default:r}}))}function p(e){const{values:t,children:n}=e;return(0,r.useMemo)((()=>{const e=t??d(n);return function(e){const t=(0,u.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,n])}function m(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:n}=e;const a=(0,i.k6)(),l=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,o._X)(l),(0,r.useCallback)((e=>{if(!l)return;const t=new URLSearchParams(a.location.search);t.set(l,e),a.replace({...a.location,search:t.toString()})}),[l,a])]}function b(e){const{defaultValue:t,queryString:n=!1,groupId:a}=e,l=p(e),[s,i]=(0,r.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!m({value:t,tabValues:n}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const a=n.find((e=>e.default))??n[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:t,tabValues:l}))),[o,u]=f({queryString:n,groupId:a}),[d,b]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[a,l]=(0,c.Nk)(n);return[a,(0,r.useCallback)((e=>{n&&l.set(e)}),[n,l])]}({groupId:a}),h=(()=>{const e=o??d;return m({value:e,tabValues:l})?e:null})();(0,r.useLayoutEffect)((()=>{h&&i(h)}),[h]);return{selectedValue:s,selectValue:(0,r.useCallback)((e=>{if(!m({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);i(e),u(e),b(e)}),[u,b,l]),tabValues:l}}var h=n(2389);const y={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};function v(e){let{className:t,block:n,selectedValue:i,selectValue:o,tabValues:u}=e;const c=[],{blockElementScrollPositionUntilNextRender:d}=(0,s.o5)(),p=e=>{const t=e.currentTarget,n=c.indexOf(t),a=u[n].value;a!==i&&(d(t),o(a))},m=e=>{let t=null;switch(e.key){case"Enter":p(e);break;case"ArrowRight":{const n=c.indexOf(e.currentTarget)+1;t=c[n]??c[0];break}case"ArrowLeft":{const n=c.indexOf(e.currentTarget)-1;t=c[n]??c[c.length-1];break}}t?.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":n},t)},u.map((e=>{let{value:t,label:n,attributes:s}=e;return r.createElement("li",(0,a.Z)({role:"tab",tabIndex:i===t?0:-1,"aria-selected":i===t,key:t,ref:e=>c.push(e),onKeyDown:m,onClick:p},s,{className:(0,l.Z)("tabs__item",y.tabItem,s?.className,{"tabs__item--active":i===t})}),n??t)})))}function k(e){let{lazy:t,children:n,selectedValue:a}=e;const l=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=l.find((e=>e.props.value===a));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},l.map(((e,t)=>(0,r.cloneElement)(e,{key:t,hidden:e.props.value!==a}))))}function g(e){const t=b(e);return r.createElement("div",{className:(0,l.Z)("tabs-container",y.tabList)},r.createElement(v,(0,a.Z)({},e,t)),r.createElement(k,(0,a.Z)({},e,t)))}function w(e){const t=(0,h.Z)();return r.createElement(g,(0,a.Z)({key:String(t)},e))}},6995:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>f,frontMatter:()=>i,metadata:()=>u,toc:()=>d});var a=n(7462),r=(n(7294),n(3905)),l=n(4866),s=n(5162);const i={title:"sts"},o=void 0,u={unversionedId:"middlewares/sts",id:"middlewares/sts",title:"sts",description:"Fetches STS credentials to be used when connecting to other AWS services.",source:"@site/docs/middlewares/sts.md",sourceDirName:"middlewares",slug:"/middlewares/sts",permalink:"/docs/middlewares/sts",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/middlewares/sts.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",frontMatter:{title:"sts"},sidebar:"tutorialSidebar",previous:{title:"ssm",permalink:"/docs/middlewares/ssm"},next:{title:"validator",permalink:"/docs/middlewares/validator"}},c={},d=[{value:"Install",id:"install",level:2},{value:"Options",id:"options",level:2},{value:"Sample usage",id:"sample-usage",level:2},{value:"Bundling",id:"bundling",level:2}],p={toc:d},m="wrapper";function f(e){let{components:t,...n}=e;return(0,r.kt)(m,(0,a.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"Fetches STS credentials to be used when connecting to other AWS services."),(0,r.kt)("h2",{id:"install"},"Install"),(0,r.kt)("p",null,"To install this middleware you can use NPM:"),(0,r.kt)(l.Z,{groupId:"npm2yarn",mdxType:"Tabs"},(0,r.kt)(s.Z,{value:"npm",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"npm install --save @middy/sts\nnpm install --save-dev @aws-sdk/client-sts\n"))),(0,r.kt)(s.Z,{value:"yarn",label:"Yarn",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"yarn add @middy/sts\nyarn add --dev @aws-sdk/client-sts\n"))),(0,r.kt)(s.Z,{value:"pnpm",label:"pnpm",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"pnpm add @middy/sts\npnpm add --save-dev @aws-sdk/client-sts\n")))),(0,r.kt)("h2",{id:"options"},"Options"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"AwsClient")," (object) (default ",(0,r.kt)("inlineCode",{parentName:"li"},"STSClient"),"): STSClient class constructor (i.e. that has been instrumented with AWS XRay). Must be from ",(0,r.kt)("inlineCode",{parentName:"li"},"@aws-sdk/client-sts"),"."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"awsClientOptions")," (object) (optional): Options to pass to STSClient class constructor."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"awsClientCapture")," (function) (optional): Enable XRay by passing ",(0,r.kt)("inlineCode",{parentName:"li"},"captureAWSv3Client")," from ",(0,r.kt)("inlineCode",{parentName:"li"},"aws-xray-sdk")," in."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"fetchData")," (object) (required): Mapping of internal key name to API request parameters."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"disablePrefetch")," (boolean) (default ",(0,r.kt)("inlineCode",{parentName:"li"},"false"),"): On cold start requests will trigger early if they can. Setting ",(0,r.kt)("inlineCode",{parentName:"li"},"awsClientAssumeRole")," disables prefetch."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"cacheKey")," (string) (default ",(0,r.kt)("inlineCode",{parentName:"li"},"sts"),"): Cache key for the fetched data responses. Must be unique across all middleware."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"cacheExpiry")," (number) (default ",(0,r.kt)("inlineCode",{parentName:"li"},"-1"),"): How long fetch data responses should be cached for. ",(0,r.kt)("inlineCode",{parentName:"li"},"-1"),": cache forever, ",(0,r.kt)("inlineCode",{parentName:"li"},"0"),": never cache, ",(0,r.kt)("inlineCode",{parentName:"li"},"n"),": cache for n ms."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"setToContext")," (boolean) (default ",(0,r.kt)("inlineCode",{parentName:"li"},"false"),"): Store credentials to ",(0,r.kt)("inlineCode",{parentName:"li"},"request.context"),".")),(0,r.kt)("p",null,"NOTES:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Lambda is required to have IAM permission for ",(0,r.kt)("inlineCode",{parentName:"li"},"sts:AssumeRole")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"setToContext")," are included for legacy support and should be avoided for performance and security reasons. See main documentation for best practices.")),(0,r.kt)("h2",{id:"sample-usage"},"Sample usage"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\nimport sts from '@middy/sts'\n\nconst handler = middy((event, context) => {\n const response = {\n statusCode: 200,\n headers: {},\n body: JSON.stringify({ message: 'hello world' })\n }\n\n return response\n})\n\nhandler.use(\n sts({\n fetchData: {\n assumeRole: {\n RoleArn: '...',\n RoleSessionName: '' // optional\n }\n }\n })\n)\n")),(0,r.kt)("h2",{id:"bundling"},"Bundling"),(0,r.kt)("p",null,"To exclude ",(0,r.kt)("inlineCode",{parentName:"p"},"@aws-sdk")," add ",(0,r.kt)("inlineCode",{parentName:"p"},"@aws-sdk/client-sts")," to the exclude list."))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b5163cd3.646f42cd.js b/assets/js/b5163cd3.646f42cd.js new file mode 100644 index 000000000..7023f54d5 --- /dev/null +++ b/assets/js/b5163cd3.646f42cd.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[4751],{9539:(t,e,n)=>{n.r(e),n.d(e,{assets:()=>c,contentTitle:()=>s,default:()=>u,frontMatter:()=>r,metadata:()=>a,toc:()=>d});var i=n(5893),o=n(1151);const r={title:"Integrations",position:1},s=void 0,a={id:"integrations/intro",title:"Integrations",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/integrations/01-intro.md",sourceDirName:"integrations",slug:"/integrations/intro",permalink:"/docs/integrations/intro",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/integrations/01-intro.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",sidebarPosition:1,frontMatter:{title:"Integrations",position:1},sidebar:"tutorialSidebar",previous:{title:"Integrations",permalink:"/docs/category/integrations"},next:{title:"AWS Relational Database Service (RDS)",permalink:"/docs/integrations/RDS"}},c={},d=[];function p(t){const e={admonition:"admonition",p:"p",...(0,o.a)(),...t.components};return(0,i.jsx)(e.admonition,{type:"caution",children:(0,i.jsx)(e.p,{children:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub."})})}function u(t={}){const{wrapper:e}={...(0,o.a)(),...t.components};return e?(0,i.jsx)(e,{...t,children:(0,i.jsx)(p,{...t})}):p(t)}},1151:(t,e,n)=>{n.d(e,{Z:()=>a,a:()=>s});var i=n(7294);const o={},r=i.createContext(o);function s(t){const e=i.useContext(r);return i.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function a(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(o):t.components||o:s(t.components),i.createElement(r.Provider,{value:e},t.children)}}}]); \ No newline at end of file diff --git a/assets/js/b5163cd3.99517f24.js b/assets/js/b5163cd3.99517f24.js deleted file mode 100644 index 78ba60896..000000000 --- a/assets/js/b5163cd3.99517f24.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[4751],{3905:(e,t,r)=>{r.d(t,{Zo:()=>l,kt:()=>m});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function s(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),p=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},l=function(e){var t=p(e.components);return n.createElement(c.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,c=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),u=p(r),f=o,m=u["".concat(c,".").concat(f)]||u[f]||d[f]||i;return r?n.createElement(m,a(a({ref:t},l),{},{components:r})):n.createElement(m,a({ref:t},l))}));function m(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,a=new Array(i);a[0]=f;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s[u]="string"==typeof e?e:o,a[1]=s;for(var p=2;p<i;p++)a[p]=r[p];return n.createElement.apply(null,a)}return n.createElement.apply(null,r)}f.displayName="MDXCreateElement"},5024:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>d,frontMatter:()=>i,metadata:()=>s,toc:()=>p});var n=r(7462),o=(r(7294),r(3905));const i={title:"Integrations",position:1},a=void 0,s={unversionedId:"integrations/intro",id:"integrations/intro",title:"Integrations",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/integrations/01-intro.md",sourceDirName:"integrations",slug:"/integrations/intro",permalink:"/docs/integrations/intro",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/integrations/01-intro.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",sidebarPosition:1,frontMatter:{title:"Integrations",position:1},sidebar:"tutorialSidebar",previous:{title:"Integrations",permalink:"/docs/category/integrations"},next:{title:"AWS Relational Database Service (RDS)",permalink:"/docs/integrations/RDS"}},c={},p=[],l={toc:p},u="wrapper";function d(e){let{components:t,...r}=e;return(0,o.kt)(u,(0,n.Z)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("admonition",{type:"caution"},(0,o.kt)("p",{parentName:"admonition"},"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b5584809.02995ad9.js b/assets/js/b5584809.02995ad9.js deleted file mode 100644 index 335c251bc..000000000 --- a/assets/js/b5584809.02995ad9.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[2803],{3905:(e,r,t)=>{t.d(r,{Zo:()=>p,kt:()=>d});var n=t(7294);function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function a(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function i(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?a(Object(t),!0).forEach((function(r){o(e,r,t[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):a(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}))}return e}function s(e,r){if(null==e)return{};var t,n,o=function(e,r){if(null==e)return{};var t,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)t=a[n],r.indexOf(t)>=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)t=a[n],r.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var c=n.createContext({}),l=function(e){var r=n.useContext(c),t=r;return e&&(t="function"==typeof e?e(r):i(i({},r),e)),t},p=function(e){var r=l(e.components);return n.createElement(c.Provider,{value:r},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},f=n.forwardRef((function(e,r){var t=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),u=l(t),f=o,d=u["".concat(c,".").concat(f)]||u[f]||m[f]||a;return t?n.createElement(d,i(i({ref:r},p),{},{components:t})):n.createElement(d,i({ref:r},p))}));function d(e,r){var t=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var a=t.length,i=new Array(a);i[0]=f;var s={};for(var c in r)hasOwnProperty.call(r,c)&&(s[c]=r[c]);s.originalType=e,s[u]="string"==typeof e?e:o,i[1]=s;for(var l=2;l<a;l++)i[l]=t[l];return n.createElement.apply(null,i)}return n.createElement.apply(null,t)}f.displayName="MDXCreateElement"},4316:(e,r,t)=>{t.r(r),t.d(r,{assets:()=>c,contentTitle:()=>i,default:()=>m,frontMatter:()=>a,metadata:()=>s,toc:()=>l});var n=t(7462),o=(t(7294),t(3905));const a={title:"Serverless Framework"},i=void 0,s={unversionedId:"integrations/serverless-framework",id:"integrations/serverless-framework",title:"Serverless Framework",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/integrations/serverless-framework.md",sourceDirName:"integrations",slug:"/integrations/serverless-framework",permalink:"/docs/integrations/serverless-framework",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/integrations/serverless-framework.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",frontMatter:{title:"Serverless Framework"},sidebar:"tutorialSidebar",previous:{title:"Pino",permalink:"/docs/integrations/pino"},next:{title:"Serverless Stack",permalink:"/docs/integrations/serverless-stack"}},c={},l=[],p={toc:l},u="wrapper";function m(e){let{components:r,...t}=e;return(0,o.kt)(u,(0,n.Z)({},p,t,{components:r,mdxType:"MDXLayout"}),(0,o.kt)("admonition",{type:"caution"},(0,o.kt)("p",{parentName:"admonition"},"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.")),(0,o.kt)("p",null,"TODO comment about serverless-warmup"))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b5584809.8fa6684e.js b/assets/js/b5584809.8fa6684e.js new file mode 100644 index 000000000..fac80e30b --- /dev/null +++ b/assets/js/b5584809.8fa6684e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[2803],{8418:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>a,toc:()=>d});var s=r(5893),n=r(1151);const o={title:"Serverless Framework"},i=void 0,a={id:"integrations/serverless-framework",title:"Serverless Framework",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/integrations/serverless-framework.md",sourceDirName:"integrations",slug:"/integrations/serverless-framework",permalink:"/docs/integrations/serverless-framework",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/integrations/serverless-framework.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",frontMatter:{title:"Serverless Framework"},sidebar:"tutorialSidebar",previous:{title:"Pino",permalink:"/docs/integrations/pino"},next:{title:"Serverless Stack",permalink:"/docs/integrations/serverless-stack"}},c={},d=[];function l(e){const t={admonition:"admonition",p:"p",...(0,n.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.admonition,{type:"caution",children:(0,s.jsx)(t.p,{children:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub."})}),"\n",(0,s.jsx)(t.p,{children:"TODO comment about serverless-warmup"})]})}function m(e={}){const{wrapper:t}={...(0,n.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(l,{...e})}):l(e)}},1151:(e,t,r)=>{r.d(t,{Z:()=>a,a:()=>i});var s=r(7294);const n={},o=s.createContext(n);function i(e){const t=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:i(e.components),s.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/b5aee65c.3e1c117a.js b/assets/js/b5aee65c.3e1c117a.js deleted file mode 100644 index 9366b0737..000000000 --- a/assets/js/b5aee65c.3e1c117a.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[4510],{3905:(e,t,n)=>{n.d(t,{Zo:()=>m,kt:()=>g});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function o(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},l=Object.keys(e);for(r=0;r<l.length;r++)n=l[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r<l.length;r++)n=l[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var p=r.createContext({}),d=function(e){var t=r.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},m=function(e){var t=d(e.components);return r.createElement(p.Provider,{value:t},e.children)},u="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},s=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,l=e.originalType,p=e.parentName,m=o(e,["components","mdxType","originalType","parentName"]),u=d(n),s=a,g=u["".concat(p,".").concat(s)]||u[s]||c[s]||l;return n?r.createElement(g,i(i({ref:t},m),{},{components:n})):r.createElement(g,i({ref:t},m))}));function g(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=n.length,i=new Array(l);i[0]=s;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[u]="string"==typeof e?e:a,i[1]=o;for(var d=2;d<l;d++)i[d]=n[d];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}s.displayName="MDXCreateElement"},4543:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>c,frontMatter:()=>l,metadata:()=>o,toc:()=>d});var r=n(7462),a=(n(7294),n(3905));const l={title:"Release Cycle"},i=void 0,o={unversionedId:"intro/release-cycle",id:"intro/release-cycle",title:"Release Cycle",description:"Each major release has a two (2) month Alpha period, one (1) month Beta, before a full release and becomes Stable.",source:"@site/docs/intro/09-release-cycle.md",sourceDirName:"intro",slug:"/intro/release-cycle",permalink:"/docs/intro/release-cycle",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/intro/09-release-cycle.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",sidebarPosition:9,frontMatter:{title:"Release Cycle"},sidebar:"tutorialSidebar",previous:{title:"Utilities",permalink:"/docs/intro/utilities"},next:{title:"Contributing",permalink:"/docs/intro/contributing"}},p={},d=[],m={toc:d},u="wrapper";function c(e){let{components:t,...n}=e;return(0,a.kt)(u,(0,r.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"Each major release has a two (2) month ",(0,a.kt)("inlineCode",{parentName:"p"},"Alpha")," period, one (1) month ",(0,a.kt)("inlineCode",{parentName:"p"},"Beta"),", before a full release and becomes ",(0,a.kt)("inlineCode",{parentName:"p"},"Stable"),".\nEach release goes into ",(0,a.kt)("inlineCode",{parentName:"p"},"Maintenance")," after nine (9) months, as the next release enters ",(0,a.kt)("inlineCode",{parentName:"p"},"Alpha"),".\nThis time period is chosen for alignment with AWS Lambda ",(0,a.kt)("inlineCode",{parentName:"p"},"nodejs")," runtime releases.\nAll Node.js Long-Term Support (LTS) releases that have AWS Lambda runtimes are supported."),(0,a.kt)("table",null,(0,a.kt)("thead",{parentName:"table"},(0,a.kt)("tr",{parentName:"thead"},(0,a.kt)("th",{parentName:"tr",align:null},"Version"),(0,a.kt)("th",{parentName:"tr",align:null},"Status"),(0,a.kt)("th",{parentName:"tr",align:null},"Alpha Release"),(0,a.kt)("th",{parentName:"tr",align:null},"Stable Release"),(0,a.kt)("th",{parentName:"tr",align:null},"End-of-Life"))),(0,a.kt)("tbody",{parentName:"table"},(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"v5"),(0,a.kt)("td",{parentName:"tr",align:null},"Scoping"),(0,a.kt)("td",{parentName:"tr",align:null},"2023-06-01"),(0,a.kt)("td",{parentName:"tr",align:null},"2023-09-01"),(0,a.kt)("td",{parentName:"tr",align:null},"2025-04-30")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"v4"),(0,a.kt)("td",{parentName:"tr",align:null},"Stable"),(0,a.kt)("td",{parentName:"tr",align:null},"2022-10-17"),(0,a.kt)("td",{parentName:"tr",align:null},"2022-11-24"),(0,a.kt)("td",{parentName:"tr",align:null},"2023-09-11")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"v3"),(0,a.kt)("td",{parentName:"tr",align:null},"Deprecated"),(0,a.kt)("td",{parentName:"tr",align:null},"2022-01-04"),(0,a.kt)("td",{parentName:"tr",align:null},"2022-05-12"),(0,a.kt)("td",{parentName:"tr",align:null},"2022-12-31")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"v2"),(0,a.kt)("td",{parentName:"tr",align:null},"Deprecated"),(0,a.kt)("td",{parentName:"tr",align:null},"2021-01-24"),(0,a.kt)("td",{parentName:"tr",align:null},"2021-04-01"),(0,a.kt)("td",{parentName:"tr",align:null},"2022-05-12")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"v1"),(0,a.kt)("td",{parentName:"tr",align:null},"Deprecated"),(0,a.kt)("td",{parentName:"tr",align:null},"2018-05-20"),(0,a.kt)("td",{parentName:"tr",align:null},"2020-04-25"),(0,a.kt)("td",{parentName:"tr",align:null},"2021-04-01")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"v0"),(0,a.kt)("td",{parentName:"tr",align:null},"Deprecated"),(0,a.kt)("td",{parentName:"tr",align:null},"2017-08-03"),(0,a.kt)("td",{parentName:"tr",align:null},"2017-09-04"),(0,a.kt)("td",{parentName:"tr",align:null},"2020-04-25")))),(0,a.kt)("p",null,"Dates are subject to change."),(0,a.kt)("p",null,"If your organization requires a longer maintenance period of Middy, please reach out."))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b5aee65c.86e1a1d5.js b/assets/js/b5aee65c.86e1a1d5.js new file mode 100644 index 000000000..f5f8d54a5 --- /dev/null +++ b/assets/js/b5aee65c.86e1a1d5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[4510],{8729:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>h,frontMatter:()=>s,metadata:()=>c,toc:()=>a});var r=n(5893),d=n(1151);const s={title:"Release Cycle"},i=void 0,c={id:"intro/release-cycle",title:"Release Cycle",description:"Each major release has a two (2) month Alpha period, one (1) month Beta, before a full release and becomes Stable.",source:"@site/docs/intro/09-release-cycle.md",sourceDirName:"intro",slug:"/intro/release-cycle",permalink:"/docs/intro/release-cycle",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/intro/09-release-cycle.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",sidebarPosition:9,frontMatter:{title:"Release Cycle"},sidebar:"tutorialSidebar",previous:{title:"Utilities",permalink:"/docs/intro/utilities"},next:{title:"Contributing",permalink:"/docs/intro/contributing"}},l={},a=[];function o(e){const t={code:"code",p:"p",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,d.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(t.p,{children:["Each major release has a two (2) month ",(0,r.jsx)(t.code,{children:"Alpha"})," period, one (1) month ",(0,r.jsx)(t.code,{children:"Beta"}),", before a full release and becomes ",(0,r.jsx)(t.code,{children:"Stable"}),".\nEach release goes into ",(0,r.jsx)(t.code,{children:"Maintenance"})," after nine (9) months, as the next release enters ",(0,r.jsx)(t.code,{children:"Alpha"}),".\nThis time period is chosen for alignment with AWS Lambda ",(0,r.jsx)(t.code,{children:"nodejs"})," runtime releases.\nAll Node.js Long-Term Support (LTS) releases that have AWS Lambda runtimes are supported."]}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Version"}),(0,r.jsx)(t.th,{children:"Status"}),(0,r.jsx)(t.th,{children:"Alpha Release"}),(0,r.jsx)(t.th,{children:"Stable Release"}),(0,r.jsx)(t.th,{children:"End-of-Life"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"v6"}),(0,r.jsx)(t.td,{children:"Scoping"}),(0,r.jsx)(t.td,{children:"2024-??-??"}),(0,r.jsx)(t.td,{children:"2024-10-29"}),(0,r.jsx)(t.td,{children:"2026-04-30"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"v5"}),(0,r.jsx)(t.td,{children:"Stable"}),(0,r.jsx)(t.td,{children:"2023-06-01"}),(0,r.jsx)(t.td,{children:"2023-10-24"}),(0,r.jsx)(t.td,{children:"2025-04-30"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"v4"}),(0,r.jsx)(t.td,{children:"Deprecated"}),(0,r.jsx)(t.td,{children:"2022-10-17"}),(0,r.jsx)(t.td,{children:"2022-11-24"}),(0,r.jsx)(t.td,{children:"2023-09-11"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"v3"}),(0,r.jsx)(t.td,{children:"Deprecated"}),(0,r.jsx)(t.td,{children:"2022-01-04"}),(0,r.jsx)(t.td,{children:"2022-05-12"}),(0,r.jsx)(t.td,{children:"2022-12-31"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"v2"}),(0,r.jsx)(t.td,{children:"Deprecated"}),(0,r.jsx)(t.td,{children:"2021-01-24"}),(0,r.jsx)(t.td,{children:"2021-04-01"}),(0,r.jsx)(t.td,{children:"2022-05-12"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"v1"}),(0,r.jsx)(t.td,{children:"Deprecated"}),(0,r.jsx)(t.td,{children:"2018-05-20"}),(0,r.jsx)(t.td,{children:"2020-04-25"}),(0,r.jsx)(t.td,{children:"2021-04-01"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"v0"}),(0,r.jsx)(t.td,{children:"Deprecated"}),(0,r.jsx)(t.td,{children:"2017-08-03"}),(0,r.jsx)(t.td,{children:"2017-09-04"}),(0,r.jsx)(t.td,{children:"2020-04-25"})]})]})]}),"\n",(0,r.jsx)(t.p,{children:"Dates are subject to change."}),"\n",(0,r.jsx)(t.p,{children:"If your organization requires a longer maintenance period of Middy, please reach out."})]})}function h(e={}){const{wrapper:t}={...(0,d.a)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(o,{...e})}):o(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>c,a:()=>i});var r=n(7294);const d={},s=r.createContext(d);function i(e){const t=r.useContext(s);return r.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(d):e.components||d:i(e.components),r.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/b6105e9b.16794ff2.js b/assets/js/b6105e9b.16794ff2.js new file mode 100644 index 000000000..e0737c957 --- /dev/null +++ b/assets/js/b6105e9b.16794ff2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[8471],{530:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>d,default:()=>p,frontMatter:()=>s,metadata:()=>r,toc:()=>c});var i=n(5893),o=n(1151);const s={title:"CodePipeline"},d=void 0,r={id:"events/code-pipeline",title:"CodePipeline",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/events/code-pipeline.md",sourceDirName:"events",slug:"/events/code-pipeline",permalink:"/docs/events/code-pipeline",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/events/code-pipeline.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",frontMatter:{title:"CodePipeline"},sidebar:"tutorialSidebar",previous:{title:"Code Commit",permalink:"/docs/events/code-commit"},next:{title:"Cognito",permalink:"/docs/events/cognito"}},a={},c=[{value:"AWS Documentation",id:"aws-documentation",level:2},{value:"Example",id:"example",level:2}];function l(e){const t={a:"a",admonition:"admonition",code:"code",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,o.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.admonition,{type:"caution",children:(0,i.jsx)(t.p,{children:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub."})}),"\n",(0,i.jsx)(t.h2,{id:"aws-documentation",children:"AWS Documentation"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:(0,i.jsx)(t.a,{href:"https://docs.aws.amazon.com/lambda/latest/dg/services-codepipeline.html",children:"Using AWS Lambda with AWS CodePipeline"})}),"\n"]}),"\n",(0,i.jsx)(t.h2,{id:"example",children:"Example"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-javascript",children:"import middy from '@middy/core'\nimport eventNormalizerMiddleware from '@middy/event-normalizer'\n\nexport const handler = middy()\n .use(eventNormalizerMiddleware())\n .handler((event, context, {signal}) => {\n // ...\n })\n"})})]})}function p(e={}){const{wrapper:t}={...(0,o.a)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(l,{...e})}):l(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>r,a:()=>d});var i=n(7294);const o={},s=i.createContext(o);function d(e){const t=i.useContext(s);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:d(e.components),i.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/b6105e9b.de5af768.js b/assets/js/b6105e9b.de5af768.js deleted file mode 100644 index 0f72b36bc..000000000 --- a/assets/js/b6105e9b.de5af768.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[8471],{3905:(e,t,n)=>{n.d(t,{Zo:()=>s,kt:()=>f});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var p=r.createContext({}),c=function(e){var t=r.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},s=function(e){var t=c(e.components);return r.createElement(p.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,i=e.originalType,p=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),d=c(n),u=o,f=d["".concat(p,".").concat(u)]||d[u]||m[u]||i;return n?r.createElement(f,a(a({ref:t},s),{},{components:n})):r.createElement(f,a({ref:t},s))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=n.length,a=new Array(i);a[0]=u;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[d]="string"==typeof e?e:o,a[1]=l;for(var c=2;c<i;c++)a[c]=n[c];return r.createElement.apply(null,a)}return r.createElement.apply(null,n)}u.displayName="MDXCreateElement"},304:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>a,default:()=>m,frontMatter:()=>i,metadata:()=>l,toc:()=>c});var r=n(7462),o=(n(7294),n(3905));const i={title:"CodePipeline"},a=void 0,l={unversionedId:"events/code-pipeline",id:"events/code-pipeline",title:"CodePipeline",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/events/code-pipeline.md",sourceDirName:"events",slug:"/events/code-pipeline",permalink:"/docs/events/code-pipeline",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/events/code-pipeline.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",frontMatter:{title:"CodePipeline"},sidebar:"tutorialSidebar",previous:{title:"Code Commit",permalink:"/docs/events/code-commit"},next:{title:"Cognito",permalink:"/docs/events/cognito"}},p={},c=[{value:"AWS Documentation",id:"aws-documentation",level:2},{value:"Example",id:"example",level:2}],s={toc:c},d="wrapper";function m(e){let{components:t,...n}=e;return(0,o.kt)(d,(0,r.Z)({},s,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("admonition",{type:"caution"},(0,o.kt)("p",{parentName:"admonition"},"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.")),(0,o.kt)("h2",{id:"aws-documentation"},"AWS Documentation"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://docs.aws.amazon.com/lambda/latest/dg/services-codepipeline.html"},"Using AWS Lambda with AWS CodePipeline"))),(0,o.kt)("h2",{id:"example"},"Example"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\nimport eventNormalizerMiddleware from '@middy/event-normalizer'\n\nexport const handler = middy()\n .use(eventNormalizerMiddleware())\n .handler((event, context, {signal}) => {\n // ...\n })\n")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b6b85ed9.e8d23ec7.js b/assets/js/b6b85ed9.e8d23ec7.js deleted file mode 100644 index 8733dde0e..000000000 --- a/assets/js/b6b85ed9.e8d23ec7.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[6476],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),u=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},c=function(e){var t=u(e.components);return r.createElement(s.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),d=u(n),m=a,f=d["".concat(s,".").concat(m)]||d[m]||p[m]||o;return n?r.createElement(f,i(i({ref:t},c),{},{components:n})):r.createElement(f,i({ref:t},c))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[d]="string"==typeof e?e:a,i[1]=l;for(var u=2;u<o;u++)i[u]=n[u];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}m.displayName="MDXCreateElement"},5162:(e,t,n)=>{n.d(t,{Z:()=>i});var r=n(7294),a=n(6010);const o={tabItem:"tabItem_Ymn6"};function i(e){let{children:t,hidden:n,className:i}=e;return r.createElement("div",{role:"tabpanel",className:(0,a.Z)(o.tabItem,i),hidden:n},t)}},4866:(e,t,n)=>{n.d(t,{Z:()=>N});var r=n(7462),a=n(7294),o=n(6010),i=n(2466),l=n(6550),s=n(1980),u=n(7392),c=n(12);function d(e){return function(e){return a.Children.map(e,(e=>{if(!e||(0,a.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:r,default:a}}=e;return{value:t,label:n,attributes:r,default:a}}))}function p(e){const{values:t,children:n}=e;return(0,a.useMemo)((()=>{const e=t??d(n);return function(e){const t=(0,u.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,n])}function m(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:n}=e;const r=(0,l.k6)(),o=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,s._X)(o),(0,a.useCallback)((e=>{if(!o)return;const t=new URLSearchParams(r.location.search);t.set(o,e),r.replace({...r.location,search:t.toString()})}),[o,r])]}function b(e){const{defaultValue:t,queryString:n=!1,groupId:r}=e,o=p(e),[i,l]=(0,a.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!m({value:t,tabValues:n}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const r=n.find((e=>e.default))??n[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:t,tabValues:o}))),[s,u]=f({queryString:n,groupId:r}),[d,b]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[r,o]=(0,c.Nk)(n);return[r,(0,a.useCallback)((e=>{n&&o.set(e)}),[n,o])]}({groupId:r}),h=(()=>{const e=s??d;return m({value:e,tabValues:o})?e:null})();(0,a.useLayoutEffect)((()=>{h&&l(h)}),[h]);return{selectedValue:i,selectValue:(0,a.useCallback)((e=>{if(!m({value:e,tabValues:o}))throw new Error(`Can't select invalid tab value=${e}`);l(e),u(e),b(e)}),[u,b,o]),tabValues:o}}var h=n(2389);const g={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};function y(e){let{className:t,block:n,selectedValue:l,selectValue:s,tabValues:u}=e;const c=[],{blockElementScrollPositionUntilNextRender:d}=(0,i.o5)(),p=e=>{const t=e.currentTarget,n=c.indexOf(t),r=u[n].value;r!==l&&(d(t),s(r))},m=e=>{let t=null;switch(e.key){case"Enter":p(e);break;case"ArrowRight":{const n=c.indexOf(e.currentTarget)+1;t=c[n]??c[0];break}case"ArrowLeft":{const n=c.indexOf(e.currentTarget)-1;t=c[n]??c[c.length-1];break}}t?.focus()};return a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,o.Z)("tabs",{"tabs--block":n},t)},u.map((e=>{let{value:t,label:n,attributes:i}=e;return a.createElement("li",(0,r.Z)({role:"tab",tabIndex:l===t?0:-1,"aria-selected":l===t,key:t,ref:e=>c.push(e),onKeyDown:m,onClick:p},i,{className:(0,o.Z)("tabs__item",g.tabItem,i?.className,{"tabs__item--active":l===t})}),n??t)})))}function v(e){let{lazy:t,children:n,selectedValue:r}=e;const o=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=o.find((e=>e.props.value===r));return e?(0,a.cloneElement)(e,{className:"margin-top--md"}):null}return a.createElement("div",{className:"margin-top--md"},o.map(((e,t)=>(0,a.cloneElement)(e,{key:t,hidden:e.props.value!==r}))))}function k(e){const t=b(e);return a.createElement("div",{className:(0,o.Z)("tabs-container",g.tabList)},a.createElement(y,(0,r.Z)({},e,t)),a.createElement(v,(0,r.Z)({},e,t)))}function N(e){const t=(0,h.Z)();return a.createElement(k,(0,r.Z)({key:String(t)},e))}},3976:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>f,frontMatter:()=>l,metadata:()=>u,toc:()=>d});var r=n(7462),a=(n(7294),n(3905)),o=n(4866),i=n(5162);const l={title:"http-content-encoding"},s=void 0,u={unversionedId:"middlewares/http-content-encoding",id:"middlewares/http-content-encoding",title:"http-content-encoding",description:"This middleware take the preferredEncoding output from @middy/http-content-negotiation and applies the encoding to response.body when a string.",source:"@site/docs/middlewares/http-content-encoding.md",sourceDirName:"middlewares",slug:"/middlewares/http-content-encoding",permalink:"/docs/middlewares/http-content-encoding",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/middlewares/http-content-encoding.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",frontMatter:{title:"http-content-encoding"},sidebar:"tutorialSidebar",previous:{title:"event-normalizer",permalink:"/docs/middlewares/event-normalizer"},next:{title:"http-content-negotiation",permalink:"/docs/middlewares/http-content-negotiation"}},c={},d=[{value:"Install",id:"install",level:2},{value:"Options",id:"options",level:2},{value:"Sample usage",id:"sample-usage",level:2},{value:"Using streams",id:"using-streams",level:3}],p={toc:d},m="wrapper";function f(e){let{components:t,...n}=e;return(0,a.kt)(m,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"This middleware take the ",(0,a.kt)("inlineCode",{parentName:"p"},"preferredEncoding")," output from ",(0,a.kt)("inlineCode",{parentName:"p"},"@middy/http-content-negotiation")," and applies the encoding to ",(0,a.kt)("inlineCode",{parentName:"p"},"response.body")," when a string."),(0,a.kt)("h2",{id:"install"},"Install"),(0,a.kt)("p",null,"To install this middleware you can use NPM:"),(0,a.kt)(o.Z,{groupId:"npm2yarn",mdxType:"Tabs"},(0,a.kt)(i.Z,{value:"npm",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-bash"},"npm install --save @middy/http-content-encoding\n"))),(0,a.kt)(i.Z,{value:"yarn",label:"Yarn",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-bash"},"yarn add @middy/http-content-encoding\n"))),(0,a.kt)(i.Z,{value:"pnpm",label:"pnpm",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-bash"},"pnpm add @middy/http-content-encoding\n")))),(0,a.kt)("h2",{id:"options"},"Options"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"br")," (object) (default ",(0,a.kt)("inlineCode",{parentName:"li"},"{}"),"): ",(0,a.kt)("inlineCode",{parentName:"li"},"zlib.createBrotliCompress")," ",(0,a.kt)("a",{parentName:"li",href:"https://nodejs.org/api/zlib.html#zlib_class_brotlioptions"},"brotliOptions")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"gzip")," (object) (default ",(0,a.kt)("inlineCode",{parentName:"li"},"{}"),"): ",(0,a.kt)("inlineCode",{parentName:"li"},"zlib.createGzip")," ",(0,a.kt)("a",{parentName:"li",href:"https://nodejs.org/api/zlib.html#zlib_class_options"},"gzipOptions")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"deflate")," (object) (default ",(0,a.kt)("inlineCode",{parentName:"li"},"{}"),"): ",(0,a.kt)("inlineCode",{parentName:"li"},"zlib.createDeflate")," ",(0,a.kt)("a",{parentName:"li",href:"https://nodejs.org/api/zlib.html#zlib_class_options"},"deflateOptions")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"overridePreferredEncoding")," (array","[string]",") (optional): Override the preferred encoding order, most browsers prefer ",(0,a.kt)("inlineCode",{parentName:"li"},"gzip")," over ",(0,a.kt)("inlineCode",{parentName:"li"},"br"),", even though ",(0,a.kt)("inlineCode",{parentName:"li"},"br")," has higher compression. Default: ",(0,a.kt)("inlineCode",{parentName:"li"},"[]"))),(0,a.kt)("p",null,"NOTES:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Important")," For ",(0,a.kt)("inlineCode",{parentName:"li"},"br")," encoding NodeJS defaults to ",(0,a.kt)("inlineCode",{parentName:"li"},"11"),". Levels ",(0,a.kt)("inlineCode",{parentName:"li"},"10")," & ",(0,a.kt)("inlineCode",{parentName:"li"},"11")," have been shown to have lower performance for the level of compression they apply. Testing is recommended to ensure the right balance of compression & performance.")),(0,a.kt)("h2",{id:"sample-usage"},"Sample usage"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\nimport httpContentNegotiation from '@middy/http-content-negotiation'\nimport httpContentEncoding from '@middy/http-content-encoding'\nimport { constants } from 'node:zlib'\n\nexport const handler = middy()\n .use(httpContentNegotiation())\n .use(httpContentEncoding({\n br: {\n params: {\n [constants.BROTLI_PARAM_MODE]: constants.BROTLI_MODE_TEXT, // adjusted for UTF-8 text\n [constants.BROTLI_PARAM_QUALITY]: 7\n }\n },\n overridePreferredEncoding: ['br', 'gzip', 'deflate']\n })\n .handler((event, context) => {\n return {\n statusCode: 200,\n body: '{...}'\n }\n })\n")),(0,a.kt)("h3",{id:"using-streams"},"Using streams"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\nimport httpContentNegotiation from '@middy/http-content-negotiation'\nimport httpContentEncoding from '@middy/http-content-encoding'\nimport { constants } from 'node:zlib'\nimport { createReadableStream } from '@datastream/core'\n\nexport const handler = middy({ streamifyResponse: true })\n .use(httpContentNegotiation())\n .use(httpContentEncoding({\n br: {\n params: {\n [constants.BROTLI_PARAM_MODE]: constants.BROTLI_MODE_TEXT, // adjusted for UTF-8 text\n [constants.BROTLI_PARAM_QUALITY]: 7\n }\n },\n overridePreferredEncoding: ['br', 'gzip', 'deflate']\n })\n .handler((event, context) => {\n return {\n statusCode: 200,\n body: createReadableStream('{...}')\n }\n })\n")))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b6b85ed9.f56259e2.js b/assets/js/b6b85ed9.f56259e2.js new file mode 100644 index 000000000..385dec887 --- /dev/null +++ b/assets/js/b6b85ed9.f56259e2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[6476],{4670:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>l,default:()=>p,frontMatter:()=>i,metadata:()=>d,toc:()=>u});var r=t(5893),o=t(1151),a=t(4866),s=t(5162);const i={title:"http-content-encoding"},l=void 0,d={id:"middlewares/http-content-encoding",title:"http-content-encoding",description:"This middleware take the preferredEncoding output from @middy/http-content-negotiation and applies the encoding to response.body when a string.",source:"@site/docs/middlewares/http-content-encoding.md",sourceDirName:"middlewares",slug:"/middlewares/http-content-encoding",permalink:"/docs/middlewares/http-content-encoding",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/middlewares/http-content-encoding.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",frontMatter:{title:"http-content-encoding"},sidebar:"tutorialSidebar",previous:{title:"event-normalizer",permalink:"/docs/middlewares/event-normalizer"},next:{title:"http-content-negotiation",permalink:"/docs/middlewares/http-content-negotiation"}},c={},u=[{value:"Install",id:"install",level:2},{value:"Options",id:"options",level:2},{value:"Sample usage",id:"sample-usage",level:2},{value:"Using streams",id:"using-streams",level:3}];function h(e){const n={a:"a",code:"code",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,o.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(n.p,{children:["This middleware take the ",(0,r.jsx)(n.code,{children:"preferredEncoding"})," output from ",(0,r.jsx)(n.code,{children:"@middy/http-content-negotiation"})," and applies the encoding to ",(0,r.jsx)(n.code,{children:"response.body"})," when a string."]}),"\n",(0,r.jsx)(n.h2,{id:"install",children:"Install"}),"\n",(0,r.jsx)(n.p,{children:"To install this middleware you can use NPM:"}),"\n",(0,r.jsxs)(a.Z,{groupId:"npm2yarn",children:[(0,r.jsx)(s.Z,{value:"npm",children:(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"npm install --save @middy/http-content-encoding\n"})})}),(0,r.jsx)(s.Z,{value:"yarn",label:"Yarn",children:(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"yarn add @middy/http-content-encoding\n"})})}),(0,r.jsx)(s.Z,{value:"pnpm",label:"pnpm",children:(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"pnpm add @middy/http-content-encoding\n"})})})]}),"\n",(0,r.jsx)(n.h2,{id:"options",children:"Options"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"br"})," (object) (default ",(0,r.jsx)(n.code,{children:"{}"}),"): ",(0,r.jsx)(n.code,{children:"zlib.createBrotliCompress"})," ",(0,r.jsx)(n.a,{href:"https://nodejs.org/api/zlib.html#zlib_class_brotlioptions",children:"brotliOptions"})]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"gzip"})," (object) (default ",(0,r.jsx)(n.code,{children:"{}"}),"): ",(0,r.jsx)(n.code,{children:"zlib.createGzip"})," ",(0,r.jsx)(n.a,{href:"https://nodejs.org/api/zlib.html#zlib_class_options",children:"gzipOptions"})]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"deflate"})," (object) (default ",(0,r.jsx)(n.code,{children:"{}"}),"): ",(0,r.jsx)(n.code,{children:"zlib.createDeflate"})," ",(0,r.jsx)(n.a,{href:"https://nodejs.org/api/zlib.html#zlib_class_options",children:"deflateOptions"})]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"overridePreferredEncoding"})," (array[string]) (optional): Override the preferred encoding order, most browsers prefer ",(0,r.jsx)(n.code,{children:"gzip"})," over ",(0,r.jsx)(n.code,{children:"br"}),", even though ",(0,r.jsx)(n.code,{children:"br"})," has higher compression. Default: ",(0,r.jsx)(n.code,{children:"[]"})]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"NOTES:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Important"})," For ",(0,r.jsx)(n.code,{children:"br"})," encoding NodeJS defaults to ",(0,r.jsx)(n.code,{children:"11"}),". Levels ",(0,r.jsx)(n.code,{children:"10"})," & ",(0,r.jsx)(n.code,{children:"11"})," have been shown to have lower performance for the level of compression they apply. Testing is recommended to ensure the right balance of compression & performance."]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"sample-usage",children:"Sample usage"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-javascript",children:"import middy from '@middy/core'\nimport httpContentNegotiation from '@middy/http-content-negotiation'\nimport httpContentEncoding from '@middy/http-content-encoding'\nimport { constants } from 'node:zlib'\n\nexport const handler = middy()\n .use(httpContentNegotiation())\n .use(httpContentEncoding({\n br: {\n params: {\n [constants.BROTLI_PARAM_MODE]: constants.BROTLI_MODE_TEXT, // adjusted for UTF-8 text\n [constants.BROTLI_PARAM_QUALITY]: 7\n }\n },\n overridePreferredEncoding: ['br', 'gzip', 'deflate']\n })\n .handler((event, context) => {\n return {\n statusCode: 200,\n body: '{...}'\n }\n })\n"})}),"\n",(0,r.jsx)(n.h3,{id:"using-streams",children:"Using streams"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-javascript",children:"import middy from '@middy/core'\nimport httpContentNegotiation from '@middy/http-content-negotiation'\nimport httpContentEncoding from '@middy/http-content-encoding'\nimport { constants } from 'node:zlib'\nimport { createReadableStream } from '@datastream/core'\n\nconst lambdaHandler = (event, context) => {\n return {\n statusCode: 200,\n body: createReadableStream('{...}')\n }\n}\n\nexport const handler = middy({ streamifyResponse: true })\n .use(httpContentNegotiation())\n .use(httpContentEncoding({\n br: {\n params: {\n [constants.BROTLI_PARAM_MODE]: constants.BROTLI_MODE_TEXT, // adjusted for UTF-8 text\n [constants.BROTLI_PARAM_QUALITY]: 7\n }\n },\n overridePreferredEncoding: ['br', 'gzip', 'deflate']\n })\n .handler(lambdaHandler)\n"})})]})}function p(e={}){const{wrapper:n}={...(0,o.a)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(h,{...e})}):h(e)}},5162:(e,n,t)=>{t.d(n,{Z:()=>s});t(7294);var r=t(6010);const o={tabItem:"tabItem_Ymn6"};var a=t(5893);function s(e){let{children:n,hidden:t,className:s}=e;return(0,a.jsx)("div",{role:"tabpanel",className:(0,r.Z)(o.tabItem,s),hidden:t,children:n})}},4866:(e,n,t)=>{t.d(n,{Z:()=>w});var r=t(7294),o=t(6010),a=t(2466),s=t(6550),i=t(469),l=t(1980),d=t(7392),c=t(12);function u(e){return r.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function h(e){const{values:n,children:t}=e;return(0,r.useMemo)((()=>{const e=n??function(e){return u(e).map((e=>{let{props:{value:n,label:t,attributes:r,default:o}}=e;return{value:n,label:t,attributes:r,default:o}}))}(t);return function(e){const n=(0,d.l)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[n,t])}function p(e){let{value:n,tabValues:t}=e;return t.some((e=>e.value===n))}function m(e){let{queryString:n=!1,groupId:t}=e;const o=(0,s.k6)(),a=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t});return[(0,l._X)(a),(0,r.useCallback)((e=>{if(!a)return;const n=new URLSearchParams(o.location.search);n.set(a,e),o.replace({...o.location,search:n.toString()})}),[a,o])]}function f(e){const{defaultValue:n,queryString:t=!1,groupId:o}=e,a=h(e),[s,l]=(0,r.useState)((()=>function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(n){if(!p({value:n,tabValues:t}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const r=t.find((e=>e.default))??t[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:n,tabValues:a}))),[d,u]=m({queryString:t,groupId:o}),[f,b]=function(e){let{groupId:n}=e;const t=function(e){return e?`docusaurus.tab.${e}`:null}(n),[o,a]=(0,c.Nk)(t);return[o,(0,r.useCallback)((e=>{t&&a.set(e)}),[t,a])]}({groupId:o}),g=(()=>{const e=d??f;return p({value:e,tabValues:a})?e:null})();(0,i.Z)((()=>{g&&l(g)}),[g]);return{selectedValue:s,selectValue:(0,r.useCallback)((e=>{if(!p({value:e,tabValues:a}))throw new Error(`Can't select invalid tab value=${e}`);l(e),u(e),b(e)}),[u,b,a]),tabValues:a}}var b=t(2389);const g={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var x=t(5893);function j(e){let{className:n,block:t,selectedValue:r,selectValue:s,tabValues:i}=e;const l=[],{blockElementScrollPositionUntilNextRender:d}=(0,a.o5)(),c=e=>{const n=e.currentTarget,t=l.indexOf(n),o=i[t].value;o!==r&&(d(n),s(o))},u=e=>{let n=null;switch(e.key){case"Enter":c(e);break;case"ArrowRight":{const t=l.indexOf(e.currentTarget)+1;n=l[t]??l[0];break}case"ArrowLeft":{const t=l.indexOf(e.currentTarget)-1;n=l[t]??l[l.length-1];break}}n?.focus()};return(0,x.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,o.Z)("tabs",{"tabs--block":t},n),children:i.map((e=>{let{value:n,label:t,attributes:a}=e;return(0,x.jsx)("li",{role:"tab",tabIndex:r===n?0:-1,"aria-selected":r===n,ref:e=>l.push(e),onKeyDown:u,onClick:c,...a,className:(0,o.Z)("tabs__item",g.tabItem,a?.className,{"tabs__item--active":r===n}),children:t??n},n)}))})}function v(e){let{lazy:n,children:t,selectedValue:o}=e;const a=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){const e=a.find((e=>e.props.value===o));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return(0,x.jsx)("div",{className:"margin-top--md",children:a.map(((e,n)=>(0,r.cloneElement)(e,{key:n,hidden:e.props.value!==o})))})}function y(e){const n=f(e);return(0,x.jsxs)("div",{className:(0,o.Z)("tabs-container",g.tabList),children:[(0,x.jsx)(j,{...e,...n}),(0,x.jsx)(v,{...e,...n})]})}function w(e){const n=(0,b.Z)();return(0,x.jsx)(y,{...e,children:u(e.children)},String(n))}},1151:(e,n,t)=>{t.d(n,{Z:()=>i,a:()=>s});var r=t(7294);const o={},a=r.createContext(o);function s(e){const n=r.useContext(a);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:s(e.components),r.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/b83c886a.8851a69b.js b/assets/js/b83c886a.8851a69b.js new file mode 100644 index 000000000..78d5cf892 --- /dev/null +++ b/assets/js/b83c886a.8851a69b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[8931],{5357:(t,e,o)=>{o.r(e),o.d(e,{assets:()=>d,contentTitle:()=>s,default:()=>l,frontMatter:()=>r,metadata:()=>c,toc:()=>u});var i=o(5893),n=o(1151);const r={title:"Contributing"},s=void 0,c={id:"intro/contributing",title:"Contributing",description:"In the spirit of Open Source Software, everyone is very welcome to contribute to this repository. Feel free to raise issues or to submit Pull Requests.",source:"@site/docs/intro/10-contributing.md",sourceDirName:"intro",slug:"/intro/contributing",permalink:"/docs/intro/contributing",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/intro/10-contributing.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",sidebarPosition:10,frontMatter:{title:"Contributing"},sidebar:"tutorialSidebar",previous:{title:"Release Cycle",permalink:"/docs/intro/release-cycle"},next:{title:"Sponsoring",permalink:"/docs/intro/sponsoring"}},d={},u=[];function a(t){const e={a:"a",p:"p",...(0,n.a)(),...t.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(e.p,{children:["In the spirit of Open Source Software, everyone is very welcome to contribute to this repository. Feel free to ",(0,i.jsx)(e.a,{href:"https://github.com/middyjs/middy/issues",children:"raise issues"})," or to ",(0,i.jsx)(e.a,{href:"https://github.com/middyjs/middy/pulls",children:"submit Pull Requests"}),"."]}),"\n",(0,i.jsxs)(e.p,{children:["Before contributing to the project, make sure to have a look at our ",(0,i.jsx)(e.a,{href:"https://github.com/middyjs/middy/blob/main/.github/CONTRIBUTING.md",children:"Code of Conduct"}),"."]})]})}function l(t={}){const{wrapper:e}={...(0,n.a)(),...t.components};return e?(0,i.jsx)(e,{...t,children:(0,i.jsx)(a,{...t})}):a(t)}},1151:(t,e,o)=>{o.d(e,{Z:()=>c,a:()=>s});var i=o(7294);const n={},r=i.createContext(n);function s(t){const e=i.useContext(r);return i.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function c(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(n):t.components||n:s(t.components),i.createElement(r.Provider,{value:e},t.children)}}}]); \ No newline at end of file diff --git a/assets/js/b83c886a.e5d69ed5.js b/assets/js/b83c886a.e5d69ed5.js deleted file mode 100644 index 82dbf77fd..000000000 --- a/assets/js/b83c886a.e5d69ed5.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[8931],{3905:(e,t,r)=>{r.d(t,{Zo:()=>l,kt:()=>f});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function c(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),u=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},l=function(e){var t=u(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,s=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),p=u(r),m=o,f=p["".concat(s,".").concat(m)]||p[m]||d[m]||i;return r?n.createElement(f,a(a({ref:t},l),{},{components:r})):n.createElement(f,a({ref:t},l))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,a=new Array(i);a[0]=m;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[p]="string"==typeof e?e:o,a[1]=c;for(var u=2;u<i;u++)a[u]=r[u];return n.createElement.apply(null,a)}return n.createElement.apply(null,r)}m.displayName="MDXCreateElement"},1235:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>a,default:()=>d,frontMatter:()=>i,metadata:()=>c,toc:()=>u});var n=r(7462),o=(r(7294),r(3905));const i={title:"Contributing"},a=void 0,c={unversionedId:"intro/contributing",id:"intro/contributing",title:"Contributing",description:"In the spirit of Open Source Software, everyone is very welcome to contribute to this repository. Feel free to raise issues or to submit Pull Requests.",source:"@site/docs/intro/10-contributing.md",sourceDirName:"intro",slug:"/intro/contributing",permalink:"/docs/intro/contributing",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/intro/10-contributing.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",sidebarPosition:10,frontMatter:{title:"Contributing"},sidebar:"tutorialSidebar",previous:{title:"Release Cycle",permalink:"/docs/intro/release-cycle"},next:{title:"Sponsoring",permalink:"/docs/intro/sponsoring"}},s={},u=[],l={toc:u},p="wrapper";function d(e){let{components:t,...r}=e;return(0,o.kt)(p,(0,n.Z)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"In the spirit of Open Source Software, everyone is very welcome to contribute to this repository. Feel free to ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/middyjs/middy/issues"},"raise issues")," or to ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/middyjs/middy/pulls"},"submit Pull Requests"),"."),(0,o.kt)("p",null,"Before contributing to the project, make sure to have a look at our ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/middyjs/middy/blob/main/.github/CONTRIBUTING.md"},"Code of Conduct"),"."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b9c75af0.985970de.js b/assets/js/b9c75af0.985970de.js deleted file mode 100644 index 669070e3c..000000000 --- a/assets/js/b9c75af0.985970de.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[4504],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>f});var r=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){i(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,r,i=function(e,t){if(null==e)return{};var n,r,i={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var l=r.createContext({}),c=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},p=function(e){var t=c(e.components);return r.createElement(l.Provider,{value:t},e.children)},m="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,i=e.mdxType,a=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),m=c(n),u=i,f=m["".concat(l,".").concat(u)]||m[u]||d[u]||a;return n?r.createElement(f,o(o({ref:t},p),{},{components:n})):r.createElement(f,o({ref:t},p))}));function f(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=n.length,o=new Array(a);o[0]=u;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[m]="string"==typeof e?e:i,o[1]=s;for(var c=2;c<a;c++)o[c]=n[c];return r.createElement.apply(null,o)}return r.createElement.apply(null,n)}u.displayName="MDXCreateElement"},8525:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>d,frontMatter:()=>a,metadata:()=>s,toc:()=>c});var r=n(7462),i=(n(7294),n(3905));const a={title:"Kinesis Streams"},o=void 0,s={unversionedId:"events/kinesis-streams",id:"events/kinesis-streams",title:"Kinesis Streams",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/events/kinesis-streams.md",sourceDirName:"events",slug:"/events/kinesis-streams",permalink:"/docs/events/kinesis-streams",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/events/kinesis-streams.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",frontMatter:{title:"Kinesis Streams"},sidebar:"tutorialSidebar",previous:{title:"Kinesis Firehose",permalink:"/docs/events/kinesis-firehose"},next:{title:"Lex",permalink:"/docs/events/lex"}},l={},c=[{value:"AWS Documentation",id:"aws-documentation",level:2},{value:"Example",id:"example",level:2}],p={toc:c},m="wrapper";function d(e){let{components:t,...n}=e;return(0,i.kt)(m,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("admonition",{type:"caution"},(0,i.kt)("p",{parentName:"admonition"},"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.")),(0,i.kt)("h2",{id:"aws-documentation"},"AWS Documentation"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://docs.aws.amazon.com/lambda/latest/dg/with-kinesis.html"},"Using AWS Lambda with Amazon Kinesis"))),(0,i.kt)("h2",{id:"example"},"Example"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\nimport eventNormalizerMiddleware from '@middy/event-normalizer'\n\nexport const handler = middy()\n .use(eventNormalizerMiddleware())\n .handler((event, context, {signal}) => {\n // ...\n })\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b9c75af0.f4f3ac3f.js b/assets/js/b9c75af0.f4f3ac3f.js new file mode 100644 index 000000000..1e9cd073e --- /dev/null +++ b/assets/js/b9c75af0.f4f3ac3f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[4504],{582:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>r,default:()=>m,frontMatter:()=>o,metadata:()=>a,toc:()=>l});var s=n(5893),i=n(1151);const o={title:"Kinesis Streams"},r=void 0,a={id:"events/kinesis-streams",title:"Kinesis Streams",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/events/kinesis-streams.md",sourceDirName:"events",slug:"/events/kinesis-streams",permalink:"/docs/events/kinesis-streams",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/events/kinesis-streams.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",frontMatter:{title:"Kinesis Streams"},sidebar:"tutorialSidebar",previous:{title:"Kinesis Firehose",permalink:"/docs/events/kinesis-firehose"},next:{title:"Lex",permalink:"/docs/events/lex"}},d={},l=[{value:"AWS Documentation",id:"aws-documentation",level:2},{value:"Example",id:"example",level:2}];function c(e){const t={a:"a",admonition:"admonition",code:"code",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,i.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.admonition,{type:"caution",children:(0,s.jsx)(t.p,{children:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub."})}),"\n",(0,s.jsx)(t.h2,{id:"aws-documentation",children:"AWS Documentation"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://docs.aws.amazon.com/lambda/latest/dg/with-kinesis.html",children:"Using AWS Lambda with Amazon Kinesis"})}),"\n"]}),"\n",(0,s.jsx)(t.h2,{id:"example",children:"Example"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-javascript",children:"import middy from '@middy/core'\nimport eventNormalizerMiddleware from '@middy/event-normalizer'\n\nexport const handler = middy()\n .use(eventNormalizerMiddleware())\n .handler((event, context, {signal}) => {\n // ...\n })\n"})})]})}function m(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>a,a:()=>r});var s=n(7294);const i={},o=s.createContext(i);function r(e){const t=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),s.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/bb2b8b33.e13464cf.js b/assets/js/bb2b8b33.e13464cf.js new file mode 100644 index 000000000..4a449612c --- /dev/null +++ b/assets/js/bb2b8b33.e13464cf.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[9905],{1969:(e,r,n)=>{n.r(r),n.d(r,{assets:()=>o,contentTitle:()=>i,default:()=>h,frontMatter:()=>t,metadata:()=>l,toc:()=>a});var s=n(5893),d=n(1151);const t={title:"Upgrade 4.x -> 5.x",sidebar_position:1},i=void 0,l={id:"upgrade/4-5",title:"Upgrade 4.x -> 5.x",description:'aka "The ESM Only Update"',source:"@site/docs/upgrade/4-5.md",sourceDirName:"upgrade",slug:"/upgrade/4-5",permalink:"/docs/upgrade/4-5",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/upgrade/4-5.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",sidebarPosition:1,frontMatter:{title:"Upgrade 4.x -> 5.x",sidebar_position:1},sidebar:"tutorialSidebar",previous:{title:"Upgrade",permalink:"/docs/category/upgrade"},next:{title:"Upgrade 3.x -> 4.x",permalink:"/docs/upgrade/3-4"}},o={},a=[{value:"Notable changes",id:"notable-changes",level:2},{value:"Core",id:"core",level:2},{value:"Util",id:"util",level:2},{value:"Middleware",id:"middleware",level:2},{value:"appconfig",id:"appconfig",level:2},{value:"cloudwatch-metrics",id:"cloudwatch-metrics",level:3},{value:"do-not-wait-for-empty-event-loop",id:"do-not-wait-for-empty-event-loop",level:3},{value:"error-logger",id:"error-logger",level:3},{value:"event-normalizer",id:"event-normalizer",level:3},{value:"http-content-encoding",id:"http-content-encoding",level:3},{value:"http-content-negotiation",id:"http-content-negotiation",level:3},{value:"http-cors",id:"http-cors",level:3},{value:"http-error-handler",id:"http-error-handler",level:3},{value:"http-event-normalizer",id:"http-event-normalizer",level:3},{value:"http-header-normalizer",id:"http-header-normalizer",level:3},{value:"http-json-body-parser",id:"http-json-body-parser",level:3},{value:"http-multipart-body-parser",id:"http-multipart-body-parser",level:3},{value:"http-partial-response",id:"http-partial-response",level:3},{value:"http-response-serializer",id:"http-response-serializer",level:3},{value:"http-router",id:"http-router",level:3},{value:"http-security-headers",id:"http-security-headers",level:3},{value:"http-urlencode-body-parser",id:"http-urlencode-body-parser",level:3},{value:"http-urlencode-path-parser",id:"http-urlencode-path-parser",level:3},{value:"input-output-logger",id:"input-output-logger",level:3},{value:"rds-signer",id:"rds-signer",level:3},{value:"s3-object-response",id:"s3-object-response",level:3},{value:"secrets-manager",id:"secrets-manager",level:3},{value:"service-discovery",id:"service-discovery",level:3},{value:"sqs-partial-batch-failure",id:"sqs-partial-batch-failure",level:3},{value:"ssm",id:"ssm",level:3},{value:"sts",id:"sts",level:3},{value:"validator",id:"validator",level:3},{value:"warmup",id:"warmup",level:3},{value:"ws-json-body-parser",id:"ws-json-body-parser",level:3},{value:"ws-response",id:"ws-response",level:3},{value:"ws-router",id:"ws-router",level:3},{value:"Notes",id:"notes",level:2}];function c(e){const r={a:"a",code:"code",h2:"h2",h3:"h3",li:"li",p:"p",strong:"strong",ul:"ul",...(0,d.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(r.p,{children:'aka "The ESM Only Update"'}),"\n",(0,s.jsx)(r.p,{children:"Version 5.x of Middy no longer supports Node.js versions 16.x. You are highly encouraged to move to Node.js 20.x."}),"\n",(0,s.jsx)(r.h2,{id:"notable-changes",children:"Notable changes"}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsx)(r.li,{children:"Middy no longer support Common JS modules."}),"\n",(0,s.jsx)(r.li,{children:"Update to use TypeScript v5 along with a refactor to most packages"}),"\n",(0,s.jsxs)(r.li,{children:["Update all errors to be consistent ",(0,s.jsx)(r.code,{children:"new Error('message', { cause: { package:'@middy/***', data:*** } })"})]}),"\n",(0,s.jsxs)(r.li,{children:["If using multiple ",(0,s.jsx)(r.code,{children:"http-*-body-parsers"})," on the same endpoint you'll need to set ",(0,s.jsx)(r.code,{children:"disableContentTypeError:true"})]}),"\n"]}),"\n",(0,s.jsx)(r.h2,{id:"core",children:"Core"}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:["Updated ",(0,s.jsx)(r.code,{children:"plugin.timeoutEarlyResponse(...)"})," to throw new error with name ",(0,s.jsx)(r.code,{children:"TimeoutError"})," to match new ",(0,s.jsx)(r.code,{children:"AbortSignal.timeout()"}),"."]}),"\n"]}),"\n",(0,s.jsx)(r.h2,{id:"util",children:"Util"}),"\n",(0,s.jsx)(r.p,{children:"No change"}),"\n",(0,s.jsx)(r.h2,{id:"middleware",children:"Middleware"}),"\n",(0,s.jsx)(r.h2,{id:"appconfig",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/appconfig",children:"appconfig"})}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:["Update SDK to use newer ",(0,s.jsx)(r.code,{children:"appconfigdata"})," client ",(0,s.jsx)(r.strong,{children:"Breaking Change"})]}),"\n"]}),"\n",(0,s.jsx)(r.h3,{id:"cloudwatch-metrics",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/cloudwatch-metrics",children:"cloudwatch-metrics"})}),"\n",(0,s.jsx)(r.p,{children:"No change"}),"\n",(0,s.jsx)(r.h3,{id:"do-not-wait-for-empty-event-loop",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/do-not-wait-for-empty-event-loop",children:"do-not-wait-for-empty-event-loop"})}),"\n",(0,s.jsx)(r.p,{children:"No change"}),"\n",(0,s.jsx)(r.h3,{id:"error-logger",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/error-logger",children:"error-logger"})}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:["Change ",(0,s.jsx)(r.code,{children:"logger"})," to have ",(0,s.jsx)(r.code,{children:"request"})," passed in instead of ",(0,s.jsx)(r.code,{children:"request.error"})," by default to allow access ",(0,s.jsx)(r.code,{children:"request.context"})," and ",(0,s.jsx)(r.code,{children:"request.event"})," ",(0,s.jsx)(r.strong,{children:"Breaking Change"})]}),"\n"]}),"\n",(0,s.jsx)(r.h3,{id:"event-normalizer",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/event-normalizer",children:"event-normalizer"})}),"\n",(0,s.jsx)(r.p,{children:"No change"}),"\n",(0,s.jsx)(r.h3,{id:"http-content-encoding",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/http-content-encoding",children:"http-content-encoding"})}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:["Use ",(0,s.jsx)(r.code,{children:"preferredLanguage"})," from ",(0,s.jsx)(r.code,{children:"context"})," instead of ",(0,s.jsx)(r.code,{children:"event"})," (See http-content-negotiation). ",(0,s.jsx)(r.strong,{children:"Breaking Change"})]}),"\n"]}),"\n",(0,s.jsx)(r.h3,{id:"http-content-negotiation",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/http-content-negotiation",children:"http-content-negotiation"})}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:["Moved ",(0,s.jsx)(r.code,{children:"preferred*"})," from ",(0,s.jsx)(r.code,{children:"event"})," to ",(0,s.jsx)(r.code,{children:"context"})," ",(0,s.jsx)(r.strong,{children:"Breaking Change"})]}),"\n"]}),"\n",(0,s.jsx)(r.h3,{id:"http-cors",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/http-cors",children:"http-cors"})}),"\n",(0,s.jsx)(r.p,{children:"No change"}),"\n",(0,s.jsx)(r.h3,{id:"http-error-handler",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/http-error-handler",children:"http-error-handler"})}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:["Will return ",(0,s.jsx)(r.code,{children:"500"})," for all unhandled errors thrown ",(0,s.jsx)(r.strong,{children:"Breaking Change"})]}),"\n"]}),"\n",(0,s.jsx)(r.h3,{id:"http-event-normalizer",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/http-event-normalizer",children:"http-event-normalizer"})}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:["Will no longer throw an error when HTTP type can't be determined ",(0,s.jsx)(r.strong,{children:"Breaking Change"})]}),"\n"]}),"\n",(0,s.jsx)(r.h3,{id:"http-header-normalizer",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/http-header-normalizer",children:"http-header-normalizer"})}),"\n",(0,s.jsx)(r.p,{children:"No change"}),"\n",(0,s.jsx)(r.h3,{id:"http-json-body-parser",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/http-json-body-parser",children:"http-json-body-parser"})}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:["Change ",(0,s.jsx)(r.code,{children:"disableContentTypeError"})," to ",(0,s.jsx)(r.code,{children:"false"})," by default ",(0,s.jsx)(r.strong,{children:"Breaking Change"})]}),"\n"]}),"\n",(0,s.jsx)(r.h3,{id:"http-multipart-body-parser",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/http-multipart-body-parser",children:"http-multipart-body-parser"})}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:["Change ",(0,s.jsx)(r.code,{children:"disableContentTypeError"})," to ",(0,s.jsx)(r.code,{children:"false"})," by default ",(0,s.jsx)(r.strong,{children:"Breaking Change"})]}),"\n"]}),"\n",(0,s.jsx)(r.h3,{id:"http-partial-response",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/http-partial-response",children:"http-partial-response"})}),"\n",(0,s.jsx)(r.p,{children:"No change"}),"\n",(0,s.jsx)(r.h3,{id:"http-response-serializer",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/http-response-serializer",children:"http-response-serializer"})}),"\n",(0,s.jsx)(r.p,{children:"No change"}),"\n",(0,s.jsx)(r.h3,{id:"http-router",children:(0,s.jsx)(r.a,{href:"/docs/routers/http-router",children:"http-router"})}),"\n",(0,s.jsx)(r.p,{children:"No change"}),"\n",(0,s.jsx)(r.h3,{id:"http-security-headers",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/http-security-headers",children:"http-security-headers"})}),"\n",(0,s.jsx)(r.p,{children:"No change"}),"\n",(0,s.jsx)(r.h3,{id:"http-urlencode-body-parser",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/http-urlencode-body-parser",children:"http-urlencode-body-parser"})}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:["Change ",(0,s.jsx)(r.code,{children:"disableContentTypeError"})," to ",(0,s.jsx)(r.code,{children:"false"})," by default ",(0,s.jsx)(r.strong,{children:"Breaking Change"})]}),"\n"]}),"\n",(0,s.jsx)(r.h3,{id:"http-urlencode-path-parser",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/http-urlencode-path-parser",children:"http-urlencode-path-parser"})}),"\n",(0,s.jsx)(r.p,{children:"No change"}),"\n",(0,s.jsx)(r.h3,{id:"input-output-logger",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/input-output-logger",children:"input-output-logger"})}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:["Updated to use ",(0,s.jsx)(r.code,{children:"structuredClone"})]}),"\n"]}),"\n",(0,s.jsx)(r.h3,{id:"rds-signer",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/rds-signer",children:"rds-signer"})}),"\n",(0,s.jsx)(r.p,{children:"No change"}),"\n",(0,s.jsx)(r.h3,{id:"s3-object-response",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/s3-object-response",children:"s3-object-response"})}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:["Refactored to use ",(0,s.jsx)(r.code,{children:"fetch"})," over ",(0,s.jsx)(r.code,{children:"https"}),". ",(0,s.jsx)(r.code,{children:"context"})," now returns ",(0,s.jsx)(r.code,{children:"s3ObjectFetch"})," to allow more control over how it's used. ",(0,s.jsx)(r.strong,{children:"Breaking Change"})]}),"\n"]}),"\n",(0,s.jsx)(r.h3,{id:"secrets-manager",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/secrets-manager",children:"secrets-manager"})}),"\n",(0,s.jsx)(r.p,{children:"No change"}),"\n",(0,s.jsx)(r.h3,{id:"service-discovery",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/service-discovery",children:"service-discovery"})}),"\n",(0,s.jsx)(r.p,{children:"No change"}),"\n",(0,s.jsx)(r.h3,{id:"sqs-partial-batch-failure",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/sqs-partial-batch-failure",children:"sqs-partial-batch-failure"})}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:["Will now catch unhandled errors and set all messages to failed, preventing infinite loops ",(0,s.jsx)(r.strong,{children:"Breaking Change"})]}),"\n"]}),"\n",(0,s.jsx)(r.h3,{id:"ssm",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/ssm",children:"ssm"})}),"\n",(0,s.jsx)(r.p,{children:"No change"}),"\n",(0,s.jsx)(r.h3,{id:"sts",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/sts",children:"sts"})}),"\n",(0,s.jsx)(r.p,{children:"No change"}),"\n",(0,s.jsx)(r.h3,{id:"validator",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/validator",children:"validator"})}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:["Use ",(0,s.jsx)(r.code,{children:"preferredLanguage"})," from ",(0,s.jsx)(r.code,{children:"context"})," instead of ",(0,s.jsx)(r.code,{children:"event"})," (See http-content-negotiation)."]}),"\n",(0,s.jsxs)(r.li,{children:[(0,s.jsx)(r.code,{children:"ajv-cmd"})," is no longer a required dependency, if you're pre-transpiling you'll need to run ",(0,s.jsx)(r.code,{children:"npm i ajv-cmd"}),"."]}),"\n"]}),"\n",(0,s.jsx)(r.h3,{id:"warmup",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/warmup",children:"warmup"})}),"\n",(0,s.jsx)(r.p,{children:"No change"}),"\n",(0,s.jsx)(r.h3,{id:"ws-json-body-parser",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/ws-json-body-parser",children:"ws-json-body-parser"})}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:["Remove inclusion of ",(0,s.jsx)(r.code,{children:"rawBody"})," from event ",(0,s.jsx)(r.strong,{children:"Breaking Change"})]}),"\n"]}),"\n",(0,s.jsx)(r.h3,{id:"ws-response",children:(0,s.jsx)(r.a,{href:"/docs/middlewares/ws-response",children:"ws-response"})}),"\n",(0,s.jsx)(r.p,{children:"No change"}),"\n",(0,s.jsx)(r.h3,{id:"ws-router",children:(0,s.jsx)(r.a,{href:"/docs/routers/ws-router",children:"ws-router"})}),"\n",(0,s.jsx)(r.p,{children:"No change"}),"\n",(0,s.jsx)(r.h2,{id:"notes",children:"Notes"}),"\n",(0,s.jsx)(r.p,{children:"None"})]})}function h(e={}){const{wrapper:r}={...(0,d.a)(),...e.components};return r?(0,s.jsx)(r,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},1151:(e,r,n)=>{n.d(r,{Z:()=>l,a:()=>i});var s=n(7294);const d={},t=s.createContext(d);function i(e){const r=s.useContext(t);return s.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function l(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(d):e.components||d:i(e.components),s.createElement(t.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/bff6c11b.16281dcd.js b/assets/js/bff6c11b.16281dcd.js deleted file mode 100644 index 06cdcde66..000000000 --- a/assets/js/bff6c11b.16281dcd.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[4785],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>y});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),c=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=c(e.components);return r.createElement(l.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),p=c(n),m=a,y=p["".concat(l,".").concat(m)]||p[m]||u[m]||o;return n?r.createElement(y,i(i({ref:t},d),{},{components:n})):r.createElement(y,i({ref:t},d))}));function y(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=m;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[p]="string"==typeof e?e:a,i[1]=s;for(var c=2;c<o;c++)i[c]=n[c];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}m.displayName="MDXCreateElement"},7123:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>s,toc:()=>c});var r=n(7462),a=(n(7294),n(3905));const o={title:"API Gateway (WebSocket)"},i=void 0,s={unversionedId:"events/api-gateway-ws",id:"events/api-gateway-ws",title:"API Gateway (WebSocket)",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/events/api-gateway-ws.md",sourceDirName:"events",slug:"/events/api-gateway-ws",permalink:"/docs/events/api-gateway-ws",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/events/api-gateway-ws.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",frontMatter:{title:"API Gateway (WebSocket)"},sidebar:"tutorialSidebar",previous:{title:"API Gateway (REST)",permalink:"/docs/events/api-gateway-rest"},next:{title:"Application Load Balancer",permalink:"/docs/events/application-load-balancer"}},l={},c=[{value:"AWS Documentation",id:"aws-documentation",level:2},{value:"Example",id:"example",level:2}],d={toc:c},p="wrapper";function u(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,r.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.")),(0,a.kt)("h2",{id:"aws-documentation"},"AWS Documentation"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://docs.aws.amazon.com/lambda/latest/dg/services-apigateway.html"},"Using AWS Lambda with Amazon API Gateway")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api.html"},"Working with WebSocket APIs"))),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\nimport wsJsonBodyParserMiddleware from '@middy/ws-json-body-parser'\nimport wsResponseMiddleware from '@middy/ws-response'\nimport wsRouterHandler from '@middy/ws-router'\n\nimport { handler as connectHandler } from './handlers/connect.js'\nimport { handler as disconnectHandler } from './handlers/disconnect.js'\nimport { handler as defaultHandler } from './handlers/default.js'\n\nconst routes = [\n {\n routeKey: '$connect',\n handler: connectHandler\n },\n {\n routeKey: '$disconnect',\n handler: disconnectHandler\n },\n {\n routeKey: 'default',\n handler: defaultHandler\n }\n]\n\nexport const handler = middy()\n .use(wsJsonBodyParserMiddleware())\n .use(wsResponseMiddleware())\n .handler(wsRouterHandler(routes))\n\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/bff6c11b.fdf7cd1a.js b/assets/js/bff6c11b.fdf7cd1a.js new file mode 100644 index 000000000..e7bdadc2b --- /dev/null +++ b/assets/js/bff6c11b.fdf7cd1a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[4785],{4300:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>r,default:()=>p,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var a=t(5893),s=t(1151);const o={title:"API Gateway (WebSocket)"},r=void 0,i={id:"events/api-gateway-ws",title:"API Gateway (WebSocket)",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/events/api-gateway-ws.md",sourceDirName:"events",slug:"/events/api-gateway-ws",permalink:"/docs/events/api-gateway-ws",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/events/api-gateway-ws.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",frontMatter:{title:"API Gateway (WebSocket)"},sidebar:"tutorialSidebar",previous:{title:"API Gateway (REST)",permalink:"/docs/events/api-gateway-rest"},next:{title:"Application Load Balancer",permalink:"/docs/events/application-load-balancer"}},d={},c=[{value:"AWS Documentation",id:"aws-documentation",level:2},{value:"Example",id:"example",level:2}];function l(e){const n={a:"a",admonition:"admonition",code:"code",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,s.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(n.admonition,{type:"caution",children:(0,a.jsx)(n.p,{children:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub."})}),"\n",(0,a.jsx)(n.h2,{id:"aws-documentation",children:"AWS Documentation"}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsx)(n.li,{children:(0,a.jsx)(n.a,{href:"https://docs.aws.amazon.com/lambda/latest/dg/services-apigateway.html",children:"Using AWS Lambda with Amazon API Gateway"})}),"\n",(0,a.jsx)(n.li,{children:(0,a.jsx)(n.a,{href:"https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api.html",children:"Working with WebSocket APIs"})}),"\n"]}),"\n",(0,a.jsx)(n.h2,{id:"example",children:"Example"}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-javascript",children:"import middy from '@middy/core'\nimport wsJsonBodyParserMiddleware from '@middy/ws-json-body-parser'\nimport wsResponseMiddleware from '@middy/ws-response'\nimport wsRouterHandler from '@middy/ws-router'\n\nimport { handler as connectHandler } from './handlers/connect.js'\nimport { handler as disconnectHandler } from './handlers/disconnect.js'\nimport { handler as defaultHandler } from './handlers/default.js'\n\nconst routes = [\n {\n routeKey: '$connect',\n handler: connectHandler\n },\n {\n routeKey: '$disconnect',\n handler: disconnectHandler\n },\n {\n routeKey: 'default',\n handler: defaultHandler\n }\n]\n\nexport const handler = middy()\n .use(wsJsonBodyParserMiddleware())\n .use(wsResponseMiddleware())\n .handler(wsRouterHandler(routes))\n\n"})})]})}function p(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,a.jsx)(n,{...e,children:(0,a.jsx)(l,{...e})}):l(e)}},1151:(e,n,t)=>{t.d(n,{Z:()=>i,a:()=>r});var a=t(7294);const s={},o=a.createContext(s);function r(e){const n=a.useContext(o);return a.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),a.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/c0ad98a5.0edd04da.js b/assets/js/c0ad98a5.0edd04da.js new file mode 100644 index 000000000..39fc5fa8e --- /dev/null +++ b/assets/js/c0ad98a5.0edd04da.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[2932],{3705:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>o,default:()=>h,frontMatter:()=>i,metadata:()=>u,toc:()=>c});var r=n(5893),a=n(1151),s=n(4866),l=n(5162);const i={title:"http-partial-response"},o=void 0,u={id:"middlewares/http-partial-response",title:"http-partial-response",description:"Filtering the data returned in an object or JSON stringified response has never been so easy. Add the httpPartialResponse middleware to your middleware chain, specify a custom filteringKeyName if you want to and that's it. Any consumer of your API will be able to filter your JSON response by adding a querystring key with the fields to filter such as fields=firstname,lastname.",source:"@site/docs/middlewares/http-partial-response.md",sourceDirName:"middlewares",slug:"/middlewares/http-partial-response",permalink:"/docs/middlewares/http-partial-response",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/middlewares/http-partial-response.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",frontMatter:{title:"http-partial-response"},sidebar:"tutorialSidebar",previous:{title:"http-multipart-body-parser",permalink:"/docs/middlewares/http-multipart-body-parser"},next:{title:"http-response-serializer",permalink:"/docs/middlewares/http-response-serializer"}},d={},c=[{value:"Install",id:"install",level:2},{value:"Options",id:"options",level:2},{value:"Sample usage",id:"sample-usage",level:2}];function p(e){const t={a:"a",code:"code",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,a.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(t.p,{children:["Filtering the data returned in an object or JSON stringified response has never been so easy. Add the ",(0,r.jsx)(t.code,{children:"httpPartialResponse"})," middleware to your middleware chain, specify a custom ",(0,r.jsx)(t.code,{children:"filteringKeyName"})," if you want to and that's it. Any consumer of your API will be able to filter your JSON response by adding a querystring key with the fields to filter such as ",(0,r.jsx)(t.code,{children:"fields=firstname,lastname"}),"."]}),"\n",(0,r.jsxs)(t.p,{children:["This middleware is based on the awesome ",(0,r.jsx)(t.code,{children:"json-mask"})," package written by ",(0,r.jsx)(t.a,{href:"https://github.com/nemtsov",children:"Yuriy Nemtsov"})]}),"\n",(0,r.jsx)(t.h2,{id:"install",children:"Install"}),"\n",(0,r.jsx)(t.p,{children:"To install this middleware you can use NPM:"}),"\n",(0,r.jsxs)(s.Z,{groupId:"npm2yarn",children:[(0,r.jsx)(l.Z,{value:"npm",children:(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-bash",children:"npm install --save @middy/http-partial-response\n"})})}),(0,r.jsx)(l.Z,{value:"yarn",label:"Yarn",children:(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-bash",children:"yarn add @middy/http-partial-response\n"})})}),(0,r.jsx)(l.Z,{value:"pnpm",label:"pnpm",children:(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-bash",children:"pnpm add @middy/http-partial-response\n"})})})]}),"\n",(0,r.jsx)(t.h2,{id:"options",children:"Options"}),"\n",(0,r.jsxs)(t.ul,{children:["\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:"filteringKeyName"})," (",(0,r.jsx)(t.code,{children:"string"}),") (optional): defaults to ",(0,r.jsx)(t.code,{children:"fields"})," the querystring key that will be used to filter the response."]}),"\n"]}),"\n",(0,r.jsx)(t.h2,{id:"sample-usage",children:"Sample usage"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-javascript",children:"import middy from '@middy/core'\nimport httpPartialResponse from '@middy/http-partial-response'\n\nconst lambdaHandler = (event, context) => {\n const response = {\n statusCode: 200,\n body: {\n firstname: 'John',\n lastname: 'Doe',\n gender: 'male',\n age: 30,\n address: {\n street: 'Avenue des Champs-\xc9lys\xe9es',\n city: 'Paris'\n }\n }\n }\n\n return response\n}\n\nexport const handler = middy().use(httpPartialResponse()).handler(lambdaHandler)\n\nconst event = {\n queryStringParameters: {\n fields: 'firstname,lastname'\n }\n}\n\nhandler(event, {}, (_, response) => {\n expect(response.body).toEqual({\n firstname: 'John',\n lastname: 'Doe'\n })\n})\n"})})]})}function h(e={}){const{wrapper:t}={...(0,a.a)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(p,{...e})}):p(e)}},5162:(e,t,n)=>{n.d(t,{Z:()=>l});n(7294);var r=n(6010);const a={tabItem:"tabItem_Ymn6"};var s=n(5893);function l(e){let{children:t,hidden:n,className:l}=e;return(0,s.jsx)("div",{role:"tabpanel",className:(0,r.Z)(a.tabItem,l),hidden:n,children:t})}},4866:(e,t,n)=>{n.d(t,{Z:()=>w});var r=n(7294),a=n(6010),s=n(2466),l=n(6550),i=n(469),o=n(1980),u=n(7392),d=n(12);function c(e){return r.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function p(e){const{values:t,children:n}=e;return(0,r.useMemo)((()=>{const e=t??function(e){return c(e).map((e=>{let{props:{value:t,label:n,attributes:r,default:a}}=e;return{value:t,label:n,attributes:r,default:a}}))}(n);return function(e){const t=(0,u.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,n])}function h(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function m(e){let{queryString:t=!1,groupId:n}=e;const a=(0,l.k6)(),s=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,o._X)(s),(0,r.useCallback)((e=>{if(!s)return;const t=new URLSearchParams(a.location.search);t.set(s,e),a.replace({...a.location,search:t.toString()})}),[s,a])]}function f(e){const{defaultValue:t,queryString:n=!1,groupId:a}=e,s=p(e),[l,o]=(0,r.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!h({value:t,tabValues:n}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const r=n.find((e=>e.default))??n[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:t,tabValues:s}))),[u,c]=m({queryString:n,groupId:a}),[f,b]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[a,s]=(0,d.Nk)(n);return[a,(0,r.useCallback)((e=>{n&&s.set(e)}),[n,s])]}({groupId:a}),y=(()=>{const e=u??f;return h({value:e,tabValues:s})?e:null})();(0,i.Z)((()=>{y&&o(y)}),[y]);return{selectedValue:l,selectValue:(0,r.useCallback)((e=>{if(!h({value:e,tabValues:s}))throw new Error(`Can't select invalid tab value=${e}`);o(e),c(e),b(e)}),[c,b,s]),tabValues:s}}var b=n(2389);const y={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var v=n(5893);function g(e){let{className:t,block:n,selectedValue:r,selectValue:l,tabValues:i}=e;const o=[],{blockElementScrollPositionUntilNextRender:u}=(0,s.o5)(),d=e=>{const t=e.currentTarget,n=o.indexOf(t),a=i[n].value;a!==r&&(u(t),l(a))},c=e=>{let t=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{const n=o.indexOf(e.currentTarget)+1;t=o[n]??o[0];break}case"ArrowLeft":{const n=o.indexOf(e.currentTarget)-1;t=o[n]??o[o.length-1];break}}t?.focus()};return(0,v.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,a.Z)("tabs",{"tabs--block":n},t),children:i.map((e=>{let{value:t,label:n,attributes:s}=e;return(0,v.jsx)("li",{role:"tab",tabIndex:r===t?0:-1,"aria-selected":r===t,ref:e=>o.push(e),onKeyDown:c,onClick:d,...s,className:(0,a.Z)("tabs__item",y.tabItem,s?.className,{"tabs__item--active":r===t}),children:n??t},t)}))})}function x(e){let{lazy:t,children:n,selectedValue:a}=e;const s=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=s.find((e=>e.props.value===a));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return(0,v.jsx)("div",{className:"margin-top--md",children:s.map(((e,t)=>(0,r.cloneElement)(e,{key:t,hidden:e.props.value!==a})))})}function j(e){const t=f(e);return(0,v.jsxs)("div",{className:(0,a.Z)("tabs-container",y.tabList),children:[(0,v.jsx)(g,{...e,...t}),(0,v.jsx)(x,{...e,...t})]})}function w(e){const t=(0,b.Z)();return(0,v.jsx)(j,{...e,children:c(e.children)},String(t))}},1151:(e,t,n)=>{n.d(t,{Z:()=>i,a:()=>l});var r=n(7294);const a={},s=r.createContext(a);function l(e){const t=r.useContext(s);return r.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:l(e.components),r.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/c0ad98a5.bc335e82.js b/assets/js/c0ad98a5.bc335e82.js deleted file mode 100644 index 1f15d7727..000000000 --- a/assets/js/c0ad98a5.bc335e82.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[2932],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>f});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function s(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?l(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):l(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function o(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},l=Object.keys(e);for(n=0;n<l.length;n++)r=l[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n<l.length;n++)r=l[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var i=n.createContext({}),u=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):s(s({},t),e)),r},p=function(e){var t=u(e.components);return n.createElement(i.Provider,{value:t},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,l=e.originalType,i=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),c=u(r),m=a,f=c["".concat(i,".").concat(m)]||c[m]||d[m]||l;return r?n.createElement(f,s(s({ref:t},p),{},{components:r})):n.createElement(f,s({ref:t},p))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=r.length,s=new Array(l);s[0]=m;var o={};for(var i in t)hasOwnProperty.call(t,i)&&(o[i]=t[i]);o.originalType=e,o[c]="string"==typeof e?e:a,s[1]=o;for(var u=2;u<l;u++)s[u]=r[u];return n.createElement.apply(null,s)}return n.createElement.apply(null,r)}m.displayName="MDXCreateElement"},5162:(e,t,r)=>{r.d(t,{Z:()=>s});var n=r(7294),a=r(6010);const l={tabItem:"tabItem_Ymn6"};function s(e){let{children:t,hidden:r,className:s}=e;return n.createElement("div",{role:"tabpanel",className:(0,a.Z)(l.tabItem,s),hidden:r},t)}},4866:(e,t,r)=>{r.d(t,{Z:()=>k});var n=r(7462),a=r(7294),l=r(6010),s=r(2466),o=r(6550),i=r(1980),u=r(7392),p=r(12);function c(e){return function(e){return a.Children.map(e,(e=>{if(!e||(0,a.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:r,attributes:n,default:a}}=e;return{value:t,label:r,attributes:n,default:a}}))}function d(e){const{values:t,children:r}=e;return(0,a.useMemo)((()=>{const e=t??c(r);return function(e){const t=(0,u.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,r])}function m(e){let{value:t,tabValues:r}=e;return r.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:r}=e;const n=(0,o.k6)(),l=function(e){let{queryString:t=!1,groupId:r}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!r)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return r??null}({queryString:t,groupId:r});return[(0,i._X)(l),(0,a.useCallback)((e=>{if(!l)return;const t=new URLSearchParams(n.location.search);t.set(l,e),n.replace({...n.location,search:t.toString()})}),[l,n])]}function b(e){const{defaultValue:t,queryString:r=!1,groupId:n}=e,l=d(e),[s,o]=(0,a.useState)((()=>function(e){let{defaultValue:t,tabValues:r}=e;if(0===r.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!m({value:t,tabValues:r}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${r.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const n=r.find((e=>e.default))??r[0];if(!n)throw new Error("Unexpected error: 0 tabValues");return n.value}({defaultValue:t,tabValues:l}))),[i,u]=f({queryString:r,groupId:n}),[c,b]=function(e){let{groupId:t}=e;const r=function(e){return e?`docusaurus.tab.${e}`:null}(t),[n,l]=(0,p.Nk)(r);return[n,(0,a.useCallback)((e=>{r&&l.set(e)}),[r,l])]}({groupId:n}),h=(()=>{const e=i??c;return m({value:e,tabValues:l})?e:null})();(0,a.useLayoutEffect)((()=>{h&&o(h)}),[h]);return{selectedValue:s,selectValue:(0,a.useCallback)((e=>{if(!m({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);o(e),u(e),b(e)}),[u,b,l]),tabValues:l}}var h=r(2389);const y={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};function v(e){let{className:t,block:r,selectedValue:o,selectValue:i,tabValues:u}=e;const p=[],{blockElementScrollPositionUntilNextRender:c}=(0,s.o5)(),d=e=>{const t=e.currentTarget,r=p.indexOf(t),n=u[r].value;n!==o&&(c(t),i(n))},m=e=>{let t=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{const r=p.indexOf(e.currentTarget)+1;t=p[r]??p[0];break}case"ArrowLeft":{const r=p.indexOf(e.currentTarget)-1;t=p[r]??p[p.length-1];break}}t?.focus()};return a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":r},t)},u.map((e=>{let{value:t,label:r,attributes:s}=e;return a.createElement("li",(0,n.Z)({role:"tab",tabIndex:o===t?0:-1,"aria-selected":o===t,key:t,ref:e=>p.push(e),onKeyDown:m,onClick:d},s,{className:(0,l.Z)("tabs__item",y.tabItem,s?.className,{"tabs__item--active":o===t})}),r??t)})))}function g(e){let{lazy:t,children:r,selectedValue:n}=e;const l=(Array.isArray(r)?r:[r]).filter(Boolean);if(t){const e=l.find((e=>e.props.value===n));return e?(0,a.cloneElement)(e,{className:"margin-top--md"}):null}return a.createElement("div",{className:"margin-top--md"},l.map(((e,t)=>(0,a.cloneElement)(e,{key:t,hidden:e.props.value!==n}))))}function w(e){const t=b(e);return a.createElement("div",{className:(0,l.Z)("tabs-container",y.tabList)},a.createElement(v,(0,n.Z)({},e,t)),a.createElement(g,(0,n.Z)({},e,t)))}function k(e){const t=(0,h.Z)();return a.createElement(w,(0,n.Z)({key:String(t)},e))}},5535:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>f,frontMatter:()=>o,metadata:()=>u,toc:()=>c});var n=r(7462),a=(r(7294),r(3905)),l=r(4866),s=r(5162);const o={title:"http-partial-response"},i=void 0,u={unversionedId:"middlewares/http-partial-response",id:"middlewares/http-partial-response",title:"http-partial-response",description:"Filtering the data returned in an object or JSON stringified response has never been so easy. Add the httpPartialResponse middleware to your middleware chain, specify a custom filteringKeyName if you want to and that's it. Any consumer of your API will be able to filter your JSON response by adding a querystring key with the fields to filter such as fields=firstname,lastname.",source:"@site/docs/middlewares/http-partial-response.md",sourceDirName:"middlewares",slug:"/middlewares/http-partial-response",permalink:"/docs/middlewares/http-partial-response",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/middlewares/http-partial-response.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",frontMatter:{title:"http-partial-response"},sidebar:"tutorialSidebar",previous:{title:"http-multipart-body-parser",permalink:"/docs/middlewares/http-multipart-body-parser"},next:{title:"http-response-serializer",permalink:"/docs/middlewares/http-response-serializer"}},p={},c=[{value:"Install",id:"install",level:2},{value:"Options",id:"options",level:2},{value:"Sample usage",id:"sample-usage",level:2}],d={toc:c},m="wrapper";function f(e){let{components:t,...r}=e;return(0,a.kt)(m,(0,n.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"Filtering the data returned in an object or JSON stringified response has never been so easy. Add the ",(0,a.kt)("inlineCode",{parentName:"p"},"httpPartialResponse")," middleware to your middleware chain, specify a custom ",(0,a.kt)("inlineCode",{parentName:"p"},"filteringKeyName")," if you want to and that's it. Any consumer of your API will be able to filter your JSON response by adding a querystring key with the fields to filter such as ",(0,a.kt)("inlineCode",{parentName:"p"},"fields=firstname,lastname"),"."),(0,a.kt)("p",null,"This middleware is based on the awesome ",(0,a.kt)("inlineCode",{parentName:"p"},"json-mask")," package written by ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/nemtsov"},"Yuriy Nemtsov")),(0,a.kt)("h2",{id:"install"},"Install"),(0,a.kt)("p",null,"To install this middleware you can use NPM:"),(0,a.kt)(l.Z,{groupId:"npm2yarn",mdxType:"Tabs"},(0,a.kt)(s.Z,{value:"npm",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-bash"},"npm install --save @middy/http-partial-response\n"))),(0,a.kt)(s.Z,{value:"yarn",label:"Yarn",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-bash"},"yarn add @middy/http-partial-response\n"))),(0,a.kt)(s.Z,{value:"pnpm",label:"pnpm",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-bash"},"pnpm add @middy/http-partial-response\n")))),(0,a.kt)("h2",{id:"options"},"Options"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"filteringKeyName")," (",(0,a.kt)("inlineCode",{parentName:"li"},"string"),") (optional): defaults to ",(0,a.kt)("inlineCode",{parentName:"li"},"fields")," the querystring key that will be used to filter the response.")),(0,a.kt)("h2",{id:"sample-usage"},"Sample usage"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\nimport httpPartialResponse from '@middy/http-partial-response'\n\nconst handler = middy((event, context) => {\n const response = {\n statusCode: 200,\n body: {\n firstname: 'John',\n lastname: 'Doe',\n gender: 'male',\n age: 30,\n address: {\n street: 'Avenue des Champs-\xc9lys\xe9es',\n city: 'Paris'\n }\n }\n }\n\n return response\n})\n\nhandler.use(httpPartialResponse())\n\nconst event = {\n queryStringParameters: {\n fields: 'firstname,lastname'\n }\n}\n\nhandler(event, {}, (_, response) => {\n expect(response.body).toEqual({\n firstname: 'John',\n lastname: 'Doe'\n })\n})\n")))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c1378803.cea9a565.js b/assets/js/c1378803.cea9a565.js new file mode 100644 index 000000000..b7389ca61 --- /dev/null +++ b/assets/js/c1378803.cea9a565.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[7450],{1257:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>i,default:()=>m,frontMatter:()=>l,metadata:()=>c,toc:()=>h});var a=n(5893),s=n(1151),r=n(4866),o=n(5162);const l={title:"Powertools for AWS Lambda"},i=void 0,c={id:"integrations/lambda-powertools",title:"Powertools for AWS Lambda",description:"Powertools for AWS is a developer toolkit to implement Serverless best practices and increase developer velocity.",source:"@site/docs/integrations/lambda-powertools.md",sourceDirName:"integrations",slug:"/integrations/lambda-powertools",permalink:"/docs/integrations/lambda-powertools",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/integrations/lambda-powertools.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",frontMatter:{title:"Powertools for AWS Lambda"},sidebar:"tutorialSidebar",previous:{title:"Apollo Server",permalink:"/docs/integrations/apollo-server"},next:{title:"Pino",permalink:"/docs/integrations/pino"}},d={},h=[{value:"Intro",id:"intro",level:2},{value:"Logger",id:"logger",level:2},{value:"Install",id:"install",level:3},{value:"Options",id:"options",level:3},{value:"Sample usage",id:"sample-usage",level:3},{value:"Tracer",id:"tracer",level:2},{value:"Install",id:"install-1",level:3},{value:"Options",id:"options-1",level:3},{value:"Sample usage",id:"sample-usage-1",level:3},{value:"Metrics",id:"metrics",level:2},{value:"Install",id:"install-2",level:3},{value:"Options",id:"options-2",level:3},{value:"Sample usage",id:"sample-usage-2",level:3},{value:"Idempotency",id:"idempotency",level:2},{value:"Install",id:"install-3",level:3},{value:"Options",id:"options-3",level:3},{value:"Sample usage",id:"sample-usage-3",level:3},{value:"Best practices",id:"best-practices",level:2},{value:"Using multiple utilities",id:"using-multiple-utilities",level:3},{value:"Cleaning up on early returns",id:"cleaning-up-on-early-returns",level:3}];function u(e){const t={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,s.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(t.p,{children:["Powertools for AWS is a developer toolkit to implement Serverless ",(0,a.jsx)(t.a,{href:"https://s12d.com/middy-intro",children:"best practices and increase developer velocity"}),"."]}),"\n",(0,a.jsx)(t.p,{children:"You can use Powertools for AWS in both TypeScript and JavaScript code bases."}),"\n",(0,a.jsx)(t.admonition,{type:"note",children:(0,a.jsxs)(t.p,{children:["Powertools officially supports ",(0,a.jsx)(t.code,{children:"@middy/core"})," v3.x only. In most cases when using Node.js 16 or higher you can use Powertools with ",(0,a.jsx)(t.code,{children:"@middy/core"})," v4.x, however support is provided on a best-effort basis and we recommend using ",(0,a.jsx)(t.code,{children:"@middy/core"})," v3.x."]})}),"\n",(0,a.jsx)(t.h2,{id:"intro",children:"Intro"}),"\n",(0,a.jsx)(t.p,{children:"Powertools is a collection of utilities that can be used independently or together to help you build production-ready serverless applications. Currently, Powertools provides the following utilities that are compatible with Middy:"}),"\n",(0,a.jsxs)(t.ul,{children:["\n",(0,a.jsxs)(t.li,{children:[(0,a.jsx)(t.a,{href:"https://s12d.com/middy-logger",children:(0,a.jsx)(t.strong,{children:"Logger"})})," - Structured logging made easier with a middleware to capture key fields from the Lambda context, cold starts, and more. Compatible with Amazon CloudWatch, Datadog, and more."]}),"\n",(0,a.jsxs)(t.li,{children:[(0,a.jsx)(t.a,{href:"https://s12d.com/middy-tracer",children:(0,a.jsx)(t.strong,{children:"Tracer"})})," - An opinionated wrapper around AWS X-Ray SDK for Node.js with a middleware to automatically capture traces for function invocations, HTTP requests, and AWS SDK calls, and more."]}),"\n",(0,a.jsxs)(t.li,{children:[(0,a.jsx)(t.a,{href:"https://s12d.com/middy-metrics",children:(0,a.jsx)(t.strong,{children:"Metrics"})})," - Create Amazon CloudWatch custom metrics asynchronously with a middleware that takes care of capturing cold starts, and flushes metrics to CloudWatch in ",(0,a.jsx)(t.a,{href:"https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Embedded_Metric_Format.html",children:"EMF-formatted"})," batches."]}),"\n",(0,a.jsxs)(t.li,{children:[(0,a.jsx)(t.a,{href:"https://s12d.com/middy-idempotency",children:(0,a.jsx)(t.strong,{children:"Idempotency"})})," - Middleware to make your Lambda functions idempotent and prevent duplicate execution based on payload content."]}),"\n"]}),"\n",(0,a.jsx)(t.h2,{id:"logger",children:"Logger"}),"\n",(0,a.jsx)(t.p,{children:"Key features:"}),"\n",(0,a.jsxs)(t.ul,{children:["\n",(0,a.jsx)(t.li,{children:"Capturing key fields from the Lambda context, cold starts, and structure logging output as JSON."}),"\n",(0,a.jsx)(t.li,{children:"Logging Lambda invocation events when instructed (disabled by default)."}),"\n",(0,a.jsx)(t.li,{children:"Printing all the logs only for a percentage of invocations via log sampling (disabled by default)."}),"\n",(0,a.jsx)(t.li,{children:"Appending additional keys to structured logs at any point in time."}),"\n",(0,a.jsx)(t.li,{children:"Providing a custom log formatter (Bring Your Own Formatter) to output logs in a structure compatible with your organization\u2019s Logging RFC."}),"\n"]}),"\n",(0,a.jsx)(t.h3,{id:"install",children:"Install"}),"\n",(0,a.jsxs)(r.Z,{groupId:"npm2yarn",children:[(0,a.jsx)(o.Z,{value:"npm",children:(0,a.jsx)(t.pre,{children:(0,a.jsx)(t.code,{className:"language-bash",children:"npm install --save @aws-lambda-powertools/logger\n"})})}),(0,a.jsx)(o.Z,{value:"yarn",label:"Yarn",children:(0,a.jsx)(t.pre,{children:(0,a.jsx)(t.code,{className:"language-bash",children:"yarn add @aws-lambda-powertools/logger\n"})})}),(0,a.jsx)(o.Z,{value:"pnpm",label:"pnpm",children:(0,a.jsx)(t.pre,{children:(0,a.jsx)(t.code,{className:"language-bash",children:"pnpm add @aws-lambda-powertools/logger\n"})})})]}),"\n",(0,a.jsx)(t.h3,{id:"options",children:"Options"}),"\n",(0,a.jsx)(t.p,{children:"Class constructor accepts the following options, which are all optional:"}),"\n",(0,a.jsxs)(t.ul,{children:["\n",(0,a.jsxs)(t.li,{children:[(0,a.jsx)(t.code,{children:"logLevel"})," (string|LogLevel): Log level to use. Defaults to ",(0,a.jsx)(t.code,{children:"INFO"}),", but you can use any of the following values: ",(0,a.jsx)(t.code,{children:"SILENT"}),", ",(0,a.jsx)(t.code,{children:"DEBUG"}),", ",(0,a.jsx)(t.code,{children:"INFO"}),", ",(0,a.jsx)(t.code,{children:"WARN"}),", ",(0,a.jsx)(t.code,{children:"ERROR"}),", ",(0,a.jsx)(t.code,{children:"CRITICAL"}),"."]}),"\n",(0,a.jsxs)(t.li,{children:[(0,a.jsx)(t.code,{children:"serviceName"})," (string): Service name to use that will be used in all log statements. Defaults to ",(0,a.jsx)(t.code,{children:"service_undefined"}),"."]}),"\n",(0,a.jsxs)(t.li,{children:[(0,a.jsx)(t.code,{children:"sampleRateValue"})," (number): number between ",(0,a.jsx)(t.code,{children:"0.0"})," and ",(0,a.jsx)(t.code,{children:"1"})," to determine the sample rate for debug logging. Defaults to ",(0,a.jsx)(t.code,{children:"0"})," (no debub logging)."]}),"\n"]}),"\n",(0,a.jsx)(t.p,{children:"Middleware accepts the following options:"}),"\n",(0,a.jsxs)(t.ul,{children:["\n",(0,a.jsxs)(t.li,{children:[(0,a.jsx)(t.code,{children:"logger"})," (Logger) (required): An instance of the Logger class."]}),"\n",(0,a.jsxs)(t.li,{children:[(0,a.jsx)(t.code,{children:"option"})," (object) (optional): An object with the following keys:","\n",(0,a.jsxs)(t.ul,{children:["\n",(0,a.jsxs)(t.li,{children:[(0,a.jsx)(t.code,{children:"logEvent"})," (boolean) (optional): Whether to log the Lambda invocation event. Defaults to ",(0,a.jsx)(t.code,{children:"false"}),"."]}),"\n",(0,a.jsxs)(t.li,{children:[(0,a.jsx)(t.code,{children:"clearState"})," (boolean) (optional): Whether to clear the logger state after each invocation. Defaults to ",(0,a.jsx)(t.code,{children:"false"}),"."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,a.jsx)(t.h3,{id:"sample-usage",children:"Sample usage"}),"\n",(0,a.jsx)(t.pre,{children:(0,a.jsx)(t.code,{className:"language-javascript",children:"import middy from '@middy/core';\nimport { Logger, injectLambdaContext } from '@aws-lambda-powertools/logger';\n\nconst logger = new Logger({ serviceName: 'serverlessAirline' });\n\nconst lambdaHandler = async (_event, _context) => {\n logger.info('This is an INFO log with some context', {\n foo: {\n bar: 'baz'\n }\n });\n};\n\nexport const handler = middy(lambdaHandler)\n .use(injectLambdaContext(logger));\n"})}),"\n",(0,a.jsx)(t.p,{children:"The above code will output the following log:"}),"\n",(0,a.jsx)(t.pre,{children:(0,a.jsx)(t.code,{className:"language-json",children:'{\n "cold_start": true,\n "function_arn": "arn:aws:lambda:eu-west-1:123456789012:function:shopping-cart-api-lambda-prod-eu-west-1",\n "function_memory_size": 128,\n "function_request_id": "c6af9ac6-7b61-11e6-9a41-93e812345678",\n "function_name": "shopping-cart-api-lambda-prod-eu-west-1",\n "level": "INFO",\n "message": "This is an INFO log with some context",\n "foo": {\n "bar": "baz"\n },\n "service": "serverlessAirline",\n "timestamp": "2021-12-12T21:21:08.921Z",\n "xray_trace_id": "abcdef123456abcdef123456abcdef123456"\n}\n'})}),"\n",(0,a.jsxs)(t.p,{children:["As you can see, the log entry includes several fields that are automatically captured by the Logger utility, and that can help you better understand the context of the log entry. For example, the ",(0,a.jsx)(t.code,{children:"cold_start"})," field indicates whether the Lambda function was cold started or not, and the ",(0,a.jsx)(t.code,{children:"xray_trace_id"})," field contains the AWS X-Ray trace ID for the Lambda invocation. This is useful when you're troubleshooting a problem and want to correlate the logs with the traces."]}),"\n",(0,a.jsxs)(t.p,{children:["The Logger utility also allows you to append arbitary keys to the log entry at both ",(0,a.jsx)(t.a,{href:"https://docs.powertools.aws.dev/lambda-typescript/latest/core/logger/#appending-persistent-additional-log-keys-and-values",children:"the global level"}),", at the ",(0,a.jsx)(t.a,{href:"https://docs.powertools.aws.dev/lambda-typescript/latest/core/logger/#clearing-all-state",children:"invocation level"}),", and at the ",(0,a.jsx)(t.a,{href:"https://docs.powertools.aws.dev/lambda-typescript/latest/core/logger/#appending-additional-data-to-a-single-log-item",children:"single log level"}),". For example, there might be some keys that you want to include in all log entries, such as the ",(0,a.jsx)(t.code,{children:"environment"})," key to differentiate between the ",(0,a.jsx)(t.code,{children:"prod"})," and ",(0,a.jsx)(t.code,{children:"dev"})," environments, or in other cases you might want to include some keys only for a specific log entry, such as the ",(0,a.jsx)(t.code,{children:"customer_id"})," key to identify the customer that triggered the Lambda invocation."]}),"\n",(0,a.jsxs)(t.p,{children:["Additionally, you can also configure Logger to ",(0,a.jsx)(t.a,{href:"https://docs.powertools.aws.dev/lambda-typescript/latest/core/logger/#log-incoming-event",children:"log the Lambda invocation event"}),", which can be useful when you're troubleshooting a problem and want to see the event that triggered the Lambda invocation. Finally, Logger allows you to ",(0,a.jsx)(t.a,{href:"https://docs.powertools.aws.dev/lambda-typescript/latest/core/logger/#custom-log-formatter-bring-your-own-formatter",children:"define a custom log formatter"})," to output logs in a different JSON structure from the default one. This is useful when you want to output logs in a structure that is compatible with your organization's requirements."]}),"\n",(0,a.jsx)(t.h2,{id:"tracer",children:"Tracer"}),"\n",(0,a.jsx)(t.p,{children:"Key features:"}),"\n",(0,a.jsxs)(t.ul,{children:["\n",(0,a.jsx)(t.li,{children:"Auto-capturing cold start and service name as annotations, and responses or full exceptions as metadata."}),"\n",(0,a.jsx)(t.li,{children:"Automatically tracing HTTP(S) clients and generating segments for each request."}),"\n",(0,a.jsx)(t.li,{children:"Supporting tracing functions via decorators, middleware, and manual instrumentation."}),"\n",(0,a.jsx)(t.li,{children:"Supporting tracing AWS SDK v2 and v3 via AWS X-Ray SDK for Node.js."}),"\n",(0,a.jsx)(t.li,{children:"Auto-disable tracing when not running in the Lambda environment."}),"\n"]}),"\n",(0,a.jsx)(t.h3,{id:"install-1",children:"Install"}),"\n",(0,a.jsxs)(r.Z,{groupId:"npm2yarn",children:[(0,a.jsx)(o.Z,{value:"npm",children:(0,a.jsx)(t.pre,{children:(0,a.jsx)(t.code,{className:"language-bash",children:"npm install --save @aws-lambda-powertools/tracer\n"})})}),(0,a.jsx)(o.Z,{value:"yarn",label:"Yarn",children:(0,a.jsx)(t.pre,{children:(0,a.jsx)(t.code,{className:"language-bash",children:"yarn add @aws-lambda-powertools/tracer\n"})})}),(0,a.jsx)(o.Z,{value:"pnpm",label:"pnpm",children:(0,a.jsx)(t.pre,{children:(0,a.jsx)(t.code,{className:"language-bash",children:"pnpm add @aws-lambda-powertools/tracer\n"})})})]}),"\n",(0,a.jsx)(t.h3,{id:"options-1",children:"Options"}),"\n",(0,a.jsx)(t.p,{children:"Class constructor accepts the following options, which are all optional:"}),"\n",(0,a.jsxs)(t.ul,{children:["\n",(0,a.jsxs)(t.li,{children:[(0,a.jsx)(t.code,{children:"serviceName"})," (string): Service name to use that will be used in all log statements. Defaults to ",(0,a.jsx)(t.code,{children:"service_undefined"}),"."]}),"\n",(0,a.jsxs)(t.li,{children:[(0,a.jsx)(t.code,{children:"enabled"})," (boolean): Whether to enable tracing. Defaults to ",(0,a.jsx)(t.code,{children:"true"}),"."]}),"\n",(0,a.jsxs)(t.li,{children:[(0,a.jsx)(t.code,{children:"captureHTTPsRequests"})," (boolean): Whether to capture outgoing HTTP(S) requests as segment metadata. Defaults to ",(0,a.jsx)(t.code,{children:"true"}),"."]}),"\n"]}),"\n",(0,a.jsx)(t.p,{children:"Middleware accepts the following options:"}),"\n",(0,a.jsxs)(t.ul,{children:["\n",(0,a.jsxs)(t.li,{children:[(0,a.jsx)(t.code,{children:"tracer"})," (Tracer) (required): An instance of the Tracer class."]}),"\n",(0,a.jsxs)(t.li,{children:[(0,a.jsx)(t.code,{children:"option"})," (object) (optional): An object with the following keys:","\n",(0,a.jsxs)(t.ul,{children:["\n",(0,a.jsxs)(t.li,{children:[(0,a.jsx)(t.code,{children:"captureResponse"})," (boolean) (optional): Whether to capture the Lambda invocation result as segment metadata. Defaults to ",(0,a.jsx)(t.code,{children:"true"}),"."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,a.jsx)(t.h3,{id:"sample-usage-1",children:"Sample usage"}),"\n",(0,a.jsx)(t.pre,{children:(0,a.jsx)(t.code,{className:"language-javascript",children:"import middy from '@middy/core';\nimport { Tracer, captureLambdaHandler } from '@aws-lambda-powertools/tracer';\nimport { SecretsManagerClient } from '@aws-sdk/client-secrets-manager';\n\nconst tracer = new Tracer({\n serviceName: 'serverlessAirline'\n});\n\nconst client = tracer.captureAWSv3Client(\n new SecretsManagerClient({})\n);\n\nconst lambdaHandler = async (_event, _context) => {\n tracer.putAnnotation('successfulBooking', true);\n};\n\nexport const handler = middy(lambdaHandler)\n .use(captureLambdaHandler(tracer));\n"})}),"\n",(0,a.jsxs)(t.p,{children:["The above code instructs the Tracer utility to create a custom segment named ",(0,a.jsx)(t.code,{children:"## index.handler"})," and to add an annotation to it with the key ",(0,a.jsx)(t.code,{children:"successfulBooking"})," and the value ",(0,a.jsx)(t.code,{children:"true"}),". The segment name is automatically generated based on the handler name, and the ",(0,a.jsx)(t.code,{children:"##"})," prefix is used to indicate that this is a custom segment. The Tracer utility also automatically captures the cold start and service name as annotations, and the Lambda invocation result or any error thrown ",(0,a.jsx)(t.a,{href:"https://docs.powertools.aws.dev/lambda-typescript/latest/core/tracer/#annotations-metadata",children:"as metadata"}),". The segment data will be automatically sent to AWS X-Ray when the Lambda function completes its execution."]}),"\n",(0,a.jsxs)(t.p,{children:["Tracer also automatically ",(0,a.jsx)(t.a,{href:"https://docs.powertools.aws.dev/lambda-typescript/latest/core/tracer/#tracing-http-requests",children:"captures and traces any outgoing HTTP(S) requests"})," made by the Lambda function. For example, if your function makes a request to a custom API, the Tracer utility will automatically create a segment for that request which will appear in your trace data and service map. Additionally, it will also ",(0,a.jsx)(t.a,{href:"https://docs.powertools.aws.dev/lambda-typescript/latest/core/tracer/#patching-aws-sdk-clients",children:"capture any AWS SDK calls"})," made by the function, and do the same for them."]}),"\n",(0,a.jsx)(t.h2,{id:"metrics",children:"Metrics"}),"\n",(0,a.jsx)(t.p,{children:"Key features:"}),"\n",(0,a.jsxs)(t.ul,{children:["\n",(0,a.jsxs)(t.li,{children:["Aggregating up to 100 metrics using a single ",(0,a.jsx)(t.a,{href:"https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Embedded_Metric_Format.html",children:"CloudWatch EMF"})," object."]}),"\n",(0,a.jsx)(t.li,{children:"Validating your metrics against common metric definitions mistakes (for example, metric unit, values, max dimensions, max metrics)."}),"\n",(0,a.jsx)(t.li,{children:"Metrics are created asynchronously by the CloudWatch service. You do not need any custom stacks, and there is no impact to Lambda function latency."}),"\n",(0,a.jsx)(t.li,{children:"Creating a one-off metric with different dimensions."}),"\n"]}),"\n",(0,a.jsxs)(t.p,{children:["If you're new to Amazon CloudWatch, there are a few terms like ",(0,a.jsx)(t.code,{children:"Namespace"}),", ",(0,a.jsx)(t.code,{children:"Dimensions"}),", ",(0,a.jsx)(t.code,{children:"Unit"}),", etc, that you must be aware of before you start using the Metrics utility. To learn more about these terms, see the ",(0,a.jsx)(t.a,{href:"https://docs.powertools.aws.dev/lambda-typescript/latest/core/metrics/#terminologies",children:"documentation on PowerTools Metrics"}),"."]}),"\n",(0,a.jsx)(t.h3,{id:"install-2",children:"Install"}),"\n",(0,a.jsxs)(r.Z,{groupId:"npm2yarn",children:[(0,a.jsx)(o.Z,{value:"npm",children:(0,a.jsx)(t.pre,{children:(0,a.jsx)(t.code,{className:"language-bash",children:"npm install --save @aws-lambda-powertools/metrics\n"})})}),(0,a.jsx)(o.Z,{value:"yarn",label:"Yarn",children:(0,a.jsx)(t.pre,{children:(0,a.jsx)(t.code,{className:"language-bash",children:"yarn add @aws-lambda-powertools/metrics\n"})})}),(0,a.jsx)(o.Z,{value:"pnpm",label:"pnpm",children:(0,a.jsx)(t.pre,{children:(0,a.jsx)(t.code,{className:"language-bash",children:"pnpm add @aws-lambda-powertools/metrics\n"})})})]}),"\n",(0,a.jsx)(t.h3,{id:"options-2",children:"Options"}),"\n",(0,a.jsx)(t.p,{children:"Class constructor accepts the following options, which are all optional:"}),"\n",(0,a.jsxs)(t.ul,{children:["\n",(0,a.jsxs)(t.li,{children:[(0,a.jsx)(t.code,{children:"serviceName"})," (string): Service name to use that will be used in all log statements. Defaults to ",(0,a.jsx)(t.code,{children:"service_undefined"}),"."]}),"\n",(0,a.jsxs)(t.li,{children:[(0,a.jsx)(t.code,{children:"defaultNamespace"})," (string): Default namespace to use for all metrics. Defaults to ",(0,a.jsx)(t.code,{children:"default_namespace"}),"."]}),"\n"]}),"\n",(0,a.jsx)(t.p,{children:"Middleware accepts the following options:"}),"\n",(0,a.jsxs)(t.ul,{children:["\n",(0,a.jsxs)(t.li,{children:[(0,a.jsx)(t.code,{children:"metrics"})," (Metric) (required): An instance of the Metrics class."]}),"\n",(0,a.jsxs)(t.li,{children:[(0,a.jsx)(t.code,{children:"option"})," (object) (optional): An object with the following keys:","\n",(0,a.jsxs)(t.ul,{children:["\n",(0,a.jsxs)(t.li,{children:[(0,a.jsx)(t.code,{children:"throwOnEmptyMetrics"})," (boolean) (optional): Whether to throw an error if no metrics were added. Defaults to ",(0,a.jsx)(t.code,{children:"false"}),"."]}),"\n",(0,a.jsxs)(t.li,{children:[(0,a.jsx)(t.code,{children:"captureColdStartMetric"})," (boolean) (optional): Whether to capture the cold start metric. Defaults to ",(0,a.jsx)(t.code,{children:"true"}),"."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,a.jsx)(t.h3,{id:"sample-usage-2",children:"Sample usage"}),"\n",(0,a.jsx)(t.pre,{children:(0,a.jsx)(t.code,{className:"language-javascript",children:"import middy from '@middy/core';\nimport { Metrics, MetricUnits, logMetrics } from '@aws-lambda-powertools/metrics';\n\nconst metrics = new Metrics({\n namespace: 'serverlessAirline',\n serviceName: 'orders'\n});\n\nconst lambdaHandler = async (_event: unknown, _context: unknown): Promise<void> => {\n metrics.addMetric('successfulBooking', MetricUnits.Count, 1);\n};\n\nexport const handler = middy(lambdaHandler)\n .use(logMetrics(metrics));\n"})}),"\n",(0,a.jsx)(t.p,{children:"The above code will output a CloudWatch EMF object similar to the following:"}),"\n",(0,a.jsx)(t.pre,{children:(0,a.jsx)(t.code,{className:"language-json",children:'{\n "successfulBooking": 1.0,\n "_aws": {\n "Timestamp": 1592234975665,\n "CloudWatchMetrics": [{\n "Namespace": "successfulBooking",\n "Dimensions": [\n [ "service" ]\n ],\n "Metrics": [{\n "Name": "successfulBooking",\n "Unit": "Count"\n }]\n }],\n "service": "orders"\n }\n}\n'})}),"\n",(0,a.jsx)(t.p,{children:"This EMF object will be sent to CloudWatch asynchronously by the CloudWatch service. You do not need any custom stacks, and there is no impact to Lambda function latency."}),"\n",(0,a.jsxs)(t.p,{children:["The Metrics utility supports ",(0,a.jsx)(t.a,{href:"https://docs.powertools.aws.dev/lambda-typescript/latest/core/metrics/#adding-high-resolution-metrics",children:"high-resolution metrics"})," as well as ",(0,a.jsx)(t.a,{href:"https://docs.powertools.aws.dev/lambda-typescript/latest/core/metrics/#adding-multi-value-metrics",children:"multi-value metrics"}),". It also allows you to add ",(0,a.jsx)(t.a,{href:"https://docs.powertools.aws.dev/lambda-typescript/latest/core/metrics/#adding-default-dimensions",children:"default dimensions"})," that are used in all the metrics emitted by your application or ",(0,a.jsx)(t.a,{href:"https://docs.powertools.aws.dev/lambda-typescript/latest/core/metrics/#single-metric-with-different-dimensions",children:"create a one-off metric"})," with different dimensions."]}),"\n",(0,a.jsx)(t.h2,{id:"idempotency",children:"Idempotency"}),"\n",(0,a.jsx)(t.p,{children:"Key features:"}),"\n",(0,a.jsxs)(t.ul,{children:["\n",(0,a.jsx)(t.li,{children:"Prevent Lambda handler from executing more than once on the same event payload during a time window"}),"\n",(0,a.jsx)(t.li,{children:"Ensure Lambda handler returns the same result when called with the same payload"}),"\n",(0,a.jsx)(t.li,{children:"Select a subset of the event as the idempotency key using JMESPath expressions"}),"\n",(0,a.jsx)(t.li,{children:"Set a time window in which records with the same payload should be considered duplicates"}),"\n",(0,a.jsx)(t.li,{children:"Expires in-progress executions if the Lambda function times out halfway through"}),"\n"]}),"\n",(0,a.jsx)(t.p,{children:"The property of idempotency means that an operation does not cause additional side effects if it is called more than once with the same input parameters. Idempotent operations will return the same result when they are called multiple times with the same parameters. This makes idempotent operations safe to retry."}),"\n",(0,a.jsx)(t.h3,{id:"install-3",children:"Install"}),"\n",(0,a.jsxs)(r.Z,{groupId:"npm2yarn",children:[(0,a.jsx)(o.Z,{value:"npm",children:(0,a.jsx)(t.pre,{children:(0,a.jsx)(t.code,{className:"language-bash",children:"npm install --save @aws-lambda-powertools/idempotency @aws-sdk/client-dynamodb @aws-sdk/lib-dynamodb\n"})})}),(0,a.jsx)(o.Z,{value:"yarn",label:"Yarn",children:(0,a.jsx)(t.pre,{children:(0,a.jsx)(t.code,{className:"language-bash",children:"yarn add @aws-lambda-powertools/idempotency @aws-sdk/client-dynamodb @aws-sdk/lib-dynamodb\n"})})}),(0,a.jsx)(o.Z,{value:"pnpm",label:"pnpm",children:(0,a.jsx)(t.pre,{children:(0,a.jsx)(t.code,{className:"language-bash",children:"pnpm add @aws-lambda-powertools/idempotency @aws-sdk/client-dynamodb @aws-sdk/lib-dynamodb\n"})})})]}),"\n",(0,a.jsx)(t.h3,{id:"options-3",children:"Options"}),"\n",(0,a.jsx)(t.p,{children:"Middleware accepts the following options:"}),"\n",(0,a.jsxs)(t.ul,{children:["\n",(0,a.jsxs)(t.li,{children:[(0,a.jsx)(t.code,{children:"persistenceStore"})," (",(0,a.jsx)(t.a,{href:"https://docs.powertools.aws.dev/lambda/typescript/latest/api/classes/_aws_lambda_powertools_idempotency.persistence.BasePersistenceLayer.html",children:(0,a.jsx)(t.code,{children:"BasePersistenceLayer"})}),"): Class used to interact with a ",(0,a.jsx)(t.a,{href:"https://docs.powertools.aws.dev/lambda/typescript/latest/utilities/idempotency/#persistence-layers",children:"persistence store"}),"."]}),"\n",(0,a.jsxs)(t.li,{children:[(0,a.jsx)(t.code,{children:"config"})," (",(0,a.jsx)(t.a,{href:"https://docs.powertools.aws.dev/lambda/typescript/latest/api/classes/_aws_lambda_powertools_idempotency.index.IdempotencyConfig.html",children:(0,a.jsx)(t.code,{children:"IdempotencyConfig"})}),") (optional): Configuration object to customize the ",(0,a.jsx)(t.a,{href:"https://docs.powertools.aws.dev/lambda/typescript/latest/utilities/idempotency/#customizing-the-default-behavior",children:"default behavior"})," of the idempotency feature."]}),"\n"]}),"\n",(0,a.jsx)(t.h3,{id:"sample-usage-3",children:"Sample usage"}),"\n",(0,a.jsx)(t.pre,{children:(0,a.jsx)(t.code,{className:"language-javascript",children:"import middy from '@middy/core';\nimport { randomUUID } from 'node:crypto';\nimport { makeHandlerIdempotent } from '@aws-lambda-powertools/idempotency/middleware';\nimport { DynamoDBPersistenceLayer } from '@aws-lambda-powertools/idempotency/dynamodb';\n\nconst persistenceStore = new DynamoDBPersistenceLayer({\n tableName: 'idempotencyTableName',\n});\n\nconst createSubscriptionPayment = async (\n event\n) => {\n // ... create payment\n return {\n id: randomUUID(),\n productId: event.productId,\n };\n};\n\nexport const handler = middy(\n async (event, _context) => {\n try {\n const payment = await createSubscriptionPayment(event);\n\n return {\n paymentId: payment.id,\n message: 'success',\n statusCode: 200,\n };\n } catch (error) {\n throw new Error('Error creating payment');\n }\n }\n).use(\n makeHandlerIdempotent({\n persistenceStore,\n })\n);\n"})}),"\n",(0,a.jsx)(t.h2,{id:"best-practices",children:"Best practices"}),"\n",(0,a.jsx)(t.h3,{id:"using-multiple-utilities",children:"Using multiple utilities"}),"\n",(0,a.jsx)(t.p,{children:"You can use multiple Powertools utilities in your Lambda function by chaining the respective middlewares together. When doing so the Powertools team recommends that you place the Tracer middleware at the top of the middleware chain, followed by the Logger and any other middlewares."}),"\n",(0,a.jsx)(t.p,{children:"This is because the Tracer middleware will create a new segment for each Lambda invocation, and the Logger might want to log the event that triggered the Lambda invocation. With this placement you will be able to have a segment that closely matches the actual duration of your Lambda function, and you will be able to see the event that triggered the function invocation before it's potentially modified by other middlewares."}),"\n",(0,a.jsx)(t.pre,{children:(0,a.jsx)(t.code,{className:"language-javascript",children:"export const handler = middy(() => { /* ... */ })\n .use(captureLambdaHandler(tracer))\n .use(injectLambdaContext(logger, { logEvent: true }))\n .use(logMetrics(metrics, { captureColdStartMetric: true }));\n"})}),"\n",(0,a.jsx)(t.h3,{id:"cleaning-up-on-early-returns",children:"Cleaning up on early returns"}),"\n",(0,a.jsxs)(t.p,{children:["As discussed in the ",(0,a.jsx)(t.a,{href:"/docs/intro/early-interrupt",children:"early return section"}),", some middlewares might need to stop the whole execution flow and return a response immediately. In this case, if you are writing your own middleware that will work with the Powertools utilities, you must make sure to clean up the utilities before returning."]}),"\n",(0,a.jsxs)(t.p,{children:["For example, if you are using the Tracer utility, you must make sure to call the ",(0,a.jsx)(t.code,{children:"close"})," method so that the Tracer can properly close the current segment and send it to X-Ray. Likewise, if you are using the Metrics utility, it's a good practice to call the ",(0,a.jsx)(t.code,{children:"clearMetrics"})," method so that the Metrics utility can emit the metrics that were stored in the buffer and avoid you losing any data."]}),"\n",(0,a.jsx)(t.p,{children:"Following the example described in the linked section, you can clean up all the utilities by doing the following:"}),"\n",(0,a.jsx)(t.pre,{children:(0,a.jsx)(t.code,{className:"language-javascript",children:"import { cleanupMiddlewares } from '@aws-lambda-powertools/commons';\n\n// some function that calculates the cache id based on the current event\nconst calculateCacheId = (event) => {\n /* ... */\n}\nconst storage = {}\n\n// middleware\nconst cacheMiddleware = (options) => {\n let cacheKey\n\n const cacheMiddlewareBefore = async (request) => {\n cacheKey = options.calculateCacheId(request.event)\n if (options.storage.hasOwnProperty(cacheKey)) {\n // clean up the Powertools utilities before returning\n cleanupMiddlewares()\n\n // exits early and returns the value from the cache if it's already there\n return options.storage[cacheKey]\n }\n }\n\n const cacheMiddlewareAfter = async (request) => {\n // stores the calculated response in the cache\n options.storage[cacheKey] = request.response\n }\n\n return {\n before: cacheMiddlewareBefore,\n after: cacheMiddlewareAfter\n }\n}\n\n// sample usage\nconst handler = middy((event, context) => {\n /* ... */\n})\n.use(captureLambdaHandler(tracer))\n.use(injectLambdaContext(logger, { logEvent: true }))\n.use(logMetrics(metrics, { captureColdStartMetric: true }))\n.use(\n cacheMiddleware({\n calculateCacheId,\n storage\n })\n);\n"})})]})}function m(e={}){const{wrapper:t}={...(0,s.a)(),...e.components};return t?(0,a.jsx)(t,{...e,children:(0,a.jsx)(u,{...e})}):u(e)}},5162:(e,t,n)=>{n.d(t,{Z:()=>o});n(7294);var a=n(6010);const s={tabItem:"tabItem_Ymn6"};var r=n(5893);function o(e){let{children:t,hidden:n,className:o}=e;return(0,r.jsx)("div",{role:"tabpanel",className:(0,a.Z)(s.tabItem,o),hidden:n,children:t})}},4866:(e,t,n)=>{n.d(t,{Z:()=>v});var a=n(7294),s=n(6010),r=n(2466),o=n(6550),l=n(469),i=n(1980),c=n(7392),d=n(12);function h(e){return a.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,a.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function u(e){const{values:t,children:n}=e;return(0,a.useMemo)((()=>{const e=t??function(e){return h(e).map((e=>{let{props:{value:t,label:n,attributes:a,default:s}}=e;return{value:t,label:n,attributes:a,default:s}}))}(n);return function(e){const t=(0,c.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,n])}function m(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function p(e){let{queryString:t=!1,groupId:n}=e;const s=(0,o.k6)(),r=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,i._X)(r),(0,a.useCallback)((e=>{if(!r)return;const t=new URLSearchParams(s.location.search);t.set(r,e),s.replace({...s.location,search:t.toString()})}),[r,s])]}function g(e){const{defaultValue:t,queryString:n=!1,groupId:s}=e,r=u(e),[o,i]=(0,a.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!m({value:t,tabValues:n}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const a=n.find((e=>e.default))??n[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:t,tabValues:r}))),[c,h]=p({queryString:n,groupId:s}),[g,x]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[s,r]=(0,d.Nk)(n);return[s,(0,a.useCallback)((e=>{n&&r.set(e)}),[n,r])]}({groupId:s}),f=(()=>{const e=c??g;return m({value:e,tabValues:r})?e:null})();(0,l.Z)((()=>{f&&i(f)}),[f]);return{selectedValue:o,selectValue:(0,a.useCallback)((e=>{if(!m({value:e,tabValues:r}))throw new Error(`Can't select invalid tab value=${e}`);i(e),h(e),x(e)}),[h,x,r]),tabValues:r}}var x=n(2389);const f={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var j=n(5893);function b(e){let{className:t,block:n,selectedValue:a,selectValue:o,tabValues:l}=e;const i=[],{blockElementScrollPositionUntilNextRender:c}=(0,r.o5)(),d=e=>{const t=e.currentTarget,n=i.indexOf(t),s=l[n].value;s!==a&&(c(t),o(s))},h=e=>{let t=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{const n=i.indexOf(e.currentTarget)+1;t=i[n]??i[0];break}case"ArrowLeft":{const n=i.indexOf(e.currentTarget)-1;t=i[n]??i[i.length-1];break}}t?.focus()};return(0,j.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,s.Z)("tabs",{"tabs--block":n},t),children:l.map((e=>{let{value:t,label:n,attributes:r}=e;return(0,j.jsx)("li",{role:"tab",tabIndex:a===t?0:-1,"aria-selected":a===t,ref:e=>i.push(e),onKeyDown:h,onClick:d,...r,className:(0,s.Z)("tabs__item",f.tabItem,r?.className,{"tabs__item--active":a===t}),children:n??t},t)}))})}function y(e){let{lazy:t,children:n,selectedValue:s}=e;const r=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=r.find((e=>e.props.value===s));return e?(0,a.cloneElement)(e,{className:"margin-top--md"}):null}return(0,j.jsx)("div",{className:"margin-top--md",children:r.map(((e,t)=>(0,a.cloneElement)(e,{key:t,hidden:e.props.value!==s})))})}function w(e){const t=g(e);return(0,j.jsxs)("div",{className:(0,s.Z)("tabs-container",f.tabList),children:[(0,j.jsx)(b,{...e,...t}),(0,j.jsx)(y,{...e,...t})]})}function v(e){const t=(0,x.Z)();return(0,j.jsx)(w,{...e,children:h(e.children)},String(t))}},1151:(e,t,n)=>{n.d(t,{Z:()=>l,a:()=>o});var a=n(7294);const s={},r=a.createContext(s);function o(e){const t=a.useContext(r);return a.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),a.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/c1378803.fdca63ad.js b/assets/js/c1378803.fdca63ad.js deleted file mode 100644 index 90df029b7..000000000 --- a/assets/js/c1378803.fdca63ad.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[7450],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>h});var n=a(7294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function l(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?o(Object(a),!0).forEach((function(t){r(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function i(e,t){if(null==e)return{};var a,n,r=function(e,t){if(null==e)return{};var a,n,r={},o=Object.keys(e);for(n=0;n<o.length;n++)a=o[n],t.indexOf(a)>=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)a=o[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var s=n.createContext({}),c=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},d=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,o=e.originalType,s=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),p=c(a),m=r,h=p["".concat(s,".").concat(m)]||p[m]||u[m]||o;return a?n.createElement(h,l(l({ref:t},d),{},{components:a})):n.createElement(h,l({ref:t},d))}));function h(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=a.length,l=new Array(o);l[0]=m;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[p]="string"==typeof e?e:r,l[1]=i;for(var c=2;c<o;c++)l[c]=a[c];return n.createElement.apply(null,l)}return n.createElement.apply(null,a)}m.displayName="MDXCreateElement"},5162:(e,t,a)=>{a.d(t,{Z:()=>l});var n=a(7294),r=a(6010);const o={tabItem:"tabItem_Ymn6"};function l(e){let{children:t,hidden:a,className:l}=e;return n.createElement("div",{role:"tabpanel",className:(0,r.Z)(o.tabItem,l),hidden:a},t)}},4866:(e,t,a)=>{a.d(t,{Z:()=>v});var n=a(7462),r=a(7294),o=a(6010),l=a(2466),i=a(6550),s=a(1980),c=a(7392),d=a(12);function p(e){return function(e){return r.Children.map(e,(e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:a,attributes:n,default:r}}=e;return{value:t,label:a,attributes:n,default:r}}))}function u(e){const{values:t,children:a}=e;return(0,r.useMemo)((()=>{const e=t??p(a);return function(e){const t=(0,c.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,a])}function m(e){let{value:t,tabValues:a}=e;return a.some((e=>e.value===t))}function h(e){let{queryString:t=!1,groupId:a}=e;const n=(0,i.k6)(),o=function(e){let{queryString:t=!1,groupId:a}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!a)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return a??null}({queryString:t,groupId:a});return[(0,s._X)(o),(0,r.useCallback)((e=>{if(!o)return;const t=new URLSearchParams(n.location.search);t.set(o,e),n.replace({...n.location,search:t.toString()})}),[o,n])]}function g(e){const{defaultValue:t,queryString:a=!1,groupId:n}=e,o=u(e),[l,i]=(0,r.useState)((()=>function(e){let{defaultValue:t,tabValues:a}=e;if(0===a.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!m({value:t,tabValues:a}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${a.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const n=a.find((e=>e.default))??a[0];if(!n)throw new Error("Unexpected error: 0 tabValues");return n.value}({defaultValue:t,tabValues:o}))),[s,c]=h({queryString:a,groupId:n}),[p,g]=function(e){let{groupId:t}=e;const a=function(e){return e?`docusaurus.tab.${e}`:null}(t),[n,o]=(0,d.Nk)(a);return[n,(0,r.useCallback)((e=>{a&&o.set(e)}),[a,o])]}({groupId:n}),y=(()=>{const e=s??p;return m({value:e,tabValues:o})?e:null})();(0,r.useLayoutEffect)((()=>{y&&i(y)}),[y]);return{selectedValue:l,selectValue:(0,r.useCallback)((e=>{if(!m({value:e,tabValues:o}))throw new Error(`Can't select invalid tab value=${e}`);i(e),c(e),g(e)}),[c,g,o]),tabValues:o}}var y=a(2389);const f={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};function b(e){let{className:t,block:a,selectedValue:i,selectValue:s,tabValues:c}=e;const d=[],{blockElementScrollPositionUntilNextRender:p}=(0,l.o5)(),u=e=>{const t=e.currentTarget,a=d.indexOf(t),n=c[a].value;n!==i&&(p(t),s(n))},m=e=>{let t=null;switch(e.key){case"Enter":u(e);break;case"ArrowRight":{const a=d.indexOf(e.currentTarget)+1;t=d[a]??d[0];break}case"ArrowLeft":{const a=d.indexOf(e.currentTarget)-1;t=d[a]??d[d.length-1];break}}t?.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,o.Z)("tabs",{"tabs--block":a},t)},c.map((e=>{let{value:t,label:a,attributes:l}=e;return r.createElement("li",(0,n.Z)({role:"tab",tabIndex:i===t?0:-1,"aria-selected":i===t,key:t,ref:e=>d.push(e),onKeyDown:m,onClick:u},l,{className:(0,o.Z)("tabs__item",f.tabItem,l?.className,{"tabs__item--active":i===t})}),a??t)})))}function k(e){let{lazy:t,children:a,selectedValue:n}=e;const o=(Array.isArray(a)?a:[a]).filter(Boolean);if(t){const e=o.find((e=>e.props.value===n));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},o.map(((e,t)=>(0,r.cloneElement)(e,{key:t,hidden:e.props.value!==n}))))}function w(e){const t=g(e);return r.createElement("div",{className:(0,o.Z)("tabs-container",f.tabList)},r.createElement(b,(0,n.Z)({},e,t)),r.createElement(k,(0,n.Z)({},e,t)))}function v(e){const t=(0,y.Z)();return r.createElement(w,(0,n.Z)({key:String(t)},e))}},9310:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>d,contentTitle:()=>s,default:()=>h,frontMatter:()=>i,metadata:()=>c,toc:()=>p});var n=a(7462),r=(a(7294),a(3905)),o=a(4866),l=a(5162);const i={title:"Powertools for AWS Lambda"},s=void 0,c={unversionedId:"integrations/lambda-powertools",id:"integrations/lambda-powertools",title:"Powertools for AWS Lambda",description:"Powertools for AWS is a developer toolkit to implement Serverless best practices and increase developer velocity.",source:"@site/docs/integrations/lambda-powertools.md",sourceDirName:"integrations",slug:"/integrations/lambda-powertools",permalink:"/docs/integrations/lambda-powertools",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/integrations/lambda-powertools.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",frontMatter:{title:"Powertools for AWS Lambda"},sidebar:"tutorialSidebar",previous:{title:"Apollo Server",permalink:"/docs/integrations/apollo-server"},next:{title:"Pino",permalink:"/docs/integrations/pino"}},d={},p=[{value:"Intro",id:"intro",level:2},{value:"Logger",id:"logger",level:2},{value:"Install",id:"install",level:3},{value:"Options",id:"options",level:3},{value:"Sample usage",id:"sample-usage",level:3},{value:"Tracer",id:"tracer",level:2},{value:"Install",id:"install-1",level:3},{value:"Options",id:"options-1",level:3},{value:"Sample usage",id:"sample-usage-1",level:3},{value:"Metrics",id:"metrics",level:2},{value:"Install",id:"install-2",level:3},{value:"Options",id:"options-2",level:3},{value:"Sample usage",id:"sample-usage-2",level:3},{value:"Idempotency",id:"idempotency",level:2},{value:"Install",id:"install-3",level:3},{value:"Options",id:"options-3",level:3},{value:"Sample usage",id:"sample-usage-3",level:3},{value:"Best practices",id:"best-practices",level:2},{value:"Using multiple utilities",id:"using-multiple-utilities",level:3},{value:"Cleaning up on early returns",id:"cleaning-up-on-early-returns",level:3}],u={toc:p},m="wrapper";function h(e){let{components:t,...a}=e;return(0,r.kt)(m,(0,n.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"Powertools for AWS is a developer toolkit to implement Serverless ",(0,r.kt)("a",{parentName:"p",href:"https://s12d.com/middy-intro"},"best practices and increase developer velocity"),"."),(0,r.kt)("p",null,"You can use Powertools for AWS in both TypeScript and JavaScript code bases."),(0,r.kt)("admonition",{type:"note"},(0,r.kt)("p",{parentName:"admonition"},"Powertools officially supports ",(0,r.kt)("inlineCode",{parentName:"p"},"@middy/core")," v3.x only. In most cases when using Node.js 16 or higher you can use Powertools with ",(0,r.kt)("inlineCode",{parentName:"p"},"@middy/core")," v4.x, however support is provided on a best-effort basis and we recommend using ",(0,r.kt)("inlineCode",{parentName:"p"},"@middy/core")," v3.x.")),(0,r.kt)("h2",{id:"intro"},"Intro"),(0,r.kt)("p",null,"Powertools is a collection of utilities that can be used independently or together to help you build production-ready serverless applications. Currently, Powertools provides the following utilities that are compatible with Middy:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://s12d.com/middy-logger"},(0,r.kt)("strong",{parentName:"a"},"Logger"))," - Structured logging made easier with a middleware to capture key fields from the Lambda context, cold starts, and more. Compatible with Amazon CloudWatch, Datadog, and more."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://s12d.com/middy-tracer"},(0,r.kt)("strong",{parentName:"a"},"Tracer"))," - An opinionated wrapper around AWS X-Ray SDK for Node.js with a middleware to automatically capture traces for function invocations, HTTP requests, and AWS SDK calls, and more."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://s12d.com/middy-metrics"},(0,r.kt)("strong",{parentName:"a"},"Metrics"))," - Create Amazon CloudWatch custom metrics asynchronously with a middleware that takes care of capturing cold starts, and flushes metrics to CloudWatch in ",(0,r.kt)("a",{parentName:"li",href:"https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Embedded_Metric_Format.html"},"EMF-formatted")," batches."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://s12d.com/middy-idempotency"},(0,r.kt)("strong",{parentName:"a"},"Idempotency"))," - Middleware to make your Lambda functions idempotent and prevent duplicate execution based on payload content.")),(0,r.kt)("h2",{id:"logger"},"Logger"),(0,r.kt)("p",null,"Key features:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Capturing key fields from the Lambda context, cold starts, and structure logging output as JSON."),(0,r.kt)("li",{parentName:"ul"},"Logging Lambda invocation events when instructed (disabled by default)."),(0,r.kt)("li",{parentName:"ul"},"Printing all the logs only for a percentage of invocations via log sampling (disabled by default)."),(0,r.kt)("li",{parentName:"ul"},"Appending additional keys to structured logs at any point in time."),(0,r.kt)("li",{parentName:"ul"},"Providing a custom log formatter (Bring Your Own Formatter) to output logs in a structure compatible with your organization\u2019s Logging RFC.")),(0,r.kt)("h3",{id:"install"},"Install"),(0,r.kt)(o.Z,{groupId:"npm2yarn",mdxType:"Tabs"},(0,r.kt)(l.Z,{value:"npm",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"npm install --save @aws-lambda-powertools/logger\n"))),(0,r.kt)(l.Z,{value:"yarn",label:"Yarn",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"yarn add @aws-lambda-powertools/logger\n"))),(0,r.kt)(l.Z,{value:"pnpm",label:"pnpm",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"pnpm add @aws-lambda-powertools/logger\n")))),(0,r.kt)("h3",{id:"options"},"Options"),(0,r.kt)("p",null,"Class constructor accepts the following options, which are all optional:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"logLevel")," (string|LogLevel): Log level to use. Defaults to ",(0,r.kt)("inlineCode",{parentName:"li"},"INFO"),", but you can use any of the following values: ",(0,r.kt)("inlineCode",{parentName:"li"},"SILENT"),", ",(0,r.kt)("inlineCode",{parentName:"li"},"DEBUG"),", ",(0,r.kt)("inlineCode",{parentName:"li"},"INFO"),", ",(0,r.kt)("inlineCode",{parentName:"li"},"WARN"),", ",(0,r.kt)("inlineCode",{parentName:"li"},"ERROR"),", ",(0,r.kt)("inlineCode",{parentName:"li"},"CRITICAL"),"."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"serviceName")," (string): Service name to use that will be used in all log statements. Defaults to ",(0,r.kt)("inlineCode",{parentName:"li"},"service_undefined"),"."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"sampleRateValue")," (number): number between ",(0,r.kt)("inlineCode",{parentName:"li"},"0.0")," and ",(0,r.kt)("inlineCode",{parentName:"li"},"1")," to determine the sample rate for debug logging. Defaults to ",(0,r.kt)("inlineCode",{parentName:"li"},"0")," (no debub logging).")),(0,r.kt)("p",null,"Middleware accepts the following options:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"logger")," (Logger) (required): An instance of the Logger class."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"option")," (object) (optional): An object with the following keys:",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"logEvent")," (boolean) (optional): Whether to log the Lambda invocation event. Defaults to ",(0,r.kt)("inlineCode",{parentName:"li"},"false"),"."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"clearState")," (boolean) (optional): Whether to clear the logger state after each invocation. Defaults to ",(0,r.kt)("inlineCode",{parentName:"li"},"false"),".")))),(0,r.kt)("h3",{id:"sample-usage"},"Sample usage"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core';\nimport { Logger, injectLambdaContext } from '@aws-lambda-powertools/logger';\n\nconst logger = new Logger({ serviceName: 'serverlessAirline' });\n\nconst lambdaHandler = async (_event, _context) => {\n logger.info('This is an INFO log with some context', {\n foo: {\n bar: 'baz'\n }\n });\n};\n\nexport const handler = middy(lambdaHandler)\n .use(injectLambdaContext(logger));\n")),(0,r.kt)("p",null,"The above code will output the following log:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-json"},'{\n "cold_start": true,\n "function_arn": "arn:aws:lambda:eu-west-1:123456789012:function:shopping-cart-api-lambda-prod-eu-west-1",\n "function_memory_size": 128,\n "function_request_id": "c6af9ac6-7b61-11e6-9a41-93e812345678",\n "function_name": "shopping-cart-api-lambda-prod-eu-west-1",\n "level": "INFO",\n "message": "This is an INFO log with some context",\n "foo": {\n "bar": "baz"\n },\n "service": "serverlessAirline",\n "timestamp": "2021-12-12T21:21:08.921Z",\n "xray_trace_id": "abcdef123456abcdef123456abcdef123456"\n}\n')),(0,r.kt)("p",null,"As you can see, the log entry includes several fields that are automatically captured by the Logger utility, and that can help you better understand the context of the log entry. For example, the ",(0,r.kt)("inlineCode",{parentName:"p"},"cold_start")," field indicates whether the Lambda function was cold started or not, and the ",(0,r.kt)("inlineCode",{parentName:"p"},"xray_trace_id")," field contains the AWS X-Ray trace ID for the Lambda invocation. This is useful when you're troubleshooting a problem and want to correlate the logs with the traces."),(0,r.kt)("p",null,"The Logger utility also allows you to append arbitary keys to the log entry at both ",(0,r.kt)("a",{parentName:"p",href:"https://docs.powertools.aws.dev/lambda-typescript/latest/core/logger/#appending-persistent-additional-log-keys-and-values"},"the global level"),", at the ",(0,r.kt)("a",{parentName:"p",href:"https://docs.powertools.aws.dev/lambda-typescript/latest/core/logger/#clearing-all-state"},"invocation level"),", and at the ",(0,r.kt)("a",{parentName:"p",href:"https://docs.powertools.aws.dev/lambda-typescript/latest/core/logger/#appending-additional-data-to-a-single-log-item"},"single log level"),". For example, there might be some keys that you want to include in all log entries, such as the ",(0,r.kt)("inlineCode",{parentName:"p"},"environment")," key to differentiate between the ",(0,r.kt)("inlineCode",{parentName:"p"},"prod")," and ",(0,r.kt)("inlineCode",{parentName:"p"},"dev")," environments, or in other cases you might want to include some keys only for a specific log entry, such as the ",(0,r.kt)("inlineCode",{parentName:"p"},"customer_id")," key to identify the customer that triggered the Lambda invocation."),(0,r.kt)("p",null,"Additionally, you can also configure Logger to ",(0,r.kt)("a",{parentName:"p",href:"https://docs.powertools.aws.dev/lambda-typescript/latest/core/logger/#log-incoming-event"},"log the Lambda invocation event"),", which can be useful when you're troubleshooting a problem and want to see the event that triggered the Lambda invocation. Finally, Logger allows you to ",(0,r.kt)("a",{parentName:"p",href:"https://docs.powertools.aws.dev/lambda-typescript/latest/core/logger/#custom-log-formatter-bring-your-own-formatter"},"define a custom log formatter")," to output logs in a different JSON structure from the default one. This is useful when you want to output logs in a structure that is compatible with your organization's requirements."),(0,r.kt)("h2",{id:"tracer"},"Tracer"),(0,r.kt)("p",null,"Key features:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Auto-capturing cold start and service name as annotations, and responses or full exceptions as metadata."),(0,r.kt)("li",{parentName:"ul"},"Automatically tracing HTTP(S) clients and generating segments for each request."),(0,r.kt)("li",{parentName:"ul"},"Supporting tracing functions via decorators, middleware, and manual instrumentation."),(0,r.kt)("li",{parentName:"ul"},"Supporting tracing AWS SDK v2 and v3 via AWS X-Ray SDK for Node.js."),(0,r.kt)("li",{parentName:"ul"},"Auto-disable tracing when not running in the Lambda environment.")),(0,r.kt)("h3",{id:"install-1"},"Install"),(0,r.kt)(o.Z,{groupId:"npm2yarn",mdxType:"Tabs"},(0,r.kt)(l.Z,{value:"npm",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"npm install --save @aws-lambda-powertools/tracer\n"))),(0,r.kt)(l.Z,{value:"yarn",label:"Yarn",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"yarn add @aws-lambda-powertools/tracer\n"))),(0,r.kt)(l.Z,{value:"pnpm",label:"pnpm",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"pnpm add @aws-lambda-powertools/tracer\n")))),(0,r.kt)("h3",{id:"options-1"},"Options"),(0,r.kt)("p",null,"Class constructor accepts the following options, which are all optional:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"serviceName")," (string): Service name to use that will be used in all log statements. Defaults to ",(0,r.kt)("inlineCode",{parentName:"li"},"service_undefined"),"."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"enabled")," (boolean): Whether to enable tracing. Defaults to ",(0,r.kt)("inlineCode",{parentName:"li"},"true"),"."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"captureHTTPsRequests")," (boolean): Whether to capture outgoing HTTP(S) requests as segment metadata. Defaults to ",(0,r.kt)("inlineCode",{parentName:"li"},"true"),".")),(0,r.kt)("p",null,"Middleware accepts the following options:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"tracer")," (Tracer) (required): An instance of the Tracer class."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"option")," (object) (optional): An object with the following keys:",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"captureResponse")," (boolean) (optional): Whether to capture the Lambda invocation result as segment metadata. Defaults to ",(0,r.kt)("inlineCode",{parentName:"li"},"true"),".")))),(0,r.kt)("h3",{id:"sample-usage-1"},"Sample usage"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core';\nimport { Tracer, captureLambdaHandler } from '@aws-lambda-powertools/tracer';\nimport { SecretsManagerClient } from '@aws-sdk/client-secrets-manager';\n\nconst tracer = new Tracer({\n serviceName: 'serverlessAirline'\n});\n\nconst client = tracer.captureAWSv3Client(\n new SecretsManagerClient({})\n);\n\nconst lambdaHandler = async (_event, _context) => {\n tracer.putAnnotation('successfulBooking', true);\n};\n\nexport const handler = middy(lambdaHandler)\n .use(captureLambdaHandler(tracer));\n")),(0,r.kt)("p",null,"The above code instructs the Tracer utility to create a custom segment named ",(0,r.kt)("inlineCode",{parentName:"p"},"## index.handler")," and to add an annotation to it with the key ",(0,r.kt)("inlineCode",{parentName:"p"},"successfulBooking")," and the value ",(0,r.kt)("inlineCode",{parentName:"p"},"true"),". The segment name is automatically generated based on the handler name, and the ",(0,r.kt)("inlineCode",{parentName:"p"},"##")," prefix is used to indicate that this is a custom segment. The Tracer utility also automatically captures the cold start and service name as annotations, and the Lambda invocation result or any error thrown ",(0,r.kt)("a",{parentName:"p",href:"https://docs.powertools.aws.dev/lambda-typescript/latest/core/tracer/#annotations-metadata"},"as metadata"),". The segment data will be automatically sent to AWS X-Ray when the Lambda function completes its execution."),(0,r.kt)("p",null,"Tracer also automatically ",(0,r.kt)("a",{parentName:"p",href:"https://docs.powertools.aws.dev/lambda-typescript/latest/core/tracer/#tracing-http-requests"},"captures and traces any outgoing HTTP(S) requests")," made by the Lambda function. For example, if your function makes a request to a custom API, the Tracer utility will automatically create a segment for that request which will appear in your trace data and service map. Additionally, it will also ",(0,r.kt)("a",{parentName:"p",href:"https://docs.powertools.aws.dev/lambda-typescript/latest/core/tracer/#patching-aws-sdk-clients"},"capture any AWS SDK calls")," made by the function, and do the same for them."),(0,r.kt)("h2",{id:"metrics"},"Metrics"),(0,r.kt)("p",null,"Key features:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Aggregating up to 100 metrics using a single ",(0,r.kt)("a",{parentName:"li",href:"https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Embedded_Metric_Format.html"},"CloudWatch EMF")," object."),(0,r.kt)("li",{parentName:"ul"},"Validating your metrics against common metric definitions mistakes (for example, metric unit, values, max dimensions, max metrics)."),(0,r.kt)("li",{parentName:"ul"},"Metrics are created asynchronously by the CloudWatch service. You do not need any custom stacks, and there is no impact to Lambda function latency."),(0,r.kt)("li",{parentName:"ul"},"Creating a one-off metric with different dimensions.")),(0,r.kt)("p",null,"If you're new to Amazon CloudWatch, there are a few terms like ",(0,r.kt)("inlineCode",{parentName:"p"},"Namespace"),", ",(0,r.kt)("inlineCode",{parentName:"p"},"Dimensions"),", ",(0,r.kt)("inlineCode",{parentName:"p"},"Unit"),", etc, that you must be aware of before you start using the Metrics utility. To learn more about these terms, see the ",(0,r.kt)("a",{parentName:"p",href:"https://docs.powertools.aws.dev/lambda-typescript/latest/core/metrics/#terminologies"},"documentation on PowerTools Metrics"),"."),(0,r.kt)("h3",{id:"install-2"},"Install"),(0,r.kt)(o.Z,{groupId:"npm2yarn",mdxType:"Tabs"},(0,r.kt)(l.Z,{value:"npm",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"npm install --save @aws-lambda-powertools/metrics\n"))),(0,r.kt)(l.Z,{value:"yarn",label:"Yarn",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"yarn add @aws-lambda-powertools/metrics\n"))),(0,r.kt)(l.Z,{value:"pnpm",label:"pnpm",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"pnpm add @aws-lambda-powertools/metrics\n")))),(0,r.kt)("h3",{id:"options-2"},"Options"),(0,r.kt)("p",null,"Class constructor accepts the following options, which are all optional:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"serviceName")," (string): Service name to use that will be used in all log statements. Defaults to ",(0,r.kt)("inlineCode",{parentName:"li"},"service_undefined"),"."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"defaultNamespace")," (string): Default namespace to use for all metrics. Defaults to ",(0,r.kt)("inlineCode",{parentName:"li"},"default_namespace"),".")),(0,r.kt)("p",null,"Middleware accepts the following options:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"metrics")," (Metric) (required): An instance of the Metrics class."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"option")," (object) (optional): An object with the following keys:",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"throwOnEmptyMetrics")," (boolean) (optional): Whether to throw an error if no metrics were added. Defaults to ",(0,r.kt)("inlineCode",{parentName:"li"},"false"),"."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"captureColdStartMetric")," (boolean) (optional): Whether to capture the cold start metric. Defaults to ",(0,r.kt)("inlineCode",{parentName:"li"},"true"),".")))),(0,r.kt)("h3",{id:"sample-usage-2"},"Sample usage"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core';\nimport { Metrics, MetricUnits, logMetrics } from '@aws-lambda-powertools/metrics';\n\nconst metrics = new Metrics({\n namespace: 'serverlessAirline',\n serviceName: 'orders'\n});\n\nconst lambdaHandler = async (_event: unknown, _context: unknown): Promise<void> => {\n metrics.addMetric('successfulBooking', MetricUnits.Count, 1);\n};\n\nexport const handler = middy(lambdaHandler)\n .use(logMetrics(metrics));\n")),(0,r.kt)("p",null,"The above code will output a CloudWatch EMF object similar to the following:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-json"},'{\n "successfulBooking": 1.0,\n "_aws": {\n "Timestamp": 1592234975665,\n "CloudWatchMetrics": [{\n "Namespace": "successfulBooking",\n "Dimensions": [\n [ "service" ]\n ],\n "Metrics": [{\n "Name": "successfulBooking",\n "Unit": "Count"\n }]\n }],\n "service": "orders"\n }\n}\n')),(0,r.kt)("p",null,"This EMF object will be sent to CloudWatch asynchronously by the CloudWatch service. You do not need any custom stacks, and there is no impact to Lambda function latency."),(0,r.kt)("p",null,"The Metrics utility supports ",(0,r.kt)("a",{parentName:"p",href:"https://docs.powertools.aws.dev/lambda-typescript/latest/core/metrics/#adding-high-resolution-metrics"},"high-resolution metrics")," as well as ",(0,r.kt)("a",{parentName:"p",href:"https://docs.powertools.aws.dev/lambda-typescript/latest/core/metrics/#adding-multi-value-metrics"},"multi-value metrics"),". It also allows you to add ",(0,r.kt)("a",{parentName:"p",href:"https://docs.powertools.aws.dev/lambda-typescript/latest/core/metrics/#adding-default-dimensions"},"default dimensions")," that are used in all the metrics emitted by your application or ",(0,r.kt)("a",{parentName:"p",href:"https://docs.powertools.aws.dev/lambda-typescript/latest/core/metrics/#single-metric-with-different-dimensions"},"create a one-off metric")," with different dimensions."),(0,r.kt)("h2",{id:"idempotency"},"Idempotency"),(0,r.kt)("p",null,"Key features:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Prevent Lambda handler from executing more than once on the same event payload during a time window"),(0,r.kt)("li",{parentName:"ul"},"Ensure Lambda handler returns the same result when called with the same payload"),(0,r.kt)("li",{parentName:"ul"},"Select a subset of the event as the idempotency key using JMESPath expressions"),(0,r.kt)("li",{parentName:"ul"},"Set a time window in which records with the same payload should be considered duplicates"),(0,r.kt)("li",{parentName:"ul"},"Expires in-progress executions if the Lambda function times out halfway through")),(0,r.kt)("p",null,"The property of idempotency means that an operation does not cause additional side effects if it is called more than once with the same input parameters. Idempotent operations will return the same result when they are called multiple times with the same parameters. This makes idempotent operations safe to retry."),(0,r.kt)("h3",{id:"install-3"},"Install"),(0,r.kt)(o.Z,{groupId:"npm2yarn",mdxType:"Tabs"},(0,r.kt)(l.Z,{value:"npm",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"npm install --save @aws-lambda-powertools/idempotency @aws-sdk/client-dynamodb @aws-sdk/lib-dynamodb\n"))),(0,r.kt)(l.Z,{value:"yarn",label:"Yarn",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"yarn add @aws-lambda-powertools/idempotency @aws-sdk/client-dynamodb @aws-sdk/lib-dynamodb\n"))),(0,r.kt)(l.Z,{value:"pnpm",label:"pnpm",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"pnpm add @aws-lambda-powertools/idempotency @aws-sdk/client-dynamodb @aws-sdk/lib-dynamodb\n")))),(0,r.kt)("h3",{id:"options-3"},"Options"),(0,r.kt)("p",null,"Middleware accepts the following options:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"persistenceStore")," (",(0,r.kt)("a",{parentName:"li",href:"https://docs.powertools.aws.dev/lambda/typescript/latest/api/classes/_aws_lambda_powertools_idempotency.persistence.BasePersistenceLayer.html"},(0,r.kt)("inlineCode",{parentName:"a"},"BasePersistenceLayer")),"): Class used to interact with a ",(0,r.kt)("a",{parentName:"li",href:"https://docs.powertools.aws.dev/lambda/typescript/latest/utilities/idempotency/#persistence-layers"},"persistence store"),"."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"config")," (",(0,r.kt)("a",{parentName:"li",href:"https://docs.powertools.aws.dev/lambda/typescript/latest/api/classes/_aws_lambda_powertools_idempotency.index.IdempotencyConfig.html"},(0,r.kt)("inlineCode",{parentName:"a"},"IdempotencyConfig")),") (optional): Configuration object to customize the ",(0,r.kt)("a",{parentName:"li",href:"https://docs.powertools.aws.dev/lambda/typescript/latest/utilities/idempotency/#customizing-the-default-behavior"},"default behavior")," of the idempotency feature.")),(0,r.kt)("h3",{id:"sample-usage-3"},"Sample usage"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core';\nimport { randomUUID } from 'node:crypto';\nimport { makeHandlerIdempotent } from '@aws-lambda-powertools/idempotency/middleware';\nimport { DynamoDBPersistenceLayer } from '@aws-lambda-powertools/idempotency/dynamodb';\n\nconst persistenceStore = new DynamoDBPersistenceLayer({\n tableName: 'idempotencyTableName',\n});\n\nconst createSubscriptionPayment = async (\n event\n) => {\n // ... create payment\n return {\n id: randomUUID(),\n productId: event.productId,\n };\n};\n\nexport const handler = middy(\n async (event, _context) => {\n try {\n const payment = await createSubscriptionPayment(event);\n\n return {\n paymentId: payment.id,\n message: 'success',\n statusCode: 200,\n };\n } catch (error) {\n throw new Error('Error creating payment');\n }\n }\n).use(\n makeHandlerIdempotent({\n persistenceStore,\n })\n);\n")),(0,r.kt)("h2",{id:"best-practices"},"Best practices"),(0,r.kt)("h3",{id:"using-multiple-utilities"},"Using multiple utilities"),(0,r.kt)("p",null,"You can use multiple Powertools utilities in your Lambda function by chaining the respective middlewares together. When doing so the Powertools team recommends that you place the Tracer middleware at the top of the middleware chain, followed by the Logger and any other middlewares."),(0,r.kt)("p",null,"This is because the Tracer middleware will create a new segment for each Lambda invocation, and the Logger might want to log the event that triggered the Lambda invocation. With this placement you will be able to have a segment that closely matches the actual duration of your Lambda function, and you will be able to see the event that triggered the function invocation before it's potentially modified by other middlewares."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-javascript"},"export const handler = middy(() => { /* ... */ })\n .use(captureLambdaHandler(tracer))\n .use(injectLambdaContext(logger, { logEvent: true }))\n .use(logMetrics(metrics, { captureColdStartMetric: true }));\n")),(0,r.kt)("h3",{id:"cleaning-up-on-early-returns"},"Cleaning up on early returns"),(0,r.kt)("p",null,"As discussed in the ",(0,r.kt)("a",{parentName:"p",href:"/docs/intro/early-interrupt"},"early return section"),", some middlewares might need to stop the whole execution flow and return a response immediately. In this case, if you are writing your own middleware that will work with the Powertools utilities, you must make sure to clean up the utilities before returning."),(0,r.kt)("p",null,"For example, if you are using the Tracer utility, you must make sure to call the ",(0,r.kt)("inlineCode",{parentName:"p"},"close")," method so that the Tracer can properly close the current segment and send it to X-Ray. Likewise, if you are using the Metrics utility, it's a good practice to call the ",(0,r.kt)("inlineCode",{parentName:"p"},"clearMetrics")," method so that the Metrics utility can emit the metrics that were stored in the buffer and avoid you losing any data."),(0,r.kt)("p",null,"Following the example described in the linked section, you can clean up all the utilities by doing the following:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-javascript"},"import { cleanupMiddlewares } from '@aws-lambda-powertools/commons';\n\n// some function that calculates the cache id based on the current event\nconst calculateCacheId = (event) => {\n /* ... */\n}\nconst storage = {}\n\n// middleware\nconst cacheMiddleware = (options) => {\n let cacheKey\n\n const cacheMiddlewareBefore = async (request) => {\n cacheKey = options.calculateCacheId(request.event)\n if (options.storage.hasOwnProperty(cacheKey)) {\n // clean up the Powertools utilities before returning\n cleanupMiddlewares()\n\n // exits early and returns the value from the cache if it's already there\n return options.storage[cacheKey]\n }\n }\n\n const cacheMiddlewareAfter = async (request) => {\n // stores the calculated response in the cache\n options.storage[cacheKey] = request.response\n }\n\n return {\n before: cacheMiddlewareBefore,\n after: cacheMiddlewareAfter\n }\n}\n\n// sample usage\nconst handler = middy((event, context) => {\n /* ... */\n})\n.use(captureLambdaHandler(tracer))\n.use(injectLambdaContext(logger, { logEvent: true }))\n.use(logMetrics(metrics, { captureColdStartMetric: true }))\n.use(\n cacheMiddleware({\n calculateCacheId,\n storage\n })\n);\n")))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c21432a2.2489ca26.js b/assets/js/c21432a2.2489ca26.js new file mode 100644 index 000000000..72bff993b --- /dev/null +++ b/assets/js/c21432a2.2489ca26.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[1570],{1964:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>r,default:()=>m,frontMatter:()=>s,metadata:()=>i,toc:()=>l});var a=t(5893),o=t(1151);const s={title:"Streamify Response",position:5},r=void 0,i={id:"intro/streamify-response",title:"Streamify Response",description:"Middy also supports streamed responses.",source:"@site/docs/intro/06-streamify-response.md",sourceDirName:"intro",slug:"/intro/streamify-response",permalink:"/docs/intro/streamify-response",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/intro/06-streamify-response.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",sidebarPosition:6,frontMatter:{title:"Streamify Response",position:5},sidebar:"tutorialSidebar",previous:{title:"Handling Errors",permalink:"/docs/intro/handling-errors"},next:{title:"Testing",permalink:"/docs/intro/testing"}},d={},l=[{value:"Lambda Function URL Example",id:"lambda-function-url-example",level:2},{value:"Lambda InvokeWithResponseStream Example",id:"lambda-invokewithresponsestream-example",level:2},{value:"Requesting Lambda",id:"requesting-lambda",level:3}];function c(e){const n={a:"a",blockquote:"blockquote",code:"code",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",pre:"pre",ul:"ul",...(0,o.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(n.p,{children:"Middy also supports streamed responses."}),"\n",(0,a.jsxs)(n.blockquote,{children:["\n",(0,a.jsxs)(n.p,{children:["You can progressively stream response payloads through Lambda function URLs, including as an Amazon CloudFront origin, along with using the AWS SDK or using Lambda\u2019s invoke API. You can not use Amazon API Gateway and Application Load Balancer to progressively stream response payloads, but you can use the functionality to return larger payloads. (",(0,a.jsx)(n.a,{href:"https://aws.amazon.com/blogs/compute/introducing-aws-lambda-response-streaming/",children:"https://aws.amazon.com/blogs/compute/introducing-aws-lambda-response-streaming/"}),")"]}),"\n"]}),"\n",(0,a.jsxs)(n.ol,{children:["\n",(0,a.jsxs)(n.li,{children:["Set ",(0,a.jsx)(n.code,{children:"streamifyResponse: true"})," into middy options"]}),"\n",(0,a.jsx)(n.li,{children:"a. For HTTP Events return using an HTTP event response with the body as a string or ReadableStream.\nb. For InvokeWithResponseStream Events return a response with a string or ReadableStream."}),"\n"]}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsxs)(n.li,{children:["API Gateway: If you're getting a ",(0,a.jsx)(n.code,{children:"500"})," status code. Be sure to set your integration to ",(0,a.jsx)(n.code,{children:"HTTP_PROXY"})," over ",(0,a.jsx)(n.code,{children:"LAMBDA_PROXY"})," and enable Function URL on the lambda."]}),"\n",(0,a.jsxs)(n.li,{children:["Function URLs: If receiving no content and non-200 status code are being converted to ",(0,a.jsx)(n.code,{children:"200"}),". Be sure to set ",(0,a.jsx)(n.code,{children:"Invoke Mode"})," to ",(0,a.jsx)(n.code,{children:"RESPONSE_STREAM"})," over ",(0,a.jsx)(n.code,{children:"BUFFERED"}),"."]}),"\n"]}),"\n",(0,a.jsx)(n.h2,{id:"lambda-function-url-example",children:"Lambda Function URL Example"}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-javascript",children:"import middy from '@middy/core'\nimport { createReadableStream } from '@datastream/core'\n\nconst lambdaHandler = (event, context) => {\n return {\n statusCode: 200,\n headers: {\n 'Content-Type': 'text/csv'\n },\n body: createReadableStream('...') // or string\n }\n}\n\nexport const handler = middy({ streamifyResponse: true }).handler(lambdaHandler)\n"})}),"\n",(0,a.jsx)(n.h2,{id:"lambda-invokewithresponsestream-example",children:"Lambda InvokeWithResponseStream Example"}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-javascript",children:"import middy from '@middy/core'\nimport { createReadableStream } from '@datastream/core'\n\nconst lambdaHandler = (event, context) => {\n return createReadableStream('...') // or string\n}\nexport const handler = middy({ streamifyResponse: true }).handler(lambdaHandler)\n"})}),"\n",(0,a.jsx)(n.h3,{id:"requesting-lambda",children:"Requesting Lambda"}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-javascript",children:"import {\n LambdaClient,\n InvokeWithResponseStreamCommand\n} from '@aws-sdk/client-lambda'\n\nconst lambda = new LambdaClient()\n\nconst res = await lambda.send(\n new InvokeWithResponseStreamCommand({\n FunctionName: 'function-name',\n Payload: JSON.stringify({...})\n })\n)\n\nconst decoder = new TextDecoder('utf-8')\nlet body = ''\nfor await (const chunk of res.EventStream) {\n if (chunk?.PayloadChunk?.Payload) {\n body += decoder.decode(Buffer.from(chunk.PayloadChunk.Payload))\n }\n}\n"})})]})}function m(e={}){const{wrapper:n}={...(0,o.a)(),...e.components};return n?(0,a.jsx)(n,{...e,children:(0,a.jsx)(c,{...e})}):c(e)}},1151:(e,n,t)=>{t.d(n,{Z:()=>i,a:()=>r});var a=t(7294);const o={},s=a.createContext(o);function r(e){const n=a.useContext(s);return a.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:r(e.components),a.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/c21432a2.6e01ed11.js b/assets/js/c21432a2.6e01ed11.js deleted file mode 100644 index e7356ba32..000000000 --- a/assets/js/c21432a2.6e01ed11.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[1570],{3905:(e,t,n)=>{n.d(t,{Zo:()=>m,kt:()=>y});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),d=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},m=function(e){var t=d(e.components);return r.createElement(l.Provider,{value:t},e.children)},p="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,m=s(e,["components","mdxType","originalType","parentName"]),p=d(n),u=a,y=p["".concat(l,".").concat(u)]||p[u]||c[u]||o;return n?r.createElement(y,i(i({ref:t},m),{},{components:n})):r.createElement(y,i({ref:t},m))}));function y(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=u;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[p]="string"==typeof e?e:a,i[1]=s;for(var d=2;d<o;d++)i[d]=n[d];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}u.displayName="MDXCreateElement"},8112:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>c,frontMatter:()=>o,metadata:()=>s,toc:()=>d});var r=n(7462),a=(n(7294),n(3905));const o={title:"Streamify Response",position:5},i=void 0,s={unversionedId:"intro/streamify-response",id:"intro/streamify-response",title:"Streamify Response",description:"Middy also supports streamed responses.",source:"@site/docs/intro/06-streamify-response.md",sourceDirName:"intro",slug:"/intro/streamify-response",permalink:"/docs/intro/streamify-response",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/intro/06-streamify-response.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",sidebarPosition:6,frontMatter:{title:"Streamify Response",position:5},sidebar:"tutorialSidebar",previous:{title:"Handling Errors",permalink:"/docs/intro/handling-errors"},next:{title:"Testing",permalink:"/docs/intro/testing"}},l={},d=[{value:"Lambda Function URL Example",id:"lambda-function-url-example",level:2},{value:"Lambda InvokeWithResponseStream Example",id:"lambda-invokewithresponsestream-example",level:2},{value:"Requesting Lambda",id:"requesting-lambda",level:3}],m={toc:d},p="wrapper";function c(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,r.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"Middy also supports streamed responses."),(0,a.kt)("blockquote",null,(0,a.kt)("p",{parentName:"blockquote"},"You can progressively stream response payloads through Lambda function URLs, including as an Amazon CloudFront origin, along with using the AWS SDK or using Lambda\u2019s invoke API. You can not use Amazon API Gateway and Application Load Balancer to progressively stream response payloads, but you can use the functionality to return larger payloads. (",(0,a.kt)("a",{parentName:"p",href:"https://aws.amazon.com/blogs/compute/introducing-aws-lambda-response-streaming/"},"https://aws.amazon.com/blogs/compute/introducing-aws-lambda-response-streaming/"),")")),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"Set ",(0,a.kt)("inlineCode",{parentName:"li"},"streamifyResponse: true")," into middy options"),(0,a.kt)("li",{parentName:"ol"},"a. For HTTP Events return using an HTTP event response with the body as a string or ReadableStream.\nb. For InvokeWithResponseStream Events return a response with a string or ReadableStream.")),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"API Gateway: If you're getting a ",(0,a.kt)("inlineCode",{parentName:"li"},"500")," status code. Be sure to set your integration to ",(0,a.kt)("inlineCode",{parentName:"li"},"HTTP_PROXY")," over ",(0,a.kt)("inlineCode",{parentName:"li"},"LAMBDA_PROXY")," and enable Function URL on the lambda."),(0,a.kt)("li",{parentName:"ul"},"Function URLs: If receiving no content and non-200 status code are being converted to ",(0,a.kt)("inlineCode",{parentName:"li"},"200"),". Be sure to set ",(0,a.kt)("inlineCode",{parentName:"li"},"Invoke Mode")," to ",(0,a.kt)("inlineCode",{parentName:"li"},"RESPONSE_STREAM")," over ",(0,a.kt)("inlineCode",{parentName:"li"},"BUFFERED"),".")),(0,a.kt)("h2",{id:"lambda-function-url-example"},"Lambda Function URL Example"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\nimport { createReadableStream } from '@datastream/core'\n\nexport const handler = middy({ streamifyResponse: true }).handler(\n (event, context) => {\n return {\n statusCode: 200,\n headers: {\n 'Content-Type': 'text/csv'\n },\n body: createReadableStream('...') // or string\n }\n }\n)\n")),(0,a.kt)("h2",{id:"lambda-invokewithresponsestream-example"},"Lambda InvokeWithResponseStream Example"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\nimport { createReadableStream } from '@datastream/core'\n\nexport const handler = middy({ streamifyResponse: true }).handler(\n (event, context) => {\n return createReadableStream('...') // or string\n }\n)\n")),(0,a.kt)("h3",{id:"requesting-lambda"},"Requesting Lambda"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-javascript"},"import {\n LambdaClient,\n InvokeWithResponseStreamCommand\n} from '@aws-sdk/client-lambda'\n\nconst lambda = new LambdaClient()\n\nconst res = await lambda.send(\n new InvokeWithResponseStreamCommand({\n FunctionName: 'function-name',\n Payload: JSON.stringify({...})\n })\n)\n\nconst decoder = new TextDecoder('utf-8')\nlet body = ''\nfor await (const chunk of res.EventStream) {\n if (chunk?.PayloadChunk?.Payload) {\n body += decoder.decode(Buffer.from(chunk.PayloadChunk.Payload))\n }\n}\n")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c2371ba7.0fb54ba7.js b/assets/js/c2371ba7.0fb54ba7.js new file mode 100644 index 000000000..c5aeb28eb --- /dev/null +++ b/assets/js/c2371ba7.0fb54ba7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[7724],{3675:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>o,default:()=>h,frontMatter:()=>l,metadata:()=>d,toc:()=>u});var r=t(5893),a=t(1151),s=t(4866),i=t(5162);const l={title:"http-response-serializer"},o=void 0,d={id:"middlewares/http-response-serializer",title:"http-response-serializer",description:"The Http Serializer middleware lets you define serialization mechanisms based on the current content negotiation.",source:"@site/docs/middlewares/http-response-serializer.md",sourceDirName:"middlewares",slug:"/middlewares/http-response-serializer",permalink:"/docs/middlewares/http-response-serializer",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/middlewares/http-response-serializer.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",frontMatter:{title:"http-response-serializer"},sidebar:"tutorialSidebar",previous:{title:"http-partial-response",permalink:"/docs/middlewares/http-partial-response"},next:{title:"http-security-headers",permalink:"/docs/middlewares/http-security-headers"}},c={},u=[{value:"Install",id:"install",level:2},{value:"Options",id:"options",level:2},{value:"Configuration",id:"configuration",level:2},{value:"Serializer Functions",id:"serializer-functions",level:2},{value:"Content Type Negotiation",id:"content-type-negotiation",level:2},{value:"Sample usage",id:"sample-usage",level:2}];function p(e){const n={a:"a",code:"code",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,a.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.p,{children:"The Http Serializer middleware lets you define serialization mechanisms based on the current content negotiation."}),"\n",(0,r.jsx)(n.h2,{id:"install",children:"Install"}),"\n",(0,r.jsx)(n.p,{children:"To install this middleware you can use NPM:"}),"\n",(0,r.jsxs)(s.Z,{groupId:"npm2yarn",children:[(0,r.jsx)(i.Z,{value:"npm",children:(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"npm install --save @middy/http-response-serializer\n"})})}),(0,r.jsx)(i.Z,{value:"yarn",label:"Yarn",children:(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"yarn add @middy/http-response-serializer\n"})})}),(0,r.jsx)(i.Z,{value:"pnpm",label:"pnpm",children:(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"pnpm add @middy/http-response-serializer\n"})})})]}),"\n",(0,r.jsx)(n.h2,{id:"options",children:"Options"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"defaultContentType"})," (optional): used if the request and handler don't specify what type is wanted."]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"configuration",children:"Configuration"}),"\n",(0,r.jsxs)(n.p,{children:["The middleware is configured by defining some ",(0,r.jsx)(n.code,{children:"serializers"}),"."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-javascript",children:"{\n serializers: [\n {\n regex: /^application\\/xml$/,\n serializer: ({ body }) => `<message>${body}</message>`,\n },\n {\n regex: /^application\\/json$/,\n serializer: ({ body }) => JSON.stringify(body)\n },\n {\n regex: /^text\\/plain$/,\n serializer: ({ body }) => body\n }\n ],\n defaultContentType: 'application/json'\n}\n"})}),"\n",(0,r.jsx)(n.h2,{id:"serializer-functions",children:"Serializer Functions"}),"\n",(0,r.jsxs)(n.p,{children:["When a matching serializer is found, the ",(0,r.jsx)(n.code,{children:"Content-Type"})," header is set and the serializer function is run."]}),"\n",(0,r.jsxs)(n.p,{children:["The function is passed the entire ",(0,r.jsx)(n.code,{children:"response"})," object, and should return either a string or an object."]}),"\n",(0,r.jsxs)(n.p,{children:["If a string is returned, the ",(0,r.jsx)(n.code,{children:"body"})," attribute of the response is updated."]}),"\n",(0,r.jsxs)(n.p,{children:["If an object with a ",(0,r.jsx)(n.code,{children:"body"})," attribute is returned, the entire response object is replaced. This is useful if you want to manipulate headers or add additional attributes in the Lambda response."]}),"\n",(0,r.jsx)(n.h2,{id:"content-type-negotiation",children:"Content Type Negotiation"}),"\n",(0,r.jsx)(n.p,{children:"The header is not the only way the middleware decides which serializer to execute."}),"\n",(0,r.jsx)(n.p,{children:"The content type is determined in the following order:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"context.requiredContentType"})," -- allows the handler to override everything else"]}),"\n",(0,r.jsxs)(n.li,{children:["The ",(0,r.jsx)(n.code,{children:"Accept"})," header via ",(0,r.jsx)(n.a,{href:"https://www.npmjs.com/package/accept",children:"accept"})]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"context.preferredContentType"})," -- allows the handler to override the default, but lets the request ask first"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"defaultContentType"})," middleware configuration"]}),"\n"]}),"\n",(0,r.jsxs)(n.p,{children:["All options allow for multiple types to be specified in your order of preference, and the first matching serializer will be executed.\nWhen planning to use ",(0,r.jsx)(n.code,{children:"Accept"}),", an external input, it is recommended to validate that it is an expected value."]}),"\n",(0,r.jsx)(n.h2,{id:"sample-usage",children:"Sample usage"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-javascript",children:"import middy from '@middy/core'\nimport httpResponseSerializer from '@middy/http-response-serializer'\n\nconst lambdaHandler = (event, context) => {\n const body = 'Hello World'\n\n return {\n statusCode: 200,\n body\n }\n}\n\nexport const handler = middy()\n .use(\n httpResponseSerializer({\n serializers: [\n {\n regex: /^application\\/xml$/,\n serializer: ({ body }) => `<message>${body}</message>`\n },\n {\n regex: /^application\\/json$/,\n serializer: ({ body }) => JSON.stringify(body)\n },\n {\n regex: /^text\\/plain$/,\n serializer: ({ body }) => body\n }\n ],\n defaultContentType: 'application/json'\n })\n )\n .handler(lambdaHandler)\n\nconst event = {\n headers: {\n Accept: 'application/xml;q=0.9, text/x-dvi; q=0.8, text/x-c'\n }\n}\n\nhandler(event, {}, (_, response) => {\n t.is(response.body, '<message>Hello World</message>')\n})\n"})})]})}function h(e={}){const{wrapper:n}={...(0,a.a)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(p,{...e})}):p(e)}},5162:(e,n,t)=>{t.d(n,{Z:()=>i});t(7294);var r=t(6010);const a={tabItem:"tabItem_Ymn6"};var s=t(5893);function i(e){let{children:n,hidden:t,className:i}=e;return(0,s.jsx)("div",{role:"tabpanel",className:(0,r.Z)(a.tabItem,i),hidden:t,children:n})}},4866:(e,n,t)=>{t.d(n,{Z:()=>w});var r=t(7294),a=t(6010),s=t(2466),i=t(6550),l=t(469),o=t(1980),d=t(7392),c=t(12);function u(e){return r.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function p(e){const{values:n,children:t}=e;return(0,r.useMemo)((()=>{const e=n??function(e){return u(e).map((e=>{let{props:{value:n,label:t,attributes:r,default:a}}=e;return{value:n,label:t,attributes:r,default:a}}))}(t);return function(e){const n=(0,d.l)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[n,t])}function h(e){let{value:n,tabValues:t}=e;return t.some((e=>e.value===n))}function m(e){let{queryString:n=!1,groupId:t}=e;const a=(0,i.k6)(),s=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t});return[(0,o._X)(s),(0,r.useCallback)((e=>{if(!s)return;const n=new URLSearchParams(a.location.search);n.set(s,e),a.replace({...a.location,search:n.toString()})}),[s,a])]}function f(e){const{defaultValue:n,queryString:t=!1,groupId:a}=e,s=p(e),[i,o]=(0,r.useState)((()=>function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(n){if(!h({value:n,tabValues:t}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const r=t.find((e=>e.default))??t[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:n,tabValues:s}))),[d,u]=m({queryString:t,groupId:a}),[f,b]=function(e){let{groupId:n}=e;const t=function(e){return e?`docusaurus.tab.${e}`:null}(n),[a,s]=(0,c.Nk)(t);return[a,(0,r.useCallback)((e=>{t&&s.set(e)}),[t,s])]}({groupId:a}),x=(()=>{const e=d??f;return h({value:e,tabValues:s})?e:null})();(0,l.Z)((()=>{x&&o(x)}),[x]);return{selectedValue:i,selectValue:(0,r.useCallback)((e=>{if(!h({value:e,tabValues:s}))throw new Error(`Can't select invalid tab value=${e}`);o(e),u(e),b(e)}),[u,b,s]),tabValues:s}}var b=t(2389);const x={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var y=t(5893);function g(e){let{className:n,block:t,selectedValue:r,selectValue:i,tabValues:l}=e;const o=[],{blockElementScrollPositionUntilNextRender:d}=(0,s.o5)(),c=e=>{const n=e.currentTarget,t=o.indexOf(n),a=l[t].value;a!==r&&(d(n),i(a))},u=e=>{let n=null;switch(e.key){case"Enter":c(e);break;case"ArrowRight":{const t=o.indexOf(e.currentTarget)+1;n=o[t]??o[0];break}case"ArrowLeft":{const t=o.indexOf(e.currentTarget)-1;n=o[t]??o[o.length-1];break}}n?.focus()};return(0,y.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,a.Z)("tabs",{"tabs--block":t},n),children:l.map((e=>{let{value:n,label:t,attributes:s}=e;return(0,y.jsx)("li",{role:"tab",tabIndex:r===n?0:-1,"aria-selected":r===n,ref:e=>o.push(e),onKeyDown:u,onClick:c,...s,className:(0,a.Z)("tabs__item",x.tabItem,s?.className,{"tabs__item--active":r===n}),children:t??n},n)}))})}function v(e){let{lazy:n,children:t,selectedValue:a}=e;const s=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){const e=s.find((e=>e.props.value===a));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return(0,y.jsx)("div",{className:"margin-top--md",children:s.map(((e,n)=>(0,r.cloneElement)(e,{key:n,hidden:e.props.value!==a})))})}function j(e){const n=f(e);return(0,y.jsxs)("div",{className:(0,a.Z)("tabs-container",x.tabList),children:[(0,y.jsx)(g,{...e,...n}),(0,y.jsx)(v,{...e,...n})]})}function w(e){const n=(0,b.Z)();return(0,y.jsx)(j,{...e,children:u(e.children)},String(n))}},1151:(e,n,t)=>{t.d(n,{Z:()=>l,a:()=>i});var r=t(7294);const a={},s=r.createContext(a);function i(e){const n=r.useContext(s);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:i(e.components),r.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/c2371ba7.35440969.js b/assets/js/c2371ba7.35440969.js deleted file mode 100644 index a53618c14..000000000 --- a/assets/js/c2371ba7.35440969.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[7724],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>f});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function o(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),u=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},p=function(e){var t=u(e.components);return r.createElement(s.Provider,{value:t},e.children)},d="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,s=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),d=u(n),m=a,f=d["".concat(s,".").concat(m)]||d[m]||c[m]||i;return n?r.createElement(f,l(l({ref:t},p),{},{components:n})):r.createElement(f,l({ref:t},p))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,l=new Array(i);l[0]=m;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[d]="string"==typeof e?e:a,l[1]=o;for(var u=2;u<i;u++)l[u]=n[u];return r.createElement.apply(null,l)}return r.createElement.apply(null,n)}m.displayName="MDXCreateElement"},5162:(e,t,n)=>{n.d(t,{Z:()=>l});var r=n(7294),a=n(6010);const i={tabItem:"tabItem_Ymn6"};function l(e){let{children:t,hidden:n,className:l}=e;return r.createElement("div",{role:"tabpanel",className:(0,a.Z)(i.tabItem,l),hidden:n},t)}},4866:(e,t,n)=>{n.d(t,{Z:()=>w});var r=n(7462),a=n(7294),i=n(6010),l=n(2466),o=n(6550),s=n(1980),u=n(7392),p=n(12);function d(e){return function(e){return a.Children.map(e,(e=>{if(!e||(0,a.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:r,default:a}}=e;return{value:t,label:n,attributes:r,default:a}}))}function c(e){const{values:t,children:n}=e;return(0,a.useMemo)((()=>{const e=t??d(n);return function(e){const t=(0,u.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,n])}function m(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:n}=e;const r=(0,o.k6)(),i=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,s._X)(i),(0,a.useCallback)((e=>{if(!i)return;const t=new URLSearchParams(r.location.search);t.set(i,e),r.replace({...r.location,search:t.toString()})}),[i,r])]}function h(e){const{defaultValue:t,queryString:n=!1,groupId:r}=e,i=c(e),[l,o]=(0,a.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!m({value:t,tabValues:n}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const r=n.find((e=>e.default))??n[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:t,tabValues:i}))),[s,u]=f({queryString:n,groupId:r}),[d,h]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[r,i]=(0,p.Nk)(n);return[r,(0,a.useCallback)((e=>{n&&i.set(e)}),[n,i])]}({groupId:r}),b=(()=>{const e=s??d;return m({value:e,tabValues:i})?e:null})();(0,a.useLayoutEffect)((()=>{b&&o(b)}),[b]);return{selectedValue:l,selectValue:(0,a.useCallback)((e=>{if(!m({value:e,tabValues:i}))throw new Error(`Can't select invalid tab value=${e}`);o(e),u(e),h(e)}),[u,h,i]),tabValues:i}}var b=n(2389);const y={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};function g(e){let{className:t,block:n,selectedValue:o,selectValue:s,tabValues:u}=e;const p=[],{blockElementScrollPositionUntilNextRender:d}=(0,l.o5)(),c=e=>{const t=e.currentTarget,n=p.indexOf(t),r=u[n].value;r!==o&&(d(t),s(r))},m=e=>{let t=null;switch(e.key){case"Enter":c(e);break;case"ArrowRight":{const n=p.indexOf(e.currentTarget)+1;t=p[n]??p[0];break}case"ArrowLeft":{const n=p.indexOf(e.currentTarget)-1;t=p[n]??p[p.length-1];break}}t?.focus()};return a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,i.Z)("tabs",{"tabs--block":n},t)},u.map((e=>{let{value:t,label:n,attributes:l}=e;return a.createElement("li",(0,r.Z)({role:"tab",tabIndex:o===t?0:-1,"aria-selected":o===t,key:t,ref:e=>p.push(e),onKeyDown:m,onClick:c},l,{className:(0,i.Z)("tabs__item",y.tabItem,l?.className,{"tabs__item--active":o===t})}),n??t)})))}function v(e){let{lazy:t,children:n,selectedValue:r}=e;const i=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=i.find((e=>e.props.value===r));return e?(0,a.cloneElement)(e,{className:"margin-top--md"}):null}return a.createElement("div",{className:"margin-top--md"},i.map(((e,t)=>(0,a.cloneElement)(e,{key:t,hidden:e.props.value!==r}))))}function k(e){const t=h(e);return a.createElement("div",{className:(0,i.Z)("tabs-container",y.tabList)},a.createElement(g,(0,r.Z)({},e,t)),a.createElement(v,(0,r.Z)({},e,t)))}function w(e){const t=(0,b.Z)();return a.createElement(k,(0,r.Z)({key:String(t)},e))}},6933:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>s,default:()=>f,frontMatter:()=>o,metadata:()=>u,toc:()=>d});var r=n(7462),a=(n(7294),n(3905)),i=n(4866),l=n(5162);const o={title:"http-response-serializer"},s=void 0,u={unversionedId:"middlewares/http-response-serializer",id:"middlewares/http-response-serializer",title:"http-response-serializer",description:"The Http Serializer middleware lets you define serialization mechanisms based on the current content negotiation.",source:"@site/docs/middlewares/http-response-serializer.md",sourceDirName:"middlewares",slug:"/middlewares/http-response-serializer",permalink:"/docs/middlewares/http-response-serializer",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/middlewares/http-response-serializer.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",frontMatter:{title:"http-response-serializer"},sidebar:"tutorialSidebar",previous:{title:"http-partial-response",permalink:"/docs/middlewares/http-partial-response"},next:{title:"http-security-headers",permalink:"/docs/middlewares/http-security-headers"}},p={},d=[{value:"Install",id:"install",level:2},{value:"Configuration",id:"configuration",level:2},{value:"Serializer Functions",id:"serializer-functions",level:2},{value:"Content Type Negotiation",id:"content-type-negotiation",level:2},{value:"Sample usage",id:"sample-usage",level:2}],c={toc:d},m="wrapper";function f(e){let{components:t,...n}=e;return(0,a.kt)(m,(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"The Http Serializer middleware lets you define serialization mechanisms based on the current content negotiation."),(0,a.kt)("h2",{id:"install"},"Install"),(0,a.kt)("p",null,"To install this middleware you can use NPM:"),(0,a.kt)(i.Z,{groupId:"npm2yarn",mdxType:"Tabs"},(0,a.kt)(l.Z,{value:"npm",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-bash"},"npm install --save @middy/http-response-serializer\n"))),(0,a.kt)(l.Z,{value:"yarn",label:"Yarn",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-bash"},"yarn add @middy/http-response-serializer\n"))),(0,a.kt)(l.Z,{value:"pnpm",label:"pnpm",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-bash"},"pnpm add @middy/http-response-serializer\n")))),(0,a.kt)("h2",{id:"configuration"},"Configuration"),(0,a.kt)("p",null,"The middleware is configured by defining some ",(0,a.kt)("inlineCode",{parentName:"p"},"serializers"),"."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-javascript"},"{\n serializers: [\n {\n regex: /^application\\/xml$/,\n serializer: ({ body }) => `<message>${body}</message>`,\n },\n {\n regex: /^application\\/json$/,\n serializer: ({ body }) => JSON.stringify(body)\n },\n {\n regex: /^text\\/plain$/,\n serializer: ({ body }) => body\n }\n ],\n default: 'application/json'\n}\n")),(0,a.kt)("p",null,"The ",(0,a.kt)("inlineCode",{parentName:"p"},"default")," (optional) option is used if the request and handler don't specify what type is wanted."),(0,a.kt)("h2",{id:"serializer-functions"},"Serializer Functions"),(0,a.kt)("p",null,"When a matching serializer is found, the ",(0,a.kt)("inlineCode",{parentName:"p"},"Content-Type")," header is set and the serializer function is run."),(0,a.kt)("p",null,"The function is passed the entire ",(0,a.kt)("inlineCode",{parentName:"p"},"response")," object, and should return either a string or an object."),(0,a.kt)("p",null,"If a string is returned, the ",(0,a.kt)("inlineCode",{parentName:"p"},"body")," attribute of the response is updated."),(0,a.kt)("p",null,"If an object with a ",(0,a.kt)("inlineCode",{parentName:"p"},"body")," attribute is returned, the entire response object is replaced. This is useful if you want to manipulate headers or add additional attributes in the Lambda response."),(0,a.kt)("h2",{id:"content-type-negotiation"},"Content Type Negotiation"),(0,a.kt)("p",null,"The header is not the only way the middleware decides which serializer to execute."),(0,a.kt)("p",null,"The content type is determined in the following order:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"event.requiredContentType")," -- allows the handler to override everything else"),(0,a.kt)("li",{parentName:"ul"},"The ",(0,a.kt)("inlineCode",{parentName:"li"},"Accept")," header via ",(0,a.kt)("a",{parentName:"li",href:"https://www.npmjs.com/package/accept"},"accept")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"event.preferredContentType")," -- allows the handler to override the default, but lets the request ask first"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"default")," middleware configuration")),(0,a.kt)("p",null,"All options allow for multiple types to be specified in your order of preference, and the first matching serializer will be executed.\nWhen planning to use ",(0,a.kt)("inlineCode",{parentName:"p"},"Accept"),", an external input, it is recommended to validate that it is an expected value."),(0,a.kt)("h2",{id:"sample-usage"},"Sample usage"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\nimport httpResponseSerializer from '@middy/http-response-serializer'\n\nconst handler = middy((event, context) => {\n const body = 'Hello World'\n\n return {\n statusCode: 200,\n body\n }\n})\n\nhandler\n .use(httpResponseSerializer({\n serializers: [\n {\n regex: /^application\\/xml$/,\n serializer: ({ body }) => `<message>${body}</message>`,\n },\n {\n regex: /^application\\/json$/,\n serializer: ({ body }) => JSON.stringify(body)\n },\n {\n regex: /^text\\/plain$/,\n serializer: ({ body }) => body\n }\n ],\n defaultContentType: 'application/json'\n }))\n\nconst event = {\n headers: {\n 'Accept': 'application/xml;q=0.9, text/x-dvi; q=0.8, text/x-c'\n }\n}\n\nhandler(event, {}, (_, response) => {\n t.is(response.body,'<message>Hello World</message>')\n})\n")))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c4f5d8e4.1d23cb3f.js b/assets/js/c4f5d8e4.1d23cb3f.js deleted file mode 100644 index 6728cd466..000000000 --- a/assets/js/c4f5d8e4.1d23cb3f.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[4195],{1843:(e,l,t)=>{t.d(l,{Z:()=>n});var c=t(7294);function a(){return a=Object.assign?Object.assign.bind():function(e){for(var l=1;l<arguments.length;l++){var t=arguments[l];for(var c in t)Object.prototype.hasOwnProperty.call(t,c)&&(e[c]=t[c])}return e},a.apply(this,arguments)}const n=e=>{let{title:l,titleId:t,...n}=e;return c.createElement("svg",a({viewBox:"0 0 64 64",xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",style:{fillRule:"evenodd",clipRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},"aria-labelledby":t},n),l?c.createElement("title",{id:t},l):null,c.createElement("path",{d:"M50.667 21.333A5.336 5.336 0 0 0 45.333 16H8a5.335 5.335 0 0 0-5.333 5.333v21.334A5.335 5.335 0 0 0 8 48h37.333a5.336 5.336 0 0 0 5.334-5.333V21.333Z",style:{fill:"#b0ff5c",fillOpacity:.75},transform:"translate(5 5)"}),c.createElement("path",{d:"M50.667 21.333A5.336 5.336 0 0 0 45.333 16H8a5.335 5.335 0 0 0-5.333 5.333v21.334A5.335 5.335 0 0 0 8 48h37.333a5.336 5.336 0 0 0 5.334-5.333V21.333Z",style:{fill:"none",stroke:"currentColor",strokeWidth:2}}),c.createElement("path",{d:"M61.333 34.667v-5.334",style:{fill:"none",fillRule:"nonzero",stroke:"currentColor",strokeWidth:2}}))}},1126:(e,l,t)=>{t.d(l,{Z:()=>n});var c=t(7294);function a(){return a=Object.assign?Object.assign.bind():function(e){for(var l=1;l<arguments.length;l++){var t=arguments[l];for(var c in t)Object.prototype.hasOwnProperty.call(t,c)&&(e[c]=t[c])}return e},a.apply(this,arguments)}const n=e=>{let{title:l,titleId:t,...n}=e;return c.createElement("svg",a({viewBox:"0 0 64 64",xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",style:{fillRule:"evenodd",clipRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},"aria-labelledby":t},n),l?c.createElement("title",{id:t},l):null,c.createElement("path",{d:"M34.667 5.333 8 37.333h24l-2.667 21.334 26.667-32H32l2.667-21.334Z",style:{fill:"#fff746",fillOpacity:.75,fillRule:"nonzero"},transform:"translate(4 4)"}),c.createElement("path",{d:"M34.667 5.333 8 37.333h24l-2.667 21.334 26.667-32H32l2.667-21.334Z",style:{fill:"none",fillRule:"nonzero",stroke:"currentColor",strokeWidth:2}}))}},8509:(e,l,t)=>{t.d(l,{Z:()=>n});var c=t(7294);function a(){return a=Object.assign?Object.assign.bind():function(e){for(var l=1;l<arguments.length;l++){var t=arguments[l];for(var c in t)Object.prototype.hasOwnProperty.call(t,c)&&(e[c]=t[c])}return e},a.apply(this,arguments)}const n=e=>{let{title:l,titleId:t,...n}=e;return c.createElement("svg",a({viewBox:"0 0 64 64",xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",style:{fillRule:"evenodd",clipRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},"aria-labelledby":t},n),l?c.createElement("title",{id:t},l):null,c.createElement("path",{d:"M7.978 21.667v26.666L34.481 61l26.502-12.667V21.667L34.481 9 7.978 21.667Z",style:{fill:"#a9e7ff",fillOpacity:.75},transform:"matrix(.94331 0 0 1 3.474 3)"}),c.createElement("path",{d:"M32 5.333 5.333 18.667 32 32l26.667-13.333L32 5.333ZM5.333 45.333 32 58.667l26.667-13.334M5.333 32 32 45.333 58.667 32",style:{fill:"none",fillRule:"nonzero",stroke:"currentColor",strokeWidth:2}}))}},3193:(e,l,t)=>{t.d(l,{Z:()=>n});var c=t(7294);function a(){return a=Object.assign?Object.assign.bind():function(e){for(var l=1;l<arguments.length;l++){var t=arguments[l];for(var c in t)Object.prototype.hasOwnProperty.call(t,c)&&(e[c]=t[c])}return e},a.apply(this,arguments)}const n=e=>{let{title:l,titleId:t,...n}=e;return c.createElement("svg",a({viewBox:"0 0 64 64",xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",style:{fillRule:"evenodd",clipRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},"aria-labelledby":t},n),l?c.createElement("title",{id:t},l):null,c.createElement("path",{d:"M2.667 32S13.333 10.667 32 10.667C50.667 10.667 61.333 32 61.333 32S50.667 53.333 32 53.333C13.333 53.333 2.667 32 2.667 32Z",style:{fill:"#e3b7ed",fillOpacity:.75,fillRule:"nonzero"},transform:"translate(2.667 6)"}),c.createElement("path",{d:"M2.667 32S13.333 10.667 32 10.667C50.667 10.667 61.333 32 61.333 32S50.667 53.333 32 53.333C13.333 53.333 2.667 32 2.667 32Z",style:{fill:"none",fillRule:"nonzero",stroke:"currentColor",strokeWidth:2}}),c.createElement("circle",{cx:32,cy:32,r:8,style:{fill:"none",stroke:"currentColor",strokeWidth:2}}))}},5152:(e,l,t)=>{t.d(l,{Z:()=>n});var c=t(7294);function a(){return a=Object.assign?Object.assign.bind():function(e){for(var l=1;l<arguments.length;l++){var t=arguments[l];for(var c in t)Object.prototype.hasOwnProperty.call(t,c)&&(e[c]=t[c])}return e},a.apply(this,arguments)}const n=e=>{let{title:l,titleId:t,...n}=e;return c.createElement("svg",a({viewBox:"0 0 64 64",xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",style:{fillRule:"evenodd",clipRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},"aria-labelledby":t},n),l?c.createElement("title",{id:t},l):null,c.createElement("path",{d:"M51.733 40a4.409 4.409 0 0 0 .88 4.853l.16.16a5.336 5.336 0 0 1 0 7.547 5.335 5.335 0 0 1-7.546 0l-.16-.16a4.408 4.408 0 0 0-4.854-.88 4.406 4.406 0 0 0-2.666 4.027V56c0 2.926-2.408 5.333-5.334 5.333-2.925 0-5.333-2.407-5.333-5.333v-.24A4.41 4.41 0 0 0 24 51.733a4.409 4.409 0 0 0-4.853.88l-.16.16a5.336 5.336 0 0 1-7.547 0 5.335 5.335 0 0 1 0-7.546l.16-.16a4.408 4.408 0 0 0 .88-4.854 4.406 4.406 0 0 0-4.027-2.666H8c-2.926 0-5.333-2.408-5.333-5.334 0-2.925 2.407-5.333 5.333-5.333h.24A4.41 4.41 0 0 0 12.267 24a4.409 4.409 0 0 0-.88-4.853l-.16-.16a5.336 5.336 0 0 1 0-7.547 5.335 5.335 0 0 1 7.546 0l.16.16a4.408 4.408 0 0 0 4.854.88H24a4.407 4.407 0 0 0 2.667-4.027V8c0-2.926 2.407-5.333 5.333-5.333S37.333 5.074 37.333 8v.24A4.408 4.408 0 0 0 40 12.267a4.409 4.409 0 0 0 4.853-.88l.16-.16a5.336 5.336 0 0 1 7.547 0 5.335 5.335 0 0 1 0 7.546l-.16.16a4.408 4.408 0 0 0-.88 4.854V24a4.407 4.407 0 0 0 4.027 2.667H56c2.926 0 5.333 2.407 5.333 5.333S58.926 37.333 56 37.333h-.24A4.408 4.408 0 0 0 51.733 40Z",style:{fill:"#ffd674",fillOpacity:.75,fillRule:"nonzero"},transform:"matrix(.82954 0 0 .82954 10.454 10.454)"}),c.createElement("circle",{cx:32,cy:32,r:8,style:{fill:"none",stroke:"currentColor",strokeWidth:2},transform:"matrix(.82954 0 0 .82954 5.455 5.455)"}),c.createElement("path",{d:"M51.733 40a4.409 4.409 0 0 0 .88 4.853l.16.16a5.336 5.336 0 0 1 0 7.547 5.335 5.335 0 0 1-7.546 0l-.16-.16a4.408 4.408 0 0 0-4.854-.88 4.406 4.406 0 0 0-2.666 4.027V56c0 2.926-2.408 5.333-5.334 5.333-2.925 0-5.333-2.407-5.333-5.333v-.24A4.41 4.41 0 0 0 24 51.733a4.409 4.409 0 0 0-4.853.88l-.16.16a5.336 5.336 0 0 1-7.547 0 5.335 5.335 0 0 1 0-7.546l.16-.16a4.408 4.408 0 0 0 .88-4.854 4.406 4.406 0 0 0-4.027-2.666H8c-2.926 0-5.333-2.408-5.333-5.334 0-2.925 2.407-5.333 5.333-5.333h.24A4.41 4.41 0 0 0 12.267 24a4.409 4.409 0 0 0-.88-4.853l-.16-.16a5.336 5.336 0 0 1 0-7.547 5.335 5.335 0 0 1 7.546 0l.16.16a4.408 4.408 0 0 0 4.854.88H24a4.407 4.407 0 0 0 2.667-4.027V8c0-2.926 2.407-5.333 5.333-5.333S37.333 5.074 37.333 8v.24A4.408 4.408 0 0 0 40 12.267a4.409 4.409 0 0 0 4.853-.88l.16-.16a5.336 5.336 0 0 1 7.547 0 5.335 5.335 0 0 1 0 7.546l-.16.16a4.408 4.408 0 0 0-.88 4.854V24a4.407 4.407 0 0 0 4.027 2.667H56c2.926 0 5.333 2.407 5.333 5.333S58.926 37.333 56 37.333h-.24A4.408 4.408 0 0 0 51.733 40Z",style:{fill:"none",fillRule:"nonzero",stroke:"currentColor",strokeWidth:2},transform:"matrix(.82954 0 0 .82954 5.455 5.455)"}))}},3838:(e,l,t)=>{t.d(l,{Z:()=>n});var c=t(7294);function a(){return a=Object.assign?Object.assign.bind():function(e){for(var l=1;l<arguments.length;l++){var t=arguments[l];for(var c in t)Object.prototype.hasOwnProperty.call(t,c)&&(e[c]=t[c])}return e},a.apply(this,arguments)}const n=e=>{let{title:l,titleId:t,...n}=e;return c.createElement("svg",a({viewBox:"0 0 64 64",xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",style:{fillRule:"evenodd",clipRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},"aria-labelledby":t},n),l?c.createElement("title",{id:t},l):null,c.createElement("path",{d:"M56 42.667V21.333a5.338 5.338 0 0 0-2.667-4.613L34.667 6.053a5.343 5.343 0 0 0-5.334 0L10.667 16.72A5.338 5.338 0 0 0 8 21.333v21.334a5.338 5.338 0 0 0 2.667 4.613l18.666 10.667a5.343 5.343 0 0 0 5.334 0L53.333 47.28A5.338 5.338 0 0 0 56 42.667Z",style:{fill:"#ffc8be",fillRule:"nonzero"},transform:"translate(4 5)"}),c.createElement("path",{d:"M56 42.667V21.333a5.338 5.338 0 0 0-2.667-4.613L34.667 6.053a5.343 5.343 0 0 0-5.334 0L10.667 16.72A5.338 5.338 0 0 0 8 21.333v21.334a5.338 5.338 0 0 0 2.667 4.613l18.666 10.667a5.343 5.343 0 0 0 5.334 0L53.333 47.28A5.338 5.338 0 0 0 56 42.667Z",style:{fill:"none",fillRule:"nonzero",stroke:"currentColor",strokeWidth:2},transform:"translate(0 -1)"}),c.createElement("path",{d:"m20 11.227 12 6.933 12-6.933M20 50.773v-11.84L8 32M56 32l-12 6.933v11.84M8.72 18.56 32 32.027 55.28 18.56M32 57.66V32",style:{fill:"none",fillRule:"nonzero",stroke:"currentColor",strokeWidth:2}}))}},4537:(e,l,t)=>{t.r(l),t.d(l,{default:()=>x});var c=t(7294),a=t(6010),n=t(4173),r=t(9960);const o={heroBanner:"heroBanner_qdFl",buttons:"buttons_AeoN",logo:"logo_Ukns"};var i=t(7462);const s={features:"features_xdhU",featureSvg:"featureSvg__8YW"},h=[{title:"Simple but powerful",Svg:t(5152).Z,description:c.createElement(c.Fragment,null,"A middleware engine makes your code more organised, removes duplication and uniforms the handling of non-functional concerns like authentication, authorization, validation, and serialization.")},{title:"Focus on what matters",Svg:t(3193).Z,description:c.createElement(c.Fragment,null,"By pushing all the non-functional code to middlewares, you can be productive and focus on what matters the most: the business logic!")},{title:"Small core",Svg:t(3838).Z,description:c.createElement(c.Fragment,null,"Middy comes with a very small core and an unobtrusive API to add the minimum amount of overhead to your code.")},{title:"Batteries included",Svg:t(1843).Z,description:c.createElement(c.Fragment,null,"Middy comes with a large set of"," ",c.createElement(r.Z,{to:"/docs/middlewares/intro"},"official middlewares")," and"," ",c.createElement(r.Z,{to:"/docs/intro/utilities"},"utilities")," that can be used out of the box to address the most common non-functional use cases.")},{title:"Blazing fast",Svg:t(1126).Z,description:c.createElement(c.Fragment,null,"Middy has been engineered to keep your lambda as fast as possible. The minimal core keeps your lambda size small and your cold starts under control. Add only what you need!")},{title:"Extensible",Svg:t(8509).Z,description:c.createElement(c.Fragment,null,"Do you need to do more? It's really easy to"," ",c.createElement(r.Z,{to:"/docs/writing-middlewares/intro"},"write your own custom middlewares"),". And, if that's not enough, you can even extend middy itself through its ",c.createElement(r.Z,{to:"/docs/intro/hooks"},"hooks"),".")}];function m(e){let{Svg:l,title:t,description:n}=e;return c.createElement("div",{className:(0,a.Z)("col col--4")},c.createElement("div",{className:"padding-horiz--md"},c.createElement(l,{className:s.featureSvg,alt:t})),c.createElement("div",{className:" padding-horiz--md"},c.createElement("h3",null,t),c.createElement("p",null,n)))}function d(){return c.createElement("section",{className:s.features},c.createElement("div",{className:"container"},c.createElement("div",{className:"row"},h.map(((e,l)=>c.createElement(m,(0,i.Z)({key:l},e)))))))}const u={features:"features_ALof",featureSvg:"featureSvg_K4k2"},v=[{title:"fourThereom",url:"https://fourtheorem.com",img:"/img/logo/fourthereom.svg"},{title:"Amazon Web Services Free and Open Source Software Fund (AWS FOSS Fund)",url:"https://github.com/aws",img:"/img/logo/amazon-web-services.svg"},{title:"Sponsor",url:"https://github.com/sponsors/willfarrell",img:"/img/logo/reserved.svg"}],f=[];function p(e){let{title:l,url:t,img:n,size:r}=e;return c.createElement("div",{className:(0,a.Z)("col")},c.createElement("a",{href:t,className:"padding-horiz--md"},c.createElement("img",{className:u.featureSvg,alt:l,src:n})))}function g(){return c.createElement("section",{className:u.features},c.createElement("div",{className:"container"},c.createElement("h2",null,"Sponsors"),c.createElement("div",{className:"row"},v.map(((e,l)=>c.createElement(p,(0,i.Z)({key:l},e,{size:"33"}))))),c.createElement("div",{className:"row"},f.map(((e,l)=>c.createElement(p,(0,i.Z)({key:l},e,{size:"10"})))))))}const E={example:"example_XiTW",heading2:"heading2_Pha7",heading3:"heading3_HQJr",buttons_list:"buttons_list_tJKG"};var y=t(614);const b="export const handler = (event, context) => {\n // BOILERPLATE!\n // E.g. decrypt environment variables with KMS\n // deserialize the content of the event\n // validate input, authentication, authorization\n \n // REAL BUSINESS LOGIC\n let response = doSomethingUsefulWith(event)\n \n // MORE BOILERPLATE\n // E.g.\n // validate output\n // serialize response\n // handle errors\n return response\n}\n",w="// highlight-start\nimport middy from '@middy/core'\n// highlight-end\n\nconst lambdaHandler = (event, context) => {\n // REAL BUSINESS LOGIC\n return doSomethingUsefulWith(event)\n}\n\n// highlight-start\nexport const handler = middy(lambdaHandler)\n .use(/* Your own behaviour in a reusable fashion */)\n .use(/* logging and tracing */)\n .use(/* input validation */)\n .use(/* authentication */)\n .use(/* error handling */)\n .use(/* other behaviour */)\n// highlight-end\n";function z(){return c.createElement("section",{className:E.example},c.createElement("div",{className:"container"},c.createElement("h2",{className:E.heading2},"Show me the code!"),c.createElement("p",{className:"text--center"},"The following abstract example illustrates the difference of style when using Middy:"),c.createElement("div",{className:"row padding-vert--lg"},c.createElement("div",{className:(0,a.Z)("col col--6")},c.createElement("div",{className:"padding-horiz--md"},c.createElement("h3",null,"Without Middy")),c.createElement("div",{className:"padding-horiz--md"},c.createElement(y.Z,{language:"js",title:"handler.js"},b),c.createElement("p",null,"Without Middy all your non-functional code is mixed up with the actual business logic in your handler."),c.createElement("p",null,"The code is hard to understand and maintain. What if you need to reuse some of the non-functional logic in another handler?"))),c.createElement("div",{className:(0,a.Z)("col col--6")},c.createElement("div",{className:"padding-horiz--md"},c.createElement("h3",null,"With Middy")),c.createElement("div",{className:"padding-horiz--md"},c.createElement(y.Z,{language:"js",title:"handler.js"},w),c.createElement("p",null,"Middy helps you to keep all the non-functional code outside from your handler function."),c.createElement("p",null,"The business logic in your handler remains pure and testable. All the non functional logic is isolated and reusable.")))),c.createElement("h3",{className:E.heading3},"Do you want to see some more ",c.createElement("em",null,"realistic")," examples?"),c.createElement("p",{className:E.buttons_list},c.createElement(r.Z,{to:"/docs/events/api-gateway-http",className:"button button--info"},"API Gateway (HTTP)")," ",c.createElement(r.Z,{to:"/docs/events/api-gateway-rest",className:"button button--info"},"API Gateway (REST)")," ",c.createElement(r.Z,{to:"/docs/events/api-gateway-ws",className:"button button--info"},"API Gateway (WebSockets)")," ",c.createElement(r.Z,{to:"/docs/events/function-url",className:"button button--info"},"Function URL")," ",c.createElement(r.Z,{to:"/docs/events/s3-object",className:"button button--info"},"S3 Object Response")," ",c.createElement(r.Z,{to:"/docs/events/sqs",className:"button button--info"},"SQS")," ")))}const M={heroBanner:"heroBanner_ME4k"};function S(){return c.createElement("header",{className:(0,a.Z)("hero hero--secondary",M.heroBanner)},c.createElement("div",{className:"container text--center margin-vert--xl"},c.createElement("h1",{className:"hero__title"},"Ready to get started?"),c.createElement("div",null,c.createElement(r.Z,{className:"button button--primary button--lg",to:"/docs"},"Read the docs"))))}const k=function(e){return c.createElement("svg",(0,i.Z)({xmlns:"http://www.w3.org/2000/svg",fillRule:"evenodd",strokeLinejoin:"round",strokeMiterlimit:"2",clipRule:"evenodd",viewBox:"0 0 576 416"},e),c.createElement("g",{transform:"matrix(1 0 0 -1 -.667 416.333)"},c.createElement("g",null,c.createElement("path",{fill:"currentColor",fillRule:"nonzero",d:"M202.667 152c.696.463 1.506 1.392 2.436 2.784.925.924 1.506 1.62 1.74 2.088.696.696 1.218 1.447 1.566 2.263.348.809.751 1.446 1.219 1.913.696 1.159 1.157 2.144 1.392 2.959.228.809.461 1.332.696 1.566v.347-.347c0-.234-.12-.817-.349-1.741-.234-.929-.582-1.973-1.043-3.132l-1.045-2.088a61.31 61.31 0 005.046 4.525c1.74 1.391 3.536 3.012 5.395 4.872 1.62 1.392 3.247 2.784 4.872 4.176a98.757 98.757 0 005.221 4.176 61.129 61.129 0 005.568 4.351 161.103 161.103 0 015.568 4.003 465.492 465.492 0 015.222 3.306c1.62 1.044 3.36 2.142 5.22 3.306 4.405 2.316 8.701 2.55 12.877.696l1.044-.348.696-.348h.348v-.348h.348l.348-.348c.924-.931 1.74-1.512 2.436-1.74l1.74-1.74.349-.348 1.043-1.046.696-.694 2.089-2.09c.462-.466.751-.814.87-1.044.114-.233.402-.581.87-1.044l.696-.694c.23-.235.35-.468.35-.698h.694c0-.466.115-.869.348-1.217.23-.349.462-.756.696-1.219.463-.929.811-1.74 1.044-2.436a6.682 6.682 0 00.348-2.088c.228-1.164.348-2.67.348-4.524-.233-.468-.408-1.044-.522-1.741-.119-.695-.292-1.277-.52-1.74 0-.467-.06-.816-.175-1.044a1.507 1.507 0 01-.175-.695c-.233-.469-.408-.697-.522-.697-.119 0-.172-.233-.172-.696-.47-.468-.698-.815-.698-1.043 0-.234-.06-.469-.174-.697a1.525 1.525 0 01-.174-.696c-.696-.696-1.164-1.277-1.392-1.74l-1.044-1.044c-.234 0-.348-.06-.348-.175 0-.118-.118-.173-.348-.173.23 0 .348.055.348.173 0 .115.114.175.348.175 0 .228.114.463.348.696l.348.696c.23.229.576.809 1.044 1.74 0 .463.055.751.175.871.115.114.175.288.175.521l.694 1.392c0 .697.115 1.567.348 2.611.23 1.044.35 2.142.35 3.306 0 1.854-.12 3.246-.35 4.176-.468 1.392-.929 2.551-1.392 3.48-.233.463-.696 1.044-1.392 1.742 0 .228-.12.346-.348.346-.234.228-.348.463-.348.696-.233.23-.408.35-.521.35-.12 0-.295.113-.523.346-.468.228-.756.463-.87.698-.119.228-.408.574-.87 1.042l-1.741 1.742c-.467.461-.815.694-1.044.694l-1.044 1.044-.348.35-.696.348c-.233.228-.408.348-.521.348-.12 0-.295.114-.523.346-.696.698-1.392 1.159-2.088 1.394l-.348.348h-.348v.348h-.348l-.696.348h-.348c-1.86.696-3.48.924-4.873.696-.234 0-1.043-.235-2.436-.696-.234 0-.467-.119-.696-.348h-.347v-.348h-.349l-.348-.348a38.947 38.947 0 01-5.22-3.132l-4.872-3.482a122.271 122.271 0 01-5.743-3.828 123.849 123.849 0 00-5.743-3.828c-1.86-1.392-3.6-2.73-5.221-4.002a291.174 291.174 0 00-5.22-4.003 3481.377 3481.377 0 01-17.401-14.269l-1.74 1.393zM216.24 2.695c-3.252-.463-6.265-.348-9.048.348-1.86.233-3.601.582-5.221 1.044-1.627.468-3.366 1.277-5.22 2.437a40.515 40.515 0 01-2.263 2.087c-.816.696-1.452 1.392-1.915 2.088-1.392 1.626-2.436 3.366-3.132 5.22-1.164 2.089-1.913 4.177-2.261 6.265a120.31 120.31 0 01-1.219 6.265c-.234 4.404-.234 8.7 0 12.876.228 1.159.403 2.203.522 3.134.114.924.174 1.968.174 3.13.23.463.348.986.348 1.567 0 .577.115 1.099.348 1.567 0 .462.055.984.175 1.566.113.575.173 1.098.173 1.567l1.044 6.264a37.11 37.11 0 00.696 2.959c.228.809.463 1.793.696 2.957 0 .228.055.463.175.696.113.229.173.463.173.696 0 .463.055.751.175.871.115.114.173.286.173.521 0 .463.055.925.175 1.392.113.463.173.925.173 1.392.463 1.392.811 2.316 1.044 2.784a3.1 3.1 0 01.348 1.393c0 .463.115.924.348 1.392.23.463.578 1.392 1.046 2.784.461.462.696 1.159.696 2.088.924 2.316 1.62 3.943 2.088 4.872v1.046c.228.228.348.401.348.521 0 .113.113.288.348.521.228.463.348.871.348 1.219 0 .348.113.749.348 1.217.228.23.576.811 1.044 1.742l1.044 2.088a87.517 87.517 0 001.392 3.306 64.896 64.896 0 001.392 2.958c.925 1.854 1.68 3.306 2.262 4.35a76.762 76.762 0 011.218 2.262c-.234-.467-.522-1.278-.87-2.436-.348-1.163-.87-2.67-1.566-4.523a20.81 20.81 0 01-1.044-3.308 21.875 21.875 0 00-1.044-3.305c-.468-.931-.696-1.627-.696-2.09-.468-.929-.696-1.512-.696-1.738-.468-1.392-.696-2.21-.696-2.438-.235-.233-.348-.406-.348-.521 0-.12-.12-.295-.348-.523 0-.696-.12-1.164-.348-1.392-.468-1.858-.931-3.365-1.392-4.524-.235-.468-.348-.87-.348-1.217 0-.349-.12-.757-.348-1.219 0-1.164-.12-2.089-.348-2.784 0-.697-.235-1.512-.696-2.436 0-.93-.235-1.86-.698-2.784 0-.469-.058-.932-.173-1.393a5.57 5.57 0 01-.173-1.392c-.235-.233-.35-.696-.35-1.392-.233-.468-.346-1.044-.346-1.74-.235-.929-.41-1.8-.523-2.611a62.064 62.064 0 00-.523-2.958 43.465 43.465 0 01-.521-3.131 24.732 24.732 0 01-.175-3.133 3.091 3.091 0 01-.348-1.392c0-.467-.118-.93-.348-1.392 0-1.392-.118-2.436-.348-3.132 0-1.164-.06-2.21-.173-3.134a24.683 24.683 0 01-.175-3.132c0-2.088-.058-4.121-.173-6.09-.12-1.974-.06-4.002.173-6.09 0-3.948.696-7.657 2.088-11.137.696-1.855 1.622-3.36 2.786-4.524.461-.697.924-1.332 1.392-1.915.461-.577 1.044-1.098 1.74-1.566.696-.695 1.392-1.218 2.088-1.567a18.637 18.637 0 002.088-1.217c1.621-.924 3.132-1.507 4.524-1.74 1.621-.463 3.132-.696 4.525-.696 1.392 0 2.664-.115 3.828-.348h5.22l.348.348c.696 0 1.159.12 1.392.348 1.159.466 1.855.929 2.089 1.392.696.696 1.043 1.278 1.043 1.741v2.087c.229-.228.349-.924.349-2.087-.234-.463-.349-.812-.349-1.045 0-.23-.119-.576-.347-1.044-.468-.463-.87-.87-1.218-1.219a4.687 4.687 0 00-1.219-.869c-.233 0-.467-.055-.696-.174-.233-.114-.581-.174-1.044-.174h-.348l-.348-.348h-.696c-.929 0-1.512-.115-1.74-.348h-2.088zm-78.307 105.452a19.65 19.65 0 01-.696-1.566c-.234-.581-.581-1.452-1.044-2.609a6.72 6.72 0 01-.522-1.392c-.119-.469-.408-1.045-.87-1.741a47.507 47.507 0 01-.696-2.262 62.466 62.466 0 00-.696-2.262c-1.164-3.252-2.437-7.135-3.828-11.66-1.393-4.523-2.67-9.456-3.829-14.791-.233-.467-.348-1.044-.348-1.74-.233-.233-.348-.696-.348-1.392 0-.468-.12-.816-.348-1.044 0-.931-.235-2.323-.696-4.176 0-.468-.06-.871-.175-1.219-.118-.348-.173-.756-.173-1.217 0-.468-.06-.817-.173-1.045-.12-.234-.175-.582-.175-1.044 0-1.164-.233-2.67-.696-4.524a134.484 134.484 0 01-1.044-9.746 67.44 67.44 0 010-9.745c0-3.251.348-6.611 1.044-10.092a55.12 55.12 0 011.567-4.697 14.883 14.883 0 012.261-4.003c.463-.697.984-1.392 1.567-2.089a24.85 24.85 0 011.566-1.739c.227 0 .347-.055.347-.175 0-.114.115-.174.349-.174l.347-.348h.697l.347-.348c.229 0 .349-.055.349-.174 0-.114.114-.173.347-.173v-.349c.229 0 .463-.055.696-.174.229-.114.463-.174.697-.174 1.62-.924 3.187-1.507 4.698-1.739a198.38 198.38 0 015.046-.697h4.874c1.62.468 2.784 1.044 3.48 1.74.461.234.924.816 1.392 1.74l.696.696c0 .234.113.469.348.696v1.045l.348.347v1.392c.228.468.348.87.348 1.218s.114.756.348 1.218a61.282 61.282 0 002.262 10.616 247.782 247.782 0 003.306 9.918 781.288 781.288 0 003.481 9.572 702.783 702.783 0 003.48 9.223c.463.695.809 1.332 1.044 1.913.228.576.576 1.332 1.044 2.262.924 1.854 1.62 3.133 2.088 3.828.228.462.348.812.348 1.045 0 .229.115.576.348 1.044.463.924.696 1.621.696 2.088.463.696 1.159 1.969 2.088 3.828 2.551 4.873 5.101 9.277 7.657 13.225a404.533 404.533 0 006.96 10.44 58.358 58.358 0 002.611 3.656 33.238 33.238 0 012.261 3.306c.698.924 1.219 1.566 1.567 1.914l.871.87c-.235-.234-.468-.582-.696-1.043-.235-.469-.696-1.164-1.392-2.089a13.743 13.743 0 00-1.915-3.306c-.816-1.044-1.685-2.382-2.611-4.002-1.86-3.019-3.828-6.559-5.916-10.615-2.088-4.063-4.296-8.647-6.612-13.748-.468-.696-.816-1.279-1.045-1.74-.233-.468-.581-1.044-1.044-1.74l-1.044-2.088c0-.931-.233-1.627-.696-2.089-.468-.695-.755-1.392-.869-2.087-.12-.697-.408-1.392-.871-2.089-.233-.93-.816-2.322-1.74-4.175a120.048 120.048 0 01-3.132-9.224 188.497 188.497 0 00-3.132-9.571 96.686 96.686 0 01-2.959-9.92 371.796 371.796 0 01-2.262-9.917c0-.463-.06-.924-.174-1.392a5.505 5.505 0 01-.174-1.393c0-.228-.059-.403-.174-.523-.12-.112-.174-.287-.174-.52v-1.044l-.348-.697c0-.228-.06-.462-.174-.695a1.484 1.484 0 01-.174-.697c-.234-.462-.408-.75-.522-.87-.12-.114-.293-.402-.522-.869a9.232 9.232 0 01-1.74-2.437 15.38 15.38 0 00-6.264-2.784h-.696l-1.044-.348h-1.392c-1.394 0-2.323.12-2.786.348-3.48 0-7.194.816-11.136 2.436-.468 0-.93.233-1.393.696l-.696.348c-.233 0-.467.12-.696.348l-.696.348-.696.696-.696.349-.696.695a8.985 8.985 0 01-1.74 1.914c-.696.582-1.392 1.339-2.088 2.263-1.392 2.087-2.208 3.828-2.436 5.22a8.506 8.506 0 00-.871 2.784c-.118.929-.408 1.74-.869 2.436a60.265 60.265 0 00-1.044 11.136c0 3.481.228 6.841.696 10.095.461 3.245.924 6.492 1.392 9.744.228 1.158.576 2.664 1.044 4.524v2.436c0 .462.053.87.173 1.218.115.348.175.751.175 1.218.228.462.401 1.098.521 1.914.115.811.29 1.567.523 2.263 0 .463.113.811.348 1.044 0 .463.115.811.348 1.044 0 .463.055.811.173 1.044.115.229.175.576.175 1.044 1.62 5.335 3.247 10.207 4.872 14.617 1.621 4.406 3.132 8.234 4.524 11.486a59.588 59.588 0 011.741 4.525c.462.695.811 1.272 1.044 1.739.228.462.462.925.696 1.392 1.158 2.317 1.854 3.596 2.088 3.828zM59.627 77.868c0-1.163-.468-3.017-1.392-5.567-.468-1.626-.99-3.426-1.567-5.394a74.194 74.194 0 01-1.565-6.439 107.76 107.76 0 00-1.742-7.831 85.569 85.569 0 01-1.74-8.528l-1.044-9.396v-4.524c0-1.164.115-1.974.348-2.437 0-.929.115-1.625.35-2.088 0-1.859.346-3.247 1.042-4.176.23-.924.811-2.316 1.74-4.177.696-.695 1.159-1.272 1.394-1.739.228 0 .461-.115.696-.348 0-.229.053-.349.173-.349.115 0 .175-.114.175-.347a26.308 26.308 0 001.913-1.392 27.982 27.982 0 011.915-1.392 21.26 21.26 0 013.654-1.741 172.4 172.4 0 014.002-1.392c.696-.228 1.969-.576 3.828-1.044l.349-.348H73.2c0-.228.113-.348.348-.348h.348l.348-.347h2.436c.228 0 .461.117.696.347.463 0 .696.12.696.348.696.234 1.272.816 1.74 1.741.228.233.348.467.348.695h.348v1.044l.348.697c0 .467.055.869.175 1.217.113.348.173.756.173 1.219l.696 2.087c0 .468.055.757.175.87.114.12.174.408.174.871.227.929.462 1.512.695 1.74 0-.228-.059-.463-.173-.696-.12-.229-.175-.576-.175-1.044v-2.785c0-.228-.06-.403-.173-.522-.12-.113-.174-.288-.174-.521V9.655c0-.228-.06-.348-.174-.348-.12 0-.175-.114-.175-.347 0-.229-.12-.463-.347-.697-.234-.924-.93-1.968-2.089-3.132-.233-.228-.408-.348-.521-.348-.12 0-.295-.115-.523-.348-.233 0-.408-.055-.521-.175-.12-.115-.295-.173-.523-.173-.468 0-.871-.055-1.217-.174a3.934 3.934 0 00-1.219-.174H73.2c-.233.233-.583.348-1.044.348h-.349c-.234.233-.467.348-.696.348-1.163 0-2.436.233-3.828.696-3.018.696-6.035 1.86-9.048 3.48-1.86.929-3.252 1.741-4.178 2.436-.466.468-.814.697-1.044.697l-1.042 1.044c-.931.929-1.512 1.74-1.742 2.436-.466.468-.869 1.103-1.217 1.915a48.263 48.263 0 01-1.219 2.609c-.466 1.164-.929 2.904-1.392 5.221 0 1.158-.12 1.968-.348 2.436v2.784c0 2.088.114 3.708.348 4.872 0 1.855.115 3.535.348 5.047a37.344 37.344 0 001.044 4.697 127.022 127.022 0 002.263 8.528c.809 2.664 1.68 5.275 2.611 7.831a202.424 202.424 0 002.609 6.264c.811 1.855 1.447 3.595 1.915 5.22 1.62 3.247 2.436 4.988 2.436 5.22zm49.42 35.152c9.049 10.903 17.689 20.533 25.928 28.887 8.233 8.352 15.836 15.428 22.796 21.23 6.961 5.796 12.992 10.495 18.097 14.095 5.101 3.593 8.929 6.089 11.485 7.483.463.462 1.507.696 3.132.696 1.159 0 2.203-.234 3.132-.696a67.774 67.774 0 005.57-4.699c1.854-1.74 3.48-3.541 4.872-5.395 2.088-2.321 2.784-4.932 2.088-7.83a19.746 19.746 0 00-3.828-7.831c-10.908-14.617-20.42-29.703-28.539-45.244-.233-1.164-.696-2.436-1.392-3.828a125.097 125.097 0 01-2.436-5.221c9.048 12.062 18.152 22.797 27.32 32.194 9.164 9.395 17.691 17.4 25.58 24.012 7.885 6.614 14.732 11.888 20.535 15.836 5.796 3.943 9.973 6.612 12.529 8.006.924.462 1.968.696 3.132.696 1.392 0 2.436-.234 3.132-.696 3.709-2.556 7.308-5.916 10.789-10.094 1.854-2.321 2.436-4.932 1.74-7.83a19.735 19.735 0 00-3.829-7.831c-6.264-8.821-12.067-17.461-17.401-25.928-5.34-8.473-10.038-17.115-14.095-25.929a216.299 216.299 0 01-10.441-27.494c-2.904-9.517-5.166-19.609-6.787-30.278a184.405 184.405 0 01-2.436-19.839c-.468-6.727-.233-13.339.696-19.837a92.968 92.968 0 00-9.745-.175c-3.252.12-6.15 1.104-8.7 2.959-2.784 1.626-4.759 4.062-5.916 7.309-1.164 3.247-1.86 6.668-2.088 10.267a69.058 69.058 0 00.173 10.962c.348 3.71.751 6.842 1.219 9.398.696 5.568 1.505 10.614 2.436 15.14A156.082 156.082 0 00201.1 78.74a141.741 141.741 0 004.525 12.876c1.74 4.291 3.768 8.989 6.091 14.095 7.884 18.326 16.933 35.613 27.145 51.857-9.744-8.124-18.445-16.357-26.101-24.709-7.657-8.354-14.444-16.707-20.36-25.059-5.917-8.353-11.083-16.477-15.487-24.363-4.41-7.89-8.125-15.433-11.137-22.622-7.428-16.706-12.415-33.063-14.965-49.071-.931-1.621-1.975-2.437-3.134-2.437h-.346c-2.556 0-5.047.173-7.483.522-2.436.348-4.699 1.218-6.788 2.61-2.555 1.626-4.409 4.062-5.568 7.309-1.163 3.247-1.859 6.668-2.088 10.267a69.062 69.062 0 00.175 10.962c.348 3.71.636 6.842.869 9.398.696 5.568 1.507 10.614 2.437 15.14a122.123 122.123 0 003.479 13.225 193.591 193.591 0 004.699 12.876c1.741 4.291 3.769 8.989 6.09 14.095a324.56 324.56 0 0012.355 26.625 286.945 286.945 0 0014.792 25.232c-15.313-12.529-28.484-25.64-39.501-39.327-11.023-13.693-20.187-26.745-27.495-39.154-7.308-12.415-13.051-23.786-17.227-34.107-4.177-10.327-7.194-18.392-9.049-24.188-.468-1.62-.696-3.012-.696-4.176 0-1.159-.12-2.203-.348-3.133-.235-.924-.348-1.739-.348-2.436h-1.392c-3.252.468-5.916 1.104-8.005 1.914-2.088.816-3.714 1.567-4.872 2.263-1.392.929-2.556 1.859-3.48 2.784-2.556 2.556-3.83 6.727-3.83 12.528 0 5.797.986 12.531 2.959 20.187 1.969 7.656 4.699 15.949 8.179 24.884a725.953 725.953 0 0011.31 27.32 536.506 536.506 0 0012.878 27.321 4150.09 4150.09 0 0012.702 24.884 259.446 259.446 0 01-24.186-22.273 208.239 208.239 0 01-20.708-25.407 176.7 176.7 0 01-10.79-18.097 144.05 144.05 0 01-8.352-19.491 125.877 125.877 0 01-3.133-10.093c-.929-3.479-.815-6.847.348-10.092.463-.93.523-1.567.175-1.915-.348-.348-.756-.521-1.218-.521-3.252-1.164-6.498-1.627-9.746-1.392-3.251.228-6.384 1.392-9.396 3.48-4.644 3.012-6.96 7.308-6.96 12.876 0 5.569.809 10.556 2.436 14.966 6.726 18.326 16.297 34.743 28.712 49.246 12.409 14.497 26.276 27.668 41.589 39.501a87.857 87.857 0 006.961 5.048 227.997 227.997 0 006.96 4.349 346.484 346.484 0 007.308 4.526 200.07 200.07 0 007.31 4.176c1.621.696 3.133 1.332 4.524 1.913 1.392.577 2.784 1.332 4.177 2.263.228.228.576.348 1.043.348.462 0 .925.113 1.393.348h1.217c.578 0 1.219-.12 1.915-.348 1.392-.696 3.247-1.686 5.568-2.959 2.317-1.279 4.639-3.077 6.961-5.393 2.784-2.784 3.708-6.038 2.784-9.746-.468-1.86-1.278-3.714-2.436-5.569-10.674-19.027-19.838-36.315-27.494-51.856zm-8.702 74.827c.926.461 1.682.869 2.263 1.218.577.347 1.219.75 1.915 1.218 1.62.462 3.072 1.044 4.35 1.74 1.272.696 2.724 1.505 4.35 2.436l1.044.348.348.348.349.348h.347c.925.462 1.854.696 2.785.696.924.228 1.74.402 2.436.522.696.114 1.62.055 2.784-.174h.696l.348-.348 1.392-.348h.696c0-.234.115-.348.348-.348l1.392-.696c1.855-.93 3.247-1.74 4.176-2.436 2.317-1.164 4.753-2.904 7.309-5.22l.696-.696.696-.348v-.35l.348-.346c.463 0 .811-.12 1.044-.348l.348-.698.348-.346c.463-.468.696-.816.696-1.046 0-.232.115-.581.348-1.044.23-.466.403-.869.523-1.217.113-.349.288-.756.521-1.219.698-1.392 1.044-2.904 1.044-4.522 0-1.862-.118-3.368-.346-4.526-.235-2.556-1.164-5.34-2.786-8.353h-.348v-.696l-.696-.696-1.044-2.088a11.834 11.834 0 00-.696-1.217c-.233-.35-.468-.756-.696-1.219a71.386 71.386 0 007.135 6.264 114.369 114.369 0 016.787 5.569c3.246 2.784 6.318 5.22 9.222 7.308 2.899 2.09 5.623 4.056 8.179 5.918 2.551 1.853 4.812 3.42 6.787 4.697a60.57 60.57 0 005.742 3.307c.463.461.924.696 1.392.696l.696.696c.463 0 .87.054 1.219.174.348.114.636.174.869.174.924.228 1.855.348 2.784.348-.233 0-.581-.06-1.044-.175-.468-.119-1.044-.173-1.74-.173-.233-.234-.468-.348-.696-.348-.233 0-.581-.12-1.044-.348l-1.044-.696c-.233-.234-.408-.348-.522-.348-.119 0-.294-.12-.522-.348a465.906 465.906 0 01-5.742-3.654c-1.974-1.278-4.236-2.958-6.787-5.046a303.264 303.264 0 00-7.656-5.918c-2.785-2.088-5.688-4.524-8.701-7.308a127.575 127.575 0 01-9.746-8.528 766.603 766.603 0 01-10.092-9.917l-2.089 1.392a61.828 61.828 0 003.829 6.612c.463.696.81 1.333 1.044 1.913.228.578.462 1.219.696 1.916.228.46.403.75.522.87.114.113.289.402.522.869l.348.697.348.348v.347c1.622 2.784 2.551 5.22 2.784 7.309.463 3.012.23 5.568-.696 7.656-.233.463-.408.751-.521.871-.12.113-.295.403-.523.871a2.542 2.542 0 00-.522.694 3.01 3.01 0 01-.522.698l-.348.346-.348.698c-.468 0-.696.228-.696.694h-.348v.35l-1.044 1.044a136.024 136.024 0 00-3.654 2.261 40.191 40.191 0 00-3.654 2.611c-1.165.924-2.437 1.505-3.829 1.74-.468.462-1.044.696-1.74.696l-1.044.348h-1.044c-.696.228-1.339.288-1.915.174a9.476 9.476 0 00-1.913-.174c-.468-.234-.816-.348-1.044-.348-.235 0-.583-.12-1.045-.348l-.347-.348h-.349l-1.043-.348a74.064 74.064 0 01-4.177-2.263 71.847 71.847 0 00-4.176-2.261 8.493 8.493 0 00-2.088-1.044 8.908 8.908 0 01-2.088-1.046c-.931-.466-1.627-.929-2.09-1.392l-2.088-1.044c-.696-.694-1.277-1.162-1.74-1.392-.466-.232-.816-.466-1.044-.694-.233-.235-.581-.35-1.044-.35l-1.044-.694h-.696v-.35l-.348-.348c-.468-.233-.816-.406-1.044-.521-.234-.12-.581-.408-1.044-.871-2.322-1.392-4.992-3.25-8.004-5.569-.469-.232-.816-.467-1.045-.695-.233-.234-.581-.468-1.044-.696-.233-.468-.696-1.045-1.392-1.74-.929-.468-2.323-1.392-4.176-2.784l-1.74-1.393-2.088-1.74a12.745 12.745 0 01-1.915-1.565l-1.566-1.567c-1.86-1.392-3.132-2.436-3.828-3.132l-1.74-1.392-2.088-2.088-3.48-3.133-3.48-3.48-2.09-1.392-1.392-2.088-3.48-3.48c-1.392-1.392-2.436-2.556-3.132-3.48-.468-.468-.756-.818-.87-1.046-.12-.233-.408-.466-.87-.696l-1.74-1.74a341.531 341.531 0 00-5.742-7.657 350.924 350.924 0 00-6.091-7.656 6.238 6.238 0 00-1.044-1.915 25.44 25.44 0 01-1.392-1.913c-.468-.929-.931-1.627-1.392-2.088-.468-.931-.931-1.512-1.393-1.74l-2.088-4.177c-.234-.234-.348-.408-.348-.523 0-.117-.119-.292-.348-.52l-.696-.697-1.044-2.088c-.93-1.626-1.686-3.079-2.263-4.351a121.042 121.042 0 00-1.913-4.003c-.234-.466-.468-.814-.696-1.044l-.348-1.042-1.044-2.09-1.044-2.088-.696-1.044-.348-1.044c-.468-1.86-.931-3.252-1.392-4.176l-.35-1.044-.346-.348-.35-.697c0-.467-.233-1.163-.696-2.087l-1.044-4.177c-.466-1.859-.696-3.251-.696-4.176-.466-3.017-.346-5.801.35-8.352.461-2.556 1.39-5.107 2.782-7.657a44.712 44.712 0 012.263-2.784c.811-.931 1.795-1.86 2.959-2.784.228-.235.81-.583 1.74-1.046h.696l.696-.696c.228 0 .348-.058.348-.173 0-.12.114-.175.348-.175l1.044-.346c.462-.235.81-.348 1.044-.348.229 0 .462-.12.696-.35 2.088-.929 4.638-1.392 7.657-1.392 2.551 0 4.872.348 6.96 1.044.229 0 .811.228 1.74.698h.696c.229.228.463.348.696.348.463.461.811.809 1.045 1.044.228.228.576.574 1.044 1.044.696.694 1.044 1.62 1.044 2.784 0 .696-.12 1.272-.348 1.74 0 .461-.12.81-.348 1.044v.696l-.348.348c0 .462-.12.809-.348 1.044v2.089c0 1.391.114 2.436.348 3.131.228.925.576 2.089 1.044 3.481.228.461.402.984.522 1.565.114.578.288 1.1.522 1.567a55.15 55.15 0 011.044 2.784c.228.696.576 1.621 1.044 2.784.228.463.403.924.522 1.392.114.463.289.924.522 1.393.463.924.811 1.739 1.044 2.436.924 1.855 1.74 3.479 2.436 4.872a92.763 92.763 0 002.436 4.524c0 .23.23.811.696 1.74l1.046 2.088c.461.463.749.811.869 1.044.115.23.288.463.521.698.23.461.578.924 1.046 1.392.461.696.809 1.332 1.044 1.913.228.577.461 1.099.696 1.567.228.696.809 1.506 1.74 2.436.462.924.924 1.68 1.392 2.261.462.577.924 1.1 1.392 1.567.462.697.81 1.158 1.044 1.392.229.229.348.462.348.697l-1.392-2.089c-.468-.467-.87-1.044-1.219-1.74-.347-.696-.756-1.511-1.217-2.436-.235-.235-.816-1.044-1.74-2.436-.468-1.394-.931-2.556-1.392-3.48-.235 0-.583-.468-1.046-1.392-.466-.931-.814-1.512-1.044-1.742l-1.042-2.088-.523-1.042c-.12-.235-.293-.583-.523-1.046-.466-1.392-1.104-2.842-1.913-4.349-.816-1.512-1.567-3.193-2.263-5.048-.468-.929-.816-1.739-1.044-2.436-.233-.467-.581-1.392-1.044-2.784a31.474 31.474 0 01-.696-2.436c-.234-.929-.581-1.973-1.044-3.132a6.777 6.777 0 01-.522-1.392 7.13 7.13 0 00-.522-1.392c-.234-.468-.348-1.044-.348-1.741 0-.695-.12-1.278-.348-1.74 0-.467-.06-.93-.174-1.392a5.604 5.604 0 01-.174-1.391c0-.469.055-.757.174-.872.114-.119.174-.407.174-.869l.348-.696v-.696c.463-.93.696-1.512.696-1.74.228-.468.348-1.164.348-2.088 0-1.164-.468-2.436-1.392-3.828-.696-1.392-1.625-2.436-2.785-3.134-.233-.233-.407-.348-.521-.348-.12 0-.294-.118-.522-.346h-.349l-.347-.35c-.468 0-1.164-.233-2.089-.696-1.163-.466-2.436-.696-3.828-.696h-8.179c-1.512 0-2.844.23-4.002.696-.468.228-.815.348-1.044.348-.234 0-.582.115-1.044.348-.234.23-.582.35-1.044.35l-.696.694c-.234 0-.408.055-.522.175-.12.115-.293.173-.522.173l-.696.35-.348.346-2.088 1.046c-2.556 1.618-4.644 3.828-6.266 6.612-.696 1.158-1.277 2.49-1.74 4.001a216.072 216.072 0 01-1.392 4.351c-.696 2.785-.816 5.917-.348 9.397 0 1.159.228 2.664.696 4.525.228 1.158.578 2.664 1.044 4.523.228.463.348.871.348 1.219 0 .348.115.75.348 1.217v.697l.698 1.392c.226.696.461 1.392.696 2.088.228.696.576 1.507 1.042 2.436l.348.696.35 1.044c.228.696.576 1.507 1.042 2.436l1.046 2.09.696 1.044v1.044c.696 1.62 1.446 3.072 2.261 4.35.811 1.272 1.567 2.724 2.263 4.35.696.697 1.158 1.272 1.392 1.74l.348 1.044c0 .462.054.752.174.87.114.114.174.288.174.522a25.54 25.54 0 001.392 1.914c.462.576.924 1.219 1.392 1.915.229.463.462.811.696 1.043.229.229.462.577.696 1.045.229.461.462.869.696 1.219.229.346.349.634.349.869.461.697.924 1.392 1.392 2.088.461.696.924 1.392 1.391 2.088 3.709 5.101 7.772 10.207 12.181 15.313l1.393 2.09c.462.461.924 1.158 1.392 2.088.696.462 1.332.984 1.914 1.566.577.575 1.218 1.218 1.914 1.914l3.132 3.132 1.74 2.088 2.088 1.74 6.962 6.961c.461.228 1.044.696 1.74 1.392l2.088 1.74a12.55 12.55 0 011.914 1.565 12.688 12.688 0 001.914 1.567 13.718 13.718 0 012.088 1.741l1.74 1.739 1.741 1.741 2.087 1.043c.697.463 1.333.985 1.916 1.567a12.734 12.734 0 001.913 1.566c.463.463.809.75 1.044.87.228.114.576.402 1.044.87.924.462 1.507.811 1.74 1.044a168.153 168.153 0 004.525 3.132 98.069 98.069 0 003.828 2.438c.462.461 1.158.924 2.088 1.392l.696.346v.35h.348l1.044.694c.463.463 1.159.926 2.088 1.392.696.698 1.392 1.046 2.088 1.046.696.228 1.392.696 2.088 1.392l2.088 1.044z",transform:"translate(.973 53.33)"}),c.createElement("path",{fill:"currentColor",fillRule:"nonzero",d:"M88 104c-.696-1.392-2.321-3.48-4.872-6.264-2.323-3.019-5.107-5.689-8.353-8.005a13.56 13.56 0 00-2.436-1.915 34.07 34.07 0 00-2.784-1.567c-.468-.232-.756-.346-.87-.346-.12 0-.409-.12-.872-.348l-.694-.35-.698-.346c-.466 0-.814-.06-1.044-.175a1.5 1.5 0 00-.694-.173c-.468-.235-.758-.35-.871-.35-.119 0-.408-.12-.871-.348-.233.228-.348.228-.348 0h.348v-.346c.463-.931.698-1.742.698-2.438l.346-.348v-.348c-.233-.233-.346-.468-.346-.694 0-.235-.06-.41-.175-.523-.12-.12-.173-.295-.173-.523-.235 0-.35-.233-.35-.696h-.348v-.348l.698.348c.461.23.749.403.869.522.115.114.403.288.869.522l1.742 1.74c.462.462.81.751 1.042.871.23.113.463.288.698.523l.696.694c0 .23-.468-.581-1.394-2.436-.466-.468-.814-.929-1.042-1.392-.235-.468-.582-1.044-1.044-1.74-.468-.468-.99-1.104-1.567-1.913a127.658 127.658 0 00-1.913-2.611c-1.164-.697-2.09-1.044-2.784-1.044h.346c0 .228.115.347.348.347l-.348.349v.348l-.346.348c-.235.228-.41.347-.523.347-.12 0-.409.229-.871.697.696.696 1.159 1.272 1.394 1.739v.697c0 .463.053.75.173.87.115.114.173.289.173.522v1.044l-.346.698v.346c0 .463-.235.926-.698 1.392v.348c-.234 0-.348.115-.348.35l-1.044 1.044c-.234.461-.466.749-.696.869-.233.113-.582.403-1.044.871-.696.924-1.86 2.201-3.48 3.828.926 0 1.795-.06 2.61-.175.81-.119 1.681-.173 2.61-.173h1.74l.696.348h2.09c.228.228.694.346 1.392.346.228.23.461.35.694.35.23 0 .463.113.698.348h.694l.698.348 1.392.696c2.316.924 3.942 1.74 4.872 2.436a74.683 74.683 0 018.7 6.264 78.637 78.637 0 003.308 3.133 46.346 46.346 0 002.957 2.436l2.436 2.436c0-.468-.581-1.625-1.74-3.48zm-29.235 21.579c1.392 2.549 3.362 4.056 5.918 4.522 1.157.23 2.436.23 3.828 0 1.853-.466 3.708-1.162 5.569-2.086 3.708-1.627 6.959-3.828 9.744-6.614 2.088-2.321 2.899-4.76 2.436-7.309a7.608 7.608 0 00-1.393-3.132 87.25 87.25 0 00-8.178-9.048c-2.904-2.784-5.862-5.048-8.876-6.787-3.016-1.741-5.861-2.784-8.525-3.133-2.671-.348-5.047.403-7.135 2.263-1.393 1.392-1.914 3.654-1.566 6.786.348 3.132 1.098 6.439 2.262 9.919 1.159 3.48 2.376 6.668 3.655 9.571 1.272 2.898 2.027 4.58 2.261 5.048zm-16.357-24.364v.349l-.348.348.348.696v2.784a29.705 29.705 0 011.044 4.003 28.234 28.234 0 001.044 4.001l1.044 3.132c.228.228.348.463.348.697 0 .228.115.463.348.695.229.463.348.752.348.872 0 .113.115.403.348.869.463 1.158.925 2.143 1.392 2.959.463.809.925 1.795 1.393 2.959.227.461.462.924.696 1.392.228.461.462.924.696 1.39.462.463.696.926.696 1.392l1.044 1.046c1.392 1.853 2.899 3.245 4.524 4.174.926.463 1.74.812 2.436 1.046.696.229 1.507.461 2.438.696 1.392.462 2.664.462 3.828 0 1.158 0 2.028-.12 2.61-.348.575-.234.984-.348 1.218-.348-.234-.234-.643-.294-1.218-.174-.582.114-1.452.054-2.61-.174-.931 0-2.09-.348-3.482-1.044-1.164-.468-2.436-1.164-3.828-2.09l-1.738-1.738v-.348c-.235 0-.35-.06-.35-.175 0-.12-.12-.175-.348-.175 0-.233-.06-.406-.174-.52-.12-.12-.174-.294-.174-.522-.466-.47-.696-.931-.696-1.394-.233-.233-.348-.408-.348-.521 0-.119-.12-.293-.348-.521-.468-1.394-.816-2.323-1.044-2.786-.466-1.162-.816-2.206-1.044-3.132a13.702 13.702 0 00-1.045-2.785c-.233-.467-.347-.755-.347-.869 0-.12-.12-.41-.349-.87 0-.234-.06-.468-.173-.697a1.505 1.505 0 01-.174-.695l-1.045-3.133a39.62 39.62 0 01-2.088-6.961c-.233-.467-.348-1.044-.348-1.739 0-.235-.06-.408-.173-.523-.12-.12-.175-.294-.175-.521v-7.657c-.468.228-.816.462-1.044.696-.235.229-.581.462-1.044.696-.929.462-1.512.81-1.74 1.045-.233.227-.408.347-.523.347-.12 0-.293.114-.521.348h-.696v.349h-1.044c-.235.228-.696.348-1.392.348h-1.045c0-.235-.234-.348-.696-.348-.467 0-.93-.12-1.392-.349-.467-.234-.93-.468-1.391-.695-.235 0-.349-.06-.349-.175 0-.12-.12-.174-.347-.174l-.349-.348h-.348c0-.234-.059-.348-.174-.348-.12 0-.174-.119-.174-.347h-.348c0-.235-.119-.349-.348-.349l-4.872-4.872c0 .228.348.924 1.044 2.088.234.228.581.809 1.044 1.74.233.461.468.81.696 1.044.233.229.468.577.696 1.044l.348.348c0 .229.114.349.348.349 0 .227.054.347.174.347.114 0 .174.114.174.348l.348.349.348.348.696.695c1.393.924 2.55 1.506 3.48 1.741.229.228.577.347 1.045.347.228.229.576.348 1.044.348h4.176zM7.953 21.168c-.462 2.317-.696 4.057-.696 5.221.696 6.03 2.262 13.514 4.698 22.448 2.436 8.928 6.788 18.271 13.052 28.016a114.076 114.076 0 013.305 4.872 125.892 125.892 0 003.307 4.872c1.392 2.09 2.784 3.83 4.177 5.222.924.925 1.739 1.446 2.436 1.565.696.115 1.272.175 1.74.175.228-.234.461-.348.696-.348 2.551-1.627 5.22-3.775 8.004-6.439 2.784-2.671 4.873-4.817 6.265-6.439.696-.694 1.044-1.392 1.044-2.088 0-.233-.233-.816-.696-1.74a446.262 446.262 0 01-4.176-6.438 263.304 263.304 0 01-5.917-9.746c-2.088-3.6-4.176-7.541-6.264-11.833-2.089-4.295-3.829-8.525-5.221-12.701-.467-1.164.577-.698 3.132 1.392 2.55 2.086 5.857 5.1 9.92 9.048 4.056 3.942 8.581 8.58 13.573 13.921a2002.505 2002.505 0 0014.791 15.66l8.701-.347A876.521 876.521 0 0165.377 52.84a1818.231 1818.231 0 01-16.878-20.883 3662.069 3662.069 0 00-16.184-20.185l-.348-.349c-.234 0-.348-.118-.348-.347-.234-.233-.408-.348-.522-.348-.12 0-.293-.12-.522-.348h-.348c-.924-.468-1.68-.641-2.262-.521-.577.113-1.1.172-1.566.172-1.622.462-3.535 1.1-5.743 1.914a262.857 262.857 0 00-6.787 2.611c-.228.228-.462.348-.696.348-1.392.696-2.49 1.621-3.306 2.785-.811 1.158-1.447 2.316-1.914 3.479zm17.75-19.837l-1.044.348c-.23 0-.403.06-.523.174-.113.119-.288.175-.521.175-.228 0-.811.232-1.74.695-.463.234-1.044.408-1.74.522-.696.119-1.274.294-1.742.522-.461.468-1.044.757-1.74.87-.696.119-1.272.294-1.74.522-.228.234-.462.349-.696.349-.228.233-.462.348-.696.348-.924.467-1.506.815-1.74 1.044-.228 0-.81.233-1.74.695l-.696.349-.348.348-.348.347c-1.158.468-2.089 1.1-2.785 1.914a49.597 49.597 0 00-2.087 2.611c-1.158 1.62-1.854 3.361-2.089 5.22-.228.229-.348.697-.348 1.392 0 .229-.055.403-.173.523-.115.114-.175.288-.175.521v4.873c0 .462.12.81.348 1.044v.347-.347c0-.468.12-.816.348-1.044v-1.045c0-.467.06-.755.175-.869.118-.12.173-.408.173-.87.235-.468.349-.757.349-.87 0-.12.119-.408.347-.871 0-.468.12-.815.349-1.043 0-.469.119-.817.347-1.044.468-.697.871-1.392 1.219-2.089.348-.696.87-1.392 1.566-2.088.93-1.163 2.322-2.321 4.176-3.481h.348l.348-.347h.696c.234-.233.468-.348.696-.348.234 0 .468-.12.696-.348.468-.235.756-.349.871-.349.12 0 .407-.119.869-.347h.696c.235-.228.583-.348 1.044-.348l3.132-1.044c.931-.229 2.09-.577 3.482-1.044.466-.228.816-.348 1.044-.348.233 0 .466-.115.696-.349h.696l.696-.348c1.392 0 2.436.12 3.132.348.696 0 1.158.12 1.392.349h.696c.229.233.462.348.696.348l.696.347.696.349c0 .233.054.348.174.348.115 0 .175.12.175.347h.347l.348.348.348.349.697.695c.228.462.576.925 1.043 1.392.462.462.87.925 1.218 1.393.348.463.751.925 1.219 1.392.924.925 1.74 1.795 2.436 2.609a50.979 50.979 0 012.088 2.611c.924.925 1.62 1.74 2.088 2.436l2.088 2.089c5.103 6.03 8.233 9.396 9.397 10.092-.466-.929-2.902-4.872-7.309-11.833-.467-.467-.756-.869-.869-1.217-.12-.348-.408-.756-.871-1.219-.233-.468-.816-1.392-1.74-2.784a134.459 134.459 0 01-1.915-2.611 125.803 125.803 0 00-1.913-2.609l-2.088-3.133a2.545 2.545 0 01-.523-.695c-.118-.229-.408-.463-.869-.696l-.348-.697c0-.228-.12-.348-.348-.348-.235-.228-.348-.462-.348-.695h-.348v-.349c-.235 0-.349-.054-.349-.174 0-.114-.119-.174-.347-.174l-.696-.696c-.235 0-.583-.228-1.045-.696l-1.044-.347-.696-.697h-.696l-.696-.347a1.197 1.197 0 00-.871-.349c-.347 0-.755-.114-1.217-.348h-4.524z",transform:"translate(224.223 66.526)"}),c.createElement("path",{fill:"currentColor",fillRule:"nonzero",d:"M129.333 138.667c-.466-.696-.929-1.392-1.39-2.088-.47-.698-.93-1.392-1.394-2.09a18.916 18.916 0 01-1.216-2.086l-1.218-2.436c-.47-.698-.93-1.394-1.394-2.09-.466-.696-.929-1.392-1.39-2.088a197.338 197.338 0 01-4.7-8.526 108.663 108.663 0 00-4.699-8.179 120.563 120.563 0 00-2.088-4.003 127.6 127.6 0 01-2.087-4.001 36.54 36.54 0 01-1.916-3.656 35.609 35.609 0 00-1.914-3.653c-2.555-4.872-4.758-9.343-6.612-13.4a506.172 506.172 0 01-4.872-10.963c-.467-.931-.755-1.74-.87-2.436-.12-.696-.409-1.392-.87-2.088a19.182 19.182 0 01-.695-1.567 22.267 22.267 0 00-.699-1.566c-.465-1.164-.814-1.974-1.044-2.436a3.101 3.101 0 01-.346-1.392c0 .462.346 1.74 1.045 3.828.46 1.392.809 2.552 1.044 3.481.227.696.461 1.392.695 2.088.229.696.461 1.507.696 2.436a424.339 424.339 0 004.177 11.137c1.619 4.176 3.593 8.815 5.916 13.92.461 1.159.984 2.438 1.565 3.83a29.65 29.65 0 001.915 3.829 31.67 31.67 0 001.741 4.175l2.087 4.177c1.393 2.784 2.785 5.568 4.176 8.353a112.838 112.838 0 004.873 8.7c.463.696.87 1.392 1.219 2.09.349.694.749 1.505 1.219 2.436.461.694.869 1.392 1.216 2.086.349.698.752 1.507 1.218 2.436.464.698.87 1.392 1.219 2.09.349.696.751 1.392 1.219 2.088a23.44 23.44 0 011.39 2.436l.35.348.349.696c0 .228.052.402.171.522.114.114.174.288.174.523.464.923.696 1.62.696 2.087 0 .462.055.81.175 1.044.115.228.175.577.175 1.045 0 1.391-.35 2.664-1.046 3.828l-.345.696v.348l-.699.696c-.234.463-.466.751-.694.871-.235.113-.47.401-.696.869-.93.463-1.514.809-1.742 1.044l-.346.348h-.35l-.346.348-1.394.348a63.217 63.217 0 01-4.697 2.437 207.221 207.221 0 01-4.699 2.087l-1.392.696-.349.348h-.347c-.234 0-.349.115-.349.349l-1.044.348h-.347l-.697.347h-1.044c-.232.229-.581.348-1.044.348h-2.087c-.932 0-2.322-.467-4.177-1.392a7.964 7.964 0 01-2.784-2.784c-.233 0-.348-.12-.348-.347l-.349-.697-.696-1.044c-.468-.929-.93-1.625-1.392-2.088-.931-1.86-1.74-3.252-2.436-4.176a499.5 499.5 0 01-9.05-16.88 1681.64 1681.64 0 00-8.005-15.488 47.192 47.192 0 00-1.565-3.48 45.02 45.02 0 01-1.564-3.48 30.172 30.172 0 00-1.568-3.307 28.3 28.3 0 01-1.566-3.305 142.436 142.436 0 00-1.218-2.959 47.973 47.973 0 00-1.219-2.61c-.467-1.392-.929-2.322-1.391-2.784 0-.468-.06-.755-.174-.87-.12-.12-.175-.408-.175-.87h-1.044l-.695.348c-.468 0-.87.054-1.218.174a3.925 3.925 0 01-1.219.174c-.467.229-1.164.348-2.088.348-.233.228-.468.348-.695.348h-3.133c-2.088 0-3.367-.12-3.828-.348.696.462 1.968.81 3.828 1.044h3.828a6.518 6.518 0 012.088-.348c.697 0 1.507-.12 2.437-.348h.695c.229.228.349.577.349 1.044l.348.348v.697l.696 1.392c.462 1.157.81 2.141 1.044 2.957.227.811.576 1.795 1.044 2.959a40.288 40.288 0 011.216 3.479c.35 1.16.754 2.318 1.22 3.481a45.237 45.237 0 001.567 3.48 48.48 48.48 0 011.565 3.48 298.311 298.311 0 007.136 16.009c2.664 5.57 5.623 11.367 8.875 17.403l2.085 4.176c.464.463.754.869.874 1.219.112.348.286.749.52 1.217l.696 1.044.697 1.392c.925 1.392 2.316 2.785 4.175 4.177 1.622.924 3.596 1.62 5.917 2.087h3.132c.229 0 .464-.06.696-.172.229-.12.463-.175.697-.175h.696c.23 0 .4-.06.52-.173.115-.12.29-.175.524-.175h.695l.696-.348 1.393-.349v-.347h.695l.349-.348 1.391-.696a191.674 191.674 0 004.7-2.089 63.626 63.626 0 004.699-2.436l1.39-.348.348-.348h.35l.346-.347h.35c.46-.469.869-.757 1.218-.872.346-.118.75-.406 1.216-.869.463-.468.812-.869 1.044-1.217.23-.35.579-.756 1.044-1.219l.35-.696.349-.348.345-.348.699-1.392c.924-1.627 1.391-3.715 1.391-6.264a3.078 3.078 0 01-.35-1.392c0-.469-.117-.931-.346-1.393 0-.696-.234-1.74-.695-3.132-.235-.234-.349-.407-.349-.522 0-.12-.12-.294-.35-.522l-.345-.696c0-.234-.12-.348-.349-.348v-.348a5.169 5.169 0 01-1.394-2.436zM28.753 27.297c.23.228 1.274 1.158 3.134 2.784 1.854 1.62 4.116 3.828 6.786 6.614 2.664 2.782 5.568 6.089 8.7 9.917 3.134 3.828 6.32 8.179 9.571 13.051.696 2.55 1.393 5.274 2.088 8.18.697 2.898 1.621 5.969 2.785 9.222-6.498-4.41-12.997-10.501-19.49-18.272-6.498-7.776-11.37-18.044-14.618-30.801l.35-.348c0-.696.228-.815.694-.347zM78.869 8.503l-.694-.696-.696-.696a3.023 3.023 0 00-.698-.523 2.59 2.59 0 01-.696-.521c-1.392-.926-2.669-1.392-3.828-1.392H69.82c-.695 0-1.161.12-1.391.348h-.694l-.699.348a25.26 25.26 0 01-2.609.522c-.815.12-1.799.408-2.958.87-.468.233-1.392.582-2.784 1.044-.697 0-1.278.12-1.741.348-.233 0-.468.12-.695.348h-1.045c-.233.234-.467.349-.696.349-.233.232-.581.347-1.043.347l-.349.348-.348.348c-.235 0-.407.06-.521.174-.12.12-.294.175-.523.175a8.402 8.402 0 01-1.567 1.217 7.877 7.877 0 00-1.565 1.219c0 .228-.233.575-.696 1.044l-.697.695c0 .229-.118.462-.347.697l-.696.695v.349h-.349v-.349l-.347-.347a2.745 2.745 0 01-.523-.697 2.828 2.828 0 00-.521-.695c-.233-.468-.408-.757-.523-.871-.12-.118-.293-.408-.522-.87-.232-.234-.292-.348-.174-.348.114 0 .054-.12-.173-.347-.697-.697-1.164-1.273-1.392-1.741l-.697-.696-.348-.696-1.74-2.087c-.234 0-.582-.229-1.043-.697l-1.045-1.044c-.93-.696-1.8-1.218-2.611-1.567a44.65 44.65 0 01-2.611-1.217 27.852 27.852 0 00-2.609-.523c-.816-.115-1.8-.173-2.957-.173-1.855 0-3.596.348-5.222 1.044h-.696v.346h-.348c-.229.235-.576.35-1.044.35l-2.088 1.044c-.228 0-1.332.641-3.306 1.914-1.968 1.278-3.595 2.436-4.872 3.479-1.272 1.044-1.567 1.507-.87 1.393.695-.12 3.714-1.446 9.048-4.002.467 0 1.164-.23 2.088-.696.468 0 .815-.114 1.044-.348h1.044c1.86-.463 3.132-.696 3.83-.696.929 0 2.321.233 4.174.696.698.468 1.567.929 2.611 1.392 1.045.468 1.795.929 2.263 1.392l1.392 1.392 1.74 1.741.348.695c.228.462.402.752.522.87.115.114.287.403.522.871.696.228 1.157.695 1.392 1.392.228.228.402.461.522.696.115.228.288.463.522.696.228.228.402.461.522.696.115.228.288.463.523.696l.347.348.697.696c.228.461.403.751.521.869.114.115.288.403.523.871.228.463.809 1.392 1.74 2.784.228.228.401.463.521.696.115.229.288.461.523.696l.695.697c0 .228.054.347.174.347.115 0 .175.115.175.348.228-1.164.576-2.669 1.044-4.524l.696-2.088.348-.696v-.696l.348-.696.348-.348c0-.235.055-.349.175-.349.113 0 .173-.119.173-.347.229-.233.348-.468.348-.696l.696-.696 2.088-2.089c.228 0 .463-.12.696-.347l.349-.348h.347l.697-.697h.695c1.159-.467 2.204-.87 3.133-1.218.924-.349 1.854-.75 2.784-1.218a28.58 28.58 0 012.784-1.218c.924-.349 1.739-.75 2.438-1.218.226 0 .46-.055.694-.175a1.57 1.57 0 01.696-.173c.23-.23.575-.347 1.044-.347.23 0 .404-.055.522-.175.114-.114.288-.174.522-.174h1.044c.926 0 2.09.234 3.48.696.23.233.403.348.523.348.115 0 .287.12.521.348.698.234 1.044.468 1.044.696.23 0 .464.12.696.348l.348.349v-.349zm-20.881 7.308c-2.321 1.16-3.828 2.55-4.523 4.177-.697 1.62-1.045 3.012-1.045 4.176 0 2.316.113 5.101.348 8.353.228 3.246.697 7.075 1.392 11.486a77.739 77.739 0 01-2.436-3.48c-.468-.698-.929-1.164-1.392-1.392a144.689 144.689 0 00-5.916-10.095 168.554 168.554 0 00-6.265-9.397c-2.322-3.251-4.644-6.15-6.96-8.7-1.627-1.392-3.367-2.087-5.22-2.087-1.855 0-3.134.232-3.83.695L5.088 15.811c-1.853.697-2.959 1.914-3.307 3.656-.348 1.738-.521 2.838-.521 3.305.233 3.708.989 8.929 2.263 15.661C4.8 45.16 7.176 52.007 10.656 58.968c3.481 6.96 8.473 13.572 14.967 19.837 6.492 6.264 14.964 10.903 25.405 13.922.696.694 2.203.809 4.524.348l11.139-1.74c3.478 9.745 7.83 20.3 13.049 31.67 5.221 11.364 11.539 23.666 18.968 36.891a19.4 19.4 0 001.565 1.392c.579.461 1.448.811 2.612 1.044 1.156.229 2.142.229 2.956 0 .812-.233 1.448-.468 1.916-.695l13.574-6.613c1.156-.468 2.2-1.452 3.13-2.959.924-1.512.578-3.653-1.044-6.437-2.086-3.481-4.758-8.065-8.002-13.748-3.254-5.688-6.732-12.181-10.443-19.491-3.715-7.308-7.483-15.138-11.311-23.49a276.555 276.555 0 01-10.268-25.756 143.244 143.244 0 01-5.218-16.008c-.47-1.86-.93-3.602-1.394-5.22a154.302 154.302 0 01-1.39-5.22c.226.226 1.68 1.618 4.349 4.174a679.874 679.874 0 0121.927 22.102c4.289 4.522 8.177 8.873 11.658 13.05l8.702-.348a1370.847 1370.847 0 00-16.358-22.274C101.024 46.901 95.864 40 90.183 32.692c-5.691-7.309-10.964-13.983-15.836-20.012-.47-.468-.816-.697-1.044-.697-.235-.234-.584-.347-1.046-.347-.468-.235-.814-.295-1.044-.175a1.577 1.577 0 01-.694.175l-12.531 4.175z",transform:"translate(273.72 65.618)"}),c.createElement("path",{fill:"currentColor",fillRule:"nonzero",d:"M129.333 138.667c-.468-.696-.929-1.392-1.392-2.088a505.09 505.09 0 01-1.392-2.09 19.088 19.088 0 01-1.217-2.086l-1.219-2.436c-.468-.698-.929-1.394-1.392-2.09-.468-.696-.929-1.392-1.392-2.088a197.308 197.308 0 01-4.698-8.526 109.707 109.707 0 00-4.699-8.179 124.48 124.48 0 00-2.088-4.003 127.578 127.578 0 01-2.088-4.001 36.328 36.328 0 01-1.915-3.656 35.808 35.808 0 00-1.914-3.653c-2.556-4.872-4.758-9.343-6.612-13.4a501.32 501.32 0 01-4.872-10.963c-.468-.931-.756-1.74-.87-2.436-.12-.696-.409-1.392-.872-2.088a20.282 20.282 0 01-.694-1.567 22.286 22.286 0 00-.698-1.566c-.466-1.164-.814-1.974-1.044-2.436a3.091 3.091 0 01-.348-1.392c0 .462.348 1.74 1.046 3.828.461 1.392.809 2.552 1.044 3.481.228.696.462 1.392.694 2.088.23.696.463 1.507.698 2.436 1.158 3.247 2.55 6.96 4.176 11.137 1.62 4.176 3.594 8.815 5.916 13.92.462 1.159.984 2.438 1.566 3.83a29.522 29.522 0 001.915 3.829 31.527 31.527 0 001.74 4.175l2.088 4.177c1.393 2.784 2.784 5.568 4.176 8.353a112.503 112.503 0 004.873 8.7c.462.696.87 1.392 1.218 2.09.349.694.75 1.505 1.218 2.436.463.694.87 1.392 1.218 2.086.349.698.75 1.507 1.218 2.436.463.698.87 1.392 1.218 2.09.349.696.752 1.392 1.218 2.088.463.696.926 1.506 1.392 2.436l.348.348.35.696c0 .228.053.402.172.522.114.114.174.288.174.523.463.923.696 1.62.696 2.087 0 .462.055.81.175 1.044.115.228.175.577.175 1.045 0 1.391-.35 2.664-1.046 3.828l-.346.696v.348l-.35.348-.348.348c-.234.463-.466.751-.696.871-.233.113-.468.401-.696.869-.929.463-1.512.809-1.74 1.044l-.348.348h-.348l-.348.348-1.393.348a63.021 63.021 0 01-4.697 2.437 205.261 205.261 0 01-4.699 2.087l-1.391.696-.349.348h-.348c-.235 0-.348.115-.348.349l-1.044.348h-.348l-.696.347h-1.044c-.233.229-.583.348-1.044.348h-2.088c-.931 0-2.323-.467-4.177-1.392a7.964 7.964 0 01-2.784-2.784c-.234 0-.348-.12-.348-.347l-.348-.697-.696-1.044c-.468-.929-.931-1.625-1.392-2.088-.931-1.86-1.74-3.252-2.438-4.176a502.972 502.972 0 01-9.048-16.88 1706.822 1706.822 0 00-8.005-15.488 48.043 48.043 0 00-1.565-3.48 45.05 45.05 0 01-1.566-3.48 29.801 29.801 0 00-1.566-3.307 28.305 28.305 0 01-1.567-3.305 143.05 143.05 0 00-1.217-2.959 48.74 48.74 0 00-1.219-2.61c-.468-1.392-.929-2.322-1.392-2.784 0-.468-.06-.755-.175-.87-.118-.12-.173-.408-.173-.87h-1.044l-.696.348c-.468 0-.871.054-1.219.174a3.914 3.914 0 01-1.218.174c-.467.229-1.163.348-2.087.348-.235.228-.469.348-.696.348h-3.132c-2.088 0-3.367-.12-3.829-.348.696.462 1.968.81 3.829 1.044h3.828a6.507 6.507 0 012.087-.348c.697 0 1.506-.12 2.437-.348h.696c.228.228.348.577.348 1.044l.349.348v.697l.695 1.392c.463 1.157.809 2.141 1.044 2.957.228.811.577 1.795 1.044 2.959a40.299 40.299 0 011.217 3.479 41.11 41.11 0 001.22 3.481 45.222 45.222 0 001.566 3.48 48.043 48.043 0 011.565 3.48 298.311 298.311 0 007.136 16.009c2.664 5.57 5.623 11.367 8.875 17.403l2.086 4.176c.463.463.752.869.872 1.219.114.348.288.749.52 1.217l.698 1.044.348.697.348.695c.925 1.392 2.317 2.785 4.176 4.177 1.621.924 3.594 1.62 5.917 2.087h3.132c.228 0 .463-.06.696-.172.228-.12.461-.175.696-.175h.696c.229 0 .401-.06.521-.173.115-.12.29-.175.523-.175h.696l.696-.348 1.392-.349v-.347h.696l.348-.348 1.392-.696a193.28 193.28 0 004.699-2.089 63.021 63.021 0 004.698-2.436l1.392-.348.348-.348h.348l.348-.347h.348c.462-.469.871-.757 1.219-.872.347-.118.749-.406 1.217-.869.462-.468.811-.869 1.044-1.217.23-.35.578-.756 1.044-1.219l.348-.696.35-.348.346-.348.348-.696.35-.696c.924-1.627 1.392-3.715 1.392-6.264a3.078 3.078 0 01-.35-1.392c0-.469-.118-.931-.348-1.393 0-.696-.232-1.74-.694-3.132-.235-.234-.35-.407-.35-.522 0-.12-.12-.294-.348-.522l-.346-.696c0-.234-.12-.348-.35-.348v-.348a5.165 5.165 0 01-1.392-2.436zM28.752 27.297c.229.228 1.275 1.158 3.133 2.784 1.855 1.62 4.118 3.828 6.787 6.614 2.665 2.782 5.569 6.089 8.7 9.917 3.133 3.828 6.32 8.179 9.572 13.051.695 2.55 1.392 5.274 2.087 8.18.697 2.898 1.621 5.969 2.785 9.222-6.499-4.41-12.997-10.501-19.489-18.272-6.499-7.776-11.371-18.044-14.618-30.801l.348-.348c0-.696.228-.815.695-.347zM78.869 8.503l-1.392-1.392a3.037 3.037 0 00-.696-.523 2.578 2.578 0 01-.697-.521c-1.391-.926-2.668-1.392-3.828-1.392H69.82c-.695 0-1.163.12-1.392.348h-.695l-.697.348c-.929.233-1.799.408-2.611.522-.814.12-1.798.408-2.957.87-.468.233-1.392.582-2.784 1.044-.696 0-1.277.12-1.74.348-.235 0-.469.12-.696.348h-1.045c-.232.234-.467.349-.695.349-.235.232-.583.347-1.044.347l-.348.348-.349.348c-.234 0-.407.06-.522.174-.12.12-.293.175-.522.175a8.46 8.46 0 01-1.566 1.217 7.855 7.855 0 00-1.566 1.219c0 .228-.234.575-.696 1.044l-.696.695c0 .229-.119.462-.348.697l-.696.695v.349h-.35v-.349l-.346-.347a2.77 2.77 0 01-.523-.697 2.803 2.803 0 00-.521-.695c-.234-.468-.408-.757-.523-.871-.119-.118-.293-.408-.523-.87-.232-.234-.292-.348-.173-.348.115 0 .055-.12-.173-.347-.696-.697-1.164-1.273-1.392-1.741l-.698-.696-.348-.696-1.738-2.087c-.235 0-.583-.229-1.044-.697l-1.046-1.044c-.929-.696-1.798-1.218-2.61-1.567a44.638 44.638 0 01-2.61-1.217c-.929-.23-1.8-.403-2.61-.523-.815-.115-1.799-.173-2.958-.173-1.854 0-3.594.348-5.22 1.044h-.697v.346h-.348c-.228.235-.576.35-1.044.35l-2.088 1.044c-.228 0-1.332.641-3.307 1.914-1.968 1.278-3.593 2.436-4.872 3.479-1.272 1.044-1.566 1.507-.869 1.393.696-.12 3.713-1.446 9.048-4.002.468 0 1.164-.23 2.088-.696.468 0 .816-.114 1.044-.348h1.045c1.859-.463 3.131-.696 3.828-.696.93 0 2.322.233 4.175.696.697.468 1.567.929 2.611 1.392 1.045.468 1.794.929 2.262 1.392l.696.696.698.696 1.738 1.741.348.695c.23.462.403.752.523.87.115.114.288.403.521.871.698.228 1.159.695 1.392 1.392.23.228.403.461.523.696.115.228.289.463.521.696.23.228.403.461.523.696.115.228.288.463.523.696l.346.348.698.696c.228.461.402.751.521.869.115.115.288.403.523.871.228.463.809 1.392 1.74 2.784.229.228.402.463.521.696.115.229.288.461.523.696l.696.697c0 .228.053.347.173.347.115 0 .175.115.175.348.228-1.164.577-2.669 1.044-4.524l.696-2.088.349-.696v-.696l.347-.696.348-.348c0-.235.054-.349.174-.349.115 0 .174-.119.174-.347.229-.233.349-.468.349-.696l.695-.696 2.088-2.089c.228 0 .462-.12.697-.347l.348-.348h.347l.697-.697h.695c1.158-.467 2.204-.87 3.133-1.218.924-.349 1.855-.75 2.784-1.218.924-.463 1.853-.87 2.785-1.218.924-.349 1.739-.75 2.436-1.218.228 0 .462-.055.695-.175a1.57 1.57 0 01.697-.173c.228-.23.575-.347 1.044-.347.228 0 .403-.055.522-.175.114-.114.288-.174.521-.174h1.044c.925 0 2.089.234 3.481.696.23.233.402.348.522.348.114 0 .288.12.522.348.696.234 1.044.468 1.044.696.228 0 .463.12.696.348l.348.349v-.349zm-20.881 7.308c-2.323 1.16-3.829 2.55-4.524 4.177-.697 1.62-1.045 3.012-1.045 4.176 0 2.316.114 5.101.348 8.353.229 3.246.697 7.075 1.392 11.486a77.739 77.739 0 01-2.436-3.48c-.468-.698-.93-1.164-1.392-1.392a144.294 144.294 0 00-5.916-10.095 168.038 168.038 0 00-6.266-9.397c-2.321-3.251-4.642-6.15-6.96-8.7-1.625-1.392-3.366-2.087-5.22-2.087-1.854 0-3.132.232-3.829.695L5.087 15.811c-1.854.697-2.958 1.914-3.306 3.656-.349 1.738-.522 2.838-.522 3.305.233 3.708.99 8.929 2.262 15.661C4.8 45.16 7.176 52.007 10.656 58.968c3.48 6.96 8.472 13.572 14.965 19.837 6.492 6.264 14.964 10.903 25.407 13.922.695.694 2.201.809 4.524.348l11.137-1.74c3.48 9.745 7.831 20.3 13.051 31.67 5.22 11.364 11.539 23.666 18.967 36.891.462.463.985.924 1.566 1.392.578.461 1.447.811 2.611 1.044 1.157.229 2.143.229 2.957 0 .811-.233 1.447-.468 1.915-.695l13.573-6.613c1.158-.468 2.202-1.452 3.132-2.959.924-1.512.576-3.653-1.044-6.437-2.088-3.481-4.758-8.065-8.004-13.748-3.253-5.688-6.732-12.181-10.441-19.491-3.715-7.308-7.483-15.138-11.312-23.49a276.549 276.549 0 01-10.267-25.756 143.26 143.26 0 01-5.22-16.008c-.468-1.86-.929-3.602-1.392-5.22a154.141 154.141 0 01-1.392-5.22c.228.226 1.68 1.618 4.351 4.174a646.26 646.26 0 019.744 9.571 673.616 673.616 0 0112.181 12.531c4.291 4.522 8.179 8.873 11.659 13.05l8.701-.348a1358.964 1358.964 0 00-16.357-22.274C101.024 46.901 95.863 40 90.181 32.692c-5.689-7.309-10.964-13.983-15.836-20.012-.468-.468-.816-.697-1.044-.697-.233-.234-.582-.347-1.045-.347-.467-.235-.815-.295-1.044-.175a1.571 1.571 0 01-.695.175l-12.529 4.175z",transform:"translate(361.073 65.618)"}),c.createElement("path",{fill:"currentColor",fillRule:"nonzero",d:"M122.667 46.667c0-2.087-.12-3.708-.348-4.872a44.165 44.165 0 01-.696-2.263 67.734 67.734 0 00-.696-2.261 18.816 18.816 0 01-1.219-2.088 6.702 6.702 0 00-1.217-1.74c-.696-.924-1.74-2.088-3.132-3.48l-1.742-1.742-2.088-1.044c-.929-.462-1.625-.696-2.088-.696-.929-.461-1.74-.696-2.436-.696-1.392-.462-2.904-.228-4.525.696-.232.234-.467.348-.695.348l-.349.348c-.233 0-.348.06-.348.175 0 .12-.119.175-.347.175l-.348.346c0 .235-.12.348-.349.348l-.348.696-.347.348v.348l-1.044 1.044h-.348l-.697.698-1.392.694c-.467.47-.929.698-1.392.698-.467.466-.929.696-1.392.696-.233.233-.408.348-.521.348-.12 0-.295.12-.523.348-.929.233-1.74.466-2.436.696-.696.233-1.392.468-2.088.694-1.392.235-2.436.583-3.133 1.046-.467 0-.815.06-1.043.174a1.528 1.528 0 01-.697.172h3.306c.578 0 1.219-.113 1.914-.346.697 0 2.204-.228 4.525-.696.463 0 .751-.055.869-.175.115-.115.29-.175.523-.175.463 0 .749-.053.869-.172.115-.114.403-.174.872-.174a7.159 7.159 0 011.392-.523c.462-.115.924-.403 1.392-.869.227 0 .402-.055.522-.175.114-.113.288-.173.522-.173l.347-.35.348-.346c.463-.228.752-.403.872-.523.112-.115.401-.288.869-.523 0-.228.114-.461.348-.694l.347-.35.349-.348h.348v-.346h.695c.925-.463 1.741-.578 2.436-.35.229 0 .812.235 1.741.696.463 0 .924.235 1.392.698.228.233.463.408.698.521.226.119.461.293.694.521.23 0 .348.06.348.175 0 .12.115.175.348.175l.696.694c.463.468.871.931 1.219 1.392.348.47.751.931 1.217 1.394a23.901 23.901 0 001.742 3.48c.228.468.402 1.044.521 1.74.113.696.288 1.277.523 1.74 0 .696.053 1.338.173 1.913.115.583.175 1.22.175 1.915v1.741c0 .467-.06.755-.175.869-.12.12-.173.408-.173.87-.235 2.324-1.164 4.41-2.786 6.266-1.392 1.624-3.25 3.251-5.568 4.872-.466.467-.929.755-1.392.87-.468.12-.93.408-1.393.87l-3.131 1.044-1.392.695c-.234 0-.468.12-.697.349h-.695c-.234.234-.582.348-1.044.348H99c-.233.234-.468.347-.695.347-.468 0-.817.06-1.045.175-.233.12-.467.174-.696.174-.468 0-.815.119-1.043.348h-.349c0 .234-.12.348-.348.348v.347c0 .235.115.469.348.697 0 .467.115.696.349.696.228 0 .347.059.347.174 0 .12.115.174.348.174.229.234.403.348.523.348.114 0 .288.12.521.348h.348v.348h.697c.462.234.924.583 1.391 1.044.463.234.925.582 1.392 1.044 0-.228-.347-.696-1.044-1.392L99 69.637c0 .234-.348 0-1.043-.696l-.349-.348c-.233 0-.233-.114 0-.348v-.348c.229-.228.463-.348.697-.348h3.131l.349-.349h.695c.463 0 .752-.053.872-.172.113-.115.401-.175.869-.175l3.132-1.045a29.897 29.897 0 001.914-.695 20.017 20.017 0 001.566-.696 58.671 58.671 0 003.48-2.262c1.159-.811 2.318-1.794 3.482-2.959 2.088-2.088 3.48-4.752 4.176-8.004.228-.463.348-.811.348-1.045 0-.228.113-.575.348-1.044v-2.436zM52.364 70.681c-.233-.228-.407-.348-.521-.348-.12 0-.294-.114-.523-.348h2.436c.463 0 .871.06 1.219.174.348.12.75.174 1.218.174h.347l.349 1.044c.228.468.348.816.348 1.044 0 .234.115.583.347 1.046l.349.694v.348c0 .235.054.35.174.35.114 0 .174.118.174.346h-.348l-.349-.346h-.347a20.848 20.848 0 00-1.566-1.392 17.56 17.56 0 01-1.567-1.394c-.467-.228-1.043-.696-1.74-1.392zm70.999 64.735l.696 1.391c.462.925.696 1.74.696 2.437.228 0 .348.228.348.695v2.785c-.235 0-.348.113-.348.348v.695c0 .229-.06.349-.174.349-.12 0-.174.113-.174.348-.468.924-.931 1.62-1.392 2.088l-.348.348v.348h-.348l-1.044 1.044c-.468.461-.816.751-1.044.869-.235.115-.583.403-1.044.871l-2.09 2.088a22.799 22.799 0 01-2.436 2.088c-.466.463-.869.811-1.217 1.044-.348.228-.756.577-1.219 1.045l-1.392.695-.348.697-.696.347c-.468.229-.929.577-1.392 1.045-.468 0-.929.228-1.392.696-.234 0-.348.054-.348.174 0 .114-.12.174-.349.174l-.695.347c-.234.229-.582.349-1.044.349-.468.228-1.277.348-2.436.348 0-.234-.234-.348-.697-.348h-.348c-.232 0-.347-.06-.347-.174 0-.119-.12-.175-.348-.175h-.697c-1.164-.695-2.556-1.973-4.175-3.828a70.073 70.073 0 01-4.002-4.349 773.612 773.612 0 01-3.656-4.351 57.655 57.655 0 01-2.958-3.828c-.816-1.164-1.565-2.088-2.262-2.785-.93-.93-1.566-1.626-1.914-2.087a9.99 9.99 0 00-.869-1.045c0 .462.112.925.347 1.392v-.347.695l.348.349v.695c0 1.158-.12 2.204-.348 3.133 0 .228-.235.809-.696 1.74 0 .461-.119.809-.348 1.044-.234.228-.468.576-.695 1.044 0 .228-.12.348-.349.348 0 .229-.06.348-.174.348-.12 0-.174.113-.174.348l-1.044 1.044c-.234 0-.348.053-.348.173 0 .115-.12.175-.348.175 0 .228-.234.348-.696.348l-1.044 1.044a2.572 2.572 0 00-.523.697c-.12.227-.407.462-.869.695l-1.044 1.044c-1.392.925-2.323 1.621-2.784 2.089-2.323 1.854-4.298 3.36-5.918 4.524-.929.463-1.512.811-1.74 1.043l-.348.349h-.696l-.696.696c-.929.462-1.974.696-3.133.696-2.321 0-4.295-.696-5.915-2.088-1.393-.93-2.322-1.74-2.785-2.436 0-.233-.06-.348-.173-.348-.12 0-.175-.12-.175-.348l-.348-.349h-.348v-.347c-.233-.468-.408-.757-.521-.87-.12-.12-.295-.407-.523-.87a55.31 55.31 0 00-2.263-3.48 62.576 62.576 0 01-2.261-3.481c-.463-.467-.751-.989-.869-1.567-.115-.581-.403-1.104-.872-1.565l-2.087-3.132c-1.159-2.088-1.796-3.019-1.915-2.785-.114.229.174 1.218.871 2.958.695 1.742 1.625 3.943 2.783 6.614a79.98 79.98 0 004.177 8.178c.468.924.816 1.506 1.044 1.739l.348.349v.348c.233 0 .348.115.348.347.463.463.696.812.696 1.045a12.4 12.4 0 003.48 3.48l2.088 1.044c.463.463.871.696 1.219.696.348 0 .75.115 1.217.348.463.228.871.348 1.219.348.348 0 .75.115 1.218.348h2.783c.925-.233 1.447-.348 1.567-.348.114 0 .522-.234 1.218-.696.228 0 .576-.233 1.044-.696.228 0 .463-.12.696-.346l.348-.35c.462-.233.751-.408.871-.522.113-.12.403-.294.869-.522l1.392-1.392c.463-.233 1.046-.696 1.74-1.392l.696-.348c0-.468.228-.697.698-.697.228-.695.694-1.163 1.392-1.391.462-.468.869-.93 1.217-1.392.349-.468.751-.93 1.219-1.392l1.044-1.045 1.392-1.391 1.044-1.045c0-.233.053-.347.173-.347.115 0 .175-.12.175-.349l.697-.696c.227-.233.347-.407.347-.521 0-.12.114-.295.348-.523l.697-.696c0-.233.112-.468.347-.696.228-.467.402-.869.522-1.219.115-.348.288-.754.522-1.217 0-1.164.114-1.973.348-2.436 0-.468-.06-.989-.175-1.567a7.853 7.853 0 01-.173-1.566c0 .462.114.81.348 1.045.462.924 1.044 2.028 1.741 3.305a52.143 52.143 0 002.436 4.003 109.594 109.594 0 002.957 4.872 489.037 489.037 0 013.307 5.22c.463.697 1.272 1.621 2.436 2.785l1.392 1.392c.228 0 .463.115.696.348.229.23.403.348.521.348.115 0 .29.115.523.348 2.551 1.392 5.335 1.74 8.353 1.046.462 0 1.159-.235 2.088-.698l.696-.696c.228 0 .403-.06.522-.173.114-.12.289-.175.522-.175.462-.468.924-.814 1.392-1.044.23-.233.462-.408.696-.522.228-.12.463-.294.698-.523l.694-.695.698-.348 3.48-3.48c.924-.929 1.74-1.741 2.436-2.436a23.217 23.217 0 002.088-2.436c.461-.469.75-.817.87-1.045.114-.233.403-.581.87-1.044l1.044-1.044v-.348c.228 0 .348-.12.348-.348 0-.233.054-.348.174-.348.114 0 .174-.12.174-.348.229-.468.402-.869.521-1.219.115-.348.289-.754.523-1.217 0-.468.054-.757.174-.869.114-.12.174-.295.174-.523v-1.392c0-.931-.119-1.627-.348-2.088 0-.468-.12-.817-.348-1.045 0-.467-.119-.696-.347-.696-.469-1.163-.932-1.975-1.393-2.436l-1.044-1.043zM45.404 27.177a140.527 140.527 0 015.395 8.006c1.74 2.784 3.42 5.801 5.046 9.048h-3.481a29.312 29.312 0 01-5.568.174c-1.855-.114-3.247-.288-4.176-.522h-.697c-4.638-.463-9.223-1.62-13.746-3.48-4.525-1.855-7.482-4.874-8.874-9.048-.926-2.784-.986-5.16-.175-7.136.816-1.968 2.148-3.479 4.003-4.524 1.858-1.044 4.062-1.506 6.612-1.391 2.556.117 5.221.869 8.005 2.261.233.235 1.044.815 2.436 1.74a24.365 24.365 0 012.611 2.263l2.609 2.609zm-5.917 41.068h1.044c-.227.234-.402.348-.522.348-.113 0-.288.119-.522.348-2.316.93-3.942 1.627-4.872 2.088-2.784.931-4.524 1.74-5.22 2.438.234-.23 2.088-.698 5.569-1.394a13.728 13.728 0 012.261-.522c.816-.114 1.8-.403 2.959-.87.233 0 .467-.053.696-.173.233-.115.468-.175.696-.175h.347l.349-.348h3.48l.348.348c1.392.468 2.316.93 2.784 1.392.229.235.403.468.523.696.114.234.401.468.869.696.229.467.463.756.696.87.228.12.463.409.696.872.463.461.984.924 1.567 1.39.576.463 1.098.926 1.566 1.392.924 1.16 1.854 2.143 2.783 2.959a66.57 66.57 0 013.133 2.959c.463.462.984.924 1.567 1.392.576.462 1.097.924 1.565 1.392.23.462.462.75.696.869.228.115.463.403.698.871l1.042.696.35.348v-.348l-2.09-8.354a12.674 12.674 0 01-.521-2.261 13.344 13.344 0 00-.523-2.261l-.348-1.044-.348-1.046-.348-1.74c-.468-.925-.696-1.62-.696-2.088a15.687 15.687 0 01-.521-1.913 17.997 17.997 0 00-.523-1.915l-.348-.349v-.347H56.54c-.467-.228-1.277-.348-2.436-.348h-2.261a7.011 7.011 0 01-2.262-.349c-2.089 0-3.716-.113-4.873-.347H42.62c-.463-.228-1.159-.348-2.089-.348a34.876 34.876 0 00-2.436-.522 12.78 12.78 0 00-2.087-.175c-.463-.228-.812-.347-1.044-.347-.229 0-.577-.114-1.045-.348h-.696l-.695-.349h-.349c-1.855-.463-3.132-.809-3.828-1.043-.463-.229-.811-.349-1.046-.349-.226 0-.461-.113-.694-.348-.463-.227-.81-.347-1.044-.347-.228 0-.463-.114-.698-.349-4.402-1.62-8.004-3.479-10.788-5.568a162.482 162.482 0 01-2.784-2.263c-.696-.576-1.158-.982-1.392-1.217 0 .235 1.164 1.739 3.48 4.524.468.468 1.044.991 1.74 1.565a62.133 62.133 0 002.436 1.916c.468.467.931.755 1.392.87.468.12.931.408 1.394.869.466.235.754.408.869.523.12.12.408.293.869.522l.698.347c.233.235.466.348.694.348.468.235.758.409.871.523.12.12.408.293.871.521.929.468 1.512.697 1.74.697.696.467 1.392.755 2.088.87.696.12 1.392.408 2.089.869h.347l.696.349c.468 0 .816.119 1.044.348.468 0 1.164.234 2.088.695l4.176 1.045zm66.126-34.454c-1.86 2.556-4.757 4.524-8.7 5.916-3.948 1.392-8.353 2.436-13.225 3.132a7.073 7.073 0 01-2.264.349h-2.261a62.79 62.79 0 00-1.392-2.611 217.49 217.49 0 00-1.74-2.958 213.911 213.911 0 00-4.351-6.612c-1.74-2.551-3.828-5.102-6.264-7.658-2.437-2.549-5.221-4.986-8.353-7.309-3.132-2.316-6.672-4.176-10.615-5.568-5.335-1.853-10.903-2.665-16.705-2.436-7.658.468-13.454 3.192-17.402 8.179-3.942 4.992-5.509 10.56-4.698 16.705.816 6.151 4.35 12.007 10.614 17.576 6.266 5.568 15.782 9.048 28.539 10.44 1.159 0 2.551.12 4.176.349 1.392.234 2.959.348 4.699.348 1.741 0 3.768.119 6.09.347h1.044c2.318 6.732 4.176 12.937 5.568 18.62 1.392 5.683 2.318 9.8 2.786 12.356.228.924.402 1.853.521 2.784.115.924.289 1.739.521 2.436.23.463.35 1.044.35 1.74.228.461.348.871.348 1.219 0 .346.114.749.348 1.217a190.895 190.895 0 00-9.223-9.919 526.118 526.118 0 00-8.527-8.352c-2.556-2.437-4.698-4.41-6.438-5.917-1.742-1.512-2.731-2.496-2.959-2.959-.929-.461-1.507-.576-1.74-.346h-.348l-2.784.694a134.324 134.324 0 01-4.7 1.915 57.184 57.184 0 01-4.697 1.565c-3.48 1.392-5.45 4.291-5.916 8.702.466 12.294 2.957 24.128 7.482 35.5a206.432 206.432 0 0016.531 32.714c1.159 1.392 2.436 2.55 3.828 3.479 1.392.925 3.013.812 4.873-.347 1.159-.696 2.376-1.566 3.655-2.61a51.34 51.34 0 003.653-3.307c1.159-.929 2.551-2.207 4.178-3.828 1.62-1.627 3.012-3.019 4.176-4.176l-1.392-2.088c-.698-.697-1.74-1.975-3.134-3.828-5.105-7.196-9.516-14.677-13.225-22.448a112.562 112.562 0 01-8.351-24.189c-.234-1.163.227-1.452 1.392-.87 1.158.576 2.783 1.794 4.872 3.655 2.087 1.855 4.464 4.351 7.134 7.481a214.42 214.42 0 018.178 10.267 73.08 73.08 0 015.222 6.613 5995.24 5995.24 0 004.873 6.96 844.845 844.845 0 013.653 5.57 427.61 427.61 0 014.003 6.264c.228.462.461.81.696 1.044.228.228.463.577.696 1.045a535.623 535.623 0 003.305 5.22 45.27 45.27 0 003.308 4.524 184.522 184.522 0 004.175 5.22c1.621 1.621 3.013 2.204 4.176 1.741.229 0 .463-.12.697-.349 2.551-1.392 5.22-3.425 8.006-6.089 2.784-2.671 4.985-4.932 6.612-6.787 0-.235.114-.523.346-.869.23-.35.35-.758.35-1.219 0-.697-.12-1.277-.35-1.74-1.162-1.393-2.669-3.481-4.522-6.265-1.862-2.784-3.83-6.036-5.918-9.746a228.135 228.135 0 01-6.264-12.006c-2.088-4.296-3.829-8.526-5.221-12.703.463.461 2.088 2.028 4.872 4.697 2.785 2.666 6.147 6.032 10.095 10.095 3.941 4.056 8.118 8.405 12.528 13.051 4.405 4.637 8.468 9.162 12.181 13.572h8.7a2054.523 2054.523 0 00-17.401-23.318A9002.906 9002.906 0 01112.4 96.261c-5.688-7.542-11.083-14.329-16.184-20.358v-.35h-.348v-.348h-.347c-.469-.461-.817-.696-1.045-.696l-.348-.348c-.696-.228-1.625-.348-2.784-.348-.468-.924-.929-2.436-1.392-4.524-.468-2.089-1.277-4.525-2.436-7.309.696 0 1.159-.115 1.392-.347 1.62 0 3.828-.174 6.613-.522 2.784-.348 5.567-1.044 8.351-2.088 2.785-1.046 5.221-2.551 7.309-4.526 2.088-1.968 3.132-4.464 3.132-7.481 0-1.855-.292-3.421-.869-4.7a77.74 77.74 0 01-1.567-3.653c-.466-.696-1.164-1.507-2.088-2.436l-.696-.698a23.865 23.865 0 00-2.436-1.39c-.466-.228-.816-.348-1.044-.348zM48.536 4.904c-.233-.228-.407-.348-.521-.348-.12 0-.295-.115-.523-.348-.235 0-.348-.055-.348-.175 0-.114-.119-.173-.348-.173-.233-.228-.468-.348-.696-.348-.235 0-.467-.115-.696-.348-2.088-.924-4.405-1.621-6.96-2.088C35.659.379 32.413.031 28.699.031c-4.404 0-8.352.817-11.834 2.437-3.942 1.625-7.074 3.948-9.396 6.96-2.317 2.784-4.057 5.803-5.22 9.048-.462 1.861-.812 3.133-1.045 3.829v6.612c.233-.228.348-.576.348-1.044 0-.461.235-1.158.697-2.088v-.696c.232 0 .347-.228.347-.696.235-.228.348-.462.348-.696 0-.228.12-.461.349-.696.234-.462.467-1.044.695-1.74.235-.696.468-1.273.697-1.74 1.163-2.089 3.131-4.525 5.916-7.309 2.322-2.088 5.106-3.828 8.352-5.22 3.48-1.621 6.734-2.551 9.746-2.784 1.86-.229 3.54-.403 5.046-.521a18.241 18.241 0 014.35.173c1.392 0 2.67.059 3.828.173 1.164.12 2.209.175 3.133.175a3.06 3.06 0 001.392.348h1.044c.228.233.577.348 1.044.348z",transform:"translate(430.383 1.004)"}),c.createElement("path",{fill:"currentColor",d:"M8 6.667c.216 0-.144.106-.144.325v3.092c0 .327.459 1.14.785 2.443 2.82.757 4.38 1.517 4.38 2.278 0 .867-1.861 1.896-5.874 3.092-1.086-1.086-2.002-1.953-3.304-2.604-1.522-1.302-2.654-2.877-2.654-4.72V9.108c0-.76-.113-1.401.212-2.484 2.604-3.8 3.63-6.391 3.63-6.391h.488c.217 0 .921.651 2.116 1.302C8.719 1.1 9.532.233 10.076.233h1.791c.325 0-.011-.024 1.322.738v.162C9.189 2.216 8 4.063 8 6.667",transform:"translate(305.477 357.1)"}),c.createElement("path",{fill:"currentColor",d:"M32 2.667c0 .866.037 1.681-.504 2.441-.76.325-.829 1.791-.829 4.395v.162c0 3.907-.123 6.943-.339 9.115 0 2.06-.552 3.092-1.635 3.092-.544 0-1.142-.54-1.793-1.843-.435-3.905-1.089-5.748-1.957-5.748h-.488s-.455.862-1.788 2.058v8.464c0 .976-1.006 1.464-1.222 1.464-1.196-.651-1.669-2.172-1.669-4.558 0-2.929.224-5.805.549-8.626l-.946-2.442c-.435 0-1.559.164-3.186.49-.869 1.082-1.526 2.06-2.86 2.929v3.417l.435 2.931c-.22 0-.272.107-.272.325-.325 0-.949-.814-1.925-2.441-1.412.432-2.103 1.735-2.103 3.905 0 4.014.487 7.326 1.899 9.93 4.122.976 5.966 1.789 5.966 2.441v.651c0 .432.062.92-.264 1.465-.544 1.408-1.84 2.548-4.118 3.417-.978.978-1.41 3.147-1.41 6.511.867 4.883 1.656 7.324 2.307 7.324.432 2.495 1.919 4.501 3.871 6.023 1.082.757 3.614 2.116 7.614 4.069v.813c0 .216-.438.379-.765.488-4.557 0-6.973-.272-6.973-.813-1.738 0-5.272-2.66-9.936-7.976C5.161 53.285 2.667 47.532 0 39.288v-1.14c0-7.38 1.783-13.835 4.823-19.368 2.385-5.208 7.237-9.704 14.292-13.717C25.515 2.24 29.663.948 31.291.948h.325c.651 0 .384.687.384 1.556v.163z",transform:"translate(281.333 328.385)"}),c.createElement("path",{fill:"currentColor",d:"M244 10.667c0 13.778-3.913 26.778-11.183 39.474-16.926 25.716-40.425 38.335-69.938 38.335H74.013c-16.496 0-31.36-3.939-44.597-12.293C15.863 66.325 6.168 55.115.309 42.32c1.955.704 3.899 1.445 5.835 2.104 5.271 10.141 12.844 18.645 22.784 25.985 14.104 9.547 28.589 14.067 43.457 14.067h92.122c11.934 0 24.1-2.916 36.362-9.316C226.912 59.751 240 36.489 240 4.807v-3.66a149.574 149.574 0 004 8.908v.612z",transform:"translate(194.667 203.523)"}),c.createElement("path",{fill:"currentColor",d:"M18.667 10.667h-2.279c-2.063-1.334-3.853-2.618-5.371-2.618-.218 0-1.11.263-2.193.482-1.521-.326-2.52-.606-2.52-1.147v-.651l.567-1.628c-.544-.544-1.13-.561-1.996-.668-1.847.326-2.647.896-2.647 3.563h-.163C1.74 5.333 1.251 4.325.6 2.697.6 1.396 1.468 0 3.204 0h.977c1.735 1.333 3.743 2.389 6.022 2.389 1.193 2.822 2.658 4.207 4.394 4.207 1.844 1.409 2.931 2.103 3.256 2.103.107 0 .542.386 1.302 1.797 0 .327-.163.171-.488.171",transform:"translate(325.696 330.667)"}),c.createElement("path",{fill:"currentColor",fillRule:"nonzero",d:"M176 116c-6.62 7.703-10.396 14.323-10.396 19.857v3.58c0 7.378 1.329 14.486 4.152 21.322 3.797 9.657 10.919 16.709 21.444 21.158 8.029 2.606 13.164 3.907 15.443 3.907 4.122-.651 6.878-1.248 8.29-1.791 7.594-1.845 14.282-5.045 19.599-9.602 9.005-9.334 13.739-20.996 13.739-34.994v-1.465c-1.334-4.449-2.514-9.928-6.42-16.439-9.766-12.588-21.602-18.88-35.274-18.88-11.286 0-21.462 4.448-30.577 13.347zm-13.063 20.345c-1.333-.761-6.261-2.55-14.614-5.372-10.092-4.124-23.612-8.03-40.431-11.718-.219.652-.792 3.85-1.66 9.604 22.027 6.4 38.124 15.856 48.324 28.118 14.649 24.306 31.451 36.584 50.439 36.584h3.256c16.382 0 31.302-9.24 44.758-27.469 2.711-4.667 5.588-8.797 8.627-12.269 7.052-7.162 15.552-13.108 25.317-17.772 14.323-5.752 22.651-8.658 25.318-8.658v-.488c-1.334 0-2.667-2.766-2.667-8.301v-.325c-1.333 0-7.301 1.465-18.369 4.394-2.823 0-16.346 4.395-40.434 13.184l-.686 8.626c0 6.185-1.864 13.074-5.551 20.67-2.279 5.099-6.52 9.983-12.705 14.65-7.487 4.882-15.792 7.702-24.907 8.462-1.845 0-4.917-.488-9.475-1.464-23.112-6.078-34.54-22.842-34.54-50.293v-.163zm163.67-102.702c-3.039 6.836-8.914 14.936-17.919 24.269-17.145 14.865-35.227 22.316-54.539 22.316h-25.228c-.434 0-.65.723-.65 1.917v2.768c0 2.059.488 3.85 1.464 5.371 4.664 8.028 18.066 12.044 40.202 12.044 27.886 0 64.942-5.101 111.166-15.3 2.929 1.735 4.393 5.209 4.393 10.417 0 .976.027 3.255-.299 6.836-3.254.651-18.26 2.658-43.593 6.023v.976c1.333-.325 2.468-.488 3.555-.488 10.522 0 31.045 2.433 61.754 7.209 1.408-.325 2.347-.44 2.998-.44h.813c2.169 0 2.88 1.096 4.213 3.484v1.466c-1.333 2.929-3.345 4.384-5.189 4.384h-.325l-1.14-.21c-2.388-2.604-3.69-3.79-3.907-3.79h-1.464c-14.759-2.667-27.128-4-37.109-4h-3.094c-8.462 0-15.68.749-21.646 2.052-.219 0-.382 1.352-.488 3.956-2.498 1.082-9.603 2.792-21.322 5.069l-3.256-.964c-5.317 1.303-11.286 3.099-17.902 5.377a127.396 127.396 0 00-21.16 10.42c-7.922 4.774-14.216 11.088-18.88 18.468-14.758 21.811-30.599 32.955-47.526 32.955h-7.813c-16.6 0-32.281-11.101-47.036-32.26-7.163-13.456-23.764-23.74-49.805-33.073h-.271v1.544c0 3.581-3.201 6.076-9.712 7.486l-20.096-4.394c-1.301 0-2.192-3.527-2.192-10.579v-.325l.592-1.127c-7.271-1.301-14.439-1.939-22.032-1.939h-3.419c-10.634 0-21.43 1.016-32.389 3.079-4.124.432-6.347.751-6.673.969-1.846 2.495-3.379 3.74-4.462 3.74-2.062 0-3.617-1.468-4.95-4.397v-1.465c0-2.279 1.328-3.259 3.716-3.259H4.8c.652 0 1.681-.08 3.093.245 30.815-4.666 51.028-7.118 61.014-7.118 2.278 0 4.697.148 4.697.692v-3.255c-2.667-.652-17.719-2.66-44.737-6.023-1.195 0-1.698-2.441-1.698-7.324.107-5.426 1.618-8.898 4.44-10.417 46.44 10.199 83.302 15.3 110.538 15.3 6.185 0 12.542-.381 19.272-1.139 15.3-2.824 22.852-8.248 22.852-16.276v-2.768c0-1.194-.002-1.917-.434-1.917h-32.552c-17.797 0-34.993-6.528-51.596-19.549-12.718-11.74-21.317-24.599-25.844-38.544a377.32 377.32 0 005.08 1.969c3.36 8.881 8.543 17.24 15.556 25.463 16.927 17.904 37.542 26.661 61.85 26.661h92.772c20.724 0 39.062-6.537 55.013-19.991 7.92-7.596 13.045-13.142 14.891-16.83 7.184-10.867 11.542-23.762 12.836-38.768.893 1.596 1.81 3.16 2.753 4.69-.841 9.231-3.383 18.666-7.989 28.314z",transform:"translate(110.396 219.772)"}),c.createElement("path",{fill:"currentColor",d:"M12 2.667h.163l.813.713c.217 3.147.596 4.62 1.14 4.62h.325l-.237-1.597V2.984c0-1.085.832-1.651 1.703-2.984h1.626c.543 0 .671.812.671 2.008v.325c0 6.943-.916 10.416-1.349 10.416-1.736 1.41-2.651 2.768-2.651 4.07v1.953c0 .216.075-.105-.251-.105h-.325c-1.628-1.334-2.604-2.796-2.931-2.796-.434 0-.76 1.069-.976 2.916l.326 7.78C9.828 27.544 9.559 28 9.233 28h-.814c-.326 0-.882-.332-.882-1.416V16H6.14c-.435 0-1.269.112-1.269.331v4.557c0 .541-.288.813-.504.813-1.628 0-2.287-.65-2.287-1.952.216-3.04.403-4.884.403-5.534-.219-3.799-.287-5.752-.287-5.859-.544 0-1.176-1.245-1.935-3.415 0-.544.615-.941 1.811-2.274h3.58c.325 0 .596.59.815 1.461l-.49 2.261C6.195 7.04 6.573 8 7.117 8h1.466c.65 0 1.301-.172 1.952-1.039.433-3.04.921-4.294 1.465-4.294",transform:"translate(335.129 358.667)"}),c.createElement("path",{fill:"currentColor",d:"M1.333 1.333v-.052c0-.325.43.052.103.052h-.103z",transform:"translate(444 181.333)"}),c.createElement("path",{fill:"currentColor",d:"M1.333 1.333v.051c-.317-.004 0-.375 0-.051",transform:"translate(441.333 181.281)"}))))};var Z=t(5742);function N(){return c.createElement("header",{className:(0,a.Z)("hero hero--primary",o.heroBanner)},c.createElement("div",{className:"container"},c.createElement(k,{className:o.logo,width:"350"}),c.createElement("p",{className:"hero__subtitle"},"The stylish Node.js middleware engine for AWS Lambda"),c.createElement("p",null,"Organise your Lambda code, remove code duplication, focus on business logic!"),c.createElement("div",{className:o.buttons},c.createElement(r.Z,{className:"button button--secondary button--lg",to:"/docs"},"Get started"))))}const C=()=>{const e="Middy, the stylish Node.js middleware engine for AWS Lambda",l="Middy is a Node.js middleware engine for AWS Lambda that lets you organise your Lambda code, remove code duplication, and focus on business logic!";return c.createElement(Z.Z,null,c.createElement("meta",{charSet:"utf-8"}),c.createElement("title",null,e),c.createElement("meta",{name:"description",content:l}),c.createElement("link",{rel:"canonical",href:"https://middy.js.org"}),c.createElement("meta",{property:"og:title",content:e}),c.createElement("meta",{property:"og:description",content:l}),c.createElement("meta",{property:"og:image",content:"https://middy.js.org/img/middy-og-image.png"}),c.createElement("meta",{property:"og:image:width",content:"1200"}),c.createElement("meta",{property:"og:image:height",content:"630"}))};function x(){return c.createElement(n.Z,null,c.createElement(C,null),c.createElement(N,null),c.createElement("main",null,c.createElement(d,null),c.createElement(z,null),c.createElement(g,null),c.createElement(S,null)))}}}]); \ No newline at end of file diff --git a/assets/js/c4f5d8e4.900ed3bc.js b/assets/js/c4f5d8e4.900ed3bc.js new file mode 100644 index 000000000..ad525b879 --- /dev/null +++ b/assets/js/c4f5d8e4.900ed3bc.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[4195],{1843:(e,c,l)=>{l.d(c,{Z:()=>n});var a=l(7294);function t(){return t=Object.assign?Object.assign.bind():function(e){for(var c=1;c<arguments.length;c++){var l=arguments[c];for(var a in l)Object.prototype.hasOwnProperty.call(l,a)&&(e[a]=l[a])}return e},t.apply(this,arguments)}const n=e=>{let{title:c,titleId:l,...n}=e;return a.createElement("svg",t({viewBox:"0 0 64 64",xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",style:{fillRule:"evenodd",clipRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},"aria-labelledby":l},n),c?a.createElement("title",{id:l},c):null,a.createElement("path",{d:"M50.667 21.333A5.336 5.336 0 0 0 45.333 16H8a5.335 5.335 0 0 0-5.333 5.333v21.334A5.335 5.335 0 0 0 8 48h37.333a5.336 5.336 0 0 0 5.334-5.333V21.333Z",style:{fill:"#b0ff5c",fillOpacity:.75},transform:"translate(5 5)"}),a.createElement("path",{d:"M50.667 21.333A5.336 5.336 0 0 0 45.333 16H8a5.335 5.335 0 0 0-5.333 5.333v21.334A5.335 5.335 0 0 0 8 48h37.333a5.336 5.336 0 0 0 5.334-5.333V21.333Z",style:{fill:"none",stroke:"currentColor",strokeWidth:2}}),a.createElement("path",{d:"M61.333 34.667v-5.334",style:{fill:"none",fillRule:"nonzero",stroke:"currentColor",strokeWidth:2}}))}},1126:(e,c,l)=>{l.d(c,{Z:()=>n});var a=l(7294);function t(){return t=Object.assign?Object.assign.bind():function(e){for(var c=1;c<arguments.length;c++){var l=arguments[c];for(var a in l)Object.prototype.hasOwnProperty.call(l,a)&&(e[a]=l[a])}return e},t.apply(this,arguments)}const n=e=>{let{title:c,titleId:l,...n}=e;return a.createElement("svg",t({viewBox:"0 0 64 64",xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",style:{fillRule:"evenodd",clipRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},"aria-labelledby":l},n),c?a.createElement("title",{id:l},c):null,a.createElement("path",{d:"M34.667 5.333 8 37.333h24l-2.667 21.334 26.667-32H32l2.667-21.334Z",style:{fill:"#fff746",fillOpacity:.75,fillRule:"nonzero"},transform:"translate(4 4)"}),a.createElement("path",{d:"M34.667 5.333 8 37.333h24l-2.667 21.334 26.667-32H32l2.667-21.334Z",style:{fill:"none",fillRule:"nonzero",stroke:"currentColor",strokeWidth:2}}))}},8509:(e,c,l)=>{l.d(c,{Z:()=>n});var a=l(7294);function t(){return t=Object.assign?Object.assign.bind():function(e){for(var c=1;c<arguments.length;c++){var l=arguments[c];for(var a in l)Object.prototype.hasOwnProperty.call(l,a)&&(e[a]=l[a])}return e},t.apply(this,arguments)}const n=e=>{let{title:c,titleId:l,...n}=e;return a.createElement("svg",t({viewBox:"0 0 64 64",xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",style:{fillRule:"evenodd",clipRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},"aria-labelledby":l},n),c?a.createElement("title",{id:l},c):null,a.createElement("path",{d:"M7.978 21.667v26.666L34.481 61l26.502-12.667V21.667L34.481 9 7.978 21.667Z",style:{fill:"#a9e7ff",fillOpacity:.75},transform:"matrix(.94331 0 0 1 3.474 3)"}),a.createElement("path",{d:"M32 5.333 5.333 18.667 32 32l26.667-13.333L32 5.333ZM5.333 45.333 32 58.667l26.667-13.334M5.333 32 32 45.333 58.667 32",style:{fill:"none",fillRule:"nonzero",stroke:"currentColor",strokeWidth:2}}))}},3193:(e,c,l)=>{l.d(c,{Z:()=>n});var a=l(7294);function t(){return t=Object.assign?Object.assign.bind():function(e){for(var c=1;c<arguments.length;c++){var l=arguments[c];for(var a in l)Object.prototype.hasOwnProperty.call(l,a)&&(e[a]=l[a])}return e},t.apply(this,arguments)}const n=e=>{let{title:c,titleId:l,...n}=e;return a.createElement("svg",t({viewBox:"0 0 64 64",xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",style:{fillRule:"evenodd",clipRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},"aria-labelledby":l},n),c?a.createElement("title",{id:l},c):null,a.createElement("path",{d:"M2.667 32S13.333 10.667 32 10.667C50.667 10.667 61.333 32 61.333 32S50.667 53.333 32 53.333C13.333 53.333 2.667 32 2.667 32Z",style:{fill:"#e3b7ed",fillOpacity:.75,fillRule:"nonzero"},transform:"translate(2.667 6)"}),a.createElement("path",{d:"M2.667 32S13.333 10.667 32 10.667C50.667 10.667 61.333 32 61.333 32S50.667 53.333 32 53.333C13.333 53.333 2.667 32 2.667 32Z",style:{fill:"none",fillRule:"nonzero",stroke:"currentColor",strokeWidth:2}}),a.createElement("circle",{cx:32,cy:32,r:8,style:{fill:"none",stroke:"currentColor",strokeWidth:2}}))}},5152:(e,c,l)=>{l.d(c,{Z:()=>n});var a=l(7294);function t(){return t=Object.assign?Object.assign.bind():function(e){for(var c=1;c<arguments.length;c++){var l=arguments[c];for(var a in l)Object.prototype.hasOwnProperty.call(l,a)&&(e[a]=l[a])}return e},t.apply(this,arguments)}const n=e=>{let{title:c,titleId:l,...n}=e;return a.createElement("svg",t({viewBox:"0 0 64 64",xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",style:{fillRule:"evenodd",clipRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},"aria-labelledby":l},n),c?a.createElement("title",{id:l},c):null,a.createElement("path",{d:"M51.733 40a4.409 4.409 0 0 0 .88 4.853l.16.16a5.336 5.336 0 0 1 0 7.547 5.335 5.335 0 0 1-7.546 0l-.16-.16a4.408 4.408 0 0 0-4.854-.88 4.406 4.406 0 0 0-2.666 4.027V56c0 2.926-2.408 5.333-5.334 5.333-2.925 0-5.333-2.407-5.333-5.333v-.24A4.41 4.41 0 0 0 24 51.733a4.409 4.409 0 0 0-4.853.88l-.16.16a5.336 5.336 0 0 1-7.547 0 5.335 5.335 0 0 1 0-7.546l.16-.16a4.408 4.408 0 0 0 .88-4.854 4.406 4.406 0 0 0-4.027-2.666H8c-2.926 0-5.333-2.408-5.333-5.334 0-2.925 2.407-5.333 5.333-5.333h.24A4.41 4.41 0 0 0 12.267 24a4.409 4.409 0 0 0-.88-4.853l-.16-.16a5.336 5.336 0 0 1 0-7.547 5.335 5.335 0 0 1 7.546 0l.16.16a4.408 4.408 0 0 0 4.854.88H24a4.407 4.407 0 0 0 2.667-4.027V8c0-2.926 2.407-5.333 5.333-5.333S37.333 5.074 37.333 8v.24A4.408 4.408 0 0 0 40 12.267a4.409 4.409 0 0 0 4.853-.88l.16-.16a5.336 5.336 0 0 1 7.547 0 5.335 5.335 0 0 1 0 7.546l-.16.16a4.408 4.408 0 0 0-.88 4.854V24a4.407 4.407 0 0 0 4.027 2.667H56c2.926 0 5.333 2.407 5.333 5.333S58.926 37.333 56 37.333h-.24A4.408 4.408 0 0 0 51.733 40Z",style:{fill:"#ffd674",fillOpacity:.75,fillRule:"nonzero"},transform:"matrix(.82954 0 0 .82954 10.454 10.454)"}),a.createElement("circle",{cx:32,cy:32,r:8,style:{fill:"none",stroke:"currentColor",strokeWidth:2},transform:"matrix(.82954 0 0 .82954 5.455 5.455)"}),a.createElement("path",{d:"M51.733 40a4.409 4.409 0 0 0 .88 4.853l.16.16a5.336 5.336 0 0 1 0 7.547 5.335 5.335 0 0 1-7.546 0l-.16-.16a4.408 4.408 0 0 0-4.854-.88 4.406 4.406 0 0 0-2.666 4.027V56c0 2.926-2.408 5.333-5.334 5.333-2.925 0-5.333-2.407-5.333-5.333v-.24A4.41 4.41 0 0 0 24 51.733a4.409 4.409 0 0 0-4.853.88l-.16.16a5.336 5.336 0 0 1-7.547 0 5.335 5.335 0 0 1 0-7.546l.16-.16a4.408 4.408 0 0 0 .88-4.854 4.406 4.406 0 0 0-4.027-2.666H8c-2.926 0-5.333-2.408-5.333-5.334 0-2.925 2.407-5.333 5.333-5.333h.24A4.41 4.41 0 0 0 12.267 24a4.409 4.409 0 0 0-.88-4.853l-.16-.16a5.336 5.336 0 0 1 0-7.547 5.335 5.335 0 0 1 7.546 0l.16.16a4.408 4.408 0 0 0 4.854.88H24a4.407 4.407 0 0 0 2.667-4.027V8c0-2.926 2.407-5.333 5.333-5.333S37.333 5.074 37.333 8v.24A4.408 4.408 0 0 0 40 12.267a4.409 4.409 0 0 0 4.853-.88l.16-.16a5.336 5.336 0 0 1 7.547 0 5.335 5.335 0 0 1 0 7.546l-.16.16a4.408 4.408 0 0 0-.88 4.854V24a4.407 4.407 0 0 0 4.027 2.667H56c2.926 0 5.333 2.407 5.333 5.333S58.926 37.333 56 37.333h-.24A4.408 4.408 0 0 0 51.733 40Z",style:{fill:"none",fillRule:"nonzero",stroke:"currentColor",strokeWidth:2},transform:"matrix(.82954 0 0 .82954 5.455 5.455)"}))}},3838:(e,c,l)=>{l.d(c,{Z:()=>n});var a=l(7294);function t(){return t=Object.assign?Object.assign.bind():function(e){for(var c=1;c<arguments.length;c++){var l=arguments[c];for(var a in l)Object.prototype.hasOwnProperty.call(l,a)&&(e[a]=l[a])}return e},t.apply(this,arguments)}const n=e=>{let{title:c,titleId:l,...n}=e;return a.createElement("svg",t({viewBox:"0 0 64 64",xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",style:{fillRule:"evenodd",clipRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},"aria-labelledby":l},n),c?a.createElement("title",{id:l},c):null,a.createElement("path",{d:"M56 42.667V21.333a5.338 5.338 0 0 0-2.667-4.613L34.667 6.053a5.343 5.343 0 0 0-5.334 0L10.667 16.72A5.338 5.338 0 0 0 8 21.333v21.334a5.338 5.338 0 0 0 2.667 4.613l18.666 10.667a5.343 5.343 0 0 0 5.334 0L53.333 47.28A5.338 5.338 0 0 0 56 42.667Z",style:{fill:"#ffc8be",fillRule:"nonzero"},transform:"translate(4 5)"}),a.createElement("path",{d:"M56 42.667V21.333a5.338 5.338 0 0 0-2.667-4.613L34.667 6.053a5.343 5.343 0 0 0-5.334 0L10.667 16.72A5.338 5.338 0 0 0 8 21.333v21.334a5.338 5.338 0 0 0 2.667 4.613l18.666 10.667a5.343 5.343 0 0 0 5.334 0L53.333 47.28A5.338 5.338 0 0 0 56 42.667Z",style:{fill:"none",fillRule:"nonzero",stroke:"currentColor",strokeWidth:2},transform:"translate(0 -1)"}),a.createElement("path",{d:"m20 11.227 12 6.933 12-6.933M20 50.773v-11.84L8 32M56 32l-12 6.933v11.84M8.72 18.56 32 32.027 55.28 18.56M32 57.66V32",style:{fill:"none",fillRule:"nonzero",stroke:"currentColor",strokeWidth:2}}))}},1658:(e,c,l)=>{l.r(c),l.d(c,{default:()=>L});l(7294);var a=l(6010),t=l(63),n=l(9960);const r={heroBanner:"heroBanner_qdFl",buttons:"buttons_AeoN",logo:"logo_Ukns"},s={features:"features_xdhU",featureSvg:"featureSvg__8YW"};var o=l(5893);const i=[{title:"Simple but powerful",Svg:l(5152).Z,description:(0,o.jsx)(o.Fragment,{children:"A middleware engine makes your code more organised, removes duplication and uniforms the handling of non-functional concerns like authentication, authorization, validation, and serialization."})},{title:"Focus on what matters",Svg:l(3193).Z,description:(0,o.jsx)(o.Fragment,{children:"By pushing all the non-functional code to middlewares, you can be productive and focus on what matters the most: the business logic!"})},{title:"Small core",Svg:l(3838).Z,description:(0,o.jsx)(o.Fragment,{children:"Middy comes with a very small core and an unobtrusive API to add the minimum amount of overhead to your code."})},{title:"Batteries included",Svg:l(1843).Z,description:(0,o.jsxs)(o.Fragment,{children:["Middy comes with a large set of"," ",(0,o.jsx)(n.Z,{to:"/docs/middlewares/intro",children:"official middlewares"})," and"," ",(0,o.jsx)(n.Z,{to:"/docs/intro/utilities",children:"utilities"})," that can be used out of the box to address the most common non-functional use cases."]})},{title:"Blazing fast",Svg:l(1126).Z,description:(0,o.jsx)(o.Fragment,{children:"Middy has been engineered to keep your lambda as fast as possible. The minimal core keeps your lambda size small and your cold starts under control. Add only what you need!"})},{title:"Extensible",Svg:l(8509).Z,description:(0,o.jsxs)(o.Fragment,{children:["Do you need to do more? It's really easy to"," ",(0,o.jsx)(n.Z,{to:"/docs/writing-middlewares/intro",children:"write your own custom middlewares"}),". And, if that's not enough, you can even extend middy itself through its ",(0,o.jsx)(n.Z,{to:"/docs/intro/hooks",children:"hooks"}),"."]})}];function h(e){let{Svg:c,title:l,description:t}=e;return(0,o.jsxs)("div",{className:(0,a.Z)("col col--4"),children:[(0,o.jsx)("div",{className:"padding-horiz--md",children:(0,o.jsx)(c,{className:s.featureSvg,alt:l})}),(0,o.jsxs)("div",{className:" padding-horiz--md",children:[(0,o.jsx)("h3",{children:l}),(0,o.jsx)("p",{children:t})]})]})}function d(){return(0,o.jsx)("section",{className:s.features,children:(0,o.jsx)("div",{className:"container",children:(0,o.jsx)("div",{className:"row",children:i.map(((e,c)=>(0,o.jsx)(h,{...e},c)))})})})}const v={features:"features_ALof",featureSvg:"featureSvg_K4k2"},u=e=>(0,o.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",id:"Layer_1","data-name":"Layer 1",viewBox:"0 0 1658 547",...e,children:[(0,o.jsx)("defs",{children:(0,o.jsx)("style",{children:".cls-1{fill:#29bbbe}.cls-2{fill:#3880d9}"})}),(0,o.jsx)("title",{children:"fourthereom_logo_colour"}),(0,o.jsx)("path",{d:"m494.29 227.64-3.79 11.76a67.26 67.26 0 0 0-18.43-3q-7.79 0-10.7 4.4t-2.92 17.74V284h32.42v12.51h-32.42v60.28H444v-60.25h-24.26V284H444v-26.91q0-18.43 6.29-25.84t21.77-7.41a75.66 75.66 0 0 1 22.23 3.8ZM554.59 258q19.92 0 31.67 13.89T598 308.48q0 22.88-11.77 36.86t-31.67 14q-20 0-31.71-13.93t-11.72-36.91q0-22.78 11.76-36.62t31.7-13.88Zm0 88.72q13.15 0 20.75-11.11t7.59-26.95q0-16.68-7.5-27.41t-20.84-10.75q-13.43 0-20.83 10.61t-7.41 27.55q0 16.11 7.5 27.08a23.77 23.77 0 0 0 20.74 10.99ZM698.05 356.82H683.6v-14.26q-15.6 16.58-32.78 16.58-27.14 0-27.13-32.88v-65.93h14.44v61.77q0 12.31 3.89 18.38t13.15 6.06q13.25 0 28.43-16.48v-69.73h14.45ZM798.36 262.92l-5.84 13.89q-9.52-4.17-16.52-4.17a24 24 0 0 0-12.5 3.66 39.91 39.91 0 0 0-11.25 10.47q-5.14 6.8-5.14 7.64v62.41h-14.32v-96.49h14.36v19.54q11.57-21.86 30-21.86a48.77 48.77 0 0 1 21.21 4.91Z",className:"cls-1"}),(0,o.jsx)("path",{d:"M917.1 244.94h-40.2v111.88h-21.8V244.94h-40.39v-18.77H917.1ZM1021.23 356.82h-21.62v-61.06c0-16.12-3.41-21.23-13.46-21.23-8 0-16.69 4.73-26.17 14v68.26h-21.43V226.17H960v42.67c9.86-8 20.1-11.95 30.53-11.95 22.94 0 30.72 10.81 30.72 34.51ZM1132 312.26h-65.61v.57c0 7.4 2.65 14 7.77 20.1a25.69 25.69 0 0 0 19.72 8.91c9.29 0 19.53-2.08 30.72-6.44l3.6 17.63a95 95 0 0 1-34.32 6.26c-14.79 0-26.74-4.74-36-14.41S1044 323.07 1044 308.66c0-15 4.36-27.31 12.89-37 8.54-9.86 19.91-14.79 33.76-14.79 10.24 0 19.72 4.55 28.25 13.46 8.73 8.91 13.09 20.86 13.09 36.22Zm-23.14-16.12c-2.08-13.46-9.1-21.8-18.39-21.8-10.62 0-18 7.2-22.38 21.8ZM1232.89 271.3c8.91 9.67 13.27 21.81 13.27 36.79 0 14.22-4.55 26.17-13.46 36.22s-20.1 15-33.57 15-24.84-4.93-33.75-14.79c-8.91-10.05-13.46-22.19-13.46-36.41 0-15 4.36-27.12 13.27-36.79s20.1-14.41 33.94-14.41 25.03 4.72 33.76 14.39Zm-9.48 36.79c0-20.48-7.59-33.75-24.28-33.75-15.93 0-24.46 12.32-24.46 33.75 0 21.05 8.53 33.56 24.46 33.56s24.28-12.32 24.28-33.56ZM1336.06 281q-10.53-4.55-18.77-4.55c-6.83 0-14 3.88-19.91 13.65a46.38 46.38 0 0 0-4.94 11.9v54.85h-21.61v-97.69h21.61v18.4c8.16-13.84 17.45-20.67 27.69-20.67 7.21 0 15.55 1.52 24.84 4.74ZM1442.45 312.26h-65.61v.57c0 7.4 2.66 14 7.78 20.1a25.68 25.68 0 0 0 19.72 8.91c9.29 0 19.53-2.08 30.72-6.44l3.6 17.63a95 95 0 0 1-34.32 6.26c-14.79 0-26.74-4.74-36-14.41s-13.84-21.81-13.84-36.22c0-15 4.36-27.31 12.89-37 8.53-9.86 19.91-14.79 33.75-14.79 10.24 0 19.73 4.55 28.26 13.46 8.72 8.91 13.08 20.86 13.08 36.22Zm-23.13-16.12c-2.09-13.46-9.1-21.8-18.4-21.8-10.61 0-18 7.2-22.37 21.8ZM1583.21 274.66c-2.15-11.19-9.63-20.15-23.93-18.89s-23.93 14.15-23.93 14.15-2.37-10.51-15.64-13.69c-11.77-2.83-22.34 5.11-25.19 7.51a21.06 21.06 0 0 0-3.92 4.32V258h-21.72v101.12h21.8V287.7s-.3-4 6.59-10.08c18.15-15.93 18.6 13.71 18.6 13.71v67.79h21.78v-72.61a26.38 26.38 0 0 1 9.63-11.41c14.75-9.62 15.48 15.71 15.48 15.71v68.31h21.71v-71.94a56.11 56.11 0 0 0-1.26-12.52ZM303.34 59.31 428.11 483.5 287.53 255.59l15.81-196.28z",className:"cls-2"}),(0,o.jsx)("path",{d:"M293.83 59.31 68.53 187.69h160.75l64.55-128.38zM312.39 59.31l251.76 128.38H349.94L312.39 59.31zM303.37 59.31 189 286.85l98.53-31.25 15.84-196.29z",className:"cls-1"})]}),m=e=>(0,o.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",id:"Layer_1",x:0,y:0,style:{enableBackground:"new 0 0 304 182"},viewBox:"0 0 304 182",...e,children:[(0,o.jsx)("style",{children:"st0{fill:#252F3E;} .st1{fill-rule:evenodd;clip-rule:evenodd;fill:#FF9900;} html[data-theme='dark'] .st0 {fill: #fcfcfc;}"}),(0,o.jsx)("path",{d:"M86.4 66.4c0 3.7.4 6.7 1.1 8.9.8 2.2 1.8 4.6 3.2 7.2.5.8.7 1.6.7 2.3 0 1-.6 2-1.9 3L83.2 92c-.9.6-1.8.9-2.6.9-1 0-2-.5-3-1.4-1.4-1.5-2.6-3.1-3.6-4.7-1-1.7-2-3.6-3.1-5.9-7.8 9.2-17.6 13.8-29.4 13.8-8.4 0-15.1-2.4-20-7.2-4.9-4.8-7.4-11.2-7.4-19.2 0-8.5 3-15.4 9.1-20.6 6.1-5.2 14.2-7.8 24.5-7.8 3.4 0 6.9.3 10.6.8 3.7.5 7.5 1.3 11.5 2.2v-7.3c0-7.6-1.6-12.9-4.7-16-3.2-3.1-8.6-4.6-16.3-4.6-3.5 0-7.1.4-10.8 1.3-3.7.9-7.3 2-10.8 3.4-1.6.7-2.8 1.1-3.5 1.3-.7.2-1.2.3-1.6.3-1.4 0-2.1-1-2.1-3.1v-4.9c0-1.6.2-2.8.7-3.5.5-.7 1.4-1.4 2.8-2.1 3.5-1.8 7.7-3.3 12.6-4.5C41 1.9 46.2 1.3 51.7 1.3c11.9 0 20.6 2.7 26.2 8.1 5.5 5.4 8.3 13.6 8.3 24.6v32.4zM45.8 81.6c3.3 0 6.7-.6 10.3-1.8 3.6-1.2 6.8-3.4 9.5-6.4 1.6-1.9 2.8-4 3.4-6.4.6-2.4 1-5.3 1-8.7v-4.2c-2.9-.7-6-1.3-9.2-1.7-3.2-.4-6.3-.6-9.4-.6-6.7 0-11.6 1.3-14.9 4-3.3 2.7-4.9 6.5-4.9 11.5 0 4.7 1.2 8.2 3.7 10.6 2.4 2.5 5.9 3.7 10.5 3.7zm80.3 10.8c-1.8 0-3-.3-3.8-1-.8-.6-1.5-2-2.1-3.9L96.7 10.2c-.6-2-.9-3.3-.9-4 0-1.6.8-2.5 2.4-2.5h9.8c1.9 0 3.2.3 3.9 1 .8.6 1.4 2 2 3.9l16.8 66.2 15.6-66.2c.5-2 1.1-3.3 1.9-3.9.8-.6 2.2-1 4-1h8c1.9 0 3.2.3 4 1 .8.6 1.5 2 1.9 3.9l15.8 67 17.3-67c.6-2 1.3-3.3 2-3.9.8-.6 2.1-1 3.9-1h9.3c1.6 0 2.5.8 2.5 2.5 0 .5-.1 1-.2 1.6-.1.6-.3 1.4-.7 2.5l-24.1 77.3c-.6 2-1.3 3.3-2.1 3.9-.8.6-2.1 1-3.8 1h-8.6c-1.9 0-3.2-.3-4-1-.8-.7-1.5-2-1.9-4L156 23l-15.4 64.4c-.5 2-1.1 3.3-1.9 4-.8.7-2.2 1-4 1h-8.6zm128.5 2.7c-5.2 0-10.4-.6-15.4-1.8-5-1.2-8.9-2.5-11.5-4-1.6-.9-2.7-1.9-3.1-2.8-.4-.9-.6-1.9-.6-2.8v-5.1c0-2.1.8-3.1 2.3-3.1.6 0 1.2.1 1.8.3.6.2 1.5.6 2.5 1 3.4 1.5 7.1 2.7 11 3.5 4 .8 7.9 1.2 11.9 1.2 6.3 0 11.2-1.1 14.6-3.3 3.4-2.2 5.2-5.4 5.2-9.5 0-2.8-.9-5.1-2.7-7-1.8-1.9-5.2-3.6-10.1-5.2L246 52c-7.3-2.3-12.7-5.7-16-10.2-3.3-4.4-5-9.3-5-14.5 0-4.2.9-7.9 2.7-11.1 1.8-3.2 4.2-6 7.2-8.2 3-2.3 6.4-4 10.4-5.2 4-1.2 8.2-1.7 12.6-1.7 2.2 0 4.5.1 6.7.4 2.3.3 4.4.7 6.5 1.1 2 .5 3.9 1 5.7 1.6 1.8.6 3.2 1.2 4.2 1.8 1.4.8 2.4 1.6 3 2.5.6.8.9 1.9.9 3.3v4.7c0 2.1-.8 3.2-2.3 3.2-.8 0-2.1-.4-3.8-1.2-5.7-2.6-12.1-3.9-19.2-3.9-5.7 0-10.2.9-13.3 2.8-3.1 1.9-4.7 4.8-4.7 8.9 0 2.8 1 5.2 3 7.1 2 1.9 5.7 3.8 11 5.5l14.2 4.5c7.2 2.3 12.4 5.5 15.5 9.6 3.1 4.1 4.6 8.8 4.6 14 0 4.3-.9 8.2-2.6 11.6-1.8 3.4-4.2 6.4-7.3 8.8-3.1 2.5-6.8 4.3-11.1 5.6-4.5 1.4-9.2 2.1-14.3 2.1z",class:"st0"}),(0,o.jsx)("path",{d:"M273.5 143.7c-32.9 24.3-80.7 37.2-121.8 37.2-57.6 0-109.5-21.3-148.7-56.7-3.1-2.8-.3-6.6 3.4-4.4 42.4 24.6 94.7 39.5 148.8 39.5 36.5 0 76.6-7.6 113.5-23.2 5.5-2.5 10.2 3.6 4.8 7.6z",className:"st1"}),(0,o.jsx)("path",{d:"M287.2 128.1c-4.2-5.4-27.8-2.6-38.5-1.3-3.2.4-3.7-2.4-.8-4.5 18.8-13.2 49.7-9.4 53.3-5 3.6 4.5-1 35.4-18.6 50.2-2.7 2.3-5.3 1.1-4.1-1.9 4-9.9 12.9-32.2 8.7-37.5z",className:"st1"})]}),f=[{url:"https://fourtheorem.com",Component:(0,o.jsx)(u,{className:v.featureSvg,title:"fourThereom"})},{url:"https://github.com/aws",Component:(0,o.jsx)(m,{className:v.featureSvg,title:"Amazon Web Services Free and Open Source Software Fund (AWS FOSS Fund)"})},{title:"Sponsor",url:"https://github.com/sponsors/willfarrell",img:"/img/logo/reserved.svg"}],p=[];function x(e){let{title:c,url:l,Component:t,size:n}=e;return(0,o.jsx)("div",{className:(0,a.Z)("col"),children:(0,o.jsx)("a",{href:l,className:"padding-horiz--md",children:t})})}function g(){return(0,o.jsx)("section",{className:v.features,children:(0,o.jsxs)("div",{className:"container",children:[(0,o.jsx)("h2",{children:"Sponsors"}),(0,o.jsx)("div",{className:"row",children:f.map(((e,c)=>(0,o.jsx)(x,{...e,size:"33"},c)))}),(0,o.jsx)("div",{className:"row",children:p.map(((e,c)=>(0,o.jsx)(x,{...e,size:"10"},c)))})]})})}const j={example:"example_XiTW",heading2:"heading2_Pha7",heading3:"heading3_HQJr",buttons_list:"buttons_list_tJKG"};var y=l(9286);const b="export const handler = (event, context) => {\n // BOILERPLATE!\n // E.g. decrypt environment variables with KMS\n // deserialize the content of the event\n // validate input, authentication, authorization\n \n // REAL BUSINESS LOGIC\n let response = doSomethingUsefulWith(event)\n \n // MORE BOILERPLATE\n // E.g.\n // validate output\n // serialize response\n // handle errors\n return response\n}\n",w="// highlight-start\nimport middy from '@middy/core'\n// highlight-end\n\nconst lambdaHandler = (event, context) => {\n // REAL BUSINESS LOGIC\n return doSomethingUsefulWith(event)\n}\n\n// highlight-start\nexport const handler = middy(lambdaHandler)\n .use(/* Your own behaviour in a reusable fashion */)\n .use(/* logging and tracing */)\n .use(/* input validation */)\n .use(/* authentication */)\n .use(/* error handling */)\n .use(/* other behaviour */)\n// highlight-end\n";function z(){return(0,o.jsx)("section",{className:j.example,children:(0,o.jsxs)("div",{className:"container",children:[(0,o.jsx)("h2",{className:j.heading2,children:"Show me the code!"}),(0,o.jsx)("p",{className:"text--center",children:"The following abstract example illustrates the difference of style when using Middy:"}),(0,o.jsxs)("div",{className:"row padding-vert--lg",children:[(0,o.jsxs)("div",{className:(0,a.Z)("col col--6"),children:[(0,o.jsx)("div",{className:"padding-horiz--md",children:(0,o.jsx)("h3",{children:"Without Middy"})}),(0,o.jsxs)("div",{className:"padding-horiz--md",children:[(0,o.jsx)(y.Z,{language:"js",title:"handler.js",children:b}),(0,o.jsx)("p",{children:"Without Middy all your non-functional code is mixed up with the actual business logic in your handler."}),(0,o.jsx)("p",{children:"The code is hard to understand and maintain. What if you need to reuse some of the non-functional logic in another handler?"})]})]}),(0,o.jsxs)("div",{className:(0,a.Z)("col col--6"),children:[(0,o.jsx)("div",{className:"padding-horiz--md",children:(0,o.jsx)("h3",{children:"With Middy"})}),(0,o.jsxs)("div",{className:"padding-horiz--md",children:[(0,o.jsx)(y.Z,{language:"js",title:"handler.js",children:w}),(0,o.jsx)("p",{children:"Middy helps you to keep all the non-functional code outside from your handler function."}),(0,o.jsx)("p",{children:"The business logic in your handler remains pure and testable. All the non functional logic is isolated and reusable."})]})]})]}),(0,o.jsxs)("h3",{className:j.heading3,children:["Do you want to see some more ",(0,o.jsx)("em",{children:"realistic"})," examples?"]}),(0,o.jsxs)("p",{className:j.buttons_list,children:[(0,o.jsx)(n.Z,{to:"/docs/events/api-gateway-http",className:"button button--info",children:"API Gateway (HTTP)"})," ",(0,o.jsx)(n.Z,{to:"/docs/events/api-gateway-rest",className:"button button--info",children:"API Gateway (REST)"})," ",(0,o.jsx)(n.Z,{to:"/docs/events/api-gateway-ws",className:"button button--info",children:"API Gateway (WebSockets)"})," ",(0,o.jsx)(n.Z,{to:"/docs/events/function-url",className:"button button--info",children:"Function URL"})," ",(0,o.jsx)(n.Z,{to:"/docs/events/s3-object",className:"button button--info",children:"S3 Object Response"})," ",(0,o.jsx)(n.Z,{to:"/docs/events/sqs",className:"button button--info",children:"SQS"})," "]})]})})}const M={heroBanner:"heroBanner_ME4k"};function Z(){return(0,o.jsx)("header",{className:(0,a.Z)("hero hero--secondary",M.heroBanner),children:(0,o.jsxs)("div",{className:"container text--center margin-vert--xl",children:[(0,o.jsx)("h1",{className:"hero__title",children:"Ready to get started?"}),(0,o.jsx)("div",{children:(0,o.jsx)(n.Z,{className:"button button--primary button--lg",to:"/docs",children:"Read the docs"})})]})})}const S=function(e){return(0,o.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",fillRule:"evenodd",strokeLinejoin:"round",strokeMiterlimit:"2",clipRule:"evenodd",viewBox:"0 0 576 416",...e,children:(0,o.jsx)("g",{transform:"matrix(1 0 0 -1 -.667 416.333)",children:(0,o.jsxs)("g",{children:[(0,o.jsx)("path",{fill:"currentColor",fillRule:"nonzero",d:"M202.667 152c.696.463 1.506 1.392 2.436 2.784.925.924 1.506 1.62 1.74 2.088.696.696 1.218 1.447 1.566 2.263.348.809.751 1.446 1.219 1.913.696 1.159 1.157 2.144 1.392 2.959.228.809.461 1.332.696 1.566v.347-.347c0-.234-.12-.817-.349-1.741-.234-.929-.582-1.973-1.043-3.132l-1.045-2.088a61.31 61.31 0 005.046 4.525c1.74 1.391 3.536 3.012 5.395 4.872 1.62 1.392 3.247 2.784 4.872 4.176a98.757 98.757 0 005.221 4.176 61.129 61.129 0 005.568 4.351 161.103 161.103 0 015.568 4.003 465.492 465.492 0 015.222 3.306c1.62 1.044 3.36 2.142 5.22 3.306 4.405 2.316 8.701 2.55 12.877.696l1.044-.348.696-.348h.348v-.348h.348l.348-.348c.924-.931 1.74-1.512 2.436-1.74l1.74-1.74.349-.348 1.043-1.046.696-.694 2.089-2.09c.462-.466.751-.814.87-1.044.114-.233.402-.581.87-1.044l.696-.694c.23-.235.35-.468.35-.698h.694c0-.466.115-.869.348-1.217.23-.349.462-.756.696-1.219.463-.929.811-1.74 1.044-2.436a6.682 6.682 0 00.348-2.088c.228-1.164.348-2.67.348-4.524-.233-.468-.408-1.044-.522-1.741-.119-.695-.292-1.277-.52-1.74 0-.467-.06-.816-.175-1.044a1.507 1.507 0 01-.175-.695c-.233-.469-.408-.697-.522-.697-.119 0-.172-.233-.172-.696-.47-.468-.698-.815-.698-1.043 0-.234-.06-.469-.174-.697a1.525 1.525 0 01-.174-.696c-.696-.696-1.164-1.277-1.392-1.74l-1.044-1.044c-.234 0-.348-.06-.348-.175 0-.118-.118-.173-.348-.173.23 0 .348.055.348.173 0 .115.114.175.348.175 0 .228.114.463.348.696l.348.696c.23.229.576.809 1.044 1.74 0 .463.055.751.175.871.115.114.175.288.175.521l.694 1.392c0 .697.115 1.567.348 2.611.23 1.044.35 2.142.35 3.306 0 1.854-.12 3.246-.35 4.176-.468 1.392-.929 2.551-1.392 3.48-.233.463-.696 1.044-1.392 1.742 0 .228-.12.346-.348.346-.234.228-.348.463-.348.696-.233.23-.408.35-.521.35-.12 0-.295.113-.523.346-.468.228-.756.463-.87.698-.119.228-.408.574-.87 1.042l-1.741 1.742c-.467.461-.815.694-1.044.694l-1.044 1.044-.348.35-.696.348c-.233.228-.408.348-.521.348-.12 0-.295.114-.523.346-.696.698-1.392 1.159-2.088 1.394l-.348.348h-.348v.348h-.348l-.696.348h-.348c-1.86.696-3.48.924-4.873.696-.234 0-1.043-.235-2.436-.696-.234 0-.467-.119-.696-.348h-.347v-.348h-.349l-.348-.348a38.947 38.947 0 01-5.22-3.132l-4.872-3.482a122.271 122.271 0 01-5.743-3.828 123.849 123.849 0 00-5.743-3.828c-1.86-1.392-3.6-2.73-5.221-4.002a291.174 291.174 0 00-5.22-4.003 3481.377 3481.377 0 01-17.401-14.269l-1.74 1.393zM216.24 2.695c-3.252-.463-6.265-.348-9.048.348-1.86.233-3.601.582-5.221 1.044-1.627.468-3.366 1.277-5.22 2.437a40.515 40.515 0 01-2.263 2.087c-.816.696-1.452 1.392-1.915 2.088-1.392 1.626-2.436 3.366-3.132 5.22-1.164 2.089-1.913 4.177-2.261 6.265a120.31 120.31 0 01-1.219 6.265c-.234 4.404-.234 8.7 0 12.876.228 1.159.403 2.203.522 3.134.114.924.174 1.968.174 3.13.23.463.348.986.348 1.567 0 .577.115 1.099.348 1.567 0 .462.055.984.175 1.566.113.575.173 1.098.173 1.567l1.044 6.264a37.11 37.11 0 00.696 2.959c.228.809.463 1.793.696 2.957 0 .228.055.463.175.696.113.229.173.463.173.696 0 .463.055.751.175.871.115.114.173.286.173.521 0 .463.055.925.175 1.392.113.463.173.925.173 1.392.463 1.392.811 2.316 1.044 2.784a3.1 3.1 0 01.348 1.393c0 .463.115.924.348 1.392.23.463.578 1.392 1.046 2.784.461.462.696 1.159.696 2.088.924 2.316 1.62 3.943 2.088 4.872v1.046c.228.228.348.401.348.521 0 .113.113.288.348.521.228.463.348.871.348 1.219 0 .348.113.749.348 1.217.228.23.576.811 1.044 1.742l1.044 2.088a87.517 87.517 0 001.392 3.306 64.896 64.896 0 001.392 2.958c.925 1.854 1.68 3.306 2.262 4.35a76.762 76.762 0 011.218 2.262c-.234-.467-.522-1.278-.87-2.436-.348-1.163-.87-2.67-1.566-4.523a20.81 20.81 0 01-1.044-3.308 21.875 21.875 0 00-1.044-3.305c-.468-.931-.696-1.627-.696-2.09-.468-.929-.696-1.512-.696-1.738-.468-1.392-.696-2.21-.696-2.438-.235-.233-.348-.406-.348-.521 0-.12-.12-.295-.348-.523 0-.696-.12-1.164-.348-1.392-.468-1.858-.931-3.365-1.392-4.524-.235-.468-.348-.87-.348-1.217 0-.349-.12-.757-.348-1.219 0-1.164-.12-2.089-.348-2.784 0-.697-.235-1.512-.696-2.436 0-.93-.235-1.86-.698-2.784 0-.469-.058-.932-.173-1.393a5.57 5.57 0 01-.173-1.392c-.235-.233-.35-.696-.35-1.392-.233-.468-.346-1.044-.346-1.74-.235-.929-.41-1.8-.523-2.611a62.064 62.064 0 00-.523-2.958 43.465 43.465 0 01-.521-3.131 24.732 24.732 0 01-.175-3.133 3.091 3.091 0 01-.348-1.392c0-.467-.118-.93-.348-1.392 0-1.392-.118-2.436-.348-3.132 0-1.164-.06-2.21-.173-3.134a24.683 24.683 0 01-.175-3.132c0-2.088-.058-4.121-.173-6.09-.12-1.974-.06-4.002.173-6.09 0-3.948.696-7.657 2.088-11.137.696-1.855 1.622-3.36 2.786-4.524.461-.697.924-1.332 1.392-1.915.461-.577 1.044-1.098 1.74-1.566.696-.695 1.392-1.218 2.088-1.567a18.637 18.637 0 002.088-1.217c1.621-.924 3.132-1.507 4.524-1.74 1.621-.463 3.132-.696 4.525-.696 1.392 0 2.664-.115 3.828-.348h5.22l.348.348c.696 0 1.159.12 1.392.348 1.159.466 1.855.929 2.089 1.392.696.696 1.043 1.278 1.043 1.741v2.087c.229-.228.349-.924.349-2.087-.234-.463-.349-.812-.349-1.045 0-.23-.119-.576-.347-1.044-.468-.463-.87-.87-1.218-1.219a4.687 4.687 0 00-1.219-.869c-.233 0-.467-.055-.696-.174-.233-.114-.581-.174-1.044-.174h-.348l-.348-.348h-.696c-.929 0-1.512-.115-1.74-.348h-2.088zm-78.307 105.452a19.65 19.65 0 01-.696-1.566c-.234-.581-.581-1.452-1.044-2.609a6.72 6.72 0 01-.522-1.392c-.119-.469-.408-1.045-.87-1.741a47.507 47.507 0 01-.696-2.262 62.466 62.466 0 00-.696-2.262c-1.164-3.252-2.437-7.135-3.828-11.66-1.393-4.523-2.67-9.456-3.829-14.791-.233-.467-.348-1.044-.348-1.74-.233-.233-.348-.696-.348-1.392 0-.468-.12-.816-.348-1.044 0-.931-.235-2.323-.696-4.176 0-.468-.06-.871-.175-1.219-.118-.348-.173-.756-.173-1.217 0-.468-.06-.817-.173-1.045-.12-.234-.175-.582-.175-1.044 0-1.164-.233-2.67-.696-4.524a134.484 134.484 0 01-1.044-9.746 67.44 67.44 0 010-9.745c0-3.251.348-6.611 1.044-10.092a55.12 55.12 0 011.567-4.697 14.883 14.883 0 012.261-4.003c.463-.697.984-1.392 1.567-2.089a24.85 24.85 0 011.566-1.739c.227 0 .347-.055.347-.175 0-.114.115-.174.349-.174l.347-.348h.697l.347-.348c.229 0 .349-.055.349-.174 0-.114.114-.173.347-.173v-.349c.229 0 .463-.055.696-.174.229-.114.463-.174.697-.174 1.62-.924 3.187-1.507 4.698-1.739a198.38 198.38 0 015.046-.697h4.874c1.62.468 2.784 1.044 3.48 1.74.461.234.924.816 1.392 1.74l.696.696c0 .234.113.469.348.696v1.045l.348.347v1.392c.228.468.348.87.348 1.218s.114.756.348 1.218a61.282 61.282 0 002.262 10.616 247.782 247.782 0 003.306 9.918 781.288 781.288 0 003.481 9.572 702.783 702.783 0 003.48 9.223c.463.695.809 1.332 1.044 1.913.228.576.576 1.332 1.044 2.262.924 1.854 1.62 3.133 2.088 3.828.228.462.348.812.348 1.045 0 .229.115.576.348 1.044.463.924.696 1.621.696 2.088.463.696 1.159 1.969 2.088 3.828 2.551 4.873 5.101 9.277 7.657 13.225a404.533 404.533 0 006.96 10.44 58.358 58.358 0 002.611 3.656 33.238 33.238 0 012.261 3.306c.698.924 1.219 1.566 1.567 1.914l.871.87c-.235-.234-.468-.582-.696-1.043-.235-.469-.696-1.164-1.392-2.089a13.743 13.743 0 00-1.915-3.306c-.816-1.044-1.685-2.382-2.611-4.002-1.86-3.019-3.828-6.559-5.916-10.615-2.088-4.063-4.296-8.647-6.612-13.748-.468-.696-.816-1.279-1.045-1.74-.233-.468-.581-1.044-1.044-1.74l-1.044-2.088c0-.931-.233-1.627-.696-2.089-.468-.695-.755-1.392-.869-2.087-.12-.697-.408-1.392-.871-2.089-.233-.93-.816-2.322-1.74-4.175a120.048 120.048 0 01-3.132-9.224 188.497 188.497 0 00-3.132-9.571 96.686 96.686 0 01-2.959-9.92 371.796 371.796 0 01-2.262-9.917c0-.463-.06-.924-.174-1.392a5.505 5.505 0 01-.174-1.393c0-.228-.059-.403-.174-.523-.12-.112-.174-.287-.174-.52v-1.044l-.348-.697c0-.228-.06-.462-.174-.695a1.484 1.484 0 01-.174-.697c-.234-.462-.408-.75-.522-.87-.12-.114-.293-.402-.522-.869a9.232 9.232 0 01-1.74-2.437 15.38 15.38 0 00-6.264-2.784h-.696l-1.044-.348h-1.392c-1.394 0-2.323.12-2.786.348-3.48 0-7.194.816-11.136 2.436-.468 0-.93.233-1.393.696l-.696.348c-.233 0-.467.12-.696.348l-.696.348-.696.696-.696.349-.696.695a8.985 8.985 0 01-1.74 1.914c-.696.582-1.392 1.339-2.088 2.263-1.392 2.087-2.208 3.828-2.436 5.22a8.506 8.506 0 00-.871 2.784c-.118.929-.408 1.74-.869 2.436a60.265 60.265 0 00-1.044 11.136c0 3.481.228 6.841.696 10.095.461 3.245.924 6.492 1.392 9.744.228 1.158.576 2.664 1.044 4.524v2.436c0 .462.053.87.173 1.218.115.348.175.751.175 1.218.228.462.401 1.098.521 1.914.115.811.29 1.567.523 2.263 0 .463.113.811.348 1.044 0 .463.115.811.348 1.044 0 .463.055.811.173 1.044.115.229.175.576.175 1.044 1.62 5.335 3.247 10.207 4.872 14.617 1.621 4.406 3.132 8.234 4.524 11.486a59.588 59.588 0 011.741 4.525c.462.695.811 1.272 1.044 1.739.228.462.462.925.696 1.392 1.158 2.317 1.854 3.596 2.088 3.828zM59.627 77.868c0-1.163-.468-3.017-1.392-5.567-.468-1.626-.99-3.426-1.567-5.394a74.194 74.194 0 01-1.565-6.439 107.76 107.76 0 00-1.742-7.831 85.569 85.569 0 01-1.74-8.528l-1.044-9.396v-4.524c0-1.164.115-1.974.348-2.437 0-.929.115-1.625.35-2.088 0-1.859.346-3.247 1.042-4.176.23-.924.811-2.316 1.74-4.177.696-.695 1.159-1.272 1.394-1.739.228 0 .461-.115.696-.348 0-.229.053-.349.173-.349.115 0 .175-.114.175-.347a26.308 26.308 0 001.913-1.392 27.982 27.982 0 011.915-1.392 21.26 21.26 0 013.654-1.741 172.4 172.4 0 014.002-1.392c.696-.228 1.969-.576 3.828-1.044l.349-.348H73.2c0-.228.113-.348.348-.348h.348l.348-.347h2.436c.228 0 .461.117.696.347.463 0 .696.12.696.348.696.234 1.272.816 1.74 1.741.228.233.348.467.348.695h.348v1.044l.348.697c0 .467.055.869.175 1.217.113.348.173.756.173 1.219l.696 2.087c0 .468.055.757.175.87.114.12.174.408.174.871.227.929.462 1.512.695 1.74 0-.228-.059-.463-.173-.696-.12-.229-.175-.576-.175-1.044v-2.785c0-.228-.06-.403-.173-.522-.12-.113-.174-.288-.174-.521V9.655c0-.228-.06-.348-.174-.348-.12 0-.175-.114-.175-.347 0-.229-.12-.463-.347-.697-.234-.924-.93-1.968-2.089-3.132-.233-.228-.408-.348-.521-.348-.12 0-.295-.115-.523-.348-.233 0-.408-.055-.521-.175-.12-.115-.295-.173-.523-.173-.468 0-.871-.055-1.217-.174a3.934 3.934 0 00-1.219-.174H73.2c-.233.233-.583.348-1.044.348h-.349c-.234.233-.467.348-.696.348-1.163 0-2.436.233-3.828.696-3.018.696-6.035 1.86-9.048 3.48-1.86.929-3.252 1.741-4.178 2.436-.466.468-.814.697-1.044.697l-1.042 1.044c-.931.929-1.512 1.74-1.742 2.436-.466.468-.869 1.103-1.217 1.915a48.263 48.263 0 01-1.219 2.609c-.466 1.164-.929 2.904-1.392 5.221 0 1.158-.12 1.968-.348 2.436v2.784c0 2.088.114 3.708.348 4.872 0 1.855.115 3.535.348 5.047a37.344 37.344 0 001.044 4.697 127.022 127.022 0 002.263 8.528c.809 2.664 1.68 5.275 2.611 7.831a202.424 202.424 0 002.609 6.264c.811 1.855 1.447 3.595 1.915 5.22 1.62 3.247 2.436 4.988 2.436 5.22zm49.42 35.152c9.049 10.903 17.689 20.533 25.928 28.887 8.233 8.352 15.836 15.428 22.796 21.23 6.961 5.796 12.992 10.495 18.097 14.095 5.101 3.593 8.929 6.089 11.485 7.483.463.462 1.507.696 3.132.696 1.159 0 2.203-.234 3.132-.696a67.774 67.774 0 005.57-4.699c1.854-1.74 3.48-3.541 4.872-5.395 2.088-2.321 2.784-4.932 2.088-7.83a19.746 19.746 0 00-3.828-7.831c-10.908-14.617-20.42-29.703-28.539-45.244-.233-1.164-.696-2.436-1.392-3.828a125.097 125.097 0 01-2.436-5.221c9.048 12.062 18.152 22.797 27.32 32.194 9.164 9.395 17.691 17.4 25.58 24.012 7.885 6.614 14.732 11.888 20.535 15.836 5.796 3.943 9.973 6.612 12.529 8.006.924.462 1.968.696 3.132.696 1.392 0 2.436-.234 3.132-.696 3.709-2.556 7.308-5.916 10.789-10.094 1.854-2.321 2.436-4.932 1.74-7.83a19.735 19.735 0 00-3.829-7.831c-6.264-8.821-12.067-17.461-17.401-25.928-5.34-8.473-10.038-17.115-14.095-25.929a216.299 216.299 0 01-10.441-27.494c-2.904-9.517-5.166-19.609-6.787-30.278a184.405 184.405 0 01-2.436-19.839c-.468-6.727-.233-13.339.696-19.837a92.968 92.968 0 00-9.745-.175c-3.252.12-6.15 1.104-8.7 2.959-2.784 1.626-4.759 4.062-5.916 7.309-1.164 3.247-1.86 6.668-2.088 10.267a69.058 69.058 0 00.173 10.962c.348 3.71.751 6.842 1.219 9.398.696 5.568 1.505 10.614 2.436 15.14A156.082 156.082 0 00201.1 78.74a141.741 141.741 0 004.525 12.876c1.74 4.291 3.768 8.989 6.091 14.095 7.884 18.326 16.933 35.613 27.145 51.857-9.744-8.124-18.445-16.357-26.101-24.709-7.657-8.354-14.444-16.707-20.36-25.059-5.917-8.353-11.083-16.477-15.487-24.363-4.41-7.89-8.125-15.433-11.137-22.622-7.428-16.706-12.415-33.063-14.965-49.071-.931-1.621-1.975-2.437-3.134-2.437h-.346c-2.556 0-5.047.173-7.483.522-2.436.348-4.699 1.218-6.788 2.61-2.555 1.626-4.409 4.062-5.568 7.309-1.163 3.247-1.859 6.668-2.088 10.267a69.062 69.062 0 00.175 10.962c.348 3.71.636 6.842.869 9.398.696 5.568 1.507 10.614 2.437 15.14a122.123 122.123 0 003.479 13.225 193.591 193.591 0 004.699 12.876c1.741 4.291 3.769 8.989 6.09 14.095a324.56 324.56 0 0012.355 26.625 286.945 286.945 0 0014.792 25.232c-15.313-12.529-28.484-25.64-39.501-39.327-11.023-13.693-20.187-26.745-27.495-39.154-7.308-12.415-13.051-23.786-17.227-34.107-4.177-10.327-7.194-18.392-9.049-24.188-.468-1.62-.696-3.012-.696-4.176 0-1.159-.12-2.203-.348-3.133-.235-.924-.348-1.739-.348-2.436h-1.392c-3.252.468-5.916 1.104-8.005 1.914-2.088.816-3.714 1.567-4.872 2.263-1.392.929-2.556 1.859-3.48 2.784-2.556 2.556-3.83 6.727-3.83 12.528 0 5.797.986 12.531 2.959 20.187 1.969 7.656 4.699 15.949 8.179 24.884a725.953 725.953 0 0011.31 27.32 536.506 536.506 0 0012.878 27.321 4150.09 4150.09 0 0012.702 24.884 259.446 259.446 0 01-24.186-22.273 208.239 208.239 0 01-20.708-25.407 176.7 176.7 0 01-10.79-18.097 144.05 144.05 0 01-8.352-19.491 125.877 125.877 0 01-3.133-10.093c-.929-3.479-.815-6.847.348-10.092.463-.93.523-1.567.175-1.915-.348-.348-.756-.521-1.218-.521-3.252-1.164-6.498-1.627-9.746-1.392-3.251.228-6.384 1.392-9.396 3.48-4.644 3.012-6.96 7.308-6.96 12.876 0 5.569.809 10.556 2.436 14.966 6.726 18.326 16.297 34.743 28.712 49.246 12.409 14.497 26.276 27.668 41.589 39.501a87.857 87.857 0 006.961 5.048 227.997 227.997 0 006.96 4.349 346.484 346.484 0 007.308 4.526 200.07 200.07 0 007.31 4.176c1.621.696 3.133 1.332 4.524 1.913 1.392.577 2.784 1.332 4.177 2.263.228.228.576.348 1.043.348.462 0 .925.113 1.393.348h1.217c.578 0 1.219-.12 1.915-.348 1.392-.696 3.247-1.686 5.568-2.959 2.317-1.279 4.639-3.077 6.961-5.393 2.784-2.784 3.708-6.038 2.784-9.746-.468-1.86-1.278-3.714-2.436-5.569-10.674-19.027-19.838-36.315-27.494-51.856zm-8.702 74.827c.926.461 1.682.869 2.263 1.218.577.347 1.219.75 1.915 1.218 1.62.462 3.072 1.044 4.35 1.74 1.272.696 2.724 1.505 4.35 2.436l1.044.348.348.348.349.348h.347c.925.462 1.854.696 2.785.696.924.228 1.74.402 2.436.522.696.114 1.62.055 2.784-.174h.696l.348-.348 1.392-.348h.696c0-.234.115-.348.348-.348l1.392-.696c1.855-.93 3.247-1.74 4.176-2.436 2.317-1.164 4.753-2.904 7.309-5.22l.696-.696.696-.348v-.35l.348-.346c.463 0 .811-.12 1.044-.348l.348-.698.348-.346c.463-.468.696-.816.696-1.046 0-.232.115-.581.348-1.044.23-.466.403-.869.523-1.217.113-.349.288-.756.521-1.219.698-1.392 1.044-2.904 1.044-4.522 0-1.862-.118-3.368-.346-4.526-.235-2.556-1.164-5.34-2.786-8.353h-.348v-.696l-.696-.696-1.044-2.088a11.834 11.834 0 00-.696-1.217c-.233-.35-.468-.756-.696-1.219a71.386 71.386 0 007.135 6.264 114.369 114.369 0 016.787 5.569c3.246 2.784 6.318 5.22 9.222 7.308 2.899 2.09 5.623 4.056 8.179 5.918 2.551 1.853 4.812 3.42 6.787 4.697a60.57 60.57 0 005.742 3.307c.463.461.924.696 1.392.696l.696.696c.463 0 .87.054 1.219.174.348.114.636.174.869.174.924.228 1.855.348 2.784.348-.233 0-.581-.06-1.044-.175-.468-.119-1.044-.173-1.74-.173-.233-.234-.468-.348-.696-.348-.233 0-.581-.12-1.044-.348l-1.044-.696c-.233-.234-.408-.348-.522-.348-.119 0-.294-.12-.522-.348a465.906 465.906 0 01-5.742-3.654c-1.974-1.278-4.236-2.958-6.787-5.046a303.264 303.264 0 00-7.656-5.918c-2.785-2.088-5.688-4.524-8.701-7.308a127.575 127.575 0 01-9.746-8.528 766.603 766.603 0 01-10.092-9.917l-2.089 1.392a61.828 61.828 0 003.829 6.612c.463.696.81 1.333 1.044 1.913.228.578.462 1.219.696 1.916.228.46.403.75.522.87.114.113.289.402.522.869l.348.697.348.348v.347c1.622 2.784 2.551 5.22 2.784 7.309.463 3.012.23 5.568-.696 7.656-.233.463-.408.751-.521.871-.12.113-.295.403-.523.871a2.542 2.542 0 00-.522.694 3.01 3.01 0 01-.522.698l-.348.346-.348.698c-.468 0-.696.228-.696.694h-.348v.35l-1.044 1.044a136.024 136.024 0 00-3.654 2.261 40.191 40.191 0 00-3.654 2.611c-1.165.924-2.437 1.505-3.829 1.74-.468.462-1.044.696-1.74.696l-1.044.348h-1.044c-.696.228-1.339.288-1.915.174a9.476 9.476 0 00-1.913-.174c-.468-.234-.816-.348-1.044-.348-.235 0-.583-.12-1.045-.348l-.347-.348h-.349l-1.043-.348a74.064 74.064 0 01-4.177-2.263 71.847 71.847 0 00-4.176-2.261 8.493 8.493 0 00-2.088-1.044 8.908 8.908 0 01-2.088-1.046c-.931-.466-1.627-.929-2.09-1.392l-2.088-1.044c-.696-.694-1.277-1.162-1.74-1.392-.466-.232-.816-.466-1.044-.694-.233-.235-.581-.35-1.044-.35l-1.044-.694h-.696v-.35l-.348-.348c-.468-.233-.816-.406-1.044-.521-.234-.12-.581-.408-1.044-.871-2.322-1.392-4.992-3.25-8.004-5.569-.469-.232-.816-.467-1.045-.695-.233-.234-.581-.468-1.044-.696-.233-.468-.696-1.045-1.392-1.74-.929-.468-2.323-1.392-4.176-2.784l-1.74-1.393-2.088-1.74a12.745 12.745 0 01-1.915-1.565l-1.566-1.567c-1.86-1.392-3.132-2.436-3.828-3.132l-1.74-1.392-2.088-2.088-3.48-3.133-3.48-3.48-2.09-1.392-1.392-2.088-3.48-3.48c-1.392-1.392-2.436-2.556-3.132-3.48-.468-.468-.756-.818-.87-1.046-.12-.233-.408-.466-.87-.696l-1.74-1.74a341.531 341.531 0 00-5.742-7.657 350.924 350.924 0 00-6.091-7.656 6.238 6.238 0 00-1.044-1.915 25.44 25.44 0 01-1.392-1.913c-.468-.929-.931-1.627-1.392-2.088-.468-.931-.931-1.512-1.393-1.74l-2.088-4.177c-.234-.234-.348-.408-.348-.523 0-.117-.119-.292-.348-.52l-.696-.697-1.044-2.088c-.93-1.626-1.686-3.079-2.263-4.351a121.042 121.042 0 00-1.913-4.003c-.234-.466-.468-.814-.696-1.044l-.348-1.042-1.044-2.09-1.044-2.088-.696-1.044-.348-1.044c-.468-1.86-.931-3.252-1.392-4.176l-.35-1.044-.346-.348-.35-.697c0-.467-.233-1.163-.696-2.087l-1.044-4.177c-.466-1.859-.696-3.251-.696-4.176-.466-3.017-.346-5.801.35-8.352.461-2.556 1.39-5.107 2.782-7.657a44.712 44.712 0 012.263-2.784c.811-.931 1.795-1.86 2.959-2.784.228-.235.81-.583 1.74-1.046h.696l.696-.696c.228 0 .348-.058.348-.173 0-.12.114-.175.348-.175l1.044-.346c.462-.235.81-.348 1.044-.348.229 0 .462-.12.696-.35 2.088-.929 4.638-1.392 7.657-1.392 2.551 0 4.872.348 6.96 1.044.229 0 .811.228 1.74.698h.696c.229.228.463.348.696.348.463.461.811.809 1.045 1.044.228.228.576.574 1.044 1.044.696.694 1.044 1.62 1.044 2.784 0 .696-.12 1.272-.348 1.74 0 .461-.12.81-.348 1.044v.696l-.348.348c0 .462-.12.809-.348 1.044v2.089c0 1.391.114 2.436.348 3.131.228.925.576 2.089 1.044 3.481.228.461.402.984.522 1.565.114.578.288 1.1.522 1.567a55.15 55.15 0 011.044 2.784c.228.696.576 1.621 1.044 2.784.228.463.403.924.522 1.392.114.463.289.924.522 1.393.463.924.811 1.739 1.044 2.436.924 1.855 1.74 3.479 2.436 4.872a92.763 92.763 0 002.436 4.524c0 .23.23.811.696 1.74l1.046 2.088c.461.463.749.811.869 1.044.115.23.288.463.521.698.23.461.578.924 1.046 1.392.461.696.809 1.332 1.044 1.913.228.577.461 1.099.696 1.567.228.696.809 1.506 1.74 2.436.462.924.924 1.68 1.392 2.261.462.577.924 1.1 1.392 1.567.462.697.81 1.158 1.044 1.392.229.229.348.462.348.697l-1.392-2.089c-.468-.467-.87-1.044-1.219-1.74-.347-.696-.756-1.511-1.217-2.436-.235-.235-.816-1.044-1.74-2.436-.468-1.394-.931-2.556-1.392-3.48-.235 0-.583-.468-1.046-1.392-.466-.931-.814-1.512-1.044-1.742l-1.042-2.088-.523-1.042c-.12-.235-.293-.583-.523-1.046-.466-1.392-1.104-2.842-1.913-4.349-.816-1.512-1.567-3.193-2.263-5.048-.468-.929-.816-1.739-1.044-2.436-.233-.467-.581-1.392-1.044-2.784a31.474 31.474 0 01-.696-2.436c-.234-.929-.581-1.973-1.044-3.132a6.777 6.777 0 01-.522-1.392 7.13 7.13 0 00-.522-1.392c-.234-.468-.348-1.044-.348-1.741 0-.695-.12-1.278-.348-1.74 0-.467-.06-.93-.174-1.392a5.604 5.604 0 01-.174-1.391c0-.469.055-.757.174-.872.114-.119.174-.407.174-.869l.348-.696v-.696c.463-.93.696-1.512.696-1.74.228-.468.348-1.164.348-2.088 0-1.164-.468-2.436-1.392-3.828-.696-1.392-1.625-2.436-2.785-3.134-.233-.233-.407-.348-.521-.348-.12 0-.294-.118-.522-.346h-.349l-.347-.35c-.468 0-1.164-.233-2.089-.696-1.163-.466-2.436-.696-3.828-.696h-8.179c-1.512 0-2.844.23-4.002.696-.468.228-.815.348-1.044.348-.234 0-.582.115-1.044.348-.234.23-.582.35-1.044.35l-.696.694c-.234 0-.408.055-.522.175-.12.115-.293.173-.522.173l-.696.35-.348.346-2.088 1.046c-2.556 1.618-4.644 3.828-6.266 6.612-.696 1.158-1.277 2.49-1.74 4.001a216.072 216.072 0 01-1.392 4.351c-.696 2.785-.816 5.917-.348 9.397 0 1.159.228 2.664.696 4.525.228 1.158.578 2.664 1.044 4.523.228.463.348.871.348 1.219 0 .348.115.75.348 1.217v.697l.698 1.392c.226.696.461 1.392.696 2.088.228.696.576 1.507 1.042 2.436l.348.696.35 1.044c.228.696.576 1.507 1.042 2.436l1.046 2.09.696 1.044v1.044c.696 1.62 1.446 3.072 2.261 4.35.811 1.272 1.567 2.724 2.263 4.35.696.697 1.158 1.272 1.392 1.74l.348 1.044c0 .462.054.752.174.87.114.114.174.288.174.522a25.54 25.54 0 001.392 1.914c.462.576.924 1.219 1.392 1.915.229.463.462.811.696 1.043.229.229.462.577.696 1.045.229.461.462.869.696 1.219.229.346.349.634.349.869.461.697.924 1.392 1.392 2.088.461.696.924 1.392 1.391 2.088 3.709 5.101 7.772 10.207 12.181 15.313l1.393 2.09c.462.461.924 1.158 1.392 2.088.696.462 1.332.984 1.914 1.566.577.575 1.218 1.218 1.914 1.914l3.132 3.132 1.74 2.088 2.088 1.74 6.962 6.961c.461.228 1.044.696 1.74 1.392l2.088 1.74a12.55 12.55 0 011.914 1.565 12.688 12.688 0 001.914 1.567 13.718 13.718 0 012.088 1.741l1.74 1.739 1.741 1.741 2.087 1.043c.697.463 1.333.985 1.916 1.567a12.734 12.734 0 001.913 1.566c.463.463.809.75 1.044.87.228.114.576.402 1.044.87.924.462 1.507.811 1.74 1.044a168.153 168.153 0 004.525 3.132 98.069 98.069 0 003.828 2.438c.462.461 1.158.924 2.088 1.392l.696.346v.35h.348l1.044.694c.463.463 1.159.926 2.088 1.392.696.698 1.392 1.046 2.088 1.046.696.228 1.392.696 2.088 1.392l2.088 1.044z",transform:"translate(.973 53.33)"}),(0,o.jsx)("path",{fill:"currentColor",fillRule:"nonzero",d:"M88 104c-.696-1.392-2.321-3.48-4.872-6.264-2.323-3.019-5.107-5.689-8.353-8.005a13.56 13.56 0 00-2.436-1.915 34.07 34.07 0 00-2.784-1.567c-.468-.232-.756-.346-.87-.346-.12 0-.409-.12-.872-.348l-.694-.35-.698-.346c-.466 0-.814-.06-1.044-.175a1.5 1.5 0 00-.694-.173c-.468-.235-.758-.35-.871-.35-.119 0-.408-.12-.871-.348-.233.228-.348.228-.348 0h.348v-.346c.463-.931.698-1.742.698-2.438l.346-.348v-.348c-.233-.233-.346-.468-.346-.694 0-.235-.06-.41-.175-.523-.12-.12-.173-.295-.173-.523-.235 0-.35-.233-.35-.696h-.348v-.348l.698.348c.461.23.749.403.869.522.115.114.403.288.869.522l1.742 1.74c.462.462.81.751 1.042.871.23.113.463.288.698.523l.696.694c0 .23-.468-.581-1.394-2.436-.466-.468-.814-.929-1.042-1.392-.235-.468-.582-1.044-1.044-1.74-.468-.468-.99-1.104-1.567-1.913a127.658 127.658 0 00-1.913-2.611c-1.164-.697-2.09-1.044-2.784-1.044h.346c0 .228.115.347.348.347l-.348.349v.348l-.346.348c-.235.228-.41.347-.523.347-.12 0-.409.229-.871.697.696.696 1.159 1.272 1.394 1.739v.697c0 .463.053.75.173.87.115.114.173.289.173.522v1.044l-.346.698v.346c0 .463-.235.926-.698 1.392v.348c-.234 0-.348.115-.348.35l-1.044 1.044c-.234.461-.466.749-.696.869-.233.113-.582.403-1.044.871-.696.924-1.86 2.201-3.48 3.828.926 0 1.795-.06 2.61-.175.81-.119 1.681-.173 2.61-.173h1.74l.696.348h2.09c.228.228.694.346 1.392.346.228.23.461.35.694.35.23 0 .463.113.698.348h.694l.698.348 1.392.696c2.316.924 3.942 1.74 4.872 2.436a74.683 74.683 0 018.7 6.264 78.637 78.637 0 003.308 3.133 46.346 46.346 0 002.957 2.436l2.436 2.436c0-.468-.581-1.625-1.74-3.48zm-29.235 21.579c1.392 2.549 3.362 4.056 5.918 4.522 1.157.23 2.436.23 3.828 0 1.853-.466 3.708-1.162 5.569-2.086 3.708-1.627 6.959-3.828 9.744-6.614 2.088-2.321 2.899-4.76 2.436-7.309a7.608 7.608 0 00-1.393-3.132 87.25 87.25 0 00-8.178-9.048c-2.904-2.784-5.862-5.048-8.876-6.787-3.016-1.741-5.861-2.784-8.525-3.133-2.671-.348-5.047.403-7.135 2.263-1.393 1.392-1.914 3.654-1.566 6.786.348 3.132 1.098 6.439 2.262 9.919 1.159 3.48 2.376 6.668 3.655 9.571 1.272 2.898 2.027 4.58 2.261 5.048zm-16.357-24.364v.349l-.348.348.348.696v2.784a29.705 29.705 0 011.044 4.003 28.234 28.234 0 001.044 4.001l1.044 3.132c.228.228.348.463.348.697 0 .228.115.463.348.695.229.463.348.752.348.872 0 .113.115.403.348.869.463 1.158.925 2.143 1.392 2.959.463.809.925 1.795 1.393 2.959.227.461.462.924.696 1.392.228.461.462.924.696 1.39.462.463.696.926.696 1.392l1.044 1.046c1.392 1.853 2.899 3.245 4.524 4.174.926.463 1.74.812 2.436 1.046.696.229 1.507.461 2.438.696 1.392.462 2.664.462 3.828 0 1.158 0 2.028-.12 2.61-.348.575-.234.984-.348 1.218-.348-.234-.234-.643-.294-1.218-.174-.582.114-1.452.054-2.61-.174-.931 0-2.09-.348-3.482-1.044-1.164-.468-2.436-1.164-3.828-2.09l-1.738-1.738v-.348c-.235 0-.35-.06-.35-.175 0-.12-.12-.175-.348-.175 0-.233-.06-.406-.174-.52-.12-.12-.174-.294-.174-.522-.466-.47-.696-.931-.696-1.394-.233-.233-.348-.408-.348-.521 0-.119-.12-.293-.348-.521-.468-1.394-.816-2.323-1.044-2.786-.466-1.162-.816-2.206-1.044-3.132a13.702 13.702 0 00-1.045-2.785c-.233-.467-.347-.755-.347-.869 0-.12-.12-.41-.349-.87 0-.234-.06-.468-.173-.697a1.505 1.505 0 01-.174-.695l-1.045-3.133a39.62 39.62 0 01-2.088-6.961c-.233-.467-.348-1.044-.348-1.739 0-.235-.06-.408-.173-.523-.12-.12-.175-.294-.175-.521v-7.657c-.468.228-.816.462-1.044.696-.235.229-.581.462-1.044.696-.929.462-1.512.81-1.74 1.045-.233.227-.408.347-.523.347-.12 0-.293.114-.521.348h-.696v.349h-1.044c-.235.228-.696.348-1.392.348h-1.045c0-.235-.234-.348-.696-.348-.467 0-.93-.12-1.392-.349-.467-.234-.93-.468-1.391-.695-.235 0-.349-.06-.349-.175 0-.12-.12-.174-.347-.174l-.349-.348h-.348c0-.234-.059-.348-.174-.348-.12 0-.174-.119-.174-.347h-.348c0-.235-.119-.349-.348-.349l-4.872-4.872c0 .228.348.924 1.044 2.088.234.228.581.809 1.044 1.74.233.461.468.81.696 1.044.233.229.468.577.696 1.044l.348.348c0 .229.114.349.348.349 0 .227.054.347.174.347.114 0 .174.114.174.348l.348.349.348.348.696.695c1.393.924 2.55 1.506 3.48 1.741.229.228.577.347 1.045.347.228.229.576.348 1.044.348h4.176zM7.953 21.168c-.462 2.317-.696 4.057-.696 5.221.696 6.03 2.262 13.514 4.698 22.448 2.436 8.928 6.788 18.271 13.052 28.016a114.076 114.076 0 013.305 4.872 125.892 125.892 0 003.307 4.872c1.392 2.09 2.784 3.83 4.177 5.222.924.925 1.739 1.446 2.436 1.565.696.115 1.272.175 1.74.175.228-.234.461-.348.696-.348 2.551-1.627 5.22-3.775 8.004-6.439 2.784-2.671 4.873-4.817 6.265-6.439.696-.694 1.044-1.392 1.044-2.088 0-.233-.233-.816-.696-1.74a446.262 446.262 0 01-4.176-6.438 263.304 263.304 0 01-5.917-9.746c-2.088-3.6-4.176-7.541-6.264-11.833-2.089-4.295-3.829-8.525-5.221-12.701-.467-1.164.577-.698 3.132 1.392 2.55 2.086 5.857 5.1 9.92 9.048 4.056 3.942 8.581 8.58 13.573 13.921a2002.505 2002.505 0 0014.791 15.66l8.701-.347A876.521 876.521 0 0165.377 52.84a1818.231 1818.231 0 01-16.878-20.883 3662.069 3662.069 0 00-16.184-20.185l-.348-.349c-.234 0-.348-.118-.348-.347-.234-.233-.408-.348-.522-.348-.12 0-.293-.12-.522-.348h-.348c-.924-.468-1.68-.641-2.262-.521-.577.113-1.1.172-1.566.172-1.622.462-3.535 1.1-5.743 1.914a262.857 262.857 0 00-6.787 2.611c-.228.228-.462.348-.696.348-1.392.696-2.49 1.621-3.306 2.785-.811 1.158-1.447 2.316-1.914 3.479zm17.75-19.837l-1.044.348c-.23 0-.403.06-.523.174-.113.119-.288.175-.521.175-.228 0-.811.232-1.74.695-.463.234-1.044.408-1.74.522-.696.119-1.274.294-1.742.522-.461.468-1.044.757-1.74.87-.696.119-1.272.294-1.74.522-.228.234-.462.349-.696.349-.228.233-.462.348-.696.348-.924.467-1.506.815-1.74 1.044-.228 0-.81.233-1.74.695l-.696.349-.348.348-.348.347c-1.158.468-2.089 1.1-2.785 1.914a49.597 49.597 0 00-2.087 2.611c-1.158 1.62-1.854 3.361-2.089 5.22-.228.229-.348.697-.348 1.392 0 .229-.055.403-.173.523-.115.114-.175.288-.175.521v4.873c0 .462.12.81.348 1.044v.347-.347c0-.468.12-.816.348-1.044v-1.045c0-.467.06-.755.175-.869.118-.12.173-.408.173-.87.235-.468.349-.757.349-.87 0-.12.119-.408.347-.871 0-.468.12-.815.349-1.043 0-.469.119-.817.347-1.044.468-.697.871-1.392 1.219-2.089.348-.696.87-1.392 1.566-2.088.93-1.163 2.322-2.321 4.176-3.481h.348l.348-.347h.696c.234-.233.468-.348.696-.348.234 0 .468-.12.696-.348.468-.235.756-.349.871-.349.12 0 .407-.119.869-.347h.696c.235-.228.583-.348 1.044-.348l3.132-1.044c.931-.229 2.09-.577 3.482-1.044.466-.228.816-.348 1.044-.348.233 0 .466-.115.696-.349h.696l.696-.348c1.392 0 2.436.12 3.132.348.696 0 1.158.12 1.392.349h.696c.229.233.462.348.696.348l.696.347.696.349c0 .233.054.348.174.348.115 0 .175.12.175.347h.347l.348.348.348.349.697.695c.228.462.576.925 1.043 1.392.462.462.87.925 1.218 1.393.348.463.751.925 1.219 1.392.924.925 1.74 1.795 2.436 2.609a50.979 50.979 0 012.088 2.611c.924.925 1.62 1.74 2.088 2.436l2.088 2.089c5.103 6.03 8.233 9.396 9.397 10.092-.466-.929-2.902-4.872-7.309-11.833-.467-.467-.756-.869-.869-1.217-.12-.348-.408-.756-.871-1.219-.233-.468-.816-1.392-1.74-2.784a134.459 134.459 0 01-1.915-2.611 125.803 125.803 0 00-1.913-2.609l-2.088-3.133a2.545 2.545 0 01-.523-.695c-.118-.229-.408-.463-.869-.696l-.348-.697c0-.228-.12-.348-.348-.348-.235-.228-.348-.462-.348-.695h-.348v-.349c-.235 0-.349-.054-.349-.174 0-.114-.119-.174-.347-.174l-.696-.696c-.235 0-.583-.228-1.045-.696l-1.044-.347-.696-.697h-.696l-.696-.347a1.197 1.197 0 00-.871-.349c-.347 0-.755-.114-1.217-.348h-4.524z",transform:"translate(224.223 66.526)"}),(0,o.jsx)("path",{fill:"currentColor",fillRule:"nonzero",d:"M129.333 138.667c-.466-.696-.929-1.392-1.39-2.088-.47-.698-.93-1.392-1.394-2.09a18.916 18.916 0 01-1.216-2.086l-1.218-2.436c-.47-.698-.93-1.394-1.394-2.09-.466-.696-.929-1.392-1.39-2.088a197.338 197.338 0 01-4.7-8.526 108.663 108.663 0 00-4.699-8.179 120.563 120.563 0 00-2.088-4.003 127.6 127.6 0 01-2.087-4.001 36.54 36.54 0 01-1.916-3.656 35.609 35.609 0 00-1.914-3.653c-2.555-4.872-4.758-9.343-6.612-13.4a506.172 506.172 0 01-4.872-10.963c-.467-.931-.755-1.74-.87-2.436-.12-.696-.409-1.392-.87-2.088a19.182 19.182 0 01-.695-1.567 22.267 22.267 0 00-.699-1.566c-.465-1.164-.814-1.974-1.044-2.436a3.101 3.101 0 01-.346-1.392c0 .462.346 1.74 1.045 3.828.46 1.392.809 2.552 1.044 3.481.227.696.461 1.392.695 2.088.229.696.461 1.507.696 2.436a424.339 424.339 0 004.177 11.137c1.619 4.176 3.593 8.815 5.916 13.92.461 1.159.984 2.438 1.565 3.83a29.65 29.65 0 001.915 3.829 31.67 31.67 0 001.741 4.175l2.087 4.177c1.393 2.784 2.785 5.568 4.176 8.353a112.838 112.838 0 004.873 8.7c.463.696.87 1.392 1.219 2.09.349.694.749 1.505 1.219 2.436.461.694.869 1.392 1.216 2.086.349.698.752 1.507 1.218 2.436.464.698.87 1.392 1.219 2.09.349.696.751 1.392 1.219 2.088a23.44 23.44 0 011.39 2.436l.35.348.349.696c0 .228.052.402.171.522.114.114.174.288.174.523.464.923.696 1.62.696 2.087 0 .462.055.81.175 1.044.115.228.175.577.175 1.045 0 1.391-.35 2.664-1.046 3.828l-.345.696v.348l-.699.696c-.234.463-.466.751-.694.871-.235.113-.47.401-.696.869-.93.463-1.514.809-1.742 1.044l-.346.348h-.35l-.346.348-1.394.348a63.217 63.217 0 01-4.697 2.437 207.221 207.221 0 01-4.699 2.087l-1.392.696-.349.348h-.347c-.234 0-.349.115-.349.349l-1.044.348h-.347l-.697.347h-1.044c-.232.229-.581.348-1.044.348h-2.087c-.932 0-2.322-.467-4.177-1.392a7.964 7.964 0 01-2.784-2.784c-.233 0-.348-.12-.348-.347l-.349-.697-.696-1.044c-.468-.929-.93-1.625-1.392-2.088-.931-1.86-1.74-3.252-2.436-4.176a499.5 499.5 0 01-9.05-16.88 1681.64 1681.64 0 00-8.005-15.488 47.192 47.192 0 00-1.565-3.48 45.02 45.02 0 01-1.564-3.48 30.172 30.172 0 00-1.568-3.307 28.3 28.3 0 01-1.566-3.305 142.436 142.436 0 00-1.218-2.959 47.973 47.973 0 00-1.219-2.61c-.467-1.392-.929-2.322-1.391-2.784 0-.468-.06-.755-.174-.87-.12-.12-.175-.408-.175-.87h-1.044l-.695.348c-.468 0-.87.054-1.218.174a3.925 3.925 0 01-1.219.174c-.467.229-1.164.348-2.088.348-.233.228-.468.348-.695.348h-3.133c-2.088 0-3.367-.12-3.828-.348.696.462 1.968.81 3.828 1.044h3.828a6.518 6.518 0 012.088-.348c.697 0 1.507-.12 2.437-.348h.695c.229.228.349.577.349 1.044l.348.348v.697l.696 1.392c.462 1.157.81 2.141 1.044 2.957.227.811.576 1.795 1.044 2.959a40.288 40.288 0 011.216 3.479c.35 1.16.754 2.318 1.22 3.481a45.237 45.237 0 001.567 3.48 48.48 48.48 0 011.565 3.48 298.311 298.311 0 007.136 16.009c2.664 5.57 5.623 11.367 8.875 17.403l2.085 4.176c.464.463.754.869.874 1.219.112.348.286.749.52 1.217l.696 1.044.697 1.392c.925 1.392 2.316 2.785 4.175 4.177 1.622.924 3.596 1.62 5.917 2.087h3.132c.229 0 .464-.06.696-.172.229-.12.463-.175.697-.175h.696c.23 0 .4-.06.52-.173.115-.12.29-.175.524-.175h.695l.696-.348 1.393-.349v-.347h.695l.349-.348 1.391-.696a191.674 191.674 0 004.7-2.089 63.626 63.626 0 004.699-2.436l1.39-.348.348-.348h.35l.346-.347h.35c.46-.469.869-.757 1.218-.872.346-.118.75-.406 1.216-.869.463-.468.812-.869 1.044-1.217.23-.35.579-.756 1.044-1.219l.35-.696.349-.348.345-.348.699-1.392c.924-1.627 1.391-3.715 1.391-6.264a3.078 3.078 0 01-.35-1.392c0-.469-.117-.931-.346-1.393 0-.696-.234-1.74-.695-3.132-.235-.234-.349-.407-.349-.522 0-.12-.12-.294-.35-.522l-.345-.696c0-.234-.12-.348-.349-.348v-.348a5.169 5.169 0 01-1.394-2.436zM28.753 27.297c.23.228 1.274 1.158 3.134 2.784 1.854 1.62 4.116 3.828 6.786 6.614 2.664 2.782 5.568 6.089 8.7 9.917 3.134 3.828 6.32 8.179 9.571 13.051.696 2.55 1.393 5.274 2.088 8.18.697 2.898 1.621 5.969 2.785 9.222-6.498-4.41-12.997-10.501-19.49-18.272-6.498-7.776-11.37-18.044-14.618-30.801l.35-.348c0-.696.228-.815.694-.347zM78.869 8.503l-.694-.696-.696-.696a3.023 3.023 0 00-.698-.523 2.59 2.59 0 01-.696-.521c-1.392-.926-2.669-1.392-3.828-1.392H69.82c-.695 0-1.161.12-1.391.348h-.694l-.699.348a25.26 25.26 0 01-2.609.522c-.815.12-1.799.408-2.958.87-.468.233-1.392.582-2.784 1.044-.697 0-1.278.12-1.741.348-.233 0-.468.12-.695.348h-1.045c-.233.234-.467.349-.696.349-.233.232-.581.347-1.043.347l-.349.348-.348.348c-.235 0-.407.06-.521.174-.12.12-.294.175-.523.175a8.402 8.402 0 01-1.567 1.217 7.877 7.877 0 00-1.565 1.219c0 .228-.233.575-.696 1.044l-.697.695c0 .229-.118.462-.347.697l-.696.695v.349h-.349v-.349l-.347-.347a2.745 2.745 0 01-.523-.697 2.828 2.828 0 00-.521-.695c-.233-.468-.408-.757-.523-.871-.12-.118-.293-.408-.522-.87-.232-.234-.292-.348-.174-.348.114 0 .054-.12-.173-.347-.697-.697-1.164-1.273-1.392-1.741l-.697-.696-.348-.696-1.74-2.087c-.234 0-.582-.229-1.043-.697l-1.045-1.044c-.93-.696-1.8-1.218-2.611-1.567a44.65 44.65 0 01-2.611-1.217 27.852 27.852 0 00-2.609-.523c-.816-.115-1.8-.173-2.957-.173-1.855 0-3.596.348-5.222 1.044h-.696v.346h-.348c-.229.235-.576.35-1.044.35l-2.088 1.044c-.228 0-1.332.641-3.306 1.914-1.968 1.278-3.595 2.436-4.872 3.479-1.272 1.044-1.567 1.507-.87 1.393.695-.12 3.714-1.446 9.048-4.002.467 0 1.164-.23 2.088-.696.468 0 .815-.114 1.044-.348h1.044c1.86-.463 3.132-.696 3.83-.696.929 0 2.321.233 4.174.696.698.468 1.567.929 2.611 1.392 1.045.468 1.795.929 2.263 1.392l1.392 1.392 1.74 1.741.348.695c.228.462.402.752.522.87.115.114.287.403.522.871.696.228 1.157.695 1.392 1.392.228.228.402.461.522.696.115.228.288.463.522.696.228.228.402.461.522.696.115.228.288.463.523.696l.347.348.697.696c.228.461.403.751.521.869.114.115.288.403.523.871.228.463.809 1.392 1.74 2.784.228.228.401.463.521.696.115.229.288.461.523.696l.695.697c0 .228.054.347.174.347.115 0 .175.115.175.348.228-1.164.576-2.669 1.044-4.524l.696-2.088.348-.696v-.696l.348-.696.348-.348c0-.235.055-.349.175-.349.113 0 .173-.119.173-.347.229-.233.348-.468.348-.696l.696-.696 2.088-2.089c.228 0 .463-.12.696-.347l.349-.348h.347l.697-.697h.695c1.159-.467 2.204-.87 3.133-1.218.924-.349 1.854-.75 2.784-1.218a28.58 28.58 0 012.784-1.218c.924-.349 1.739-.75 2.438-1.218.226 0 .46-.055.694-.175a1.57 1.57 0 01.696-.173c.23-.23.575-.347 1.044-.347.23 0 .404-.055.522-.175.114-.114.288-.174.522-.174h1.044c.926 0 2.09.234 3.48.696.23.233.403.348.523.348.115 0 .287.12.521.348.698.234 1.044.468 1.044.696.23 0 .464.12.696.348l.348.349v-.349zm-20.881 7.308c-2.321 1.16-3.828 2.55-4.523 4.177-.697 1.62-1.045 3.012-1.045 4.176 0 2.316.113 5.101.348 8.353.228 3.246.697 7.075 1.392 11.486a77.739 77.739 0 01-2.436-3.48c-.468-.698-.929-1.164-1.392-1.392a144.689 144.689 0 00-5.916-10.095 168.554 168.554 0 00-6.265-9.397c-2.322-3.251-4.644-6.15-6.96-8.7-1.627-1.392-3.367-2.087-5.22-2.087-1.855 0-3.134.232-3.83.695L5.088 15.811c-1.853.697-2.959 1.914-3.307 3.656-.348 1.738-.521 2.838-.521 3.305.233 3.708.989 8.929 2.263 15.661C4.8 45.16 7.176 52.007 10.656 58.968c3.481 6.96 8.473 13.572 14.967 19.837 6.492 6.264 14.964 10.903 25.405 13.922.696.694 2.203.809 4.524.348l11.139-1.74c3.478 9.745 7.83 20.3 13.049 31.67 5.221 11.364 11.539 23.666 18.968 36.891a19.4 19.4 0 001.565 1.392c.579.461 1.448.811 2.612 1.044 1.156.229 2.142.229 2.956 0 .812-.233 1.448-.468 1.916-.695l13.574-6.613c1.156-.468 2.2-1.452 3.13-2.959.924-1.512.578-3.653-1.044-6.437-2.086-3.481-4.758-8.065-8.002-13.748-3.254-5.688-6.732-12.181-10.443-19.491-3.715-7.308-7.483-15.138-11.311-23.49a276.555 276.555 0 01-10.268-25.756 143.244 143.244 0 01-5.218-16.008c-.47-1.86-.93-3.602-1.394-5.22a154.302 154.302 0 01-1.39-5.22c.226.226 1.68 1.618 4.349 4.174a679.874 679.874 0 0121.927 22.102c4.289 4.522 8.177 8.873 11.658 13.05l8.702-.348a1370.847 1370.847 0 00-16.358-22.274C101.024 46.901 95.864 40 90.183 32.692c-5.691-7.309-10.964-13.983-15.836-20.012-.47-.468-.816-.697-1.044-.697-.235-.234-.584-.347-1.046-.347-.468-.235-.814-.295-1.044-.175a1.577 1.577 0 01-.694.175l-12.531 4.175z",transform:"translate(273.72 65.618)"}),(0,o.jsx)("path",{fill:"currentColor",fillRule:"nonzero",d:"M129.333 138.667c-.468-.696-.929-1.392-1.392-2.088a505.09 505.09 0 01-1.392-2.09 19.088 19.088 0 01-1.217-2.086l-1.219-2.436c-.468-.698-.929-1.394-1.392-2.09-.468-.696-.929-1.392-1.392-2.088a197.308 197.308 0 01-4.698-8.526 109.707 109.707 0 00-4.699-8.179 124.48 124.48 0 00-2.088-4.003 127.578 127.578 0 01-2.088-4.001 36.328 36.328 0 01-1.915-3.656 35.808 35.808 0 00-1.914-3.653c-2.556-4.872-4.758-9.343-6.612-13.4a501.32 501.32 0 01-4.872-10.963c-.468-.931-.756-1.74-.87-2.436-.12-.696-.409-1.392-.872-2.088a20.282 20.282 0 01-.694-1.567 22.286 22.286 0 00-.698-1.566c-.466-1.164-.814-1.974-1.044-2.436a3.091 3.091 0 01-.348-1.392c0 .462.348 1.74 1.046 3.828.461 1.392.809 2.552 1.044 3.481.228.696.462 1.392.694 2.088.23.696.463 1.507.698 2.436 1.158 3.247 2.55 6.96 4.176 11.137 1.62 4.176 3.594 8.815 5.916 13.92.462 1.159.984 2.438 1.566 3.83a29.522 29.522 0 001.915 3.829 31.527 31.527 0 001.74 4.175l2.088 4.177c1.393 2.784 2.784 5.568 4.176 8.353a112.503 112.503 0 004.873 8.7c.462.696.87 1.392 1.218 2.09.349.694.75 1.505 1.218 2.436.463.694.87 1.392 1.218 2.086.349.698.75 1.507 1.218 2.436.463.698.87 1.392 1.218 2.09.349.696.752 1.392 1.218 2.088.463.696.926 1.506 1.392 2.436l.348.348.35.696c0 .228.053.402.172.522.114.114.174.288.174.523.463.923.696 1.62.696 2.087 0 .462.055.81.175 1.044.115.228.175.577.175 1.045 0 1.391-.35 2.664-1.046 3.828l-.346.696v.348l-.35.348-.348.348c-.234.463-.466.751-.696.871-.233.113-.468.401-.696.869-.929.463-1.512.809-1.74 1.044l-.348.348h-.348l-.348.348-1.393.348a63.021 63.021 0 01-4.697 2.437 205.261 205.261 0 01-4.699 2.087l-1.391.696-.349.348h-.348c-.235 0-.348.115-.348.349l-1.044.348h-.348l-.696.347h-1.044c-.233.229-.583.348-1.044.348h-2.088c-.931 0-2.323-.467-4.177-1.392a7.964 7.964 0 01-2.784-2.784c-.234 0-.348-.12-.348-.347l-.348-.697-.696-1.044c-.468-.929-.931-1.625-1.392-2.088-.931-1.86-1.74-3.252-2.438-4.176a502.972 502.972 0 01-9.048-16.88 1706.822 1706.822 0 00-8.005-15.488 48.043 48.043 0 00-1.565-3.48 45.05 45.05 0 01-1.566-3.48 29.801 29.801 0 00-1.566-3.307 28.305 28.305 0 01-1.567-3.305 143.05 143.05 0 00-1.217-2.959 48.74 48.74 0 00-1.219-2.61c-.468-1.392-.929-2.322-1.392-2.784 0-.468-.06-.755-.175-.87-.118-.12-.173-.408-.173-.87h-1.044l-.696.348c-.468 0-.871.054-1.219.174a3.914 3.914 0 01-1.218.174c-.467.229-1.163.348-2.087.348-.235.228-.469.348-.696.348h-3.132c-2.088 0-3.367-.12-3.829-.348.696.462 1.968.81 3.829 1.044h3.828a6.507 6.507 0 012.087-.348c.697 0 1.506-.12 2.437-.348h.696c.228.228.348.577.348 1.044l.349.348v.697l.695 1.392c.463 1.157.809 2.141 1.044 2.957.228.811.577 1.795 1.044 2.959a40.299 40.299 0 011.217 3.479 41.11 41.11 0 001.22 3.481 45.222 45.222 0 001.566 3.48 48.043 48.043 0 011.565 3.48 298.311 298.311 0 007.136 16.009c2.664 5.57 5.623 11.367 8.875 17.403l2.086 4.176c.463.463.752.869.872 1.219.114.348.288.749.52 1.217l.698 1.044.348.697.348.695c.925 1.392 2.317 2.785 4.176 4.177 1.621.924 3.594 1.62 5.917 2.087h3.132c.228 0 .463-.06.696-.172.228-.12.461-.175.696-.175h.696c.229 0 .401-.06.521-.173.115-.12.29-.175.523-.175h.696l.696-.348 1.392-.349v-.347h.696l.348-.348 1.392-.696a193.28 193.28 0 004.699-2.089 63.021 63.021 0 004.698-2.436l1.392-.348.348-.348h.348l.348-.347h.348c.462-.469.871-.757 1.219-.872.347-.118.749-.406 1.217-.869.462-.468.811-.869 1.044-1.217.23-.35.578-.756 1.044-1.219l.348-.696.35-.348.346-.348.348-.696.35-.696c.924-1.627 1.392-3.715 1.392-6.264a3.078 3.078 0 01-.35-1.392c0-.469-.118-.931-.348-1.393 0-.696-.232-1.74-.694-3.132-.235-.234-.35-.407-.35-.522 0-.12-.12-.294-.348-.522l-.346-.696c0-.234-.12-.348-.35-.348v-.348a5.165 5.165 0 01-1.392-2.436zM28.752 27.297c.229.228 1.275 1.158 3.133 2.784 1.855 1.62 4.118 3.828 6.787 6.614 2.665 2.782 5.569 6.089 8.7 9.917 3.133 3.828 6.32 8.179 9.572 13.051.695 2.55 1.392 5.274 2.087 8.18.697 2.898 1.621 5.969 2.785 9.222-6.499-4.41-12.997-10.501-19.489-18.272-6.499-7.776-11.371-18.044-14.618-30.801l.348-.348c0-.696.228-.815.695-.347zM78.869 8.503l-1.392-1.392a3.037 3.037 0 00-.696-.523 2.578 2.578 0 01-.697-.521c-1.391-.926-2.668-1.392-3.828-1.392H69.82c-.695 0-1.163.12-1.392.348h-.695l-.697.348c-.929.233-1.799.408-2.611.522-.814.12-1.798.408-2.957.87-.468.233-1.392.582-2.784 1.044-.696 0-1.277.12-1.74.348-.235 0-.469.12-.696.348h-1.045c-.232.234-.467.349-.695.349-.235.232-.583.347-1.044.347l-.348.348-.349.348c-.234 0-.407.06-.522.174-.12.12-.293.175-.522.175a8.46 8.46 0 01-1.566 1.217 7.855 7.855 0 00-1.566 1.219c0 .228-.234.575-.696 1.044l-.696.695c0 .229-.119.462-.348.697l-.696.695v.349h-.35v-.349l-.346-.347a2.77 2.77 0 01-.523-.697 2.803 2.803 0 00-.521-.695c-.234-.468-.408-.757-.523-.871-.119-.118-.293-.408-.523-.87-.232-.234-.292-.348-.173-.348.115 0 .055-.12-.173-.347-.696-.697-1.164-1.273-1.392-1.741l-.698-.696-.348-.696-1.738-2.087c-.235 0-.583-.229-1.044-.697l-1.046-1.044c-.929-.696-1.798-1.218-2.61-1.567a44.638 44.638 0 01-2.61-1.217c-.929-.23-1.8-.403-2.61-.523-.815-.115-1.799-.173-2.958-.173-1.854 0-3.594.348-5.22 1.044h-.697v.346h-.348c-.228.235-.576.35-1.044.35l-2.088 1.044c-.228 0-1.332.641-3.307 1.914-1.968 1.278-3.593 2.436-4.872 3.479-1.272 1.044-1.566 1.507-.869 1.393.696-.12 3.713-1.446 9.048-4.002.468 0 1.164-.23 2.088-.696.468 0 .816-.114 1.044-.348h1.045c1.859-.463 3.131-.696 3.828-.696.93 0 2.322.233 4.175.696.697.468 1.567.929 2.611 1.392 1.045.468 1.794.929 2.262 1.392l.696.696.698.696 1.738 1.741.348.695c.23.462.403.752.523.87.115.114.288.403.521.871.698.228 1.159.695 1.392 1.392.23.228.403.461.523.696.115.228.289.463.521.696.23.228.403.461.523.696.115.228.288.463.523.696l.346.348.698.696c.228.461.402.751.521.869.115.115.288.403.523.871.228.463.809 1.392 1.74 2.784.229.228.402.463.521.696.115.229.288.461.523.696l.696.697c0 .228.053.347.173.347.115 0 .175.115.175.348.228-1.164.577-2.669 1.044-4.524l.696-2.088.349-.696v-.696l.347-.696.348-.348c0-.235.054-.349.174-.349.115 0 .174-.119.174-.347.229-.233.349-.468.349-.696l.695-.696 2.088-2.089c.228 0 .462-.12.697-.347l.348-.348h.347l.697-.697h.695c1.158-.467 2.204-.87 3.133-1.218.924-.349 1.855-.75 2.784-1.218.924-.463 1.853-.87 2.785-1.218.924-.349 1.739-.75 2.436-1.218.228 0 .462-.055.695-.175a1.57 1.57 0 01.697-.173c.228-.23.575-.347 1.044-.347.228 0 .403-.055.522-.175.114-.114.288-.174.521-.174h1.044c.925 0 2.089.234 3.481.696.23.233.402.348.522.348.114 0 .288.12.522.348.696.234 1.044.468 1.044.696.228 0 .463.12.696.348l.348.349v-.349zm-20.881 7.308c-2.323 1.16-3.829 2.55-4.524 4.177-.697 1.62-1.045 3.012-1.045 4.176 0 2.316.114 5.101.348 8.353.229 3.246.697 7.075 1.392 11.486a77.739 77.739 0 01-2.436-3.48c-.468-.698-.93-1.164-1.392-1.392a144.294 144.294 0 00-5.916-10.095 168.038 168.038 0 00-6.266-9.397c-2.321-3.251-4.642-6.15-6.96-8.7-1.625-1.392-3.366-2.087-5.22-2.087-1.854 0-3.132.232-3.829.695L5.087 15.811c-1.854.697-2.958 1.914-3.306 3.656-.349 1.738-.522 2.838-.522 3.305.233 3.708.99 8.929 2.262 15.661C4.8 45.16 7.176 52.007 10.656 58.968c3.48 6.96 8.472 13.572 14.965 19.837 6.492 6.264 14.964 10.903 25.407 13.922.695.694 2.201.809 4.524.348l11.137-1.74c3.48 9.745 7.831 20.3 13.051 31.67 5.22 11.364 11.539 23.666 18.967 36.891.462.463.985.924 1.566 1.392.578.461 1.447.811 2.611 1.044 1.157.229 2.143.229 2.957 0 .811-.233 1.447-.468 1.915-.695l13.573-6.613c1.158-.468 2.202-1.452 3.132-2.959.924-1.512.576-3.653-1.044-6.437-2.088-3.481-4.758-8.065-8.004-13.748-3.253-5.688-6.732-12.181-10.441-19.491-3.715-7.308-7.483-15.138-11.312-23.49a276.549 276.549 0 01-10.267-25.756 143.26 143.26 0 01-5.22-16.008c-.468-1.86-.929-3.602-1.392-5.22a154.141 154.141 0 01-1.392-5.22c.228.226 1.68 1.618 4.351 4.174a646.26 646.26 0 019.744 9.571 673.616 673.616 0 0112.181 12.531c4.291 4.522 8.179 8.873 11.659 13.05l8.701-.348a1358.964 1358.964 0 00-16.357-22.274C101.024 46.901 95.863 40 90.181 32.692c-5.689-7.309-10.964-13.983-15.836-20.012-.468-.468-.816-.697-1.044-.697-.233-.234-.582-.347-1.045-.347-.467-.235-.815-.295-1.044-.175a1.571 1.571 0 01-.695.175l-12.529 4.175z",transform:"translate(361.073 65.618)"}),(0,o.jsx)("path",{fill:"currentColor",fillRule:"nonzero",d:"M122.667 46.667c0-2.087-.12-3.708-.348-4.872a44.165 44.165 0 01-.696-2.263 67.734 67.734 0 00-.696-2.261 18.816 18.816 0 01-1.219-2.088 6.702 6.702 0 00-1.217-1.74c-.696-.924-1.74-2.088-3.132-3.48l-1.742-1.742-2.088-1.044c-.929-.462-1.625-.696-2.088-.696-.929-.461-1.74-.696-2.436-.696-1.392-.462-2.904-.228-4.525.696-.232.234-.467.348-.695.348l-.349.348c-.233 0-.348.06-.348.175 0 .12-.119.175-.347.175l-.348.346c0 .235-.12.348-.349.348l-.348.696-.347.348v.348l-1.044 1.044h-.348l-.697.698-1.392.694c-.467.47-.929.698-1.392.698-.467.466-.929.696-1.392.696-.233.233-.408.348-.521.348-.12 0-.295.12-.523.348-.929.233-1.74.466-2.436.696-.696.233-1.392.468-2.088.694-1.392.235-2.436.583-3.133 1.046-.467 0-.815.06-1.043.174a1.528 1.528 0 01-.697.172h3.306c.578 0 1.219-.113 1.914-.346.697 0 2.204-.228 4.525-.696.463 0 .751-.055.869-.175.115-.115.29-.175.523-.175.463 0 .749-.053.869-.172.115-.114.403-.174.872-.174a7.159 7.159 0 011.392-.523c.462-.115.924-.403 1.392-.869.227 0 .402-.055.522-.175.114-.113.288-.173.522-.173l.347-.35.348-.346c.463-.228.752-.403.872-.523.112-.115.401-.288.869-.523 0-.228.114-.461.348-.694l.347-.35.349-.348h.348v-.346h.695c.925-.463 1.741-.578 2.436-.35.229 0 .812.235 1.741.696.463 0 .924.235 1.392.698.228.233.463.408.698.521.226.119.461.293.694.521.23 0 .348.06.348.175 0 .12.115.175.348.175l.696.694c.463.468.871.931 1.219 1.392.348.47.751.931 1.217 1.394a23.901 23.901 0 001.742 3.48c.228.468.402 1.044.521 1.74.113.696.288 1.277.523 1.74 0 .696.053 1.338.173 1.913.115.583.175 1.22.175 1.915v1.741c0 .467-.06.755-.175.869-.12.12-.173.408-.173.87-.235 2.324-1.164 4.41-2.786 6.266-1.392 1.624-3.25 3.251-5.568 4.872-.466.467-.929.755-1.392.87-.468.12-.93.408-1.393.87l-3.131 1.044-1.392.695c-.234 0-.468.12-.697.349h-.695c-.234.234-.582.348-1.044.348H99c-.233.234-.468.347-.695.347-.468 0-.817.06-1.045.175-.233.12-.467.174-.696.174-.468 0-.815.119-1.043.348h-.349c0 .234-.12.348-.348.348v.347c0 .235.115.469.348.697 0 .467.115.696.349.696.228 0 .347.059.347.174 0 .12.115.174.348.174.229.234.403.348.523.348.114 0 .288.12.521.348h.348v.348h.697c.462.234.924.583 1.391 1.044.463.234.925.582 1.392 1.044 0-.228-.347-.696-1.044-1.392L99 69.637c0 .234-.348 0-1.043-.696l-.349-.348c-.233 0-.233-.114 0-.348v-.348c.229-.228.463-.348.697-.348h3.131l.349-.349h.695c.463 0 .752-.053.872-.172.113-.115.401-.175.869-.175l3.132-1.045a29.897 29.897 0 001.914-.695 20.017 20.017 0 001.566-.696 58.671 58.671 0 003.48-2.262c1.159-.811 2.318-1.794 3.482-2.959 2.088-2.088 3.48-4.752 4.176-8.004.228-.463.348-.811.348-1.045 0-.228.113-.575.348-1.044v-2.436zM52.364 70.681c-.233-.228-.407-.348-.521-.348-.12 0-.294-.114-.523-.348h2.436c.463 0 .871.06 1.219.174.348.12.75.174 1.218.174h.347l.349 1.044c.228.468.348.816.348 1.044 0 .234.115.583.347 1.046l.349.694v.348c0 .235.054.35.174.35.114 0 .174.118.174.346h-.348l-.349-.346h-.347a20.848 20.848 0 00-1.566-1.392 17.56 17.56 0 01-1.567-1.394c-.467-.228-1.043-.696-1.74-1.392zm70.999 64.735l.696 1.391c.462.925.696 1.74.696 2.437.228 0 .348.228.348.695v2.785c-.235 0-.348.113-.348.348v.695c0 .229-.06.349-.174.349-.12 0-.174.113-.174.348-.468.924-.931 1.62-1.392 2.088l-.348.348v.348h-.348l-1.044 1.044c-.468.461-.816.751-1.044.869-.235.115-.583.403-1.044.871l-2.09 2.088a22.799 22.799 0 01-2.436 2.088c-.466.463-.869.811-1.217 1.044-.348.228-.756.577-1.219 1.045l-1.392.695-.348.697-.696.347c-.468.229-.929.577-1.392 1.045-.468 0-.929.228-1.392.696-.234 0-.348.054-.348.174 0 .114-.12.174-.349.174l-.695.347c-.234.229-.582.349-1.044.349-.468.228-1.277.348-2.436.348 0-.234-.234-.348-.697-.348h-.348c-.232 0-.347-.06-.347-.174 0-.119-.12-.175-.348-.175h-.697c-1.164-.695-2.556-1.973-4.175-3.828a70.073 70.073 0 01-4.002-4.349 773.612 773.612 0 01-3.656-4.351 57.655 57.655 0 01-2.958-3.828c-.816-1.164-1.565-2.088-2.262-2.785-.93-.93-1.566-1.626-1.914-2.087a9.99 9.99 0 00-.869-1.045c0 .462.112.925.347 1.392v-.347.695l.348.349v.695c0 1.158-.12 2.204-.348 3.133 0 .228-.235.809-.696 1.74 0 .461-.119.809-.348 1.044-.234.228-.468.576-.695 1.044 0 .228-.12.348-.349.348 0 .229-.06.348-.174.348-.12 0-.174.113-.174.348l-1.044 1.044c-.234 0-.348.053-.348.173 0 .115-.12.175-.348.175 0 .228-.234.348-.696.348l-1.044 1.044a2.572 2.572 0 00-.523.697c-.12.227-.407.462-.869.695l-1.044 1.044c-1.392.925-2.323 1.621-2.784 2.089-2.323 1.854-4.298 3.36-5.918 4.524-.929.463-1.512.811-1.74 1.043l-.348.349h-.696l-.696.696c-.929.462-1.974.696-3.133.696-2.321 0-4.295-.696-5.915-2.088-1.393-.93-2.322-1.74-2.785-2.436 0-.233-.06-.348-.173-.348-.12 0-.175-.12-.175-.348l-.348-.349h-.348v-.347c-.233-.468-.408-.757-.521-.87-.12-.12-.295-.407-.523-.87a55.31 55.31 0 00-2.263-3.48 62.576 62.576 0 01-2.261-3.481c-.463-.467-.751-.989-.869-1.567-.115-.581-.403-1.104-.872-1.565l-2.087-3.132c-1.159-2.088-1.796-3.019-1.915-2.785-.114.229.174 1.218.871 2.958.695 1.742 1.625 3.943 2.783 6.614a79.98 79.98 0 004.177 8.178c.468.924.816 1.506 1.044 1.739l.348.349v.348c.233 0 .348.115.348.347.463.463.696.812.696 1.045a12.4 12.4 0 003.48 3.48l2.088 1.044c.463.463.871.696 1.219.696.348 0 .75.115 1.217.348.463.228.871.348 1.219.348.348 0 .75.115 1.218.348h2.783c.925-.233 1.447-.348 1.567-.348.114 0 .522-.234 1.218-.696.228 0 .576-.233 1.044-.696.228 0 .463-.12.696-.346l.348-.35c.462-.233.751-.408.871-.522.113-.12.403-.294.869-.522l1.392-1.392c.463-.233 1.046-.696 1.74-1.392l.696-.348c0-.468.228-.697.698-.697.228-.695.694-1.163 1.392-1.391.462-.468.869-.93 1.217-1.392.349-.468.751-.93 1.219-1.392l1.044-1.045 1.392-1.391 1.044-1.045c0-.233.053-.347.173-.347.115 0 .175-.12.175-.349l.697-.696c.227-.233.347-.407.347-.521 0-.12.114-.295.348-.523l.697-.696c0-.233.112-.468.347-.696.228-.467.402-.869.522-1.219.115-.348.288-.754.522-1.217 0-1.164.114-1.973.348-2.436 0-.468-.06-.989-.175-1.567a7.853 7.853 0 01-.173-1.566c0 .462.114.81.348 1.045.462.924 1.044 2.028 1.741 3.305a52.143 52.143 0 002.436 4.003 109.594 109.594 0 002.957 4.872 489.037 489.037 0 013.307 5.22c.463.697 1.272 1.621 2.436 2.785l1.392 1.392c.228 0 .463.115.696.348.229.23.403.348.521.348.115 0 .29.115.523.348 2.551 1.392 5.335 1.74 8.353 1.046.462 0 1.159-.235 2.088-.698l.696-.696c.228 0 .403-.06.522-.173.114-.12.289-.175.522-.175.462-.468.924-.814 1.392-1.044.23-.233.462-.408.696-.522.228-.12.463-.294.698-.523l.694-.695.698-.348 3.48-3.48c.924-.929 1.74-1.741 2.436-2.436a23.217 23.217 0 002.088-2.436c.461-.469.75-.817.87-1.045.114-.233.403-.581.87-1.044l1.044-1.044v-.348c.228 0 .348-.12.348-.348 0-.233.054-.348.174-.348.114 0 .174-.12.174-.348.229-.468.402-.869.521-1.219.115-.348.289-.754.523-1.217 0-.468.054-.757.174-.869.114-.12.174-.295.174-.523v-1.392c0-.931-.119-1.627-.348-2.088 0-.468-.12-.817-.348-1.045 0-.467-.119-.696-.347-.696-.469-1.163-.932-1.975-1.393-2.436l-1.044-1.043zM45.404 27.177a140.527 140.527 0 015.395 8.006c1.74 2.784 3.42 5.801 5.046 9.048h-3.481a29.312 29.312 0 01-5.568.174c-1.855-.114-3.247-.288-4.176-.522h-.697c-4.638-.463-9.223-1.62-13.746-3.48-4.525-1.855-7.482-4.874-8.874-9.048-.926-2.784-.986-5.16-.175-7.136.816-1.968 2.148-3.479 4.003-4.524 1.858-1.044 4.062-1.506 6.612-1.391 2.556.117 5.221.869 8.005 2.261.233.235 1.044.815 2.436 1.74a24.365 24.365 0 012.611 2.263l2.609 2.609zm-5.917 41.068h1.044c-.227.234-.402.348-.522.348-.113 0-.288.119-.522.348-2.316.93-3.942 1.627-4.872 2.088-2.784.931-4.524 1.74-5.22 2.438.234-.23 2.088-.698 5.569-1.394a13.728 13.728 0 012.261-.522c.816-.114 1.8-.403 2.959-.87.233 0 .467-.053.696-.173.233-.115.468-.175.696-.175h.347l.349-.348h3.48l.348.348c1.392.468 2.316.93 2.784 1.392.229.235.403.468.523.696.114.234.401.468.869.696.229.467.463.756.696.87.228.12.463.409.696.872.463.461.984.924 1.567 1.39.576.463 1.098.926 1.566 1.392.924 1.16 1.854 2.143 2.783 2.959a66.57 66.57 0 013.133 2.959c.463.462.984.924 1.567 1.392.576.462 1.097.924 1.565 1.392.23.462.462.75.696.869.228.115.463.403.698.871l1.042.696.35.348v-.348l-2.09-8.354a12.674 12.674 0 01-.521-2.261 13.344 13.344 0 00-.523-2.261l-.348-1.044-.348-1.046-.348-1.74c-.468-.925-.696-1.62-.696-2.088a15.687 15.687 0 01-.521-1.913 17.997 17.997 0 00-.523-1.915l-.348-.349v-.347H56.54c-.467-.228-1.277-.348-2.436-.348h-2.261a7.011 7.011 0 01-2.262-.349c-2.089 0-3.716-.113-4.873-.347H42.62c-.463-.228-1.159-.348-2.089-.348a34.876 34.876 0 00-2.436-.522 12.78 12.78 0 00-2.087-.175c-.463-.228-.812-.347-1.044-.347-.229 0-.577-.114-1.045-.348h-.696l-.695-.349h-.349c-1.855-.463-3.132-.809-3.828-1.043-.463-.229-.811-.349-1.046-.349-.226 0-.461-.113-.694-.348-.463-.227-.81-.347-1.044-.347-.228 0-.463-.114-.698-.349-4.402-1.62-8.004-3.479-10.788-5.568a162.482 162.482 0 01-2.784-2.263c-.696-.576-1.158-.982-1.392-1.217 0 .235 1.164 1.739 3.48 4.524.468.468 1.044.991 1.74 1.565a62.133 62.133 0 002.436 1.916c.468.467.931.755 1.392.87.468.12.931.408 1.394.869.466.235.754.408.869.523.12.12.408.293.869.522l.698.347c.233.235.466.348.694.348.468.235.758.409.871.523.12.12.408.293.871.521.929.468 1.512.697 1.74.697.696.467 1.392.755 2.088.87.696.12 1.392.408 2.089.869h.347l.696.349c.468 0 .816.119 1.044.348.468 0 1.164.234 2.088.695l4.176 1.045zm66.126-34.454c-1.86 2.556-4.757 4.524-8.7 5.916-3.948 1.392-8.353 2.436-13.225 3.132a7.073 7.073 0 01-2.264.349h-2.261a62.79 62.79 0 00-1.392-2.611 217.49 217.49 0 00-1.74-2.958 213.911 213.911 0 00-4.351-6.612c-1.74-2.551-3.828-5.102-6.264-7.658-2.437-2.549-5.221-4.986-8.353-7.309-3.132-2.316-6.672-4.176-10.615-5.568-5.335-1.853-10.903-2.665-16.705-2.436-7.658.468-13.454 3.192-17.402 8.179-3.942 4.992-5.509 10.56-4.698 16.705.816 6.151 4.35 12.007 10.614 17.576 6.266 5.568 15.782 9.048 28.539 10.44 1.159 0 2.551.12 4.176.349 1.392.234 2.959.348 4.699.348 1.741 0 3.768.119 6.09.347h1.044c2.318 6.732 4.176 12.937 5.568 18.62 1.392 5.683 2.318 9.8 2.786 12.356.228.924.402 1.853.521 2.784.115.924.289 1.739.521 2.436.23.463.35 1.044.35 1.74.228.461.348.871.348 1.219 0 .346.114.749.348 1.217a190.895 190.895 0 00-9.223-9.919 526.118 526.118 0 00-8.527-8.352c-2.556-2.437-4.698-4.41-6.438-5.917-1.742-1.512-2.731-2.496-2.959-2.959-.929-.461-1.507-.576-1.74-.346h-.348l-2.784.694a134.324 134.324 0 01-4.7 1.915 57.184 57.184 0 01-4.697 1.565c-3.48 1.392-5.45 4.291-5.916 8.702.466 12.294 2.957 24.128 7.482 35.5a206.432 206.432 0 0016.531 32.714c1.159 1.392 2.436 2.55 3.828 3.479 1.392.925 3.013.812 4.873-.347 1.159-.696 2.376-1.566 3.655-2.61a51.34 51.34 0 003.653-3.307c1.159-.929 2.551-2.207 4.178-3.828 1.62-1.627 3.012-3.019 4.176-4.176l-1.392-2.088c-.698-.697-1.74-1.975-3.134-3.828-5.105-7.196-9.516-14.677-13.225-22.448a112.562 112.562 0 01-8.351-24.189c-.234-1.163.227-1.452 1.392-.87 1.158.576 2.783 1.794 4.872 3.655 2.087 1.855 4.464 4.351 7.134 7.481a214.42 214.42 0 018.178 10.267 73.08 73.08 0 015.222 6.613 5995.24 5995.24 0 004.873 6.96 844.845 844.845 0 013.653 5.57 427.61 427.61 0 014.003 6.264c.228.462.461.81.696 1.044.228.228.463.577.696 1.045a535.623 535.623 0 003.305 5.22 45.27 45.27 0 003.308 4.524 184.522 184.522 0 004.175 5.22c1.621 1.621 3.013 2.204 4.176 1.741.229 0 .463-.12.697-.349 2.551-1.392 5.22-3.425 8.006-6.089 2.784-2.671 4.985-4.932 6.612-6.787 0-.235.114-.523.346-.869.23-.35.35-.758.35-1.219 0-.697-.12-1.277-.35-1.74-1.162-1.393-2.669-3.481-4.522-6.265-1.862-2.784-3.83-6.036-5.918-9.746a228.135 228.135 0 01-6.264-12.006c-2.088-4.296-3.829-8.526-5.221-12.703.463.461 2.088 2.028 4.872 4.697 2.785 2.666 6.147 6.032 10.095 10.095 3.941 4.056 8.118 8.405 12.528 13.051 4.405 4.637 8.468 9.162 12.181 13.572h8.7a2054.523 2054.523 0 00-17.401-23.318A9002.906 9002.906 0 01112.4 96.261c-5.688-7.542-11.083-14.329-16.184-20.358v-.35h-.348v-.348h-.347c-.469-.461-.817-.696-1.045-.696l-.348-.348c-.696-.228-1.625-.348-2.784-.348-.468-.924-.929-2.436-1.392-4.524-.468-2.089-1.277-4.525-2.436-7.309.696 0 1.159-.115 1.392-.347 1.62 0 3.828-.174 6.613-.522 2.784-.348 5.567-1.044 8.351-2.088 2.785-1.046 5.221-2.551 7.309-4.526 2.088-1.968 3.132-4.464 3.132-7.481 0-1.855-.292-3.421-.869-4.7a77.74 77.74 0 01-1.567-3.653c-.466-.696-1.164-1.507-2.088-2.436l-.696-.698a23.865 23.865 0 00-2.436-1.39c-.466-.228-.816-.348-1.044-.348zM48.536 4.904c-.233-.228-.407-.348-.521-.348-.12 0-.295-.115-.523-.348-.235 0-.348-.055-.348-.175 0-.114-.119-.173-.348-.173-.233-.228-.468-.348-.696-.348-.235 0-.467-.115-.696-.348-2.088-.924-4.405-1.621-6.96-2.088C35.659.379 32.413.031 28.699.031c-4.404 0-8.352.817-11.834 2.437-3.942 1.625-7.074 3.948-9.396 6.96-2.317 2.784-4.057 5.803-5.22 9.048-.462 1.861-.812 3.133-1.045 3.829v6.612c.233-.228.348-.576.348-1.044 0-.461.235-1.158.697-2.088v-.696c.232 0 .347-.228.347-.696.235-.228.348-.462.348-.696 0-.228.12-.461.349-.696.234-.462.467-1.044.695-1.74.235-.696.468-1.273.697-1.74 1.163-2.089 3.131-4.525 5.916-7.309 2.322-2.088 5.106-3.828 8.352-5.22 3.48-1.621 6.734-2.551 9.746-2.784 1.86-.229 3.54-.403 5.046-.521a18.241 18.241 0 014.35.173c1.392 0 2.67.059 3.828.173 1.164.12 2.209.175 3.133.175a3.06 3.06 0 001.392.348h1.044c.228.233.577.348 1.044.348z",transform:"translate(430.383 1.004)"}),(0,o.jsx)("path",{fill:"currentColor",d:"M8 6.667c.216 0-.144.106-.144.325v3.092c0 .327.459 1.14.785 2.443 2.82.757 4.38 1.517 4.38 2.278 0 .867-1.861 1.896-5.874 3.092-1.086-1.086-2.002-1.953-3.304-2.604-1.522-1.302-2.654-2.877-2.654-4.72V9.108c0-.76-.113-1.401.212-2.484 2.604-3.8 3.63-6.391 3.63-6.391h.488c.217 0 .921.651 2.116 1.302C8.719 1.1 9.532.233 10.076.233h1.791c.325 0-.011-.024 1.322.738v.162C9.189 2.216 8 4.063 8 6.667",transform:"translate(305.477 357.1)"}),(0,o.jsx)("path",{fill:"currentColor",d:"M32 2.667c0 .866.037 1.681-.504 2.441-.76.325-.829 1.791-.829 4.395v.162c0 3.907-.123 6.943-.339 9.115 0 2.06-.552 3.092-1.635 3.092-.544 0-1.142-.54-1.793-1.843-.435-3.905-1.089-5.748-1.957-5.748h-.488s-.455.862-1.788 2.058v8.464c0 .976-1.006 1.464-1.222 1.464-1.196-.651-1.669-2.172-1.669-4.558 0-2.929.224-5.805.549-8.626l-.946-2.442c-.435 0-1.559.164-3.186.49-.869 1.082-1.526 2.06-2.86 2.929v3.417l.435 2.931c-.22 0-.272.107-.272.325-.325 0-.949-.814-1.925-2.441-1.412.432-2.103 1.735-2.103 3.905 0 4.014.487 7.326 1.899 9.93 4.122.976 5.966 1.789 5.966 2.441v.651c0 .432.062.92-.264 1.465-.544 1.408-1.84 2.548-4.118 3.417-.978.978-1.41 3.147-1.41 6.511.867 4.883 1.656 7.324 2.307 7.324.432 2.495 1.919 4.501 3.871 6.023 1.082.757 3.614 2.116 7.614 4.069v.813c0 .216-.438.379-.765.488-4.557 0-6.973-.272-6.973-.813-1.738 0-5.272-2.66-9.936-7.976C5.161 53.285 2.667 47.532 0 39.288v-1.14c0-7.38 1.783-13.835 4.823-19.368 2.385-5.208 7.237-9.704 14.292-13.717C25.515 2.24 29.663.948 31.291.948h.325c.651 0 .384.687.384 1.556v.163z",transform:"translate(281.333 328.385)"}),(0,o.jsx)("path",{fill:"currentColor",d:"M244 10.667c0 13.778-3.913 26.778-11.183 39.474-16.926 25.716-40.425 38.335-69.938 38.335H74.013c-16.496 0-31.36-3.939-44.597-12.293C15.863 66.325 6.168 55.115.309 42.32c1.955.704 3.899 1.445 5.835 2.104 5.271 10.141 12.844 18.645 22.784 25.985 14.104 9.547 28.589 14.067 43.457 14.067h92.122c11.934 0 24.1-2.916 36.362-9.316C226.912 59.751 240 36.489 240 4.807v-3.66a149.574 149.574 0 004 8.908v.612z",transform:"translate(194.667 203.523)"}),(0,o.jsx)("path",{fill:"currentColor",d:"M18.667 10.667h-2.279c-2.063-1.334-3.853-2.618-5.371-2.618-.218 0-1.11.263-2.193.482-1.521-.326-2.52-.606-2.52-1.147v-.651l.567-1.628c-.544-.544-1.13-.561-1.996-.668-1.847.326-2.647.896-2.647 3.563h-.163C1.74 5.333 1.251 4.325.6 2.697.6 1.396 1.468 0 3.204 0h.977c1.735 1.333 3.743 2.389 6.022 2.389 1.193 2.822 2.658 4.207 4.394 4.207 1.844 1.409 2.931 2.103 3.256 2.103.107 0 .542.386 1.302 1.797 0 .327-.163.171-.488.171",transform:"translate(325.696 330.667)"}),(0,o.jsx)("path",{fill:"currentColor",fillRule:"nonzero",d:"M176 116c-6.62 7.703-10.396 14.323-10.396 19.857v3.58c0 7.378 1.329 14.486 4.152 21.322 3.797 9.657 10.919 16.709 21.444 21.158 8.029 2.606 13.164 3.907 15.443 3.907 4.122-.651 6.878-1.248 8.29-1.791 7.594-1.845 14.282-5.045 19.599-9.602 9.005-9.334 13.739-20.996 13.739-34.994v-1.465c-1.334-4.449-2.514-9.928-6.42-16.439-9.766-12.588-21.602-18.88-35.274-18.88-11.286 0-21.462 4.448-30.577 13.347zm-13.063 20.345c-1.333-.761-6.261-2.55-14.614-5.372-10.092-4.124-23.612-8.03-40.431-11.718-.219.652-.792 3.85-1.66 9.604 22.027 6.4 38.124 15.856 48.324 28.118 14.649 24.306 31.451 36.584 50.439 36.584h3.256c16.382 0 31.302-9.24 44.758-27.469 2.711-4.667 5.588-8.797 8.627-12.269 7.052-7.162 15.552-13.108 25.317-17.772 14.323-5.752 22.651-8.658 25.318-8.658v-.488c-1.334 0-2.667-2.766-2.667-8.301v-.325c-1.333 0-7.301 1.465-18.369 4.394-2.823 0-16.346 4.395-40.434 13.184l-.686 8.626c0 6.185-1.864 13.074-5.551 20.67-2.279 5.099-6.52 9.983-12.705 14.65-7.487 4.882-15.792 7.702-24.907 8.462-1.845 0-4.917-.488-9.475-1.464-23.112-6.078-34.54-22.842-34.54-50.293v-.163zm163.67-102.702c-3.039 6.836-8.914 14.936-17.919 24.269-17.145 14.865-35.227 22.316-54.539 22.316h-25.228c-.434 0-.65.723-.65 1.917v2.768c0 2.059.488 3.85 1.464 5.371 4.664 8.028 18.066 12.044 40.202 12.044 27.886 0 64.942-5.101 111.166-15.3 2.929 1.735 4.393 5.209 4.393 10.417 0 .976.027 3.255-.299 6.836-3.254.651-18.26 2.658-43.593 6.023v.976c1.333-.325 2.468-.488 3.555-.488 10.522 0 31.045 2.433 61.754 7.209 1.408-.325 2.347-.44 2.998-.44h.813c2.169 0 2.88 1.096 4.213 3.484v1.466c-1.333 2.929-3.345 4.384-5.189 4.384h-.325l-1.14-.21c-2.388-2.604-3.69-3.79-3.907-3.79h-1.464c-14.759-2.667-27.128-4-37.109-4h-3.094c-8.462 0-15.68.749-21.646 2.052-.219 0-.382 1.352-.488 3.956-2.498 1.082-9.603 2.792-21.322 5.069l-3.256-.964c-5.317 1.303-11.286 3.099-17.902 5.377a127.396 127.396 0 00-21.16 10.42c-7.922 4.774-14.216 11.088-18.88 18.468-14.758 21.811-30.599 32.955-47.526 32.955h-7.813c-16.6 0-32.281-11.101-47.036-32.26-7.163-13.456-23.764-23.74-49.805-33.073h-.271v1.544c0 3.581-3.201 6.076-9.712 7.486l-20.096-4.394c-1.301 0-2.192-3.527-2.192-10.579v-.325l.592-1.127c-7.271-1.301-14.439-1.939-22.032-1.939h-3.419c-10.634 0-21.43 1.016-32.389 3.079-4.124.432-6.347.751-6.673.969-1.846 2.495-3.379 3.74-4.462 3.74-2.062 0-3.617-1.468-4.95-4.397v-1.465c0-2.279 1.328-3.259 3.716-3.259H4.8c.652 0 1.681-.08 3.093.245 30.815-4.666 51.028-7.118 61.014-7.118 2.278 0 4.697.148 4.697.692v-3.255c-2.667-.652-17.719-2.66-44.737-6.023-1.195 0-1.698-2.441-1.698-7.324.107-5.426 1.618-8.898 4.44-10.417 46.44 10.199 83.302 15.3 110.538 15.3 6.185 0 12.542-.381 19.272-1.139 15.3-2.824 22.852-8.248 22.852-16.276v-2.768c0-1.194-.002-1.917-.434-1.917h-32.552c-17.797 0-34.993-6.528-51.596-19.549-12.718-11.74-21.317-24.599-25.844-38.544a377.32 377.32 0 005.08 1.969c3.36 8.881 8.543 17.24 15.556 25.463 16.927 17.904 37.542 26.661 61.85 26.661h92.772c20.724 0 39.062-6.537 55.013-19.991 7.92-7.596 13.045-13.142 14.891-16.83 7.184-10.867 11.542-23.762 12.836-38.768.893 1.596 1.81 3.16 2.753 4.69-.841 9.231-3.383 18.666-7.989 28.314z",transform:"translate(110.396 219.772)"}),(0,o.jsx)("path",{fill:"currentColor",d:"M12 2.667h.163l.813.713c.217 3.147.596 4.62 1.14 4.62h.325l-.237-1.597V2.984c0-1.085.832-1.651 1.703-2.984h1.626c.543 0 .671.812.671 2.008v.325c0 6.943-.916 10.416-1.349 10.416-1.736 1.41-2.651 2.768-2.651 4.07v1.953c0 .216.075-.105-.251-.105h-.325c-1.628-1.334-2.604-2.796-2.931-2.796-.434 0-.76 1.069-.976 2.916l.326 7.78C9.828 27.544 9.559 28 9.233 28h-.814c-.326 0-.882-.332-.882-1.416V16H6.14c-.435 0-1.269.112-1.269.331v4.557c0 .541-.288.813-.504.813-1.628 0-2.287-.65-2.287-1.952.216-3.04.403-4.884.403-5.534-.219-3.799-.287-5.752-.287-5.859-.544 0-1.176-1.245-1.935-3.415 0-.544.615-.941 1.811-2.274h3.58c.325 0 .596.59.815 1.461l-.49 2.261C6.195 7.04 6.573 8 7.117 8h1.466c.65 0 1.301-.172 1.952-1.039.433-3.04.921-4.294 1.465-4.294",transform:"translate(335.129 358.667)"}),(0,o.jsx)("path",{fill:"currentColor",d:"M1.333 1.333v-.052c0-.325.43.052.103.052h-.103z",transform:"translate(444 181.333)"}),(0,o.jsx)("path",{fill:"currentColor",d:"M1.333 1.333v.051c-.317-.004 0-.375 0-.051",transform:"translate(441.333 181.281)"})]})})})};var N=l(5742);function k(){return(0,o.jsx)("header",{className:(0,a.Z)("hero hero--primary",r.heroBanner),children:(0,o.jsxs)("div",{className:"container",children:[(0,o.jsx)(S,{className:r.logo,width:"350"}),(0,o.jsx)("p",{className:"hero__subtitle",children:"The stylish Node.js middleware engine for AWS Lambda"}),(0,o.jsx)("p",{children:"Organise your Lambda code, remove code duplication, focus on business logic!"}),(0,o.jsx)("div",{className:r.buttons,children:(0,o.jsx)(n.Z,{className:"button button--secondary button--lg",to:"/docs",children:"Get started"})})]})})}const C=()=>{const e="Middy, the stylish Node.js middleware engine for AWS Lambda",c="Middy is a Node.js middleware engine for AWS Lambda that lets you organise your Lambda code, remove code duplication, and focus on business logic!";return(0,o.jsxs)(N.Z,{children:[(0,o.jsx)("meta",{charSet:"utf-8"}),(0,o.jsx)("title",{children:e}),(0,o.jsx)("meta",{name:"description",content:c}),(0,o.jsx)("link",{rel:"canonical",href:"https://middy.js.org"}),(0,o.jsx)("meta",{property:"og:title",content:e}),(0,o.jsx)("meta",{property:"og:description",content:c}),(0,o.jsx)("meta",{property:"og:image",content:"https://middy.js.org/img/middy-og-image.png"}),(0,o.jsx)("meta",{property:"og:image:width",content:"1200"}),(0,o.jsx)("meta",{property:"og:image:height",content:"630"})]})};function L(){return(0,o.jsxs)(t.Z,{children:[(0,o.jsx)(C,{}),(0,o.jsx)(k,{}),(0,o.jsxs)("main",{children:[(0,o.jsx)(d,{}),(0,o.jsx)(z,{}),(0,o.jsx)(g,{}),(0,o.jsx)(Z,{})]})]})}}}]); \ No newline at end of file diff --git a/assets/js/c4fefc0c.8bf57f85.js b/assets/js/c4fefc0c.8bf57f85.js deleted file mode 100644 index 9889ff70e..000000000 --- a/assets/js/c4fefc0c.8bf57f85.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[7812],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>m});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var c=r.createContext({}),l=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=l(e.components);return r.createElement(c.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},y=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),p=l(n),y=a,m=p["".concat(c,".").concat(y)]||p[y]||d[y]||o;return n?r.createElement(m,i(i({ref:t},u),{},{components:n})):r.createElement(m,i({ref:t},u))}));function m(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=y;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s[p]="string"==typeof e?e:a,i[1]=s;for(var l=2;l<o;l++)i[l]=n[l];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}y.displayName="MDXCreateElement"},9945:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>s,toc:()=>l});var r=n(7462),a=(n(7294),n(3905));const o={title:"Internal Context",sidebar_position:3},i=void 0,s={unversionedId:"best-practices/internal-context",id:"best-practices/internal-context",title:"Internal Context",description:"Middy is built to be async even at it's core. Middlewares can set promises to internal.",source:"@site/docs/best-practices/03-internal-context.md",sourceDirName:"best-practices",slug:"/best-practices/internal-context",permalink:"/docs/best-practices/internal-context",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/best-practices/03-internal-context.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",sidebarPosition:3,frontMatter:{title:"Internal Context",sidebar_position:3},sidebar:"tutorialSidebar",previous:{title:"Connection reuse",permalink:"/docs/best-practices/connection-reuse"},next:{title:"Bundling Lambda packages",permalink:"/docs/best-practices/bundling"}},c={},l=[],u={toc:l},p="wrapper";function d(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"Middy is built to be async even at it's core. Middlewares can set promises to ",(0,a.kt)("inlineCode",{parentName:"p"},"internal"),".\nThis approach allows them to be resolved together just when you need them."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\nimport {getInternal} from '@middy/util'\n\nconst config = {\n internal: new Proxy({}, {\n get: (target, prop, receiver) => {\n // ...\n return Reflect.get(...arguments)\n },\n set: (obj, prop, value) => {\n // ... ie if `prop` changes, trigger something\n obj[prop] = value\n return true\n }\n })\n}\n\nexport const handler = middy()\n // Incase you want to add values on to internal directly\n .before((async (request) => {\n request.internal = {\n env: process.env.NODE_ENV\n }\n }))\n .use(sts(...))\n .use(ssm(...))\n .use(rdsSigner(...))\n .use(secretsManager(...))\n .before(async (request) => {\n // internal == { key: 'value' }\n\n // Map with same name\n Object.assign(request.context, await getInternal(['key'], request)) \n // -> context == { key: 'value'}\n\n // Map to new name\n Object.assign(request.context, await getInternal({'newKey':'key'}, request))\n // -> context == { newKey: 'value'}\n\n // get all the values, only if you really need to, \n // but you should only request what you need for the handler\n Object.assign(request.context, await getInternal(true, request))\n // -> context == { key: 'value'}\n })\n .handler(async (event, context, { signal }) => {\n \n })\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c4fefc0c.9e140cb7.js b/assets/js/c4fefc0c.9e140cb7.js new file mode 100644 index 000000000..7e4135ce0 --- /dev/null +++ b/assets/js/c4fefc0c.9e140cb7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[7812],{3784:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>u,frontMatter:()=>a,metadata:()=>i,toc:()=>d});var r=n(5893),s=n(1151);const a={title:"Internal Context",sidebar_position:3},o=void 0,i={id:"best-practices/internal-context",title:"Internal Context",description:"Middy is built to be async even at it's core. Middlewares can set promises to internal.",source:"@site/docs/best-practices/03-internal-context.md",sourceDirName:"best-practices",slug:"/best-practices/internal-context",permalink:"/docs/best-practices/internal-context",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/best-practices/03-internal-context.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",sidebarPosition:3,frontMatter:{title:"Internal Context",sidebar_position:3},sidebar:"tutorialSidebar",previous:{title:"Connection reuse",permalink:"/docs/best-practices/connection-reuse"},next:{title:"Bundling Lambda packages",permalink:"/docs/best-practices/bundling"}},c={},d=[];function l(e){const t={code:"code",p:"p",pre:"pre",...(0,s.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(t.p,{children:["Middy is built to be async even at it's core. Middlewares can set promises to ",(0,r.jsx)(t.code,{children:"internal"}),".\nThis approach allows them to be resolved together just when you need them."]}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-javascript",children:"import middy from '@middy/core'\nimport {getInternal} from '@middy/util'\n\nconst lambdaHandler = async (event, context, { signal }) => {\n\n}\n\nconst config = {\n internal: new Proxy({}, {\n get: (target, prop, receiver) => {\n // ...\n return Reflect.get(...arguments)\n },\n set: (obj, prop, value) => {\n // ... ie if `prop` changes, trigger something\n obj[prop] = value\n return true\n }\n })\n}\n\nexport const handler = middy(config)\n // Incase you want to add values on to internal directly\n .before((async (request) => {\n request.internal = {\n env: process.env.NODE_ENV\n }\n }))\n .use(sts(...))\n .use(ssm(...))\n .use(rdsSigner(...))\n .use(secretsManager(...))\n .before(async (request) => {\n // internal == { key: 'value' }\n\n // Map with same name\n Object.assign(request.context, await getInternal(['key'], request))\n // -> context == { key: 'value'}\n\n // Map to new name\n Object.assign(request.context, await getInternal({'newKey':'key'}, request))\n // -> context == { newKey: 'value'}\n\n // get all the values, only if you really need to,\n // but you should only request what you need for the handler\n Object.assign(request.context, await getInternal(true, request))\n // -> context == { key: 'value'}\n })\n .handler(lambdaHandler)\n"})})]})}function u(e={}){const{wrapper:t}={...(0,s.a)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(l,{...e})}):l(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>i,a:()=>o});var r=n(7294);const s={},a=r.createContext(s);function o(e){const t=r.useContext(a);return r.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),r.createElement(a.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/cb00b214.2e003555.js b/assets/js/cb00b214.2e003555.js deleted file mode 100644 index 18c3d0cdb..000000000 --- a/assets/js/cb00b214.2e003555.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[1721],{736:e=>{e.exports=JSON.parse('{"title":"AWS Event Examples","slug":"/category/aws-event-examples","permalink":"/docs/category/aws-event-examples","navigation":{"previous":{"title":"Upgrade 0.x -> 1.x","permalink":"/docs/upgrade/0-1"},"next":{"title":"All AWS Events","permalink":"/docs/events/intro"}}}')}}]); \ No newline at end of file diff --git a/assets/js/cb00b214.db675edd.js b/assets/js/cb00b214.db675edd.js new file mode 100644 index 000000000..b7d9ab2df --- /dev/null +++ b/assets/js/cb00b214.db675edd.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[1721],{6105:e=>{e.exports=JSON.parse('{"title":"AWS Event Examples","slug":"/category/aws-event-examples","permalink":"/docs/category/aws-event-examples","navigation":{"previous":{"title":"Upgrade 0.x -> 1.x","permalink":"/docs/upgrade/0-1"},"next":{"title":"All AWS Events","permalink":"/docs/events/intro"}}}')}}]); \ No newline at end of file diff --git a/assets/js/cc16eb0f.468376e3.js b/assets/js/cc16eb0f.468376e3.js deleted file mode 100644 index 75169a229..000000000 --- a/assets/js/cc16eb0f.468376e3.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[5893],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>f});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),c=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),m=c(n),d=a,f=m["".concat(s,".").concat(d)]||m[d]||u[d]||o;return n?r.createElement(f,i(i({ref:t},p),{},{components:n})):r.createElement(f,i({ref:t},p))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=d;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[m]="string"==typeof e?e:a,i[1]=l;for(var c=2;c<o;c++)i[c]=n[c];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}d.displayName="MDXCreateElement"},3313:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var r=n(7462),a=(n(7294),n(3905));const o={title:"Lex"},i=void 0,l={unversionedId:"events/lex",id:"events/lex",title:"Lex",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/events/lex.md",sourceDirName:"events",slug:"/events/lex",permalink:"/docs/events/lex",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/events/lex.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",frontMatter:{title:"Lex"},sidebar:"tutorialSidebar",previous:{title:"Kinesis Streams",permalink:"/docs/events/kinesis-streams"},next:{title:"MQ",permalink:"/docs/events/mq"}},s={},c=[{value:"AWS Documentation",id:"aws-documentation",level:2},{value:"Example",id:"example",level:2}],p={toc:c},m="wrapper";function u(e){let{components:t,...n}=e;return(0,a.kt)(m,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.")),(0,a.kt)("h2",{id:"aws-documentation"},"AWS Documentation"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://docs.aws.amazon.com/lambda/latest/dg/services-lex.html"},"Using AWS Lambda with Amazon Lex")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://docs.aws.amazon.com/lexv2/latest/dg/lambda.html"},"Using an AWS Lambda function")," with Amazon Lex V2")),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\n\nexport const handler = middy()\n .handler((event, context, {signal}) => {\n // ...\n })\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/cc16eb0f.4d3bf260.js b/assets/js/cc16eb0f.4d3bf260.js new file mode 100644 index 000000000..7356216c8 --- /dev/null +++ b/assets/js/cc16eb0f.4d3bf260.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[5893],{9823:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>a,default:()=>m,frontMatter:()=>o,metadata:()=>r,toc:()=>l});var s=n(5893),i=n(1151);const o={title:"Lex"},a=void 0,r={id:"events/lex",title:"Lex",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/events/lex.md",sourceDirName:"events",slug:"/events/lex",permalink:"/docs/events/lex",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/events/lex.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",frontMatter:{title:"Lex"},sidebar:"tutorialSidebar",previous:{title:"Kinesis Streams",permalink:"/docs/events/kinesis-streams"},next:{title:"MQ",permalink:"/docs/events/mq"}},d={},l=[{value:"AWS Documentation",id:"aws-documentation",level:2},{value:"Example",id:"example",level:2}];function c(e){const t={a:"a",admonition:"admonition",code:"code",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,i.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.admonition,{type:"caution",children:(0,s.jsx)(t.p,{children:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub."})}),"\n",(0,s.jsx)(t.h2,{id:"aws-documentation",children:"AWS Documentation"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://docs.aws.amazon.com/lambda/latest/dg/services-lex.html",children:"Using AWS Lambda with Amazon Lex"})}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.a,{href:"https://docs.aws.amazon.com/lexv2/latest/dg/lambda.html",children:"Using an AWS Lambda function"})," with Amazon Lex V2"]}),"\n"]}),"\n",(0,s.jsx)(t.h2,{id:"example",children:"Example"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-javascript",children:"import middy from '@middy/core'\n\nexport const handler = middy()\n .handler((event, context, {signal}) => {\n // ...\n })\n"})})]})}function m(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>r,a:()=>a});var s=n(7294);const i={},o=s.createContext(i);function a(e){const t=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),s.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/cd47eedf.79840171.js b/assets/js/cd47eedf.79840171.js new file mode 100644 index 000000000..344e4b59a --- /dev/null +++ b/assets/js/cd47eedf.79840171.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[4388],{8852:(e,r,n)=>{n.r(r),n.d(r,{assets:()=>d,contentTitle:()=>a,default:()=>p,frontMatter:()=>s,metadata:()=>i,toc:()=>l});var t=n(5893),o=n(1151);const s={title:"Handling Errors",position:5},a=void 0,i={id:"intro/handling-errors",title:"Handling Errors",description:"But, what happens when there is an error?",source:"@site/docs/intro/05-handling-errors.md",sourceDirName:"intro",slug:"/intro/handling-errors",permalink:"/docs/intro/handling-errors",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/intro/05-handling-errors.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",sidebarPosition:5,frontMatter:{title:"Handling Errors",position:5},sidebar:"tutorialSidebar",previous:{title:"Early return",permalink:"/docs/intro/early-interrupt"},next:{title:"Streamify Response",permalink:"/docs/intro/streamify-response"}},d={},l=[];function c(e){const r={code:"code",p:"p",pre:"pre",...(0,o.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(r.p,{children:"But, what happens when there is an error?"}),"\n",(0,t.jsxs)(r.p,{children:["When there is an error, the regular control flow is stopped and the execution is\nmoved back to all the middlewares that implemented a special phase called ",(0,t.jsx)(r.code,{children:"onError"}),", following\nthe same order as ",(0,t.jsx)(r.code,{children:"after"}),"."]}),"\n",(0,t.jsxs)(r.p,{children:["Every ",(0,t.jsx)(r.code,{children:"onError"})," middleware can decide to handle the error and create a proper response or\nto delegate the error to the next middleware."]}),"\n",(0,t.jsx)(r.p,{children:"When a middleware handles the error and creates a response, the execution is still propagated to all the other\nerror middlewares and they have a chance to update or replace the response as\nneeded. At the end of the error middlewares sequence, the response is returned\nto the user."}),"\n",(0,t.jsx)(r.p,{children:"If no middleware manages the error, the Lambda execution fails reporting the unmanaged error."}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-javascript",children:"// Initialize response\nrequest.response = request.response ?? {}\n\n// Add to response\nrequest.response.add = 'more'\n\n// Override an error\nrequest.error = new Error('...')\n\n// handle the error\nreturn request.response\n"})})]})}function p(e={}){const{wrapper:r}={...(0,o.a)(),...e.components};return r?(0,t.jsx)(r,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},1151:(e,r,n)=>{n.d(r,{Z:()=>i,a:()=>a});var t=n(7294);const o={},s=t.createContext(o);function a(e){const r=t.useContext(s);return t.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function i(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:a(e.components),t.createElement(s.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/cd47eedf.d0d50040.js b/assets/js/cd47eedf.d0d50040.js deleted file mode 100644 index 0fd04df36..000000000 --- a/assets/js/cd47eedf.d0d50040.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[4388],{3905:(e,r,t)=>{t.d(r,{Zo:()=>d,kt:()=>h});var n=t(7294);function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function a(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function i(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?a(Object(t),!0).forEach((function(r){o(e,r,t[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):a(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}))}return e}function s(e,r){if(null==e)return{};var t,n,o=function(e,r){if(null==e)return{};var t,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)t=a[n],r.indexOf(t)>=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)t=a[n],r.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var l=n.createContext({}),p=function(e){var r=n.useContext(l),t=r;return e&&(t="function"==typeof e?e(r):i(i({},r),e)),t},d=function(e){var r=p(e.components);return n.createElement(l.Provider,{value:r},e.children)},c="mdxType",u={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},m=n.forwardRef((function(e,r){var t=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),c=p(t),m=o,h=c["".concat(l,".").concat(m)]||c[m]||u[m]||a;return t?n.createElement(h,i(i({ref:r},d),{},{components:t})):n.createElement(h,i({ref:r},d))}));function h(e,r){var t=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var a=t.length,i=new Array(a);i[0]=m;var s={};for(var l in r)hasOwnProperty.call(r,l)&&(s[l]=r[l]);s.originalType=e,s[c]="string"==typeof e?e:o,i[1]=s;for(var p=2;p<a;p++)i[p]=t[p];return n.createElement.apply(null,i)}return n.createElement.apply(null,t)}m.displayName="MDXCreateElement"},8609:(e,r,t)=>{t.r(r),t.d(r,{assets:()=>l,contentTitle:()=>i,default:()=>u,frontMatter:()=>a,metadata:()=>s,toc:()=>p});var n=t(7462),o=(t(7294),t(3905));const a={title:"Handling Errors",position:5},i=void 0,s={unversionedId:"intro/handling-errors",id:"intro/handling-errors",title:"Handling Errors",description:"But, what happens when there is an error?",source:"@site/docs/intro/05-handling-errors.md",sourceDirName:"intro",slug:"/intro/handling-errors",permalink:"/docs/intro/handling-errors",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/intro/05-handling-errors.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",sidebarPosition:5,frontMatter:{title:"Handling Errors",position:5},sidebar:"tutorialSidebar",previous:{title:"Early return",permalink:"/docs/intro/early-interrupt"},next:{title:"Streamify Response",permalink:"/docs/intro/streamify-response"}},l={},p=[],d={toc:p},c="wrapper";function u(e){let{components:r,...t}=e;return(0,o.kt)(c,(0,n.Z)({},d,t,{components:r,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"But, what happens when there is an error?"),(0,o.kt)("p",null,"When there is an error, the regular control flow is stopped and the execution is\nmoved back to all the middlewares that implemented a special phase called ",(0,o.kt)("inlineCode",{parentName:"p"},"onError"),", following\nthe same order as ",(0,o.kt)("inlineCode",{parentName:"p"},"after"),"."),(0,o.kt)("p",null,"Every ",(0,o.kt)("inlineCode",{parentName:"p"},"onError")," middleware can decide to handle the error and create a proper response or\nto delegate the error to the next middleware."),(0,o.kt)("p",null,"When a middleware handles the error and creates a response, the execution is still propagated to all the other\nerror middlewares and they have a chance to update or replace the response as\nneeded. At the end of the error middlewares sequence, the response is returned\nto the user."),(0,o.kt)("p",null,"If no middleware manages the error, the Lambda execution fails reporting the unmanaged error."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-javascript"},"// Initialize response\nrequest.response = request.response ?? {}\n\n// Add to response\nrequest.response.add = 'more'\n\n// Override an error\nrequest.error = new Error('...')\n\n// handle the error\nreturn request.response\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ce7003dc.662df6b1.js b/assets/js/ce7003dc.662df6b1.js new file mode 100644 index 000000000..43e2a0595 --- /dev/null +++ b/assets/js/ce7003dc.662df6b1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[9071],{1884:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>a,contentTitle:()=>o,default:()=>m,frontMatter:()=>s,metadata:()=>d,toc:()=>l});var r=t(5893),i=t(1151);const s={title:"Inline Middlewares",position:3},o=void 0,d={id:"writing-middlewares/inline-middlewares",title:"Inline Middlewares",description:"Sometimes you want to create handlers that serve a very small need and that are not",source:"@site/docs/writing-middlewares/03-inline-middlewares.md",sourceDirName:"writing-middlewares",slug:"/writing-middlewares/inline-middlewares",permalink:"/docs/writing-middlewares/inline-middlewares",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/writing-middlewares/03-inline-middlewares.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",sidebarPosition:3,frontMatter:{title:"Inline Middlewares",position:3},sidebar:"tutorialSidebar",previous:{title:"Configurable Middlewares",permalink:"/docs/writing-middlewares/configurable-middlewares"},next:{title:"Internal Storage",permalink:"/docs/writing-middlewares/internal-storage"}},a={},l=[];function c(e){const n={code:"code",p:"p",pre:"pre",strong:"strong",...(0,i.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(n.p,{children:["Sometimes you want to create handlers that serve a very small need and that are not\nnecessarily re-usable. In such cases, you probably will need to hook only into one of\nthe different phases (",(0,r.jsx)(n.code,{children:"before"}),", ",(0,r.jsx)(n.code,{children:"after"})," or ",(0,r.jsx)(n.code,{children:"onError"}),")."]}),"\n",(0,r.jsxs)(n.p,{children:["In these cases you can use ",(0,r.jsx)(n.strong,{children:"inline middlewares"})," which are shortcut functions to hook\nlogic into Middy's control flow."]}),"\n",(0,r.jsx)(n.p,{children:"Let's see how inline middlewares work with a simple example:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-javascript",children:"import middy from '@middy/core'\n\nconst lambdaHandler = (event, context) => {\n // do stuff\n}\n\nexport const handler = middy()\n .before(async (request) => {\n // do something in the before phase\n })\n .after(async (request) => {\n // do something in the after phase\n })\n .onError(async (request) => {\n // do something in the on error phase\n })\n .handler(lambdaHandler)\n"})}),"\n",(0,r.jsxs)(n.p,{children:["As you can see above, a middy instance also exposes the ",(0,r.jsx)(n.code,{children:"before"}),", ",(0,r.jsx)(n.code,{children:"after"})," and ",(0,r.jsx)(n.code,{children:"onError"}),"\nmethods to allow you to quickly hook in simple inline middlewares."]})]})}function m(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(c,{...e})}):c(e)}},1151:(e,n,t)=>{t.d(n,{Z:()=>d,a:()=>o});var r=t(7294);const i={},s=r.createContext(i);function o(e){const n=r.useContext(s);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),r.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/ce7003dc.d69c5693.js b/assets/js/ce7003dc.d69c5693.js deleted file mode 100644 index 785d8633f..000000000 --- a/assets/js/ce7003dc.d69c5693.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[9071],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var r=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){i(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,r,i=function(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var s=r.createContext({}),d=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},c=function(e){var t=d(e.components);return r.createElement(s.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,i=e.mdxType,o=e.originalType,s=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),p=d(n),u=i,f=p["".concat(s,".").concat(u)]||p[u]||m[u]||o;return n?r.createElement(f,a(a({ref:t},c),{},{components:n})):r.createElement(f,a({ref:t},c))}));function f(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var o=n.length,a=new Array(o);a[0]=u;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[p]="string"==typeof e?e:i,a[1]=l;for(var d=2;d<o;d++)a[d]=n[d];return r.createElement.apply(null,a)}return r.createElement.apply(null,n)}u.displayName="MDXCreateElement"},6949:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>a,default:()=>m,frontMatter:()=>o,metadata:()=>l,toc:()=>d});var r=n(7462),i=(n(7294),n(3905));const o={title:"Inline Middlewares",position:3},a=void 0,l={unversionedId:"writing-middlewares/inline-middlewares",id:"writing-middlewares/inline-middlewares",title:"Inline Middlewares",description:"Sometimes you want to create handlers that serve a very small need and that are not",source:"@site/docs/writing-middlewares/03-inline-middlewares.md",sourceDirName:"writing-middlewares",slug:"/writing-middlewares/inline-middlewares",permalink:"/docs/writing-middlewares/inline-middlewares",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/writing-middlewares/03-inline-middlewares.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",sidebarPosition:3,frontMatter:{title:"Inline Middlewares",position:3},sidebar:"tutorialSidebar",previous:{title:"Configurable Middlewares",permalink:"/docs/writing-middlewares/configurable-middlewares"},next:{title:"Internal Storage",permalink:"/docs/writing-middlewares/internal-storage"}},s={},d=[],c={toc:d},p="wrapper";function m(e){let{components:t,...n}=e;return(0,i.kt)(p,(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"Sometimes you want to create handlers that serve a very small need and that are not\nnecessarily re-usable. In such cases, you probably will need to hook only into one of\nthe different phases (",(0,i.kt)("inlineCode",{parentName:"p"},"before"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"after")," or ",(0,i.kt)("inlineCode",{parentName:"p"},"onError"),")."),(0,i.kt)("p",null,"In these cases you can use ",(0,i.kt)("strong",{parentName:"p"},"inline middlewares")," which are shortcut functions to hook\nlogic into Middy's control flow."),(0,i.kt)("p",null,"Let's see how inline middlewares work with a simple example:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\n\nexport const handler = middy((event, context) => {\n // do stuff\n })\n .before(async (request) => {\n // do something in the before phase\n })\n .after(async (request) => {\n // do something in the after phase\n })\n .onError(async (request) => {\n // do something in the on error phase\n })\n")),(0,i.kt)("p",null,"As you can see above, a middy instance also exposes the ",(0,i.kt)("inlineCode",{parentName:"p"},"before"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"after")," and ",(0,i.kt)("inlineCode",{parentName:"p"},"onError"),"\nmethods to allow you to quickly hook in simple inline middlewares."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d0953a14.2238c9da.js b/assets/js/d0953a14.2238c9da.js deleted file mode 100644 index c6543372d..000000000 --- a/assets/js/d0953a14.2238c9da.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[4740],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>f});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function o(e,t){if(null==e)return{};var n,a,r=function(e,t){if(null==e)return{};var n,a,r={},l=Object.keys(e);for(a=0;a<l.length;a++)n=l[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a<l.length;a++)n=l[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=a.createContext({}),d=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=d(e.components);return a.createElement(s.Provider,{value:t},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},c=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,l=e.originalType,s=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),u=d(n),c=r,f=u["".concat(s,".").concat(c)]||u[c]||m[c]||l;return n?a.createElement(f,i(i({ref:t},p),{},{components:n})):a.createElement(f,i({ref:t},p))}));function f(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=n.length,i=new Array(l);i[0]=c;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[u]="string"==typeof e?e:r,i[1]=o;for(var d=2;d<l;d++)i[d]=n[d];return a.createElement.apply(null,i)}return a.createElement.apply(null,n)}c.displayName="MDXCreateElement"},5162:(e,t,n)=>{n.d(t,{Z:()=>i});var a=n(7294),r=n(6010);const l={tabItem:"tabItem_Ymn6"};function i(e){let{children:t,hidden:n,className:i}=e;return a.createElement("div",{role:"tabpanel",className:(0,r.Z)(l.tabItem,i),hidden:n},t)}},4866:(e,t,n)=>{n.d(t,{Z:()=>N});var a=n(7462),r=n(7294),l=n(6010),i=n(2466),o=n(6550),s=n(1980),d=n(7392),p=n(12);function u(e){return function(e){return r.Children.map(e,(e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:a,default:r}}=e;return{value:t,label:n,attributes:a,default:r}}))}function m(e){const{values:t,children:n}=e;return(0,r.useMemo)((()=>{const e=t??u(n);return function(e){const t=(0,d.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,n])}function c(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:n}=e;const a=(0,o.k6)(),l=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,s._X)(l),(0,r.useCallback)((e=>{if(!l)return;const t=new URLSearchParams(a.location.search);t.set(l,e),a.replace({...a.location,search:t.toString()})}),[l,a])]}function h(e){const{defaultValue:t,queryString:n=!1,groupId:a}=e,l=m(e),[i,o]=(0,r.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!c({value:t,tabValues:n}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const a=n.find((e=>e.default))??n[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:t,tabValues:l}))),[s,d]=f({queryString:n,groupId:a}),[u,h]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[a,l]=(0,p.Nk)(n);return[a,(0,r.useCallback)((e=>{n&&l.set(e)}),[n,l])]}({groupId:a}),v=(()=>{const e=s??u;return c({value:e,tabValues:l})?e:null})();(0,r.useLayoutEffect)((()=>{v&&o(v)}),[v]);return{selectedValue:i,selectValue:(0,r.useCallback)((e=>{if(!c({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);o(e),d(e),h(e)}),[d,h,l]),tabValues:l}}var v=n(2389);const y={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};function g(e){let{className:t,block:n,selectedValue:o,selectValue:s,tabValues:d}=e;const p=[],{blockElementScrollPositionUntilNextRender:u}=(0,i.o5)(),m=e=>{const t=e.currentTarget,n=p.indexOf(t),a=d[n].value;a!==o&&(u(t),s(a))},c=e=>{let t=null;switch(e.key){case"Enter":m(e);break;case"ArrowRight":{const n=p.indexOf(e.currentTarget)+1;t=p[n]??p[0];break}case"ArrowLeft":{const n=p.indexOf(e.currentTarget)-1;t=p[n]??p[p.length-1];break}}t?.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":n},t)},d.map((e=>{let{value:t,label:n,attributes:i}=e;return r.createElement("li",(0,a.Z)({role:"tab",tabIndex:o===t?0:-1,"aria-selected":o===t,key:t,ref:e=>p.push(e),onKeyDown:c,onClick:m},i,{className:(0,l.Z)("tabs__item",y.tabItem,i?.className,{"tabs__item--active":o===t})}),n??t)})))}function b(e){let{lazy:t,children:n,selectedValue:a}=e;const l=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=l.find((e=>e.props.value===a));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},l.map(((e,t)=>(0,r.cloneElement)(e,{key:t,hidden:e.props.value!==a}))))}function k(e){const t=h(e);return r.createElement("div",{className:(0,l.Z)("tabs-container",y.tabList)},r.createElement(g,(0,a.Z)({},e,t)),r.createElement(b,(0,a.Z)({},e,t)))}function N(e){const t=(0,v.Z)();return r.createElement(k,(0,a.Z)({key:String(t)},e))}},3144:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>s,default:()=>f,frontMatter:()=>o,metadata:()=>d,toc:()=>u});var a=n(7462),r=(n(7294),n(3905)),l=n(4866),i=n(5162);const o={title:"validator"},s=void 0,d={unversionedId:"middlewares/validator",id:"middlewares/validator",title:"validator",description:"This middleware automatically validates incoming events and outgoing responses against custom",source:"@site/docs/middlewares/validator.md",sourceDirName:"middlewares",slug:"/middlewares/validator",permalink:"/docs/middlewares/validator",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/middlewares/validator.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",frontMatter:{title:"validator"},sidebar:"tutorialSidebar",previous:{title:"sts",permalink:"/docs/middlewares/sts"},next:{title:"warmup",permalink:"/docs/middlewares/warmup"}},p={},u=[{value:"Install",id:"install",level:2},{value:"Options",id:"options",level:2},{value:"transpileSchema",id:"transpileschema",level:2},{value:"transpileLocale",id:"transpilelocale",level:2},{value:"Sample usage",id:"sample-usage",level:2},{value:"Pre-transpiling example (recommended)",id:"pre-transpiling-example-recommended",level:2},{value:"Transpile during cold-start",id:"transpile-during-cold-start",level:2},{value:"Transpile during cold-start with default messages",id:"transpile-during-cold-start-with-default-messages",level:2}],m={toc:u},c="wrapper";function f(e){let{components:t,...n}=e;return(0,r.kt)(c,(0,a.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"This middleware automatically validates incoming events and outgoing responses against custom\nschemas defined with the ",(0,r.kt)("a",{parentName:"p",href:"http://json-schema.org/"},"JSON schema syntax"),"."),(0,r.kt)("p",null,"Want to use another validator? Try one of the community validators:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://www.npmjs.com/package/middy-ajv"},"ajv")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://www.npmjs.com/package/middy-sparks-joi"},"middy-sparks-joi"))),(0,r.kt)("p",null,"If an incoming event fails validation a ",(0,r.kt)("inlineCode",{parentName:"p"},"BadRequest")," error is raised.\nIf an outgoing response fails validation a ",(0,r.kt)("inlineCode",{parentName:"p"},"InternalServerError")," error is\nraised."),(0,r.kt)("p",null,"This middleware can be used in combination with\n",(0,r.kt)("a",{parentName:"p",href:"#httperrorhandler"},(0,r.kt)("inlineCode",{parentName:"a"},"httpErrorHandler"))," to automatically return the right\nresponse to the user."),(0,r.kt)("p",null,"It can also be used in combination with ",(0,r.kt)("a",{parentName:"p",href:"#httpContentNegotiation"},(0,r.kt)("inlineCode",{parentName:"a"},"http-content-negotiation"))," to load localized translations for the error messages (based on the currently requested language). This feature uses internally ",(0,r.kt)("a",{parentName:"p",href:"http://npm.im/ajv-ftl-i18n"},(0,r.kt)("inlineCode",{parentName:"a"},"ajv-ftl-i18n"))," module, so reference to this module for options and more advanced use cases. By default the language used will be English (",(0,r.kt)("inlineCode",{parentName:"p"},"en"),"), but you can redefine the default language by passing it in the ",(0,r.kt)("inlineCode",{parentName:"p"},"ajvOptions")," options with the key ",(0,r.kt)("inlineCode",{parentName:"p"},"defaultLanguage")," and specifying as value one of the ",(0,r.kt)("a",{parentName:"p",href:"https://www.npmjs.com/package/ajv-i18n#supported-locales"},"supported locales"),"."),(0,r.kt)("p",null,"Also, this middleware accepts an object with plugins to be applied to customize the internal ",(0,r.kt)("inlineCode",{parentName:"p"},"ajv")," instance."),(0,r.kt)("h2",{id:"install"},"Install"),(0,r.kt)("p",null,"To install this middleware you can use NPM:"),(0,r.kt)(l.Z,{groupId:"npm2yarn",mdxType:"Tabs"},(0,r.kt)(i.Z,{value:"npm",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"npm install --save @middy/validator\nnpm install --save-dev ajv-cmd # Optional: for pre-transpiling\n"))),(0,r.kt)(i.Z,{value:"yarn",label:"Yarn",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"yarn add @middy/validator\nyarn add --dev ajv-cmd # Optional: for pre-transpiling\n"))),(0,r.kt)(i.Z,{value:"pnpm",label:"pnpm",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"pnpm add @middy/validator\npnpm add --save-dev ajv-cmd # Optional: for pre-transpiling\n")))),(0,r.kt)("h2",{id:"options"},"Options"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"eventSchema")," (function) (default ",(0,r.kt)("inlineCode",{parentName:"li"},"undefined"),"): The compiled ajv validator that will be used\nto validate the input (",(0,r.kt)("inlineCode",{parentName:"li"},"request.event"),") of the Lambda handler."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"contextSchema")," (function) (default ",(0,r.kt)("inlineCode",{parentName:"li"},"undefined"),"): The compiled ajv validator that will be used\nto validate the input (",(0,r.kt)("inlineCode",{parentName:"li"},"request.context"),") of the Lambda handler. Has additional support for ",(0,r.kt)("inlineCode",{parentName:"li"},"typeof")," keyword to allow validation of ",(0,r.kt)("inlineCode",{parentName:"li"},'"typeof":"function"'),"."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"responseSchema")," (function) (default ",(0,r.kt)("inlineCode",{parentName:"li"},"undefined"),"): The compiled ajv validator that will be used\nto validate the output (",(0,r.kt)("inlineCode",{parentName:"li"},"request.response"),") of the Lambda handler."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"i18nEnabled")," (boolean) (default ",(0,r.kt)("inlineCode",{parentName:"li"},"true"),"): Option to disable i18n default package."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"defaultLanguage")," (string) (default ",(0,r.kt)("inlineCode",{parentName:"li"},"en"),"): When language not found, what language to fallback to."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"languages")," (object) (default: ",(0,r.kt)("inlineCode",{parentName:"li"},"{}"),"): Localization overrides")),(0,r.kt)("p",null,"NOTES:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"At least one of ",(0,r.kt)("inlineCode",{parentName:"li"},"eventSchema")," or ",(0,r.kt)("inlineCode",{parentName:"li"},"responseSchema")," is required."),(0,r.kt)("li",{parentName:"ul"},"If you'd like to have the error details as part of the response, it will need to be handled separately. You can access them from ",(0,r.kt)("inlineCode",{parentName:"li"},"request.error.cause"),", the original response can be found at ",(0,r.kt)("inlineCode",{parentName:"li"},"request.error.response"),"."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Important")," Transpiling schemas & locales on the fly will cause a 50-150ms performance hit during cold start for simple JSON Schemas. Precompiling is highly recommended.")),(0,r.kt)("h2",{id:"transpileschema"},"transpileSchema"),(0,r.kt)("p",null,"Transpile JSON-Schema in to JavaScript. Default ajv plugins used: ",(0,r.kt)("inlineCode",{parentName:"p"},"ajv-i18n"),", ",(0,r.kt)("inlineCode",{parentName:"p"},"ajv-formats"),", ",(0,r.kt)("inlineCode",{parentName:"p"},"ajv-formats-draft2019"),", ",(0,r.kt)("inlineCode",{parentName:"p"},"ajv-keywords"),", ",(0,r.kt)("inlineCode",{parentName:"p"},"ajv-errors"),"."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"schema")," (object) (required): JSON-Schema object"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"ajvOptions")," (object) (default ",(0,r.kt)("inlineCode",{parentName:"li"},"undefined"),"): Options to pass to ",(0,r.kt)("a",{parentName:"li",href:"https://ajv.js.org/docs/api.html#options"},"ajv"),"\nclass constructor. Defaults are ",(0,r.kt)("inlineCode",{parentName:"li"},"{ strict: true, coerceTypes: 'array', allErrors: true, useDefaults: 'empty', messages: true }"),".")),(0,r.kt)("h2",{id:"transpilelocale"},"transpileLocale"),(0,r.kt)("p",null,"Transpile Fluent (.ftl) localization file into ajv compatible format. Allows the overriding of the default messages and adds support for multi-language ",(0,r.kt)("inlineCode",{parentName:"p"},"errrorMessages"),"."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"ftl")," (string) (required): Contents of an ftl file to be transpiled.")),(0,r.kt)("h2",{id:"sample-usage"},"Sample usage"),(0,r.kt)("p",null,"Example for event validation:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\nimport validator from '@middy/validator'\nimport { transpileSchema } from '@middy/validator/transpile'\n\nconst handler = middy((event, context) => {\n return {}\n})\n\nconst schema = {\n type: 'object',\n required: ['body', 'foo'],\n properties: {\n // this will pass validation\n body: {\n type: 'string'\n },\n // this won't as it won't be in the event\n foo: {\n type: 'string'\n }\n }\n}\n\nhandler.use(\n validator({\n eventSchema: transpileSchema(schema)\n })\n)\n\n// invokes the handler, note that property foo is missing\nconst event = {\n body: JSON.stringify({ something: 'somethingelse' })\n}\nhandler(event, {}, (err, res) => {\n t.is(err.message, 'Event object failed validation')\n})\n")),(0,r.kt)("p",null,"Example for response validation:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\nimport validator from '@middy/validator'\nimport { transpileSchema } from '@middy/validator/transpile'\n\nconst handler = middy((event, context) => {\n return {}\n})\n\nconst responseSchema = transpileSchema({\n type: 'object',\n required: ['body', 'statusCode'],\n properties: {\n body: {\n type: 'object'\n },\n statusCode: {\n type: 'number'\n }\n }\n})\n\nhandler.use(validator({ responseSchema }))\n\nhandler({}, {}, (err, response) => {\n t.not(err, null)\n t.is(err.message, 'Response object failed validation')\n expect(response).not.toBe(null)\n // it doesn't destroy the response so it can be used by other middlewares\n})\n")),(0,r.kt)("p",null,"Example for body validation:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\nimport httpJsonBodyParser from '@middy/http-json-body-parser'\nimport validator from '@middy/validator'\nimport { transpileSchema } from '@middy/validator/transpile'\n\nconst handler = middy((event, context) => {\n return {}\n})\n\nconst schema = {\n type: 'object',\n required: ['body'],\n properties: {\n body: {\n type: 'object',\n required: ['name', 'email'],\n properties: {\n name: { type: 'string' },\n email: { type: 'string', format: 'email' }\n // schema options https://ajv.js.org/json-schema.html#json-data-type\n }\n }\n }\n}\n\n// to validate the body we need to parse it first\nhandler.use(httpJsonBodyParser()).use(\n validator({\n eventSchema: transpileSchema(schema)\n })\n)\n")),(0,r.kt)("h2",{id:"pre-transpiling-example-recommended"},"Pre-transpiling example (recommended)"),(0,r.kt)("p",null,"Run a build script to before running tests & deployment."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"#!/usr/bin/env bash\n\n# This is an example, should be customize to meet ones needs\n# Powered by `ajv-cmd`\n# $ ajv --help\n\nbundle () {\n ajv validate ${1} --valid \\\n --strict true --coerce-types array --all-errors true --use-defaults empty\n ajv transpile ${1} \\\n --strict true --coerce-types array --all-errors true --use-defaults empty \\\n -o ${1%.json}.js\n}\n\nfor file in handlers/*/schema.*.json; do\n bundle $file\ndone\n\nlocale () {\n LOCALE=$(basename ${1%.ftl})\n ajv ftl ${1} --locale ${LOCALE} -o ${1%.ftl}.js\n}\n\nfor file in handlers/*/*.ftl; do\n locale $file\ndone\n")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\nimport validator from '@middy/validator'\nimport eventSchema from './schema.event.js'\nimport en from './en.js'\nimport fr from './fr.js'\n\nexport const handler = middy()\n .use(\n validator({\n eventSchema,\n languages: { en, fr }\n })\n )\n .handler((event, context) => {\n return {}\n })\n")),(0,r.kt)("h2",{id:"transpile-during-cold-start"},"Transpile during cold-start"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-javascript"},"import { readFile } from 'node:fs/promises'\nimport middy from '@middy/core'\nimport validator from '@middy/validator'\nimport { transpileSchema, transpileLocale } from '@middy/validator/transpile'\nimport eventSchema from './schema.event.json'\n\nconst en = transpileLocale(await readFile('./en.ftl'))\nconst fr = transpileLocale(await readFile('./fr.ftl'))\n\nexport const handler = middy()\n .use(\n validator({\n eventSchema: transpileSchema(eventSchema),\n languages: { en, fr }\n })\n )\n .handler((event, context) => {\n return {}\n })\n")),(0,r.kt)("h2",{id:"transpile-during-cold-start-with-default-messages"},"Transpile during cold-start with default messages"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-javascript"},"import { readFile } from 'node:fs/promises'\nimport middy from '@middy/core'\nimport validator from '@middy/validator'\nimport { transpileSchema, transpileLocale } from '@middy/validator/transpile'\nimport { en, fr } from 'ajv-ftl-i18n' // `ajv-i18n` can also be used\nimport eventSchema from './schema.event.json'\n\nexport const handler = middy()\n .use(\n validator({\n eventSchema: transpileSchema(eventSchema),\n languages: { en, fr }\n })\n )\n .handler((event, context) => {\n return {}\n })\n")))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d0953a14.7e6317fb.js b/assets/js/d0953a14.7e6317fb.js new file mode 100644 index 000000000..7cba583ef --- /dev/null +++ b/assets/js/d0953a14.7e6317fb.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[4740],{217:(e,n,a)=>{a.r(n),a.d(n,{assets:()=>c,contentTitle:()=>o,default:()=>m,frontMatter:()=>i,metadata:()=>d,toc:()=>u});var t=a(5893),r=a(1151),s=a(4866),l=a(5162);const i={title:"validator"},o=void 0,d={id:"middlewares/validator",title:"validator",description:"This middleware automatically validates incoming events and outgoing responses against custom",source:"@site/docs/middlewares/validator.md",sourceDirName:"middlewares",slug:"/middlewares/validator",permalink:"/docs/middlewares/validator",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/middlewares/validator.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",frontMatter:{title:"validator"},sidebar:"tutorialSidebar",previous:{title:"sts",permalink:"/docs/middlewares/sts"},next:{title:"warmup",permalink:"/docs/middlewares/warmup"}},c={},u=[{value:"Install",id:"install",level:2},{value:"Options",id:"options",level:2},{value:"transpileSchema",id:"transpileschema",level:2},{value:"transpileLocale",id:"transpilelocale",level:2},{value:"Sample usage",id:"sample-usage",level:2},{value:"Pre-transpiling example (recommended)",id:"pre-transpiling-example-recommended",level:2},{value:"Transpile during cold-start",id:"transpile-during-cold-start",level:2},{value:"Transpile during cold-start with default messages",id:"transpile-during-cold-start-with-default-messages",level:2}];function h(e){const n={a:"a",code:"code",h2:"h2",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,r.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(n.p,{children:["This middleware automatically validates incoming events and outgoing responses against custom\nschemas defined with the ",(0,t.jsx)(n.a,{href:"http://json-schema.org/",children:"JSON schema syntax"}),"."]}),"\n",(0,t.jsx)(n.p,{children:"Want to use another validator? Try one of the community validators:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://www.npmjs.com/package/middy-ajv",children:"ajv"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://www.npmjs.com/package/middy-sparks-joi",children:"middy-sparks-joi"})}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:["If an incoming event fails validation a ",(0,t.jsx)(n.code,{children:"BadRequest"})," error is raised.\nIf an outgoing response fails validation a ",(0,t.jsx)(n.code,{children:"InternalServerError"})," error is\nraised."]}),"\n",(0,t.jsxs)(n.p,{children:["This middleware can be used in combination with\n",(0,t.jsx)(n.a,{href:"#httperrorhandler",children:(0,t.jsx)(n.code,{children:"httpErrorHandler"})})," to automatically return the right\nresponse to the user."]}),"\n",(0,t.jsxs)(n.p,{children:["It can also be used in combination with ",(0,t.jsx)(n.a,{href:"#httpContentNegotiation",children:(0,t.jsx)(n.code,{children:"http-content-negotiation"})})," to load localized translations for the error messages (based on the currently requested language). This feature uses internally ",(0,t.jsx)(n.a,{href:"http://npm.im/ajv-ftl-i18n",children:(0,t.jsx)(n.code,{children:"ajv-ftl-i18n"})})," module, so reference to this module for options and more advanced use cases. By default the language used will be English (",(0,t.jsx)(n.code,{children:"en"}),"), but you can redefine the default language by passing it in the ",(0,t.jsx)(n.code,{children:"ajvOptions"})," options with the key ",(0,t.jsx)(n.code,{children:"defaultLanguage"})," and specifying as value one of the ",(0,t.jsx)(n.a,{href:"https://www.npmjs.com/package/ajv-i18n#supported-locales",children:"supported locales"}),"."]}),"\n",(0,t.jsxs)(n.p,{children:["Also, this middleware accepts an object with plugins to be applied to customize the internal ",(0,t.jsx)(n.code,{children:"ajv"})," instance."]}),"\n",(0,t.jsx)(n.h2,{id:"install",children:"Install"}),"\n",(0,t.jsx)(n.p,{children:"To install this middleware you can use NPM:"}),"\n",(0,t.jsxs)(s.Z,{groupId:"npm2yarn",children:[(0,t.jsx)(l.Z,{value:"npm",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"npm install --save @middy/validator\nnpm install --save-dev ajv-cmd # Optional: for pre-transpiling\n"})})}),(0,t.jsx)(l.Z,{value:"yarn",label:"Yarn",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"yarn add @middy/validator\nyarn add --dev ajv-cmd # Optional: for pre-transpiling\n"})})}),(0,t.jsx)(l.Z,{value:"pnpm",label:"pnpm",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"pnpm add @middy/validator\npnpm add --save-dev ajv-cmd # Optional: for pre-transpiling\n"})})})]}),"\n",(0,t.jsx)(n.h2,{id:"options",children:"Options"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"eventSchema"})," (function) (default ",(0,t.jsx)(n.code,{children:"undefined"}),"): The compiled ajv validator that will be used\nto validate the input (",(0,t.jsx)(n.code,{children:"request.event"}),") of the Lambda handler."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"contextSchema"})," (function) (default ",(0,t.jsx)(n.code,{children:"undefined"}),"): The compiled ajv validator that will be used\nto validate the input (",(0,t.jsx)(n.code,{children:"request.context"}),") of the Lambda handler. Has additional support for ",(0,t.jsx)(n.code,{children:"typeof"})," keyword to allow validation of ",(0,t.jsx)(n.code,{children:'"typeof":"function"'}),"."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"responseSchema"})," (function) (default ",(0,t.jsx)(n.code,{children:"undefined"}),"): The compiled ajv validator that will be used\nto validate the output (",(0,t.jsx)(n.code,{children:"request.response"}),") of the Lambda handler."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"i18nEnabled"})," (boolean) (default ",(0,t.jsx)(n.code,{children:"true"}),"): Option to disable i18n default package."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"defaultLanguage"})," (string) (default ",(0,t.jsx)(n.code,{children:"en"}),"): When language not found, what language to fallback to."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"languages"})," (object) (default: ",(0,t.jsx)(n.code,{children:"{}"}),"): Localization overrides"]}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:"NOTES:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["At least one of ",(0,t.jsx)(n.code,{children:"eventSchema"})," or ",(0,t.jsx)(n.code,{children:"responseSchema"})," is required."]}),"\n",(0,t.jsxs)(n.li,{children:["If you'd like to have the error details as part of the response, it will need to be handled separately. You can access them from ",(0,t.jsx)(n.code,{children:"request.error.cause.data"}),", the original response can be found at ",(0,t.jsx)(n.code,{children:"request.error.response"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Important"})," Transpiling schemas & locales on the fly will cause a 50-150ms performance hit during cold start for simple JSON Schemas. Precompiling is highly recommended."]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"transpileschema",children:"transpileSchema"}),"\n",(0,t.jsxs)(n.p,{children:["Transpile JSON-Schema in to JavaScript. Default ajv plugins used: ",(0,t.jsx)(n.code,{children:"ajv-i18n"}),", ",(0,t.jsx)(n.code,{children:"ajv-formats"}),", ",(0,t.jsx)(n.code,{children:"ajv-formats-draft2019"}),", ",(0,t.jsx)(n.code,{children:"ajv-keywords"}),", ",(0,t.jsx)(n.code,{children:"ajv-errors"}),"."]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"schema"})," (object) (required): JSON-Schema object"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"ajvOptions"})," (object) (default ",(0,t.jsx)(n.code,{children:"undefined"}),"): Options to pass to ",(0,t.jsx)(n.a,{href:"https://ajv.js.org/docs/api.html#options",children:"ajv"}),"\nclass constructor. Defaults are ",(0,t.jsx)(n.code,{children:"{ strict: true, coerceTypes: 'array', allErrors: true, useDefaults: 'empty', messages: true }"}),"."]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"transpilelocale",children:"transpileLocale"}),"\n",(0,t.jsxs)(n.p,{children:["Transpile Fluent (.ftl) localization file into ajv compatible format. Allows the overriding of the default messages and adds support for multi-language ",(0,t.jsx)(n.code,{children:"errrorMessages"}),"."]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"ftl"})," (string) (required): Contents of an ftl file to be transpiled."]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"sample-usage",children:"Sample usage"}),"\n",(0,t.jsx)(n.p,{children:"Example for event validation:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-javascript",children:"import middy from '@middy/core'\nimport validator from '@middy/validator'\nimport { transpileSchema } from '@middy/validator/transpile'\n\nconst lambdaHandler = (event, context) => {\n return {}\n}\n\nconst schema = {\n type: 'object',\n required: ['body', 'foo'],\n properties: {\n // this will pass validation\n body: {\n type: 'string'\n },\n // this won't as it won't be in the event\n foo: {\n type: 'string'\n }\n }\n}\n\nexport const handler = middy()\n .use(\n validator({\n eventSchema: transpileSchema(schema)\n })\n )\n .handler(lambdaHandler)\n\n// invokes the handler, note that property foo is missing\nconst event = {\n body: JSON.stringify({ something: 'somethingelse' })\n}\nhandler(event, {}, (err, res) => {\n t.is(err.message, 'Event object failed validation')\n})\n"})}),"\n",(0,t.jsx)(n.p,{children:"Example for response validation:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-javascript",children:"import middy from '@middy/core'\nimport validator from '@middy/validator'\nimport { transpileSchema } from '@middy/validator/transpile'\n\nconst lambdaHandler = (event, context) => {\n return {}\n}\n\nconst responseSchema = transpileSchema({\n type: 'object',\n required: ['body', 'statusCode'],\n properties: {\n body: {\n type: 'object'\n },\n statusCode: {\n type: 'number'\n }\n }\n})\n\nexport const handler = middy()\n .use(validator({ responseSchema }))\n .handler(lambdaHandler)\n\n//\nhandler({}, {}, (err, response) => {\n t.not(err, null)\n t.is(err.message, 'Response object failed validation')\n expect(response).not.toBe(null)\n // it doesn't destroy the response so it can be used by other middlewares\n})\n"})}),"\n",(0,t.jsx)(n.p,{children:"Example for body validation:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-javascript",children:"import middy from '@middy/core'\nimport httpJsonBodyParser from '@middy/http-json-body-parser'\nimport validator from '@middy/validator'\nimport { transpileSchema } from '@middy/validator/transpile'\n\nconst lambdaHandler = (event, context) => {\n return {}\n}\n\nconst eventSchema = {\n type: 'object',\n required: ['body'],\n properties: {\n body: {\n type: 'object',\n required: ['name', 'email'],\n properties: {\n name: { type: 'string' },\n email: { type: 'string', format: 'email' }\n // schema options https://ajv.js.org/json-schema.html#json-data-type\n }\n }\n }\n}\n\nexport const handler = middy()\n // to validate the body we need to parse it first\n .use(httpJsonBodyParser())\n .use(\n validator({\n eventSchema: transpileSchema(eventSchema)\n })\n )\n .handler(lambdaHandler)\n"})}),"\n",(0,t.jsx)(n.h2,{id:"pre-transpiling-example-recommended",children:"Pre-transpiling example (recommended)"}),"\n",(0,t.jsx)(n.p,{children:"Run a build script to before running tests & deployment."}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"#!/usr/bin/env bash\n\n# This is an example, should be customize to meet ones needs\n# Powered by `ajv-cmd`\n# $ ajv --help\n\nbundle () {\n ajv validate ${1} --valid \\\n --strict true --coerce-types array --all-errors true --use-defaults empty\n ajv transpile ${1} \\\n --strict true --coerce-types array --all-errors true --use-defaults empty \\\n -o ${1%.json}.js\n}\n\nfor file in handlers/*/schema.*.json; do\n bundle $file\ndone\n\nlocale () {\n LOCALE=$(basename ${1%.ftl})\n ajv ftl ${1} --locale ${LOCALE} -o ${1%.ftl}.js\n}\n\nfor file in handlers/*/*.ftl; do\n locale $file\ndone\n"})}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-javascript",children:"import middy from '@middy/core'\nimport validator from '@middy/validator'\nimport eventSchema from './schema.event.js'\nimport en from './en.js'\nimport fr from './fr.js'\n\nconst lambdaHandler = (event, context) => {\n return {}\n}\n\nexport const handler = middy()\n .use(\n validator({\n eventSchema,\n languages: { en, fr }\n })\n )\n .handler(lambdaHandler)\n"})}),"\n",(0,t.jsx)(n.h2,{id:"transpile-during-cold-start",children:"Transpile during cold-start"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-javascript",children:"import { readFile } from 'node:fs/promises'\nimport middy from '@middy/core'\nimport validator from '@middy/validator'\nimport { transpileSchema, transpileLocale } from '@middy/validator/transpile'\nimport eventSchema from './schema.event.json'\n\nconst lambdaHandler = (event, context) => {\n return {}\n}\n\nconst en = transpileLocale(await readFile('./en.ftl'))\nconst fr = transpileLocale(await readFile('./fr.ftl'))\n\nexport const handler = middy()\n .use(\n validator({\n eventSchema: transpileSchema(eventSchema),\n languages: { en, fr }\n })\n )\n .handler(lambdaHandler)\n"})}),"\n",(0,t.jsx)(n.h2,{id:"transpile-during-cold-start-with-default-messages",children:"Transpile during cold-start with default messages"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-javascript",children:"import { readFile } from 'node:fs/promises'\nimport middy from '@middy/core'\nimport validator from '@middy/validator'\nimport { transpileSchema, transpileLocale } from '@middy/validator/transpile'\nimport { en, fr } from 'ajv-ftl-i18n' // `ajv-i18n` can also be used\nimport eventSchema from './schema.event.json'\n\nconst lambdaHandler = (event, context) => {\n return {}\n}\n\nexport const handler = middy()\n .use(\n validator({\n eventSchema: transpileSchema(eventSchema),\n languages: { en, fr }\n })\n )\n .handler(lambdaHandler)\n"})})]})}function m(e={}){const{wrapper:n}={...(0,r.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(h,{...e})}):h(e)}},5162:(e,n,a)=>{a.d(n,{Z:()=>l});a(7294);var t=a(6010);const r={tabItem:"tabItem_Ymn6"};var s=a(5893);function l(e){let{children:n,hidden:a,className:l}=e;return(0,s.jsx)("div",{role:"tabpanel",className:(0,t.Z)(r.tabItem,l),hidden:a,children:n})}},4866:(e,n,a)=>{a.d(n,{Z:()=>w});var t=a(7294),r=a(6010),s=a(2466),l=a(6550),i=a(469),o=a(1980),d=a(7392),c=a(12);function u(e){return t.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,t.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function h(e){const{values:n,children:a}=e;return(0,t.useMemo)((()=>{const e=n??function(e){return u(e).map((e=>{let{props:{value:n,label:a,attributes:t,default:r}}=e;return{value:n,label:a,attributes:t,default:r}}))}(a);return function(e){const n=(0,d.l)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[n,a])}function m(e){let{value:n,tabValues:a}=e;return a.some((e=>e.value===n))}function p(e){let{queryString:n=!1,groupId:a}=e;const r=(0,l.k6)(),s=function(e){let{queryString:n=!1,groupId:a}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!a)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return a??null}({queryString:n,groupId:a});return[(0,o._X)(s),(0,t.useCallback)((e=>{if(!s)return;const n=new URLSearchParams(r.location.search);n.set(s,e),r.replace({...r.location,search:n.toString()})}),[s,r])]}function f(e){const{defaultValue:n,queryString:a=!1,groupId:r}=e,s=h(e),[l,o]=(0,t.useState)((()=>function(e){let{defaultValue:n,tabValues:a}=e;if(0===a.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(n){if(!m({value:n,tabValues:a}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${a.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const t=a.find((e=>e.default))??a[0];if(!t)throw new Error("Unexpected error: 0 tabValues");return t.value}({defaultValue:n,tabValues:s}))),[d,u]=p({queryString:a,groupId:r}),[f,v]=function(e){let{groupId:n}=e;const a=function(e){return e?`docusaurus.tab.${e}`:null}(n),[r,s]=(0,c.Nk)(a);return[r,(0,t.useCallback)((e=>{a&&s.set(e)}),[a,s])]}({groupId:r}),j=(()=>{const e=d??f;return m({value:e,tabValues:s})?e:null})();(0,i.Z)((()=>{j&&o(j)}),[j]);return{selectedValue:l,selectValue:(0,t.useCallback)((e=>{if(!m({value:e,tabValues:s}))throw new Error(`Can't select invalid tab value=${e}`);o(e),u(e),v(e)}),[u,v,s]),tabValues:s}}var v=a(2389);const j={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var x=a(5893);function g(e){let{className:n,block:a,selectedValue:t,selectValue:l,tabValues:i}=e;const o=[],{blockElementScrollPositionUntilNextRender:d}=(0,s.o5)(),c=e=>{const n=e.currentTarget,a=o.indexOf(n),r=i[a].value;r!==t&&(d(n),l(r))},u=e=>{let n=null;switch(e.key){case"Enter":c(e);break;case"ArrowRight":{const a=o.indexOf(e.currentTarget)+1;n=o[a]??o[0];break}case"ArrowLeft":{const a=o.indexOf(e.currentTarget)-1;n=o[a]??o[o.length-1];break}}n?.focus()};return(0,x.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,r.Z)("tabs",{"tabs--block":a},n),children:i.map((e=>{let{value:n,label:a,attributes:s}=e;return(0,x.jsx)("li",{role:"tab",tabIndex:t===n?0:-1,"aria-selected":t===n,ref:e=>o.push(e),onKeyDown:u,onClick:c,...s,className:(0,r.Z)("tabs__item",j.tabItem,s?.className,{"tabs__item--active":t===n}),children:a??n},n)}))})}function b(e){let{lazy:n,children:a,selectedValue:r}=e;const s=(Array.isArray(a)?a:[a]).filter(Boolean);if(n){const e=s.find((e=>e.props.value===r));return e?(0,t.cloneElement)(e,{className:"margin-top--md"}):null}return(0,x.jsx)("div",{className:"margin-top--md",children:s.map(((e,n)=>(0,t.cloneElement)(e,{key:n,hidden:e.props.value!==r})))})}function y(e){const n=f(e);return(0,x.jsxs)("div",{className:(0,r.Z)("tabs-container",j.tabList),children:[(0,x.jsx)(g,{...e,...n}),(0,x.jsx)(b,{...e,...n})]})}function w(e){const n=(0,v.Z)();return(0,x.jsx)(y,{...e,children:u(e.children)},String(n))}},1151:(e,n,a)=>{a.d(n,{Z:()=>i,a:()=>l});var t=a(7294);const r={},s=t.createContext(r);function l(e){const n=t.useContext(s);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:l(e.components),t.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/d80baa5c.65c4f622.js b/assets/js/d80baa5c.65c4f622.js deleted file mode 100644 index 061b65041..000000000 --- a/assets/js/d80baa5c.65c4f622.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[9647],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>f});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),c=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=c(e.components);return r.createElement(l.Provider,{value:t},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),u=c(n),m=a,f=u["".concat(l,".").concat(m)]||u[m]||p[m]||o;return n?r.createElement(f,i(i({ref:t},d),{},{components:n})):r.createElement(f,i({ref:t},d))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=m;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[u]="string"==typeof e?e:a,i[1]=s;for(var c=2;c<o;c++)i[c]=n[c];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}m.displayName="MDXCreateElement"},7906:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>p,frontMatter:()=>o,metadata:()=>s,toc:()=>c});var r=n(7462),a=(n(7294),n(3905));const o={title:"Internal Storage",position:4},i=void 0,s={unversionedId:"writing-middlewares/internal-storage",id:"writing-middlewares/internal-storage",title:"Internal Storage",description:"The handler also contains an internal object that can be used to store values securely between middlewares that",source:"@site/docs/writing-middlewares/04-internal-storage.md",sourceDirName:"writing-middlewares",slug:"/writing-middlewares/internal-storage",permalink:"/docs/writing-middlewares/internal-storage",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/writing-middlewares/04-internal-storage.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",sidebarPosition:4,frontMatter:{title:"Internal Storage",position:4},sidebar:"tutorialSidebar",previous:{title:"Inline Middlewares",permalink:"/docs/writing-middlewares/inline-middlewares"},next:{title:"Handle Timeouts",permalink:"/docs/writing-middlewares/timeouts"}},l={},c=[],d={toc:c},u="wrapper";function p(e){let{components:t,...n}=e;return(0,a.kt)(u,(0,r.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"The handler also contains an ",(0,a.kt)("inlineCode",{parentName:"p"},"internal")," object that can be used to store values securely between middlewares that\nexpires when the event ends. To compliment this there is also a cache where middleware can store request promises.\nDuring ",(0,a.kt)("inlineCode",{parentName:"p"},"before")," these promises can be stored into ",(0,a.kt)("inlineCode",{parentName:"p"},"internal")," then resolved only when needed. This pattern is useful to\ntake advantage of the async nature of node especially when you have multiple middleware that require reaching out the\nexternal APIs."),(0,a.kt)("p",null,"Here is a middleware boilerplate using this pattern:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-javascript"},"import { canPrefetch, getInternal, processCache } from '@middy/util'\n\nconst defaults = {\n fetchData: {}, // { internalKey: params }\n disablePrefetch: false,\n cacheKey: 'custom',\n cacheExpiry: -1,\n setToContext: false\n}\n\nconst customMiddleware = (opts = {}) => {\n const options = { ...defaults, ...opts }\n\n const fetch = () => {\n const values = {}\n // Start your custom fetch\n for (const internalKey of Object.keys(options.fetchData)) {\n values[internalKey] = fetch('...', options.fetchData[internalKey]).then(\n (res) => res.text()\n )\n }\n // End your custom fetch\n return values\n }\n\n if (canPrefetch(options)) {\n processCache(options, fetch)\n }\n\n const customMiddlewareBefore = async (request) => {\n const { value } = processCache(options, fetch, request)\n\n Object.assign(request.internal, value)\n if (options.setToContext) {\n const data = await getInternal(Object.keys(options.fetchData), request)\n Object.assign(request.context, data)\n }\n }\n\n return {\n before: customMiddlewareBefore\n }\n}\n\nexport default customMiddleware\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d80baa5c.ab51e3fa.js b/assets/js/d80baa5c.ab51e3fa.js new file mode 100644 index 000000000..58017806f --- /dev/null +++ b/assets/js/d80baa5c.ab51e3fa.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[9647],{6592:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>u,frontMatter:()=>a,metadata:()=>i,toc:()=>d});var s=n(5893),r=n(1151);const a={title:"Internal Storage",position:4},o=void 0,i={id:"writing-middlewares/internal-storage",title:"Internal Storage",description:"The handler also contains an internal object that can be used to store values securely between middlewares that",source:"@site/docs/writing-middlewares/04-internal-storage.md",sourceDirName:"writing-middlewares",slug:"/writing-middlewares/internal-storage",permalink:"/docs/writing-middlewares/internal-storage",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/writing-middlewares/04-internal-storage.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",sidebarPosition:4,frontMatter:{title:"Internal Storage",position:4},sidebar:"tutorialSidebar",previous:{title:"Inline Middlewares",permalink:"/docs/writing-middlewares/inline-middlewares"},next:{title:"Handle Timeouts",permalink:"/docs/writing-middlewares/timeouts"}},c={},d=[];function l(e){const t={code:"code",p:"p",pre:"pre",...(0,r.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(t.p,{children:["The handler also contains an ",(0,s.jsx)(t.code,{children:"internal"})," object that can be used to store values securely between middlewares that\nexpires when the event ends. To compliment this there is also a cache where middleware can store request promises.\nDuring ",(0,s.jsx)(t.code,{children:"before"})," these promises can be stored into ",(0,s.jsx)(t.code,{children:"internal"})," then resolved only when needed. This pattern is useful to\ntake advantage of the async nature of node especially when you have multiple middleware that require reaching out the\nexternal APIs."]}),"\n",(0,s.jsx)(t.p,{children:"Here is a middleware boilerplate using this pattern:"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-javascript",children:"import { canPrefetch, getInternal, processCache } from '@middy/util'\n\nconst defaults = {\n fetchData: {}, // { internalKey: params }\n disablePrefetch: false,\n cacheKey: 'custom',\n cacheExpiry: -1,\n setToContext: false\n}\n\nconst customMiddleware = (opts = {}) => {\n const options = { ...defaults, ...opts }\n\n const fetch = () => {\n const values = {}\n // Start your custom fetch\n for (const internalKey of Object.keys(options.fetchData)) {\n values[internalKey] = fetch('...', options.fetchData[internalKey]).then(\n (res) => res.text()\n )\n }\n // End your custom fetch\n return values\n }\n\n if (canPrefetch(options)) {\n processCache(options, fetch)\n }\n\n const customMiddlewareBefore = async (request) => {\n const { value } = processCache(options, fetch, request)\n\n Object.assign(request.internal, value)\n if (options.setToContext) {\n const data = await getInternal(Object.keys(options.fetchData), request)\n Object.assign(request.context, data)\n }\n }\n\n return {\n before: customMiddlewareBefore\n }\n}\n\nexport default customMiddleware\n"})})]})}function u(e={}){const{wrapper:t}={...(0,r.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(l,{...e})}):l(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>i,a:()=>o});var s=n(7294);const r={},a=s.createContext(r);function o(e){const t=s.useContext(a);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),s.createElement(a.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/da0b5c8a.0de36f7f.js b/assets/js/da0b5c8a.0de36f7f.js new file mode 100644 index 000000000..a2126b32e --- /dev/null +++ b/assets/js/da0b5c8a.0de36f7f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[7796],{8029:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>m,frontMatter:()=>s,metadata:()=>d,toc:()=>c});var r=n(5893),a=n(1151),o=n(4866),l=n(5162);const s={title:"do-not-wait-for-empty-event-loop"},i=void 0,d={id:"middlewares/do-not-wait-for-empty-event-loop",title:"do-not-wait-for-empty-event-loop",description:"This middleware sets context.callbackWaitsForEmptyEventLoop property to false.",source:"@site/docs/middlewares/do-not-wait-for-empty-event-loop.md",sourceDirName:"middlewares",slug:"/middlewares/do-not-wait-for-empty-event-loop",permalink:"/docs/middlewares/do-not-wait-for-empty-event-loop",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/middlewares/do-not-wait-for-empty-event-loop.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",frontMatter:{title:"do-not-wait-for-empty-event-loop"},sidebar:"tutorialSidebar",previous:{title:"cloudwatch-metrics",permalink:"/docs/middlewares/cloudwatch-metrics"},next:{title:"dynamodb",permalink:"/docs/middlewares/dynamodb"}},u={},c=[{value:"Install",id:"install",level:2},{value:"Options",id:"options",level:2},{value:"Sample usage",id:"sample-usage",level:2}];function p(e){const t={code:"code",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,a.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(t.p,{children:["This middleware sets ",(0,r.jsx)(t.code,{children:"context.callbackWaitsForEmptyEventLoop"})," property to ",(0,r.jsx)(t.code,{children:"false"}),".\nThis will prevent Lambda from timing out because of open database connections, etc."]}),"\n",(0,r.jsx)(t.h2,{id:"install",children:"Install"}),"\n",(0,r.jsx)(t.p,{children:"To install this middleware you can use NPM:"}),"\n",(0,r.jsxs)(o.Z,{groupId:"npm2yarn",children:[(0,r.jsx)(l.Z,{value:"npm",children:(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-bash",children:"npm install --save @middy/do-not-wait-for-empty-event-loop\n"})})}),(0,r.jsx)(l.Z,{value:"yarn",label:"Yarn",children:(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-bash",children:"yarn add @middy/do-not-wait-for-empty-event-loop\n"})})}),(0,r.jsx)(l.Z,{value:"pnpm",label:"pnpm",children:(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-bash",children:"pnpm add @middy/do-not-wait-for-empty-event-loop\n"})})})]}),"\n",(0,r.jsx)(t.h2,{id:"options",children:"Options"}),"\n",(0,r.jsxs)(t.p,{children:["By default the middleware sets the ",(0,r.jsx)(t.code,{children:"callbackWaitsForEmptyEventLoop"})," property to ",(0,r.jsx)(t.code,{children:"false"})," only in the ",(0,r.jsx)(t.code,{children:"before"})," phase,\nmeaning you can override it in handler to ",(0,r.jsx)(t.code,{children:"true"})," if needed. You can set it in all steps with the options:"]}),"\n",(0,r.jsxs)(t.ul,{children:["\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:"runOnBefore"})," (defaults to ",(0,r.jsx)(t.code,{children:"true"}),") - sets property before running your handler"]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:"runOnAfter"})," (defaults to ",(0,r.jsx)(t.code,{children:"false"}),")"]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:"runOnError"})," (defaults to ",(0,r.jsx)(t.code,{children:"false"}),")"]}),"\n"]}),"\n",(0,r.jsx)(t.h2,{id:"sample-usage",children:"Sample usage"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-javascript",children:"import middy from '@middy/core'\nimport doNotWaitForEmptyEventLoop from '@middy/do-not-wait-for-empty-event-loop'\n\nconst lambdaHandler = (event, context) => {\n return {}\n}\n\nexport const handler = middy()\n .use(doNotWaitForEmptyEventLoop({ runOnError: true }))\n .handler(lambdaHandler)\n"})})]})}function m(e={}){const{wrapper:t}={...(0,a.a)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(p,{...e})}):p(e)}},5162:(e,t,n)=>{n.d(t,{Z:()=>l});n(7294);var r=n(6010);const a={tabItem:"tabItem_Ymn6"};var o=n(5893);function l(e){let{children:t,hidden:n,className:l}=e;return(0,o.jsx)("div",{role:"tabpanel",className:(0,r.Z)(a.tabItem,l),hidden:n,children:t})}},4866:(e,t,n)=>{n.d(t,{Z:()=>g});var r=n(7294),a=n(6010),o=n(2466),l=n(6550),s=n(469),i=n(1980),d=n(7392),u=n(12);function c(e){return r.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function p(e){const{values:t,children:n}=e;return(0,r.useMemo)((()=>{const e=t??function(e){return c(e).map((e=>{let{props:{value:t,label:n,attributes:r,default:a}}=e;return{value:t,label:n,attributes:r,default:a}}))}(n);return function(e){const t=(0,d.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,n])}function m(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function h(e){let{queryString:t=!1,groupId:n}=e;const a=(0,l.k6)(),o=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,i._X)(o),(0,r.useCallback)((e=>{if(!o)return;const t=new URLSearchParams(a.location.search);t.set(o,e),a.replace({...a.location,search:t.toString()})}),[o,a])]}function f(e){const{defaultValue:t,queryString:n=!1,groupId:a}=e,o=p(e),[l,i]=(0,r.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!m({value:t,tabValues:n}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const r=n.find((e=>e.default))??n[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:t,tabValues:o}))),[d,c]=h({queryString:n,groupId:a}),[f,b]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[a,o]=(0,u.Nk)(n);return[a,(0,r.useCallback)((e=>{n&&o.set(e)}),[n,o])]}({groupId:a}),v=(()=>{const e=d??f;return m({value:e,tabValues:o})?e:null})();(0,s.Z)((()=>{v&&i(v)}),[v]);return{selectedValue:l,selectValue:(0,r.useCallback)((e=>{if(!m({value:e,tabValues:o}))throw new Error(`Can't select invalid tab value=${e}`);i(e),c(e),b(e)}),[c,b,o]),tabValues:o}}var b=n(2389);const v={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var y=n(5893);function x(e){let{className:t,block:n,selectedValue:r,selectValue:l,tabValues:s}=e;const i=[],{blockElementScrollPositionUntilNextRender:d}=(0,o.o5)(),u=e=>{const t=e.currentTarget,n=i.indexOf(t),a=s[n].value;a!==r&&(d(t),l(a))},c=e=>{let t=null;switch(e.key){case"Enter":u(e);break;case"ArrowRight":{const n=i.indexOf(e.currentTarget)+1;t=i[n]??i[0];break}case"ArrowLeft":{const n=i.indexOf(e.currentTarget)-1;t=i[n]??i[i.length-1];break}}t?.focus()};return(0,y.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,a.Z)("tabs",{"tabs--block":n},t),children:s.map((e=>{let{value:t,label:n,attributes:o}=e;return(0,y.jsx)("li",{role:"tab",tabIndex:r===t?0:-1,"aria-selected":r===t,ref:e=>i.push(e),onKeyDown:c,onClick:u,...o,className:(0,a.Z)("tabs__item",v.tabItem,o?.className,{"tabs__item--active":r===t}),children:n??t},t)}))})}function w(e){let{lazy:t,children:n,selectedValue:a}=e;const o=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=o.find((e=>e.props.value===a));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return(0,y.jsx)("div",{className:"margin-top--md",children:o.map(((e,t)=>(0,r.cloneElement)(e,{key:t,hidden:e.props.value!==a})))})}function j(e){const t=f(e);return(0,y.jsxs)("div",{className:(0,a.Z)("tabs-container",v.tabList),children:[(0,y.jsx)(x,{...e,...t}),(0,y.jsx)(w,{...e,...t})]})}function g(e){const t=(0,b.Z)();return(0,y.jsx)(j,{...e,children:c(e.children)},String(t))}},1151:(e,t,n)=>{n.d(t,{Z:()=>s,a:()=>l});var r=n(7294);const a={},o=r.createContext(a);function l(e){const t=r.useContext(o);return r.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:l(e.components),r.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/da0b5c8a.53dc03b6.js b/assets/js/da0b5c8a.53dc03b6.js deleted file mode 100644 index c12113605..000000000 --- a/assets/js/da0b5c8a.53dc03b6.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[7796],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var u=r.createContext({}),s=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},c=function(e){var t=s(e.components);return r.createElement(u.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,u=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),p=s(n),m=a,f=p["".concat(u,".").concat(m)]||p[m]||d[m]||o;return n?r.createElement(f,l(l({ref:t},c),{},{components:n})):r.createElement(f,l({ref:t},c))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,l=new Array(o);l[0]=m;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[p]="string"==typeof e?e:a,l[1]=i;for(var s=2;s<o;s++)l[s]=n[s];return r.createElement.apply(null,l)}return r.createElement.apply(null,n)}m.displayName="MDXCreateElement"},5162:(e,t,n)=>{n.d(t,{Z:()=>l});var r=n(7294),a=n(6010);const o={tabItem:"tabItem_Ymn6"};function l(e){let{children:t,hidden:n,className:l}=e;return r.createElement("div",{role:"tabpanel",className:(0,a.Z)(o.tabItem,l),hidden:n},t)}},4866:(e,t,n)=>{n.d(t,{Z:()=>k});var r=n(7462),a=n(7294),o=n(6010),l=n(2466),i=n(6550),u=n(1980),s=n(7392),c=n(12);function p(e){return function(e){return a.Children.map(e,(e=>{if(!e||(0,a.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:r,default:a}}=e;return{value:t,label:n,attributes:r,default:a}}))}function d(e){const{values:t,children:n}=e;return(0,a.useMemo)((()=>{const e=t??p(n);return function(e){const t=(0,s.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,n])}function m(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:n}=e;const r=(0,i.k6)(),o=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,u._X)(o),(0,a.useCallback)((e=>{if(!o)return;const t=new URLSearchParams(r.location.search);t.set(o,e),r.replace({...r.location,search:t.toString()})}),[o,r])]}function b(e){const{defaultValue:t,queryString:n=!1,groupId:r}=e,o=d(e),[l,i]=(0,a.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!m({value:t,tabValues:n}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const r=n.find((e=>e.default))??n[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:t,tabValues:o}))),[u,s]=f({queryString:n,groupId:r}),[p,b]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[r,o]=(0,c.Nk)(n);return[r,(0,a.useCallback)((e=>{n&&o.set(e)}),[n,o])]}({groupId:r}),y=(()=>{const e=u??p;return m({value:e,tabValues:o})?e:null})();(0,a.useLayoutEffect)((()=>{y&&i(y)}),[y]);return{selectedValue:l,selectValue:(0,a.useCallback)((e=>{if(!m({value:e,tabValues:o}))throw new Error(`Can't select invalid tab value=${e}`);i(e),s(e),b(e)}),[s,b,o]),tabValues:o}}var y=n(2389);const v={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};function h(e){let{className:t,block:n,selectedValue:i,selectValue:u,tabValues:s}=e;const c=[],{blockElementScrollPositionUntilNextRender:p}=(0,l.o5)(),d=e=>{const t=e.currentTarget,n=c.indexOf(t),r=s[n].value;r!==i&&(p(t),u(r))},m=e=>{let t=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{const n=c.indexOf(e.currentTarget)+1;t=c[n]??c[0];break}case"ArrowLeft":{const n=c.indexOf(e.currentTarget)-1;t=c[n]??c[c.length-1];break}}t?.focus()};return a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,o.Z)("tabs",{"tabs--block":n},t)},s.map((e=>{let{value:t,label:n,attributes:l}=e;return a.createElement("li",(0,r.Z)({role:"tab",tabIndex:i===t?0:-1,"aria-selected":i===t,key:t,ref:e=>c.push(e),onKeyDown:m,onClick:d},l,{className:(0,o.Z)("tabs__item",v.tabItem,l?.className,{"tabs__item--active":i===t})}),n??t)})))}function g(e){let{lazy:t,children:n,selectedValue:r}=e;const o=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=o.find((e=>e.props.value===r));return e?(0,a.cloneElement)(e,{className:"margin-top--md"}):null}return a.createElement("div",{className:"margin-top--md"},o.map(((e,t)=>(0,a.cloneElement)(e,{key:t,hidden:e.props.value!==r}))))}function w(e){const t=b(e);return a.createElement("div",{className:(0,o.Z)("tabs-container",v.tabList)},a.createElement(h,(0,r.Z)({},e,t)),a.createElement(g,(0,r.Z)({},e,t)))}function k(e){const t=(0,y.Z)();return a.createElement(w,(0,r.Z)({key:String(t)},e))}},7837:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>u,default:()=>f,frontMatter:()=>i,metadata:()=>s,toc:()=>p});var r=n(7462),a=(n(7294),n(3905)),o=n(4866),l=n(5162);const i={title:"do-not-wait-for-empty-event-loop"},u=void 0,s={unversionedId:"middlewares/do-not-wait-for-empty-event-loop",id:"middlewares/do-not-wait-for-empty-event-loop",title:"do-not-wait-for-empty-event-loop",description:"This middleware sets context.callbackWaitsForEmptyEventLoop property to false.",source:"@site/docs/middlewares/do-not-wait-for-empty-event-loop.md",sourceDirName:"middlewares",slug:"/middlewares/do-not-wait-for-empty-event-loop",permalink:"/docs/middlewares/do-not-wait-for-empty-event-loop",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/middlewares/do-not-wait-for-empty-event-loop.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",frontMatter:{title:"do-not-wait-for-empty-event-loop"},sidebar:"tutorialSidebar",previous:{title:"cloudwatch-metrics",permalink:"/docs/middlewares/cloudwatch-metrics"},next:{title:"dynamodb",permalink:"/docs/middlewares/dynamodb"}},c={},p=[{value:"Install",id:"install",level:2},{value:"Options",id:"options",level:2},{value:"Sample usage",id:"sample-usage",level:2}],d={toc:p},m="wrapper";function f(e){let{components:t,...n}=e;return(0,a.kt)(m,(0,r.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"This middleware sets ",(0,a.kt)("inlineCode",{parentName:"p"},"context.callbackWaitsForEmptyEventLoop")," property to ",(0,a.kt)("inlineCode",{parentName:"p"},"false"),".\nThis will prevent Lambda from timing out because of open database connections, etc."),(0,a.kt)("h2",{id:"install"},"Install"),(0,a.kt)("p",null,"To install this middleware you can use NPM:"),(0,a.kt)(o.Z,{groupId:"npm2yarn",mdxType:"Tabs"},(0,a.kt)(l.Z,{value:"npm",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-bash"},"npm install --save @middy/do-not-wait-for-empty-event-loop\n"))),(0,a.kt)(l.Z,{value:"yarn",label:"Yarn",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-bash"},"yarn add @middy/do-not-wait-for-empty-event-loop\n"))),(0,a.kt)(l.Z,{value:"pnpm",label:"pnpm",mdxType:"TabItem"},(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-bash"},"pnpm add @middy/do-not-wait-for-empty-event-loop\n")))),(0,a.kt)("h2",{id:"options"},"Options"),(0,a.kt)("p",null,"By default the middleware sets the ",(0,a.kt)("inlineCode",{parentName:"p"},"callbackWaitsForEmptyEventLoop")," property to ",(0,a.kt)("inlineCode",{parentName:"p"},"false")," only in the ",(0,a.kt)("inlineCode",{parentName:"p"},"before")," phase,\nmeaning you can override it in handler to ",(0,a.kt)("inlineCode",{parentName:"p"},"true")," if needed. You can set it in all steps with the options:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"runOnBefore")," (defaults to ",(0,a.kt)("inlineCode",{parentName:"li"},"true"),") - sets property before running your handler"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"runOnAfter")," (defaults to ",(0,a.kt)("inlineCode",{parentName:"li"},"false"),")"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"runOnError")," (defaults to ",(0,a.kt)("inlineCode",{parentName:"li"},"false"),")")),(0,a.kt)("h2",{id:"sample-usage"},"Sample usage"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\nimport doNotWaitForEmptyEventLoop from '@middy/do-not-wait-for-empty-event-loop'\n\nconst handler = middy((event, context) => {\n return {}\n})\n\nhandler.use(doNotWaitForEmptyEventLoop({runOnError: true}))\n\n// When Lambda runs the handler it gets context with\n// callbackWaitsForEmptyEventLoop property set to false\n\nhandler(event, context, (_, response) => {\n t.is(context.callbackWaitsForEmptyEventLoop,false)\n})\n")))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/dbc9373d.0bc90701.js b/assets/js/dbc9373d.0bc90701.js deleted file mode 100644 index 5c7cb0fe9..000000000 --- a/assets/js/dbc9373d.0bc90701.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[9116],{3905:(e,t,r)=>{r.d(t,{Zo:()=>c,kt:()=>f});var a=r(7294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?l(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):l(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function o(e,t){if(null==e)return{};var r,a,n=function(e,t){if(null==e)return{};var r,a,n={},l=Object.keys(e);for(a=0;a<l.length;a++)r=l[a],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a<l.length;a++)r=l[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=a.createContext({}),u=function(e){var t=a.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},c=function(e){var t=u(e.components);return a.createElement(s.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,l=e.originalType,s=e.parentName,c=o(e,["components","mdxType","originalType","parentName"]),d=u(r),m=n,f=d["".concat(s,".").concat(m)]||d[m]||p[m]||l;return r?a.createElement(f,i(i({ref:t},c),{},{components:r})):a.createElement(f,i({ref:t},c))}));function f(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=r.length,i=new Array(l);i[0]=m;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[d]="string"==typeof e?e:n,i[1]=o;for(var u=2;u<l;u++)i[u]=r[u];return a.createElement.apply(null,i)}return a.createElement.apply(null,r)}m.displayName="MDXCreateElement"},5162:(e,t,r)=>{r.d(t,{Z:()=>i});var a=r(7294),n=r(6010);const l={tabItem:"tabItem_Ymn6"};function i(e){let{children:t,hidden:r,className:i}=e;return a.createElement("div",{role:"tabpanel",className:(0,n.Z)(l.tabItem,i),hidden:r},t)}},4866:(e,t,r)=>{r.d(t,{Z:()=>w});var a=r(7462),n=r(7294),l=r(6010),i=r(2466),o=r(6550),s=r(1980),u=r(7392),c=r(12);function d(e){return function(e){return n.Children.map(e,(e=>{if(!e||(0,n.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:r,attributes:a,default:n}}=e;return{value:t,label:r,attributes:a,default:n}}))}function p(e){const{values:t,children:r}=e;return(0,n.useMemo)((()=>{const e=t??d(r);return function(e){const t=(0,u.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,r])}function m(e){let{value:t,tabValues:r}=e;return r.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:r}=e;const a=(0,o.k6)(),l=function(e){let{queryString:t=!1,groupId:r}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!r)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return r??null}({queryString:t,groupId:r});return[(0,s._X)(l),(0,n.useCallback)((e=>{if(!l)return;const t=new URLSearchParams(a.location.search);t.set(l,e),a.replace({...a.location,search:t.toString()})}),[l,a])]}function h(e){const{defaultValue:t,queryString:r=!1,groupId:a}=e,l=p(e),[i,o]=(0,n.useState)((()=>function(e){let{defaultValue:t,tabValues:r}=e;if(0===r.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!m({value:t,tabValues:r}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${r.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const a=r.find((e=>e.default))??r[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:t,tabValues:l}))),[s,u]=f({queryString:r,groupId:a}),[d,h]=function(e){let{groupId:t}=e;const r=function(e){return e?`docusaurus.tab.${e}`:null}(t),[a,l]=(0,c.Nk)(r);return[a,(0,n.useCallback)((e=>{r&&l.set(e)}),[r,l])]}({groupId:a}),b=(()=>{const e=s??d;return m({value:e,tabValues:l})?e:null})();(0,n.useLayoutEffect)((()=>{b&&o(b)}),[b]);return{selectedValue:i,selectValue:(0,n.useCallback)((e=>{if(!m({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);o(e),u(e),h(e)}),[u,h,l]),tabValues:l}}var b=r(2389);const y={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};function v(e){let{className:t,block:r,selectedValue:o,selectValue:s,tabValues:u}=e;const c=[],{blockElementScrollPositionUntilNextRender:d}=(0,i.o5)(),p=e=>{const t=e.currentTarget,r=c.indexOf(t),a=u[r].value;a!==o&&(d(t),s(a))},m=e=>{let t=null;switch(e.key){case"Enter":p(e);break;case"ArrowRight":{const r=c.indexOf(e.currentTarget)+1;t=c[r]??c[0];break}case"ArrowLeft":{const r=c.indexOf(e.currentTarget)-1;t=c[r]??c[c.length-1];break}}t?.focus()};return n.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":r},t)},u.map((e=>{let{value:t,label:r,attributes:i}=e;return n.createElement("li",(0,a.Z)({role:"tab",tabIndex:o===t?0:-1,"aria-selected":o===t,key:t,ref:e=>c.push(e),onKeyDown:m,onClick:p},i,{className:(0,l.Z)("tabs__item",y.tabItem,i?.className,{"tabs__item--active":o===t})}),r??t)})))}function g(e){let{lazy:t,children:r,selectedValue:a}=e;const l=(Array.isArray(r)?r:[r]).filter(Boolean);if(t){const e=l.find((e=>e.props.value===a));return e?(0,n.cloneElement)(e,{className:"margin-top--md"}):null}return n.createElement("div",{className:"margin-top--md"},l.map(((e,t)=>(0,n.cloneElement)(e,{key:t,hidden:e.props.value!==a}))))}function k(e){const t=h(e);return n.createElement("div",{className:(0,l.Z)("tabs-container",y.tabList)},n.createElement(v,(0,a.Z)({},e,t)),n.createElement(g,(0,a.Z)({},e,t)))}function w(e){const t=(0,b.Z)();return n.createElement(k,(0,a.Z)({key:String(t)},e))}},8406:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>f,frontMatter:()=>o,metadata:()=>u,toc:()=>d});var a=r(7462),n=(r(7294),r(3905)),l=r(4866),i=r(5162);const o={title:"http-security-headers"},s=void 0,u={unversionedId:"middlewares/http-security-headers",id:"middlewares/http-security-headers",title:"http-security-headers",description:"Applies best practice security headers to responses. It's a simplified port of HelmetJS. See HelmetJS documentation for more details.",source:"@site/docs/middlewares/http-security-headers.md",sourceDirName:"middlewares",slug:"/middlewares/http-security-headers",permalink:"/docs/middlewares/http-security-headers",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/middlewares/http-security-headers.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",frontMatter:{title:"http-security-headers"},sidebar:"tutorialSidebar",previous:{title:"http-response-serializer",permalink:"/docs/middlewares/http-response-serializer"},next:{title:"http-urlencode-body-parser",permalink:"/docs/middlewares/http-urlencode-body-parser"}},c={},d=[{value:"Install",id:"install",level:2},{value:"Options",id:"options",level:2},{value:"Sample usage",id:"sample-usage",level:2}],p={toc:d},m="wrapper";function f(e){let{components:t,...r}=e;return(0,n.kt)(m,(0,a.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"Applies best practice security headers to responses. It's a simplified port of HelmetJS. See ",(0,n.kt)("a",{parentName:"p",href:"https://helmetjs.github.io/"},"HelmetJS")," documentation for more details."),(0,n.kt)("h2",{id:"install"},"Install"),(0,n.kt)("p",null,"To install this middleware you can use NPM:"),(0,n.kt)(l.Z,{groupId:"npm2yarn",mdxType:"Tabs"},(0,n.kt)(i.Z,{value:"npm",mdxType:"TabItem"},(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-bash"},"npm install --save @middy/http-security-headers\n"))),(0,n.kt)(i.Z,{value:"yarn",label:"Yarn",mdxType:"TabItem"},(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-bash"},"yarn add @middy/http-security-headers\n"))),(0,n.kt)(i.Z,{value:"pnpm",label:"pnpm",mdxType:"TabItem"},(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-bash"},"pnpm add @middy/http-security-headers\n")))),(0,n.kt)("h2",{id:"options"},"Options"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"dnsPrefetchControl")," controls browser DNS prefetching"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"expectCt")," for handling Certificate Transparency (Future Feature)"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"frameguard")," to prevent clickjacking"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"hidePoweredBy")," to remove the Server/X-Powered-By header"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"hsts")," for HTTP Strict Transport Security"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"ieNoOpen")," sets X-Download-Options for IE8+"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"noSniff")," to keep clients from sniffing the MIME type"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"referrerPolicy")," to hide the Referer header"),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("inlineCode",{parentName:"li"},"xssFilter")," adds some small XSS protections")),(0,n.kt)("h2",{id:"sample-usage"},"Sample usage"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\nimport httpSecurityHeaders from '@middy/http-security-headers'\n\nconst handler = middy((event, context) => {\n return {}\n})\n\nhandler\n .use(httpSecurityHeaders())\n")))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/dbc9373d.2213d515.js b/assets/js/dbc9373d.2213d515.js new file mode 100644 index 000000000..c7e450373 --- /dev/null +++ b/assets/js/dbc9373d.2213d515.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[9116],{1660:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>d,contentTitle:()=>o,default:()=>p,frontMatter:()=>i,metadata:()=>c,toc:()=>u});var n=r(5893),a=r(1151),s=r(4866),l=r(5162);const i={title:"http-security-headers"},o=void 0,c={id:"middlewares/http-security-headers",title:"http-security-headers",description:"Applies best practice security headers to responses. It's a simplified port of HelmetJS. See HelmetJS documentation for more details.",source:"@site/docs/middlewares/http-security-headers.md",sourceDirName:"middlewares",slug:"/middlewares/http-security-headers",permalink:"/docs/middlewares/http-security-headers",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/middlewares/http-security-headers.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",frontMatter:{title:"http-security-headers"},sidebar:"tutorialSidebar",previous:{title:"http-response-serializer",permalink:"/docs/middlewares/http-response-serializer"},next:{title:"http-urlencode-body-parser",permalink:"/docs/middlewares/http-urlencode-body-parser"}},d={},u=[{value:"Install",id:"install",level:2},{value:"Options",id:"options",level:2},{value:"Sample usage",id:"sample-usage",level:2}];function h(e){const t={a:"a",code:"code",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,a.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(t.p,{children:["Applies best practice security headers to responses. It's a simplified port of HelmetJS. See ",(0,n.jsx)(t.a,{href:"https://helmetjs.github.io/",children:"HelmetJS"})," documentation for more details."]}),"\n",(0,n.jsx)(t.h2,{id:"install",children:"Install"}),"\n",(0,n.jsx)(t.p,{children:"To install this middleware you can use NPM:"}),"\n",(0,n.jsxs)(s.Z,{groupId:"npm2yarn",children:[(0,n.jsx)(l.Z,{value:"npm",children:(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-bash",children:"npm install --save @middy/http-security-headers\n"})})}),(0,n.jsx)(l.Z,{value:"yarn",label:"Yarn",children:(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-bash",children:"yarn add @middy/http-security-headers\n"})})}),(0,n.jsx)(l.Z,{value:"pnpm",label:"pnpm",children:(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-bash",children:"pnpm add @middy/http-security-headers\n"})})})]}),"\n",(0,n.jsx)(t.h2,{id:"options",children:"Options"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"dnsPrefetchControl"})," controls browser DNS prefetching"]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"expectCt"})," for handling Certificate Transparency (Future Feature)"]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"frameguard"})," to prevent clickjacking"]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"hidePoweredBy"})," to remove the Server/X-Powered-By header"]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"hsts"})," for HTTP Strict Transport Security"]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"ieNoOpen"})," sets X-Download-Options for IE8+"]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"noSniff"})," to keep clients from sniffing the MIME type"]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"referrerPolicy"})," to hide the Referer header"]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"xssFilter"})," adds some small XSS protections"]}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"sample-usage",children:"Sample usage"}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-javascript",children:"import middy from '@middy/core'\nimport httpSecurityHeaders from '@middy/http-security-headers'\n\nconst lambdaHandler = (event, context) => {\n return {}\n}\n\nexport const handler = middy().use(httpSecurityHeaders()).handler(lambdaHandler)\n"})})]})}function p(e={}){const{wrapper:t}={...(0,a.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(h,{...e})}):h(e)}},5162:(e,t,r)=>{r.d(t,{Z:()=>l});r(7294);var n=r(6010);const a={tabItem:"tabItem_Ymn6"};var s=r(5893);function l(e){let{children:t,hidden:r,className:l}=e;return(0,s.jsx)("div",{role:"tabpanel",className:(0,n.Z)(a.tabItem,l),hidden:r,children:t})}},4866:(e,t,r)=>{r.d(t,{Z:()=>w});var n=r(7294),a=r(6010),s=r(2466),l=r(6550),i=r(469),o=r(1980),c=r(7392),d=r(12);function u(e){return n.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,n.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function h(e){const{values:t,children:r}=e;return(0,n.useMemo)((()=>{const e=t??function(e){return u(e).map((e=>{let{props:{value:t,label:r,attributes:n,default:a}}=e;return{value:t,label:r,attributes:n,default:a}}))}(r);return function(e){const t=(0,c.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,r])}function p(e){let{value:t,tabValues:r}=e;return r.some((e=>e.value===t))}function m(e){let{queryString:t=!1,groupId:r}=e;const a=(0,l.k6)(),s=function(e){let{queryString:t=!1,groupId:r}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!r)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return r??null}({queryString:t,groupId:r});return[(0,o._X)(s),(0,n.useCallback)((e=>{if(!s)return;const t=new URLSearchParams(a.location.search);t.set(s,e),a.replace({...a.location,search:t.toString()})}),[s,a])]}function f(e){const{defaultValue:t,queryString:r=!1,groupId:a}=e,s=h(e),[l,o]=(0,n.useState)((()=>function(e){let{defaultValue:t,tabValues:r}=e;if(0===r.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!p({value:t,tabValues:r}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${r.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const n=r.find((e=>e.default))??r[0];if(!n)throw new Error("Unexpected error: 0 tabValues");return n.value}({defaultValue:t,tabValues:s}))),[c,u]=m({queryString:r,groupId:a}),[f,b]=function(e){let{groupId:t}=e;const r=function(e){return e?`docusaurus.tab.${e}`:null}(t),[a,s]=(0,d.Nk)(r);return[a,(0,n.useCallback)((e=>{r&&s.set(e)}),[r,s])]}({groupId:a}),y=(()=>{const e=c??f;return p({value:e,tabValues:s})?e:null})();(0,i.Z)((()=>{y&&o(y)}),[y]);return{selectedValue:l,selectValue:(0,n.useCallback)((e=>{if(!p({value:e,tabValues:s}))throw new Error(`Can't select invalid tab value=${e}`);o(e),u(e),b(e)}),[u,b,s]),tabValues:s}}var b=r(2389);const y={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var v=r(5893);function x(e){let{className:t,block:r,selectedValue:n,selectValue:l,tabValues:i}=e;const o=[],{blockElementScrollPositionUntilNextRender:c}=(0,s.o5)(),d=e=>{const t=e.currentTarget,r=o.indexOf(t),a=i[r].value;a!==n&&(c(t),l(a))},u=e=>{let t=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{const r=o.indexOf(e.currentTarget)+1;t=o[r]??o[0];break}case"ArrowLeft":{const r=o.indexOf(e.currentTarget)-1;t=o[r]??o[o.length-1];break}}t?.focus()};return(0,v.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,a.Z)("tabs",{"tabs--block":r},t),children:i.map((e=>{let{value:t,label:r,attributes:s}=e;return(0,v.jsx)("li",{role:"tab",tabIndex:n===t?0:-1,"aria-selected":n===t,ref:e=>o.push(e),onKeyDown:u,onClick:d,...s,className:(0,a.Z)("tabs__item",y.tabItem,s?.className,{"tabs__item--active":n===t}),children:r??t},t)}))})}function j(e){let{lazy:t,children:r,selectedValue:a}=e;const s=(Array.isArray(r)?r:[r]).filter(Boolean);if(t){const e=s.find((e=>e.props.value===a));return e?(0,n.cloneElement)(e,{className:"margin-top--md"}):null}return(0,v.jsx)("div",{className:"margin-top--md",children:s.map(((e,t)=>(0,n.cloneElement)(e,{key:t,hidden:e.props.value!==a})))})}function g(e){const t=f(e);return(0,v.jsxs)("div",{className:(0,a.Z)("tabs-container",y.tabList),children:[(0,v.jsx)(x,{...e,...t}),(0,v.jsx)(j,{...e,...t})]})}function w(e){const t=(0,b.Z)();return(0,v.jsx)(g,{...e,children:u(e.children)},String(t))}},1151:(e,t,r)=>{r.d(t,{Z:()=>i,a:()=>l});var n=r(7294);const a={},s=n.createContext(a);function l(e){const t=n.useContext(s);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:l(e.components),n.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/e0fb88b0.13cf6a48.js b/assets/js/e0fb88b0.13cf6a48.js deleted file mode 100644 index fc7d995c1..000000000 --- a/assets/js/e0fb88b0.13cf6a48.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[4288],{3905:(e,t,a)=>{a.d(t,{Zo:()=>m,kt:()=>u});var r=a(7294);function i(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function n(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?n(Object(a),!0).forEach((function(t){i(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):n(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function s(e,t){if(null==e)return{};var a,r,i=function(e,t){if(null==e)return{};var a,r,i={},n=Object.keys(e);for(r=0;r<n.length;r++)a=n[r],t.indexOf(a)>=0||(i[a]=e[a]);return i}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(r=0;r<n.length;r++)a=n[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(i[a]=e[a])}return i}var l=r.createContext({}),d=function(e){var t=r.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},m=function(e){var t=d(e.components);return r.createElement(l.Provider,{value:t},e.children)},p="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},h=r.forwardRef((function(e,t){var a=e.components,i=e.mdxType,n=e.originalType,l=e.parentName,m=s(e,["components","mdxType","originalType","parentName"]),p=d(a),h=i,u=p["".concat(l,".").concat(h)]||p[h]||c[h]||n;return a?r.createElement(u,o(o({ref:t},m),{},{components:a})):r.createElement(u,o({ref:t},m))}));function u(e,t){var a=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var n=a.length,o=new Array(n);o[0]=h;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[p]="string"==typeof e?e:i,o[1]=s;for(var d=2;d<n;d++)o[d]=a[d];return r.createElement.apply(null,o)}return r.createElement.apply(null,a)}h.displayName="MDXCreateElement"},2627:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>c,frontMatter:()=>n,metadata:()=>s,toc:()=>d});var r=a(7462),i=(a(7294),a(3905));const n={title:"Third-party middlewares",sidebar_position:100},o=void 0,s={unversionedId:"middlewares/third-party",id:"middlewares/third-party",title:"Third-party middlewares",description:"The following middlewares are created and maintained outside this project. We cannot guarantee for its functionality.",source:"@site/docs/middlewares/third-party.md",sourceDirName:"middlewares",slug:"/middlewares/third-party",permalink:"/docs/middlewares/third-party",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/middlewares/third-party.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",sidebarPosition:100,frontMatter:{title:"Third-party middlewares",sidebar_position:100},sidebar:"tutorialSidebar",previous:{title:"Official middlewares",permalink:"/docs/middlewares/intro"},next:{title:"appconfig",permalink:"/docs/middlewares/appconfig"}},l={},d=[{value:"Version 2.x - 4.x",id:"version-2x---4x",level:2},{value:"Version 2.x - 3.x",id:"version-2x---3x",level:2},{value:"Version 1.x",id:"version-1x",level:2}],m={toc:d},p="wrapper";function c(e){let{components:t,...a}=e;return(0,i.kt)(p,(0,r.Z)({},m,a,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"The following middlewares are created and maintained outside this project. We cannot guarantee for its functionality.\nIf your middleware is missing, feel free to ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/middyjs/middy/pulls"},"open a Pull Request"),"."),(0,i.kt)("h2",{id:"version-2x---4x"},"Version 2.x - 4.x"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/getndazn/dazn-lambda-powertools"},"dazn-lambda-powertools"),": A collection of middlewares, AWS clients and helper libraries that make working with lambda easier."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://www.npmjs.com/package/middy-ajv"},"middy-ajv"),": AJV validator optimized for performance"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/serkan-ozal/middy-console-logger"},"middy-console-logger"),": Middleware for filtering logs printed over console logging methods. If the level of the console logging method is equal or bigger than configured level, the log is printed, Otherwise, it is ignored."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/serkan-ozal/middy-event-loop-tracer"},"middy-event-loop-tracer"),": Middleware for dumping active tasks with their stacktraces in the event queue just before AWS Lambda function timeouts. So you can understand what was going on in the function when timeout happens."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://www.npmjs.com/package/middy-idempotent"},"middy-idempotent"),": idempotency middleware for middy"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/serkan-ozal/middy-invocation"},"middy-invocation"),": Middleware for accessing current AWS Lambda invocation event and context from anywhere without need to passing event and context as arguments through your code.- ",(0,i.kt)("a",{parentName:"li",href:"https://www.npmjs.com/package/middy-lesslog"},"middy-lesslog"),": Middleware for ",(0,i.kt)("inlineCode",{parentName:"li"},"lesslog"),", a teeny-tiny and severless-ready logging utility"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://www.npmjs.com/package/middy-jsonapi"},"middy-jsonapi"),": JSONAPI middleware for middy"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://www.npmjs.com/package/middy-lesslog"},"middy-lesslog"),": Middleware for ",(0,i.kt)("inlineCode",{parentName:"li"},"lesslog"),", a teeny-tiny and severless-ready logging utility"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/serkan-ozal/middy-profiler"},"middy-profiler"),": Middleware for profiling CPU on AWS Lambda during invocation and shows what methods/modules consume what percent of CPU time"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://www.npmjs.com/package/middy-rds"},"middy-rds"),": Creates RDS connection using ",(0,i.kt)("inlineCode",{parentName:"li"},"knex")," or ",(0,i.kt)("inlineCode",{parentName:"li"},"pg")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://www.npmjs.com/package/middy-recaptcha"},"middy-recaptcha"),": reCAPTCHA validation middleware"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://www.npmjs.com/package/middy-sparks-joi"},"middy-sparks-joi"),": Joi validator"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://www.npmjs.com/package/@iress/middy-http-path-router"},"@iress/middy-http-path-router"),": Routes AWS API Gateway events to handlers based on static and dynamic paths")),(0,i.kt)("h2",{id:"version-2x---3x"},"Version 2.x - 3.x"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("a",{parentName:"p",href:"https://github.com/awslabs/aws-lambda-powertools-typescript"},"aws-lambda-powertools-typescript"),": A suite of utilities for AWS Lambda Functions that makes structured logging, creating custom metrics asynchronously and tracing with AWS X-Ray easier"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://awslabs.github.io/aws-lambda-powertools-typescript/latest/core/logger/#capturing-lambda-context-info"},"logger"),": Structured logging made easier, and a middleware to enrich log items with key details of the Lambda context"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://awslabs.github.io/aws-lambda-powertools-typescript/latest/core/metrics/#middy-middleware"},"metrics"),": Custom Metrics created asynchronously via CloudWatch Embedded Metric Format (EMF)"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://awslabs.github.io/aws-lambda-powertools-typescript/latest/utilities/parameters/"},"parameters"),": The Parameters utility provides high-level functions to retrieve one or multiple parameter values from AWS Systems Manager Parameter Store, AWS Secrets Manager, AWS AppConfig, Amazon DynamoDB, or your own parameter store."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://awslabs.github.io/aws-lambda-powertools-typescript/latest/core/tracer/#lambda-handler"},"tracer"),": Utilities to trace Lambda function handlers, and both synchronous and asynchronous functions")))),(0,i.kt)("h2",{id:"version-1x"},"Version 1.x"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://www.npmjs.com/package/middy-redis"},"middy-redis"),": Redis connection middleware"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://www.npmjs.com/package/middy-extractor"},"middy-extractor"),": Extracts data from events using expressions"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://www.npmjs.com/package/@keboola/middy-error-logger"},"@keboola/middy-error-logger"),": middleware that catches thrown exceptions and rejected promises and logs them comprehensibly to the console"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://www.npmjs.com/package/@keboola/middy-event-validator"},"@keboola/middy-event-validator"),": Joi powered event validation middleware"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://www.npmjs.com/package/middy-reroute"},"middy-reroute"),": provides complex redirect, rewrite and proxying capabilities by simply placing a rules file into your S3 bucket"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://www.npmjs.com/package/middytohof"},"middytohof"),": Convert Middy middleware plugins to higher-order functions returning lambda handlers"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://www.npmjs.com/package/wrap-ware"},"wrap-ware"),": A middleware wrapper which works with promises / async"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://www.npmjs.com/package/middy-middleware-warmup"},"middy-middleware-warmup"),": A middy plugin to help keep your Lambdas warm during Winter"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://www.npmjs.com/package/@sharecover-co/middy-aws-xray-tracing"},"@sharecover-co/middy-aws-xray-tracing"),": AWS X-Ray Tracing Middleware"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://www.npmjs.com/package/@sharecover-co/middy-http-response-serializer"},"@sharecover-co/middy-http-response-serializer"),": This middleware serializes the response to JSON and wraps it in a 200 HTTP response"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://www.npmjs.com/package/@seedrs/middyjs-middleware"},"@seedrs/middyjs-middleware"),": Collection of useful middlewares"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://www.npmjs.com/package/middy-autoproxyresponse"},"middy-autoproxyresponse"),": A middleware that lets you return simple JavaScript objects from Lambda function handlers and converts them into LAMBDA_PROXY responses"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://www.npmjs.com/package/middy-middleware-jwt-auth"},"jwt-auth"),": JSON web token authorization middleware based on ",(0,i.kt)("inlineCode",{parentName:"li"},"express-jwt")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://www.npmjs.com/package/middy-mongoose-connector"},"middy-mongoose-connector"),": MongoDB connection middleware for ",(0,i.kt)("a",{parentName:"li",href:"https://mongoosejs.com/"},"mongoose.js")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://www.npmjs.com/package/@ematipico/middy-request-response"},"@ematipico/middy-request-response"),": a middleware that creates a pair of request/response objects"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://www.npmjs.com/package/@marcosantonocito/middy-cognito-permission"},"@marcosantonocito/middy-cognito-permission"),": Authorization and roles permission management for the Middy framework that works with Amazon Cognito"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://www.npmjs.com/package/middy-env"},"middy-env"),": Fetch, validate and type cast environment variables"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/Eomm/sqs-json-body-parser"},"sqs-json-body-parser"),": Parse the SQS body to JSON"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://www.npmjs.com/package/middy-lesslog/v/legacy"},"middy-lesslog"),": Middleware for ",(0,i.kt)("inlineCode",{parentName:"li"},"lesslog"),", a teeny-tiny and severless-ready logging utility")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e0fb88b0.5d442774.js b/assets/js/e0fb88b0.5d442774.js new file mode 100644 index 000000000..555cb1ae2 --- /dev/null +++ b/assets/js/e0fb88b0.5d442774.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[4288],{4903:(e,i,s)=>{s.r(i),s.d(i,{assets:()=>o,contentTitle:()=>a,default:()=>h,frontMatter:()=>n,metadata:()=>d,toc:()=>l});var r=s(5893),t=s(1151);const n={title:"Third-party middlewares",sidebar_position:100},a=void 0,d={id:"middlewares/third-party",title:"Third-party middlewares",description:"The following middlewares are created and maintained outside this project. We cannot guarantee for its functionality.",source:"@site/docs/middlewares/third-party.md",sourceDirName:"middlewares",slug:"/middlewares/third-party",permalink:"/docs/middlewares/third-party",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/middlewares/third-party.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",sidebarPosition:100,frontMatter:{title:"Third-party middlewares",sidebar_position:100},sidebar:"tutorialSidebar",previous:{title:"Official middlewares",permalink:"/docs/middlewares/intro"},next:{title:"appconfig",permalink:"/docs/middlewares/appconfig"}},o={},l=[{value:"Version 2.x - 4.x",id:"version-2x---4x",level:2},{value:"Version 2.x - 3.x",id:"version-2x---3x",level:2},{value:"Version 1.x",id:"version-1x",level:2}];function c(e){const i={a:"a",code:"code",h2:"h2",li:"li",p:"p",ul:"ul",...(0,t.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(i.p,{children:["The following middlewares are created and maintained outside this project. We cannot guarantee for its functionality.\nIf your middleware is missing, feel free to ",(0,r.jsx)(i.a,{href:"https://github.com/middyjs/middy/pulls",children:"open a Pull Request"}),"."]}),"\n",(0,r.jsx)(i.h2,{id:"version-2x---4x",children:"Version 2.x - 4.x"}),"\n",(0,r.jsxs)(i.ul,{children:["\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.a,{href:"https://github.com/getndazn/dazn-lambda-powertools",children:"dazn-lambda-powertools"}),": A collection of middlewares, AWS clients and helper libraries that make working with lambda easier."]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.a,{href:"https://www.npmjs.com/package/middy-ajv",children:"middy-ajv"}),": AJV validator optimized for performance"]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.a,{href:"https://github.com/serkan-ozal/middy-console-logger",children:"middy-console-logger"}),": Middleware for filtering logs printed over console logging methods. If the level of the console logging method is equal or bigger than configured level, the log is printed, Otherwise, it is ignored."]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.a,{href:"https://github.com/serkan-ozal/middy-event-loop-tracer",children:"middy-event-loop-tracer"}),": Middleware for dumping active tasks with their stacktraces in the event queue just before AWS Lambda function timeouts. So you can understand what was going on in the function when timeout happens."]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.a,{href:"https://www.npmjs.com/package/middy-idempotent",children:"middy-idempotent"}),": idempotency middleware for middy"]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.a,{href:"https://github.com/serkan-ozal/middy-invocation",children:"middy-invocation"}),": Middleware for accessing current AWS Lambda invocation event and context from anywhere without need to passing event and context as arguments through your code.- ",(0,r.jsx)(i.a,{href:"https://www.npmjs.com/package/middy-lesslog",children:"middy-lesslog"}),": Middleware for ",(0,r.jsx)(i.code,{children:"lesslog"}),", a teeny-tiny and severless-ready logging utility"]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.a,{href:"https://www.npmjs.com/package/middy-jsonapi",children:"middy-jsonapi"}),": JSONAPI middleware for middy"]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.a,{href:"https://www.npmjs.com/package/middy-lesslog",children:"middy-lesslog"}),": Middleware for ",(0,r.jsx)(i.code,{children:"lesslog"}),", a teeny-tiny and severless-ready logging utility"]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.a,{href:"https://github.com/serkan-ozal/middy-profiler",children:"middy-profiler"}),": Middleware for profiling CPU on AWS Lambda during invocation and shows what methods/modules consume what percent of CPU time"]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.a,{href:"https://www.npmjs.com/package/middy-rds",children:"middy-rds"}),": Creates RDS connection using ",(0,r.jsx)(i.code,{children:"knex"})," or ",(0,r.jsx)(i.code,{children:"pg"})]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.a,{href:"https://www.npmjs.com/package/middy-recaptcha",children:"middy-recaptcha"}),": reCAPTCHA validation middleware"]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.a,{href:"https://www.npmjs.com/package/middy-sparks-joi",children:"middy-sparks-joi"}),": Joi validator"]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.a,{href:"https://www.npmjs.com/package/@iress/middy-http-path-router",children:"@iress/middy-http-path-router"}),": Routes AWS API Gateway events to handlers based on static and dynamic paths"]}),"\n"]}),"\n",(0,r.jsx)(i.h2,{id:"version-2x---3x",children:"Version 2.x - 3.x"}),"\n",(0,r.jsxs)(i.ul,{children:["\n",(0,r.jsxs)(i.li,{children:["\n",(0,r.jsxs)(i.p,{children:[(0,r.jsx)(i.a,{href:"https://github.com/awslabs/aws-lambda-powertools-typescript",children:"aws-lambda-powertools-typescript"}),": A suite of utilities for AWS Lambda Functions that makes structured logging, creating custom metrics asynchronously and tracing with AWS X-Ray easier"]}),"\n",(0,r.jsxs)(i.ul,{children:["\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.a,{href:"https://awslabs.github.io/aws-lambda-powertools-typescript/latest/core/logger/#capturing-lambda-context-info",children:"logger"}),": Structured logging made easier, and a middleware to enrich log items with key details of the Lambda context"]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.a,{href:"https://awslabs.github.io/aws-lambda-powertools-typescript/latest/core/metrics/#middy-middleware",children:"metrics"}),": Custom Metrics created asynchronously via CloudWatch Embedded Metric Format (EMF)"]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.a,{href:"https://awslabs.github.io/aws-lambda-powertools-typescript/latest/utilities/parameters/",children:"parameters"}),": The Parameters utility provides high-level functions to retrieve one or multiple parameter values from AWS Systems Manager Parameter Store, AWS Secrets Manager, AWS AppConfig, Amazon DynamoDB, or your own parameter store."]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.a,{href:"https://awslabs.github.io/aws-lambda-powertools-typescript/latest/core/tracer/#lambda-handler",children:"tracer"}),": Utilities to trace Lambda function handlers, and both synchronous and asynchronous functions"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(i.h2,{id:"version-1x",children:"Version 1.x"}),"\n",(0,r.jsxs)(i.ul,{children:["\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.a,{href:"https://www.npmjs.com/package/middy-redis",children:"middy-redis"}),": Redis connection middleware"]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.a,{href:"https://www.npmjs.com/package/middy-extractor",children:"middy-extractor"}),": Extracts data from events using expressions"]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.a,{href:"https://www.npmjs.com/package/@keboola/middy-error-logger",children:"@keboola/middy-error-logger"}),": middleware that catches thrown exceptions and rejected promises and logs them comprehensibly to the console"]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.a,{href:"https://www.npmjs.com/package/@keboola/middy-event-validator",children:"@keboola/middy-event-validator"}),": Joi powered event validation middleware"]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.a,{href:"https://www.npmjs.com/package/middy-reroute",children:"middy-reroute"}),": provides complex redirect, rewrite and proxying capabilities by simply placing a rules file into your S3 bucket"]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.a,{href:"https://www.npmjs.com/package/middytohof",children:"middytohof"}),": Convert Middy middleware plugins to higher-order functions returning lambda handlers"]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.a,{href:"https://www.npmjs.com/package/wrap-ware",children:"wrap-ware"}),": A middleware wrapper which works with promises / async"]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.a,{href:"https://www.npmjs.com/package/middy-middleware-warmup",children:"middy-middleware-warmup"}),": A middy plugin to help keep your Lambdas warm during Winter"]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.a,{href:"https://www.npmjs.com/package/@sharecover-co/middy-aws-xray-tracing",children:"@sharecover-co/middy-aws-xray-tracing"}),": AWS X-Ray Tracing Middleware"]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.a,{href:"https://www.npmjs.com/package/@sharecover-co/middy-http-response-serializer",children:"@sharecover-co/middy-http-response-serializer"}),": This middleware serializes the response to JSON and wraps it in a 200 HTTP response"]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.a,{href:"https://www.npmjs.com/package/@seedrs/middyjs-middleware",children:"@seedrs/middyjs-middleware"}),": Collection of useful middlewares"]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.a,{href:"https://www.npmjs.com/package/middy-autoproxyresponse",children:"middy-autoproxyresponse"}),": A middleware that lets you return simple JavaScript objects from Lambda function handlers and converts them into LAMBDA_PROXY responses"]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.a,{href:"https://www.npmjs.com/package/middy-middleware-jwt-auth",children:"jwt-auth"}),": JSON web token authorization middleware based on ",(0,r.jsx)(i.code,{children:"express-jwt"})]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.a,{href:"https://www.npmjs.com/package/middy-mongoose-connector",children:"middy-mongoose-connector"}),": MongoDB connection middleware for ",(0,r.jsx)(i.a,{href:"https://mongoosejs.com/",children:"mongoose.js"})]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.a,{href:"https://www.npmjs.com/package/@ematipico/middy-request-response",children:"@ematipico/middy-request-response"}),": a middleware that creates a pair of request/response objects"]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.a,{href:"https://www.npmjs.com/package/@marcosantonocito/middy-cognito-permission",children:"@marcosantonocito/middy-cognito-permission"}),": Authorization and roles permission management for the Middy framework that works with Amazon Cognito"]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.a,{href:"https://www.npmjs.com/package/middy-env",children:"middy-env"}),": Fetch, validate and type cast environment variables"]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.a,{href:"https://github.com/Eomm/sqs-json-body-parser",children:"sqs-json-body-parser"}),": Parse the SQS body to JSON"]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.a,{href:"https://www.npmjs.com/package/middy-lesslog/v/legacy",children:"middy-lesslog"}),": Middleware for ",(0,r.jsx)(i.code,{children:"lesslog"}),", a teeny-tiny and severless-ready logging utility"]}),"\n"]})]})}function h(e={}){const{wrapper:i}={...(0,t.a)(),...e.components};return i?(0,r.jsx)(i,{...e,children:(0,r.jsx)(c,{...e})}):c(e)}},1151:(e,i,s)=>{s.d(i,{Z:()=>d,a:()=>a});var r=s(7294);const t={},n=r.createContext(t);function a(e){const i=r.useContext(n);return r.useMemo((function(){return"function"==typeof e?e(i):{...i,...e}}),[i,e])}function d(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:a(e.components),r.createElement(n.Provider,{value:i},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/e1c77d88.474a5a04.js b/assets/js/e1c77d88.474a5a04.js new file mode 100644 index 000000000..a3df729e2 --- /dev/null +++ b/assets/js/e1c77d88.474a5a04.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[6388],{3571:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>c,frontMatter:()=>a,metadata:()=>s,toc:()=>d});var r=o(5893),n=o(1151);const a={title:"Apollo Server"},i=void 0,s={id:"integrations/apollo-server",title:"Apollo Server",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/integrations/apollo-server.md",sourceDirName:"integrations",slug:"/integrations/apollo-server",permalink:"/docs/integrations/apollo-server",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/integrations/apollo-server.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",frontMatter:{title:"Apollo Server"},sidebar:"tutorialSidebar",previous:{title:"AWS Relational Database Service (RDS)",permalink:"/docs/integrations/RDS"},next:{title:"Powertools for AWS Lambda",permalink:"/docs/integrations/lambda-powertools"}},l={},d=[];function p(e){const t={admonition:"admonition",code:"code",p:"p",pre:"pre",...(0,n.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.admonition,{type:"caution",children:(0,r.jsx)(t.p,{children:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub."})}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-javascript",children:"import middy from '@middy/core'\nimport { ApolloServer, gql } from 'apollo-server-lambda'\nimport { buildFederatedSchema } from '@apollo/federation'\nimport { resolvers } from './graphql/resolvers.js'\nimport { graphqlFileToStr } from './graphql/schema.js'\n\nconst graphQL = new ApolloServer({\n schema: buildFederatedSchema({\n typeDefs: gql(graphqlFileToStr),\n resolvers\n })\n})\n\n// Do not use: `@middy/http-json-body-parser` it is already handled within apollo\nexport const handler = middy().handler(graphQL.createHandler())\n"})})]})}function c(e={}){const{wrapper:t}={...(0,n.a)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(p,{...e})}):p(e)}},1151:(e,t,o)=>{o.d(t,{Z:()=>s,a:()=>i});var r=o(7294);const n={},a=r.createContext(n);function i(e){const t=r.useContext(a);return r.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:i(e.components),r.createElement(a.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/e1c77d88.b21dea5d.js b/assets/js/e1c77d88.b21dea5d.js deleted file mode 100644 index c91f07632..000000000 --- a/assets/js/e1c77d88.b21dea5d.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[6388],{3905:(e,r,t)=>{t.d(r,{Zo:()=>c,kt:()=>f});var n=t(7294);function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function a(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function i(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?a(Object(t),!0).forEach((function(r){o(e,r,t[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):a(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}))}return e}function l(e,r){if(null==e)return{};var t,n,o=function(e,r){if(null==e)return{};var t,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)t=a[n],r.indexOf(t)>=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)t=a[n],r.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var s=n.createContext({}),p=function(e){var r=n.useContext(s),t=r;return e&&(t="function"==typeof e?e(r):i(i({},r),e)),t},c=function(e){var r=p(e.components);return n.createElement(s.Provider,{value:r},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},u=n.forwardRef((function(e,r){var t=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),d=p(t),u=o,f=d["".concat(s,".").concat(u)]||d[u]||m[u]||a;return t?n.createElement(f,i(i({ref:r},c),{},{components:t})):n.createElement(f,i({ref:r},c))}));function f(e,r){var t=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var a=t.length,i=new Array(a);i[0]=u;var l={};for(var s in r)hasOwnProperty.call(r,s)&&(l[s]=r[s]);l.originalType=e,l[d]="string"==typeof e?e:o,i[1]=l;for(var p=2;p<a;p++)i[p]=t[p];return n.createElement.apply(null,i)}return n.createElement.apply(null,t)}u.displayName="MDXCreateElement"},3009:(e,r,t)=>{t.r(r),t.d(r,{assets:()=>s,contentTitle:()=>i,default:()=>m,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var n=t(7462),o=(t(7294),t(3905));const a={title:"Apollo Server"},i=void 0,l={unversionedId:"integrations/apollo-server",id:"integrations/apollo-server",title:"Apollo Server",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/integrations/apollo-server.md",sourceDirName:"integrations",slug:"/integrations/apollo-server",permalink:"/docs/integrations/apollo-server",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/integrations/apollo-server.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",frontMatter:{title:"Apollo Server"},sidebar:"tutorialSidebar",previous:{title:"AWS Relational Database Service (RDS)",permalink:"/docs/integrations/RDS"},next:{title:"Powertools for AWS Lambda",permalink:"/docs/integrations/lambda-powertools"}},s={},p=[],c={toc:p},d="wrapper";function m(e){let{components:r,...t}=e;return(0,o.kt)(d,(0,n.Z)({},c,t,{components:r,mdxType:"MDXLayout"}),(0,o.kt)("admonition",{type:"caution"},(0,o.kt)("p",{parentName:"admonition"},"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.")),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\nimport { ApolloServer, gql } from 'apollo-server-lambda'\nimport { buildFederatedSchema } from '@apollo/federation'\nimport { resolvers } from './graphql/resolvers.js'\nimport { graphqlFileToStr } from './graphql/schema.js'\n\nconst graphQL = new ApolloServer({\n schema: buildFederatedSchema({\n typeDefs: gql(graphqlFileToStr),\n resolvers\n })\n})\n\n// Do not use: `@middy/http-json-body-parser` it is already handled within apollo\nexport const handler = middy(graphQL.createHandler())\n")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ea2a30f2.99e73e03.js b/assets/js/ea2a30f2.99e73e03.js new file mode 100644 index 000000000..46b2b0884 --- /dev/null +++ b/assets/js/ea2a30f2.99e73e03.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[527],{6831:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>r,default:()=>h,frontMatter:()=>o,metadata:()=>a,toc:()=>l});var i=n(5893),s=n(1151);const o={title:"Testing",position:5},r=void 0,a={id:"intro/testing",title:"Testing",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/intro/06-testing.md",sourceDirName:"intro",slug:"/intro/testing",permalink:"/docs/intro/testing",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/intro/06-testing.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",sidebarPosition:6,frontMatter:{title:"Testing",position:5},sidebar:"tutorialSidebar",previous:{title:"Streamify Response",permalink:"/docs/intro/streamify-response"},next:{title:"Use with TypeScript",permalink:"/docs/intro/typescript"}},d={},l=[];function c(e){const t={admonition:"admonition",code:"code",li:"li",ol:"ol",p:"p",pre:"pre",...(0,s.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.admonition,{type:"caution",children:(0,i.jsx)(t.p,{children:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub."})}),"\n",(0,i.jsx)(t.p,{children:"As of Middy v3, by default it will trigger an Abort signal shortly before a lambda times out to allow your handler to safely stop up and middleware to clean before the lambda terminates.\nWhen writing tests for lambda handlers wrapped with middy you'll need to account for this. There are a few approaches:"}),"\n",(0,i.jsxs)(t.ol,{children:["\n",(0,i.jsxs)(t.li,{children:["Set ",(0,i.jsx)(t.code,{children:"middy(handler, { timeoutEarlyInMillis: 0 })"})," to alternatively disable the creation of the AbortController."]}),"\n",(0,i.jsxs)(t.li,{children:["Set ",(0,i.jsx)(t.code,{children:"middy(handler, { timeoutEarlyResponse: () => {} })"})," to disable the timeout error from being thrown using a no-op."]}),"\n",(0,i.jsxs)(t.li,{children:["Set ",(0,i.jsx)(t.code,{children:"context.getRemainingTimeInMillis = falsy"})," to disable the creation of the AbortController."]}),"\n"]}),"\n",(0,i.jsxs)(t.p,{children:["When using Middy ",(0,i.jsx)(t.code,{children:"cache"})," and ",(0,i.jsx)(t.code,{children:"cacheExpiry"})," in unit tests for functions in your code, it is important to conditionally disable them for test cases by setting both Middy ",(0,i.jsx)(t.code,{children:"options"})," fields as follows:"]}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{children:"{\n cache: false,\n cacheExpiry: 0,\n ...\n}\n"})}),"\n",(0,i.jsx)(t.p,{children:"Failing to do so may make the tests end with unfinished worker processes. Although they may still succeed, this can cause issues and timeout errors, namely in CI/CD environments."}),"\n",(0,i.jsx)(t.p,{children:"An example of a message generated by Jest unit tests and which signals the need for this is as follows:"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{children:"A worker process has failed to exit gracefully and has been force exited. This is likely caused by tests leaking due to improper teardown. Try running with --detectOpenHandles to find leaks. Active timers can also cause this, ensure that .unref() was called on them.\n"})})]})}function h(e={}){const{wrapper:t}={...(0,s.a)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>a,a:()=>r});var i=n(7294);const s={},o=i.createContext(s);function r(e){const t=i.useContext(o);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),i.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/ea2a30f2.a26dfc1f.js b/assets/js/ea2a30f2.a26dfc1f.js deleted file mode 100644 index 9c6d8b680..000000000 --- a/assets/js/ea2a30f2.a26dfc1f.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[527],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var r=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){i(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,r,i=function(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var l=r.createContext({}),p=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},c=function(e){var t=p(e.components);return r.createElement(l.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,i=e.mdxType,o=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),d=p(n),m=i,f=d["".concat(l,".").concat(m)]||d[m]||u[m]||o;return n?r.createElement(f,a(a({ref:t},c),{},{components:n})):r.createElement(f,a({ref:t},c))}));function f(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var o=n.length,a=new Array(o);a[0]=m;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[d]="string"==typeof e?e:i,a[1]=s;for(var p=2;p<o;p++)a[p]=n[p];return r.createElement.apply(null,a)}return r.createElement.apply(null,n)}m.displayName="MDXCreateElement"},5186:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>u,frontMatter:()=>o,metadata:()=>s,toc:()=>p});var r=n(7462),i=(n(7294),n(3905));const o={title:"Testing",position:5},a=void 0,s={unversionedId:"intro/testing",id:"intro/testing",title:"Testing",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/intro/06-testing.md",sourceDirName:"intro",slug:"/intro/testing",permalink:"/docs/intro/testing",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/intro/06-testing.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",sidebarPosition:6,frontMatter:{title:"Testing",position:5},sidebar:"tutorialSidebar",previous:{title:"Streamify Response",permalink:"/docs/intro/streamify-response"},next:{title:"Use with TypeScript",permalink:"/docs/intro/typescript"}},l={},p=[],c={toc:p},d="wrapper";function u(e){let{components:t,...n}=e;return(0,i.kt)(d,(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("admonition",{type:"caution"},(0,i.kt)("p",{parentName:"admonition"},"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.")),(0,i.kt)("p",null,"As of Middy v3, by default it will trigger an Abort signal shortly before a lambda times out to allow your handler to safely stop up and middleware to clean before the lambda terminates.\nWhen writing tests for lambda handlers wrapped with middy you'll need to account for this. There are a few approaches:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Set ",(0,i.kt)("inlineCode",{parentName:"li"},"middy(handler, { timeoutEarlyInMillis: 0 })")," to alternatively disable the creation of the AbortController."),(0,i.kt)("li",{parentName:"ol"},"Set ",(0,i.kt)("inlineCode",{parentName:"li"},"middy(handler, { timeoutEarlyResponse: () => {} })")," to disable the timeout error from being thrown using a no-op."),(0,i.kt)("li",{parentName:"ol"},"Set ",(0,i.kt)("inlineCode",{parentName:"li"},"context.getRemainingTimeInMillis = falsy")," to disable the creation of the AbortController.")),(0,i.kt)("p",null,"When using Middy ",(0,i.kt)("inlineCode",{parentName:"p"},"cache")," and ",(0,i.kt)("inlineCode",{parentName:"p"},"cacheExpiry")," in unit tests for functions in your code, it is important to conditionally disable them for test cases by setting both Middy ",(0,i.kt)("inlineCode",{parentName:"p"},"options")," fields as follows:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre"},"{\n cache: false,\n cacheExpiry: 0,\n ...\n}\n")),(0,i.kt)("p",null,"Failing to do so may make the tests end with unfinished worker processes. Although they may still succeed, this can cause issues and timeout errors, namely in CI/CD environments."),(0,i.kt)("p",null,"An example of a message generated by Jest unit tests and which signals the need for this is as follows:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre"},"A worker process has failed to exit gracefully and has been force exited. This is likely caused by tests leaking due to improper teardown. Try running with --detectOpenHandles to find leaks. Active timers can also cause this, ensure that .unref() was called on them.\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ec96ff11.563bae6b.js b/assets/js/ec96ff11.563bae6b.js new file mode 100644 index 000000000..cf249a6c1 --- /dev/null +++ b/assets/js/ec96ff11.563bae6b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[7276],{1415:(t,e,i)=>{i.r(e),i.d(e,{assets:()=>c,contentTitle:()=>r,default:()=>l,frontMatter:()=>s,metadata:()=>a,toc:()=>d});var n=i(5893),o=i(1151);const s={title:"Utilities"},r=void 0,a={id:"intro/utilities",title:"Utilities",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/intro/08-utilities.md",sourceDirName:"intro",slug:"/intro/utilities",permalink:"/docs/intro/utilities",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/intro/08-utilities.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",sidebarPosition:8,frontMatter:{title:"Utilities"},sidebar:"tutorialSidebar",previous:{title:"Influence",permalink:"/docs/intro/influence"},next:{title:"Release Cycle",permalink:"/docs/intro/release-cycle"}},c={},d=[];function u(t){const e={admonition:"admonition",p:"p",...(0,o.a)(),...t.components};return(0,n.jsx)(e.admonition,{type:"caution",children:(0,n.jsx)(e.p,{children:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub."})})}function l(t={}){const{wrapper:e}={...(0,o.a)(),...t.components};return e?(0,n.jsx)(e,{...t,children:(0,n.jsx)(u,{...t})}):u(t)}},1151:(t,e,i)=>{i.d(e,{Z:()=>a,a:()=>r});var n=i(7294);const o={},s=n.createContext(o);function r(t){const e=n.useContext(s);return n.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function a(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(o):t.components||o:r(t.components),n.createElement(s.Provider,{value:e},t.children)}}}]); \ No newline at end of file diff --git a/assets/js/ec96ff11.a57baaba.js b/assets/js/ec96ff11.a57baaba.js deleted file mode 100644 index fd14e7157..000000000 --- a/assets/js/ec96ff11.a57baaba.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[7276],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>m});var n=r(7294);function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){i(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function c(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r,n,i={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var s=n.createContext({}),l=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},p=function(e){var t=l(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,i=e.mdxType,o=e.originalType,s=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),u=l(r),f=i,m=u["".concat(s,".").concat(f)]||u[f]||d[f]||o;return r?n.createElement(m,a(a({ref:t},p),{},{components:r})):n.createElement(m,a({ref:t},p))}));function m(e,t){var r=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var o=r.length,a=new Array(o);a[0]=f;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[u]="string"==typeof e?e:i,a[1]=c;for(var l=2;l<o;l++)a[l]=r[l];return n.createElement.apply(null,a)}return n.createElement.apply(null,r)}f.displayName="MDXCreateElement"},8849:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>a,default:()=>d,frontMatter:()=>o,metadata:()=>c,toc:()=>l});var n=r(7462),i=(r(7294),r(3905));const o={title:"Utilities"},a=void 0,c={unversionedId:"intro/utilities",id:"intro/utilities",title:"Utilities",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/intro/08-utilities.md",sourceDirName:"intro",slug:"/intro/utilities",permalink:"/docs/intro/utilities",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/intro/08-utilities.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",sidebarPosition:8,frontMatter:{title:"Utilities"},sidebar:"tutorialSidebar",previous:{title:"Influence",permalink:"/docs/intro/influence"},next:{title:"Release Cycle",permalink:"/docs/intro/release-cycle"}},s={},l=[],p={toc:l},u="wrapper";function d(e){let{components:t,...r}=e;return(0,i.kt)(u,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("admonition",{type:"caution"},(0,i.kt)("p",{parentName:"admonition"},"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ecbeea21.4b05f2ec.js b/assets/js/ecbeea21.4b05f2ec.js deleted file mode 100644 index dfd0df3f5..000000000 --- a/assets/js/ecbeea21.4b05f2ec.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[9310],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>h});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var d=r.createContext({}),l=function(e){var t=r.useContext(d),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},p=function(e){var t=l(e.components);return r.createElement(d.Provider,{value:t},e.children)},m="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,d=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),m=l(n),u=a,h=m["".concat(d,".").concat(u)]||m[u]||c[u]||i;return n?r.createElement(h,o(o({ref:t},p),{},{components:n})):r.createElement(h,o({ref:t},p))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,o=new Array(i);o[0]=u;var s={};for(var d in t)hasOwnProperty.call(t,d)&&(s[d]=t[d]);s.originalType=e,s[m]="string"==typeof e?e:a,o[1]=s;for(var l=2;l<i;l++)o[l]=n[l];return r.createElement.apply(null,o)}return r.createElement.apply(null,n)}u.displayName="MDXCreateElement"},5262:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>o,default:()=>c,frontMatter:()=>i,metadata:()=>s,toc:()=>l});var r=n(7462),a=(n(7294),n(3905));const i={sidebar_position:1,title:"Introduction",slug:"/"},o=void 0,s={unversionedId:"intro/intro",id:"intro/intro",title:"Introduction",description:"What is middy",source:"@site/docs/intro/01-intro.md",sourceDirName:"intro",slug:"/",permalink:"/docs/",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/intro/01-intro.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Introduction",slug:"/"},sidebar:"tutorialSidebar",previous:{title:"Intro to Middy",permalink:"/docs/category/intro-to-middy"},next:{title:"Getting started",permalink:"/docs/intro/getting-started"}},d={},l=[{value:"What is middy",id:"what-is-middy",level:2},{value:"A quick example",id:"a-quick-example",level:2},{value:"Why?",id:"why",level:2}],p={toc:l},m="wrapper";function c(e){let{components:t,...n}=e;return(0,a.kt)(m,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"what-is-middy"},"What is middy"),(0,a.kt)("p",null,"Middy is a very simple ",(0,a.kt)("strong",{parentName:"p"},"middleware engine")," that allows you to simplify your ",(0,a.kt)("strong",{parentName:"p"},"AWS Lambda")," code when using ",(0,a.kt)("strong",{parentName:"p"},"Node.js"),"."),(0,a.kt)("p",null,"If you have used web frameworks like Express, then you will be familiar with the concepts adopted in Middy and you will be able to get started very quickly."),(0,a.kt)("p",null,"A middleware engine allows you to focus on the strict business logic of your Lambda and then attach additional common elements like authentication, authorization, validation, serialization, etc. in a modular and reusable way by decorating the main business logic."),(0,a.kt)("h2",{id:"a-quick-example"},"A quick example"),(0,a.kt)("p",null,"Code is better than 10,000 words, so let's jump into an example."),(0,a.kt)("p",null,"Let's assume you are building a JSON API to process a payment:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-javascript",metastring:'title="handler.js"',title:'"handler.js"'},"// import core\nimport middy from '@middy/core' // esm Node v14+\n//const middy = require('@middy/core') // commonjs Node v12+\n\n// import some middlewares\nimport jsonBodyParser from '@middy/http-json-body-parser'\nimport httpErrorHandler from '@middy/http-error-handler'\nimport validator from '@middy/validator'\nimport { transpileSchema } from '@middy/validator/transpile'\n\n// This is your common handler, in no way different than what you are used to doing every day in AWS Lambda\nconst lambdaHandler = async (event, context) => {\n // we don't need to deserialize the body ourself as a middleware will be used to do that\n const { creditCardNumber, expiryMonth, expiryYear, cvc, nameOnCard, amount } =\n event.body\n\n // do stuff with this data\n // ...\n\n const response = { result: 'success', message: 'payment processed correctly' }\n return { statusCode: 200, body: JSON.stringify(response) }\n}\n\n// Notice that in the handler you only added base business logic (no deserialization,\n// validation or error handler), we will add the rest with middlewares\n\nconst schema = {\n type: 'object',\n properties: {\n body: {\n type: 'object',\n properties: {\n creditCardNumber: {\n type: 'string',\n minLength: 12,\n maxLength: 19,\n pattern: '\\\\d+'\n },\n expiryMonth: { type: 'integer', minimum: 1, maximum: 12 },\n expiryYear: { type: 'integer', minimum: 2017, maximum: 2027 },\n cvc: { type: 'string', minLength: 3, maxLength: 4, pattern: '\\\\d+' },\n nameOnCard: { type: 'string' },\n amount: { type: 'number' }\n },\n required: ['creditCardNumber'] // Insert here all required event properties\n }\n }\n}\n\n// Let's \"middyfy\" our handler, then we will be able to attach middlewares to it\nconst handler = middy()\n .use(jsonBodyParser()) // parses the request body when it's a JSON and converts it to an object\n .use(validator({ eventSchema: transpileSchema(schema) })) // validates the input\n .use(httpErrorHandler()) // handles common http errors and returns proper responses\n .handler(lambdaHandler)\n")),(0,a.kt)("h2",{id:"why"},"Why?"),(0,a.kt)("p",null,"One of the main strengths of serverless and AWS Lambda is that, from a developer\nperspective, your focus is mostly shifted toward implementing business logic."),(0,a.kt)("p",null,"Anyway, when you are writing a handler, you still have to deal with some common technical concerns\noutside business logic, like input parsing and validation, output serialization,\nerror handling, etc."),(0,a.kt)("p",null,"Very often, all this necessary code ends up polluting the pure business logic code in\nyour handlers, making the code harder to read and to maintain."),(0,a.kt)("p",null,"In other contexts, like generic web frameworks (",(0,a.kt)("a",{parentName:"p",href:"http://fastify.io"},"fastify"),", ",(0,a.kt)("a",{parentName:"p",href:"https://hapijs.com/"},"hapi"),", ",(0,a.kt)("a",{parentName:"p",href:"http://expressjs.com/"},"express"),", etc.), this\nproblem has been solved using the ",(0,a.kt)("a",{parentName:"p",href:"https://www.packtpub.com/mapt/book/web_development/9781783287314/4/ch04lvl1sec33/middleware"},"middleware pattern"),"."),(0,a.kt)("p",null,"This pattern allows developers to isolate these common technical concerns into\n",(0,a.kt)("em",{parentName:"p"},'"steps"')," that ",(0,a.kt)("em",{parentName:"p"},"decorate")," the main business logic code.\nMiddleware functions are generally written as independent modules and then plugged into\nthe application in a configuration step, thus not polluting the main business logic\ncode that remains clean, readable, and easy to maintain."),(0,a.kt)("p",null,"Since we couldn't find a similar approach for AWS Lambda handlers, we decided\nto create middy, our own middleware framework for serverless in AWS land."))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ecbeea21.66be3876.js b/assets/js/ecbeea21.66be3876.js new file mode 100644 index 000000000..a1516f6fb --- /dev/null +++ b/assets/js/ecbeea21.66be3876.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[9310],{6432:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>a,default:()=>m,frontMatter:()=>o,metadata:()=>s,toc:()=>l});var i=t(5893),r=t(1151);const o={sidebar_position:1,title:"Introduction",slug:"/"},a=void 0,s={id:"intro/intro",title:"Introduction",description:"What is middy",source:"@site/docs/intro/01-intro.md",sourceDirName:"intro",slug:"/",permalink:"/docs/",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/intro/01-intro.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Introduction",slug:"/"},sidebar:"tutorialSidebar",previous:{title:"Intro to Middy",permalink:"/docs/category/intro-to-middy"},next:{title:"Getting started",permalink:"/docs/intro/getting-started"}},d={},l=[{value:"What is middy",id:"what-is-middy",level:2},{value:"A quick example",id:"a-quick-example",level:2},{value:"Why?",id:"why",level:2}];function c(e){const n={a:"a",code:"code",em:"em",h2:"h2",p:"p",pre:"pre",strong:"strong",...(0,r.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h2,{id:"what-is-middy",children:"What is middy"}),"\n",(0,i.jsxs)(n.p,{children:["Middy is a very simple ",(0,i.jsx)(n.strong,{children:"middleware engine"})," that allows you to simplify your ",(0,i.jsx)(n.strong,{children:"AWS Lambda"})," code when using ",(0,i.jsx)(n.strong,{children:"Node.js"}),"."]}),"\n",(0,i.jsx)(n.p,{children:"If you have used web frameworks like Express, then you will be familiar with the concepts adopted in Middy and you will be able to get started very quickly."}),"\n",(0,i.jsx)(n.p,{children:"A middleware engine allows you to focus on the strict business logic of your Lambda and then attach additional common elements like authentication, authorization, validation, serialization, etc. in a modular and reusable way by decorating the main business logic."}),"\n",(0,i.jsx)(n.h2,{id:"a-quick-example",children:"A quick example"}),"\n",(0,i.jsx)(n.p,{children:"Code is better than 10,000 words, so let's jump into an example."}),"\n",(0,i.jsx)(n.p,{children:"Let's assume you are building a JSON API to process a payment:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-javascript",metastring:'title="handler.js"',children:"// import core\nimport middy from '@middy/core' // esm Node v14+\n//const middy = require('@middy/core') // commonjs Node v12+\n\n// import some middlewares\nimport jsonBodyParser from '@middy/http-json-body-parser'\nimport httpErrorHandler from '@middy/http-error-handler'\nimport validator from '@middy/validator'\nimport { transpileSchema } from '@middy/validator/transpile'\n\n// This is your common handler, in no way different than what you are used to doing every day in AWS Lambda\nconst lambdaHandler = async (event, context) => {\n // we don't need to deserialize the body ourself as a middleware will be used to do that\n const { creditCardNumber, expiryMonth, expiryYear, cvc, nameOnCard, amount } =\n event.body\n\n // do stuff with this data\n // ...\n\n const response = { result: 'success', message: 'payment processed correctly' }\n return { statusCode: 200, body: JSON.stringify(response) }\n}\n\n// Notice that in the handler you only added base business logic (no deserialization,\n// validation or error handler), we will add the rest with middlewares\n\nconst schema = {\n type: 'object',\n properties: {\n body: {\n type: 'object',\n properties: {\n creditCardNumber: {\n type: 'string',\n minLength: 12,\n maxLength: 19,\n pattern: '\\\\d+'\n },\n expiryMonth: { type: 'integer', minimum: 1, maximum: 12 },\n expiryYear: { type: 'integer', minimum: 2017, maximum: 2027 },\n cvc: { type: 'string', minLength: 3, maxLength: 4, pattern: '\\\\d+' },\n nameOnCard: { type: 'string' },\n amount: { type: 'number' }\n },\n required: ['creditCardNumber'] // Insert here all required event properties\n }\n }\n}\n\n// Let's \"middyfy\" our handler, then we will be able to attach middlewares to it\nexport const handler = middy()\n .use(jsonBodyParser()) // parses the request body when it's a JSON and converts it to an object\n .use(validator({ eventSchema: transpileSchema(schema) })) // validates the input\n .use(httpErrorHandler()) // handles common http errors and returns proper responses\n .handler(lambdaHandler)\n"})}),"\n",(0,i.jsx)(n.h2,{id:"why",children:"Why?"}),"\n",(0,i.jsx)(n.p,{children:"One of the main strengths of serverless and AWS Lambda is that, from a developer\nperspective, your focus is mostly shifted toward implementing business logic."}),"\n",(0,i.jsx)(n.p,{children:"Anyway, when you are writing a handler, you still have to deal with some common technical concerns\noutside business logic, like input parsing and validation, output serialization,\nerror handling, etc."}),"\n",(0,i.jsx)(n.p,{children:"Very often, all this necessary code ends up polluting the pure business logic code in\nyour handlers, making the code harder to read and to maintain."}),"\n",(0,i.jsxs)(n.p,{children:["In other contexts, like generic web frameworks (",(0,i.jsx)(n.a,{href:"http://fastify.io",children:"fastify"}),", ",(0,i.jsx)(n.a,{href:"https://hapijs.com/",children:"hapi"}),", ",(0,i.jsx)(n.a,{href:"http://expressjs.com/",children:"express"}),", etc.), this\nproblem has been solved using the ",(0,i.jsx)(n.a,{href:"https://www.packtpub.com/mapt/book/web_development/9781783287314/4/ch04lvl1sec33/middleware",children:"middleware pattern"}),"."]}),"\n",(0,i.jsxs)(n.p,{children:["This pattern allows developers to isolate these common technical concerns into\n",(0,i.jsx)(n.em,{children:'"steps"'})," that ",(0,i.jsx)(n.em,{children:"decorate"})," the main business logic code.\nMiddleware functions are generally written as independent modules and then plugged into\nthe application in a configuration step, thus not polluting the main business logic\ncode that remains clean, readable, and easy to maintain."]}),"\n",(0,i.jsx)(n.p,{children:"Since we couldn't find a similar approach for AWS Lambda handlers, we decided\nto create middy, our own middleware framework for serverless in AWS land."})]})}function m(e={}){const{wrapper:n}={...(0,r.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},1151:(e,n,t)=>{t.d(n,{Z:()=>s,a:()=>a});var i=t(7294);const r={},o=i.createContext(r);function a(e){const n=i.useContext(o);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function s(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:a(e.components),i.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/f0136a98.691c2e87.js b/assets/js/f0136a98.691c2e87.js deleted file mode 100644 index c22da664b..000000000 --- a/assets/js/f0136a98.691c2e87.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[1575],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>f});var a=r(7294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?l(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):l(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function i(e,t){if(null==e)return{};var r,a,n=function(e,t){if(null==e)return{};var r,a,n={},l=Object.keys(e);for(a=0;a<l.length;a++)r=l[a],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a<l.length;a++)r=l[a],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var u=a.createContext({}),s=function(e){var t=a.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},p=function(e){var t=s(e.components);return a.createElement(u.Provider,{value:t},e.children)},d="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,l=e.originalType,u=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),d=s(r),m=n,f=d["".concat(u,".").concat(m)]||d[m]||c[m]||l;return r?a.createElement(f,o(o({ref:t},p),{},{components:r})):a.createElement(f,o({ref:t},p))}));function f(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=r.length,o=new Array(l);o[0]=m;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[d]="string"==typeof e?e:n,o[1]=i;for(var s=2;s<l;s++)o[s]=r[s];return a.createElement.apply(null,o)}return a.createElement.apply(null,r)}m.displayName="MDXCreateElement"},5162:(e,t,r)=>{r.d(t,{Z:()=>o});var a=r(7294),n=r(6010);const l={tabItem:"tabItem_Ymn6"};function o(e){let{children:t,hidden:r,className:o}=e;return a.createElement("div",{role:"tabpanel",className:(0,n.Z)(l.tabItem,o),hidden:r},t)}},4866:(e,t,r)=>{r.d(t,{Z:()=>w});var a=r(7462),n=r(7294),l=r(6010),o=r(2466),i=r(6550),u=r(1980),s=r(7392),p=r(12);function d(e){return function(e){return n.Children.map(e,(e=>{if(!e||(0,n.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:r,attributes:a,default:n}}=e;return{value:t,label:r,attributes:a,default:n}}))}function c(e){const{values:t,children:r}=e;return(0,n.useMemo)((()=>{const e=t??d(r);return function(e){const t=(0,s.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,r])}function m(e){let{value:t,tabValues:r}=e;return r.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:r}=e;const a=(0,i.k6)(),l=function(e){let{queryString:t=!1,groupId:r}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!r)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return r??null}({queryString:t,groupId:r});return[(0,u._X)(l),(0,n.useCallback)((e=>{if(!l)return;const t=new URLSearchParams(a.location.search);t.set(l,e),a.replace({...a.location,search:t.toString()})}),[l,a])]}function h(e){const{defaultValue:t,queryString:r=!1,groupId:a}=e,l=c(e),[o,i]=(0,n.useState)((()=>function(e){let{defaultValue:t,tabValues:r}=e;if(0===r.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!m({value:t,tabValues:r}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${r.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const a=r.find((e=>e.default))??r[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:t,tabValues:l}))),[u,s]=f({queryString:r,groupId:a}),[d,h]=function(e){let{groupId:t}=e;const r=function(e){return e?`docusaurus.tab.${e}`:null}(t),[a,l]=(0,p.Nk)(r);return[a,(0,n.useCallback)((e=>{r&&l.set(e)}),[r,l])]}({groupId:a}),b=(()=>{const e=u??d;return m({value:e,tabValues:l})?e:null})();(0,n.useLayoutEffect)((()=>{b&&i(b)}),[b]);return{selectedValue:o,selectValue:(0,n.useCallback)((e=>{if(!m({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);i(e),s(e),h(e)}),[s,h,l]),tabValues:l}}var b=r(2389);const y={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};function v(e){let{className:t,block:r,selectedValue:i,selectValue:u,tabValues:s}=e;const p=[],{blockElementScrollPositionUntilNextRender:d}=(0,o.o5)(),c=e=>{const t=e.currentTarget,r=p.indexOf(t),a=s[r].value;a!==i&&(d(t),u(a))},m=e=>{let t=null;switch(e.key){case"Enter":c(e);break;case"ArrowRight":{const r=p.indexOf(e.currentTarget)+1;t=p[r]??p[0];break}case"ArrowLeft":{const r=p.indexOf(e.currentTarget)-1;t=p[r]??p[p.length-1];break}}t?.focus()};return n.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":r},t)},s.map((e=>{let{value:t,label:r,attributes:o}=e;return n.createElement("li",(0,a.Z)({role:"tab",tabIndex:i===t?0:-1,"aria-selected":i===t,key:t,ref:e=>p.push(e),onKeyDown:m,onClick:c},o,{className:(0,l.Z)("tabs__item",y.tabItem,o?.className,{"tabs__item--active":i===t})}),r??t)})))}function g(e){let{lazy:t,children:r,selectedValue:a}=e;const l=(Array.isArray(r)?r:[r]).filter(Boolean);if(t){const e=l.find((e=>e.props.value===a));return e?(0,n.cloneElement)(e,{className:"margin-top--md"}):null}return n.createElement("div",{className:"margin-top--md"},l.map(((e,t)=>(0,n.cloneElement)(e,{key:t,hidden:e.props.value!==a}))))}function k(e){const t=h(e);return n.createElement("div",{className:(0,l.Z)("tabs-container",y.tabList)},n.createElement(v,(0,a.Z)({},e,t)),n.createElement(g,(0,a.Z)({},e,t)))}function w(e){const t=(0,b.Z)();return n.createElement(k,(0,a.Z)({key:String(t)},e))}},1144:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>u,default:()=>f,frontMatter:()=>i,metadata:()=>s,toc:()=>d});var a=r(7462),n=(r(7294),r(3905)),l=r(4866),o=r(5162);const i={title:"http-event-normalizer"},u=void 0,s={unversionedId:"middlewares/http-event-normalizer",id:"middlewares/http-event-normalizer",title:"http-event-normalizer",description:"If you need to access the query string or path parameters in an API Gateway event you",source:"@site/docs/middlewares/http-event-normalizer.md",sourceDirName:"middlewares",slug:"/middlewares/http-event-normalizer",permalink:"/docs/middlewares/http-event-normalizer",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/middlewares/http-event-normalizer.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",frontMatter:{title:"http-event-normalizer"},sidebar:"tutorialSidebar",previous:{title:"http-error-handler",permalink:"/docs/middlewares/http-error-handler"},next:{title:"http-header-normalizer",permalink:"/docs/middlewares/http-header-normalizer"}},p={},d=[{value:"Install",id:"install",level:2},{value:"Sample usage",id:"sample-usage",level:2}],c={toc:d},m="wrapper";function f(e){let{components:t,...r}=e;return(0,n.kt)(m,(0,a.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"If you need to access the query string or path parameters in an API Gateway event you\ncan do so by reading the attributes in ",(0,n.kt)("inlineCode",{parentName:"p"},"event.queryStringParameters"),", ",(0,n.kt)("inlineCode",{parentName:"p"},"event.multiValueQueryStringParameters")," and\n",(0,n.kt)("inlineCode",{parentName:"p"},"event.pathParameters"),", for example: ",(0,n.kt)("inlineCode",{parentName:"p"},"event.pathParameters.userId"),". Unfortunately\nif there are no parameters for these parameter holders, the relevant key ",(0,n.kt)("inlineCode",{parentName:"p"},"queryStringParameters"),", ",(0,n.kt)("inlineCode",{parentName:"p"},"multiValueQueryStringParameters")," or ",(0,n.kt)("inlineCode",{parentName:"p"},"pathParameters")," won't be available in the object, causing an expression like ",(0,n.kt)("inlineCode",{parentName:"p"},"event.pathParameters.userId"),"\nto fail with the error: ",(0,n.kt)("inlineCode",{parentName:"p"},"TypeError: Cannot read property 'userId' of undefined"),"."),(0,n.kt)("p",null,"A simple solution would be to add an ",(0,n.kt)("inlineCode",{parentName:"p"},"if")," statement to verify if the ",(0,n.kt)("inlineCode",{parentName:"p"},"pathParameters")," (or ",(0,n.kt)("inlineCode",{parentName:"p"},"queryStringParameters"),"/",(0,n.kt)("inlineCode",{parentName:"p"},"multiValueQueryStringParameters"),")\nexists before accessing one of its parameters, but this approach is very verbose and error prone."),(0,n.kt)("p",null,"This middleware normalizes the API Gateway, ALB, Function URLs, and VPC Lattice events, making sure that an object for ",(0,n.kt)("inlineCode",{parentName:"p"},"queryStringParameters"),", ",(0,n.kt)("inlineCode",{parentName:"p"},"multiValueQueryStringParameters"),", ",(0,n.kt)("inlineCode",{parentName:"p"},"pathParameters"),", and ",(0,n.kt)("inlineCode",{parentName:"p"},"isBase64Encoded")," is always available (resulting in empty objects when no parameter is available), this way you don't have to worry about adding extra ",(0,n.kt)("inlineCode",{parentName:"p"},"if")," statements before trying to read a property and calling ",(0,n.kt)("inlineCode",{parentName:"p"},"event.pathParameters.userId")," will result in ",(0,n.kt)("inlineCode",{parentName:"p"},"undefined")," when no path parameter is available, but not in an error."),(0,n.kt)("blockquote",null,(0,n.kt)("p",{parentName:"blockquote"},"Important note : API Gateway HTTP API format 2.0 doesn't have ",(0,n.kt)("inlineCode",{parentName:"p"},"multiValueQueryStringParameters")," fields. Duplicate query strings are combined with commas and included in the ",(0,n.kt)("inlineCode",{parentName:"p"},"queryStringParameters")," field.")),(0,n.kt)("h2",{id:"install"},"Install"),(0,n.kt)("p",null,"To install this middleware you can use NPM:"),(0,n.kt)(l.Z,{groupId:"npm2yarn",mdxType:"Tabs"},(0,n.kt)(o.Z,{value:"npm",mdxType:"TabItem"},(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-bash"},"npm install --save @middy/http-event-normalizer\n"))),(0,n.kt)(o.Z,{value:"yarn",label:"Yarn",mdxType:"TabItem"},(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-bash"},"yarn add @middy/http-event-normalizer\n"))),(0,n.kt)(o.Z,{value:"pnpm",label:"pnpm",mdxType:"TabItem"},(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-bash"},"pnpm add @middy/http-event-normalizer\n")))),(0,n.kt)("h2",{id:"sample-usage"},"Sample usage"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\nimport httpEventNormalizer from '@middy/http-event-normalizer'\n\nconst handler = middy((event, context) => {\n console.log(`Hello user ${event.pathParameters.userId}`)\n // might produce `Hello user undefined`, but not an error\n\n return {}\n})\n\nhandler.use(httpEventNormalizer())\n")))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f0136a98.e82a8d57.js b/assets/js/f0136a98.e82a8d57.js new file mode 100644 index 000000000..efae41e5c --- /dev/null +++ b/assets/js/f0136a98.e82a8d57.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[1575],{3584:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>d,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>u,toc:()=>c});var n=r(5893),a=r(1151),s=r(4866),l=r(5162);const o={title:"http-event-normalizer"},i=void 0,u={id:"middlewares/http-event-normalizer",title:"http-event-normalizer",description:"If you need to access the query string or path parameters in an API Gateway event you",source:"@site/docs/middlewares/http-event-normalizer.md",sourceDirName:"middlewares",slug:"/middlewares/http-event-normalizer",permalink:"/docs/middlewares/http-event-normalizer",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/middlewares/http-event-normalizer.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",frontMatter:{title:"http-event-normalizer"},sidebar:"tutorialSidebar",previous:{title:"http-error-handler",permalink:"/docs/middlewares/http-error-handler"},next:{title:"http-header-normalizer",permalink:"/docs/middlewares/http-header-normalizer"}},d={},c=[{value:"Install",id:"install",level:2},{value:"Sample usage",id:"sample-usage",level:2}];function h(e){const t={blockquote:"blockquote",code:"code",h2:"h2",p:"p",pre:"pre",...(0,a.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(t.p,{children:["If you need to access the query string or path parameters in an API Gateway event you\ncan do so by reading the attributes in ",(0,n.jsx)(t.code,{children:"event.queryStringParameters"}),", ",(0,n.jsx)(t.code,{children:"event.multiValueQueryStringParameters"})," and\n",(0,n.jsx)(t.code,{children:"event.pathParameters"}),", for example: ",(0,n.jsx)(t.code,{children:"event.pathParameters.userId"}),". Unfortunately\nif there are no parameters for these parameter holders, the relevant key ",(0,n.jsx)(t.code,{children:"queryStringParameters"}),", ",(0,n.jsx)(t.code,{children:"multiValueQueryStringParameters"})," or ",(0,n.jsx)(t.code,{children:"pathParameters"})," won't be available in the object, causing an expression like ",(0,n.jsx)(t.code,{children:"event.pathParameters.userId"}),"\nto fail with the error: ",(0,n.jsx)(t.code,{children:"TypeError: Cannot read property 'userId' of undefined"}),"."]}),"\n",(0,n.jsxs)(t.p,{children:["A simple solution would be to add an ",(0,n.jsx)(t.code,{children:"if"})," statement to verify if the ",(0,n.jsx)(t.code,{children:"pathParameters"})," (or ",(0,n.jsx)(t.code,{children:"queryStringParameters"}),"/",(0,n.jsx)(t.code,{children:"multiValueQueryStringParameters"}),")\nexists before accessing one of its parameters, but this approach is very verbose and error prone."]}),"\n",(0,n.jsxs)(t.p,{children:["This middleware normalizes the API Gateway, ALB, Function URLs, and VPC Lattice events, making sure that an object for ",(0,n.jsx)(t.code,{children:"queryStringParameters"}),", ",(0,n.jsx)(t.code,{children:"multiValueQueryStringParameters"}),", ",(0,n.jsx)(t.code,{children:"pathParameters"}),", and ",(0,n.jsx)(t.code,{children:"isBase64Encoded"})," is always available (resulting in empty objects when no parameter is available), this way you don't have to worry about adding extra ",(0,n.jsx)(t.code,{children:"if"})," statements before trying to read a property and calling ",(0,n.jsx)(t.code,{children:"event.pathParameters.userId"})," will result in ",(0,n.jsx)(t.code,{children:"undefined"})," when no path parameter is available, but not in an error."]}),"\n",(0,n.jsxs)(t.blockquote,{children:["\n",(0,n.jsxs)(t.p,{children:["Important note : API Gateway HTTP API format 2.0 doesn't have ",(0,n.jsx)(t.code,{children:"multiValueQueryStringParameters"})," fields. Duplicate query strings are combined with commas and included in the ",(0,n.jsx)(t.code,{children:"queryStringParameters"})," field."]}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"install",children:"Install"}),"\n",(0,n.jsx)(t.p,{children:"To install this middleware you can use NPM:"}),"\n",(0,n.jsxs)(s.Z,{groupId:"npm2yarn",children:[(0,n.jsx)(l.Z,{value:"npm",children:(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-bash",children:"npm install --save @middy/http-event-normalizer\n"})})}),(0,n.jsx)(l.Z,{value:"yarn",label:"Yarn",children:(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-bash",children:"yarn add @middy/http-event-normalizer\n"})})}),(0,n.jsx)(l.Z,{value:"pnpm",label:"pnpm",children:(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-bash",children:"pnpm add @middy/http-event-normalizer\n"})})})]}),"\n",(0,n.jsx)(t.h2,{id:"sample-usage",children:"Sample usage"}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-javascript",children:"import middy from '@middy/core'\nimport httpEventNormalizer from '@middy/http-event-normalizer'\n\nconst lambdaHander = (event, context) => {\n console.log(`Hello user ${event.pathParameters.userId}`)\n // might produce `Hello user undefined`, but not an error\n\n return {}\n}\nexport const handler = middy().use(httpEventNormalizer()).handler(lambdaHander)\n"})})]})}function m(e={}){const{wrapper:t}={...(0,a.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(h,{...e})}):h(e)}},5162:(e,t,r)=>{r.d(t,{Z:()=>l});r(7294);var n=r(6010);const a={tabItem:"tabItem_Ymn6"};var s=r(5893);function l(e){let{children:t,hidden:r,className:l}=e;return(0,s.jsx)("div",{role:"tabpanel",className:(0,n.Z)(a.tabItem,l),hidden:r,children:t})}},4866:(e,t,r)=>{r.d(t,{Z:()=>w});var n=r(7294),a=r(6010),s=r(2466),l=r(6550),o=r(469),i=r(1980),u=r(7392),d=r(12);function c(e){return n.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,n.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function h(e){const{values:t,children:r}=e;return(0,n.useMemo)((()=>{const e=t??function(e){return c(e).map((e=>{let{props:{value:t,label:r,attributes:n,default:a}}=e;return{value:t,label:r,attributes:n,default:a}}))}(r);return function(e){const t=(0,u.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,r])}function m(e){let{value:t,tabValues:r}=e;return r.some((e=>e.value===t))}function p(e){let{queryString:t=!1,groupId:r}=e;const a=(0,l.k6)(),s=function(e){let{queryString:t=!1,groupId:r}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!r)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return r??null}({queryString:t,groupId:r});return[(0,i._X)(s),(0,n.useCallback)((e=>{if(!s)return;const t=new URLSearchParams(a.location.search);t.set(s,e),a.replace({...a.location,search:t.toString()})}),[s,a])]}function f(e){const{defaultValue:t,queryString:r=!1,groupId:a}=e,s=h(e),[l,i]=(0,n.useState)((()=>function(e){let{defaultValue:t,tabValues:r}=e;if(0===r.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!m({value:t,tabValues:r}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${r.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const n=r.find((e=>e.default))??r[0];if(!n)throw new Error("Unexpected error: 0 tabValues");return n.value}({defaultValue:t,tabValues:s}))),[u,c]=p({queryString:r,groupId:a}),[f,b]=function(e){let{groupId:t}=e;const r=function(e){return e?`docusaurus.tab.${e}`:null}(t),[a,s]=(0,d.Nk)(r);return[a,(0,n.useCallback)((e=>{r&&s.set(e)}),[r,s])]}({groupId:a}),v=(()=>{const e=u??f;return m({value:e,tabValues:s})?e:null})();(0,o.Z)((()=>{v&&i(v)}),[v]);return{selectedValue:l,selectValue:(0,n.useCallback)((e=>{if(!m({value:e,tabValues:s}))throw new Error(`Can't select invalid tab value=${e}`);i(e),c(e),b(e)}),[c,b,s]),tabValues:s}}var b=r(2389);const v={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var y=r(5893);function x(e){let{className:t,block:r,selectedValue:n,selectValue:l,tabValues:o}=e;const i=[],{blockElementScrollPositionUntilNextRender:u}=(0,s.o5)(),d=e=>{const t=e.currentTarget,r=i.indexOf(t),a=o[r].value;a!==n&&(u(t),l(a))},c=e=>{let t=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{const r=i.indexOf(e.currentTarget)+1;t=i[r]??i[0];break}case"ArrowLeft":{const r=i.indexOf(e.currentTarget)-1;t=i[r]??i[i.length-1];break}}t?.focus()};return(0,y.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,a.Z)("tabs",{"tabs--block":r},t),children:o.map((e=>{let{value:t,label:r,attributes:s}=e;return(0,y.jsx)("li",{role:"tab",tabIndex:n===t?0:-1,"aria-selected":n===t,ref:e=>i.push(e),onKeyDown:c,onClick:d,...s,className:(0,a.Z)("tabs__item",v.tabItem,s?.className,{"tabs__item--active":n===t}),children:r??t},t)}))})}function g(e){let{lazy:t,children:r,selectedValue:a}=e;const s=(Array.isArray(r)?r:[r]).filter(Boolean);if(t){const e=s.find((e=>e.props.value===a));return e?(0,n.cloneElement)(e,{className:"margin-top--md"}):null}return(0,y.jsx)("div",{className:"margin-top--md",children:s.map(((e,t)=>(0,n.cloneElement)(e,{key:t,hidden:e.props.value!==a})))})}function j(e){const t=f(e);return(0,y.jsxs)("div",{className:(0,a.Z)("tabs-container",v.tabList),children:[(0,y.jsx)(x,{...e,...t}),(0,y.jsx)(g,{...e,...t})]})}function w(e){const t=(0,b.Z)();return(0,y.jsx)(j,{...e,children:c(e.children)},String(t))}},1151:(e,t,r)=>{r.d(t,{Z:()=>o,a:()=>l});var n=r(7294);const a={},s=n.createContext(a);function l(e){const t=n.useContext(s);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:l(e.components),n.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/f0886e87.66e9b30c.js b/assets/js/f0886e87.66e9b30c.js deleted file mode 100644 index ad2aba555..000000000 --- a/assets/js/f0886e87.66e9b30c.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[3955],{3905:(e,t,r)=>{r.d(t,{Zo:()=>l,kt:()=>f});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function d(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),s=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},l=function(e){var t=s(e.components);return n.createElement(p.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,l=d(e,["components","mdxType","originalType","parentName"]),m=s(r),c=a,f=m["".concat(p,".").concat(c)]||m[c]||u[c]||o;return r?n.createElement(f,i(i({ref:t},l),{},{components:r})):n.createElement(f,i({ref:t},l))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=c;var d={};for(var p in t)hasOwnProperty.call(t,p)&&(d[p]=t[p]);d.originalType=e,d[m]="string"==typeof e?e:a,i[1]=d;for(var s=2;s<o;s++)i[s]=r[s];return n.createElement.apply(null,i)}return n.createElement.apply(null,r)}c.displayName="MDXCreateElement"},8569:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>d,toc:()=>s});var n=r(7462),a=(r(7294),r(3905));const o={title:"Function URL"},i=void 0,d={unversionedId:"events/function-url",id:"events/function-url",title:"Function URL",description:"Same as API Gateway (HTTP), but with support for response streams.",source:"@site/docs/events/function-url.md",sourceDirName:"events",slug:"/events/function-url",permalink:"/docs/events/function-url",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/events/function-url.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",frontMatter:{title:"Function URL"},sidebar:"tutorialSidebar",previous:{title:"EventBridge",permalink:"/docs/events/event-bridge"},next:{title:"IoT Events",permalink:"/docs/events/iot-events"}},p={},s=[{value:"AWS Documentation",id:"aws-documentation",level:2},{value:"Example",id:"example",level:2}],l={toc:s},m="wrapper";function u(e){let{components:t,...r}=e;return(0,a.kt)(m,(0,n.Z)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"Same as API Gateway (HTTP), but with support for response streams."),(0,a.kt)("h2",{id:"aws-documentation"},"AWS Documentation"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://docs.aws.amazon.com/lambda/latest/dg/services-apigateway.html"},"Using AWS Lambda with Amazon API Gateway")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api.html"},"Working with HTTP APIs"))),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\nimport errorLoggerMiddleware from '@middy/error-logger'\nimport inputOutputLoggerMiddleware from '@middy/input-output-logger'\nimport httpContentNegotiationMiddleware from '@middy/http-content-negotiation'\nimport httpContentEncodingMiddleware from '@middy/http-content-encoding'\nimport httpCorsMiddleware from '@middy/http-cors'\nimport httpErrorHandlerMiddleware from '@middy/http-error-handler'\nimport httpEventNormalizerMiddleware from '@middy/http-event-normalizer'\nimport httpHeaderNormalizerMiddleware from '@middy/http-header-normalizer'\nimport httpJsonBodyParserMiddleware from '@middy/http-json-body-parser'\nimport httpMultipartBodyParserMiddleware from '@middy/http-multipart-body-parser'\nimport httpPartialResponseMiddleware from '@middy/http-partial-response'\nimport httpResponseSerializerMiddleware from '@middy/http-response-serializer'\nimport httpSecurityHeadersMiddleware from '@middy/http-security-headers'\nimport httpUrlencodeBodyParserMiddleware from '@middy/http-urlencode-body-parser'\nimport httpUrlencodePathParametersParserMiddleware from '@middy/http-urlencode-path-parser'\nimport validatorMiddleware from 'validator'\nimport warmupMiddleware from 'warmup'\n\nimport eventSchema from './eventSchema.json' assert { type: 'json' }\nimport responseSchema from './responseSchema.json' assert { type: 'json' }\n\nexport const handler = middy({\n timeoutEarlyResponse: () => {\n return {\n statusCode: 408\n }\n },\n streamifyResponse: true\n})\n .use(warmupMiddleware())\n .use(httpEventNormalizerMiddleware())\n .use(httpHeaderNormalizerMiddleware())\n .use(\n httpContentNegotiationMiddleware({\n availableLanguages: ['en-CA', 'fr-CA'],\n availableMediaTypes: ['application/json']\n })\n )\n .use(httpUrlencodePathParametersParserMiddleware())\n // Start oneOf\n .use(httpUrlencodeBodyParserMiddleware())\n .use(httpJsonBodyParserMiddleware())\n .use(httpMultipartBodyParserMiddleware())\n // End oneOf\n .use(httpSecurityHeadersMiddleware())\n .use(httpCorsMiddleware())\n .use(httpContentEncodingMiddleware())\n .use(\n httpResponseSerializerMiddleware({\n serializers: [\n {\n regex: /^application\\/json$/,\n serializer: ({ body }) => JSON.stringify(body)\n }\n ],\n default: 'application/json'\n })\n )\n .use(httpPartialResponseMiddleware())\n .use(validatorMiddleware({ eventSchema, responseSchema }))\n .use(httpErrorHandlerMiddleware())\n .handler((event, context, { signal }) => {\n // ...\n })\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f0886e87.a7b07d9a.js b/assets/js/f0886e87.a7b07d9a.js new file mode 100644 index 000000000..130885d88 --- /dev/null +++ b/assets/js/f0886e87.a7b07d9a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[3955],{4462:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>d,toc:()=>p});var n=r(5893),a=r(1151);const o={title:"Function URL"},i=void 0,d={id:"events/function-url",title:"Function URL",description:"Same as API Gateway (HTTP), but with support for response streams.",source:"@site/docs/events/function-url.md",sourceDirName:"events",slug:"/events/function-url",permalink:"/docs/events/function-url",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/events/function-url.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",frontMatter:{title:"Function URL"},sidebar:"tutorialSidebar",previous:{title:"EventBridge",permalink:"/docs/events/event-bridge"},next:{title:"IoT Events",permalink:"/docs/events/iot-events"}},s={},p=[{value:"AWS Documentation",id:"aws-documentation",level:2},{value:"Example",id:"example",level:2}];function l(e){const t={a:"a",code:"code",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,a.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.p,{children:"Same as API Gateway (HTTP), but with support for response streams."}),"\n",(0,n.jsx)(t.h2,{id:"aws-documentation",children:"AWS Documentation"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://docs.aws.amazon.com/lambda/latest/dg/services-apigateway.html",children:"Using AWS Lambda with Amazon API Gateway"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api.html",children:"Working with HTTP APIs"})}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"example",children:"Example"}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-javascript",children:"import middy from '@middy/core'\nimport errorLoggerMiddleware from '@middy/error-logger'\nimport inputOutputLoggerMiddleware from '@middy/input-output-logger'\nimport httpContentNegotiationMiddleware from '@middy/http-content-negotiation'\nimport httpContentEncodingMiddleware from '@middy/http-content-encoding'\nimport httpCorsMiddleware from '@middy/http-cors'\nimport httpErrorHandlerMiddleware from '@middy/http-error-handler'\nimport httpEventNormalizerMiddleware from '@middy/http-event-normalizer'\nimport httpHeaderNormalizerMiddleware from '@middy/http-header-normalizer'\nimport httpJsonBodyParserMiddleware from '@middy/http-json-body-parser'\nimport httpMultipartBodyParserMiddleware from '@middy/http-multipart-body-parser'\nimport httpPartialResponseMiddleware from '@middy/http-partial-response'\nimport httpResponseSerializerMiddleware from '@middy/http-response-serializer'\nimport httpSecurityHeadersMiddleware from '@middy/http-security-headers'\nimport httpUrlencodeBodyParserMiddleware from '@middy/http-urlencode-body-parser'\nimport httpUrlencodePathParametersParserMiddleware from '@middy/http-urlencode-path-parser'\nimport validatorMiddleware from 'validator'\nimport warmupMiddleware from 'warmup'\n\nimport eventSchema from './eventSchema.json' assert { type: 'json' }\nimport responseSchema from './responseSchema.json' assert { type: 'json' }\n\nexport const handler = middy({\n timeoutEarlyResponse: () => {\n return {\n statusCode: 408\n }\n },\n streamifyResponse: true\n})\n .use(warmupMiddleware())\n .use(httpEventNormalizerMiddleware())\n .use(httpHeaderNormalizerMiddleware())\n .use(\n httpContentNegotiationMiddleware({\n availableLanguages: ['en-CA', 'fr-CA'],\n availableMediaTypes: ['application/json']\n })\n )\n .use(httpUrlencodePathParametersParserMiddleware())\n // Start oneOf\n .use(httpUrlencodeBodyParserMiddleware())\n .use(httpJsonBodyParserMiddleware())\n .use(httpMultipartBodyParserMiddleware())\n // End oneOf\n .use(httpSecurityHeadersMiddleware())\n .use(httpCorsMiddleware())\n .use(httpContentEncodingMiddleware())\n .use(\n httpResponseSerializerMiddleware({\n serializers: [\n {\n regex: /^application\\/json$/,\n serializer: ({ body }) => JSON.stringify(body)\n }\n ],\n default: 'application/json'\n })\n )\n .use(httpPartialResponseMiddleware())\n .use(validatorMiddleware({ eventSchema, responseSchema }))\n .use(httpErrorHandlerMiddleware())\n .handler((event, context, { signal }) => {\n // ...\n })\n"})})]})}function m(e={}){const{wrapper:t}={...(0,a.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(l,{...e})}):l(e)}},1151:(e,t,r)=>{r.d(t,{Z:()=>d,a:()=>i});var n=r(7294);const a={},o=n.createContext(a);function i(e){const t=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function d(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:i(e.components),n.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/f20815ad.2b91d0ca.js b/assets/js/f20815ad.2b91d0ca.js deleted file mode 100644 index c6d86a9fc..000000000 --- a/assets/js/f20815ad.2b91d0ca.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[4760],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>f});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),l=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=l(e.components);return r.createElement(s.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),u=l(n),m=o,f=u["".concat(s,".").concat(m)]||u[m]||d[m]||a;return n?r.createElement(f,i(i({ref:t},p),{},{components:n})):r.createElement(f,i({ref:t},p))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=m;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[u]="string"==typeof e?e:o,i[1]=c;for(var l=2;l<a;l++)i[l]=n[l];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}m.displayName="MDXCreateElement"},3750:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>l});var r=n(7462),o=(n(7294),n(3905));const a={title:"Connect"},i=void 0,c={unversionedId:"events/connect",id:"events/connect",title:"Connect",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/events/connect.md",sourceDirName:"events",slug:"/events/connect",permalink:"/docs/events/connect",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/events/connect.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",frontMatter:{title:"Connect"},sidebar:"tutorialSidebar",previous:{title:"Config",permalink:"/docs/events/config"},next:{title:"DocumentDB",permalink:"/docs/events/documentdb"}},s={},l=[{value:"AWS Documentation",id:"aws-documentation",level:2},{value:"Example",id:"example",level:2}],p={toc:l},u="wrapper";function d(e){let{components:t,...n}=e;return(0,o.kt)(u,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("admonition",{type:"caution"},(0,o.kt)("p",{parentName:"admonition"},"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.")),(0,o.kt)("h2",{id:"aws-documentation"},"AWS Documentation"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://docs.aws.amazon.com/lambda/latest/dg/services-connect.html"},"Using Lambda with Amazon Connect"))),(0,o.kt)("h2",{id:"example"},"Example"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\n\nexport const handler = middy()\n .handler((event, context, {signal}) => {\n // ...\n })\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f20815ad.322794e6.js b/assets/js/f20815ad.322794e6.js new file mode 100644 index 000000000..b63911537 --- /dev/null +++ b/assets/js/f20815ad.322794e6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[4760],{6433:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>r,contentTitle:()=>c,default:()=>m,frontMatter:()=>s,metadata:()=>a,toc:()=>d});var o=t(5893),i=t(1151);const s={title:"Connect"},c=void 0,a={id:"events/connect",title:"Connect",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/events/connect.md",sourceDirName:"events",slug:"/events/connect",permalink:"/docs/events/connect",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/events/connect.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",frontMatter:{title:"Connect"},sidebar:"tutorialSidebar",previous:{title:"Config",permalink:"/docs/events/config"},next:{title:"DocumentDB",permalink:"/docs/events/documentdb"}},r={},d=[{value:"AWS Documentation",id:"aws-documentation",level:2},{value:"Example",id:"example",level:2}];function l(e){const n={a:"a",admonition:"admonition",code:"code",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,i.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.admonition,{type:"caution",children:(0,o.jsx)(n.p,{children:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub."})}),"\n",(0,o.jsx)(n.h2,{id:"aws-documentation",children:"AWS Documentation"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsx)(n.li,{children:(0,o.jsx)(n.a,{href:"https://docs.aws.amazon.com/lambda/latest/dg/services-connect.html",children:"Using Lambda with Amazon Connect"})}),"\n"]}),"\n",(0,o.jsx)(n.h2,{id:"example",children:"Example"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-javascript",children:"import middy from '@middy/core'\n\nexport const handler = middy()\n .handler((event, context, {signal}) => {\n // ...\n })\n"})})]})}function m(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(l,{...e})}):l(e)}},1151:(e,n,t)=>{t.d(n,{Z:()=>a,a:()=>c});var o=t(7294);const i={},s=o.createContext(i);function c(e){const n=o.useContext(s);return o.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:c(e.components),o.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/f33bafb6.1c03333a.js b/assets/js/f33bafb6.1c03333a.js new file mode 100644 index 000000000..af37c1946 --- /dev/null +++ b/assets/js/f33bafb6.1c03333a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[8185],{2737:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>l,contentTitle:()=>s,default:()=>u,frontMatter:()=>d,metadata:()=>a,toc:()=>i});var t=r(5893),o=r(1151);const d={title:"ws-router"},s=void 0,a={id:"routers/ws-router",title:"ws-router",description:"This handler can route to requests to one of a nested handler based on routeKey of an WebSocket event from API Gateway (WebSocket).",source:"@site/docs/routers/ws-router.md",sourceDirName:"routers",slug:"/routers/ws-router",permalink:"/docs/routers/ws-router",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/routers/ws-router.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",frontMatter:{title:"ws-router"},sidebar:"tutorialSidebar",previous:{title:"http-router",permalink:"/docs/routers/http-router"},next:{title:"Upgrade",permalink:"/docs/category/upgrade"}},l={},i=[{value:"Install",id:"install",level:2},{value:"Options",id:"options",level:2},{value:"Sample usage",id:"sample-usage",level:2}];function c(e){const n={code:"code",h2:"h2",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,o.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(n.p,{children:["This handler can route to requests to one of a nested handler based on ",(0,t.jsx)(n.code,{children:"routeKey"})," of an WebSocket event from API Gateway (WebSocket)."]}),"\n",(0,t.jsx)(n.h2,{id:"install",children:"Install"}),"\n",(0,t.jsx)(n.p,{children:"To install this middleware you can use NPM:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"npm install --save @middy/ws-router\n"})}),"\n",(0,t.jsx)(n.h2,{id:"options",children:"Options"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"routes"})," (array[{routeKey, handler}]) (required): Array of route objects.","\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"routeKey"})," (string) (required): AWS formatted route key. ie ",(0,t.jsx)(n.code,{children:"$connect"}),", ",(0,t.jsx)(n.code,{children:"$disconnect"}),", ",(0,t.jsx)(n.code,{children:"$default"})]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"handler"})," (function) (required): Any ",(0,t.jsx)(n.code,{children:"handler(event, context, {signal})"})," function"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:"NOTES:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Errors should be handled as part of the router middleware stack ",(0,t.jsx)(n.strong,{children:"or"})," the lambdaHandler middleware stack. Handled errors in the later will trigger the ",(0,t.jsx)(n.code,{children:"after"})," middleware stack of the former."]}),"\n",(0,t.jsx)(n.li,{children:"Shared middlewares, connected to the router middleware stack, can only be run before the lambdaHandler middleware stack."}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"sample-usage",children:"Sample usage"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-javascript",children:"import middy from '@middy/core'\nimport wsRouterHandler from '@middy/ws-router'\nimport wsResponseMiddleware from '@middy/ws-response'\nimport validatorMiddleware from '@middy/validator'\n\nconst connectHandler = middy()\n .use(validatorMiddleware({eventSchema: {...} }))\n .handler((event, context) => {\n return 'connected'\n })\n\nconst disconnectHandler = middy()\n .use(validatorMiddleware({eventSchema: {...} }))\n .handler((event, context) => {\n return 'disconnected'\n })\n\nconst routes = [\n {\n routeKey: '$connect',\n handler: connectHandler\n },\n {\n routeKey: '$disconnect',\n handler: disconnectHandler\n }\n]\n\nexport const handler = middy()\n .use(wsResponseMiddleware())\n .handler(wsRouterHandler(routes))\n"})})]})}function u(e={}){const{wrapper:n}={...(0,o.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},1151:(e,n,r)=>{r.d(n,{Z:()=>a,a:()=>s});var t=r(7294);const o={},d=t.createContext(o);function s(e){const n=t.useContext(d);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:s(e.components),t.createElement(d.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/f33bafb6.b10790f1.js b/assets/js/f33bafb6.b10790f1.js deleted file mode 100644 index 634521882..000000000 --- a/assets/js/f33bafb6.b10790f1.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[8185],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>f});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function i(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var d=n.createContext({}),s=function(e){var t=n.useContext(d),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},u=function(e){var t=s(e.components);return n.createElement(d.Provider,{value:t},e.children)},c="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,d=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),c=s(r),m=a,f=c["".concat(d,".").concat(m)]||c[m]||p[m]||o;return r?n.createElement(f,l(l({ref:t},u),{},{components:r})):n.createElement(f,l({ref:t},u))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=m;var i={};for(var d in t)hasOwnProperty.call(t,d)&&(i[d]=t[d]);i.originalType=e,i[c]="string"==typeof e?e:a,l[1]=i;for(var s=2;s<o;s++)l[s]=r[s];return n.createElement.apply(null,l)}return n.createElement.apply(null,r)}m.displayName="MDXCreateElement"},265:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>d,contentTitle:()=>l,default:()=>p,frontMatter:()=>o,metadata:()=>i,toc:()=>s});var n=r(7462),a=(r(7294),r(3905));const o={title:"ws-router"},l=void 0,i={unversionedId:"routers/ws-router",id:"routers/ws-router",title:"ws-router",description:"This handler can route to requests to one of a nested handler based on routeKey of an WebSocket event from API Gateway (WebSocket).",source:"@site/docs/routers/ws-router.md",sourceDirName:"routers",slug:"/routers/ws-router",permalink:"/docs/routers/ws-router",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/routers/ws-router.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",frontMatter:{title:"ws-router"},sidebar:"tutorialSidebar",previous:{title:"http-router",permalink:"/docs/routers/http-router"},next:{title:"Upgrade",permalink:"/docs/category/upgrade"}},d={},s=[{value:"Install",id:"install",level:2},{value:"Options",id:"options",level:2},{value:"Sample usage",id:"sample-usage",level:2}],u={toc:s},c="wrapper";function p(e){let{components:t,...r}=e;return(0,a.kt)(c,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"This handler can route to requests to one of a nested handler based on ",(0,a.kt)("inlineCode",{parentName:"p"},"routeKey")," of an WebSocket event from API Gateway (WebSocket)."),(0,a.kt)("h2",{id:"install"},"Install"),(0,a.kt)("p",null,"To install this middleware you can use NPM:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-bash"},"npm install --save @middy/ws-router\n")),(0,a.kt)("h2",{id:"options"},"Options"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"routes")," (array","[{routeKey, handler}]",") (required): Array of route objects.",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"routeKey")," (string) (required): AWS formatted route key. ie ",(0,a.kt)("inlineCode",{parentName:"li"},"$connect"),", ",(0,a.kt)("inlineCode",{parentName:"li"},"$disconnect"),", ",(0,a.kt)("inlineCode",{parentName:"li"},"$default")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"handler")," (function) (required): Any ",(0,a.kt)("inlineCode",{parentName:"li"},"handler(event, context, {signal})")," function")))),(0,a.kt)("p",null,"NOTES:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Errors should be handled as part of the router middleware stack ",(0,a.kt)("strong",{parentName:"li"},"or")," the lambdaHandler middleware stack. Handled errors in the later will trigger the ",(0,a.kt)("inlineCode",{parentName:"li"},"after")," middleware stack of the former."),(0,a.kt)("li",{parentName:"ul"},"Shared middlewares, connected to the router middleware stack, can only be run before the lambdaHandler middleware stack.")),(0,a.kt)("h2",{id:"sample-usage"},"Sample usage"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\nimport wsRouterHandler from '@middy/ws-router'\nimport wsResponseMiddleware from '@middy/ws-response'\nimport validatorMiddleware from '@middy/validator'\n\nconst connectHandler = middy()\n .use(validatorMiddleware({eventSchema: {...} }))\n .handler((event, context) => {\n return 'connected'\n })\n\nconst disconnectHandler = middy()\n .use(validatorMiddleware({eventSchema: {...} }))\n .handler((event, context) => {\n return 'disconnected'\n })\n\nexport const handler = middy()\n .use(wsResponseMiddleware())\n .handler(wsRouterHandler([\n {\n routeKey: '$connect',\n handler: connectHandler\n },\n {\n routeKey: '$disconnect',\n handler: disconnectHandler\n }\n ]))\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f795adf5.157f790c.js b/assets/js/f795adf5.157f790c.js deleted file mode 100644 index 2622a71e8..000000000 --- a/assets/js/f795adf5.157f790c.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[8841],{3905:(e,t,r)=>{r.d(t,{Zo:()=>d,kt:()=>y});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function c(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var l=n.createContext({}),s=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},d=function(e){var t=s(e.components);return n.createElement(l.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),p=s(r),m=a,y=p["".concat(l,".").concat(m)]||p[m]||u[m]||o;return r?n.createElement(y,i(i({ref:t},d),{},{components:r})):n.createElement(y,i({ref:t},d))}));function y(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=m;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[p]="string"==typeof e?e:a,i[1]=c;for(var s=2;s<o;s++)i[s]=r[s];return n.createElement.apply(null,i)}return n.createElement.apply(null,r)}m.displayName="MDXCreateElement"},9677:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>c,toc:()=>s});var n=r(7462),a=(r(7294),r(3905));const o={title:"Early return",position:4},i=void 0,c={unversionedId:"intro/early-interrupt",id:"intro/early-interrupt",title:"Early return",description:"Some middlewares might need to stop the whole execution flow and return a response immediately.",source:"@site/docs/intro/04-early-interrupt.md",sourceDirName:"intro",slug:"/intro/early-interrupt",permalink:"/docs/intro/early-interrupt",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/intro/04-early-interrupt.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",sidebarPosition:4,frontMatter:{title:"Early return",position:4},sidebar:"tutorialSidebar",previous:{title:"How it works",permalink:"/docs/intro/how-it-works"},next:{title:"Handling Errors",permalink:"/docs/intro/handling-errors"}},l={},s=[],d={toc:s},p="wrapper";function u(e){let{components:t,...r}=e;return(0,a.kt)(p,(0,n.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"Some middlewares might need to stop the whole execution flow and return a response immediately."),(0,a.kt)("p",null,"If you want to do this you can invoke ",(0,a.kt)("inlineCode",{parentName:"p"},"return response")," in your middleware."),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"Note"),": this will totally stop the execution of successive middlewares in any phase (",(0,a.kt)("inlineCode",{parentName:"p"},"before"),", ",(0,a.kt)("inlineCode",{parentName:"p"},"after"),", ",(0,a.kt)("inlineCode",{parentName:"p"},"onError"),") and returns\nan early response (or an error) directly at the Lambda level. If your middlewares do a specific task on every request\nlike output serialization, error handling or clean, these won't be invoked in this case. They will have to be handled before the return."),(0,a.kt)("p",null,"In this example, we can use this capability for building a sample caching middleware:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-javascript"},"// some function that calculates the cache id based on the current event\nconst calculateCacheId = (event) => {\n /* ... */\n}\nconst storage = {}\n\n// middleware\nconst cacheMiddleware = (options) => {\n let cacheKey\n\n const cacheMiddlewareBefore = async (request) => {\n cacheKey = options.calculateCacheId(request.event)\n if (options.storage.hasOwnProperty(cacheKey)) {\n // exits early and returns the value from the cache if it's already there\n return options.storage[cacheKey]\n }\n }\n\n const cacheMiddlewareAfter = async (request) => {\n // stores the calculated response in the cache\n options.storage[cacheKey] = request.response\n }\n\n return {\n before: cacheMiddlewareBefore,\n after: cacheMiddlewareAfter\n }\n}\n\n// sample usage\nconst handler = middy((event, context) => {\n /* ... */\n}).use(\n cacheMiddleware({\n calculateCacheId,\n storage\n })\n)\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f795adf5.dcb256e5.js b/assets/js/f795adf5.dcb256e5.js new file mode 100644 index 000000000..db642f94b --- /dev/null +++ b/assets/js/f795adf5.dcb256e5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[8841],{5196:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>s,default:()=>u,frontMatter:()=>a,metadata:()=>i,toc:()=>d});var r=t(5893),o=t(1151);const a={title:"Early return",position:4},s=void 0,i={id:"intro/early-interrupt",title:"Early return",description:"Some middlewares might need to stop the whole execution flow and return a response immediately.",source:"@site/docs/intro/04-early-interrupt.md",sourceDirName:"intro",slug:"/intro/early-interrupt",permalink:"/docs/intro/early-interrupt",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/intro/04-early-interrupt.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",sidebarPosition:4,frontMatter:{title:"Early return",position:4},sidebar:"tutorialSidebar",previous:{title:"How it works",permalink:"/docs/intro/how-it-works"},next:{title:"Handling Errors",permalink:"/docs/intro/handling-errors"}},c={},d=[];function l(e){const n={code:"code",p:"p",pre:"pre",strong:"strong",...(0,o.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.p,{children:"Some middlewares might need to stop the whole execution flow and return a response immediately."}),"\n",(0,r.jsxs)(n.p,{children:["If you want to do this you can invoke ",(0,r.jsx)(n.code,{children:"return response"})," in your middleware."]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Note"}),": this will totally stop the execution of successive middlewares in any phase (",(0,r.jsx)(n.code,{children:"before"}),", ",(0,r.jsx)(n.code,{children:"after"}),", ",(0,r.jsx)(n.code,{children:"onError"}),") and returns\nan early response (or an error) directly at the Lambda level. If your middlewares do a specific task on every request\nlike output serialization, error handling or clean, these won't be invoked in this case. They will have to be handled before the return."]}),"\n",(0,r.jsx)(n.p,{children:"In this example, we can use this capability for building a sample caching middleware:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-javascript",children:"// some function that calculates the cache id based on the current event\nconst calculateCacheId = (event) => {\n /* ... */\n}\nconst storage = {}\n\n// middleware\nconst cacheMiddleware = (options) => {\n let cacheKey\n\n const cacheMiddlewareBefore = async (request) => {\n cacheKey = options.calculateCacheId(request.event)\n if (options.storage.hasOwnProperty(cacheKey)) {\n // exits early and returns the value from the cache if it's already there\n return options.storage[cacheKey]\n }\n }\n\n const cacheMiddlewareAfter = async (request) => {\n // stores the calculated response in the cache\n options.storage[cacheKey] = request.response\n }\n\n return {\n before: cacheMiddlewareBefore,\n after: cacheMiddlewareAfter\n }\n}\n\n// sample usage\nconst lambdaHandler = (event, context) => {\n /* ... */\n}\nexport const handler = middy()\n .use(\n cacheMiddleware({\n calculateCacheId,\n storage\n })\n )\n .handler(lambdaHandler)\n"})})]})}function u(e={}){const{wrapper:n}={...(0,o.a)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(l,{...e})}):l(e)}},1151:(e,n,t)=>{t.d(n,{Z:()=>i,a:()=>s});var r=t(7294);const o={},a=r.createContext(o);function s(e){const n=r.useContext(a);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:s(e.components),r.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/f9850e34.5fcff5e5.js b/assets/js/f9850e34.5fcff5e5.js deleted file mode 100644 index e20593787..000000000 --- a/assets/js/f9850e34.5fcff5e5.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[6177],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>h});var n=r(7294);function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){i(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r,n,i={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var d=n.createContext({}),s=function(e){var t=n.useContext(d),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},p=function(e){var t=s(e.components);return n.createElement(d.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var r=e.components,i=e.mdxType,a=e.originalType,d=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),c=s(r),u=i,h=c["".concat(d,".").concat(u)]||c[u]||m[u]||a;return r?n.createElement(h,o(o({ref:t},p),{},{components:r})):n.createElement(h,o({ref:t},p))}));function h(e,t){var r=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=r.length,o=new Array(a);o[0]=u;var l={};for(var d in t)hasOwnProperty.call(t,d)&&(l[d]=t[d]);l.originalType=e,l[c]="string"==typeof e?e:i,o[1]=l;for(var s=2;s<a;s++)o[s]=r[s];return n.createElement.apply(null,o)}return n.createElement.apply(null,r)}u.displayName="MDXCreateElement"},1977:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>d,contentTitle:()=>o,default:()=>m,frontMatter:()=>a,metadata:()=>l,toc:()=>s});var n=r(7462),i=(r(7294),r(3905));const a={title:"How it works",position:3},o=void 0,l={unversionedId:"intro/how-it-works",id:"intro/how-it-works",title:"How it works",description:"Middy implements the classic onion-like middleware pattern, with some peculiar details.",source:"@site/docs/intro/03-how-it-works.md",sourceDirName:"intro",slug:"/intro/how-it-works",permalink:"/docs/intro/how-it-works",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/intro/03-how-it-works.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",sidebarPosition:3,frontMatter:{title:"How it works",position:3},sidebar:"tutorialSidebar",previous:{title:"Getting started",permalink:"/docs/intro/getting-started"},next:{title:"Early return",permalink:"/docs/intro/early-interrupt"}},d={},s=[{value:"Execution order",id:"execution-order",level:2}],p={toc:s},c="wrapper";function m(e){let{components:t,...a}=e;return(0,i.kt)(c,(0,n.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"Middy implements the classic ",(0,i.kt)("em",{parentName:"p"},"onion-like")," middleware pattern, with some peculiar details."),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"Middy middleware engine diagram",src:r(2321).Z,width:"664",height:"547"})),(0,i.kt)("p",null,"When you attach a new middleware this will wrap the business logic contained in the handler\nin two separate steps."),(0,i.kt)("p",null,"When another middleware is attached this will wrap the handler again and it will be wrapped by\nall the previously added middlewares in order, creating multiple layers for interacting with\nthe ",(0,i.kt)("em",{parentName:"p"},"request")," (event) and the ",(0,i.kt)("em",{parentName:"p"},"response"),"."),(0,i.kt)("p",null,"This way the ",(0,i.kt)("em",{parentName:"p"},"request-response cycle")," flows through all the middlewares, the\nhandler and all the middlewares again, giving the opportunity within every step to\nmodify or enrich the current request, context, or the response."),(0,i.kt)("h2",{id:"execution-order"},"Execution order"),(0,i.kt)("p",null,"Middlewares have two phases: ",(0,i.kt)("inlineCode",{parentName:"p"},"before")," and ",(0,i.kt)("inlineCode",{parentName:"p"},"after"),"."),(0,i.kt)("p",null,"The ",(0,i.kt)("inlineCode",{parentName:"p"},"before")," phase, happens ",(0,i.kt)("em",{parentName:"p"},"before")," the handler is executed. In this code the\nresponse is not created yet, so you will have access only to the request."),(0,i.kt)("p",null,"The ",(0,i.kt)("inlineCode",{parentName:"p"},"after")," phase, happens ",(0,i.kt)("em",{parentName:"p"},"after")," the handler is executed. In this code you will\nhave access to both the request and the response."),(0,i.kt)("p",null,"If you have three middlewares attached (as in the image above), this is the expected\norder of execution:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"middleware1")," (before)"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"middleware2")," (before)"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"middleware3")," (before)"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"handler")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"middleware3")," (after)"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"middleware2")," (after)"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"middleware1")," (after)")),(0,i.kt)("p",null,"Notice that in the ",(0,i.kt)("inlineCode",{parentName:"p"},"after")," phase, middlewares are executed in inverted order,\nthis way the first handler attached is the one with the highest priority as it will\nbe the first able to change the request and last able to modify the response before\nit gets sent to the user."))}m.isMDXComponent=!0},2321:(e,t,r)=>{r.d(t,{Z:()=>n});const n=r.p+"assets/images/middy-middleware-engine-eb7bdaefff782d4d36cce8f149f7fa85.png"}}]); \ No newline at end of file diff --git a/assets/js/f9850e34.e053ea41.js b/assets/js/f9850e34.e053ea41.js new file mode 100644 index 000000000..87d375a0f --- /dev/null +++ b/assets/js/f9850e34.e053ea41.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[6177],{9983:(e,t,i)=>{i.r(t),i.d(t,{assets:()=>a,contentTitle:()=>d,default:()=>c,frontMatter:()=>s,metadata:()=>o,toc:()=>l});var n=i(5893),r=i(1151);const s={title:"How it works",position:3},d=void 0,o={id:"intro/how-it-works",title:"How it works",description:"Middy implements the classic onion-like middleware pattern, with some peculiar details.",source:"@site/docs/intro/03-how-it-works.md",sourceDirName:"intro",slug:"/intro/how-it-works",permalink:"/docs/intro/how-it-works",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/intro/03-how-it-works.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",sidebarPosition:3,frontMatter:{title:"How it works",position:3},sidebar:"tutorialSidebar",previous:{title:"Getting started",permalink:"/docs/intro/getting-started"},next:{title:"Early return",permalink:"/docs/intro/early-interrupt"}},a={},l=[{value:"Execution order",id:"execution-order",level:2}];function h(e){const t={code:"code",em:"em",h2:"h2",img:"img",li:"li",p:"p",ul:"ul",...(0,r.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(t.p,{children:["Middy implements the classic ",(0,n.jsx)(t.em,{children:"onion-like"})," middleware pattern, with some peculiar details."]}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"Middy middleware engine diagram",src:i(2321).Z+"",width:"664",height:"547"})}),"\n",(0,n.jsx)(t.p,{children:"When you attach a new middleware this will wrap the business logic contained in the handler\nin two separate steps."}),"\n",(0,n.jsxs)(t.p,{children:["When another middleware is attached this will wrap the handler again and it will be wrapped by\nall the previously added middlewares in order, creating multiple layers for interacting with\nthe ",(0,n.jsx)(t.em,{children:"request"})," (event) and the ",(0,n.jsx)(t.em,{children:"response"}),"."]}),"\n",(0,n.jsxs)(t.p,{children:["This way the ",(0,n.jsx)(t.em,{children:"request-response cycle"})," flows through all the middlewares, the\nhandler and all the middlewares again, giving the opportunity within every step to\nmodify or enrich the current request, context, or the response."]}),"\n",(0,n.jsx)(t.h2,{id:"execution-order",children:"Execution order"}),"\n",(0,n.jsxs)(t.p,{children:["Middlewares have two phases: ",(0,n.jsx)(t.code,{children:"before"})," and ",(0,n.jsx)(t.code,{children:"after"}),"."]}),"\n",(0,n.jsxs)(t.p,{children:["The ",(0,n.jsx)(t.code,{children:"before"})," phase, happens ",(0,n.jsx)(t.em,{children:"before"})," the handler is executed. In this code the\nresponse is not created yet, so you will have access only to the request."]}),"\n",(0,n.jsxs)(t.p,{children:["The ",(0,n.jsx)(t.code,{children:"after"})," phase, happens ",(0,n.jsx)(t.em,{children:"after"})," the handler is executed. In this code you will\nhave access to both the request and the response."]}),"\n",(0,n.jsx)(t.p,{children:"If you have three middlewares attached (as in the image above), this is the expected\norder of execution:"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"middleware1"})," (before)"]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"middleware2"})," (before)"]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"middleware3"})," (before)"]}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.code,{children:"handler"})}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"middleware3"})," (after)"]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"middleware2"})," (after)"]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"middleware1"})," (after)"]}),"\n"]}),"\n",(0,n.jsxs)(t.p,{children:["Notice that in the ",(0,n.jsx)(t.code,{children:"after"})," phase, middlewares are executed in inverted order,\nthis way the first handler attached is the one with the highest priority as it will\nbe the first able to change the request and last able to modify the response before\nit gets sent to the user."]})]})}function c(e={}){const{wrapper:t}={...(0,r.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(h,{...e})}):h(e)}},2321:(e,t,i)=>{i.d(t,{Z:()=>n});const n=i.p+"assets/images/middy-middleware-engine-eb7bdaefff782d4d36cce8f149f7fa85.png"},1151:(e,t,i)=>{i.d(t,{Z:()=>o,a:()=>d});var n=i(7294);const r={},s=n.createContext(r);function d(e){const t=n.useContext(s);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:d(e.components),n.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/faf674c6.4f86d2d2.js b/assets/js/faf674c6.4f86d2d2.js deleted file mode 100644 index 7c143f942..000000000 --- a/assets/js/faf674c6.4f86d2d2.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[4962],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>f});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var c=r.createContext({}),l=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=l(e.components);return r.createElement(c.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),u=l(n),m=o,f=u["".concat(c,".").concat(m)]||u[m]||d[m]||a;return n?r.createElement(f,i(i({ref:t},p),{},{components:n})):r.createElement(f,i({ref:t},p))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=m;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s[u]="string"==typeof e?e:o,i[1]=s;for(var l=2;l<a;l++)i[l]=n[l];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}m.displayName="MDXCreateElement"},4011:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>s,toc:()=>l});var r=n(7462),o=(n(7294),n(3905));const a={title:"IoT Events"},i=void 0,s={unversionedId:"events/iot-events",id:"events/iot-events",title:"IoT Events",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/events/iot-events.md",sourceDirName:"events",slug:"/events/iot-events",permalink:"/docs/events/iot-events",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/events/iot-events.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",frontMatter:{title:"IoT Events"},sidebar:"tutorialSidebar",previous:{title:"Function URL",permalink:"/docs/events/function-url"},next:{title:"Internet of things (IoT)",permalink:"/docs/events/iot"}},c={},l=[{value:"AWS Documentation",id:"aws-documentation",level:2},{value:"Example",id:"example",level:2}],p={toc:l},u="wrapper";function d(e){let{components:t,...n}=e;return(0,o.kt)(u,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("admonition",{type:"caution"},(0,o.kt)("p",{parentName:"admonition"},"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.")),(0,o.kt)("h2",{id:"aws-documentation"},"AWS Documentation"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://docs.aws.amazon.com/lambda/latest/dg/services-iotevents.html"},"Using AWS Lambda with AWS IoT Events"))),(0,o.kt)("h2",{id:"example"},"Example"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\n\nexport const handler = middy()\n .handler((event, context, {signal}) => {\n // ...\n })\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/faf674c6.f8055c7b.js b/assets/js/faf674c6.f8055c7b.js new file mode 100644 index 000000000..697e9d62d --- /dev/null +++ b/assets/js/faf674c6.f8055c7b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[4962],{2342:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>a,default:()=>u,frontMatter:()=>i,metadata:()=>r,toc:()=>c});var o=n(5893),s=n(1151);const i={title:"IoT Events"},a=void 0,r={id:"events/iot-events",title:"IoT Events",description:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.",source:"@site/docs/events/iot-events.md",sourceDirName:"events",slug:"/events/iot-events",permalink:"/docs/events/iot-events",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/events/iot-events.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",frontMatter:{title:"IoT Events"},sidebar:"tutorialSidebar",previous:{title:"Function URL",permalink:"/docs/events/function-url"},next:{title:"Internet of things (IoT)",permalink:"/docs/events/iot"}},d={},c=[{value:"AWS Documentation",id:"aws-documentation",level:2},{value:"Example",id:"example",level:2}];function l(e){const t={a:"a",admonition:"admonition",code:"code",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,s.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.admonition,{type:"caution",children:(0,o.jsx)(t.p,{children:"This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub."})}),"\n",(0,o.jsx)(t.h2,{id:"aws-documentation",children:"AWS Documentation"}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsx)(t.li,{children:(0,o.jsx)(t.a,{href:"https://docs.aws.amazon.com/lambda/latest/dg/services-iotevents.html",children:"Using AWS Lambda with AWS IoT Events"})}),"\n"]}),"\n",(0,o.jsx)(t.h2,{id:"example",children:"Example"}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-javascript",children:"import middy from '@middy/core'\n\nexport const handler = middy()\n .handler((event, context, {signal}) => {\n // ...\n })\n"})})]})}function u(e={}){const{wrapper:t}={...(0,s.a)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(l,{...e})}):l(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>r,a:()=>a});var o=n(7294);const s={},i=o.createContext(s);function a(e){const t=o.useContext(i);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),o.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/ff488875.5e716e72.js b/assets/js/ff488875.5e716e72.js deleted file mode 100644 index 50ccc0959..000000000 --- a/assets/js/ff488875.5e716e72.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[1531],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>f});var n=a(7294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function s(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?l(Object(a),!0).forEach((function(t){r(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):l(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function i(e,t){if(null==e)return{};var a,n,r=function(e,t){if(null==e)return{};var a,n,r={},l=Object.keys(e);for(n=0;n<l.length;n++)a=l[n],t.indexOf(a)>=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n<l.length;n++)a=l[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var o=n.createContext({}),u=function(e){var t=n.useContext(o),a=t;return e&&(a="function"==typeof e?e(t):s(s({},t),e)),a},d=function(e){var t=u(e.components);return n.createElement(o.Provider,{value:t},e.children)},m="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},p=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,l=e.originalType,o=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),m=u(a),p=r,f=m["".concat(o,".").concat(p)]||m[p]||c[p]||l;return a?n.createElement(f,s(s({ref:t},d),{},{components:a})):n.createElement(f,s({ref:t},d))}));function f(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=a.length,s=new Array(l);s[0]=p;var i={};for(var o in t)hasOwnProperty.call(t,o)&&(i[o]=t[o]);i.originalType=e,i[m]="string"==typeof e?e:r,s[1]=i;for(var u=2;u<l;u++)s[u]=a[u];return n.createElement.apply(null,s)}return n.createElement.apply(null,a)}p.displayName="MDXCreateElement"},5162:(e,t,a)=>{a.d(t,{Z:()=>s});var n=a(7294),r=a(6010);const l={tabItem:"tabItem_Ymn6"};function s(e){let{children:t,hidden:a,className:s}=e;return n.createElement("div",{role:"tabpanel",className:(0,r.Z)(l.tabItem,s),hidden:a},t)}},4866:(e,t,a)=>{a.d(t,{Z:()=>w});var n=a(7462),r=a(7294),l=a(6010),s=a(2466),i=a(6550),o=a(1980),u=a(7392),d=a(12);function m(e){return function(e){return r.Children.map(e,(e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:a,attributes:n,default:r}}=e;return{value:t,label:a,attributes:n,default:r}}))}function c(e){const{values:t,children:a}=e;return(0,r.useMemo)((()=>{const e=t??m(a);return function(e){const t=(0,u.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,a])}function p(e){let{value:t,tabValues:a}=e;return a.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:a}=e;const n=(0,i.k6)(),l=function(e){let{queryString:t=!1,groupId:a}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!a)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return a??null}({queryString:t,groupId:a});return[(0,o._X)(l),(0,r.useCallback)((e=>{if(!l)return;const t=new URLSearchParams(n.location.search);t.set(l,e),n.replace({...n.location,search:t.toString()})}),[l,n])]}function h(e){const{defaultValue:t,queryString:a=!1,groupId:n}=e,l=c(e),[s,i]=(0,r.useState)((()=>function(e){let{defaultValue:t,tabValues:a}=e;if(0===a.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!p({value:t,tabValues:a}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${a.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const n=a.find((e=>e.default))??a[0];if(!n)throw new Error("Unexpected error: 0 tabValues");return n.value}({defaultValue:t,tabValues:l}))),[o,u]=f({queryString:a,groupId:n}),[m,h]=function(e){let{groupId:t}=e;const a=function(e){return e?`docusaurus.tab.${e}`:null}(t),[n,l]=(0,d.Nk)(a);return[n,(0,r.useCallback)((e=>{a&&l.set(e)}),[a,l])]}({groupId:n}),b=(()=>{const e=o??m;return p({value:e,tabValues:l})?e:null})();(0,r.useLayoutEffect)((()=>{b&&i(b)}),[b]);return{selectedValue:s,selectValue:(0,r.useCallback)((e=>{if(!p({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);i(e),u(e),h(e)}),[u,h,l]),tabValues:l}}var b=a(2389);const y={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};function k(e){let{className:t,block:a,selectedValue:i,selectValue:o,tabValues:u}=e;const d=[],{blockElementScrollPositionUntilNextRender:m}=(0,s.o5)(),c=e=>{const t=e.currentTarget,a=d.indexOf(t),n=u[a].value;n!==i&&(m(t),o(n))},p=e=>{let t=null;switch(e.key){case"Enter":c(e);break;case"ArrowRight":{const a=d.indexOf(e.currentTarget)+1;t=d[a]??d[0];break}case"ArrowLeft":{const a=d.indexOf(e.currentTarget)-1;t=d[a]??d[d.length-1];break}}t?.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":a},t)},u.map((e=>{let{value:t,label:a,attributes:s}=e;return r.createElement("li",(0,n.Z)({role:"tab",tabIndex:i===t?0:-1,"aria-selected":i===t,key:t,ref:e=>d.push(e),onKeyDown:p,onClick:c},s,{className:(0,l.Z)("tabs__item",y.tabItem,s?.className,{"tabs__item--active":i===t})}),a??t)})))}function v(e){let{lazy:t,children:a,selectedValue:n}=e;const l=(Array.isArray(a)?a:[a]).filter(Boolean);if(t){const e=l.find((e=>e.props.value===n));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},l.map(((e,t)=>(0,r.cloneElement)(e,{key:t,hidden:e.props.value!==n}))))}function g(e){const t=h(e);return r.createElement("div",{className:(0,l.Z)("tabs-container",y.tabList)},r.createElement(k,(0,n.Z)({},e,t)),r.createElement(v,(0,n.Z)({},e,t)))}function w(e){const t=(0,b.Z)();return r.createElement(g,(0,n.Z)({key:String(t)},e))}},4785:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>d,contentTitle:()=>o,default:()=>f,frontMatter:()=>i,metadata:()=>u,toc:()=>m});var n=a(7462),r=(a(7294),a(3905)),l=a(4866),s=a(5162);const i={title:"ssm"},o=void 0,u={unversionedId:"middlewares/ssm",id:"middlewares/ssm",title:"ssm",description:"This middleware fetches parameters from AWS Systems Manager Parameter Store.",source:"@site/docs/middlewares/ssm.md",sourceDirName:"middlewares",slug:"/middlewares/ssm",permalink:"/docs/middlewares/ssm",draft:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/middlewares/ssm.md",tags:[],version:"current",lastUpdatedAt:1699550460,formattedLastUpdatedAt:"Nov 9, 2023",frontMatter:{title:"ssm"},sidebar:"tutorialSidebar",previous:{title:"sqs-partial-batch-failure",permalink:"/docs/middlewares/sqs-partial-batch-failure"},next:{title:"sts",permalink:"/docs/middlewares/sts"}},d={},m=[{value:"Install",id:"install",level:2},{value:"Options",id:"options",level:2},{value:"Sample usage",id:"sample-usage",level:2},{value:"Bundling",id:"bundling",level:2}],c={toc:m},p="wrapper";function f(e){let{components:t,...a}=e;return(0,r.kt)(p,(0,n.Z)({},c,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"This middleware fetches parameters from ",(0,r.kt)("a",{parentName:"p",href:"https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-paramstore.html"},"AWS Systems Manager Parameter Store"),"."),(0,r.kt)("p",null,"Parameters to fetch can be defined by path and by name (not mutually exclusive). See AWS docs ",(0,r.kt)("a",{parentName:"p",href:"https://aws.amazon.com/blogs/mt/organize-parameters-by-hierarchy-tags-or-amazon-cloudwatch-events-with-amazon-ec2-systems-manager-parameter-store/"},"here"),"."),(0,r.kt)("p",null,"Parameters can be assigned to the function handler's ",(0,r.kt)("inlineCode",{parentName:"p"},"context")," object by setting the ",(0,r.kt)("inlineCode",{parentName:"p"},"setToContext")," flag to ",(0,r.kt)("inlineCode",{parentName:"p"},"true"),". By default all parameters are added with uppercase names."),(0,r.kt)("p",null,"The Middleware makes a single API request to fetch all the parameters defined by name, but must make an additional request per specified path. This is because the AWS SDK currently doesn't expose a method to retrieve parameters from multiple paths."),(0,r.kt)("p",null,"For each parameter defined by name, you also provide the name under which its value should be added to ",(0,r.kt)("inlineCode",{parentName:"p"},"context"),". For each path, you instead provide a prefix, and by default the value import each parameter returned from that path will be added to ",(0,r.kt)("inlineCode",{parentName:"p"},"context")," with a name equal to what's left of the parameter's full name ",(0,r.kt)("em",{parentName:"p"},"after")," the defined path, with the prefix prepended. If the prefix is an empty string, nothing is prepended. You can override this behaviour by providing your own mapping function with the ",(0,r.kt)("inlineCode",{parentName:"p"},"getParamNameFromPath")," config option."),(0,r.kt)("h2",{id:"install"},"Install"),(0,r.kt)("p",null,"To install this middleware you can use NPM:"),(0,r.kt)(l.Z,{groupId:"npm2yarn",mdxType:"Tabs"},(0,r.kt)(s.Z,{value:"npm",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"npm install --save @middy/ssm\nnpm install --save-dev @aws-sdk/client-ssm\n"))),(0,r.kt)(s.Z,{value:"yarn",label:"Yarn",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"yarn add @middy/ssm\nyarn add --dev @aws-sdk/client-ssm\n"))),(0,r.kt)(s.Z,{value:"pnpm",label:"pnpm",mdxType:"TabItem"},(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"pnpm add @middy/ssm\npnpm add --save-dev @aws-sdk/client-ssm\n")))),(0,r.kt)("h2",{id:"options"},"Options"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"AwsClient")," (object) (default ",(0,r.kt)("inlineCode",{parentName:"li"},"SSMClient"),"): SSMClient class constructor (i.e. that has been instrumented with AWS X-Ray). Must be from ",(0,r.kt)("inlineCode",{parentName:"li"},"@aws-sdk/client-ssm"),"."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"awsClientOptions")," (object) (optional): Options to pass to SSMClient class constructor."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"awsClientAssumeRole")," (string) (optional): Internal key where role tokens are stored. See ",(0,r.kt)("a",{parentName:"li",href:"/docs/middlewares/sts"},"@middy/sts")," on to set this."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"awsClientCapture")," (function) (optional): Enable AWS X-Ray by passing ",(0,r.kt)("inlineCode",{parentName:"li"},"captureAWSv3Client")," from ",(0,r.kt)("inlineCode",{parentName:"li"},"aws-xray-sdk")," in."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"fetchData")," (object) (required): Mapping of internal key name to API request parameter ",(0,r.kt)("inlineCode",{parentName:"li"},"Names"),"/",(0,r.kt)("inlineCode",{parentName:"li"},"Path"),". ",(0,r.kt)("inlineCode",{parentName:"li"},"SecureString")," are automatically decrypted."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"disablePrefetch")," (boolean) (default ",(0,r.kt)("inlineCode",{parentName:"li"},"false"),"): On cold start requests will trigger early if they can. Setting ",(0,r.kt)("inlineCode",{parentName:"li"},"awsClientAssumeRole")," disables prefetch."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"cacheKey")," (string) (default ",(0,r.kt)("inlineCode",{parentName:"li"},"ssm"),"): Cache key for the fetched data responses. Must be unique across all middleware."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"cacheExpiry")," (number) (default ",(0,r.kt)("inlineCode",{parentName:"li"},"-1"),"): How long fetch data responses should be cached for. ",(0,r.kt)("inlineCode",{parentName:"li"},"-1"),": cache forever, ",(0,r.kt)("inlineCode",{parentName:"li"},"0"),": never cache, ",(0,r.kt)("inlineCode",{parentName:"li"},"n"),": cache for n ms."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"setToContext")," (boolean) (default ",(0,r.kt)("inlineCode",{parentName:"li"},"false"),"): Store role tokens to ",(0,r.kt)("inlineCode",{parentName:"li"},"request.context"),".")),(0,r.kt)("p",null,"NOTES:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Lambda is required to have IAM permission for ",(0,r.kt)("inlineCode",{parentName:"li"},"ssm:GetParameters")," and/or ",(0,r.kt)("inlineCode",{parentName:"li"},"ssm:GetParametersByPath")," depending on what you're requesting, along with ",(0,r.kt)("inlineCode",{parentName:"li"},"kms:Decrypt"),"."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"SSM")," has ",(0,r.kt)("a",{parentName:"li",href:"https://docs.aws.amazon.com/general/latest/gr/ssm.html"},"throughput limitations"),". Switching to Advanced Parameter type or increasing ",(0,r.kt)("inlineCode",{parentName:"li"},"maxRetries")," and ",(0,r.kt)("inlineCode",{parentName:"li"},"retryDelayOptions.base")," in ",(0,r.kt)("inlineCode",{parentName:"li"},"awsClientOptions")," may be required.")),(0,r.kt)("h2",{id:"sample-usage"},"Sample usage"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\nimport ssm from '@middy/ssm'\n\nconst handler = middy((event, context) => {\n return {}\n})\n\nlet globalDefaults = {}\nhandler\n .use(\n ssm({\n fetchData: {\n accessToken: '/dev/service_name/access_token', // single value\n dbParams: '/dev/service_name/database/', // object of values, key for each path\n defaults: '/dev/defaults'\n },\n setToContext: true\n })\n )\n .before((request) => {\n globalDefaults = request.context.defaults.global\n })\n")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-javascript"},"import middy from '@middy/core'\nimport { getInternal } from '@middy/util'\nimport ssm from '@middy/ssm'\n\nconst handler = middy((event, context) => {\n return {}\n})\n\nlet globalDefaults = {}\nhandler\n .use(\n ssm({\n fetchData: {\n defaults: '/dev/defaults'\n },\n cacheKey: 'ssm-defaults'\n })\n )\n .use(\n ssm({\n fetchData: {\n accessToken: '/dev/service_name/access_token', // single value\n dbParams: '/dev/service_name/database/' // object of values, key for each path\n },\n cacheExpiry: 15 * 60 * 1000,\n cacheKey: 'ssm-secrets'\n })\n )\n // ... other middleware that fetch\n .before(async (request) => {\n const data = await getInternal(\n ['accessToken', 'dbParams', 'defaults'],\n request\n )\n Object.assign(request.context, data)\n })\n")),(0,r.kt)("h2",{id:"bundling"},"Bundling"),(0,r.kt)("p",null,"To exclude ",(0,r.kt)("inlineCode",{parentName:"p"},"@aws-sdk")," add ",(0,r.kt)("inlineCode",{parentName:"p"},"@aws-sdk/client-ssm")," to the exclude list."))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ff488875.61c29dc9.js b/assets/js/ff488875.61c29dc9.js new file mode 100644 index 000000000..b64ba2304 --- /dev/null +++ b/assets/js/ff488875.61c29dc9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[1531],{4974:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>d,default:()=>m,frontMatter:()=>i,metadata:()=>o,toc:()=>u});var n=a(5893),s=a(1151),r=a(4866),l=a(5162);const i={title:"ssm"},d=void 0,o={id:"middlewares/ssm",title:"ssm",description:"This middleware fetches parameters from AWS Systems Manager Parameter Store.",source:"@site/docs/middlewares/ssm.md",sourceDirName:"middlewares",slug:"/middlewares/ssm",permalink:"/docs/middlewares/ssm",draft:!1,unlisted:!1,editUrl:"https://github.com/middyjs/middy/tree/main/website/docs/middlewares/ssm.md",tags:[],version:"current",lastUpdatedAt:1700079044,formattedLastUpdatedAt:"Nov 15, 2023",frontMatter:{title:"ssm"},sidebar:"tutorialSidebar",previous:{title:"sqs-partial-batch-failure",permalink:"/docs/middlewares/sqs-partial-batch-failure"},next:{title:"sts",permalink:"/docs/middlewares/sts"}},c={},u=[{value:"Install",id:"install",level:2},{value:"Options",id:"options",level:2},{value:"Sample usage",id:"sample-usage",level:2},{value:"Bundling",id:"bundling",level:2},{value:"Usage with TypeScript",id:"usage-with-typescript",level:2}];function h(e){const t={a:"a",code:"code",em:"em",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,s.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(t.p,{children:["This middleware fetches parameters from ",(0,n.jsx)(t.a,{href:"https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-paramstore.html",children:"AWS Systems Manager Parameter Store"}),"."]}),"\n",(0,n.jsxs)(t.p,{children:["Parameters to fetch can be defined by path and by name (not mutually exclusive). See AWS docs ",(0,n.jsx)(t.a,{href:"https://aws.amazon.com/blogs/mt/organize-parameters-by-hierarchy-tags-or-amazon-cloudwatch-events-with-amazon-ec2-systems-manager-parameter-store/",children:"here"}),"."]}),"\n",(0,n.jsxs)(t.p,{children:["Parameters can be assigned to the function handler's ",(0,n.jsx)(t.code,{children:"context"})," object by setting the ",(0,n.jsx)(t.code,{children:"setToContext"})," flag to ",(0,n.jsx)(t.code,{children:"true"}),". By default all parameters are added with uppercase names."]}),"\n",(0,n.jsx)(t.p,{children:"The Middleware makes a single API request to fetch all the parameters defined by name, but must make an additional request per specified path. This is because the AWS SDK currently doesn't expose a method to retrieve parameters from multiple paths."}),"\n",(0,n.jsxs)(t.p,{children:["For each parameter defined by name, you also provide the name under which its value should be added to ",(0,n.jsx)(t.code,{children:"context"}),". For each path, you instead provide a prefix, and by default the value import each parameter returned from that path will be added to ",(0,n.jsx)(t.code,{children:"context"})," with a name equal to what's left of the parameter's full name ",(0,n.jsx)(t.em,{children:"after"})," the defined path, with the prefix prepended. If the prefix is an empty string, nothing is prepended. You can override this behaviour by providing your own mapping function with the ",(0,n.jsx)(t.code,{children:"getParamNameFromPath"})," config option."]}),"\n",(0,n.jsx)(t.h2,{id:"install",children:"Install"}),"\n",(0,n.jsx)(t.p,{children:"To install this middleware you can use NPM:"}),"\n",(0,n.jsxs)(r.Z,{groupId:"npm2yarn",children:[(0,n.jsx)(l.Z,{value:"npm",children:(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-bash",children:"npm install --save @middy/ssm\nnpm install --save-dev @aws-sdk/client-ssm\n"})})}),(0,n.jsx)(l.Z,{value:"yarn",label:"Yarn",children:(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-bash",children:"yarn add @middy/ssm\nyarn add --dev @aws-sdk/client-ssm\n"})})}),(0,n.jsx)(l.Z,{value:"pnpm",label:"pnpm",children:(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-bash",children:"pnpm add @middy/ssm\npnpm add --save-dev @aws-sdk/client-ssm\n"})})})]}),"\n",(0,n.jsx)(t.h2,{id:"options",children:"Options"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"AwsClient"})," (object) (default ",(0,n.jsx)(t.code,{children:"SSMClient"}),"): SSMClient class constructor (i.e. that has been instrumented with AWS X-Ray). Must be from ",(0,n.jsx)(t.code,{children:"@aws-sdk/client-ssm"}),"."]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"awsClientOptions"})," (object) (optional): Options to pass to SSMClient class constructor."]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"awsClientAssumeRole"})," (string) (optional): Internal key where role tokens are stored. See ",(0,n.jsx)(t.a,{href:"/docs/middlewares/sts",children:"@middy/sts"})," on to set this."]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"awsClientCapture"})," (function) (optional): Enable AWS X-Ray by passing ",(0,n.jsx)(t.code,{children:"captureAWSv3Client"})," from ",(0,n.jsx)(t.code,{children:"aws-xray-sdk"})," in."]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"fetchData"})," (object) (required): Mapping of internal key name to API request parameter ",(0,n.jsx)(t.code,{children:"Names"}),"/",(0,n.jsx)(t.code,{children:"Path"}),". ",(0,n.jsx)(t.code,{children:"SecureString"})," are automatically decrypted."]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"disablePrefetch"})," (boolean) (default ",(0,n.jsx)(t.code,{children:"false"}),"): On cold start requests will trigger early if they can. Setting ",(0,n.jsx)(t.code,{children:"awsClientAssumeRole"})," disables prefetch."]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"cacheKey"})," (string) (default ",(0,n.jsx)(t.code,{children:"ssm"}),"): Cache key for the fetched data responses. Must be unique across all middleware."]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"cacheExpiry"})," (number) (default ",(0,n.jsx)(t.code,{children:"-1"}),"): How long fetch data responses should be cached for. ",(0,n.jsx)(t.code,{children:"-1"}),": cache forever, ",(0,n.jsx)(t.code,{children:"0"}),": never cache, ",(0,n.jsx)(t.code,{children:"n"}),": cache for n ms."]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"setToContext"})," (boolean) (default ",(0,n.jsx)(t.code,{children:"false"}),"): Store role tokens to ",(0,n.jsx)(t.code,{children:"request.context"}),"."]}),"\n"]}),"\n",(0,n.jsx)(t.p,{children:"NOTES:"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:["Lambda is required to have IAM permission for ",(0,n.jsx)(t.code,{children:"ssm:GetParameters"})," and/or ",(0,n.jsx)(t.code,{children:"ssm:GetParametersByPath"})," depending on what you're requesting, along with ",(0,n.jsx)(t.code,{children:"kms:Decrypt"}),"."]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"SSM"})," has ",(0,n.jsx)(t.a,{href:"https://docs.aws.amazon.com/general/latest/gr/ssm.html",children:"throughput limitations"}),". Switching to Advanced Parameter type or increasing ",(0,n.jsx)(t.code,{children:"maxRetries"})," and ",(0,n.jsx)(t.code,{children:"retryDelayOptions.base"})," in ",(0,n.jsx)(t.code,{children:"awsClientOptions"})," may be required."]}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"sample-usage",children:"Sample usage"}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-javascript",children:"import middy from '@middy/core'\nimport ssm from '@middy/ssm'\n\nconst lambdaHandler = (event, context) => {\n return {}\n}\n\nlet globalDefaults = {}\nexport const handler = middy()\n .use(\n ssm({\n fetchData: {\n accessToken: '/dev/service_name/access_token', // single value\n dbParams: '/dev/service_name/database/', // object of values, key for each path\n defaults: '/dev/defaults'\n },\n setToContext: true\n })\n )\n .before((request) => {\n globalDefaults = request.context.defaults.global\n })\n .handler(lambdaHandler)\n"})}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-javascript",children:"import middy from '@middy/core'\nimport { getInternal } from '@middy/util'\nimport ssm from '@middy/ssm'\n\nconst lambdaHandler = (event, context) => {\n return {}\n}\n\nlet globalDefaults = {}\nexport const handler = middy()\n .use(\n ssm({\n fetchData: {\n defaults: '/dev/defaults'\n },\n cacheKey: 'ssm-defaults'\n })\n )\n .use(\n ssm({\n fetchData: {\n accessToken: '/dev/service_name/access_token', // single value\n dbParams: '/dev/service_name/database/' // object of values, key for each path\n },\n cacheExpiry: 15 * 60 * 1000,\n cacheKey: 'ssm-secrets'\n })\n )\n // ... other middleware that fetch\n .before(async (request) => {\n const data = await getInternal(\n ['accessToken', 'dbParams', 'defaults'],\n request\n )\n Object.assign(request.context, data)\n })\n .handler(lambdaHandler)\n"})}),"\n",(0,n.jsx)(t.h2,{id:"bundling",children:"Bundling"}),"\n",(0,n.jsxs)(t.p,{children:["To exclude ",(0,n.jsx)(t.code,{children:"@aws-sdk"})," add ",(0,n.jsx)(t.code,{children:"@aws-sdk/client-ssm"})," to the exclude list."]}),"\n",(0,n.jsx)(t.h2,{id:"usage-with-typescript",children:"Usage with TypeScript"}),"\n",(0,n.jsxs)(t.p,{children:["Data in SSM can be stored as arbitrary JSON values. It's not possible to know in advance what shape the fetched SSM parameters will have, so by default the fetched parameters will have type ",(0,n.jsx)(t.code,{children:"unknown"}),"."]}),"\n",(0,n.jsxs)(t.p,{children:["You can provide some type hints by leveraging the ",(0,n.jsx)(t.code,{children:"ssmParam"})," utility function. This function allows you to specify what's the expected type that will be fetched for every parameter."]}),"\n",(0,n.jsxs)(t.p,{children:["The idea is that, for every parameter specified in the ",(0,n.jsx)(t.code,{children:"fetchData"})," option, rather than just providing the parameter path as a string, you can wrap it in a ",(0,n.jsx)(t.code,{children:"ssmParam<ParamType>(parameterPath)"})," call. Internally, ",(0,n.jsx)(t.code,{children:"ssmParam"})," is a function that will return ",(0,n.jsx)(t.code,{children:"parameterPath"})," as received, but it allows you to use generics to provide type hints for the expected type for that parameter."]}),"\n",(0,n.jsx)(t.p,{children:"This way TypeScript can understand how to treat the additional data attached to the context and stored in the internal storage."}),"\n",(0,n.jsxs)(t.p,{children:["The following example illustrates how to use ",(0,n.jsx)(t.code,{children:"ssmParam"}),":"]}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-typescript",children:"import middy from '@middy/core'\nimport { getInternal } from '@middy/util'\nimport ssm, { ssmParam } from '@middy/ssm'\n\nconst lambdaHandler = (event, context) => {\n return {}\n}\n\nlet globalDefaults = {}\nexport const handler = middy()\n .use(\n ssm({\n fetchData: {\n accessToken: ssmParam<string>('/dev/service_name/access_token'), // single value (will be typed as string)\n dbParams: ssmParam<{ user: string; pass: string }>(\n '/dev/service_name/database/'\n ) // object of values (typed as {user: string, pass: string})\n },\n cacheExpiry: 15 * 60 * 1000,\n cacheKey: 'ssm-secrets'\n })\n )\n // ... other middleware that fetch\n .before(async (request) => {\n const data = await getInternal(['accessToken', 'dbParams'], request)\n // data.accessToken (string)\n // data.dbParams ({user: string, pass: string})\n })\n .handler(lambdaHandler)\n"})})]})}function m(e={}){const{wrapper:t}={...(0,s.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(h,{...e})}):h(e)}},5162:(e,t,a)=>{a.d(t,{Z:()=>l});a(7294);var n=a(6010);const s={tabItem:"tabItem_Ymn6"};var r=a(5893);function l(e){let{children:t,hidden:a,className:l}=e;return(0,r.jsx)("div",{role:"tabpanel",className:(0,n.Z)(s.tabItem,l),hidden:a,children:t})}},4866:(e,t,a)=>{a.d(t,{Z:()=>w});var n=a(7294),s=a(6010),r=a(2466),l=a(6550),i=a(469),d=a(1980),o=a(7392),c=a(12);function u(e){return n.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,n.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function h(e){const{values:t,children:a}=e;return(0,n.useMemo)((()=>{const e=t??function(e){return u(e).map((e=>{let{props:{value:t,label:a,attributes:n,default:s}}=e;return{value:t,label:a,attributes:n,default:s}}))}(a);return function(e){const t=(0,o.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,a])}function m(e){let{value:t,tabValues:a}=e;return a.some((e=>e.value===t))}function p(e){let{queryString:t=!1,groupId:a}=e;const s=(0,l.k6)(),r=function(e){let{queryString:t=!1,groupId:a}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!a)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return a??null}({queryString:t,groupId:a});return[(0,d._X)(r),(0,n.useCallback)((e=>{if(!r)return;const t=new URLSearchParams(s.location.search);t.set(r,e),s.replace({...s.location,search:t.toString()})}),[r,s])]}function f(e){const{defaultValue:t,queryString:a=!1,groupId:s}=e,r=h(e),[l,d]=(0,n.useState)((()=>function(e){let{defaultValue:t,tabValues:a}=e;if(0===a.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!m({value:t,tabValues:a}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${a.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const n=a.find((e=>e.default))??a[0];if(!n)throw new Error("Unexpected error: 0 tabValues");return n.value}({defaultValue:t,tabValues:r}))),[o,u]=p({queryString:a,groupId:s}),[f,x]=function(e){let{groupId:t}=e;const a=function(e){return e?`docusaurus.tab.${e}`:null}(t),[s,r]=(0,c.Nk)(a);return[s,(0,n.useCallback)((e=>{a&&r.set(e)}),[a,r])]}({groupId:s}),b=(()=>{const e=o??f;return m({value:e,tabValues:r})?e:null})();(0,i.Z)((()=>{b&&d(b)}),[b]);return{selectedValue:l,selectValue:(0,n.useCallback)((e=>{if(!m({value:e,tabValues:r}))throw new Error(`Can't select invalid tab value=${e}`);d(e),u(e),x(e)}),[u,x,r]),tabValues:r}}var x=a(2389);const b={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var y=a(5893);function j(e){let{className:t,block:a,selectedValue:n,selectValue:l,tabValues:i}=e;const d=[],{blockElementScrollPositionUntilNextRender:o}=(0,r.o5)(),c=e=>{const t=e.currentTarget,a=d.indexOf(t),s=i[a].value;s!==n&&(o(t),l(s))},u=e=>{let t=null;switch(e.key){case"Enter":c(e);break;case"ArrowRight":{const a=d.indexOf(e.currentTarget)+1;t=d[a]??d[0];break}case"ArrowLeft":{const a=d.indexOf(e.currentTarget)-1;t=d[a]??d[d.length-1];break}}t?.focus()};return(0,y.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,s.Z)("tabs",{"tabs--block":a},t),children:i.map((e=>{let{value:t,label:a,attributes:r}=e;return(0,y.jsx)("li",{role:"tab",tabIndex:n===t?0:-1,"aria-selected":n===t,ref:e=>d.push(e),onKeyDown:u,onClick:c,...r,className:(0,s.Z)("tabs__item",b.tabItem,r?.className,{"tabs__item--active":n===t}),children:a??t},t)}))})}function g(e){let{lazy:t,children:a,selectedValue:s}=e;const r=(Array.isArray(a)?a:[a]).filter(Boolean);if(t){const e=r.find((e=>e.props.value===s));return e?(0,n.cloneElement)(e,{className:"margin-top--md"}):null}return(0,y.jsx)("div",{className:"margin-top--md",children:r.map(((e,t)=>(0,n.cloneElement)(e,{key:t,hidden:e.props.value!==s})))})}function v(e){const t=f(e);return(0,y.jsxs)("div",{className:(0,s.Z)("tabs-container",b.tabList),children:[(0,y.jsx)(j,{...e,...t}),(0,y.jsx)(g,{...e,...t})]})}function w(e){const t=(0,x.Z)();return(0,y.jsx)(v,{...e,children:u(e.children)},String(t))}},1151:(e,t,a)=>{a.d(t,{Z:()=>i,a:()=>l});var n=a(7294);const s={},r=n.createContext(s);function l(e){const t=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:l(e.components),n.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/main.a6ba7aa7.js b/assets/js/main.a6ba7aa7.js deleted file mode 100644 index 44607a314..000000000 --- a/assets/js/main.a6ba7aa7.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! For license information please see main.a6ba7aa7.js.LICENSE.txt */ -(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[179],{723:(e,t,n)=>{"use strict";n.d(t,{Z:()=>f});var r=n(7294),a=n(7462),o=n(8356),i=n.n(o),l=n(6887);const s={"00787874":[()=>n.e(8086).then(n.t.bind(n,9577,19)),"~docs/default/category-docs-tutorialsidebar-category-middy-intro-32a.json",9577],"01c9695c":[()=>Promise.all([n.e(532),n.e(3295)]).then(n.bind(n,4284)),"@site/docs/middlewares/http-json-body-parser.md",4284],"028754be":[()=>n.e(6238).then(n.bind(n,6105)),"@site/docs/events/sqs.md",6105],"0480b142":[()=>n.e(836).then(n.bind(n,3584)),"@site/docs/faq.md",3584],"08eadb91":[()=>n.e(1428).then(n.bind(n,8118)),"@site/docs/writing-middlewares/01-intro.md",8118],"08f83687":[()=>n.e(5409).then(n.bind(n,8710)),"@site/docs/events/code-commit.md",8710],"0976e874":[()=>Promise.all([n.e(532),n.e(4267)]).then(n.bind(n,6252)),"@site/docs/middlewares/error-logger.md",6252],"0ce61a91":[()=>n.e(6540).then(n.bind(n,9398)),"@site/docs/best-practices/05-bundling.md",9398],"0d245e6a":[()=>n.e(8481).then(n.bind(n,5505)),"@site/docs/events/kinesis-firehose.md",5505],"0e90e864":[()=>Promise.all([n.e(532),n.e(1469)]).then(n.bind(n,5891)),"@site/docs/middlewares/secrets-manager.md",5891],"1124057e":[()=>Promise.all([n.e(532),n.e(2308)]).then(n.bind(n,4724)),"@site/docs/middlewares/dynamodb.md",4724],"14eb3368":[()=>Promise.all([n.e(532),n.e(9817)]).then(n.bind(n,4228)),"@theme/DocCategoryGeneratedIndexPage",4228],"171930c3":[()=>n.e(2786).then(n.bind(n,5933)),"@site/docs/integrations/RDS.md",5933],17896441:[()=>Promise.all([n.e(532),n.e(614),n.e(817),n.e(7918)]).then(n.bind(n,230)),"@theme/DocItem",230],"18dc5a76":[()=>n.e(7566).then(n.bind(n,8134)),"@site/docs/events/api-gateway-http.md",8134],"19606b2d":[()=>Promise.all([n.e(532),n.e(1544)]).then(n.bind(n,236)),"@site/docs/middlewares/event-normalizer.md",236],"1be78505":[()=>Promise.all([n.e(532),n.e(9514)]).then(n.bind(n,9963)),"@theme/DocPage",9963],"1c88510b":[()=>Promise.all([n.e(532),n.e(7858)]).then(n.bind(n,1113)),"@site/docs/middlewares/s3-object-response.md",1113],"1e42f3f3":[()=>n.e(8102).then(n.bind(n,8714)),"@site/docs/middlewares/ws-json-body-parser.md",8714],"1ea8ecd6":[()=>n.e(5341).then(n.bind(n,6157)),"@site/docs/events/iot.md",6157],"1f391b9e":[()=>Promise.all([n.e(532),n.e(614),n.e(817),n.e(3085)]).then(n.bind(n,4247)),"@theme/MDXPage",4247],"211396ae":[()=>n.e(3616).then(n.bind(n,6862)),"@site/docs/events/cloud-watch-logs.md",6862],"24a252b9":[()=>Promise.all([n.e(532),n.e(1098)]).then(n.bind(n,5796)),"@site/docs/middlewares/input-output-logger.md",5796],"28b74e92":[()=>n.e(3839).then(n.bind(n,352)),"@site/docs/events/cloud-trail.md",352],"2b234cfe":[()=>n.e(9158).then(n.bind(n,3959)),"@site/docs/events/secrets-manager.md",3959],"2e6cdb22":[()=>Promise.all([n.e(532),n.e(5774)]).then(n.bind(n,4087)),"@site/docs/middlewares/ws-response.md",4087],"2f4f2e7a":[()=>n.e(5222).then(n.bind(n,5088)),"@site/docs/events/alexa.md",5088],"340d0816":[()=>n.e(8729).then(n.bind(n,997)),"@site/docs/events/mq.md",997],"34ad80cb":[()=>n.e(4662).then(n.bind(n,4131)),"@site/docs/events/cloud-front.md",4131],"34ebece8":[()=>n.e(5853).then(n.bind(n,8088)),"@site/docs/events/workmail.md",8088],"3673b941":[()=>Promise.all([n.e(532),n.e(2344)]).then(n.bind(n,3230)),"@site/docs/middlewares/rds-signer.md",3230],"393be207":[()=>n.e(7414).then(n.bind(n,3123)),"@site/src/pages/markdown-page.md",3123],"3a74057e":[()=>n.e(517).then(n.bind(n,2952)),"@site/docs/integrations/pino.md",2952],"3db93d31":[()=>Promise.all([n.e(532),n.e(3631)]).then(n.bind(n,7427)),"@site/docs/middlewares/http-multipart-body-parser.md",7427],"3e0add53":[()=>n.e(4844).then(n.t.bind(n,3769,19)),"/home/runner/work/middy/middy/website/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json",3769],"3ea7551b":[()=>n.e(9868).then(n.t.bind(n,9207,19)),"~docs/default/category-docs-tutorialsidebar-category-best-practices-14d.json",9207],"3f569cdf":[()=>Promise.all([n.e(532),n.e(3775)]).then(n.bind(n,504)),"@site/docs/middlewares/warmup.md",504],"4149078a":[()=>n.e(4183).then(n.bind(n,7794)),"@site/docs/upgrade/2-3.md",7794],"41b3f383":[()=>Promise.all([n.e(532),n.e(479)]).then(n.bind(n,6241)),"@site/docs/middlewares/service-discovery.md",6241],"436b299f":[()=>Promise.all([n.e(532),n.e(5077)]).then(n.bind(n,3687)),"@site/docs/middlewares/http-error-handler.md",3687],"44063d41":[()=>n.e(5709).then(n.t.bind(n,1290,19)),"~docs/default/category-docs-tutorialsidebar-category-upgrade-a5e.json",1290],"447662a1":[()=>n.e(1768).then(n.bind(n,9705)),"@site/docs/writing-middlewares/02-configurable-middlewares.md",9705],"4924cac4":[()=>Promise.all([n.e(532),n.e(5270)]).then(n.bind(n,8760)),"@site/docs/middlewares/http-cors.md",8760],"49fe1afb":[()=>n.e(9076).then(n.bind(n,1093)),"@site/docs/writing-middlewares/07-with-typescript.md",1093],"4f2dd8bc":[()=>n.e(8792).then(n.t.bind(n,1720,19)),"~docs/default/category-docs-tutorialsidebar-category-integrations-b7d.json",1720],"4f3a9363":[()=>n.e(8852).then(n.bind(n,5571)),"@site/docs/events/documentdb.md",5571],"5018e04c":[()=>n.e(9862).then(n.bind(n,377)),"@site/docs/intro/06-typescript.md",377],"52912c74":[()=>n.e(7452).then(n.bind(n,578)),"@site/docs/events/event-bridge.md",578],"53f1e98a":[()=>n.e(2469).then(n.bind(n,4572)),"@site/docs/events/s3.md",4572],"54ed1cf2":[()=>n.e(6827).then(n.bind(n,2492)),"@site/docs/best-practices/07-profiling.md",2492],"54fc444e":[()=>n.e(1790).then(n.bind(n,3817)),"@site/docs/best-practices/02-connection-reuse.md",3817],"56ed1c64":[()=>n.e(4097).then(n.bind(n,8393)),"@site/docs/events/01-intro.md",8393],"58ba397f":[()=>Promise.all([n.e(532),n.e(1497)]).then(n.bind(n,3278)),"@site/docs/middlewares/http-urlencode-path-parser.md",3278],"590578cb":[()=>n.e(3181).then(n.bind(n,4393)),"@site/docs/intro/08-history.md",4393],"59ac4306":[()=>Promise.all([n.e(532),n.e(3151)]).then(n.bind(n,6381)),"@site/docs/middlewares/http-urlencode-body-parser.md",6381],"5a01598e":[()=>n.e(4297).then(n.bind(n,3699)),"@site/docs/upgrade/3-4.md",3699],"5afe45f2":[()=>Promise.all([n.e(532),n.e(5938)]).then(n.bind(n,6179)),"@site/docs/intro/02-getting-started.md",6179],"5e80d65e":[()=>n.e(1436).then(n.bind(n,7164)),"@site/docs/intro/07-hooks.md",7164],"5e9f5e1a":[()=>Promise.resolve().then(n.bind(n,6809)),"@generated/docusaurus.config",6809],"632f0854":[()=>n.e(9997).then(n.bind(n,698)),"@site/docs/writing-middlewares/05-timeouts.md",698],"646b055a":[()=>n.e(5686).then(n.bind(n,5010)),"@site/docs/events/s3-batch.md",5010],"654635c7":[()=>Promise.all([n.e(532),n.e(1338)]).then(n.bind(n,3423)),"@site/docs/routers/http-router.md",3423],"65ce35be":[()=>n.e(8002).then(n.bind(n,8056)),"@site/docs/events/kafka-self-managed.md",8056],"667584a0":[()=>n.e(2600).then(n.bind(n,1023)),"@site/docs/events/sns.md",1023],"68318e94":[()=>n.e(811).then(n.bind(n,1910)),"@site/docs/events/api-gateway-authorizer.md",1910],"687b60fb":[()=>n.e(7783).then(n.bind(n,2391)),"@site/docs/upgrade/0-1.md",2391],"6a1376e9":[()=>Promise.all([n.e(532),n.e(8644)]).then(n.bind(n,7886)),"@site/docs/middlewares/sqs-partial-batch-failure.md",7886],"6c4d050a":[()=>Promise.all([n.e(532),n.e(5512)]).then(n.bind(n,3058)),"@site/docs/middlewares/http-header-normalizer.md",3058],70761510:[()=>n.e(5024).then(n.bind(n,491)),"@site/docs/best-practices/06-small-node-modules.md",491],"7076eee1":[()=>n.e(481).then(n.bind(n,5846)),"@site/docs/events/application-load-balancer.md",5846],"71d5009c":[()=>n.e(2193).then(n.bind(n,9987)),"@site/docs/events/config.md",9987],73083085:[()=>n.e(8365).then(n.bind(n,4465)),"@site/docs/events/api-gateway-rest.md",4465],"7745d517":[()=>Promise.all([n.e(532),n.e(1702)]).then(n.bind(n,2426)),"@site/docs/middlewares/appconfig.md",2426],79674995:[()=>n.e(8200).then(n.bind(n,1189)),"@site/docs/events/cloud-formation.md",1189],"796ad5a5":[()=>n.e(6172).then(n.bind(n,4619)),"@site/docs/events/appsync.md",4619],"7cb784f6":[()=>n.e(711).then(n.bind(n,7124)),"@site/docs/upgrade/1-2.md",7124],"810a87d2":[()=>n.e(8455).then(n.t.bind(n,2472,19)),"~docs/default/category-docs-tutorialsidebar-category-writing-middlewares-c2b.json",2472],"871ff594":[()=>n.e(7359).then(n.t.bind(n,5745,19)),"/home/runner/work/middy/middy/website/.docusaurus/docusaurus-plugin-content-pages/default/plugin-route-context-module-100.json",5745],"89ce8835":[()=>n.e(1955).then(n.bind(n,8086)),"@site/docs/events/cognito.md",8086],"935f2afb":[()=>n.e(53).then(n.t.bind(n,1109,19)),"~docs/default/version-current-metadata-prop-751.json",1109],"949815f5":[()=>n.e(8394).then(n.bind(n,1057)),"@site/docs/events/kafka-managed-streaming.md",1057],"958c573d":[()=>n.e(8786).then(n.bind(n,6551)),"@site/docs/events/s3-object.md",6551],"9d43f09c":[()=>n.e(8591).then(n.bind(n,3380)),"@site/docs/events/ec2.md",3380],"9d560f77":[()=>n.e(310).then(n.bind(n,7904)),"@site/docs/events/dynamodb.md",7904],a0697f1b:[()=>n.e(5258).then(n.bind(n,5549)),"@site/docs/events/vpc-lattice.md",5549],a07e9812:[()=>n.e(2511).then(n.bind(n,7963)),"@site/docs/events/rds.md",7963],a17e0e42:[()=>Promise.all([n.e(532),n.e(2201)]).then(n.bind(n,6951)),"@site/docs/middlewares/s3.md",6951],a2b2d33a:[()=>n.e(8974).then(n.bind(n,4794)),"@site/docs/writing-middlewares/06-more-examples.md",4794],a3787fd8:[()=>n.e(9576).then(n.bind(n,6710)),"@site/docs/intro/08-influence.md",6710],a7630442:[()=>n.e(9502).then(n.bind(n,1822)),"@site/docs/intro/11-sponsoring.md",1822],a7c9f8b5:[()=>n.e(5898).then(n.bind(n,6881)),"@site/docs/events/ses.md",6881],a8e9225e:[()=>Promise.all([n.e(532),n.e(9319)]).then(n.bind(n,1468)),"@site/docs/middlewares/http-content-negotiation.md",1468],acb7d57c:[()=>n.e(1819).then(n.bind(n,3019)),"@site/docs/best-practices/01-intro.md",3019],ace0032f:[()=>n.e(2521).then(n.bind(n,1173)),"@site/docs/integrations/serverless-stack.md",1173],ad1e712e:[()=>n.e(9235).then(n.bind(n,6592)),"@site/docs/middlewares/00-intro.md",6592],aecdbf7e:[()=>Promise.all([n.e(532),n.e(1073)]).then(n.bind(n,7676)),"@site/docs/middlewares/cloudwatch-metrics.md",7676],afa23cb9:[()=>n.e(6161).then(n.t.bind(n,2982,19)),"~docs/default/category-docs-tutorialsidebar-category-middlewares-a97.json",2982],b3edb814:[()=>Promise.all([n.e(532),n.e(3786)]).then(n.bind(n,6995)),"@site/docs/middlewares/sts.md",6995],b5163cd3:[()=>n.e(4751).then(n.bind(n,5024)),"@site/docs/integrations/01-intro.md",5024],b5584809:[()=>n.e(2803).then(n.bind(n,4316)),"@site/docs/integrations/serverless-framework.md",4316],b5aee65c:[()=>n.e(4510).then(n.bind(n,4543)),"@site/docs/intro/09-release-cycle.md",4543],b6105e9b:[()=>n.e(8471).then(n.bind(n,304)),"@site/docs/events/code-pipeline.md",304],b6b85ed9:[()=>Promise.all([n.e(532),n.e(6476)]).then(n.bind(n,3976)),"@site/docs/middlewares/http-content-encoding.md",3976],b83c886a:[()=>n.e(8931).then(n.bind(n,1235)),"@site/docs/intro/10-contributing.md",1235],b9c75af0:[()=>n.e(4504).then(n.bind(n,8525)),"@site/docs/events/kinesis-streams.md",8525],bff6c11b:[()=>n.e(4785).then(n.bind(n,7123)),"@site/docs/events/api-gateway-ws.md",7123],c0ad98a5:[()=>Promise.all([n.e(532),n.e(2932)]).then(n.bind(n,5535)),"@site/docs/middlewares/http-partial-response.md",5535],c1378803:[()=>Promise.all([n.e(532),n.e(7450)]).then(n.bind(n,9310)),"@site/docs/integrations/lambda-powertools.md",9310],c21432a2:[()=>n.e(1570).then(n.bind(n,8112)),"@site/docs/intro/06-streamify-response.md",8112],c2371ba7:[()=>Promise.all([n.e(532),n.e(7724)]).then(n.bind(n,6933)),"@site/docs/middlewares/http-response-serializer.md",6933],c4f5d8e4:[()=>Promise.all([n.e(532),n.e(614),n.e(4195)]).then(n.bind(n,4537)),"@site/src/pages/index.js",4537],c4fefc0c:[()=>n.e(7812).then(n.bind(n,9945)),"@site/docs/best-practices/03-internal-context.md",9945],cb00b214:[()=>n.e(1721).then(n.t.bind(n,736,19)),"~docs/default/category-docs-tutorialsidebar-category-aws-event-examples-51d.json",736],cc16eb0f:[()=>n.e(5893).then(n.bind(n,3313)),"@site/docs/events/lex.md",3313],cd47eedf:[()=>n.e(4388).then(n.bind(n,8609)),"@site/docs/intro/05-handling-errors.md",8609],ce7003dc:[()=>n.e(9071).then(n.bind(n,6949)),"@site/docs/writing-middlewares/03-inline-middlewares.md",6949],d0953a14:[()=>Promise.all([n.e(532),n.e(4740)]).then(n.bind(n,3144)),"@site/docs/middlewares/validator.md",3144],d80baa5c:[()=>n.e(9647).then(n.bind(n,7906)),"@site/docs/writing-middlewares/04-internal-storage.md",7906],da0b5c8a:[()=>Promise.all([n.e(532),n.e(7796)]).then(n.bind(n,7837)),"@site/docs/middlewares/do-not-wait-for-empty-event-loop.md",7837],dbc9373d:[()=>Promise.all([n.e(532),n.e(9116)]).then(n.bind(n,8406)),"@site/docs/middlewares/http-security-headers.md",8406],e0fb88b0:[()=>n.e(4288).then(n.bind(n,2627)),"@site/docs/middlewares/third-party.md",2627],e1c77d88:[()=>n.e(6388).then(n.bind(n,3009)),"@site/docs/integrations/apollo-server.md",3009],e326eb4c:[()=>n.e(7677).then(n.t.bind(n,8203,19)),"~docs/default/category-docs-tutorialsidebar-category-routers-ed1.json",8203],ea2a30f2:[()=>n.e(527).then(n.bind(n,5186)),"@site/docs/intro/06-testing.md",5186],ec96ff11:[()=>n.e(7276).then(n.bind(n,8849)),"@site/docs/intro/08-utilities.md",8849],ecbeea21:[()=>n.e(9310).then(n.bind(n,5262)),"@site/docs/intro/01-intro.md",5262],f0136a98:[()=>Promise.all([n.e(532),n.e(1575)]).then(n.bind(n,1144)),"@site/docs/middlewares/http-event-normalizer.md",1144],f0886e87:[()=>n.e(3955).then(n.bind(n,8569)),"@site/docs/events/function-url.md",8569],f20815ad:[()=>n.e(4760).then(n.bind(n,3750)),"@site/docs/events/connect.md",3750],f33bafb6:[()=>n.e(8185).then(n.bind(n,265)),"@site/docs/routers/ws-router.md",265],f795adf5:[()=>n.e(8841).then(n.bind(n,9677)),"@site/docs/intro/04-early-interrupt.md",9677],f9850e34:[()=>n.e(6177).then(n.bind(n,1977)),"@site/docs/intro/03-how-it-works.md",1977],faf674c6:[()=>n.e(4962).then(n.bind(n,4011)),"@site/docs/events/iot-events.md",4011],ff488875:[()=>Promise.all([n.e(532),n.e(1531)]).then(n.bind(n,4785)),"@site/docs/middlewares/ssm.md",4785]};function c(e){let{error:t,retry:n,pastDelay:a}=e;return t?r.createElement("div",{style:{textAlign:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"}},r.createElement("p",null,String(t)),r.createElement("div",null,r.createElement("button",{type:"button",onClick:n},"Retry"))):a?r.createElement("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"}},r.createElement("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb"},r.createElement("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2"},r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"8"},r.createElement("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"}))))):null}var u=n(9670),d=n(226);function p(e,t){if("*"===e)return i()({loading:c,loader:()=>n.e(4204).then(n.bind(n,4204)),modules:["@theme/NotFound"],webpack:()=>[4204],render(e,t){const n=e.default;return r.createElement(d.z,{value:{plugin:{name:"native",id:"default"}}},r.createElement(n,t))}});const o=l[`${e}-${t}`],p={},f=[],m=[],h=(0,u.Z)(o);return Object.entries(h).forEach((e=>{let[t,n]=e;const r=s[n];r&&(p[t]=r[0],f.push(r[1]),m.push(r[2]))})),i().Map({loading:c,loader:p,modules:f,webpack:()=>m,render(t,n){const i=JSON.parse(JSON.stringify(o));Object.entries(t).forEach((t=>{let[n,r]=t;const a=r.default;if(!a)throw new Error(`The page component at ${e} doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.`);"object"!=typeof a&&"function"!=typeof a||Object.keys(r).filter((e=>"default"!==e)).forEach((e=>{a[e]=r[e]}));let o=i;const l=n.split(".");l.slice(0,-1).forEach((e=>{o=o[e]})),o[l[l.length-1]]=a}));const l=i.__comp;delete i.__comp;const s=i.__context;return delete i.__context,r.createElement(d.z,{value:s},r.createElement(l,(0,a.Z)({},i,n)))}})}const f=[{path:"/markdown-page",component:p("/markdown-page","08c"),exact:!0},{path:"/docs",component:p("/docs","7a8"),routes:[{path:"/docs/",component:p("/docs/","a61"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/best-practices/bundling",component:p("/docs/best-practices/bundling","ec3"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/best-practices/connection-reuse",component:p("/docs/best-practices/connection-reuse","e9a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/best-practices/internal-context",component:p("/docs/best-practices/internal-context","fb7"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/best-practices/intro",component:p("/docs/best-practices/intro","816"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/best-practices/profiling",component:p("/docs/best-practices/profiling","6cf"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/best-practices/small-node-modules",component:p("/docs/best-practices/small-node-modules","385"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/category/aws-event-examples",component:p("/docs/category/aws-event-examples","116"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/category/best-practices",component:p("/docs/category/best-practices","320"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/category/integrations",component:p("/docs/category/integrations","3d4"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/category/intro-to-middy",component:p("/docs/category/intro-to-middy","a3d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/category/middlewares",component:p("/docs/category/middlewares","65f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/category/routers",component:p("/docs/category/routers","8cd"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/category/upgrade",component:p("/docs/category/upgrade","558"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/category/writing-middlewares",component:p("/docs/category/writing-middlewares","c76"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/events/alexa",component:p("/docs/events/alexa","561"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/events/api-gateway-authorizer",component:p("/docs/events/api-gateway-authorizer","b1d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/events/api-gateway-http",component:p("/docs/events/api-gateway-http","dc8"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/events/api-gateway-rest",component:p("/docs/events/api-gateway-rest","1d4"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/events/api-gateway-ws",component:p("/docs/events/api-gateway-ws","ddb"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/events/application-load-balancer",component:p("/docs/events/application-load-balancer","344"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/events/appsync",component:p("/docs/events/appsync","c0f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/events/cloud-formation",component:p("/docs/events/cloud-formation","134"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/events/cloud-front",component:p("/docs/events/cloud-front","2e5"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/events/cloud-trail",component:p("/docs/events/cloud-trail","ec9"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/events/cloud-watch-logs",component:p("/docs/events/cloud-watch-logs","21e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/events/code-commit",component:p("/docs/events/code-commit","676"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/events/code-pipeline",component:p("/docs/events/code-pipeline","785"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/events/cognito",component:p("/docs/events/cognito","207"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/events/config",component:p("/docs/events/config","bfe"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/events/connect",component:p("/docs/events/connect","f4d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/events/documentdb",component:p("/docs/events/documentdb","7a2"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/events/dynamodb",component:p("/docs/events/dynamodb","53a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/events/ec2",component:p("/docs/events/ec2","94f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/events/event-bridge",component:p("/docs/events/event-bridge","3bf"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/events/function-url",component:p("/docs/events/function-url","b85"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/events/intro",component:p("/docs/events/intro","e69"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/events/iot",component:p("/docs/events/iot","cea"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/events/iot-events",component:p("/docs/events/iot-events","6c2"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/events/kafka-managed-streaming",component:p("/docs/events/kafka-managed-streaming","bbd"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/events/kafka-self-managed",component:p("/docs/events/kafka-self-managed","d9e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/events/kinesis-firehose",component:p("/docs/events/kinesis-firehose","253"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/events/kinesis-streams",component:p("/docs/events/kinesis-streams","9aa"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/events/lex",component:p("/docs/events/lex","af4"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/events/mq",component:p("/docs/events/mq","5eb"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/events/rds",component:p("/docs/events/rds","3c4"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/events/s3",component:p("/docs/events/s3","05f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/events/s3-batch",component:p("/docs/events/s3-batch","e3b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/events/s3-object",component:p("/docs/events/s3-object","d5a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/events/secrets-manager",component:p("/docs/events/secrets-manager","ea6"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/events/ses",component:p("/docs/events/ses","22b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/events/sns",component:p("/docs/events/sns","af6"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/events/sqs",component:p("/docs/events/sqs","2ce"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/events/vpc-lattice",component:p("/docs/events/vpc-lattice","ec4"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/events/workmail",component:p("/docs/events/workmail","541"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/faq",component:p("/docs/faq","e79"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/integrations/apollo-server",component:p("/docs/integrations/apollo-server","d7d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/integrations/intro",component:p("/docs/integrations/intro","0d2"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/integrations/lambda-powertools",component:p("/docs/integrations/lambda-powertools","57c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/integrations/pino",component:p("/docs/integrations/pino","2b6"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/integrations/RDS",component:p("/docs/integrations/RDS","c6b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/integrations/serverless-framework",component:p("/docs/integrations/serverless-framework","95a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/integrations/serverless-stack",component:p("/docs/integrations/serverless-stack","206"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/intro/contributing",component:p("/docs/intro/contributing","e03"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/intro/early-interrupt",component:p("/docs/intro/early-interrupt","5ac"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/intro/getting-started",component:p("/docs/intro/getting-started","224"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/intro/handling-errors",component:p("/docs/intro/handling-errors","9da"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/intro/history",component:p("/docs/intro/history","b44"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/intro/hooks",component:p("/docs/intro/hooks","bb3"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/intro/how-it-works",component:p("/docs/intro/how-it-works","965"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/intro/influence",component:p("/docs/intro/influence","6be"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/intro/release-cycle",component:p("/docs/intro/release-cycle","f31"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/intro/sponsoring",component:p("/docs/intro/sponsoring","578"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/intro/streamify-response",component:p("/docs/intro/streamify-response","9ee"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/intro/testing",component:p("/docs/intro/testing","064"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/intro/typescript",component:p("/docs/intro/typescript","3e8"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/intro/utilities",component:p("/docs/intro/utilities","b1f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/middlewares/appconfig",component:p("/docs/middlewares/appconfig","ca4"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/middlewares/cloudwatch-metrics",component:p("/docs/middlewares/cloudwatch-metrics","8bc"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/middlewares/do-not-wait-for-empty-event-loop",component:p("/docs/middlewares/do-not-wait-for-empty-event-loop","579"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/middlewares/dynamodb",component:p("/docs/middlewares/dynamodb","8d2"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/middlewares/error-logger",component:p("/docs/middlewares/error-logger","388"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/middlewares/event-normalizer",component:p("/docs/middlewares/event-normalizer","6b6"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/middlewares/http-content-encoding",component:p("/docs/middlewares/http-content-encoding","404"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/middlewares/http-content-negotiation",component:p("/docs/middlewares/http-content-negotiation","b8b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/middlewares/http-cors",component:p("/docs/middlewares/http-cors","d5f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/middlewares/http-error-handler",component:p("/docs/middlewares/http-error-handler","044"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/middlewares/http-event-normalizer",component:p("/docs/middlewares/http-event-normalizer","442"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/middlewares/http-header-normalizer",component:p("/docs/middlewares/http-header-normalizer","614"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/middlewares/http-json-body-parser",component:p("/docs/middlewares/http-json-body-parser","6df"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/middlewares/http-multipart-body-parser",component:p("/docs/middlewares/http-multipart-body-parser","022"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/middlewares/http-partial-response",component:p("/docs/middlewares/http-partial-response","35c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/middlewares/http-response-serializer",component:p("/docs/middlewares/http-response-serializer","041"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/middlewares/http-security-headers",component:p("/docs/middlewares/http-security-headers","410"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/middlewares/http-urlencode-body-parser",component:p("/docs/middlewares/http-urlencode-body-parser","041"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/middlewares/http-urlencode-path-parser",component:p("/docs/middlewares/http-urlencode-path-parser","678"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/middlewares/input-output-logger",component:p("/docs/middlewares/input-output-logger","40b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/middlewares/intro",component:p("/docs/middlewares/intro","e79"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/middlewares/rds-signer",component:p("/docs/middlewares/rds-signer","a53"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/middlewares/s3",component:p("/docs/middlewares/s3","b3a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/middlewares/s3-object-response",component:p("/docs/middlewares/s3-object-response","5ed"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/middlewares/secrets-manager",component:p("/docs/middlewares/secrets-manager","381"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/middlewares/service-discovery",component:p("/docs/middlewares/service-discovery","d35"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/middlewares/sqs-partial-batch-failure",component:p("/docs/middlewares/sqs-partial-batch-failure","4f2"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/middlewares/ssm",component:p("/docs/middlewares/ssm","42b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/middlewares/sts",component:p("/docs/middlewares/sts","522"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/middlewares/third-party",component:p("/docs/middlewares/third-party","588"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/middlewares/validator",component:p("/docs/middlewares/validator","37c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/middlewares/warmup",component:p("/docs/middlewares/warmup","d75"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/middlewares/ws-json-body-parser",component:p("/docs/middlewares/ws-json-body-parser","8b5"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/middlewares/ws-response",component:p("/docs/middlewares/ws-response","702"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/routers/http-router",component:p("/docs/routers/http-router","9b1"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/routers/ws-router",component:p("/docs/routers/ws-router","354"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/upgrade/0-1",component:p("/docs/upgrade/0-1","95b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/upgrade/1-2",component:p("/docs/upgrade/1-2","667"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/upgrade/2-3",component:p("/docs/upgrade/2-3","b3c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/upgrade/3-4",component:p("/docs/upgrade/3-4","809"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/writing-middlewares/configurable-middlewares",component:p("/docs/writing-middlewares/configurable-middlewares","4e7"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/writing-middlewares/inline-middlewares",component:p("/docs/writing-middlewares/inline-middlewares","d97"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/writing-middlewares/internal-storage",component:p("/docs/writing-middlewares/internal-storage","cc1"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/writing-middlewares/intro",component:p("/docs/writing-middlewares/intro","b44"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/writing-middlewares/more-examples",component:p("/docs/writing-middlewares/more-examples","fa2"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/writing-middlewares/timeouts",component:p("/docs/writing-middlewares/timeouts","1a6"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/writing-middlewares/with-typescript",component:p("/docs/writing-middlewares/with-typescript","863"),exact:!0,sidebar:"tutorialSidebar"}]},{path:"/",component:p("/","645"),exact:!0},{path:"*",component:p("*")}]},8934:(e,t,n)=>{"use strict";n.d(t,{_:()=>a,t:()=>o});var r=n(7294);const a=r.createContext(!1);function o(e){let{children:t}=e;const[n,o]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{o(!0)}),[]),r.createElement(a.Provider,{value:n},t)}},7221:(e,t,n)=>{"use strict";var r=n(7294),a=n(3935),o=n(3727),i=n(405),l=n(412);const s=[n(2497),n(3310),n(8320),n(2295)];var c=n(723),u=n(6550),d=n(8790);function p(e){let{children:t}=e;return r.createElement(r.Fragment,null,t)}var f=n(7462),m=n(5742),h=n(2263),g=n(4996),b=n(6668),v=n(1944),y=n(4711),w=n(9727),k=n(3320),S=n(8780),E=n(197);function x(){const{i18n:{defaultLocale:e,localeConfigs:t}}=(0,h.Z)(),n=(0,y.l)();return r.createElement(m.Z,null,Object.entries(t).map((e=>{let[t,{htmlLang:a}]=e;return r.createElement("link",{key:t,rel:"alternate",href:n.createUrl({locale:t,fullyQualified:!0}),hrefLang:a})})),r.createElement("link",{rel:"alternate",href:n.createUrl({locale:e,fullyQualified:!0}),hrefLang:"x-default"}))}function _(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,h.Z)(),a=function(){const{siteConfig:{url:e,baseUrl:t,trailingSlash:n}}=(0,h.Z)(),{pathname:r}=(0,u.TH)();return e+(0,S.applyTrailingSlash)((0,g.Z)(r),{trailingSlash:n,baseUrl:t})}(),o=t?`${n}${t}`:a;return r.createElement(m.Z,null,r.createElement("meta",{property:"og:url",content:o}),r.createElement("link",{rel:"canonical",href:o}))}function C(){const{i18n:{currentLocale:e}}=(0,h.Z)(),{metadata:t,image:n}=(0,b.L)();return r.createElement(r.Fragment,null,r.createElement(m.Z,null,r.createElement("meta",{name:"twitter:card",content:"summary_large_image"}),r.createElement("body",{className:w.h})),n&&r.createElement(v.d,{image:n}),r.createElement(_,null),r.createElement(x,null),r.createElement(E.Z,{tag:k.HX,locale:e}),r.createElement(m.Z,null,t.map(((e,t)=>r.createElement("meta",(0,f.Z)({key:t},e))))))}const T=new Map;function A(e){if(T.has(e.pathname))return{...e,pathname:T.get(e.pathname)};if((0,d.f)(c.Z,e.pathname).some((e=>{let{route:t}=e;return!0===t.exact})))return T.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return T.set(e.pathname,t),{...e,pathname:t}}var L=n(8934),P=n(8940);function R(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];const a=s.map((t=>{const r=t.default?.[e]??t[e];return r?.(...n)}));return()=>a.forEach((e=>e?.()))}const N=function(e){let{children:t,location:n,previousLocation:a}=e;return(0,r.useLayoutEffect)((()=>{a!==n&&(!function(e){let{location:t,previousLocation:n}=e;if(!n)return;const r=t.pathname===n.pathname,a=t.hash===n.hash,o=t.search===n.search;if(r&&a&&!o)return;const{hash:i}=t;if(i){const e=decodeURIComponent(i.substring(1)),t=document.getElementById(e);t?.scrollIntoView()}else window.scrollTo(0,0)}({location:n,previousLocation:a}),R("onRouteDidUpdate",{previousLocation:a,location:n}))}),[a,n]),t};function O(e){const t=Array.from(new Set([e,decodeURI(e)])).map((e=>(0,d.f)(c.Z,e))).flat();return Promise.all(t.map((e=>e.route.component.preload?.())))}class I extends r.Component{previousLocation;routeUpdateCleanupCb;constructor(e){super(e),this.previousLocation=null,this.routeUpdateCleanupCb=l.Z.canUseDOM?R("onRouteUpdate",{previousLocation:null,location:this.props.location}):()=>{},this.state={nextRouteHasLoaded:!0}}shouldComponentUpdate(e,t){if(e.location===this.props.location)return t.nextRouteHasLoaded;const n=e.location;return this.previousLocation=this.props.location,this.setState({nextRouteHasLoaded:!1}),this.routeUpdateCleanupCb=R("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),O(n.pathname).then((()=>{this.routeUpdateCleanupCb(),this.setState({nextRouteHasLoaded:!0})})).catch((e=>{console.warn(e),window.location.reload()})),!1}render(){const{children:e,location:t}=this.props;return r.createElement(N,{previousLocation:this.previousLocation,location:t},r.createElement(u.AW,{location:t,render:()=>e}))}}const D=I,M="__docusaurus-base-url-issue-banner-container",F="__docusaurus-base-url-issue-banner",j="__docusaurus-base-url-issue-banner-suggestion-container",B="__DOCUSAURUS_INSERT_BASEURL_BANNER";function z(e){return`\nwindow['${B}'] = true;\n\ndocument.addEventListener('DOMContentLoaded', maybeInsertBanner);\n\nfunction maybeInsertBanner() {\n var shouldInsert = window['${B}'];\n shouldInsert && insertBanner();\n}\n\nfunction insertBanner() {\n var bannerContainer = document.getElementById('${M}');\n if (!bannerContainer) {\n return;\n }\n var bannerHtml = ${JSON.stringify(function(e){return`\n<div id="${F}" style="border: thick solid red; background-color: rgb(255, 230, 179); margin: 20px; padding: 20px; font-size: 20px;">\n <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p>\n <p>A very common reason is a wrong site <a href="https://docusaurus.io/docs/docusaurus.config.js/#baseUrl" style="font-weight: bold;">baseUrl configuration</a>.</p>\n <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">${e}</span> ${"/"===e?" (default value)":""}</p>\n <p>We suggest trying baseUrl = <span id="${j}" style="font-weight: bold; color: green;"></span></p>\n</div>\n`}(e)).replace(/</g,"\\<")};\n bannerContainer.innerHTML = bannerHtml;\n var suggestionContainer = document.getElementById('${j}');\n var actualHomePagePath = window.location.pathname;\n var suggestedBaseUrl = actualHomePagePath.substr(-1) === '/'\n ? actualHomePagePath\n : actualHomePagePath + '/';\n suggestionContainer.innerHTML = suggestedBaseUrl;\n}\n`}function U(){const{siteConfig:{baseUrl:e}}=(0,h.Z)();return(0,r.useLayoutEffect)((()=>{window[B]=!1}),[]),r.createElement(r.Fragment,null,!l.Z.canUseDOM&&r.createElement(m.Z,null,r.createElement("script",null,z(e))),r.createElement("div",{id:M}))}function $(){const{siteConfig:{baseUrl:e,baseUrlIssueBanner:t}}=(0,h.Z)(),{pathname:n}=(0,u.TH)();return t&&n===e?r.createElement(U,null):null}function q(){const{siteConfig:{favicon:e,title:t,noIndex:n},i18n:{currentLocale:a,localeConfigs:o}}=(0,h.Z)(),i=(0,g.Z)(e),{htmlLang:l,direction:s}=o[a];return r.createElement(m.Z,null,r.createElement("html",{lang:l,dir:s}),r.createElement("title",null,t),r.createElement("meta",{property:"og:title",content:t}),r.createElement("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),n&&r.createElement("meta",{name:"robots",content:"noindex, nofollow"}),e&&r.createElement("link",{rel:"icon",href:i}))}var G=n(4763),H=n(2389);function Z(){const e=(0,H.Z)();return r.createElement(m.Z,null,r.createElement("html",{"data-has-hydrated":e}))}function V(){const e=(0,d.H)(c.Z),t=(0,u.TH)();return r.createElement(G.Z,null,r.createElement(P.M,null,r.createElement(L.t,null,r.createElement(p,null,r.createElement(q,null),r.createElement(C,null),r.createElement($,null),r.createElement(D,{location:A(t)},e)),r.createElement(Z,null))))}var W=n(6887);const Y=function(e){try{return document.createElement("link").relList.supports(e)}catch{return!1}}("prefetch")?function(e){return new Promise(((t,n)=>{if("undefined"==typeof document)return void n();const r=document.createElement("link");r.setAttribute("rel","prefetch"),r.setAttribute("href",e),r.onload=()=>t(),r.onerror=()=>n();const a=document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode;a?.appendChild(r)}))}:function(e){return new Promise(((t,n)=>{const r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=()=>{200===r.status?t():n()},r.send(null)}))};var K=n(9670);const X=new Set,Q=new Set,J=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,ee={prefetch(e){if(!(e=>!J()&&!Q.has(e)&&!X.has(e))(e))return!1;X.add(e);const t=(0,d.f)(c.Z,e).flatMap((e=>{return t=e.route.path,Object.entries(W).filter((e=>{let[n]=e;return n.replace(/-[^-]+$/,"")===t})).flatMap((e=>{let[,t]=e;return Object.values((0,K.Z)(t))}));var t}));return Promise.all(t.map((e=>{const t=n.gca(e);return t&&!t.includes("undefined")?Y(t).catch((()=>{})):Promise.resolve()})))},preload:e=>!!(e=>!J()&&!Q.has(e))(e)&&(Q.add(e),O(e))},te=Object.freeze(ee);if(l.Z.canUseDOM){window.docusaurus=te;const e=a.hydrate;O(window.location.pathname).then((()=>{e(r.createElement(i.B6,null,r.createElement(o.VK,null,r.createElement(V,null))),document.getElementById("__docusaurus"))}))}},8940:(e,t,n)=>{"use strict";n.d(t,{_:()=>u,M:()=>d});var r=n(7294),a=n(6809);const o=JSON.parse('{"docusaurus-lunr-search":{"default":{"fileNames":{"searchDoc":"search-doc-1699550506581.json","lunrIndex":"lunr-index-1699550506581.json"}}},"docusaurus-plugin-content-docs":{"default":{"path":"/docs","versions":[{"name":"current","label":"Next","isLast":true,"path":"/docs","mainDocId":"intro/intro","docs":[{"id":"best-practices/bundling","path":"/docs/best-practices/bundling","sidebar":"tutorialSidebar"},{"id":"best-practices/connection-reuse","path":"/docs/best-practices/connection-reuse","sidebar":"tutorialSidebar"},{"id":"best-practices/internal-context","path":"/docs/best-practices/internal-context","sidebar":"tutorialSidebar"},{"id":"best-practices/intro","path":"/docs/best-practices/intro","sidebar":"tutorialSidebar"},{"id":"best-practices/profiling","path":"/docs/best-practices/profiling","sidebar":"tutorialSidebar"},{"id":"best-practices/small-node-modules","path":"/docs/best-practices/small-node-modules","sidebar":"tutorialSidebar"},{"id":"events/alexa","path":"/docs/events/alexa","sidebar":"tutorialSidebar"},{"id":"events/api-gateway-authorizer","path":"/docs/events/api-gateway-authorizer","sidebar":"tutorialSidebar"},{"id":"events/api-gateway-http","path":"/docs/events/api-gateway-http","sidebar":"tutorialSidebar"},{"id":"events/api-gateway-rest","path":"/docs/events/api-gateway-rest","sidebar":"tutorialSidebar"},{"id":"events/api-gateway-ws","path":"/docs/events/api-gateway-ws","sidebar":"tutorialSidebar"},{"id":"events/application-load-balancer","path":"/docs/events/application-load-balancer","sidebar":"tutorialSidebar"},{"id":"events/appsync","path":"/docs/events/appsync","sidebar":"tutorialSidebar"},{"id":"events/cloud-formation","path":"/docs/events/cloud-formation","sidebar":"tutorialSidebar"},{"id":"events/cloud-front","path":"/docs/events/cloud-front","sidebar":"tutorialSidebar"},{"id":"events/cloud-trail","path":"/docs/events/cloud-trail","sidebar":"tutorialSidebar"},{"id":"events/cloud-watch-logs","path":"/docs/events/cloud-watch-logs","sidebar":"tutorialSidebar"},{"id":"events/code-commit","path":"/docs/events/code-commit","sidebar":"tutorialSidebar"},{"id":"events/code-pipeline","path":"/docs/events/code-pipeline","sidebar":"tutorialSidebar"},{"id":"events/cognito","path":"/docs/events/cognito","sidebar":"tutorialSidebar"},{"id":"events/config","path":"/docs/events/config","sidebar":"tutorialSidebar"},{"id":"events/connect","path":"/docs/events/connect","sidebar":"tutorialSidebar"},{"id":"events/documentdb","path":"/docs/events/documentdb","sidebar":"tutorialSidebar"},{"id":"events/dynamodb","path":"/docs/events/dynamodb","sidebar":"tutorialSidebar"},{"id":"events/ec2","path":"/docs/events/ec2","sidebar":"tutorialSidebar"},{"id":"events/event-bridge","path":"/docs/events/event-bridge","sidebar":"tutorialSidebar"},{"id":"events/function-url","path":"/docs/events/function-url","sidebar":"tutorialSidebar"},{"id":"events/intro","path":"/docs/events/intro","sidebar":"tutorialSidebar"},{"id":"events/iot","path":"/docs/events/iot","sidebar":"tutorialSidebar"},{"id":"events/iot-events","path":"/docs/events/iot-events","sidebar":"tutorialSidebar"},{"id":"events/kafka-managed-streaming","path":"/docs/events/kafka-managed-streaming","sidebar":"tutorialSidebar"},{"id":"events/kafka-self-managed","path":"/docs/events/kafka-self-managed","sidebar":"tutorialSidebar"},{"id":"events/kinesis-firehose","path":"/docs/events/kinesis-firehose","sidebar":"tutorialSidebar"},{"id":"events/kinesis-streams","path":"/docs/events/kinesis-streams","sidebar":"tutorialSidebar"},{"id":"events/lex","path":"/docs/events/lex","sidebar":"tutorialSidebar"},{"id":"events/mq","path":"/docs/events/mq","sidebar":"tutorialSidebar"},{"id":"events/rds","path":"/docs/events/rds","sidebar":"tutorialSidebar"},{"id":"events/s3","path":"/docs/events/s3","sidebar":"tutorialSidebar"},{"id":"events/s3-batch","path":"/docs/events/s3-batch","sidebar":"tutorialSidebar"},{"id":"events/s3-object","path":"/docs/events/s3-object","sidebar":"tutorialSidebar"},{"id":"events/secrets-manager","path":"/docs/events/secrets-manager","sidebar":"tutorialSidebar"},{"id":"events/ses","path":"/docs/events/ses","sidebar":"tutorialSidebar"},{"id":"events/sns","path":"/docs/events/sns","sidebar":"tutorialSidebar"},{"id":"events/sqs","path":"/docs/events/sqs","sidebar":"tutorialSidebar"},{"id":"events/vpc-lattice","path":"/docs/events/vpc-lattice","sidebar":"tutorialSidebar"},{"id":"events/workmail","path":"/docs/events/workmail","sidebar":"tutorialSidebar"},{"id":"faq","path":"/docs/faq","sidebar":"tutorialSidebar"},{"id":"integrations/apollo-server","path":"/docs/integrations/apollo-server","sidebar":"tutorialSidebar"},{"id":"integrations/intro","path":"/docs/integrations/intro","sidebar":"tutorialSidebar"},{"id":"integrations/lambda-powertools","path":"/docs/integrations/lambda-powertools","sidebar":"tutorialSidebar"},{"id":"integrations/pino","path":"/docs/integrations/pino","sidebar":"tutorialSidebar"},{"id":"integrations/RDS","path":"/docs/integrations/RDS","sidebar":"tutorialSidebar"},{"id":"integrations/serverless-framework","path":"/docs/integrations/serverless-framework","sidebar":"tutorialSidebar"},{"id":"integrations/serverless-stack","path":"/docs/integrations/serverless-stack","sidebar":"tutorialSidebar"},{"id":"intro/contributing","path":"/docs/intro/contributing","sidebar":"tutorialSidebar"},{"id":"intro/early-interrupt","path":"/docs/intro/early-interrupt","sidebar":"tutorialSidebar"},{"id":"intro/getting-started","path":"/docs/intro/getting-started","sidebar":"tutorialSidebar"},{"id":"intro/handling-errors","path":"/docs/intro/handling-errors","sidebar":"tutorialSidebar"},{"id":"intro/history","path":"/docs/intro/history","sidebar":"tutorialSidebar"},{"id":"intro/hooks","path":"/docs/intro/hooks","sidebar":"tutorialSidebar"},{"id":"intro/how-it-works","path":"/docs/intro/how-it-works","sidebar":"tutorialSidebar"},{"id":"intro/influence","path":"/docs/intro/influence","sidebar":"tutorialSidebar"},{"id":"intro/intro","path":"/docs/","sidebar":"tutorialSidebar"},{"id":"intro/release-cycle","path":"/docs/intro/release-cycle","sidebar":"tutorialSidebar"},{"id":"intro/sponsoring","path":"/docs/intro/sponsoring","sidebar":"tutorialSidebar"},{"id":"intro/streamify-response","path":"/docs/intro/streamify-response","sidebar":"tutorialSidebar"},{"id":"intro/testing","path":"/docs/intro/testing","sidebar":"tutorialSidebar"},{"id":"intro/typescript","path":"/docs/intro/typescript","sidebar":"tutorialSidebar"},{"id":"intro/utilities","path":"/docs/intro/utilities","sidebar":"tutorialSidebar"},{"id":"middlewares/appconfig","path":"/docs/middlewares/appconfig","sidebar":"tutorialSidebar"},{"id":"middlewares/cloudwatch-metrics","path":"/docs/middlewares/cloudwatch-metrics","sidebar":"tutorialSidebar"},{"id":"middlewares/do-not-wait-for-empty-event-loop","path":"/docs/middlewares/do-not-wait-for-empty-event-loop","sidebar":"tutorialSidebar"},{"id":"middlewares/dynamodb","path":"/docs/middlewares/dynamodb","sidebar":"tutorialSidebar"},{"id":"middlewares/error-logger","path":"/docs/middlewares/error-logger","sidebar":"tutorialSidebar"},{"id":"middlewares/event-normalizer","path":"/docs/middlewares/event-normalizer","sidebar":"tutorialSidebar"},{"id":"middlewares/http-content-encoding","path":"/docs/middlewares/http-content-encoding","sidebar":"tutorialSidebar"},{"id":"middlewares/http-content-negotiation","path":"/docs/middlewares/http-content-negotiation","sidebar":"tutorialSidebar"},{"id":"middlewares/http-cors","path":"/docs/middlewares/http-cors","sidebar":"tutorialSidebar"},{"id":"middlewares/http-error-handler","path":"/docs/middlewares/http-error-handler","sidebar":"tutorialSidebar"},{"id":"middlewares/http-event-normalizer","path":"/docs/middlewares/http-event-normalizer","sidebar":"tutorialSidebar"},{"id":"middlewares/http-header-normalizer","path":"/docs/middlewares/http-header-normalizer","sidebar":"tutorialSidebar"},{"id":"middlewares/http-json-body-parser","path":"/docs/middlewares/http-json-body-parser","sidebar":"tutorialSidebar"},{"id":"middlewares/http-multipart-body-parser","path":"/docs/middlewares/http-multipart-body-parser","sidebar":"tutorialSidebar"},{"id":"middlewares/http-partial-response","path":"/docs/middlewares/http-partial-response","sidebar":"tutorialSidebar"},{"id":"middlewares/http-response-serializer","path":"/docs/middlewares/http-response-serializer","sidebar":"tutorialSidebar"},{"id":"middlewares/http-security-headers","path":"/docs/middlewares/http-security-headers","sidebar":"tutorialSidebar"},{"id":"middlewares/http-urlencode-body-parser","path":"/docs/middlewares/http-urlencode-body-parser","sidebar":"tutorialSidebar"},{"id":"middlewares/http-urlencode-path-parser","path":"/docs/middlewares/http-urlencode-path-parser","sidebar":"tutorialSidebar"},{"id":"middlewares/input-output-logger","path":"/docs/middlewares/input-output-logger","sidebar":"tutorialSidebar"},{"id":"middlewares/intro","path":"/docs/middlewares/intro","sidebar":"tutorialSidebar"},{"id":"middlewares/rds-signer","path":"/docs/middlewares/rds-signer","sidebar":"tutorialSidebar"},{"id":"middlewares/s3","path":"/docs/middlewares/s3","sidebar":"tutorialSidebar"},{"id":"middlewares/s3-object-response","path":"/docs/middlewares/s3-object-response","sidebar":"tutorialSidebar"},{"id":"middlewares/secrets-manager","path":"/docs/middlewares/secrets-manager","sidebar":"tutorialSidebar"},{"id":"middlewares/service-discovery","path":"/docs/middlewares/service-discovery","sidebar":"tutorialSidebar"},{"id":"middlewares/sqs-partial-batch-failure","path":"/docs/middlewares/sqs-partial-batch-failure","sidebar":"tutorialSidebar"},{"id":"middlewares/ssm","path":"/docs/middlewares/ssm","sidebar":"tutorialSidebar"},{"id":"middlewares/sts","path":"/docs/middlewares/sts","sidebar":"tutorialSidebar"},{"id":"middlewares/third-party","path":"/docs/middlewares/third-party","sidebar":"tutorialSidebar"},{"id":"middlewares/validator","path":"/docs/middlewares/validator","sidebar":"tutorialSidebar"},{"id":"middlewares/warmup","path":"/docs/middlewares/warmup","sidebar":"tutorialSidebar"},{"id":"middlewares/ws-json-body-parser","path":"/docs/middlewares/ws-json-body-parser","sidebar":"tutorialSidebar"},{"id":"middlewares/ws-response","path":"/docs/middlewares/ws-response","sidebar":"tutorialSidebar"},{"id":"routers/http-router","path":"/docs/routers/http-router","sidebar":"tutorialSidebar"},{"id":"routers/ws-router","path":"/docs/routers/ws-router","sidebar":"tutorialSidebar"},{"id":"upgrade/0-1","path":"/docs/upgrade/0-1","sidebar":"tutorialSidebar"},{"id":"upgrade/1-2","path":"/docs/upgrade/1-2","sidebar":"tutorialSidebar"},{"id":"upgrade/2-3","path":"/docs/upgrade/2-3","sidebar":"tutorialSidebar"},{"id":"upgrade/3-4","path":"/docs/upgrade/3-4","sidebar":"tutorialSidebar"},{"id":"writing-middlewares/configurable-middlewares","path":"/docs/writing-middlewares/configurable-middlewares","sidebar":"tutorialSidebar"},{"id":"writing-middlewares/inline-middlewares","path":"/docs/writing-middlewares/inline-middlewares","sidebar":"tutorialSidebar"},{"id":"writing-middlewares/internal-storage","path":"/docs/writing-middlewares/internal-storage","sidebar":"tutorialSidebar"},{"id":"writing-middlewares/intro","path":"/docs/writing-middlewares/intro","sidebar":"tutorialSidebar"},{"id":"writing-middlewares/more-examples","path":"/docs/writing-middlewares/more-examples","sidebar":"tutorialSidebar"},{"id":"writing-middlewares/timeouts","path":"/docs/writing-middlewares/timeouts","sidebar":"tutorialSidebar"},{"id":"writing-middlewares/with-typescript","path":"/docs/writing-middlewares/with-typescript","sidebar":"tutorialSidebar"},{"id":"/category/intro-to-middy","path":"/docs/category/intro-to-middy","sidebar":"tutorialSidebar"},{"id":"/category/middlewares","path":"/docs/category/middlewares","sidebar":"tutorialSidebar"},{"id":"/category/writing-middlewares","path":"/docs/category/writing-middlewares","sidebar":"tutorialSidebar"},{"id":"/category/routers","path":"/docs/category/routers","sidebar":"tutorialSidebar"},{"id":"/category/upgrade","path":"/docs/category/upgrade","sidebar":"tutorialSidebar"},{"id":"/category/aws-event-examples","path":"/docs/category/aws-event-examples","sidebar":"tutorialSidebar"},{"id":"/category/integrations","path":"/docs/category/integrations","sidebar":"tutorialSidebar"},{"id":"/category/best-practices","path":"/docs/category/best-practices","sidebar":"tutorialSidebar"}],"draftIds":[],"sidebars":{"tutorialSidebar":{"link":{"path":"/docs/category/intro-to-middy","label":"Intro to Middy"}}}}],"breadcrumbs":true}}}'),i=JSON.parse('{"defaultLocale":"en","locales":["en"],"path":"i18n","currentLocale":"en","localeConfigs":{"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en"}}}');var l=n(7529);const s=JSON.parse('{"docusaurusVersion":"2.4.3","siteVersion":"0.0.0","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"2.4.3"},"docusaurus-plugin-content-blog":{"type":"package","name":"@docusaurus/plugin-content-blog","version":"2.4.3"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"2.4.3"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"2.4.3"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"2.4.3"},"docusaurus-lunr-search":{"type":"package","name":"docusaurus-lunr-search","version":"2.4.2"}}}'),c={siteConfig:a.default,siteMetadata:s,globalData:o,i18n:i,codeTranslations:l},u=r.createContext(c);function d(e){let{children:t}=e;return r.createElement(u.Provider,{value:c},t)}},4763:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var r=n(7294),a=n(412),o=n(5742),i=n(8780),l=n(4173);function s(e){let{error:t,tryAgain:n}=e;return r.createElement("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"}},r.createElement("h1",{style:{fontSize:"3rem"}},"This page crashed"),r.createElement("button",{type:"button",onClick:n,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"}},"Try again"),r.createElement(c,{error:t}))}function c(e){let{error:t}=e;const n=(0,i.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return r.createElement("p",{style:{whiteSpace:"pre-wrap"}},n)}function u(e){let{error:t,tryAgain:n}=e;return r.createElement(p,{fallback:()=>r.createElement(s,{error:t,tryAgain:n})},r.createElement(o.Z,null,r.createElement("title",null,"Page Error")),r.createElement(l.Z,null,r.createElement(s,{error:t,tryAgain:n})))}const d=e=>r.createElement(u,e);class p extends r.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){a.Z.canUseDOM&&this.setState({error:e})}render(){const{children:e}=this.props,{error:t}=this.state;if(t){const e={error:t,tryAgain:()=>this.setState({error:null})};return(this.props.fallback??d)(e)}return e??null}}},412:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});const r="undefined"!=typeof window&&"document"in window&&"createElement"in window.document,a={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},5742:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(405);function o(e){return r.createElement(a.ql,e)}},9960:(e,t,n)=>{"use strict";n.d(t,{Z:()=>f});var r=n(7462),a=n(7294),o=n(3727),i=n(8780),l=n(2263),s=n(3919),c=n(412);const u=a.createContext({collectLink:()=>{}});var d=n(4996);function p(e,t){let{isNavLink:n,to:p,href:f,activeClassName:m,isActive:h,"data-noBrokenLinkCheck":g,autoAddBaseUrl:b=!0,...v}=e;const{siteConfig:{trailingSlash:y,baseUrl:w}}=(0,l.Z)(),{withBaseUrl:k}=(0,d.C)(),S=(0,a.useContext)(u),E=(0,a.useRef)(null);(0,a.useImperativeHandle)(t,(()=>E.current));const x=p||f;const _=(0,s.Z)(x),C=x?.replace("pathname://","");let T=void 0!==C?(A=C,b&&(e=>e.startsWith("/"))(A)?k(A):A):void 0;var A;T&&_&&(T=(0,i.applyTrailingSlash)(T,{trailingSlash:y,baseUrl:w}));const L=(0,a.useRef)(!1),P=n?o.OL:o.rU,R=c.Z.canUseIntersectionObserver,N=(0,a.useRef)(),O=()=>{L.current||null==T||(window.docusaurus.preload(T),L.current=!0)};(0,a.useEffect)((()=>(!R&&_&&null!=T&&window.docusaurus.prefetch(T),()=>{R&&N.current&&N.current.disconnect()})),[N,T,R,_]);const I=T?.startsWith("#")??!1,D=!T||!_||I;return D||g||S.collectLink(T),D?a.createElement("a",(0,r.Z)({ref:E,href:T},x&&!_&&{target:"_blank",rel:"noopener noreferrer"},v)):a.createElement(P,(0,r.Z)({},v,{onMouseEnter:O,onTouchStart:O,innerRef:e=>{E.current=e,R&&e&&_&&(N.current=new window.IntersectionObserver((t=>{t.forEach((t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(N.current.unobserve(e),N.current.disconnect(),null!=T&&window.docusaurus.prefetch(T))}))})),N.current.observe(e))},to:T},n&&{isActive:h,activeClassName:m}))}const f=a.forwardRef(p)},5999:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s,I:()=>l});var r=n(7294);function a(e,t){const n=e.split(/(\{\w+\})/).map(((e,n)=>{if(n%2==1){const n=t?.[e.slice(1,-1)];if(void 0!==n)return n}return e}));return n.some((e=>(0,r.isValidElement)(e)))?n.map(((e,t)=>(0,r.isValidElement)(e)?r.cloneElement(e,{key:t}):e)).filter((e=>""!==e)):n.join("")}var o=n(7529);function i(e){let{id:t,message:n}=e;if(void 0===t&&void 0===n)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return o[t??n]??n??t}function l(e,t){let{message:n,id:r}=e;return a(i({message:n,id:r}),t)}function s(e){let{children:t,id:n,values:o}=e;if(t&&"string"!=typeof t)throw console.warn("Illegal <Translate> children",t),new Error("The Docusaurus <Translate> component only accept simple string values");const l=i({message:t,id:n});return r.createElement(r.Fragment,null,a(l,o))}},9935:(e,t,n)=>{"use strict";n.d(t,{m:()=>r});const r="default"},3919:(e,t,n)=>{"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function a(e){return void 0!==e&&!r(e)}n.d(t,{Z:()=>a,b:()=>r})},4996:(e,t,n)=>{"use strict";n.d(t,{C:()=>i,Z:()=>l});var r=n(7294),a=n(2263),o=n(3919);function i(){const{siteConfig:{baseUrl:e,url:t}}=(0,a.Z)(),n=(0,r.useCallback)(((n,r)=>function(e,t,n,r){let{forcePrependBaseUrl:a=!1,absolute:i=!1}=void 0===r?{}:r;if(!n||n.startsWith("#")||(0,o.b)(n))return n;if(a)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;const l=n.startsWith(t)?n:t+n.replace(/^\//,"");return i?e+l:l}(t,e,n,r)),[t,e]);return{withBaseUrl:n}}function l(e,t){void 0===t&&(t={});const{withBaseUrl:n}=i();return n(e,t)}},2263:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(8940);function o(){return(0,r.useContext)(a._)}},8084:(e,t,n)=>{"use strict";n.d(t,{OD:()=>o,eZ:()=>i});var r=n(2263),a=n(9935);function o(e,t){void 0===t&&(t={});const n=function(){const{globalData:e}=(0,r.Z)();return e}()[e];if(!n&&t.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return n}function i(e,t,n){void 0===t&&(t=a.m),void 0===n&&(n={});const r=o(e),i=r?.[t];if(!i&&n.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return i}},2389:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(8934);function o(){return(0,r.useContext)(a._)}},9670:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});const r=e=>"object"==typeof e&&!!e&&Object.keys(e).length>0;function a(e){const t={};return function e(n,a){Object.entries(n).forEach((n=>{let[o,i]=n;const l=a?`${a}.${o}`:o;r(i)?e(i,l):t[l]=i}))}(e),t}},226:(e,t,n)=>{"use strict";n.d(t,{_:()=>a,z:()=>o});var r=n(7294);const a=r.createContext(null);function o(e){let{children:t,value:n}=e;const o=r.useContext(a),i=(0,r.useMemo)((()=>function(e){let{parent:t,value:n}=e;if(!t){if(!n)throw new Error("Unexpected: no Docusaurus route context found");if(!("plugin"in n))throw new Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute");return n}const r={...t.data,...n?.data};return{plugin:t.plugin,data:r}}({parent:o,value:n})),[o,n]);return r.createElement(a.Provider,{value:i},t)}},4104:(e,t,n)=>{"use strict";n.d(t,{Iw:()=>f,gA:()=>u,_r:()=>s,Jo:()=>m,zh:()=>c,yW:()=>p,gB:()=>d});var r=n(6550),a=n(8084);const o=e=>e.versions.find((e=>e.isLast));function i(e,t){const n=function(e,t){const n=o(e);return[...e.versions.filter((e=>e!==n)),n].find((e=>!!(0,r.LX)(t,{path:e.path,exact:!1,strict:!1})))}(e,t),a=n?.docs.find((e=>!!(0,r.LX)(t,{path:e.path,exact:!0,strict:!1})));return{activeVersion:n,activeDoc:a,alternateDocVersions:a?function(t){const n={};return e.versions.forEach((e=>{e.docs.forEach((r=>{r.id===t&&(n[e.name]=r)}))})),n}(a.id):{}}}const l={},s=()=>(0,a.OD)("docusaurus-plugin-content-docs")??l,c=e=>(0,a.eZ)("docusaurus-plugin-content-docs",e,{failfast:!0});function u(e){void 0===e&&(e={});const t=s(),{pathname:n}=(0,r.TH)();return function(e,t,n){void 0===n&&(n={});const a=Object.entries(e).sort(((e,t)=>t[1].path.localeCompare(e[1].path))).find((e=>{let[,n]=e;return!!(0,r.LX)(t,{path:n.path,exact:!1,strict:!1})})),o=a?{pluginId:a[0],pluginData:a[1]}:void 0;if(!o&&n.failfast)throw new Error(`Can't find active docs plugin for "${t}" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: ${Object.values(e).map((e=>e.path)).join(", ")}`);return o}(t,n,e)}function d(e){return c(e).versions}function p(e){const t=c(e);return o(t)}function f(e){const t=c(e),{pathname:n}=(0,r.TH)();return i(t,n)}function m(e){const t=c(e),{pathname:n}=(0,r.TH)();return function(e,t){const n=o(e);return{latestDocSuggestion:i(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(t,n)}},8320:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n(4865),a=n.n(r);a().configure({showSpinner:!1});const o={onRouteUpdate(e){let{location:t,previousLocation:n}=e;if(n&&t.pathname!==n.pathname){const e=window.setTimeout((()=>{a().start()}),200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){a().done()}}},3310:(e,t,n)=>{"use strict";n.r(t);var r=n(7410),a=n(6809);!function(e){const{themeConfig:{prism:t}}=a.default,{additionalLanguages:r}=t;globalThis.Prism=e,r.forEach((e=>{n(6726)(`./prism-${e}`)})),delete globalThis.Prism}(r.Z)},9471:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294);const a={iconExternalLink:"iconExternalLink_nPIU"};function o(e){let{width:t=13.5,height:n=13.5}=e;return r.createElement("svg",{width:t,height:n,"aria-hidden":"true",viewBox:"0 0 24 24",className:a.iconExternalLink},r.createElement("path",{fill:"currentColor",d:"M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"}))}},4173:(e,t,n)=>{"use strict";n.d(t,{Z:()=>pt});var r=n(7294),a=n(6010),o=n(4763),i=n(1944),l=n(7462),s=n(6550),c=n(5999),u=n(5936);const d="__docusaurus_skipToContent_fallback";function p(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function f(){const e=(0,r.useRef)(null),{action:t}=(0,s.k6)(),n=(0,r.useCallback)((e=>{e.preventDefault();const t=document.querySelector("main:first-of-type")??document.getElementById(d);t&&p(t)}),[]);return(0,u.S)((n=>{let{location:r}=n;e.current&&!r.hash&&"PUSH"===t&&p(e.current)})),{containerRef:e,onClick:n}}const m=(0,c.I)({id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation",message:"Skip to main content"});function h(e){const t=e.children??m,{containerRef:n,onClick:a}=f();return r.createElement("div",{ref:n,role:"region","aria-label":m},r.createElement("a",(0,l.Z)({},e,{href:`#${d}`,onClick:a}),t))}var g=n(5281),b=n(9727);const v={skipToContent:"skipToContent_fXgn"};function y(){return r.createElement(h,{className:v.skipToContent})}var w=n(6668),k=n(9689);function S(e){let{width:t=21,height:n=21,color:a="currentColor",strokeWidth:o=1.2,className:i,...s}=e;return r.createElement("svg",(0,l.Z)({viewBox:"0 0 15 15",width:t,height:n},s),r.createElement("g",{stroke:a,strokeWidth:o},r.createElement("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})))}const E={closeButton:"closeButton_CVFx"};function x(e){return r.createElement("button",(0,l.Z)({type:"button","aria-label":(0,c.I)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"})},e,{className:(0,a.Z)("clean-btn close",E.closeButton,e.className)}),r.createElement(S,{width:14,height:14,strokeWidth:3.1}))}const _={content:"content_knG7"};function C(e){const{announcementBar:t}=(0,w.L)(),{content:n}=t;return r.createElement("div",(0,l.Z)({},e,{className:(0,a.Z)(_.content,e.className),dangerouslySetInnerHTML:{__html:n}}))}const T={announcementBar:"announcementBar_mb4j",announcementBarPlaceholder:"announcementBarPlaceholder_vyr4",announcementBarClose:"announcementBarClose_gvF7",announcementBarContent:"announcementBarContent_xLdY"};function A(){const{announcementBar:e}=(0,w.L)(),{isActive:t,close:n}=(0,k.nT)();if(!t)return null;const{backgroundColor:a,textColor:o,isCloseable:i}=e;return r.createElement("div",{className:T.announcementBar,style:{backgroundColor:a,color:o},role:"banner"},i&&r.createElement("div",{className:T.announcementBarPlaceholder}),r.createElement(C,{className:T.announcementBarContent}),i&&r.createElement(x,{onClick:n,className:T.announcementBarClose}))}var L=n(3163),P=n(2466);var R=n(902),N=n(3102);const O=r.createContext(null);function I(e){let{children:t}=e;const n=function(){const e=(0,L.e)(),t=(0,N.HY)(),[n,a]=(0,r.useState)(!1),o=null!==t.component,i=(0,R.D9)(o);return(0,r.useEffect)((()=>{o&&!i&&a(!0)}),[o,i]),(0,r.useEffect)((()=>{o?e.shown||a(!0):a(!1)}),[e.shown,o]),(0,r.useMemo)((()=>[n,a]),[n])}();return r.createElement(O.Provider,{value:n},t)}function D(e){if(e.component){const t=e.component;return r.createElement(t,e.props)}}function M(){const e=(0,r.useContext)(O);if(!e)throw new R.i6("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,a=(0,r.useCallback)((()=>n(!1)),[n]),o=(0,N.HY)();return(0,r.useMemo)((()=>({shown:t,hide:a,content:D(o)})),[a,o,t])}function F(e){let{header:t,primaryMenu:n,secondaryMenu:o}=e;const{shown:i}=M();return r.createElement("div",{className:"navbar-sidebar"},t,r.createElement("div",{className:(0,a.Z)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":i})},r.createElement("div",{className:"navbar-sidebar__item menu"},n),r.createElement("div",{className:"navbar-sidebar__item menu"},o)))}var j=n(2949),B=n(2389);function z(e){return r.createElement("svg",(0,l.Z)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("path",{fill:"currentColor",d:"M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"}))}function U(e){return r.createElement("svg",(0,l.Z)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("path",{fill:"currentColor",d:"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"}))}const $={toggle:"toggle_vylO",toggleButton:"toggleButton_gllP",darkToggleIcon:"darkToggleIcon_wfgR",lightToggleIcon:"lightToggleIcon_pyhR",toggleButtonDisabled:"toggleButtonDisabled_aARS"};function q(e){let{className:t,buttonClassName:n,value:o,onChange:i}=e;const l=(0,B.Z)(),s=(0,c.I)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the navbar color mode toggle"},{mode:"dark"===o?(0,c.I)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,c.I)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return r.createElement("div",{className:(0,a.Z)($.toggle,t)},r.createElement("button",{className:(0,a.Z)("clean-btn",$.toggleButton,!l&&$.toggleButtonDisabled,n),type:"button",onClick:()=>i("dark"===o?"light":"dark"),disabled:!l,title:s,"aria-label":s,"aria-live":"polite"},r.createElement(z,{className:(0,a.Z)($.toggleIcon,$.lightToggleIcon)}),r.createElement(U,{className:(0,a.Z)($.toggleIcon,$.darkToggleIcon)})))}const G=r.memo(q),H={darkNavbarColorModeToggle:"darkNavbarColorModeToggle_X3D1"};function Z(e){let{className:t}=e;const n=(0,w.L)().navbar.style,a=(0,w.L)().colorMode.disableSwitch,{colorMode:o,setColorMode:i}=(0,j.I)();return a?null:r.createElement(G,{className:t,buttonClassName:"dark"===n?H.darkNavbarColorModeToggle:void 0,value:o,onChange:i})}var V=n(1327);function W(){return r.createElement(V.Z,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function Y(){const e=(0,L.e)();return r.createElement("button",{type:"button","aria-label":(0,c.I)({id:"theme.docs.sidebar.closeSidebarButtonAriaLabel",message:"Close navigation bar",description:"The ARIA label for close button of mobile sidebar"}),className:"clean-btn navbar-sidebar__close",onClick:()=>e.toggle()},r.createElement(S,{color:"var(--ifm-color-emphasis-600)"}))}function K(){return r.createElement("div",{className:"navbar-sidebar__brand"},r.createElement(W,null),r.createElement(Z,{className:"margin-right--md"}),r.createElement(Y,null))}var X=n(9960),Q=n(4996),J=n(3919);function ee(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}var te=n(9471);function ne(e){let{activeBasePath:t,activeBaseRegex:n,to:a,href:o,label:i,html:s,isDropdownLink:c,prependBaseUrlToHref:u,...d}=e;const p=(0,Q.Z)(a),f=(0,Q.Z)(t),m=(0,Q.Z)(o,{forcePrependBaseUrl:!0}),h=i&&o&&!(0,J.Z)(o),g=s?{dangerouslySetInnerHTML:{__html:s}}:{children:r.createElement(r.Fragment,null,i,h&&r.createElement(te.Z,c&&{width:12,height:12}))};return o?r.createElement(X.Z,(0,l.Z)({href:u?m:o},d,g)):r.createElement(X.Z,(0,l.Z)({to:p,isNavLink:!0},(t||n)&&{isActive:(e,t)=>n?ee(n,t.pathname):t.pathname.startsWith(f)},d,g))}function re(e){let{className:t,isDropdownItem:n=!1,...o}=e;const i=r.createElement(ne,(0,l.Z)({className:(0,a.Z)(n?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:n},o));return n?r.createElement("li",null,i):i}function ae(e){let{className:t,isDropdownItem:n,...o}=e;return r.createElement("li",{className:"menu__list-item"},r.createElement(ne,(0,l.Z)({className:(0,a.Z)("menu__link",t)},o)))}function oe(e){let{mobile:t=!1,position:n,...a}=e;const o=t?ae:re;return r.createElement(o,(0,l.Z)({},a,{activeClassName:a.activeClassName??(t?"menu__link--active":"navbar__link--active")}))}var ie=n(6043),le=n(8596),se=n(2263);function ce(e,t){return e.some((e=>function(e,t){return!!(0,le.Mg)(e.to,t)||!!ee(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)))}function ue(e){let{items:t,position:n,className:o,onClick:i,...s}=e;const c=(0,r.useRef)(null),[u,d]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{const e=e=>{c.current&&!c.current.contains(e.target)&&d(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),document.addEventListener("focusin",e),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e),document.removeEventListener("focusin",e)}}),[c]),r.createElement("div",{ref:c,className:(0,a.Z)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===n,"dropdown--show":u})},r.createElement(ne,(0,l.Z)({"aria-haspopup":"true","aria-expanded":u,role:"button",href:s.to?void 0:"#",className:(0,a.Z)("navbar__link",o)},s,{onClick:s.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),d(!u))}}),s.children??s.label),r.createElement("ul",{className:"dropdown__menu"},t.map(((e,t)=>r.createElement(_e,(0,l.Z)({isDropdownItem:!0,activeClassName:"dropdown__link--active"},e,{key:t}))))))}function de(e){let{items:t,className:n,position:o,onClick:i,...c}=e;const u=function(){const{siteConfig:{baseUrl:e}}=(0,se.Z)(),{pathname:t}=(0,s.TH)();return t.replace(e,"/")}(),d=ce(t,u),{collapsed:p,toggleCollapsed:f,setCollapsed:m}=(0,ie.u)({initialState:()=>!d});return(0,r.useEffect)((()=>{d&&m(!d)}),[u,d,m]),r.createElement("li",{className:(0,a.Z)("menu__list-item",{"menu__list-item--collapsed":p})},r.createElement(ne,(0,l.Z)({role:"button",className:(0,a.Z)("menu__link menu__link--sublist menu__link--sublist-caret",n)},c,{onClick:e=>{e.preventDefault(),f()}}),c.children??c.label),r.createElement(ie.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:p},t.map(((e,t)=>r.createElement(_e,(0,l.Z)({mobile:!0,isDropdownItem:!0,onClick:i,activeClassName:"menu__link--active"},e,{key:t}))))))}function pe(e){let{mobile:t=!1,...n}=e;const a=t?de:ue;return r.createElement(a,n)}var fe=n(4711);function me(e){let{width:t=20,height:n=20,...a}=e;return r.createElement("svg",(0,l.Z)({viewBox:"0 0 24 24",width:t,height:n,"aria-hidden":!0},a),r.createElement("path",{fill:"currentColor",d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"}))}const he="iconLanguage_nlXk";var ge=n(8084);const be=e=>{const t=(0,r.useRef)(!1),o=(0,r.useRef)(null),[i,l]=(0,r.useState)(!1),c=(0,s.k6)(),{siteConfig:u={}}=(0,se.Z)(),d=(0,B.Z)(),{baseUrl:p}=u,f=(0,ge.eZ)("docusaurus-lunr-search"),m=()=>{t.current||(Promise.all([fetch(`${p}${f.fileNames.searchDoc}`).then((e=>e.json())),fetch(`${p}${f.fileNames.lunrIndex}`).then((e=>e.json())),Promise.all([n.e(4611),n.e(5684)]).then(n.bind(n,4734)),Promise.all([n.e(532),n.e(2572)]).then(n.bind(n,2572))]).then((e=>{let[t,n,{default:r}]=e;0!==t.length&&(((e,t,n)=>{new n({searchDocs:e,searchIndex:t,baseUrl:p,inputSelector:"#search_input_react",handleSelected:(e,t,n)=>{const r=n.url||"/";document.createElement("a").href=r,c.push(r)}})})(t,n,r),l(!0))})),t.current=!0)},h=(0,r.useCallback)((t=>{o.current.contains(t.target)||o.current.focus(),e.handleSearchBarToggle&&e.handleSearchBarToggle(!e.isSearchBarExpanded)}),[e.isSearchBarExpanded]);return d&&m(),r.createElement("div",{className:"navbar__search",key:"search-box"},r.createElement("span",{"aria-label":"expand searchbar",role:"button",className:(0,a.Z)("search-icon",{"search-icon-hidden":e.isSearchBarExpanded}),onClick:h,onKeyDown:h,tabIndex:0}),r.createElement("input",{id:"search_input_react",type:"search",placeholder:i?"Search":"Loading...","aria-label":"Search",className:(0,a.Z)("navbar__search-input",{"search-bar-expanded":e.isSearchBarExpanded},{"search-bar":!e.isSearchBarExpanded}),onClick:m,onMouseOver:m,onFocus:h,onBlur:h,ref:o,disabled:!i}))},ve={searchBox:"searchBox_ZlJk"};function ye(e){let{children:t,className:n}=e;return r.createElement("div",{className:(0,a.Z)(n,ve.searchBox)},t)}var we=n(4104),ke=n(3438);var Se=n(373);const Ee=e=>e.docs.find((t=>t.id===e.mainDocId));const xe={default:oe,localeDropdown:function(e){let{mobile:t,dropdownItemsBefore:n,dropdownItemsAfter:a,...o}=e;const{i18n:{currentLocale:i,locales:u,localeConfigs:d}}=(0,se.Z)(),p=(0,fe.l)(),{search:f,hash:m}=(0,s.TH)(),h=[...n,...u.map((e=>{const n=`${`pathname://${p.createUrl({locale:e,fullyQualified:!1})}`}${f}${m}`;return{label:d[e].label,lang:d[e].htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:e===i?t?"menu__link--active":"dropdown__link--active":""}})),...a],g=t?(0,c.I)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):d[i].label;return r.createElement(pe,(0,l.Z)({},o,{mobile:t,label:r.createElement(r.Fragment,null,r.createElement(me,{className:he}),g),items:h}))},search:function(e){let{mobile:t,className:n}=e;return t?null:r.createElement(ye,{className:n},r.createElement(be,null))},dropdown:pe,html:function(e){let{value:t,className:n,mobile:o=!1,isDropdownItem:i=!1}=e;const l=i?"li":"div";return r.createElement(l,{className:(0,a.Z)({navbar__item:!o&&!i,"menu__list-item":o},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){let{docId:t,label:n,docsPluginId:a,...o}=e;const{activeDoc:i}=(0,we.Iw)(a),s=(0,ke.vY)(t,a);return null===s?null:r.createElement(oe,(0,l.Z)({exact:!0},o,{isActive:()=>i?.path===s.path||!!i?.sidebar&&i.sidebar===s.sidebar,label:n??s.id,to:s.path}))},docSidebar:function(e){let{sidebarId:t,label:n,docsPluginId:a,...o}=e;const{activeDoc:i}=(0,we.Iw)(a),s=(0,ke.oz)(t,a).link;if(!s)throw new Error(`DocSidebarNavbarItem: Sidebar with ID "${t}" doesn't have anything to be linked to.`);return r.createElement(oe,(0,l.Z)({exact:!0},o,{isActive:()=>i?.sidebar===t,label:n??s.label,to:s.path}))},docsVersion:function(e){let{label:t,to:n,docsPluginId:a,...o}=e;const i=(0,ke.lO)(a)[0],s=t??i.label,c=n??(e=>e.docs.find((t=>t.id===e.mainDocId)))(i).path;return r.createElement(oe,(0,l.Z)({},o,{label:s,to:c}))},docsVersionDropdown:function(e){let{mobile:t,docsPluginId:n,dropdownActiveClassDisabled:a,dropdownItemsBefore:o,dropdownItemsAfter:i,...u}=e;const{search:d,hash:p}=(0,s.TH)(),f=(0,we.Iw)(n),m=(0,we.gB)(n),{savePreferredVersionName:h}=(0,Se.J)(n),g=[...o,...m.map((e=>{const t=f.alternateDocVersions[e.name]??Ee(e);return{label:e.label,to:`${t.path}${d}${p}`,isActive:()=>e===f.activeVersion,onClick:()=>h(e.name)}})),...i],b=(0,ke.lO)(n)[0],v=t&&g.length>1?(0,c.I)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):b.label,y=t&&g.length>1?void 0:Ee(b).path;return g.length<=1?r.createElement(oe,(0,l.Z)({},u,{mobile:t,label:v,to:y,isActive:a?()=>!1:void 0})):r.createElement(pe,(0,l.Z)({},u,{mobile:t,label:v,to:y,items:g,isActive:a?()=>!1:void 0}))}};function _e(e){let{type:t,...n}=e;const a=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),o=xe[a];if(!o)throw new Error(`No NavbarItem component found for type "${t}".`);return r.createElement(o,n)}function Ce(){const e=(0,L.e)(),t=(0,w.L)().navbar.items;return r.createElement("ul",{className:"menu__list"},t.map(((t,n)=>r.createElement(_e,(0,l.Z)({mobile:!0},t,{onClick:()=>e.toggle(),key:n})))))}function Te(e){return r.createElement("button",(0,l.Z)({},e,{type:"button",className:"clean-btn navbar-sidebar__back"}),r.createElement(c.Z,{id:"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel",description:"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)"},"\u2190 Back to main menu"))}function Ae(){const e=0===(0,w.L)().navbar.items.length,t=M();return r.createElement(r.Fragment,null,!e&&r.createElement(Te,{onClick:()=>t.hide()}),t.content)}function Le(){const e=(0,L.e)();var t;return void 0===(t=e.shown)&&(t=!0),(0,r.useEffect)((()=>(document.body.style.overflow=t?"hidden":"visible",()=>{document.body.style.overflow="visible"})),[t]),e.shouldRender?r.createElement(F,{header:r.createElement(K,null),primaryMenu:r.createElement(Ce,null),secondaryMenu:r.createElement(Ae,null)}):null}const Pe={navbarHideable:"navbarHideable_m1mJ",navbarHidden:"navbarHidden_jGov"};function Re(e){return r.createElement("div",(0,l.Z)({role:"presentation"},e,{className:(0,a.Z)("navbar-sidebar__backdrop",e.className)}))}function Ne(e){let{children:t}=e;const{navbar:{hideOnScroll:n,style:o}}=(0,w.L)(),i=(0,L.e)(),{navbarRef:l,isNavbarVisible:s}=function(e){const[t,n]=(0,r.useState)(e),a=(0,r.useRef)(!1),o=(0,r.useRef)(0),i=(0,r.useCallback)((e=>{null!==e&&(o.current=e.getBoundingClientRect().height)}),[]);return(0,P.RF)(((t,r)=>{let{scrollY:i}=t;if(!e)return;if(i<o.current)return void n(!0);if(a.current)return void(a.current=!1);const l=r?.scrollY,s=document.documentElement.scrollHeight-o.current,c=window.innerHeight;l&&i>=l?n(!1):i+c<s&&n(!0)})),(0,u.S)((t=>{if(!e)return;const r=t.location.hash;if(r?document.getElementById(r.substring(1)):void 0)return a.current=!0,void n(!1);n(!0)})),{navbarRef:i,isNavbarVisible:t}}(n);return r.createElement("nav",{ref:l,"aria-label":(0,c.I)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,a.Z)("navbar","navbar--fixed-top",n&&[Pe.navbarHideable,!s&&Pe.navbarHidden],{"navbar--dark":"dark"===o,"navbar--primary":"primary"===o,"navbar-sidebar--show":i.shown})},t,r.createElement(Re,{onClick:i.toggle}),r.createElement(Le,null))}var Oe=n(8780);const Ie={errorBoundaryError:"errorBoundaryError_a6uf"};function De(e){return r.createElement("button",(0,l.Z)({type:"button"},e),r.createElement(c.Z,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again rendering when the React error boundary captures an error"},"Try again"))}function Me(e){let{error:t}=e;const n=(0,Oe.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return r.createElement("p",{className:Ie.errorBoundaryError},n)}class Fe extends r.Component{componentDidCatch(e,t){throw this.props.onError(e,t)}render(){return this.props.children}}const je="right";function Be(e){let{width:t=30,height:n=30,className:a,...o}=e;return r.createElement("svg",(0,l.Z)({className:a,width:t,height:n,viewBox:"0 0 30 30","aria-hidden":"true"},o),r.createElement("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"}))}function ze(){const{toggle:e,shown:t}=(0,L.e)();return r.createElement("button",{onClick:e,"aria-label":(0,c.I)({id:"theme.docs.sidebar.toggleSidebarButtonAriaLabel",message:"Toggle navigation bar",description:"The ARIA label for hamburger menu button of mobile navigation"}),"aria-expanded":t,className:"navbar__toggle clean-btn",type:"button"},r.createElement(Be,null))}const Ue={colorModeToggle:"colorModeToggle_DEke"};function $e(e){let{items:t}=e;return r.createElement(r.Fragment,null,t.map(((e,t)=>r.createElement(Fe,{key:t,onError:t=>new Error(`A theme navbar item failed to render.\nPlease double-check the following navbar item (themeConfig.navbar.items) of your Docusaurus config:\n${JSON.stringify(e,null,2)}`,{cause:t})},r.createElement(_e,e)))))}function qe(e){let{left:t,right:n}=e;return r.createElement("div",{className:"navbar__inner"},r.createElement("div",{className:"navbar__items"},t),r.createElement("div",{className:"navbar__items navbar__items--right"},n))}function Ge(){const e=(0,L.e)(),t=(0,w.L)().navbar.items,[n,a]=function(e){function t(e){return"left"===(e.position??je)}return[e.filter(t),e.filter((e=>!t(e)))]}(t),o=t.find((e=>"search"===e.type));return r.createElement(qe,{left:r.createElement(r.Fragment,null,!e.disabled&&r.createElement(ze,null),r.createElement(W,null),r.createElement($e,{items:n})),right:r.createElement(r.Fragment,null,r.createElement($e,{items:a}),r.createElement(Z,{className:Ue.colorModeToggle}),!o&&r.createElement(ye,null,r.createElement(be,null)))})}function He(){return r.createElement(Ne,null,r.createElement(Ge,null))}function Ze(e){let{item:t}=e;const{to:n,href:a,label:o,prependBaseUrlToHref:i,...s}=t,c=(0,Q.Z)(n),u=(0,Q.Z)(a,{forcePrependBaseUrl:!0});return r.createElement(X.Z,(0,l.Z)({className:"footer__link-item"},a?{href:i?u:a}:{to:c},s),o,a&&!(0,J.Z)(a)&&r.createElement(te.Z,null))}function Ve(e){let{item:t}=e;return t.html?r.createElement("li",{className:"footer__item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement("li",{key:t.href??t.to,className:"footer__item"},r.createElement(Ze,{item:t}))}function We(e){let{column:t}=e;return r.createElement("div",{className:"col footer__col"},r.createElement("div",{className:"footer__title"},t.title),r.createElement("ul",{className:"footer__items clean-list"},t.items.map(((e,t)=>r.createElement(Ve,{key:t,item:e})))))}function Ye(e){let{columns:t}=e;return r.createElement("div",{className:"row footer__links"},t.map(((e,t)=>r.createElement(We,{key:t,column:e}))))}function Ke(){return r.createElement("span",{className:"footer__link-separator"},"\xb7")}function Xe(e){let{item:t}=e;return t.html?r.createElement("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement(Ze,{item:t})}function Qe(e){let{links:t}=e;return r.createElement("div",{className:"footer__links text--center"},r.createElement("div",{className:"footer__links"},t.map(((e,n)=>r.createElement(r.Fragment,{key:n},r.createElement(Xe,{item:e}),t.length!==n+1&&r.createElement(Ke,null))))))}function Je(e){let{links:t}=e;return function(e){return"title"in e[0]}(t)?r.createElement(Ye,{columns:t}):r.createElement(Qe,{links:t})}var et=n(941);const tt={footerLogoLink:"footerLogoLink_BH7S"};function nt(e){let{logo:t}=e;const{withBaseUrl:n}=(0,Q.C)(),o={light:n(t.src),dark:n(t.srcDark??t.src)};return r.createElement(et.Z,{className:(0,a.Z)("footer__logo",t.className),alt:t.alt,sources:o,width:t.width,height:t.height,style:t.style})}function rt(e){let{logo:t}=e;return t.href?r.createElement(X.Z,{href:t.href,className:tt.footerLogoLink,target:t.target},r.createElement(nt,{logo:t})):r.createElement(nt,{logo:t})}function at(e){let{copyright:t}=e;return r.createElement("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}function ot(e){let{style:t,links:n,logo:o,copyright:i}=e;return r.createElement("footer",{className:(0,a.Z)("footer",{"footer--dark":"dark"===t})},r.createElement("div",{className:"container container-fluid"},n,(o||i)&&r.createElement("div",{className:"footer__bottom text--center"},o&&r.createElement("div",{className:"margin-bottom--sm"},o),i)))}function it(){const{footer:e}=(0,w.L)();if(!e)return null;const{copyright:t,links:n,logo:a,style:o}=e;return r.createElement(ot,{style:o,links:n&&n.length>0&&r.createElement(Je,{links:n}),logo:a&&r.createElement(rt,{logo:a}),copyright:t&&r.createElement(at,{copyright:t})})}const lt=r.memo(it),st=(0,R.Qc)([j.S,k.pl,P.OC,Se.L5,i.VC,function(e){let{children:t}=e;return r.createElement(N.n2,null,r.createElement(L.M,null,r.createElement(I,null,t)))}]);function ct(e){let{children:t}=e;return r.createElement(st,null,t)}function ut(e){let{error:t,tryAgain:n}=e;return r.createElement("main",{className:"container margin-vert--xl"},r.createElement("div",{className:"row"},r.createElement("div",{className:"col col--6 col--offset-3"},r.createElement("h1",{className:"hero__title"},r.createElement(c.Z,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed"},"This page crashed.")),r.createElement("div",{className:"margin-vert--lg"},r.createElement(De,{onClick:n,className:"button button--primary shadow--lw"})),r.createElement("hr",null),r.createElement("div",{className:"margin-vert--md"},r.createElement(Me,{error:t})))))}const dt={mainWrapper:"mainWrapper_z2l0"};function pt(e){const{children:t,noFooter:n,wrapperClassName:l,title:s,description:c}=e;return(0,b.t)(),r.createElement(ct,null,r.createElement(i.d,{title:s,description:c}),r.createElement(y,null),r.createElement(A,null),r.createElement(He,null),r.createElement("div",{id:d,className:(0,a.Z)(g.k.wrapper.main,dt.mainWrapper,l)},r.createElement(o.Z,{fallback:e=>r.createElement(ut,e)},t)),!n&&r.createElement(lt,null))}},1327:(e,t,n)=>{"use strict";n.d(t,{Z:()=>d});var r=n(7462),a=n(7294),o=n(9960),i=n(4996),l=n(2263),s=n(6668),c=n(941);function u(e){let{logo:t,alt:n,imageClassName:r}=e;const o={light:(0,i.Z)(t.src),dark:(0,i.Z)(t.srcDark||t.src)},l=a.createElement(c.Z,{className:t.className,sources:o,height:t.height,width:t.width,alt:n,style:t.style});return r?a.createElement("div",{className:r},l):l}function d(e){const{siteConfig:{title:t}}=(0,l.Z)(),{navbar:{title:n,logo:c}}=(0,s.L)(),{imageClassName:d,titleClassName:p,...f}=e,m=(0,i.Z)(c?.href||"/"),h=n?"":t,g=c?.alt??h;return a.createElement(o.Z,(0,r.Z)({to:m},f,c?.target&&{target:c.target}),c&&a.createElement(u,{logo:c,alt:g,imageClassName:d}),null!=n&&a.createElement("b",{className:p},n))}},197:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(5742);function o(e){let{locale:t,version:n,tag:o}=e;const i=t;return r.createElement(a.Z,null,t&&r.createElement("meta",{name:"docusaurus_locale",content:t}),n&&r.createElement("meta",{name:"docusaurus_version",content:n}),o&&r.createElement("meta",{name:"docusaurus_tag",content:o}),i&&r.createElement("meta",{name:"docsearch:language",content:i}),n&&r.createElement("meta",{name:"docsearch:version",content:n}),o&&r.createElement("meta",{name:"docsearch:docusaurus_tag",content:o}))}},941:(e,t,n)=>{"use strict";n.d(t,{Z:()=>c});var r=n(7462),a=n(7294),o=n(6010),i=n(2389),l=n(2949);const s={themedImage:"themedImage_ToTc","themedImage--light":"themedImage--light_HNdA","themedImage--dark":"themedImage--dark_i4oU"};function c(e){const t=(0,i.Z)(),{colorMode:n}=(0,l.I)(),{sources:c,className:u,alt:d,...p}=e,f=t?"dark"===n?["dark"]:["light"]:["light","dark"];return a.createElement(a.Fragment,null,f.map((e=>a.createElement("img",(0,r.Z)({key:e,src:c[e],alt:d,className:(0,o.Z)(s.themedImage,s[`themedImage--${e}`],u)},p)))))}},6043:(e,t,n)=>{"use strict";n.d(t,{u:()=>s,z:()=>g});var r=n(7462),a=n(7294),o=n(412),i=n(1442);const l="ease-in-out";function s(e){let{initialState:t}=e;const[n,r]=(0,a.useState)(t??!1),o=(0,a.useCallback)((()=>{r((e=>!e))}),[]);return{collapsed:n,setCollapsed:r,toggleCollapsed:o}}const c={display:"none",overflow:"hidden",height:"0px"},u={display:"block",overflow:"visible",height:"auto"};function d(e,t){const n=t?c:u;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function p(e){let{collapsibleRef:t,collapsed:n,animation:r}=e;const o=(0,a.useRef)(!1);(0,a.useEffect)((()=>{const e=t.current;function a(){const t=e.scrollHeight,n=r?.duration??function(e){if((0,i.n)())return 1;const t=e/36;return Math.round(10*(4+15*t**.25+t/5))}(t);return{transition:`height ${n}ms ${r?.easing??l}`,height:`${t}px`}}function s(){const t=a();e.style.transition=t.transition,e.style.height=t.height}if(!o.current)return d(e,n),void(o.current=!0);return e.style.willChange="height",function(){const t=requestAnimationFrame((()=>{n?(s(),requestAnimationFrame((()=>{e.style.height=c.height,e.style.overflow=c.overflow}))):(e.style.display="block",requestAnimationFrame((()=>{s()})))}));return()=>cancelAnimationFrame(t)}()}),[t,n,r])}function f(e){if(!o.Z.canUseDOM)return e?c:u}function m(e){let{as:t="div",collapsed:n,children:r,animation:o,onCollapseTransitionEnd:i,className:l,disableSSRStyle:s}=e;const c=(0,a.useRef)(null);return p({collapsibleRef:c,collapsed:n,animation:o}),a.createElement(t,{ref:c,style:s?void 0:f(n),onTransitionEnd:e=>{"height"===e.propertyName&&(d(c.current,n),i?.(n))},className:l},r)}function h(e){let{collapsed:t,...n}=e;const[o,i]=(0,a.useState)(!t),[l,s]=(0,a.useState)(t);return(0,a.useLayoutEffect)((()=>{t||i(!0)}),[t]),(0,a.useLayoutEffect)((()=>{o&&s(t)}),[o,t]),o?a.createElement(m,(0,r.Z)({},n,{collapsed:l})):null}function g(e){let{lazy:t,...n}=e;const r=t?h:m;return a.createElement(r,n)}},9689:(e,t,n)=>{"use strict";n.d(t,{nT:()=>m,pl:()=>f});var r=n(7294),a=n(2389),o=n(12),i=n(902),l=n(6668);const s=(0,o.WA)("docusaurus.announcement.dismiss"),c=(0,o.WA)("docusaurus.announcement.id"),u=()=>"true"===s.get(),d=e=>s.set(String(e)),p=r.createContext(null);function f(e){let{children:t}=e;const n=function(){const{announcementBar:e}=(0,l.L)(),t=(0,a.Z)(),[n,o]=(0,r.useState)((()=>!!t&&u()));(0,r.useEffect)((()=>{o(u())}),[]);const i=(0,r.useCallback)((()=>{d(!0),o(!0)}),[]);return(0,r.useEffect)((()=>{if(!e)return;const{id:t}=e;let n=c.get();"annoucement-bar"===n&&(n="announcement-bar");const r=t!==n;c.set(t),r&&d(!1),!r&&u()||o(!1)}),[e]),(0,r.useMemo)((()=>({isActive:!!e&&!n,close:i})),[e,n,i])}();return r.createElement(p.Provider,{value:n},t)}function m(){const e=(0,r.useContext)(p);if(!e)throw new i.i6("AnnouncementBarProvider");return e}},2949:(e,t,n)=>{"use strict";n.d(t,{I:()=>g,S:()=>h});var r=n(7294),a=n(412),o=n(902),i=n(12),l=n(6668);const s=r.createContext(void 0),c="theme",u=(0,i.WA)(c),d={light:"light",dark:"dark"},p=e=>e===d.dark?d.dark:d.light,f=e=>a.Z.canUseDOM?p(document.documentElement.getAttribute("data-theme")):p(e),m=e=>{u.set(p(e))};function h(e){let{children:t}=e;const n=function(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,l.L)(),[a,o]=(0,r.useState)(f(e));(0,r.useEffect)((()=>{t&&u.del()}),[t]);const i=(0,r.useCallback)((function(t,r){void 0===r&&(r={});const{persist:a=!0}=r;t?(o(t),a&&m(t)):(o(n?window.matchMedia("(prefers-color-scheme: dark)").matches?d.dark:d.light:e),u.del())}),[n,e]);(0,r.useEffect)((()=>{document.documentElement.setAttribute("data-theme",p(a))}),[a]),(0,r.useEffect)((()=>{if(t)return;const e=e=>{if(e.key!==c)return;const t=u.get();null!==t&&i(p(t))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)}),[t,i]);const s=(0,r.useRef)(!1);return(0,r.useEffect)((()=>{if(t&&!n)return;const e=window.matchMedia("(prefers-color-scheme: dark)"),r=()=>{window.matchMedia("print").matches||s.current?s.current=window.matchMedia("print").matches:i(null)};return e.addListener(r),()=>e.removeListener(r)}),[i,t,n]),(0,r.useMemo)((()=>({colorMode:a,setColorMode:i,get isDarkTheme(){return a===d.dark},setLightTheme(){i(d.light)},setDarkTheme(){i(d.dark)}})),[a,i])}();return r.createElement(s.Provider,{value:n},t)}function g(){const e=(0,r.useContext)(s);if(null==e)throw new o.i6("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},373:(e,t,n)=>{"use strict";n.d(t,{J:()=>v,L5:()=>g});var r=n(7294),a=n(4104),o=n(9935),i=n(6668),l=n(3438),s=n(902),c=n(12);const u=e=>`docs-preferred-version-${e}`,d={save:(e,t,n)=>{(0,c.WA)(u(e),{persistence:t}).set(n)},read:(e,t)=>(0,c.WA)(u(e),{persistence:t}).get(),clear:(e,t)=>{(0,c.WA)(u(e),{persistence:t}).del()}},p=e=>Object.fromEntries(e.map((e=>[e,{preferredVersionName:null}])));const f=r.createContext(null);function m(){const e=(0,a._r)(),t=(0,i.L)().docs.versionPersistence,n=(0,r.useMemo)((()=>Object.keys(e)),[e]),[o,l]=(0,r.useState)((()=>p(n)));(0,r.useEffect)((()=>{l(function(e){let{pluginIds:t,versionPersistence:n,allDocsData:r}=e;function a(e){const t=d.read(e,n);return r[e].versions.some((e=>e.name===t))?{preferredVersionName:t}:(d.clear(e,n),{preferredVersionName:null})}return Object.fromEntries(t.map((e=>[e,a(e)])))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]);return[o,(0,r.useMemo)((()=>({savePreferredVersion:function(e,n){d.save(e,t,n),l((t=>({...t,[e]:{preferredVersionName:n}})))}})),[t])]}function h(e){let{children:t}=e;const n=m();return r.createElement(f.Provider,{value:n},t)}function g(e){let{children:t}=e;return l.cE?r.createElement(h,null,t):r.createElement(r.Fragment,null,t)}function b(){const e=(0,r.useContext)(f);if(!e)throw new s.i6("DocsPreferredVersionContextProvider");return e}function v(e){void 0===e&&(e=o.m);const t=(0,a.zh)(e),[n,i]=b(),{preferredVersionName:l}=n[e];return{preferredVersion:t.versions.find((e=>e.name===l))??null,savePreferredVersionName:(0,r.useCallback)((t=>{i.savePreferredVersion(e,t)}),[i,e])}}},1116:(e,t,n)=>{"use strict";n.d(t,{V:()=>s,b:()=>l});var r=n(7294),a=n(902);const o=Symbol("EmptyContext"),i=r.createContext(o);function l(e){let{children:t,name:n,items:a}=e;const o=(0,r.useMemo)((()=>n&&a?{name:n,items:a}:null),[n,a]);return r.createElement(i.Provider,{value:o},t)}function s(){const e=(0,r.useContext)(i);if(e===o)throw new a.i6("DocsSidebarProvider");return e}},4477:(e,t,n)=>{"use strict";n.d(t,{E:()=>l,q:()=>i});var r=n(7294),a=n(902);const o=r.createContext(null);function i(e){let{children:t,version:n}=e;return r.createElement(o.Provider,{value:n},t)}function l(){const e=(0,r.useContext)(o);if(null===e)throw new a.i6("DocsVersionProvider");return e}},3163:(e,t,n)=>{"use strict";n.d(t,{M:()=>d,e:()=>p});var r=n(7294),a=n(3102),o=n(7524),i=n(1980),l=n(6668),s=n(902);const c=r.createContext(void 0);function u(){const e=function(){const e=(0,a.HY)(),{items:t}=(0,l.L)().navbar;return 0===t.length&&!e.component}(),t=(0,o.i)(),n=!e&&"mobile"===t,[s,c]=(0,r.useState)(!1);(0,i.Rb)((()=>{if(s)return c(!1),!1}));const u=(0,r.useCallback)((()=>{c((e=>!e))}),[]);return(0,r.useEffect)((()=>{"desktop"===t&&c(!1)}),[t]),(0,r.useMemo)((()=>({disabled:e,shouldRender:n,toggle:u,shown:s})),[e,n,u,s])}function d(e){let{children:t}=e;const n=u();return r.createElement(c.Provider,{value:n},t)}function p(){const e=r.useContext(c);if(void 0===e)throw new s.i6("NavbarMobileSidebarProvider");return e}},3102:(e,t,n)=>{"use strict";n.d(t,{HY:()=>l,Zo:()=>s,n2:()=>i});var r=n(7294),a=n(902);const o=r.createContext(null);function i(e){let{children:t}=e;const n=(0,r.useState)({component:null,props:null});return r.createElement(o.Provider,{value:n},t)}function l(){const e=(0,r.useContext)(o);if(!e)throw new a.i6("NavbarSecondaryMenuContentProvider");return e[0]}function s(e){let{component:t,props:n}=e;const i=(0,r.useContext)(o);if(!i)throw new a.i6("NavbarSecondaryMenuContentProvider");const[,l]=i,s=(0,a.Ql)(n);return(0,r.useEffect)((()=>{l({component:t,props:s})}),[l,t,s]),(0,r.useEffect)((()=>()=>l({component:null,props:null})),[l]),null}},9727:(e,t,n)=>{"use strict";n.d(t,{h:()=>a,t:()=>o});var r=n(7294);const a="navigation-with-keyboard";function o(){(0,r.useEffect)((()=>{function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(a),"mousedown"===e.type&&document.body.classList.remove(a)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),()=>{document.body.classList.remove(a),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}}),[])}},7524:(e,t,n)=>{"use strict";n.d(t,{i:()=>c});var r=n(7294),a=n(412);const o={desktop:"desktop",mobile:"mobile",ssr:"ssr"},i=996;function l(){return a.Z.canUseDOM?window.innerWidth>i?o.desktop:o.mobile:o.ssr}const s=!1;function c(){const[e,t]=(0,r.useState)((()=>s?"ssr":l()));return(0,r.useEffect)((()=>{function e(){t(l())}const n=s?window.setTimeout(e,1e3):void 0;return window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e),clearTimeout(n)}}),[]),e}},5281:(e,t,n)=>{"use strict";n.d(t,{k:()=>r});const r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",admonitionType:e=>`theme-admonition-${e}`},layout:{},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:e=>`theme-doc-sidebar-item-category-level-${e}`,docSidebarItemLinkLevel:e=>`theme-doc-sidebar-item-link-level-${e}`},blog:{}}},1442:(e,t,n)=>{"use strict";function r(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}n.d(t,{n:()=>r})},3438:(e,t,n)=>{"use strict";n.d(t,{MN:()=>_,Wl:()=>m,_F:()=>v,cE:()=>p,hI:()=>x,jA:()=>h,lO:()=>k,oz:()=>S,s1:()=>w,vY:()=>E,xz:()=>f});var r=n(7294),a=n(6550),o=n(8790),i=n(4104),l=n(373),s=n(4477),c=n(1116),u=n(7392),d=n(8596);const p=!!i._r;function f(e){const t=(0,s.E)();if(!e)return;const n=t.docs[e];if(!n)throw new Error(`no version doc found by id=${e}`);return n}function m(e){if(e.href)return e.href;for(const t of e.items){if("link"===t.type)return t.href;if("category"===t.type){const e=m(t);if(e)return e}}}function h(){const{pathname:e}=(0,a.TH)(),t=(0,c.V)();if(!t)throw new Error("Unexpected: cant find current sidebar in context");const n=y({sidebarItems:t.items,pathname:e,onlyCategories:!0}).slice(-1)[0];if(!n)throw new Error(`${e} is not associated with a category. useCurrentSidebarCategory() should only be used on category index pages.`);return n}const g=(e,t)=>void 0!==e&&(0,d.Mg)(e,t),b=(e,t)=>e.some((e=>v(e,t)));function v(e,t){return"link"===e.type?g(e.href,t):"category"===e.type&&(g(e.href,t)||b(e.items,t))}function y(e){let{sidebarItems:t,pathname:n,onlyCategories:r=!1}=e;const a=[];return function e(t){for(const o of t)if("category"===o.type&&((0,d.Mg)(o.href,n)||e(o.items))||"link"===o.type&&(0,d.Mg)(o.href,n)){return r&&"category"!==o.type||a.unshift(o),!0}return!1}(t),a}function w(){const e=(0,c.V)(),{pathname:t}=(0,a.TH)(),n=(0,i.gA)()?.pluginData.breadcrumbs;return!1!==n&&e?y({sidebarItems:e.items,pathname:t}):null}function k(e){const{activeVersion:t}=(0,i.Iw)(e),{preferredVersion:n}=(0,l.J)(e),a=(0,i.yW)(e);return(0,r.useMemo)((()=>(0,u.j)([t,n,a].filter(Boolean))),[t,n,a])}function S(e,t){const n=k(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.sidebars?Object.entries(e.sidebars):[])),r=t.find((t=>t[0]===e));if(!r)throw new Error(`Can't find any sidebar with id "${e}" in version${n.length>1?"s":""} ${n.map((e=>e.name)).join(", ")}".\nAvailable sidebar ids are:\n- ${t.map((e=>e[0])).join("\n- ")}`);return r[1]}),[e,n])}function E(e,t){const n=k(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.docs)),r=t.find((t=>t.id===e));if(!r){if(n.flatMap((e=>e.draftIds)).includes(e))return null;throw new Error(`Couldn't find any doc with id "${e}" in version${n.length>1?"s":""} "${n.map((e=>e.name)).join(", ")}".\nAvailable doc ids are:\n- ${(0,u.j)(t.map((e=>e.id))).join("\n- ")}`)}return r}),[e,n])}function x(e){let{route:t,versionMetadata:n}=e;const r=(0,a.TH)(),i=t.routes,l=i.find((e=>(0,a.LX)(r.pathname,e)));if(!l)return null;const s=l.sidebar,c=s?n.docsSidebars[s]:void 0;return{docElement:(0,o.H)(i),sidebarName:s,sidebarItems:c}}function _(e){return e.filter((e=>"category"!==e.type||!!m(e)))}},1980:(e,t,n)=>{"use strict";n.d(t,{Rb:()=>l,_X:()=>s});var r=n(7294),a=n(6550),o=n(1688),i=n(902);function l(e){!function(e){const t=(0,a.k6)(),n=(0,i.zX)(e);(0,r.useEffect)((()=>t.block(((e,t)=>n(e,t)))),[t,n])}(((t,n)=>{if("POP"===n)return e(t,n)}))}function s(e){return function(e){const t=(0,a.k6)();return(0,o.useSyncExternalStore)(t.listen,(()=>e(t)),(()=>e(t)))}((t=>null===e?null:new URLSearchParams(t.location.search).get(e)))}},7392:(e,t,n)=>{"use strict";function r(e,t){return void 0===t&&(t=(e,t)=>e===t),e.filter(((n,r)=>e.findIndex((e=>t(e,n)))!==r))}function a(e){return Array.from(new Set(e))}n.d(t,{j:()=>a,l:()=>r})},1944:(e,t,n)=>{"use strict";n.d(t,{FG:()=>p,d:()=>u,VC:()=>f});var r=n(7294),a=n(6010),o=n(5742),i=n(226);function l(){const e=r.useContext(i._);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}var s=n(4996),c=n(2263);function u(e){let{title:t,description:n,keywords:a,image:i,children:l}=e;const u=function(e){const{siteConfig:t}=(0,c.Z)(),{title:n,titleDelimiter:r}=t;return e?.trim().length?`${e.trim()} ${r} ${n}`:n}(t),{withBaseUrl:d}=(0,s.C)(),p=i?d(i,{absolute:!0}):void 0;return r.createElement(o.Z,null,t&&r.createElement("title",null,u),t&&r.createElement("meta",{property:"og:title",content:u}),n&&r.createElement("meta",{name:"description",content:n}),n&&r.createElement("meta",{property:"og:description",content:n}),a&&r.createElement("meta",{name:"keywords",content:Array.isArray(a)?a.join(","):a}),p&&r.createElement("meta",{property:"og:image",content:p}),p&&r.createElement("meta",{name:"twitter:image",content:p}),l)}const d=r.createContext(void 0);function p(e){let{className:t,children:n}=e;const i=r.useContext(d),l=(0,a.Z)(i,t);return r.createElement(d.Provider,{value:l},r.createElement(o.Z,null,r.createElement("html",{className:l})),n)}function f(e){let{children:t}=e;const n=l(),o=`plugin-${n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`;const i=`plugin-id-${n.plugin.id}`;return r.createElement(p,{className:(0,a.Z)(o,i)},t)}},902:(e,t,n)=>{"use strict";n.d(t,{D9:()=>i,Qc:()=>c,Ql:()=>s,i6:()=>l,zX:()=>o});var r=n(7294);const a=n(412).Z.canUseDOM?r.useLayoutEffect:r.useEffect;function o(e){const t=(0,r.useRef)(e);return a((()=>{t.current=e}),[e]),(0,r.useCallback)((function(){return t.current(...arguments)}),[])}function i(e){const t=(0,r.useRef)();return a((()=>{t.current=e})),t.current}class l extends Error{constructor(e,t){super(),this.name="ReactContextError",this.message=`Hook ${this.stack?.split("\n")[1]?.match(/at (?:\w+\.)?(?<name>\w+)/)?.groups.name??""} is called outside the <${e}>. ${t??""}`}}function s(e){const t=Object.entries(e);return t.sort(((e,t)=>e[0].localeCompare(t[0]))),(0,r.useMemo)((()=>e),t.flat())}function c(e){return t=>{let{children:n}=t;return r.createElement(r.Fragment,null,e.reduceRight(((e,t)=>r.createElement(t,null,e)),n))}}},8596:(e,t,n)=>{"use strict";n.d(t,{Mg:()=>i,Ns:()=>l});var r=n(7294),a=n(723),o=n(2263);function i(e,t){const n=e=>(!e||e.endsWith("/")?e:`${e}/`)?.toLowerCase();return n(e)===n(t)}function l(){const{baseUrl:e}=(0,o.Z)().siteConfig;return(0,r.useMemo)((()=>function(e){let{baseUrl:t,routes:n}=e;function r(e){return e.path===t&&!0===e.exact}function a(e){return e.path===t&&!e.exact}return function e(t){if(0===t.length)return;return t.find(r)||e(t.filter(a).flatMap((e=>e.routes??[])))}(n)}({routes:a.Z,baseUrl:e})),[e])}},2466:(e,t,n)=>{"use strict";n.d(t,{Ct:()=>f,OC:()=>s,RF:()=>d,o5:()=>p});var r=n(7294),a=n(412),o=n(2389),i=n(902);const l=r.createContext(void 0);function s(e){let{children:t}=e;const n=function(){const e=(0,r.useRef)(!0);return(0,r.useMemo)((()=>({scrollEventsEnabledRef:e,enableScrollEvents:()=>{e.current=!0},disableScrollEvents:()=>{e.current=!1}})),[])}();return r.createElement(l.Provider,{value:n},t)}function c(){const e=(0,r.useContext)(l);if(null==e)throw new i.i6("ScrollControllerProvider");return e}const u=()=>a.Z.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function d(e,t){void 0===t&&(t=[]);const{scrollEventsEnabledRef:n}=c(),a=(0,r.useRef)(u()),o=(0,i.zX)(e);(0,r.useEffect)((()=>{const e=()=>{if(!n.current)return;const e=u();o(e,a.current),a.current=e},t={passive:!0};return e(),window.addEventListener("scroll",e,t),()=>window.removeEventListener("scroll",e,t)}),[o,n,...t])}function p(){const e=c(),t=function(){const e=(0,r.useRef)({elem:null,top:0}),t=(0,r.useCallback)((t=>{e.current={elem:t,top:t.getBoundingClientRect().top}}),[]),n=(0,r.useCallback)((()=>{const{current:{elem:t,top:n}}=e;if(!t)return{restored:!1};const r=t.getBoundingClientRect().top-n;return r&&window.scrollBy({left:0,top:r}),e.current={elem:null,top:0},{restored:0!==r}}),[]);return(0,r.useMemo)((()=>({save:t,restore:n})),[n,t])}(),n=(0,r.useRef)(void 0),a=(0,r.useCallback)((r=>{t.save(r),e.disableScrollEvents(),n.current=()=>{const{restored:r}=t.restore();if(n.current=void 0,r){const t=()=>{e.enableScrollEvents(),window.removeEventListener("scroll",t)};window.addEventListener("scroll",t)}else e.enableScrollEvents()}}),[e,t]);return(0,r.useLayoutEffect)((()=>{queueMicrotask((()=>n.current?.()))})),{blockElementScrollPositionUntilNextRender:a}}function f(){const e=(0,r.useRef)(null),t=(0,o.Z)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:n=>{e.current=t?function(e){return window.scrollTo({top:e,behavior:"smooth"}),()=>{}}(n):function(e){let t=null;const n=document.documentElement.scrollTop>e;return function r(){const a=document.documentElement.scrollTop;(n&&a>e||!n&&a<e)&&(t=requestAnimationFrame(r),window.scrollTo(0,Math.floor(.85*(a-e))+e))}(),()=>t&&cancelAnimationFrame(t)}(n)},cancelScroll:()=>e.current?.()}}},3320:(e,t,n)=>{"use strict";n.d(t,{HX:()=>r,os:()=>a});n(2263);const r="default";function a(e,t){return`docs-${e}-${t}`}},12:(e,t,n)=>{"use strict";n.d(t,{Nk:()=>d,WA:()=>u});var r=n(7294),a=n(1688);const o="localStorage";function i(e){let{key:t,oldValue:n,newValue:r,storage:a}=e;if(n===r)return;const o=document.createEvent("StorageEvent");o.initStorageEvent("storage",!1,!1,t,n,r,window.location.href,a),window.dispatchEvent(o)}function l(e){if(void 0===e&&(e=o),"undefined"==typeof window)throw new Error("Browser storage is not available on Node.js/Docusaurus SSR process.");if("none"===e)return null;try{return window[e]}catch(n){return t=n,s||(console.warn("Docusaurus browser storage is not available.\nPossible reasons: running Docusaurus in an iframe, in an incognito browser session, or using too strict browser privacy settings.",t),s=!0),null}var t}let s=!1;const c={get:()=>null,set:()=>{},del:()=>{},listen:()=>()=>{}};function u(e,t){if("undefined"==typeof window)return function(e){function t(){throw new Error(`Illegal storage API usage for storage key "${e}".\nDocusaurus storage APIs are not supposed to be called on the server-rendering process.\nPlease only call storage APIs in effects and event handlers.`)}return{get:t,set:t,del:t,listen:t}}(e);const n=l(t?.persistence);return null===n?c:{get:()=>{try{return n.getItem(e)}catch(t){return console.error(`Docusaurus storage error, can't get key=${e}`,t),null}},set:t=>{try{const r=n.getItem(e);n.setItem(e,t),i({key:e,oldValue:r,newValue:t,storage:n})}catch(r){console.error(`Docusaurus storage error, can't set ${e}=${t}`,r)}},del:()=>{try{const t=n.getItem(e);n.removeItem(e),i({key:e,oldValue:t,newValue:null,storage:n})}catch(t){console.error(`Docusaurus storage error, can't delete key=${e}`,t)}},listen:t=>{try{const r=r=>{r.storageArea===n&&r.key===e&&t(r)};return window.addEventListener("storage",r),()=>window.removeEventListener("storage",r)}catch(r){return console.error(`Docusaurus storage error, can't listen for changes of key=${e}`,r),()=>{}}}}}function d(e,t){const n=(0,r.useRef)((()=>null===e?c:u(e,t))).current(),o=(0,r.useCallback)((e=>"undefined"==typeof window?()=>{}:n.listen(e)),[n]);return[(0,a.useSyncExternalStore)(o,(()=>"undefined"==typeof window?null:n.get()),(()=>null)),n]}},4711:(e,t,n)=>{"use strict";n.d(t,{l:()=>i});var r=n(2263),a=n(6550),o=n(8780);function i(){const{siteConfig:{baseUrl:e,url:t,trailingSlash:n},i18n:{defaultLocale:i,currentLocale:l}}=(0,r.Z)(),{pathname:s}=(0,a.TH)(),c=(0,o.applyTrailingSlash)(s,{trailingSlash:n,baseUrl:e}),u=l===i?e:e.replace(`/${l}/`,"/"),d=c.replace(e,"");return{createUrl:function(e){let{locale:n,fullyQualified:r}=e;return`${r?t:""}${function(e){return e===i?`${u}`:`${u}${e}/`}(n)}${d}`}}}},5936:(e,t,n)=>{"use strict";n.d(t,{S:()=>i});var r=n(7294),a=n(6550),o=n(902);function i(e){const t=(0,a.TH)(),n=(0,o.D9)(t),i=(0,o.zX)(e);(0,r.useEffect)((()=>{n&&t!==n&&i({location:t,previousLocation:n})}),[i,t,n])}},6668:(e,t,n)=>{"use strict";n.d(t,{L:()=>a});var r=n(2263);function a(){return(0,r.Z)().siteConfig.themeConfig}},8802:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){const{trailingSlash:n,baseUrl:r}=t;if(e.startsWith("#"))return e;if(void 0===n)return e;const[a]=e.split(/[#?]/),o="/"===a||a===r?a:(i=a,n?function(e){return e.endsWith("/")?e:`${e}/`}(i):function(e){return e.endsWith("/")?e.slice(0,-1):e}(i));var i;return e.replace(a,o)}},4143:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=void 0,t.getErrorCausalChain=function e(t){return t.cause?[t,...e(t.cause)]:[t]}},8780:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=t.applyTrailingSlash=t.blogPostContainerID=void 0,t.blogPostContainerID="__blog-post-container";var a=n(8802);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r(a).default}});var o=n(4143);Object.defineProperty(t,"getErrorCausalChain",{enumerable:!0,get:function(){return o.getErrorCausalChain}})},6010:(e,t,n)=>{"use strict";function r(e){var t,n,a="";if("string"==typeof e||"number"==typeof e)a+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(n=r(e[t]))&&(a&&(a+=" "),a+=n);else for(t in e)e[t]&&(a&&(a+=" "),a+=t);return a}n.d(t,{Z:()=>a});const a=function(){for(var e,t,n=0,a="";n<arguments.length;)(e=arguments[n++])&&(t=r(e))&&(a&&(a+=" "),a+=t);return a}},9318:(e,t,n)=>{"use strict";n.d(t,{lX:()=>w,q_:()=>C,ob:()=>f,PP:()=>A,Ep:()=>p});var r=n(7462);function a(e){return"/"===e.charAt(0)}function o(e,t){for(var n=t,r=n+1,a=e.length;r<a;n+=1,r+=1)e[n]=e[r];e.pop()}const i=function(e,t){void 0===t&&(t="");var n,r=e&&e.split("/")||[],i=t&&t.split("/")||[],l=e&&a(e),s=t&&a(t),c=l||s;if(e&&a(e)?i=r:r.length&&(i.pop(),i=i.concat(r)),!i.length)return"/";if(i.length){var u=i[i.length-1];n="."===u||".."===u||""===u}else n=!1;for(var d=0,p=i.length;p>=0;p--){var f=i[p];"."===f?o(i,p):".."===f?(o(i,p),d++):d&&(o(i,p),d--)}if(!c)for(;d--;d)i.unshift("..");!c||""===i[0]||i[0]&&a(i[0])||i.unshift("");var m=i.join("/");return n&&"/"!==m.substr(-1)&&(m+="/"),m};var l=n(8776);function s(e){return"/"===e.charAt(0)?e:"/"+e}function c(e){return"/"===e.charAt(0)?e.substr(1):e}function u(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function d(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function p(e){var t=e.pathname,n=e.search,r=e.hash,a=t||"/";return n&&"?"!==n&&(a+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(a+="#"===r.charAt(0)?r:"#"+r),a}function f(e,t,n,a){var o;"string"==typeof e?(o=function(e){var t=e||"/",n="",r="",a=t.indexOf("#");-1!==a&&(r=t.substr(a),t=t.substr(0,a));var o=t.indexOf("?");return-1!==o&&(n=t.substr(o),t=t.substr(0,o)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),o.state=t):(void 0===(o=(0,r.Z)({},e)).pathname&&(o.pathname=""),o.search?"?"!==o.search.charAt(0)&&(o.search="?"+o.search):o.search="",o.hash?"#"!==o.hash.charAt(0)&&(o.hash="#"+o.hash):o.hash="",void 0!==t&&void 0===o.state&&(o.state=t));try{o.pathname=decodeURI(o.pathname)}catch(l){throw l instanceof URIError?new URIError('Pathname "'+o.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):l}return n&&(o.key=n),a?o.pathname?"/"!==o.pathname.charAt(0)&&(o.pathname=i(o.pathname,a.pathname)):o.pathname=a.pathname:o.pathname||(o.pathname="/"),o}function m(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,a){if(null!=e){var o="function"==typeof e?e(t,n):e;"string"==typeof o?"function"==typeof r?r(o,a):a(!0):a(!1!==o)}else a(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];t.forEach((function(e){return e.apply(void 0,n)}))}}}var h=!("undefined"==typeof window||!window.document||!window.document.createElement);function g(e,t){t(window.confirm(e))}var b="popstate",v="hashchange";function y(){try{return window.history.state||{}}catch(e){return{}}}function w(e){void 0===e&&(e={}),h||(0,l.Z)(!1);var t,n=window.history,a=(-1===(t=window.navigator.userAgent).indexOf("Android 2.")&&-1===t.indexOf("Android 4.0")||-1===t.indexOf("Mobile Safari")||-1!==t.indexOf("Chrome")||-1!==t.indexOf("Windows Phone"))&&window.history&&"pushState"in window.history,o=!(-1===window.navigator.userAgent.indexOf("Trident")),i=e,c=i.forceRefresh,w=void 0!==c&&c,k=i.getUserConfirmation,S=void 0===k?g:k,E=i.keyLength,x=void 0===E?6:E,_=e.basename?d(s(e.basename)):"";function C(e){var t=e||{},n=t.key,r=t.state,a=window.location,o=a.pathname+a.search+a.hash;return _&&(o=u(o,_)),f(o,r,n)}function T(){return Math.random().toString(36).substr(2,x)}var A=m();function L(e){(0,r.Z)(U,e),U.length=n.length,A.notifyListeners(U.location,U.action)}function P(e){(function(e){return void 0===e.state&&-1===navigator.userAgent.indexOf("CriOS")})(e)||O(C(e.state))}function R(){O(C(y()))}var N=!1;function O(e){if(N)N=!1,L();else{A.confirmTransitionTo(e,"POP",S,(function(t){t?L({action:"POP",location:e}):function(e){var t=U.location,n=D.indexOf(t.key);-1===n&&(n=0);var r=D.indexOf(e.key);-1===r&&(r=0);var a=n-r;a&&(N=!0,F(a))}(e)}))}}var I=C(y()),D=[I.key];function M(e){return _+p(e)}function F(e){n.go(e)}var j=0;function B(e){1===(j+=e)&&1===e?(window.addEventListener(b,P),o&&window.addEventListener(v,R)):0===j&&(window.removeEventListener(b,P),o&&window.removeEventListener(v,R))}var z=!1;var U={length:n.length,action:"POP",location:I,createHref:M,push:function(e,t){var r="PUSH",o=f(e,t,T(),U.location);A.confirmTransitionTo(o,r,S,(function(e){if(e){var t=M(o),i=o.key,l=o.state;if(a)if(n.pushState({key:i,state:l},null,t),w)window.location.href=t;else{var s=D.indexOf(U.location.key),c=D.slice(0,s+1);c.push(o.key),D=c,L({action:r,location:o})}else window.location.href=t}}))},replace:function(e,t){var r="REPLACE",o=f(e,t,T(),U.location);A.confirmTransitionTo(o,r,S,(function(e){if(e){var t=M(o),i=o.key,l=o.state;if(a)if(n.replaceState({key:i,state:l},null,t),w)window.location.replace(t);else{var s=D.indexOf(U.location.key);-1!==s&&(D[s]=o.key),L({action:r,location:o})}else window.location.replace(t)}}))},go:F,goBack:function(){F(-1)},goForward:function(){F(1)},block:function(e){void 0===e&&(e=!1);var t=A.setPrompt(e);return z||(B(1),z=!0),function(){return z&&(z=!1,B(-1)),t()}},listen:function(e){var t=A.appendListener(e);return B(1),function(){B(-1),t()}}};return U}var k="hashchange",S={hashbang:{encodePath:function(e){return"!"===e.charAt(0)?e:"!/"+c(e)},decodePath:function(e){return"!"===e.charAt(0)?e.substr(1):e}},noslash:{encodePath:c,decodePath:s},slash:{encodePath:s,decodePath:s}};function E(e){var t=e.indexOf("#");return-1===t?e:e.slice(0,t)}function x(){var e=window.location.href,t=e.indexOf("#");return-1===t?"":e.substring(t+1)}function _(e){window.location.replace(E(window.location.href)+"#"+e)}function C(e){void 0===e&&(e={}),h||(0,l.Z)(!1);var t=window.history,n=(window.navigator.userAgent.indexOf("Firefox"),e),a=n.getUserConfirmation,o=void 0===a?g:a,i=n.hashType,c=void 0===i?"slash":i,b=e.basename?d(s(e.basename)):"",v=S[c],y=v.encodePath,w=v.decodePath;function C(){var e=w(x());return b&&(e=u(e,b)),f(e)}var T=m();function A(e){(0,r.Z)(z,e),z.length=t.length,T.notifyListeners(z.location,z.action)}var L=!1,P=null;function R(){var e,t,n=x(),r=y(n);if(n!==r)_(r);else{var a=C(),i=z.location;if(!L&&(t=a,(e=i).pathname===t.pathname&&e.search===t.search&&e.hash===t.hash))return;if(P===p(a))return;P=null,function(e){if(L)L=!1,A();else{var t="POP";T.confirmTransitionTo(e,t,o,(function(n){n?A({action:t,location:e}):function(e){var t=z.location,n=D.lastIndexOf(p(t));-1===n&&(n=0);var r=D.lastIndexOf(p(e));-1===r&&(r=0);var a=n-r;a&&(L=!0,M(a))}(e)}))}}(a)}}var N=x(),O=y(N);N!==O&&_(O);var I=C(),D=[p(I)];function M(e){t.go(e)}var F=0;function j(e){1===(F+=e)&&1===e?window.addEventListener(k,R):0===F&&window.removeEventListener(k,R)}var B=!1;var z={length:t.length,action:"POP",location:I,createHref:function(e){var t=document.querySelector("base"),n="";return t&&t.getAttribute("href")&&(n=E(window.location.href)),n+"#"+y(b+p(e))},push:function(e,t){var n="PUSH",r=f(e,void 0,void 0,z.location);T.confirmTransitionTo(r,n,o,(function(e){if(e){var t=p(r),a=y(b+t);if(x()!==a){P=t,function(e){window.location.hash=e}(a);var o=D.lastIndexOf(p(z.location)),i=D.slice(0,o+1);i.push(t),D=i,A({action:n,location:r})}else A()}}))},replace:function(e,t){var n="REPLACE",r=f(e,void 0,void 0,z.location);T.confirmTransitionTo(r,n,o,(function(e){if(e){var t=p(r),a=y(b+t);x()!==a&&(P=t,_(a));var o=D.indexOf(p(z.location));-1!==o&&(D[o]=t),A({action:n,location:r})}}))},go:M,goBack:function(){M(-1)},goForward:function(){M(1)},block:function(e){void 0===e&&(e=!1);var t=T.setPrompt(e);return B||(j(1),B=!0),function(){return B&&(B=!1,j(-1)),t()}},listen:function(e){var t=T.appendListener(e);return j(1),function(){j(-1),t()}}};return z}function T(e,t,n){return Math.min(Math.max(e,t),n)}function A(e){void 0===e&&(e={});var t=e,n=t.getUserConfirmation,a=t.initialEntries,o=void 0===a?["/"]:a,i=t.initialIndex,l=void 0===i?0:i,s=t.keyLength,c=void 0===s?6:s,u=m();function d(e){(0,r.Z)(w,e),w.length=w.entries.length,u.notifyListeners(w.location,w.action)}function h(){return Math.random().toString(36).substr(2,c)}var g=T(l,0,o.length-1),b=o.map((function(e){return f(e,void 0,"string"==typeof e?h():e.key||h())})),v=p;function y(e){var t=T(w.index+e,0,w.entries.length-1),r=w.entries[t];u.confirmTransitionTo(r,"POP",n,(function(e){e?d({action:"POP",location:r,index:t}):d()}))}var w={length:b.length,action:"POP",location:b[g],index:g,entries:b,createHref:v,push:function(e,t){var r="PUSH",a=f(e,t,h(),w.location);u.confirmTransitionTo(a,r,n,(function(e){if(e){var t=w.index+1,n=w.entries.slice(0);n.length>t?n.splice(t,n.length-t,a):n.push(a),d({action:r,location:a,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",a=f(e,t,h(),w.location);u.confirmTransitionTo(a,r,n,(function(e){e&&(w.entries[w.index]=a,d({action:r,location:a}))}))},go:y,goBack:function(){y(-1)},goForward:function(){y(1)},canGo:function(e){var t=w.index+e;return t>=0&&t<w.entries.length},block:function(e){return void 0===e&&(e=!1),u.setPrompt(e)},listen:function(e){return u.appendListener(e)}};return w}},8679:(e,t,n)=>{"use strict";var r=n(9864),a={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},o={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},l={};function s(e){return r.isMemo(e)?i:l[e.$$typeof]||a}l[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},l[r.Memo]=i;var c=Object.defineProperty,u=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,p=Object.getOwnPropertyDescriptor,f=Object.getPrototypeOf,m=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(m){var a=f(n);a&&a!==m&&e(t,a,r)}var i=u(n);d&&(i=i.concat(d(n)));for(var l=s(t),h=s(n),g=0;g<i.length;++g){var b=i[g];if(!(o[b]||r&&r[b]||h&&h[b]||l&&l[b])){var v=p(n,b);try{c(t,b,v)}catch(y){}}}}return t}},1143:e=>{"use strict";e.exports=function(e,t,n,r,a,o,i,l){if(!e){var s;if(void 0===t)s=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var c=[n,r,a,o,i,l],u=0;(s=new Error(t.replace(/%s/g,(function(){return c[u++]})))).name="Invariant Violation"}throw s.framesToPop=1,s}}},5826:e=>{e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},2497:(e,t,n)=>{"use strict";n.r(t)},2295:(e,t,n)=>{"use strict";n.r(t)},4865:function(e,t,n){var r,a;r=function(){var e,t,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'<div class="bar" role="bar"><div class="peg"></div></div><div class="spinner" role="spinner"><div class="spinner-icon"></div></div>'};function a(e,t,n){return e<t?t:e>n?n:e}function o(e){return 100*(-1+e)}function i(e,t,n){var a;return(a="translate3d"===r.positionUsing?{transform:"translate3d("+o(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+o(e)+"%,0)"}:{"margin-left":o(e)+"%"}).transition="all "+t+"ms "+n,a}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(r[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=a(e,r.minimum,1),n.status=1===e?null:e;var o=n.render(!t),c=o.querySelector(r.barSelector),u=r.speed,d=r.easing;return o.offsetWidth,l((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),s(c,i(e,u,d)),1===e?(s(o,{transition:"none",opacity:1}),o.offsetWidth,setTimeout((function(){s(o,{transition:"all "+u+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),u)}),u)):setTimeout(t,u)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),r.trickleSpeed)};return r.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*a(Math.random()*t,.1,.95)),t=a(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},e=0,t=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===t&&n.start(),e++,t++,r.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");u(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var a,i=t.querySelector(r.barSelector),l=e?"-100":o(n.status||0),c=document.querySelector(r.parent);return s(i,{transition:"all 0 linear",transform:"translate3d("+l+"%,0,0)"}),r.showSpinner||(a=t.querySelector(r.spinnerSelector))&&f(a),c!=document.body&&u(c,"nprogress-custom-parent"),c.appendChild(t),t},n.remove=function(){d(document.documentElement,"nprogress-busy"),d(document.querySelector(r.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&f(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var l=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),s=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()}))}function r(t){var n=document.body.style;if(t in n)return t;for(var r,a=e.length,o=t.charAt(0).toUpperCase()+t.slice(1);a--;)if((r=e[a]+o)in n)return r;return t}function a(e){return e=n(e),t[e]||(t[e]=r(e))}function o(e,t,n){t=a(t),e.style[t]=n}return function(e,t){var n,r,a=arguments;if(2==a.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&o(e,n,r);else o(e,a[1],a[2])}}();function c(e,t){return("string"==typeof e?e:p(e)).indexOf(" "+t+" ")>=0}function u(e,t){var n=p(e),r=n+t;c(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=p(e);c(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function p(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function f(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n},void 0===(a="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=a)},7418:e=>{"use strict";var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(a){return!1}}()?Object.assign:function(e,a){for(var o,i,l=function(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}(e),s=1;s<arguments.length;s++){for(var c in o=Object(arguments[s]))n.call(o,c)&&(l[c]=o[c]);if(t){i=t(o);for(var u=0;u<i.length;u++)r.call(o,i[u])&&(l[i[u]]=o[i[u]])}}return l}},4779:(e,t,n)=>{var r=n(5826);e.exports=f,e.exports.parse=o,e.exports.compile=function(e,t){return l(o(e,t),t)},e.exports.tokensToFunction=l,e.exports.tokensToRegExp=p;var a=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function o(e,t){for(var n,r=[],o=0,i=0,l="",u=t&&t.delimiter||"/";null!=(n=a.exec(e));){var d=n[0],p=n[1],f=n.index;if(l+=e.slice(i,f),i=f+d.length,p)l+=p[1];else{var m=e[i],h=n[2],g=n[3],b=n[4],v=n[5],y=n[6],w=n[7];l&&(r.push(l),l="");var k=null!=h&&null!=m&&m!==h,S="+"===y||"*"===y,E="?"===y||"*"===y,x=n[2]||u,_=b||v;r.push({name:g||o++,prefix:h||"",delimiter:x,optional:E,repeat:S,partial:k,asterisk:!!w,pattern:_?c(_):w?".*":"[^"+s(x)+"]+?"})}}return i<e.length&&(l+=e.substr(i)),l&&r.push(l),r}function i(e){return encodeURI(e).replace(/[\/?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))}function l(e,t){for(var n=new Array(e.length),a=0;a<e.length;a++)"object"==typeof e[a]&&(n[a]=new RegExp("^(?:"+e[a].pattern+")$",d(t)));return function(t,a){for(var o="",l=t||{},s=(a||{}).pretty?i:encodeURIComponent,c=0;c<e.length;c++){var u=e[c];if("string"!=typeof u){var d,p=l[u.name];if(null==p){if(u.optional){u.partial&&(o+=u.prefix);continue}throw new TypeError('Expected "'+u.name+'" to be defined')}if(r(p)){if(!u.repeat)throw new TypeError('Expected "'+u.name+'" to not repeat, but received `'+JSON.stringify(p)+"`");if(0===p.length){if(u.optional)continue;throw new TypeError('Expected "'+u.name+'" to not be empty')}for(var f=0;f<p.length;f++){if(d=s(p[f]),!n[c].test(d))throw new TypeError('Expected all "'+u.name+'" to match "'+u.pattern+'", but received `'+JSON.stringify(d)+"`");o+=(0===f?u.prefix:u.delimiter)+d}}else{if(d=u.asterisk?encodeURI(p).replace(/[?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})):s(p),!n[c].test(d))throw new TypeError('Expected "'+u.name+'" to match "'+u.pattern+'", but received "'+d+'"');o+=u.prefix+d}}else o+=u}return o}}function s(e){return e.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1")}function c(e){return e.replace(/([=!:$\/()])/g,"\\$1")}function u(e,t){return e.keys=t,e}function d(e){return e&&e.sensitive?"":"i"}function p(e,t,n){r(t)||(n=t||n,t=[]);for(var a=(n=n||{}).strict,o=!1!==n.end,i="",l=0;l<e.length;l++){var c=e[l];if("string"==typeof c)i+=s(c);else{var p=s(c.prefix),f="(?:"+c.pattern+")";t.push(c),c.repeat&&(f+="(?:"+p+f+")*"),i+=f=c.optional?c.partial?p+"("+f+")?":"(?:"+p+"("+f+"))?":p+"("+f+")"}}var m=s(n.delimiter||"/"),h=i.slice(-m.length)===m;return a||(i=(h?i.slice(0,-m.length):i)+"(?:"+m+"(?=$))?"),i+=o?"$":a&&h?"":"(?="+m+"|$)",u(new RegExp("^"+i,d(n)),t)}function f(e,t,n){return r(t)||(n=t||n,t=[]),n=n||{},e instanceof RegExp?function(e,t){var n=e.source.match(/\((?!\?)/g);if(n)for(var r=0;r<n.length;r++)t.push({name:r,prefix:null,delimiter:null,optional:!1,repeat:!1,partial:!1,asterisk:!1,pattern:null});return u(e,t)}(e,t):r(e)?function(e,t,n){for(var r=[],a=0;a<e.length;a++)r.push(f(e[a],t,n).source);return u(new RegExp("(?:"+r.join("|")+")",d(n)),t)}(e,t,n):function(e,t,n){return p(o(e,n),t,n)}(e,t,n)}},7410:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=function(){var e=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,n={},r={util:{encode:function e(t){return t instanceof a?new a(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&").replace(/</g,"<").replace(/\u00a0/g," ")},type:function(e){return Object.prototype.toString.call(e).slice(8,-1)},objId:function(e){return e.__id||Object.defineProperty(e,"__id",{value:++t}),e.__id},clone:function e(t,n){var a,o;switch(n=n||{},r.util.type(t)){case"Object":if(o=r.util.objId(t),n[o])return n[o];for(var i in a={},n[o]=a,t)t.hasOwnProperty(i)&&(a[i]=e(t[i],n));return a;case"Array":return o=r.util.objId(t),n[o]?n[o]:(a=[],n[o]=a,t.forEach((function(t,r){a[r]=e(t,n)})),a);default:return t}},getLanguage:function(t){for(;t;){var n=e.exec(t.className);if(n)return n[1].toLowerCase();t=t.parentElement}return"none"},setLanguage:function(t,n){t.className=t.className.replace(RegExp(e,"gi"),""),t.classList.add("language-"+n)},isActive:function(e,t,n){for(var r="no-"+t;e;){var a=e.classList;if(a.contains(t))return!0;if(a.contains(r))return!1;e=e.parentElement}return!!n}},languages:{plain:n,plaintext:n,text:n,txt:n,extend:function(e,t){var n=r.util.clone(r.languages[e]);for(var a in t)n[a]=t[a];return n},insertBefore:function(e,t,n,a){var o=(a=a||r.languages)[e],i={};for(var l in o)if(o.hasOwnProperty(l)){if(l==t)for(var s in n)n.hasOwnProperty(s)&&(i[s]=n[s]);n.hasOwnProperty(l)||(i[l]=o[l])}var c=a[e];return a[e]=i,r.languages.DFS(r.languages,(function(t,n){n===c&&t!=e&&(this[t]=i)})),i},DFS:function e(t,n,a,o){o=o||{};var i=r.util.objId;for(var l in t)if(t.hasOwnProperty(l)){n.call(t,l,t[l],a||l);var s=t[l],c=r.util.type(s);"Object"!==c||o[i(s)]?"Array"!==c||o[i(s)]||(o[i(s)]=!0,e(s,n,l,o)):(o[i(s)]=!0,e(s,n,null,o))}}},plugins:{},highlight:function(e,t,n){var o={code:e,grammar:t,language:n};return r.hooks.run("before-tokenize",o),o.tokens=r.tokenize(o.code,o.grammar),r.hooks.run("after-tokenize",o),a.stringify(r.util.encode(o.tokens),o.language)},tokenize:function(e,t){var n=t.rest;if(n){for(var r in n)t[r]=n[r];delete t.rest}var a=new l;return s(a,a.head,e),i(e,a,t,a.head,0),function(e){var t=[],n=e.head.next;for(;n!==e.tail;)t.push(n.value),n=n.next;return t}(a)},hooks:{all:{},add:function(e,t){var n=r.hooks.all;n[e]=n[e]||[],n[e].push(t)},run:function(e,t){var n=r.hooks.all[e];if(n&&n.length)for(var a,o=0;a=n[o++];)a(t)}},Token:a};function a(e,t,n,r){this.type=e,this.content=t,this.alias=n,this.length=0|(r||"").length}function o(e,t,n,r){e.lastIndex=t;var a=e.exec(n);if(a&&r&&a[1]){var o=a[1].length;a.index+=o,a[0]=a[0].slice(o)}return a}function i(e,t,n,l,u,d){for(var p in n)if(n.hasOwnProperty(p)&&n[p]){var f=n[p];f=Array.isArray(f)?f:[f];for(var m=0;m<f.length;++m){if(d&&d.cause==p+","+m)return;var h=f[m],g=h.inside,b=!!h.lookbehind,v=!!h.greedy,y=h.alias;if(v&&!h.pattern.global){var w=h.pattern.toString().match(/[imsuy]*$/)[0];h.pattern=RegExp(h.pattern.source,w+"g")}for(var k=h.pattern||h,S=l.next,E=u;S!==t.tail&&!(d&&E>=d.reach);E+=S.value.length,S=S.next){var x=S.value;if(t.length>e.length)return;if(!(x instanceof a)){var _,C=1;if(v){if(!(_=o(k,E,e,b))||_.index>=e.length)break;var T=_.index,A=_.index+_[0].length,L=E;for(L+=S.value.length;T>=L;)L+=(S=S.next).value.length;if(E=L-=S.value.length,S.value instanceof a)continue;for(var P=S;P!==t.tail&&(L<A||"string"==typeof P.value);P=P.next)C++,L+=P.value.length;C--,x=e.slice(E,L),_.index-=E}else if(!(_=o(k,0,x,b)))continue;T=_.index;var R=_[0],N=x.slice(0,T),O=x.slice(T+R.length),I=E+x.length;d&&I>d.reach&&(d.reach=I);var D=S.prev;if(N&&(D=s(t,D,N),E+=N.length),c(t,D,C),S=s(t,D,new a(p,g?r.tokenize(R,g):R,y,R)),O&&s(t,S,O),C>1){var M={cause:p+","+m,reach:I};i(e,t,n,S.prev,E,M),d&&M.reach>d.reach&&(d.reach=M.reach)}}}}}}function l(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function s(e,t,n){var r=t.next,a={value:n,prev:t,next:r};return t.next=a,r.prev=a,e.length++,a}function c(e,t,n){for(var r=t.next,a=0;a<n&&r!==e.tail;a++)r=r.next;t.next=r,r.prev=t,e.length-=a}return a.stringify=function e(t,n){if("string"==typeof t)return t;if(Array.isArray(t)){var a="";return t.forEach((function(t){a+=e(t,n)})),a}var o={type:t.type,content:e(t.content,n),tag:"span",classes:["token",t.type],attributes:{},language:n},i=t.alias;i&&(Array.isArray(i)?Array.prototype.push.apply(o.classes,i):o.classes.push(i)),r.hooks.run("wrap",o);var l="";for(var s in o.attributes)l+=" "+s+'="'+(o.attributes[s]||"").replace(/"/g,""")+'"';return"<"+o.tag+' class="'+o.classes.join(" ")+'"'+l+">"+o.content+"</"+o.tag+">"},r}(),a=r;r.default=r,a.languages.markup={comment:{pattern:/<!--(?:(?!<!--)[\s\S])*?-->/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^<!|>$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},a.languages.markup.tag.inside["attr-value"].inside.entity=a.languages.markup.entity,a.languages.markup.doctype.inside["internal-subset"].inside=a.languages.markup,a.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(a.languages.markup.tag,"addInlined",{value:function(e,t){var n={};n["language-"+t]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:a.languages[t]},n.cdata=/^<!\[CDATA\[|\]\]>$/i;var r={"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:n}};r["language-"+t]={pattern:/[\s\S]+/,inside:a.languages[t]};var o={};o[e]={pattern:RegExp(/(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:r},a.languages.insertBefore("markup","cdata",o)}}),Object.defineProperty(a.languages.markup.tag,"addAttribute",{value:function(e,t){a.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:a.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),a.languages.html=a.languages.markup,a.languages.mathml=a.languages.markup,a.languages.svg=a.languages.markup,a.languages.xml=a.languages.extend("markup",{}),a.languages.ssml=a.languages.xml,a.languages.atom=a.languages.xml,a.languages.rss=a.languages.xml,function(e){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",n={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},r={bash:n,environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:r},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:n}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:r},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:r.entity}}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:r.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},n.inside=e.languages.bash;for(var a=["comment","function-name","for-or-select","assign-left","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],o=r.variable[1].inside,i=0;i<a.length;i++)o[a[i]]=e.languages.bash[a[i]];e.languages.shell=e.languages.bash}(a),a.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},a.languages.c=a.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),a.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),a.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},a.languages.c.string],char:a.languages.c.char,comment:a.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:a.languages.c}}}}),a.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete a.languages.c.boolean,function(e){var t=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,n=/\b(?!<keyword>)\w+(?:\s*\.\s*\w+)*\b/.source.replace(/<keyword>/g,(function(){return t.source}));e.languages.cpp=e.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!<keyword>)\w+/.source.replace(/<keyword>/g,(function(){return t.source}))),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:t,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),e.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/<mod-name>(?:\s*:\s*<mod-name>)?|:\s*<mod-name>/.source.replace(/<mod-name>/g,(function(){return n}))+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),e.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:e.languages.cpp}}}}),e.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),e.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:e.languages.extend("cpp",{})}}),e.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},e.languages.cpp["base-clause"])}(a),function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-](?:[^;{\s]|\s+(?![\s{]))*(?:;|(?=\s*\{))/,inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+t.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+t.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+t.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:t,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css;var n=e.languages.markup;n&&(n.tag.addInlined("style","css"),n.tag.addAttribute("style","css"))}(a),function(e){var t,n=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/;e.languages.css.selector={pattern:e.languages.css.selector.pattern,lookbehind:!0,inside:t={"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+/,class:/\.[-\w]+/,id:/#[-\w]+/,attribute:{pattern:RegExp("\\[(?:[^[\\]\"']|"+n.source+")*\\]"),greedy:!0,inside:{punctuation:/^\[|\]$/,"case-sensitivity":{pattern:/(\s)[si]$/i,lookbehind:!0,alias:"keyword"},namespace:{pattern:/^(\s*)(?:(?!\s)[-*\w\xA0-\uFFFF])*\|(?!=)/,lookbehind:!0,inside:{punctuation:/\|$/}},"attr-name":{pattern:/^(\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+/,lookbehind:!0},"attr-value":[n,{pattern:/(=\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+(?=\s*$)/,lookbehind:!0}],operator:/[|~*^$]?=/}},"n-th":[{pattern:/(\(\s*)[+-]?\d*[\dn](?:\s*[+-]\s*\d+)?(?=\s*\))/,lookbehind:!0,inside:{number:/[\dn]+/,operator:/[+-]/}},{pattern:/(\(\s*)(?:even|odd)(?=\s*\))/i,lookbehind:!0}],combinator:/>|\+|~|\|\|/,punctuation:/[(),]/}},e.languages.css.atrule.inside["selector-function-argument"].inside=t,e.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}});var r={pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0},a={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0};e.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[{pattern:/(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:r,number:a,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:r,number:a})}(a),a.languages.javascript=a.languages.extend("clike",{"class-name":[a.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),a.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,a.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:a.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:a.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:a.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:a.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:a.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),a.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:a.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),a.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),a.languages.markup&&(a.languages.markup.tag.addInlined("script","javascript"),a.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),a.languages.js=a.languages.javascript,function(e){var t=/#(?!\{).+/,n={pattern:/#\{[^}]+\}/,alias:"variable"};e.languages.coffeescript=e.languages.extend("javascript",{comment:t,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:n}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),e.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:t,interpolation:n}}}),e.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:e.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:n}}]}),e.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete e.languages.coffeescript["template-string"],e.languages.coffee=e.languages.coffeescript}(a),function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+n.source+"(?:[ \t]+"+t.source+")?|"+t.source+"(?:[ \t]+"+n.source+")?)",a=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-]<PLAIN>)(?:[ \t]*(?:(?![#:])<PLAIN>|:<PLAIN>))*/.source.replace(/<PLAIN>/g,(function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source})),o=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function i(e,t){t=(t||"").replace(/m/g,"")+"m";var n=/([:\-,[{]\s*(?:\s<<prop>>[ \t]+)?)(?:<<value>>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<<prop>>/g,(function(){return r})).replace(/<<value>>/g,(function(){return e}));return RegExp(n,t)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<<prop>>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<<prop>>/g,(function(){return r}))),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<<prop>>[ \t]+)?)<<key>>(?=\s*:\s)/.source.replace(/<<prop>>/g,(function(){return r})).replace(/<<key>>/g,(function(){return"(?:"+a+"|"+o+")"}))),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:i(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:i(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:i(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:i(o),lookbehind:!0,greedy:!0},number:{pattern:i(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(a),function(e){var t=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function n(e){return e=e.replace(/<inner>/g,(function(){return t})),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+e+")")}var r=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,a=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,(function(){return r})),o=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source;e.languages.markdown=e.languages.extend("markup",{}),e.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+a+o+"(?:"+a+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+a+o+")(?:"+a+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(r),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+a+")"+o+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+a+"$"),inside:{"table-header":{pattern:RegExp(r),alias:"important",inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:n(/\b__(?:(?!_)<inner>|_(?:(?!_)<inner>)+_)+__\b|\*\*(?:(?!\*)<inner>|\*(?:(?!\*)<inner>)+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(/\b_(?:(?!_)<inner>|__(?:(?!_)<inner>)+__)+_\b|\*(?:(?!\*)<inner>|\*\*(?:(?!\*)<inner>)+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(/(~~?)(?:(?!~)<inner>)+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:n(/!?\[(?:(?!\])<inner>)+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\])<inner>)+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach((function(t){["url","bold","italic","strike","code-snippet"].forEach((function(n){t!==n&&(e.languages.markdown[t].inside.content.inside[n]=e.languages.markdown[n])}))})),e.hooks.add("after-tokenize",(function(e){"markdown"!==e.language&&"md"!==e.language||function e(t){if(t&&"string"!=typeof t)for(var n=0,r=t.length;n<r;n++){var a=t[n];if("code"===a.type){var o=a.content[1],i=a.content[3];if(o&&i&&"code-language"===o.type&&"code-block"===i.type&&"string"==typeof o.content){var l=o.content.replace(/\b#/g,"sharp").replace(/\b\+\+/g,"pp"),s="language-"+(l=(/[a-z][\w-]*/i.exec(l)||[""])[0].toLowerCase());i.alias?"string"==typeof i.alias?i.alias=[i.alias,s]:i.alias.push(s):i.alias=[s]}}else e(a.content)}}(e.tokens)})),e.hooks.add("wrap",(function(t){if("code-block"===t.type){for(var n="",r=0,a=t.classes.length;r<a;r++){var o=t.classes[r],c=/language-(.+)/.exec(o);if(c){n=c[1];break}}var u,d=e.languages[n];if(d)t.content=e.highlight((u=t.content,u.replace(i,"").replace(/&(\w{1,8}|#x?[\da-f]{1,8});/gi,(function(e,t){var n;if("#"===(t=t.toLowerCase())[0])return n="x"===t[1]?parseInt(t.slice(2),16):Number(t.slice(1)),s(n);var r=l[t];return r||e}))),d,n);else if(n&&"none"!==n&&e.plugins.autoloader){var p="md-"+(new Date).valueOf()+"-"+Math.floor(1e16*Math.random());t.attributes.id=p,e.plugins.autoloader.loadLanguages(n,(function(){var t=document.getElementById(p);t&&(t.innerHTML=e.highlight(t.textContent,e.languages[n],n))}))}}}));var i=RegExp(e.languages.markup.tag.pattern.source,"gi"),l={amp:"&",lt:"<",gt:">",quot:'"'},s=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(a),a.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:a.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},a.hooks.add("after-tokenize",(function(e){if("graphql"===e.language)for(var t=e.tokens.filter((function(e){return"string"!=typeof e&&"comment"!==e.type&&"scalar"!==e.type})),n=0;n<t.length;){var r=t[n++];if("keyword"===r.type&&"mutation"===r.content){var a=[];if(d(["definition-mutation","punctuation"])&&"("===u(1).content){n+=2;var o=p(/^\($/,/^\)$/);if(-1===o)continue;for(;n<o;n++){var i=u(0);"variable"===i.type&&(f(i,"variable-input"),a.push(i.content))}n=o+1}if(d(["punctuation","property-query"])&&"{"===u(0).content&&(n++,f(u(0),"property-mutation"),a.length>0)){var l=p(/^\{$/,/^\}$/);if(-1===l)continue;for(var s=n;s<l;s++){var c=t[s];"variable"===c.type&&a.indexOf(c.content)>=0&&f(c,"variable-input")}}}}function u(e){return t[n+e]}function d(e,t){t=t||0;for(var n=0;n<e.length;n++){var r=u(n+t);if(!r||r.type!==e[n])return!1}return!0}function p(e,r){for(var a=1,o=n;o<t.length;o++){var i=t[o],l=i.content;if("punctuation"===i.type&&"string"==typeof l)if(e.test(l))a++;else if(r.test(l)&&0===--a)return o}return-1}function f(e,t){var n=e.alias;n?Array.isArray(n)||(e.alias=n=[n]):e.alias=n=[],n.push(t)}})),a.languages.sql={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},variable:[{pattern:/@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/,greedy:!0},/@[\w.$]+/],string:{pattern:/(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\]|\2\2)*\2/,greedy:!0,lookbehind:!0},identifier:{pattern:/(^|[^@\\])`(?:\\[\s\S]|[^`\\]|``)*`/,greedy:!0,lookbehind:!0,inside:{punctuation:/^`|`$/}},function:/\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i,keyword:/\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i,boolean:/\b(?:FALSE|NULL|TRUE)\b/i,number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*\/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/},function(e){var t=e.languages.javascript["template-string"],n=t.pattern.source,r=t.inside.interpolation,a=r.inside["interpolation-punctuation"],o=r.pattern.source;function i(t,r){if(e.languages[t])return{pattern:RegExp("((?:"+r+")\\s*)"+n),lookbehind:!0,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},"embedded-code":{pattern:/[\s\S]+/,alias:t}}}}function l(e,t){return"___"+t.toUpperCase()+"_"+e+"___"}function s(t,n,r){var a={code:t,grammar:n,language:r};return e.hooks.run("before-tokenize",a),a.tokens=e.tokenize(a.code,a.grammar),e.hooks.run("after-tokenize",a),a.tokens}function c(t){var n={};n["interpolation-punctuation"]=a;var o=e.tokenize(t,n);if(3===o.length){var i=[1,1];i.push.apply(i,s(o[1],e.languages.javascript,"javascript")),o.splice.apply(o,i)}return new e.Token("interpolation",o,r.alias,t)}function u(t,n,r){var a=e.tokenize(t,{interpolation:{pattern:RegExp(o),lookbehind:!0}}),i=0,u={},d=s(a.map((function(e){if("string"==typeof e)return e;for(var n,a=e.content;-1!==t.indexOf(n=l(i++,r)););return u[n]=a,n})).join(""),n,r),p=Object.keys(u);return i=0,function e(t){for(var n=0;n<t.length;n++){if(i>=p.length)return;var r=t[n];if("string"==typeof r||"string"==typeof r.content){var a=p[i],o="string"==typeof r?r:r.content,l=o.indexOf(a);if(-1!==l){++i;var s=o.substring(0,l),d=c(u[a]),f=o.substring(l+a.length),m=[];if(s&&m.push(s),m.push(d),f){var h=[f];e(h),m.push.apply(m,h)}"string"==typeof r?(t.splice.apply(t,[n,1].concat(m)),n+=m.length-1):r.content=m}}else{var g=r.content;Array.isArray(g)?e(g):e([g])}}}(d),new e.Token(r,d,"language-"+r,t)}e.languages.javascript["template-string"]=[i("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),i("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),i("svg",/\bsvg/.source),i("markdown",/\b(?:markdown|md)/.source),i("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),i("sql",/\bsql/.source),t].filter(Boolean);var d={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function p(e){return"string"==typeof e?e:Array.isArray(e)?e.map(p).join(""):p(e.content)}e.hooks.add("after-tokenize",(function(t){t.language in d&&function t(n){for(var r=0,a=n.length;r<a;r++){var o=n[r];if("string"!=typeof o){var i=o.content;if(Array.isArray(i))if("template-string"===o.type){var l=i[1];if(3===i.length&&"string"!=typeof l&&"embedded-code"===l.type){var s=p(l),c=l.alias,d=Array.isArray(c)?c[0]:c,f=e.languages[d];if(!f)continue;i[1]=u(s,f,d)}}else t(i);else"string"!=typeof i&&t([i])}}}(t.tokens)}))}(a),function(e){e.languages.typescript=e.languages.extend("javascript",{"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),e.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete e.languages.typescript.parameter,delete e.languages.typescript["literal-property"];var t=e.languages.extend("typescript",{});delete t["class-name"],e.languages.typescript["class-name"].inside=t,e.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:t}}}}),e.languages.ts=e.languages.typescript}(a),function(e){function t(e,t){return RegExp(e.replace(/<ID>/g,(function(){return/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/.source})),t)}e.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+e.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),e.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+e.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),e.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]}),e.languages.insertBefore("javascript","keyword",{imports:{pattern:t(/(\bimport\b\s*)(?:<ID>(?:\s*,\s*(?:\*\s*as\s+<ID>|\{[^{}]*\}))?|\*\s*as\s+<ID>|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:e.languages.javascript},exports:{pattern:t(/(\bexport\b\s*)(?:\*(?:\s*as\s+<ID>)?(?=\s*\bfrom\b)|\{[^{}]*\})/.source),lookbehind:!0,inside:e.languages.javascript}}),e.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\b/,alias:"control-flow"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),e.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),e.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:t(/(\.\s*)#?<ID>/.source),lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var n=["function","function-variable","method","method-variable","property-access"],r=0;r<n.length;r++){var a=n[r],o=e.languages.javascript[a];"RegExp"===e.util.type(o)&&(o=e.languages.javascript[a]={pattern:o});var i=o.inside||{};o.inside=i,i["maybe-class-name"]=/^[A-Z][\s\S]*/}}(a),function(e){var t=e.util.clone(e.languages.javascript),n=/(?:\s|\/\/.*(?!.)|\/\*(?:[^*]|\*(?!\/))\*\/)/.source,r=/(?:\{(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])*\})/.source,a=/(?:\{<S>*\.{3}(?:[^{}]|<BRACES>)*\})/.source;function o(e,t){return e=e.replace(/<S>/g,(function(){return n})).replace(/<BRACES>/g,(function(){return r})).replace(/<SPREAD>/g,(function(){return a})),RegExp(e,t)}a=o(a).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=o(/<\/?(?:[\w.:-]+(?:<S>+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|<BRACES>))?|<SPREAD>))*<S>*\/?)?>/.source),e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,e.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,e.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.jsx.tag.inside.comment=t.comment,e.languages.insertBefore("inside","attr-name",{spread:{pattern:o(/<SPREAD>/.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:o(/=<BRACES>/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:e.languages.jsx}}},e.languages.jsx.tag);var i=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(i).join(""):""},l=function(t){for(var n=[],r=0;r<t.length;r++){var a=t[r],o=!1;if("string"!=typeof a&&("tag"===a.type&&a.content[0]&&"tag"===a.content[0].type?"</"===a.content[0].content[0].content?n.length>0&&n[n.length-1].tagName===i(a.content[0].content[1])&&n.pop():"/>"===a.content[a.content.length-1].content||n.push({tagName:i(a.content[0].content[1]),openedBraces:0}):n.length>0&&"punctuation"===a.type&&"{"===a.content?n[n.length-1].openedBraces++:n.length>0&&n[n.length-1].openedBraces>0&&"punctuation"===a.type&&"}"===a.content?n[n.length-1].openedBraces--:o=!0),(o||"string"==typeof a)&&n.length>0&&0===n[n.length-1].openedBraces){var s=i(a);r<t.length-1&&("string"==typeof t[r+1]||"plain-text"===t[r+1].type)&&(s+=i(t[r+1]),t.splice(r+1,1)),r>0&&("string"==typeof t[r-1]||"plain-text"===t[r-1].type)&&(s=i(t[r-1])+s,t.splice(r-1,1),r--),t[r]=new e.Token("plain-text",s,null,s)}a.content&&"string"!=typeof a.content&&l(a.content)}};e.hooks.add("after-tokenize",(function(e){"jsx"!==e.language&&"tsx"!==e.language||l(e.tokens)}))}(a),function(e){e.languages.diff={coord:[/^(?:\*{3}|-{3}|\+{3}).*$/m,/^@@.*@@$/m,/^\d.*$/m]};var t={"deleted-sign":"-","deleted-arrow":"<","inserted-sign":"+","inserted-arrow":">",unchanged:" ",diff:"!"};Object.keys(t).forEach((function(n){var r=t[n],a=[];/^\w+$/.test(n)||a.push(/\w+/.exec(n)[0]),"diff"===n&&a.push("bold"),e.languages.diff[n]={pattern:RegExp("^(?:["+r+"].*(?:\r\n?|\n|(?![\\s\\S])))+","m"),alias:a,inside:{line:{pattern:/(.)(?=[\s\S]).*(?:\r\n?|\n)?/,lookbehind:!0},prefix:{pattern:/[\s\S]/,alias:/\w+/.exec(n)[0]}}}})),Object.defineProperty(e.languages.diff,"PREFIXES",{value:t})}(a),a.languages.git={comment:/^#.*/m,deleted:/^[-\u2013].*/m,inserted:/^\+.*/m,string:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,command:{pattern:/^.*\$ git .*$/m,inside:{parameter:/\s--?\w+/}},coord:/^@@.*@@$/m,"commit-sha1":/^commit \w{40}$/m},a.languages.go=a.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|false|iota|nil|true)\b/,number:[/\b0(?:b[01_]+|o[0-7_]+)i?\b/i,/\b0x(?:[a-f\d_]+(?:\.[a-f\d_]*)?|\.[a-f\d_]+)(?:p[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,/(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?[\d_]+)?i?(?!\w)/i],operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\b/}),a.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete a.languages.go["class-name"],function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,a,o){if(n.language===r){var i=n.tokenStack=[];n.code=n.code.replace(a,(function(e){if("function"==typeof o&&!o(e))return e;for(var a,l=i.length;-1!==n.code.indexOf(a=t(r,l));)++l;return i[l]=e,a})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var a=0,o=Object.keys(n.tokenStack);!function i(l){for(var s=0;s<l.length&&!(a>=o.length);s++){var c=l[s];if("string"==typeof c||c.content&&"string"==typeof c.content){var u=o[a],d=n.tokenStack[u],p="string"==typeof c?c:c.content,f=t(r,u),m=p.indexOf(f);if(m>-1){++a;var h=p.substring(0,m),g=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),b=p.substring(m+f.length),v=[];h&&v.push.apply(v,i([h])),v.push(g),b&&v.push.apply(v,i([b])),"string"==typeof c?l.splice.apply(l,[s,1].concat(v)):c.content=v}}else c.content&&i(c.content)}return l}(n.tokens)}}}})}(a),function(e){e.languages.handlebars={comment:/\{\{![\s\S]*?\}\}/,delimiter:{pattern:/^\{\{\{?|\}\}\}?$/,alias:"punctuation"},string:/(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][+-]?\d+)?/,boolean:/\b(?:false|true)\b/,block:{pattern:/^(\s*(?:~\s*)?)[#\/]\S+?(?=\s*(?:~\s*)?$|\s)/,lookbehind:!0,alias:"keyword"},brackets:{pattern:/\[[^\]]+\]/,inside:{punctuation:/\[|\]/,variable:/[\s\S]+/}},punctuation:/[!"#%&':()*+,.\/;<=>@\[\\\]^`{|}~]/,variable:/[^!"#%&'()*+,\/;<=>@\[\\\]^`{|}~\s]+/},e.hooks.add("before-tokenize",(function(t){e.languages["markup-templating"].buildPlaceholders(t,"handlebars",/\{\{\{[\s\S]+?\}\}\}|\{\{[\s\S]+?\}\}/g)})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"handlebars")})),e.languages.hbs=e.languages.handlebars}(a),a.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},a.languages.webmanifest=a.languages.json,a.languages.less=a.languages.extend("css",{comment:[/\/\*[\s\S]*?\*\//,{pattern:/(^|[^\\])\/\/.*/,lookbehind:!0}],atrule:{pattern:/@[\w-](?:\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{punctuation:/[:()]/}},selector:{pattern:/(?:@\{[\w-]+\}|[^{};\s@])(?:@\{[\w-]+\}|\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};@\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{variable:/@+[\w-]+/}},property:/(?:@\{[\w-]+\}|[\w-])+(?:\+_?)?(?=\s*:)/,operator:/[+\-*\/]/}),a.languages.insertBefore("less","property",{variable:[{pattern:/@[\w-]+\s*:/,inside:{punctuation:/:/}},/@@?[\w-]+/],"mixin-usage":{pattern:/([{;]\s*)[.#](?!\d)[\w-].*?(?=[(;])/,lookbehind:!0,alias:"function"}}),a.languages.makefile={comment:{pattern:/(^|[^\\])#(?:\\(?:\r\n|[\s\S])|[^\\\r\n])*/,lookbehind:!0},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"builtin-target":{pattern:/\.[A-Z][^:#=\s]+(?=\s*:(?!=))/,alias:"builtin"},target:{pattern:/^(?:[^:=\s]|[ \t]+(?![\s:]))+(?=\s*:(?!=))/m,alias:"symbol",inside:{variable:/\$+(?:(?!\$)[^(){}:#=\s]+|(?=[({]))/}},variable:/\$+(?:(?!\$)[^(){}:#=\s]+|\([@*%<^+?][DF]\)|(?=[({]))/,keyword:/-include\b|\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\b/,function:{pattern:/(\()(?:abspath|addsuffix|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:list|s)?)(?=[ \t])/,lookbehind:!0},operator:/(?:::|[?:+!])?=|[|@]/,punctuation:/[:;(){}]/},a.languages.objectivec=a.languages.extend("c",{string:{pattern:/@?"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<<?=?|>>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete a.languages.objectivec["class-name"],a.languages.objc=a.languages.objectivec,a.languages.ocaml={comment:{pattern:/\(\*[\s\S]*?\*\)/,greedy:!0},char:{pattern:/'(?:[^\\\r\n']|\\(?:.|[ox]?[0-9a-f]{1,3}))'/i,greedy:!0},string:[{pattern:/"(?:\\(?:[\s\S]|\r\n)|[^\\\r\n"])*"/,greedy:!0},{pattern:/\{([a-z_]*)\|[\s\S]*?\|\1\}/,greedy:!0}],number:[/\b(?:0b[01][01_]*|0o[0-7][0-7_]*)\b/i,/\b0x[a-f0-9][a-f0-9_]*(?:\.[a-f0-9_]*)?(?:p[+-]?\d[\d_]*)?(?!\w)/i,/\b\d[\d_]*(?:\.[\d_]*)?(?:e[+-]?\d[\d_]*)?(?!\w)/i],directive:{pattern:/\B#\w+/,alias:"property"},label:{pattern:/\B~\w+/,alias:"property"},"type-variable":{pattern:/\B'\w+/,alias:"function"},variant:{pattern:/`\w+/,alias:"symbol"},keyword:/\b(?:as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|nonrec|object|of|open|private|rec|sig|struct|then|to|try|type|val|value|virtual|when|where|while|with)\b/,boolean:/\b(?:false|true)\b/,"operator-like-punctuation":{pattern:/\[[<>|]|[>|]\]|\{<|>\}/,alias:"punctuation"},operator:/\.[.~]|:[=>]|[=<>@^|&+\-*\/$%!?~][!$%&*+\-.\/:<=>?@^|~]*|\b(?:and|asr|land|lor|lsl|lsr|lxor|mod|or)\b/,punctuation:/;;|::|[(){}\[\].,:;#]|\b_\b/},a.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},a.languages.python["string-interpolation"].inside.interpolation.inside.rest=a.languages.python,a.languages.py=a.languages.python,a.languages.reason=a.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:asr|land|lor|lsl|lsr|lxor|mod)\b/}),a.languages.insertBefore("reason","class-name",{char:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,greedy:!0},constructor:/\b[A-Z]\w*\b(?!\s*\.)/,label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete a.languages.reason.function,function(e){e.languages.sass=e.languages.extend("css",{comment:{pattern:/^([ \t]*)\/[\/*].*(?:(?:\r?\n|\r)\1[ \t].+)*/m,lookbehind:!0,greedy:!0}}),e.languages.insertBefore("sass","atrule",{"atrule-line":{pattern:/^(?:[ \t]*)[@+=].+/m,greedy:!0,inside:{atrule:/(?:@[\w-]+|[+=])/}}}),delete e.languages.sass.atrule;var t=/\$[-\w]+|#\{\$[-\w]+\}/,n=[/[+*\/%]|[=!]=|<=?|>=?|\b(?:and|not|or)\b/,{pattern:/(\s)-(?=\s)/,lookbehind:!0}];e.languages.insertBefore("sass","property",{"variable-line":{pattern:/^[ \t]*\$.+/m,greedy:!0,inside:{punctuation:/:/,variable:t,operator:n}},"property-line":{pattern:/^[ \t]*(?:[^:\s]+ *:.*|:[^:\s].*)/m,greedy:!0,inside:{property:[/[^:\s]+(?=\s*:)/,{pattern:/(:)[^:\s]+/,lookbehind:!0}],punctuation:/:/,variable:t,operator:n,important:e.languages.sass.important}}}),delete e.languages.sass.property,delete e.languages.sass.important,e.languages.insertBefore("sass","punctuation",{selector:{pattern:/^([ \t]*)\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*(?:,(?:\r?\n|\r)\1[ \t]+\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*)*/m,lookbehind:!0,greedy:!0}})}(a),a.languages.scss=a.languages.extend("css",{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},atrule:{pattern:/@[\w-](?:\([^()]+\)|[^()\s]|\s+(?!\s))*?(?=\s+[{;])/,inside:{rule:/@[\w-]+/}},url:/(?:[-a-z]+-)?url(?=\()/i,selector:{pattern:/(?=\S)[^@;{}()]?(?:[^@;{}()\s]|\s+(?!\s)|#\{\$[-\w]+\})+(?=\s*\{(?:\}|\s|[^}][^:{}]*[:{][^}]))/,inside:{parent:{pattern:/&/,alias:"important"},placeholder:/%[-\w]+/,variable:/\$[-\w]+|#\{\$[-\w]+\}/}},property:{pattern:/(?:[-\w]|\$[-\w]|#\{\$[-\w]+\})+(?=\s*:)/,inside:{variable:/\$[-\w]+|#\{\$[-\w]+\}/}}}),a.languages.insertBefore("scss","atrule",{keyword:[/@(?:content|debug|each|else(?: if)?|extend|for|forward|function|if|import|include|mixin|return|use|warn|while)\b/i,{pattern:/( )(?:from|through)(?= )/,lookbehind:!0}]}),a.languages.insertBefore("scss","important",{variable:/\$[-\w]+|#\{\$[-\w]+\}/}),a.languages.insertBefore("scss","function",{"module-modifier":{pattern:/\b(?:as|hide|show|with)\b/i,alias:"keyword"},placeholder:{pattern:/%[-\w]+/,alias:"selector"},statement:{pattern:/\B!(?:default|optional)\b/i,alias:"keyword"},boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"},operator:{pattern:/(\s)(?:[-+*\/%]|[=!]=|<=?|>=?|and|not|or)(?=\s)/,lookbehind:!0}}),a.languages.scss.atrule.inside.rest=a.languages.scss,function(e){var t={pattern:/(\b\d+)(?:%|[a-z]+)/,lookbehind:!0},n={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0},r={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},url:{pattern:/\burl\((["']?).*?\1\)/i,greedy:!0},string:{pattern:/("|')(?:(?!\1)[^\\\r\n]|\\(?:\r\n|[\s\S]))*\1/,greedy:!0},interpolation:null,func:null,important:/\B!(?:important|optional)\b/i,keyword:{pattern:/(^|\s+)(?:(?:else|for|if|return|unless)(?=\s|$)|@[\w-]+)/,lookbehind:!0},hexcode:/#[\da-f]{3,6}/i,color:[/\b(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\b/i,{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:t,number:n,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:t,boolean:/\b(?:false|true)\b/,operator:[/~|[+!\/%<>?=]=?|[-:]=|\*[*=]?|\.{2,3}|&&|\|\||\B-\B|\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\b/],number:n,punctuation:/[{}()\[\];:,]/};r.interpolation={pattern:/\{[^\r\n}:]+\}/,alias:"variable",inside:{delimiter:{pattern:/^\{|\}$/,alias:"punctuation"},rest:r}},r.func={pattern:/[\w-]+\([^)]*\).*/,inside:{function:/^[^(]+/,rest:r}},e.languages.stylus={"atrule-declaration":{pattern:/(^[ \t]*)@.+/m,lookbehind:!0,inside:{atrule:/^@[\w-]+/,rest:r}},"variable-declaration":{pattern:/(^[ \t]*)[\w$-]+\s*.?=[ \t]*(?:\{[^{}]*\}|\S.*|$)/m,lookbehind:!0,inside:{variable:/^\S+/,rest:r}},statement:{pattern:/(^[ \t]*)(?:else|for|if|return|unless)[ \t].+/m,lookbehind:!0,inside:{keyword:/^\S+/,rest:r}},"property-declaration":{pattern:/((?:^|\{)([ \t]*))(?:[\w-]|\{[^}\r\n]+\})+(?:\s*:\s*|[ \t]+)(?!\s)[^{\r\n]*(?:;|[^{\r\n,]$(?!(?:\r?\n|\r)(?:\{|\2[ \t])))/m,lookbehind:!0,inside:{property:{pattern:/^[^\s:]+/,inside:{interpolation:r.interpolation}},rest:r}},selector:{pattern:/(^[ \t]*)(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)(?:(?:\r?\n|\r)(?:\1(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)))*(?:,$|\{|(?=(?:\r?\n|\r)(?:\{|\1[ \t])))/m,lookbehind:!0,inside:{interpolation:r.interpolation,comment:r.comment,punctuation:/[{},]/}},func:r.func,string:r.string,comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0,greedy:!0},interpolation:r.interpolation,punctuation:/[{}()\[\];:.]/}}(a),function(e){var t=e.util.clone(e.languages.typescript);e.languages.tsx=e.languages.extend("jsx",t),delete e.languages.tsx.parameter,delete e.languages.tsx["literal-property"];var n=e.languages.tsx.tag;n.pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+n.pattern.source+")",n.pattern.flags),n.lookbehind=!0}(a),a.languages.wasm={comment:[/\(;[\s\S]*?;\)/,{pattern:/;;.*/,greedy:!0}],string:{pattern:/"(?:\\[\s\S]|[^"\\])*"/,greedy:!0},keyword:[{pattern:/\b(?:align|offset)=/,inside:{operator:/=/}},{pattern:/\b(?:(?:f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|neg?|nearest|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|sqrt|store(?:8|16|32)?|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))?|memory\.(?:grow|size))\b/,inside:{punctuation:/\./}},/\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\b/],variable:/\$[\w!#$%&'*+\-./:<=>?@\\^`|~]+/,number:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/,punctuation:/[()]/};const o=a},9901:e=>{e.exports&&(e.exports={core:{meta:{path:"components/prism-core.js",option:"mandatory"},core:"Core"},themes:{meta:{path:"themes/{id}.css",link:"index.html?theme={id}",exclusive:!0},prism:{title:"Default",option:"default"},"prism-dark":"Dark","prism-funky":"Funky","prism-okaidia":{title:"Okaidia",owner:"ocodia"},"prism-twilight":{title:"Twilight",owner:"remybach"},"prism-coy":{title:"Coy",owner:"tshedor"},"prism-solarizedlight":{title:"Solarized Light",owner:"hectormatos2011 "},"prism-tomorrow":{title:"Tomorrow Night",owner:"Rosey"}},languages:{meta:{path:"components/prism-{id}",noCSS:!0,examplesPath:"examples/prism-{id}",addCheckAll:!0},markup:{title:"Markup",alias:["html","xml","svg","mathml","ssml","atom","rss"],aliasTitles:{html:"HTML",xml:"XML",svg:"SVG",mathml:"MathML",ssml:"SSML",atom:"Atom",rss:"RSS"},option:"default"},css:{title:"CSS",option:"default",modify:"markup"},clike:{title:"C-like",option:"default"},javascript:{title:"JavaScript",require:"clike",modify:"markup",optional:"regex",alias:"js",option:"default"},abap:{title:"ABAP",owner:"dellagustin"},abnf:{title:"ABNF",owner:"RunDevelopment"},actionscript:{title:"ActionScript",require:"javascript",modify:"markup",owner:"Golmote"},ada:{title:"Ada",owner:"Lucretia"},agda:{title:"Agda",owner:"xy-ren"},al:{title:"AL",owner:"RunDevelopment"},antlr4:{title:"ANTLR4",alias:"g4",owner:"RunDevelopment"},apacheconf:{title:"Apache Configuration",owner:"GuiTeK"},apex:{title:"Apex",require:["clike","sql"],owner:"RunDevelopment"},apl:{title:"APL",owner:"ngn"},applescript:{title:"AppleScript",owner:"Golmote"},aql:{title:"AQL",owner:"RunDevelopment"},arduino:{title:"Arduino",require:"cpp",alias:"ino",owner:"dkern"},arff:{title:"ARFF",owner:"Golmote"},armasm:{title:"ARM Assembly",alias:"arm-asm",owner:"RunDevelopment"},arturo:{title:"Arturo",alias:"art",optional:["bash","css","javascript","markup","markdown","sql"],owner:"drkameleon"},asciidoc:{alias:"adoc",title:"AsciiDoc",owner:"Golmote"},aspnet:{title:"ASP.NET (C#)",require:["markup","csharp"],owner:"nauzilus"},asm6502:{title:"6502 Assembly",owner:"kzurawel"},asmatmel:{title:"Atmel AVR Assembly",owner:"cerkit"},autohotkey:{title:"AutoHotkey",owner:"aviaryan"},autoit:{title:"AutoIt",owner:"Golmote"},avisynth:{title:"AviSynth",alias:"avs",owner:"Zinfidel"},"avro-idl":{title:"Avro IDL",alias:"avdl",owner:"RunDevelopment"},awk:{title:"AWK",alias:"gawk",aliasTitles:{gawk:"GAWK"},owner:"RunDevelopment"},bash:{title:"Bash",alias:["sh","shell"],aliasTitles:{sh:"Shell",shell:"Shell"},owner:"zeitgeist87"},basic:{title:"BASIC",owner:"Golmote"},batch:{title:"Batch",owner:"Golmote"},bbcode:{title:"BBcode",alias:"shortcode",aliasTitles:{shortcode:"Shortcode"},owner:"RunDevelopment"},bbj:{title:"BBj",owner:"hyyan"},bicep:{title:"Bicep",owner:"johnnyreilly"},birb:{title:"Birb",require:"clike",owner:"Calamity210"},bison:{title:"Bison",require:"c",owner:"Golmote"},bnf:{title:"BNF",alias:"rbnf",aliasTitles:{rbnf:"RBNF"},owner:"RunDevelopment"},bqn:{title:"BQN",owner:"yewscion"},brainfuck:{title:"Brainfuck",owner:"Golmote"},brightscript:{title:"BrightScript",owner:"RunDevelopment"},bro:{title:"Bro",owner:"wayward710"},bsl:{title:"BSL (1C:Enterprise)",alias:"oscript",aliasTitles:{oscript:"OneScript"},owner:"Diversus23"},c:{title:"C",require:"clike",owner:"zeitgeist87"},csharp:{title:"C#",require:"clike",alias:["cs","dotnet"],owner:"mvalipour"},cpp:{title:"C++",require:"c",owner:"zeitgeist87"},cfscript:{title:"CFScript",require:"clike",alias:"cfc",owner:"mjclemente"},chaiscript:{title:"ChaiScript",require:["clike","cpp"],owner:"RunDevelopment"},cil:{title:"CIL",owner:"sbrl"},cilkc:{title:"Cilk/C",require:"c",alias:"cilk-c",owner:"OpenCilk"},cilkcpp:{title:"Cilk/C++",require:"cpp",alias:["cilk-cpp","cilk"],owner:"OpenCilk"},clojure:{title:"Clojure",owner:"troglotit"},cmake:{title:"CMake",owner:"mjrogozinski"},cobol:{title:"COBOL",owner:"RunDevelopment"},coffeescript:{title:"CoffeeScript",require:"javascript",alias:"coffee",owner:"R-osey"},concurnas:{title:"Concurnas",alias:"conc",owner:"jasontatton"},csp:{title:"Content-Security-Policy",owner:"ScottHelme"},cooklang:{title:"Cooklang",owner:"ahue"},coq:{title:"Coq",owner:"RunDevelopment"},crystal:{title:"Crystal",require:"ruby",owner:"MakeNowJust"},"css-extras":{title:"CSS Extras",require:"css",modify:"css",owner:"milesj"},csv:{title:"CSV",owner:"RunDevelopment"},cue:{title:"CUE",owner:"RunDevelopment"},cypher:{title:"Cypher",owner:"RunDevelopment"},d:{title:"D",require:"clike",owner:"Golmote"},dart:{title:"Dart",require:"clike",owner:"Golmote"},dataweave:{title:"DataWeave",owner:"machaval"},dax:{title:"DAX",owner:"peterbud"},dhall:{title:"Dhall",owner:"RunDevelopment"},diff:{title:"Diff",owner:"uranusjr"},django:{title:"Django/Jinja2",require:"markup-templating",alias:"jinja2",owner:"romanvm"},"dns-zone-file":{title:"DNS zone file",owner:"RunDevelopment",alias:"dns-zone"},docker:{title:"Docker",alias:"dockerfile",owner:"JustinBeckwith"},dot:{title:"DOT (Graphviz)",alias:"gv",optional:"markup",owner:"RunDevelopment"},ebnf:{title:"EBNF",owner:"RunDevelopment"},editorconfig:{title:"EditorConfig",owner:"osipxd"},eiffel:{title:"Eiffel",owner:"Conaclos"},ejs:{title:"EJS",require:["javascript","markup-templating"],owner:"RunDevelopment",alias:"eta",aliasTitles:{eta:"Eta"}},elixir:{title:"Elixir",owner:"Golmote"},elm:{title:"Elm",owner:"zwilias"},etlua:{title:"Embedded Lua templating",require:["lua","markup-templating"],owner:"RunDevelopment"},erb:{title:"ERB",require:["ruby","markup-templating"],owner:"Golmote"},erlang:{title:"Erlang",owner:"Golmote"},"excel-formula":{title:"Excel Formula",alias:["xlsx","xls"],owner:"RunDevelopment"},fsharp:{title:"F#",require:"clike",owner:"simonreynolds7"},factor:{title:"Factor",owner:"catb0t"},false:{title:"False",owner:"edukisto"},"firestore-security-rules":{title:"Firestore security rules",require:"clike",owner:"RunDevelopment"},flow:{title:"Flow",require:"javascript",owner:"Golmote"},fortran:{title:"Fortran",owner:"Golmote"},ftl:{title:"FreeMarker Template Language",require:"markup-templating",owner:"RunDevelopment"},gml:{title:"GameMaker Language",alias:"gamemakerlanguage",require:"clike",owner:"LiarOnce"},gap:{title:"GAP (CAS)",owner:"RunDevelopment"},gcode:{title:"G-code",owner:"RunDevelopment"},gdscript:{title:"GDScript",owner:"RunDevelopment"},gedcom:{title:"GEDCOM",owner:"Golmote"},gettext:{title:"gettext",alias:"po",owner:"RunDevelopment"},gherkin:{title:"Gherkin",owner:"hason"},git:{title:"Git",owner:"lgiraudel"},glsl:{title:"GLSL",require:"c",owner:"Golmote"},gn:{title:"GN",alias:"gni",owner:"RunDevelopment"},"linker-script":{title:"GNU Linker Script",alias:"ld",owner:"RunDevelopment"},go:{title:"Go",require:"clike",owner:"arnehormann"},"go-module":{title:"Go module",alias:"go-mod",owner:"RunDevelopment"},gradle:{title:"Gradle",require:"clike",owner:"zeabdelkhalek-badido18"},graphql:{title:"GraphQL",optional:"markdown",owner:"Golmote"},groovy:{title:"Groovy",require:"clike",owner:"robfletcher"},haml:{title:"Haml",require:"ruby",optional:["css","css-extras","coffeescript","erb","javascript","less","markdown","scss","textile"],owner:"Golmote"},handlebars:{title:"Handlebars",require:"markup-templating",alias:["hbs","mustache"],aliasTitles:{mustache:"Mustache"},owner:"Golmote"},haskell:{title:"Haskell",alias:"hs",owner:"bholst"},haxe:{title:"Haxe",require:"clike",optional:"regex",owner:"Golmote"},hcl:{title:"HCL",owner:"outsideris"},hlsl:{title:"HLSL",require:"c",owner:"RunDevelopment"},hoon:{title:"Hoon",owner:"matildepark"},http:{title:"HTTP",optional:["csp","css","hpkp","hsts","javascript","json","markup","uri"],owner:"danielgtaylor"},hpkp:{title:"HTTP Public-Key-Pins",owner:"ScottHelme"},hsts:{title:"HTTP Strict-Transport-Security",owner:"ScottHelme"},ichigojam:{title:"IchigoJam",owner:"BlueCocoa"},icon:{title:"Icon",owner:"Golmote"},"icu-message-format":{title:"ICU Message Format",owner:"RunDevelopment"},idris:{title:"Idris",alias:"idr",owner:"KeenS",require:"haskell"},ignore:{title:".ignore",owner:"osipxd",alias:["gitignore","hgignore","npmignore"],aliasTitles:{gitignore:".gitignore",hgignore:".hgignore",npmignore:".npmignore"}},inform7:{title:"Inform 7",owner:"Golmote"},ini:{title:"Ini",owner:"aviaryan"},io:{title:"Io",owner:"AlesTsurko"},j:{title:"J",owner:"Golmote"},java:{title:"Java",require:"clike",owner:"sherblot"},javadoc:{title:"JavaDoc",require:["markup","java","javadoclike"],modify:"java",optional:"scala",owner:"RunDevelopment"},javadoclike:{title:"JavaDoc-like",modify:["java","javascript","php"],owner:"RunDevelopment"},javastacktrace:{title:"Java stack trace",owner:"RunDevelopment"},jexl:{title:"Jexl",owner:"czosel"},jolie:{title:"Jolie",require:"clike",owner:"thesave"},jq:{title:"JQ",owner:"RunDevelopment"},jsdoc:{title:"JSDoc",require:["javascript","javadoclike","typescript"],modify:"javascript",optional:["actionscript","coffeescript"],owner:"RunDevelopment"},"js-extras":{title:"JS Extras",require:"javascript",modify:"javascript",optional:["actionscript","coffeescript","flow","n4js","typescript"],owner:"RunDevelopment"},json:{title:"JSON",alias:"webmanifest",aliasTitles:{webmanifest:"Web App Manifest"},owner:"CupOfTea696"},json5:{title:"JSON5",require:"json",owner:"RunDevelopment"},jsonp:{title:"JSONP",require:"json",owner:"RunDevelopment"},jsstacktrace:{title:"JS stack trace",owner:"sbrl"},"js-templates":{title:"JS Templates",require:"javascript",modify:"javascript",optional:["css","css-extras","graphql","markdown","markup","sql"],owner:"RunDevelopment"},julia:{title:"Julia",owner:"cdagnino"},keepalived:{title:"Keepalived Configure",owner:"dev-itsheng"},keyman:{title:"Keyman",owner:"mcdurdin"},kotlin:{title:"Kotlin",alias:["kt","kts"],aliasTitles:{kts:"Kotlin Script"},require:"clike",owner:"Golmote"},kumir:{title:"KuMir (\u041a\u0443\u041c\u0438\u0440)",alias:"kum",owner:"edukisto"},kusto:{title:"Kusto",owner:"RunDevelopment"},latex:{title:"LaTeX",alias:["tex","context"],aliasTitles:{tex:"TeX",context:"ConTeXt"},owner:"japborst"},latte:{title:"Latte",require:["clike","markup-templating","php"],owner:"nette"},less:{title:"Less",require:"css",optional:"css-extras",owner:"Golmote"},lilypond:{title:"LilyPond",require:"scheme",alias:"ly",owner:"RunDevelopment"},liquid:{title:"Liquid",require:"markup-templating",owner:"cinhtau"},lisp:{title:"Lisp",alias:["emacs","elisp","emacs-lisp"],owner:"JuanCaicedo"},livescript:{title:"LiveScript",owner:"Golmote"},llvm:{title:"LLVM IR",owner:"porglezomp"},log:{title:"Log file",optional:"javastacktrace",owner:"RunDevelopment"},lolcode:{title:"LOLCODE",owner:"Golmote"},lua:{title:"Lua",owner:"Golmote"},magma:{title:"Magma (CAS)",owner:"RunDevelopment"},makefile:{title:"Makefile",owner:"Golmote"},markdown:{title:"Markdown",require:"markup",optional:"yaml",alias:"md",owner:"Golmote"},"markup-templating":{title:"Markup templating",require:"markup",owner:"Golmote"},mata:{title:"Mata",owner:"RunDevelopment"},matlab:{title:"MATLAB",owner:"Golmote"},maxscript:{title:"MAXScript",owner:"RunDevelopment"},mel:{title:"MEL",owner:"Golmote"},mermaid:{title:"Mermaid",owner:"RunDevelopment"},metafont:{title:"METAFONT",owner:"LaeriExNihilo"},mizar:{title:"Mizar",owner:"Golmote"},mongodb:{title:"MongoDB",owner:"airs0urce",require:"javascript"},monkey:{title:"Monkey",owner:"Golmote"},moonscript:{title:"MoonScript",alias:"moon",owner:"RunDevelopment"},n1ql:{title:"N1QL",owner:"TMWilds"},n4js:{title:"N4JS",require:"javascript",optional:"jsdoc",alias:"n4jsd",owner:"bsmith-n4"},"nand2tetris-hdl":{title:"Nand To Tetris HDL",owner:"stephanmax"},naniscript:{title:"Naninovel Script",owner:"Elringus",alias:"nani"},nasm:{title:"NASM",owner:"rbmj"},neon:{title:"NEON",owner:"nette"},nevod:{title:"Nevod",owner:"nezaboodka"},nginx:{title:"nginx",owner:"volado"},nim:{title:"Nim",owner:"Golmote"},nix:{title:"Nix",owner:"Golmote"},nsis:{title:"NSIS",owner:"idleberg"},objectivec:{title:"Objective-C",require:"c",alias:"objc",owner:"uranusjr"},ocaml:{title:"OCaml",owner:"Golmote"},odin:{title:"Odin",owner:"edukisto"},opencl:{title:"OpenCL",require:"c",modify:["c","cpp"],owner:"Milania1"},openqasm:{title:"OpenQasm",alias:"qasm",owner:"RunDevelopment"},oz:{title:"Oz",owner:"Golmote"},parigp:{title:"PARI/GP",owner:"Golmote"},parser:{title:"Parser",require:"markup",owner:"Golmote"},pascal:{title:"Pascal",alias:"objectpascal",aliasTitles:{objectpascal:"Object Pascal"},owner:"Golmote"},pascaligo:{title:"Pascaligo",owner:"DefinitelyNotAGoat"},psl:{title:"PATROL Scripting Language",owner:"bertysentry"},pcaxis:{title:"PC-Axis",alias:"px",owner:"RunDevelopment"},peoplecode:{title:"PeopleCode",alias:"pcode",owner:"RunDevelopment"},perl:{title:"Perl",owner:"Golmote"},php:{title:"PHP",require:"markup-templating",owner:"milesj"},phpdoc:{title:"PHPDoc",require:["php","javadoclike"],modify:"php",owner:"RunDevelopment"},"php-extras":{title:"PHP Extras",require:"php",modify:"php",owner:"milesj"},"plant-uml":{title:"PlantUML",alias:"plantuml",owner:"RunDevelopment"},plsql:{title:"PL/SQL",require:"sql",owner:"Golmote"},powerquery:{title:"PowerQuery",alias:["pq","mscript"],owner:"peterbud"},powershell:{title:"PowerShell",owner:"nauzilus"},processing:{title:"Processing",require:"clike",owner:"Golmote"},prolog:{title:"Prolog",owner:"Golmote"},promql:{title:"PromQL",owner:"arendjr"},properties:{title:".properties",owner:"Golmote"},protobuf:{title:"Protocol Buffers",require:"clike",owner:"just-boris"},pug:{title:"Pug",require:["markup","javascript"],optional:["coffeescript","ejs","handlebars","less","livescript","markdown","scss","stylus","twig"],owner:"Golmote"},puppet:{title:"Puppet",owner:"Golmote"},pure:{title:"Pure",optional:["c","cpp","fortran"],owner:"Golmote"},purebasic:{title:"PureBasic",require:"clike",alias:"pbfasm",owner:"HeX0R101"},purescript:{title:"PureScript",require:"haskell",alias:"purs",owner:"sriharshachilakapati"},python:{title:"Python",alias:"py",owner:"multipetros"},qsharp:{title:"Q#",require:"clike",alias:"qs",owner:"fedonman"},q:{title:"Q (kdb+ database)",owner:"Golmote"},qml:{title:"QML",require:"javascript",owner:"RunDevelopment"},qore:{title:"Qore",require:"clike",owner:"temnroegg"},r:{title:"R",owner:"Golmote"},racket:{title:"Racket",require:"scheme",alias:"rkt",owner:"RunDevelopment"},cshtml:{title:"Razor C#",alias:"razor",require:["markup","csharp"],optional:["css","css-extras","javascript","js-extras"],owner:"RunDevelopment"},jsx:{title:"React JSX",require:["markup","javascript"],optional:["jsdoc","js-extras","js-templates"],owner:"vkbansal"},tsx:{title:"React TSX",require:["jsx","typescript"]},reason:{title:"Reason",require:"clike",owner:"Golmote"},regex:{title:"Regex",owner:"RunDevelopment"},rego:{title:"Rego",owner:"JordanSh"},renpy:{title:"Ren'py",alias:"rpy",owner:"HyuchiaDiego"},rescript:{title:"ReScript",alias:"res",owner:"vmarcosp"},rest:{title:"reST (reStructuredText)",owner:"Golmote"},rip:{title:"Rip",owner:"ravinggenius"},roboconf:{title:"Roboconf",owner:"Golmote"},robotframework:{title:"Robot Framework",alias:"robot",owner:"RunDevelopment"},ruby:{title:"Ruby",require:"clike",alias:"rb",owner:"samflores"},rust:{title:"Rust",owner:"Golmote"},sas:{title:"SAS",optional:["groovy","lua","sql"],owner:"Golmote"},sass:{title:"Sass (Sass)",require:"css",optional:"css-extras",owner:"Golmote"},scss:{title:"Sass (SCSS)",require:"css",optional:"css-extras",owner:"MoOx"},scala:{title:"Scala",require:"java",owner:"jozic"},scheme:{title:"Scheme",owner:"bacchus123"},"shell-session":{title:"Shell session",require:"bash",alias:["sh-session","shellsession"],owner:"RunDevelopment"},smali:{title:"Smali",owner:"RunDevelopment"},smalltalk:{title:"Smalltalk",owner:"Golmote"},smarty:{title:"Smarty",require:"markup-templating",optional:"php",owner:"Golmote"},sml:{title:"SML",alias:"smlnj",aliasTitles:{smlnj:"SML/NJ"},owner:"RunDevelopment"},solidity:{title:"Solidity (Ethereum)",alias:"sol",require:"clike",owner:"glachaud"},"solution-file":{title:"Solution file",alias:"sln",owner:"RunDevelopment"},soy:{title:"Soy (Closure Template)",require:"markup-templating",owner:"Golmote"},sparql:{title:"SPARQL",require:"turtle",owner:"Triply-Dev",alias:"rq"},"splunk-spl":{title:"Splunk SPL",owner:"RunDevelopment"},sqf:{title:"SQF: Status Quo Function (Arma 3)",require:"clike",owner:"RunDevelopment"},sql:{title:"SQL",owner:"multipetros"},squirrel:{title:"Squirrel",require:"clike",owner:"RunDevelopment"},stan:{title:"Stan",owner:"RunDevelopment"},stata:{title:"Stata Ado",require:["mata","java","python"],owner:"RunDevelopment"},iecst:{title:"Structured Text (IEC 61131-3)",owner:"serhioromano"},stylus:{title:"Stylus",owner:"vkbansal"},supercollider:{title:"SuperCollider",alias:"sclang",owner:"RunDevelopment"},swift:{title:"Swift",owner:"chrischares"},systemd:{title:"Systemd configuration file",owner:"RunDevelopment"},"t4-templating":{title:"T4 templating",owner:"RunDevelopment"},"t4-cs":{title:"T4 Text Templates (C#)",require:["t4-templating","csharp"],alias:"t4",owner:"RunDevelopment"},"t4-vb":{title:"T4 Text Templates (VB)",require:["t4-templating","vbnet"],owner:"RunDevelopment"},tap:{title:"TAP",owner:"isaacs",require:"yaml"},tcl:{title:"Tcl",owner:"PeterChaplin"},tt2:{title:"Template Toolkit 2",require:["clike","markup-templating"],owner:"gflohr"},textile:{title:"Textile",require:"markup",optional:"css",owner:"Golmote"},toml:{title:"TOML",owner:"RunDevelopment"},tremor:{title:"Tremor",alias:["trickle","troy"],owner:"darach",aliasTitles:{trickle:"trickle",troy:"troy"}},turtle:{title:"Turtle",alias:"trig",aliasTitles:{trig:"TriG"},owner:"jakubklimek"},twig:{title:"Twig",require:"markup-templating",owner:"brandonkelly"},typescript:{title:"TypeScript",require:"javascript",optional:"js-templates",alias:"ts",owner:"vkbansal"},typoscript:{title:"TypoScript",alias:"tsconfig",aliasTitles:{tsconfig:"TSConfig"},owner:"dkern"},unrealscript:{title:"UnrealScript",alias:["uscript","uc"],owner:"RunDevelopment"},uorazor:{title:"UO Razor Script",owner:"jaseowns"},uri:{title:"URI",alias:"url",aliasTitles:{url:"URL"},owner:"RunDevelopment"},v:{title:"V",require:"clike",owner:"taggon"},vala:{title:"Vala",require:"clike",optional:"regex",owner:"TemplarVolk"},vbnet:{title:"VB.Net",require:"basic",owner:"Bigsby"},velocity:{title:"Velocity",require:"markup",owner:"Golmote"},verilog:{title:"Verilog",owner:"a-rey"},vhdl:{title:"VHDL",owner:"a-rey"},vim:{title:"vim",owner:"westonganger"},"visual-basic":{title:"Visual Basic",alias:["vb","vba"],aliasTitles:{vba:"VBA"},owner:"Golmote"},warpscript:{title:"WarpScript",owner:"RunDevelopment"},wasm:{title:"WebAssembly",owner:"Golmote"},"web-idl":{title:"Web IDL",alias:"webidl",owner:"RunDevelopment"},wgsl:{title:"WGSL",owner:"Dr4gonthree"},wiki:{title:"Wiki markup",require:"markup",owner:"Golmote"},wolfram:{title:"Wolfram language",alias:["mathematica","nb","wl"],aliasTitles:{mathematica:"Mathematica",nb:"Mathematica Notebook"},owner:"msollami"},wren:{title:"Wren",owner:"clsource"},xeora:{title:"Xeora",require:"markup",alias:"xeoracube",aliasTitles:{xeoracube:"XeoraCube"},owner:"freakmaxi"},"xml-doc":{title:"XML doc (.net)",require:"markup",modify:["csharp","fsharp","vbnet"],owner:"RunDevelopment"},xojo:{title:"Xojo (REALbasic)",owner:"Golmote"},xquery:{title:"XQuery",require:"markup",owner:"Golmote"},yaml:{title:"YAML",alias:"yml",owner:"hason"},yang:{title:"YANG",owner:"RunDevelopment"},zig:{title:"Zig",owner:"RunDevelopment"}},plugins:{meta:{path:"plugins/{id}/prism-{id}",link:"plugins/{id}/"},"line-highlight":{title:"Line Highlight",description:"Highlights specific lines and/or line ranges."},"line-numbers":{title:"Line Numbers",description:"Line number at the beginning of code lines.",owner:"kuba-kubula"},"show-invisibles":{title:"Show Invisibles",description:"Show hidden characters such as tabs and line breaks.",optional:["autolinker","data-uri-highlight"]},autolinker:{title:"Autolinker",description:"Converts URLs and emails in code to clickable links. Parses Markdown links in comments."},wpd:{title:"WebPlatform Docs",description:'Makes tokens link to <a href="https://webplatform.github.io/docs/">WebPlatform.org documentation</a>. The links open in a new tab.'},"custom-class":{title:"Custom Class",description:"This plugin allows you to prefix Prism's default classes (<code>.comment</code> can become <code>.namespace--comment</code>) or replace them with your defined ones (like <code>.editor__comment</code>). You can even add new classes.",owner:"dvkndn",noCSS:!0},"file-highlight":{title:"File Highlight",description:"Fetch external files and highlight them with Prism. Used on the Prism website itself.",noCSS:!0},"show-language":{title:"Show Language",description:"Display the highlighted language in code blocks (inline code does not show the label).",owner:"nauzilus",noCSS:!0,require:"toolbar"},"jsonp-highlight":{title:"JSONP Highlight",description:"Fetch content with JSONP and highlight some interesting content (e.g. GitHub/Gists or Bitbucket API).",noCSS:!0,owner:"nauzilus"},"highlight-keywords":{title:"Highlight Keywords",description:"Adds special CSS classes for each keyword for fine-grained highlighting.",owner:"vkbansal",noCSS:!0},"remove-initial-line-feed":{title:"Remove initial line feed",description:"Removes the initial line feed in code blocks.",owner:"Golmote",noCSS:!0},"inline-color":{title:"Inline color",description:"Adds a small inline preview for colors in style sheets.",require:"css-extras",owner:"RunDevelopment"},previewers:{title:"Previewers",description:"Previewers for angles, colors, gradients, easing and time.",require:"css-extras",owner:"Golmote"},autoloader:{title:"Autoloader",description:"Automatically loads the needed languages to highlight the code blocks.",owner:"Golmote",noCSS:!0},"keep-markup":{title:"Keep Markup",description:"Prevents custom markup from being dropped out during highlighting.",owner:"Golmote",optional:"normalize-whitespace",noCSS:!0},"command-line":{title:"Command Line",description:"Display a command line with a prompt and, optionally, the output/response from the commands.",owner:"chriswells0"},"unescaped-markup":{title:"Unescaped Markup",description:"Write markup without having to escape anything."},"normalize-whitespace":{title:"Normalize Whitespace",description:"Supports multiple operations to normalize whitespace in code blocks.",owner:"zeitgeist87",optional:"unescaped-markup",noCSS:!0},"data-uri-highlight":{title:"Data-URI Highlight",description:"Highlights data-URI contents.",owner:"Golmote",noCSS:!0},toolbar:{title:"Toolbar",description:"Attach a toolbar for plugins to easily register buttons on the top of a code block.",owner:"mAAdhaTTah"},"copy-to-clipboard":{title:"Copy to Clipboard Button",description:"Add a button that copies the code block to the clipboard when clicked.",owner:"mAAdhaTTah",require:"toolbar",noCSS:!0},"download-button":{title:"Download Button",description:"A button in the toolbar of a code block adding a convenient way to download a code file.",owner:"Golmote",require:"toolbar",noCSS:!0},"match-braces":{title:"Match braces",description:"Highlights matching braces.",owner:"RunDevelopment"},"diff-highlight":{title:"Diff Highlight",description:"Highlights the code inside diff blocks.",owner:"RunDevelopment",require:"diff"},"filter-highlight-all":{title:"Filter highlightAll",description:"Filters the elements the <code>highlightAll</code> and <code>highlightAllUnder</code> methods actually highlight.",owner:"RunDevelopment",noCSS:!0},treeview:{title:"Treeview",description:"A language with special styles to highlight file system tree structures.",owner:"Golmote"}}})},2885:(e,t,n)=>{const r=n(9901),a=n(9642),o=new Set;function i(e){void 0===e?e=Object.keys(r.languages).filter((e=>"meta"!=e)):Array.isArray(e)||(e=[e]);const t=[...o,...Object.keys(Prism.languages)];a(r,e,t).load((e=>{if(!(e in r.languages))return void(i.silent||console.warn("Language does not exist: "+e));const t="./prism-"+e;delete n.c[n(6500).resolve(t)],delete Prism.languages[e],n(6500)(t),o.add(e)}))}i.silent=!1,e.exports=i},6726:(e,t,n)=>{var r={"./":2885};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=6726},6500:(e,t,n)=>{var r={"./":2885};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=6500},9642:e=>{"use strict";var t=function(){var e=function(){};function t(e,t){Array.isArray(e)?e.forEach(t):null!=e&&t(e,0)}function n(e){for(var t={},n=0,r=e.length;n<r;n++)t[e[n]]=!0;return t}function r(e){var n={},r=[];function a(r,o){if(!(r in n)){o.push(r);var i=o.indexOf(r);if(i<o.length-1)throw new Error("Circular dependency: "+o.slice(i).join(" -> "));var l={},s=e[r];if(s){function c(t){if(!(t in e))throw new Error(r+" depends on an unknown component "+t);if(!(t in l))for(var i in a(t,o),l[t]=!0,n[t])l[i]=!0}t(s.require,c),t(s.optional,c),t(s.modify,c)}n[r]=l,o.pop()}}return function(e){var t=n[e];return t||(a(e,r),t=n[e]),t}}function a(e){for(var t in e)return!0;return!1}return function(o,i,l){var s=function(e){var t={};for(var n in e){var r=e[n];for(var a in r)if("meta"!=a){var o=r[a];t[a]="string"==typeof o?{title:o}:o}}return t}(o),c=function(e){var n;return function(r){if(r in e)return r;if(!n)for(var a in n={},e){var o=e[a];t(o&&o.alias,(function(t){if(t in n)throw new Error(t+" cannot be alias for both "+a+" and "+n[t]);if(t in e)throw new Error(t+" cannot be alias of "+a+" because it is a component.");n[t]=a}))}return n[r]||r}}(s);i=i.map(c),l=(l||[]).map(c);var u=n(i),d=n(l);i.forEach((function e(n){var r=s[n];t(r&&r.require,(function(t){t in d||(u[t]=!0,e(t))}))}));for(var p,f=r(s),m=u;a(m);){for(var h in p={},m){var g=s[h];t(g&&g.modify,(function(e){e in d&&(p[e]=!0)}))}for(var b in d)if(!(b in u))for(var v in f(b))if(v in u){p[b]=!0;break}for(var y in m=p)u[y]=!0}var w={getIds:function(){var e=[];return w.load((function(t){e.push(t)})),e},load:function(t,n){return function(t,n,r,a){var o=a?a.series:void 0,i=a?a.parallel:e,l={},s={};function c(e){if(e in l)return l[e];s[e]=!0;var a,u=[];for(var d in t(e))d in n&&u.push(d);if(0===u.length)a=r(e);else{var p=i(u.map((function(e){var t=c(e);return delete s[e],t})));o?a=o(p,(function(){return r(e)})):r(e)}return l[e]=a}for(var u in n)c(u);var d=[];for(var p in s)d.push(l[p]);return i(d)}(f,u,t,n)}};return w}}();e.exports=t},2703:(e,t,n)=>{"use strict";var r=n(414);function a(){}function o(){}o.resetWarningCache=a,e.exports=function(){function e(e,t,n,a,o,i){if(i!==r){var l=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw l.name="Invariant Violation",l}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:o,resetWarningCache:a};return n.PropTypes=n,n}},5697:(e,t,n)=>{e.exports=n(2703)()},414:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},4448:(e,t,n)=>{"use strict";var r=n(7294),a=n(7418),o=n(3840);function i(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}if(!r)throw Error(i(227));var l=new Set,s={};function c(e,t){u(e,t),u(e+"Capture",t)}function u(e,t){for(s[e]=t,e=0;e<t.length;e++)l.add(t[e])}var d=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement),p=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,f=Object.prototype.hasOwnProperty,m={},h={};function g(e,t,n,r,a,o,i){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=r,this.attributeNamespace=a,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=o,this.removeEmptyString=i}var b={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e){b[e]=new g(e,0,!1,e,null,!1,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var t=e[0];b[t]=new g(t,1,!1,e[1],null,!1,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){b[e]=new g(e,2,!1,e.toLowerCase(),null,!1,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){b[e]=new g(e,2,!1,e,null,!1,!1)})),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach((function(e){b[e]=new g(e,3,!1,e.toLowerCase(),null,!1,!1)})),["checked","multiple","muted","selected"].forEach((function(e){b[e]=new g(e,3,!0,e,null,!1,!1)})),["capture","download"].forEach((function(e){b[e]=new g(e,4,!1,e,null,!1,!1)})),["cols","rows","size","span"].forEach((function(e){b[e]=new g(e,6,!1,e,null,!1,!1)})),["rowSpan","start"].forEach((function(e){b[e]=new g(e,5,!1,e.toLowerCase(),null,!1,!1)}));var v=/[\-:]([a-z])/g;function y(e){return e[1].toUpperCase()}function w(e,t,n,r){var a=b.hasOwnProperty(t)?b[t]:null;(null!==a?0===a.type:!r&&(2<t.length&&("o"===t[0]||"O"===t[0])&&("n"===t[1]||"N"===t[1])))||(function(e,t,n,r){if(null==t||function(e,t,n,r){if(null!==n&&0===n.type)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return!r&&(null!==n?!n.acceptsBooleans:"data-"!==(e=e.toLowerCase().slice(0,5))&&"aria-"!==e);default:return!1}}(e,t,n,r))return!0;if(r)return!1;if(null!==n)switch(n.type){case 3:return!t;case 4:return!1===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}(t,n,a,r)&&(n=null),r||null===a?function(e){return!!f.call(h,e)||!f.call(m,e)&&(p.test(e)?h[e]=!0:(m[e]=!0,!1))}(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,""+n)):a.mustUseProperty?e[a.propertyName]=null===n?3!==a.type&&"":n:(t=a.attributeName,r=a.attributeNamespace,null===n?e.removeAttribute(t):(n=3===(a=a.type)||4===a&&!0===n?"":""+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach((function(e){var t=e.replace(v,y);b[t]=new g(t,1,!1,e,null,!1,!1)})),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach((function(e){var t=e.replace(v,y);b[t]=new g(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)})),["xml:base","xml:lang","xml:space"].forEach((function(e){var t=e.replace(v,y);b[t]=new g(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)})),["tabIndex","crossOrigin"].forEach((function(e){b[e]=new g(e,1,!1,e.toLowerCase(),null,!1,!1)})),b.xlinkHref=new g("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach((function(e){b[e]=new g(e,1,!1,e.toLowerCase(),null,!0,!0)}));var k=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,S=60103,E=60106,x=60107,_=60108,C=60114,T=60109,A=60110,L=60112,P=60113,R=60120,N=60115,O=60116,I=60121,D=60128,M=60129,F=60130,j=60131;if("function"==typeof Symbol&&Symbol.for){var B=Symbol.for;S=B("react.element"),E=B("react.portal"),x=B("react.fragment"),_=B("react.strict_mode"),C=B("react.profiler"),T=B("react.provider"),A=B("react.context"),L=B("react.forward_ref"),P=B("react.suspense"),R=B("react.suspense_list"),N=B("react.memo"),O=B("react.lazy"),I=B("react.block"),B("react.scope"),D=B("react.opaque.id"),M=B("react.debug_trace_mode"),F=B("react.offscreen"),j=B("react.legacy_hidden")}var z,U="function"==typeof Symbol&&Symbol.iterator;function $(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=U&&e[U]||e["@@iterator"])?e:null}function q(e){if(void 0===z)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);z=t&&t[1]||""}return"\n"+z+e}var G=!1;function H(e,t){if(!e||G)return"";G=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),"object"==typeof Reflect&&Reflect.construct){try{Reflect.construct(t,[])}catch(s){var r=s}Reflect.construct(e,[],t)}else{try{t.call()}catch(s){r=s}e.call(t.prototype)}else{try{throw Error()}catch(s){r=s}e()}}catch(s){if(s&&r&&"string"==typeof s.stack){for(var a=s.stack.split("\n"),o=r.stack.split("\n"),i=a.length-1,l=o.length-1;1<=i&&0<=l&&a[i]!==o[l];)l--;for(;1<=i&&0<=l;i--,l--)if(a[i]!==o[l]){if(1!==i||1!==l)do{if(i--,0>--l||a[i]!==o[l])return"\n"+a[i].replace(" at new "," at ")}while(1<=i&&0<=l);break}}}finally{G=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?q(e):""}function Z(e){switch(e.tag){case 5:return q(e.type);case 16:return q("Lazy");case 13:return q("Suspense");case 19:return q("SuspenseList");case 0:case 2:case 15:return e=H(e.type,!1);case 11:return e=H(e.type.render,!1);case 22:return e=H(e.type._render,!1);case 1:return e=H(e.type,!0);default:return""}}function V(e){if(null==e)return null;if("function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case x:return"Fragment";case E:return"Portal";case C:return"Profiler";case _:return"StrictMode";case P:return"Suspense";case R:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case A:return(e.displayName||"Context")+".Consumer";case T:return(e._context.displayName||"Context")+".Provider";case L:var t=e.render;return t=t.displayName||t.name||"",e.displayName||(""!==t?"ForwardRef("+t+")":"ForwardRef");case N:return V(e.type);case I:return V(e._render);case O:t=e._payload,e=e._init;try{return V(e(t))}catch(n){}}return null}function W(e){switch(typeof e){case"boolean":case"number":case"object":case"string":case"undefined":return e;default:return""}}function Y(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function K(e){e._valueTracker||(e._valueTracker=function(e){var t=Y(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&void 0!==n&&"function"==typeof n.get&&"function"==typeof n.set){var a=n.get,o=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return a.call(this)},set:function(e){r=""+e,o.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(e){r=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e))}function X(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=Y(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}function Q(e){if(void 0===(e=e||("undefined"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}function J(e,t){var n=t.checked;return a({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=n?n:e._wrapperState.initialChecked})}function ee(e,t){var n=null==t.defaultValue?"":t.defaultValue,r=null!=t.checked?t.checked:t.defaultChecked;n=W(null!=t.value?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value}}function te(e,t){null!=(t=t.checked)&&w(e,"checked",t,!1)}function ne(e,t){te(e,t);var n=W(t.value),r=t.type;if(null!=n)"number"===r?(0===n&&""===e.value||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if("submit"===r||"reset"===r)return void e.removeAttribute("value");t.hasOwnProperty("value")?ae(e,t.type,n):t.hasOwnProperty("defaultValue")&&ae(e,t.type,W(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function re(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!("submit"!==r&&"reset"!==r||void 0!==t.value&&null!==t.value))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}""!==(n=e.name)&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,""!==n&&(e.name=n)}function ae(e,t,n){"number"===t&&Q(e.ownerDocument)===e||(null==n?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}function oe(e,t){return e=a({children:void 0},t),(t=function(e){var t="";return r.Children.forEach(e,(function(e){null!=e&&(t+=e)})),t}(t.children))&&(e.children=t),e}function ie(e,t,n,r){if(e=e.options,t){t={};for(var a=0;a<n.length;a++)t["$"+n[a]]=!0;for(n=0;n<e.length;n++)a=t.hasOwnProperty("$"+e[n].value),e[n].selected!==a&&(e[n].selected=a),a&&r&&(e[n].defaultSelected=!0)}else{for(n=""+W(n),t=null,a=0;a<e.length;a++){if(e[a].value===n)return e[a].selected=!0,void(r&&(e[a].defaultSelected=!0));null!==t||e[a].disabled||(t=e[a])}null!==t&&(t.selected=!0)}}function le(e,t){if(null!=t.dangerouslySetInnerHTML)throw Error(i(91));return a({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function se(e,t){var n=t.value;if(null==n){if(n=t.children,t=t.defaultValue,null!=n){if(null!=t)throw Error(i(92));if(Array.isArray(n)){if(!(1>=n.length))throw Error(i(93));n=n[0]}t=n}null==t&&(t=""),n=t}e._wrapperState={initialValue:W(n)}}function ce(e,t){var n=W(t.value),r=W(t.defaultValue);null!=n&&((n=""+n)!==e.value&&(e.value=n),null==t.defaultValue&&e.defaultValue!==n&&(e.defaultValue=n)),null!=r&&(e.defaultValue=""+r)}function ue(e){var t=e.textContent;t===e._wrapperState.initialValue&&""!==t&&null!==t&&(e.value=t)}var de={html:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML",svg:"http://www.w3.org/2000/svg"};function pe(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function fe(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?pe(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}var me,he,ge=(he=function(e,t){if(e.namespaceURI!==de.svg||"innerHTML"in e)e.innerHTML=t;else{for((me=me||document.createElement("div")).innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=me.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}},"undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(e,t,n,r){MSApp.execUnsafeLocalFunction((function(){return he(e,t)}))}:he);function be(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}var ve={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},ye=["Webkit","ms","Moz","O"];function we(e,t,n){return null==t||"boolean"==typeof t||""===t?"":n||"number"!=typeof t||0===t||ve.hasOwnProperty(e)&&ve[e]?(""+t).trim():t+"px"}function ke(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var r=0===n.indexOf("--"),a=we(n,t[n],r);"float"===n&&(n="cssFloat"),r?e.setProperty(n,a):e[n]=a}}Object.keys(ve).forEach((function(e){ye.forEach((function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),ve[t]=ve[e]}))}));var Se=a({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Ee(e,t){if(t){if(Se[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML))throw Error(i(137,e));if(null!=t.dangerouslySetInnerHTML){if(null!=t.children)throw Error(i(60));if("object"!=typeof t.dangerouslySetInnerHTML||!("__html"in t.dangerouslySetInnerHTML))throw Error(i(61))}if(null!=t.style&&"object"!=typeof t.style)throw Error(i(62))}}function xe(e,t){if(-1===e.indexOf("-"))return"string"==typeof t.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}function _e(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var Ce=null,Te=null,Ae=null;function Le(e){if(e=na(e)){if("function"!=typeof Ce)throw Error(i(280));var t=e.stateNode;t&&(t=aa(t),Ce(e.stateNode,e.type,t))}}function Pe(e){Te?Ae?Ae.push(e):Ae=[e]:Te=e}function Re(){if(Te){var e=Te,t=Ae;if(Ae=Te=null,Le(e),t)for(e=0;e<t.length;e++)Le(t[e])}}function Ne(e,t){return e(t)}function Oe(e,t,n,r,a){return e(t,n,r,a)}function Ie(){}var De=Ne,Me=!1,Fe=!1;function je(){null===Te&&null===Ae||(Ie(),Re())}function Be(e,t){var n=e.stateNode;if(null===n)return null;var r=aa(n);if(null===r)return null;n=r[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(r=!r.disabled)||(r=!("button"===(e=e.type)||"input"===e||"select"===e||"textarea"===e)),e=!r;break e;default:e=!1}if(e)return null;if(n&&"function"!=typeof n)throw Error(i(231,t,typeof n));return n}var ze=!1;if(d)try{var Ue={};Object.defineProperty(Ue,"passive",{get:function(){ze=!0}}),window.addEventListener("test",Ue,Ue),window.removeEventListener("test",Ue,Ue)}catch(he){ze=!1}function $e(e,t,n,r,a,o,i,l,s){var c=Array.prototype.slice.call(arguments,3);try{t.apply(n,c)}catch(u){this.onError(u)}}var qe=!1,Ge=null,He=!1,Ze=null,Ve={onError:function(e){qe=!0,Ge=e}};function We(e,t,n,r,a,o,i,l,s){qe=!1,Ge=null,$e.apply(Ve,arguments)}function Ye(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do{0!=(1026&(t=e).flags)&&(n=t.return),e=t.return}while(e)}return 3===t.tag?n:null}function Ke(e){if(13===e.tag){var t=e.memoizedState;if(null===t&&(null!==(e=e.alternate)&&(t=e.memoizedState)),null!==t)return t.dehydrated}return null}function Xe(e){if(Ye(e)!==e)throw Error(i(188))}function Qe(e){if(e=function(e){var t=e.alternate;if(!t){if(null===(t=Ye(e)))throw Error(i(188));return t!==e?null:e}for(var n=e,r=t;;){var a=n.return;if(null===a)break;var o=a.alternate;if(null===o){if(null!==(r=a.return)){n=r;continue}break}if(a.child===o.child){for(o=a.child;o;){if(o===n)return Xe(a),e;if(o===r)return Xe(a),t;o=o.sibling}throw Error(i(188))}if(n.return!==r.return)n=a,r=o;else{for(var l=!1,s=a.child;s;){if(s===n){l=!0,n=a,r=o;break}if(s===r){l=!0,r=a,n=o;break}s=s.sibling}if(!l){for(s=o.child;s;){if(s===n){l=!0,n=o,r=a;break}if(s===r){l=!0,r=o,n=a;break}s=s.sibling}if(!l)throw Error(i(189))}}if(n.alternate!==r)throw Error(i(190))}if(3!==n.tag)throw Error(i(188));return n.stateNode.current===n?e:t}(e),!e)return null;for(var t=e;;){if(5===t.tag||6===t.tag)return t;if(t.child)t.child.return=t,t=t.child;else{if(t===e)break;for(;!t.sibling;){if(!t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}}return null}function Je(e,t){for(var n=e.alternate;null!==t;){if(t===e||t===n)return!0;t=t.return}return!1}var et,tt,nt,rt,at=!1,ot=[],it=null,lt=null,st=null,ct=new Map,ut=new Map,dt=[],pt="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function ft(e,t,n,r,a){return{blockedOn:e,domEventName:t,eventSystemFlags:16|n,nativeEvent:a,targetContainers:[r]}}function mt(e,t){switch(e){case"focusin":case"focusout":it=null;break;case"dragenter":case"dragleave":lt=null;break;case"mouseover":case"mouseout":st=null;break;case"pointerover":case"pointerout":ct.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":ut.delete(t.pointerId)}}function ht(e,t,n,r,a,o){return null===e||e.nativeEvent!==o?(e=ft(t,n,r,a,o),null!==t&&(null!==(t=na(t))&&tt(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,null!==a&&-1===t.indexOf(a)&&t.push(a),e)}function gt(e){var t=ta(e.target);if(null!==t){var n=Ye(t);if(null!==n)if(13===(t=n.tag)){if(null!==(t=Ke(n)))return e.blockedOn=t,void rt(e.lanePriority,(function(){o.unstable_runWithPriority(e.priority,(function(){nt(n)}))}))}else if(3===t&&n.stateNode.hydrate)return void(e.blockedOn=3===n.tag?n.stateNode.containerInfo:null)}e.blockedOn=null}function bt(e){if(null!==e.blockedOn)return!1;for(var t=e.targetContainers;0<t.length;){var n=Qt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n)return null!==(t=na(n))&&tt(t),e.blockedOn=n,!1;t.shift()}return!0}function vt(e,t,n){bt(e)&&n.delete(t)}function yt(){for(at=!1;0<ot.length;){var e=ot[0];if(null!==e.blockedOn){null!==(e=na(e.blockedOn))&&et(e);break}for(var t=e.targetContainers;0<t.length;){var n=Qt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n){e.blockedOn=n;break}t.shift()}null===e.blockedOn&&ot.shift()}null!==it&&bt(it)&&(it=null),null!==lt&&bt(lt)&&(lt=null),null!==st&&bt(st)&&(st=null),ct.forEach(vt),ut.forEach(vt)}function wt(e,t){e.blockedOn===t&&(e.blockedOn=null,at||(at=!0,o.unstable_scheduleCallback(o.unstable_NormalPriority,yt)))}function kt(e){function t(t){return wt(t,e)}if(0<ot.length){wt(ot[0],e);for(var n=1;n<ot.length;n++){var r=ot[n];r.blockedOn===e&&(r.blockedOn=null)}}for(null!==it&&wt(it,e),null!==lt&&wt(lt,e),null!==st&&wt(st,e),ct.forEach(t),ut.forEach(t),n=0;n<dt.length;n++)(r=dt[n]).blockedOn===e&&(r.blockedOn=null);for(;0<dt.length&&null===(n=dt[0]).blockedOn;)gt(n),null===n.blockedOn&&dt.shift()}function St(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var Et={animationend:St("Animation","AnimationEnd"),animationiteration:St("Animation","AnimationIteration"),animationstart:St("Animation","AnimationStart"),transitionend:St("Transition","TransitionEnd")},xt={},_t={};function Ct(e){if(xt[e])return xt[e];if(!Et[e])return e;var t,n=Et[e];for(t in n)if(n.hasOwnProperty(t)&&t in _t)return xt[e]=n[t];return e}d&&(_t=document.createElement("div").style,"AnimationEvent"in window||(delete Et.animationend.animation,delete Et.animationiteration.animation,delete Et.animationstart.animation),"TransitionEvent"in window||delete Et.transitionend.transition);var Tt=Ct("animationend"),At=Ct("animationiteration"),Lt=Ct("animationstart"),Pt=Ct("transitionend"),Rt=new Map,Nt=new Map,Ot=["abort","abort",Tt,"animationEnd",At,"animationIteration",Lt,"animationStart","canplay","canPlay","canplaythrough","canPlayThrough","durationchange","durationChange","emptied","emptied","encrypted","encrypted","ended","ended","error","error","gotpointercapture","gotPointerCapture","load","load","loadeddata","loadedData","loadedmetadata","loadedMetadata","loadstart","loadStart","lostpointercapture","lostPointerCapture","playing","playing","progress","progress","seeking","seeking","stalled","stalled","suspend","suspend","timeupdate","timeUpdate",Pt,"transitionEnd","waiting","waiting"];function It(e,t){for(var n=0;n<e.length;n+=2){var r=e[n],a=e[n+1];a="on"+(a[0].toUpperCase()+a.slice(1)),Nt.set(r,t),Rt.set(r,a),c(a,[r])}}(0,o.unstable_now)();var Dt=8;function Mt(e){if(0!=(1&e))return Dt=15,1;if(0!=(2&e))return Dt=14,2;if(0!=(4&e))return Dt=13,4;var t=24&e;return 0!==t?(Dt=12,t):0!=(32&e)?(Dt=11,32):0!==(t=192&e)?(Dt=10,t):0!=(256&e)?(Dt=9,256):0!==(t=3584&e)?(Dt=8,t):0!=(4096&e)?(Dt=7,4096):0!==(t=4186112&e)?(Dt=6,t):0!==(t=62914560&e)?(Dt=5,t):67108864&e?(Dt=4,67108864):0!=(134217728&e)?(Dt=3,134217728):0!==(t=805306368&e)?(Dt=2,t):0!=(1073741824&e)?(Dt=1,1073741824):(Dt=8,e)}function Ft(e,t){var n=e.pendingLanes;if(0===n)return Dt=0;var r=0,a=0,o=e.expiredLanes,i=e.suspendedLanes,l=e.pingedLanes;if(0!==o)r=o,a=Dt=15;else if(0!==(o=134217727&n)){var s=o&~i;0!==s?(r=Mt(s),a=Dt):0!==(l&=o)&&(r=Mt(l),a=Dt)}else 0!==(o=n&~i)?(r=Mt(o),a=Dt):0!==l&&(r=Mt(l),a=Dt);if(0===r)return 0;if(r=n&((0>(r=31-qt(r))?0:1<<r)<<1)-1,0!==t&&t!==r&&0==(t&i)){if(Mt(t),a<=Dt)return t;Dt=a}if(0!==(t=e.entangledLanes))for(e=e.entanglements,t&=r;0<t;)a=1<<(n=31-qt(t)),r|=e[n],t&=~a;return r}function jt(e){return 0!==(e=-1073741825&e.pendingLanes)?e:1073741824&e?1073741824:0}function Bt(e,t){switch(e){case 15:return 1;case 14:return 2;case 12:return 0===(e=zt(24&~t))?Bt(10,t):e;case 10:return 0===(e=zt(192&~t))?Bt(8,t):e;case 8:return 0===(e=zt(3584&~t))&&(0===(e=zt(4186112&~t))&&(e=512)),e;case 2:return 0===(t=zt(805306368&~t))&&(t=268435456),t}throw Error(i(358,e))}function zt(e){return e&-e}function Ut(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function $t(e,t,n){e.pendingLanes|=t;var r=t-1;e.suspendedLanes&=r,e.pingedLanes&=r,(e=e.eventTimes)[t=31-qt(t)]=n}var qt=Math.clz32?Math.clz32:function(e){return 0===e?32:31-(Gt(e)/Ht|0)|0},Gt=Math.log,Ht=Math.LN2;var Zt=o.unstable_UserBlockingPriority,Vt=o.unstable_runWithPriority,Wt=!0;function Yt(e,t,n,r){Me||Ie();var a=Xt,o=Me;Me=!0;try{Oe(a,e,t,n,r)}finally{(Me=o)||je()}}function Kt(e,t,n,r){Vt(Zt,Xt.bind(null,e,t,n,r))}function Xt(e,t,n,r){var a;if(Wt)if((a=0==(4&t))&&0<ot.length&&-1<pt.indexOf(e))e=ft(null,e,t,n,r),ot.push(e);else{var o=Qt(e,t,n,r);if(null===o)a&&mt(e,r);else{if(a){if(-1<pt.indexOf(e))return e=ft(o,e,t,n,r),void ot.push(e);if(function(e,t,n,r,a){switch(t){case"focusin":return it=ht(it,e,t,n,r,a),!0;case"dragenter":return lt=ht(lt,e,t,n,r,a),!0;case"mouseover":return st=ht(st,e,t,n,r,a),!0;case"pointerover":var o=a.pointerId;return ct.set(o,ht(ct.get(o)||null,e,t,n,r,a)),!0;case"gotpointercapture":return o=a.pointerId,ut.set(o,ht(ut.get(o)||null,e,t,n,r,a)),!0}return!1}(o,e,t,n,r))return;mt(e,r)}Ir(e,t,r,null,n)}}}function Qt(e,t,n,r){var a=_e(r);if(null!==(a=ta(a))){var o=Ye(a);if(null===o)a=null;else{var i=o.tag;if(13===i){if(null!==(a=Ke(o)))return a;a=null}else if(3===i){if(o.stateNode.hydrate)return 3===o.tag?o.stateNode.containerInfo:null;a=null}else o!==a&&(a=null)}}return Ir(e,t,r,a,n),null}var Jt=null,en=null,tn=null;function nn(){if(tn)return tn;var e,t,n=en,r=n.length,a="value"in Jt?Jt.value:Jt.textContent,o=a.length;for(e=0;e<r&&n[e]===a[e];e++);var i=r-e;for(t=1;t<=i&&n[r-t]===a[o-t];t++);return tn=a.slice(e,1<t?1-t:void 0)}function rn(e){var t=e.keyCode;return"charCode"in e?0===(e=e.charCode)&&13===t&&(e=13):e=t,10===e&&(e=13),32<=e||13===e?e:0}function an(){return!0}function on(){return!1}function ln(e){function t(t,n,r,a,o){for(var i in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=a,this.target=o,this.currentTarget=null,e)e.hasOwnProperty(i)&&(t=e[i],this[i]=t?t(a):a[i]);return this.isDefaultPrevented=(null!=a.defaultPrevented?a.defaultPrevented:!1===a.returnValue)?an:on,this.isPropagationStopped=on,this}return a(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=an)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=an)},persist:function(){},isPersistent:an}),t}var sn,cn,un,dn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},pn=ln(dn),fn=a({},dn,{view:0,detail:0}),mn=ln(fn),hn=a({},fn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Tn,button:0,buttons:0,relatedTarget:function(e){return void 0===e.relatedTarget?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==un&&(un&&"mousemove"===e.type?(sn=e.screenX-un.screenX,cn=e.screenY-un.screenY):cn=sn=0,un=e),sn)},movementY:function(e){return"movementY"in e?e.movementY:cn}}),gn=ln(hn),bn=ln(a({},hn,{dataTransfer:0})),vn=ln(a({},fn,{relatedTarget:0})),yn=ln(a({},dn,{animationName:0,elapsedTime:0,pseudoElement:0})),wn=a({},dn,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),kn=ln(wn),Sn=ln(a({},dn,{data:0})),En={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},xn={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},_n={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Cn(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=_n[e])&&!!t[e]}function Tn(){return Cn}var An=a({},fn,{key:function(e){if(e.key){var t=En[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?13===(e=rn(e))?"Enter":String.fromCharCode(e):"keydown"===e.type||"keyup"===e.type?xn[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Tn,charCode:function(e){return"keypress"===e.type?rn(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?rn(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}}),Ln=ln(An),Pn=ln(a({},hn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),Rn=ln(a({},fn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Tn})),Nn=ln(a({},dn,{propertyName:0,elapsedTime:0,pseudoElement:0})),On=a({},hn,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),In=ln(On),Dn=[9,13,27,32],Mn=d&&"CompositionEvent"in window,Fn=null;d&&"documentMode"in document&&(Fn=document.documentMode);var jn=d&&"TextEvent"in window&&!Fn,Bn=d&&(!Mn||Fn&&8<Fn&&11>=Fn),zn=String.fromCharCode(32),Un=!1;function $n(e,t){switch(e){case"keyup":return-1!==Dn.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function qn(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var Gn=!1;var Hn={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Zn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!Hn[e.type]:"textarea"===t}function Vn(e,t,n,r){Pe(r),0<(t=Mr(t,"onChange")).length&&(n=new pn("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var Wn=null,Yn=null;function Kn(e){Ar(e,0)}function Xn(e){if(X(ra(e)))return e}function Qn(e,t){if("change"===e)return t}var Jn=!1;if(d){var er;if(d){var tr="oninput"in document;if(!tr){var nr=document.createElement("div");nr.setAttribute("oninput","return;"),tr="function"==typeof nr.oninput}er=tr}else er=!1;Jn=er&&(!document.documentMode||9<document.documentMode)}function rr(){Wn&&(Wn.detachEvent("onpropertychange",ar),Yn=Wn=null)}function ar(e){if("value"===e.propertyName&&Xn(Yn)){var t=[];if(Vn(t,Yn,e,_e(e)),e=Kn,Me)e(t);else{Me=!0;try{Ne(e,t)}finally{Me=!1,je()}}}}function or(e,t,n){"focusin"===e?(rr(),Yn=n,(Wn=t).attachEvent("onpropertychange",ar)):"focusout"===e&&rr()}function ir(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return Xn(Yn)}function lr(e,t){if("click"===e)return Xn(t)}function sr(e,t){if("input"===e||"change"===e)return Xn(t)}var cr="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},ur=Object.prototype.hasOwnProperty;function dr(e,t){if(cr(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++)if(!ur.call(t,n[r])||!cr(e[n[r]],t[n[r]]))return!1;return!0}function pr(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function fr(e,t){var n,r=pr(e);for(e=0;r;){if(3===r.nodeType){if(n=e+r.textContent.length,e<=t&&n>=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=pr(r)}}function mr(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?mr(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function hr(){for(var e=window,t=Q();t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch(r){n=!1}if(!n)break;t=Q((e=t.contentWindow).document)}return t}function gr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}var br=d&&"documentMode"in document&&11>=document.documentMode,vr=null,yr=null,wr=null,kr=!1;function Sr(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;kr||null==vr||vr!==Q(r)||("selectionStart"in(r=vr)&&gr(r)?r={start:r.selectionStart,end:r.selectionEnd}:r={anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},wr&&dr(wr,r)||(wr=r,0<(r=Mr(yr,"onSelect")).length&&(t=new pn("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=vr)))}It("cancel cancel click click close close contextmenu contextMenu copy copy cut cut auxclick auxClick dblclick doubleClick dragend dragEnd dragstart dragStart drop drop focusin focus focusout blur input input invalid invalid keydown keyDown keypress keyPress keyup keyUp mousedown mouseDown mouseup mouseUp paste paste pause pause play play pointercancel pointerCancel pointerdown pointerDown pointerup pointerUp ratechange rateChange reset reset seeked seeked submit submit touchcancel touchCancel touchend touchEnd touchstart touchStart volumechange volumeChange".split(" "),0),It("drag drag dragenter dragEnter dragexit dragExit dragleave dragLeave dragover dragOver mousemove mouseMove mouseout mouseOut mouseover mouseOver pointermove pointerMove pointerout pointerOut pointerover pointerOver scroll scroll toggle toggle touchmove touchMove wheel wheel".split(" "),1),It(Ot,2);for(var Er="change selectionchange textInput compositionstart compositionend compositionupdate".split(" "),xr=0;xr<Er.length;xr++)Nt.set(Er[xr],0);u("onMouseEnter",["mouseout","mouseover"]),u("onMouseLeave",["mouseout","mouseover"]),u("onPointerEnter",["pointerout","pointerover"]),u("onPointerLeave",["pointerout","pointerover"]),c("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),c("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),c("onBeforeInput",["compositionend","keypress","textInput","paste"]),c("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),c("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),c("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var _r="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Cr=new Set("cancel close invalid load scroll toggle".split(" ").concat(_r));function Tr(e,t,n){var r=e.type||"unknown-event";e.currentTarget=n,function(e,t,n,r,a,o,l,s,c){if(We.apply(this,arguments),qe){if(!qe)throw Error(i(198));var u=Ge;qe=!1,Ge=null,He||(He=!0,Ze=u)}}(r,t,void 0,e),e.currentTarget=null}function Ar(e,t){t=0!=(4&t);for(var n=0;n<e.length;n++){var r=e[n],a=r.event;r=r.listeners;e:{var o=void 0;if(t)for(var i=r.length-1;0<=i;i--){var l=r[i],s=l.instance,c=l.currentTarget;if(l=l.listener,s!==o&&a.isPropagationStopped())break e;Tr(a,l,c),o=s}else for(i=0;i<r.length;i++){if(s=(l=r[i]).instance,c=l.currentTarget,l=l.listener,s!==o&&a.isPropagationStopped())break e;Tr(a,l,c),o=s}}}if(He)throw e=Ze,He=!1,Ze=null,e}function Lr(e,t){var n=oa(t),r=e+"__bubble";n.has(r)||(Or(t,e,2,!1),n.add(r))}var Pr="_reactListening"+Math.random().toString(36).slice(2);function Rr(e){e[Pr]||(e[Pr]=!0,l.forEach((function(t){Cr.has(t)||Nr(t,!1,e,null),Nr(t,!0,e,null)})))}function Nr(e,t,n,r){var a=4<arguments.length&&void 0!==arguments[4]?arguments[4]:0,o=n;if("selectionchange"===e&&9!==n.nodeType&&(o=n.ownerDocument),null!==r&&!t&&Cr.has(e)){if("scroll"!==e)return;a|=2,o=r}var i=oa(o),l=e+"__"+(t?"capture":"bubble");i.has(l)||(t&&(a|=4),Or(o,e,a,t),i.add(l))}function Or(e,t,n,r){var a=Nt.get(t);switch(void 0===a?2:a){case 0:a=Yt;break;case 1:a=Kt;break;default:a=Xt}n=a.bind(null,t,n,e),a=void 0,!ze||"touchstart"!==t&&"touchmove"!==t&&"wheel"!==t||(a=!0),r?void 0!==a?e.addEventListener(t,n,{capture:!0,passive:a}):e.addEventListener(t,n,!0):void 0!==a?e.addEventListener(t,n,{passive:a}):e.addEventListener(t,n,!1)}function Ir(e,t,n,r,a){var o=r;if(0==(1&t)&&0==(2&t)&&null!==r)e:for(;;){if(null===r)return;var i=r.tag;if(3===i||4===i){var l=r.stateNode.containerInfo;if(l===a||8===l.nodeType&&l.parentNode===a)break;if(4===i)for(i=r.return;null!==i;){var s=i.tag;if((3===s||4===s)&&((s=i.stateNode.containerInfo)===a||8===s.nodeType&&s.parentNode===a))return;i=i.return}for(;null!==l;){if(null===(i=ta(l)))return;if(5===(s=i.tag)||6===s){r=o=i;continue e}l=l.parentNode}}r=r.return}!function(e,t,n){if(Fe)return e(t,n);Fe=!0;try{return De(e,t,n)}finally{Fe=!1,je()}}((function(){var r=o,a=_e(n),i=[];e:{var l=Rt.get(e);if(void 0!==l){var s=pn,c=e;switch(e){case"keypress":if(0===rn(n))break e;case"keydown":case"keyup":s=Ln;break;case"focusin":c="focus",s=vn;break;case"focusout":c="blur",s=vn;break;case"beforeblur":case"afterblur":s=vn;break;case"click":if(2===n.button)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":s=gn;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":s=bn;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":s=Rn;break;case Tt:case At:case Lt:s=yn;break;case Pt:s=Nn;break;case"scroll":s=mn;break;case"wheel":s=In;break;case"copy":case"cut":case"paste":s=kn;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":s=Pn}var u=0!=(4&t),d=!u&&"scroll"===e,p=u?null!==l?l+"Capture":null:l;u=[];for(var f,m=r;null!==m;){var h=(f=m).stateNode;if(5===f.tag&&null!==h&&(f=h,null!==p&&(null!=(h=Be(m,p))&&u.push(Dr(m,h,f)))),d)break;m=m.return}0<u.length&&(l=new s(l,c,null,n,a),i.push({event:l,listeners:u}))}}if(0==(7&t)){if(s="mouseout"===e||"pointerout"===e,(!(l="mouseover"===e||"pointerover"===e)||0!=(16&t)||!(c=n.relatedTarget||n.fromElement)||!ta(c)&&!c[Jr])&&(s||l)&&(l=a.window===a?a:(l=a.ownerDocument)?l.defaultView||l.parentWindow:window,s?(s=r,null!==(c=(c=n.relatedTarget||n.toElement)?ta(c):null)&&(c!==(d=Ye(c))||5!==c.tag&&6!==c.tag)&&(c=null)):(s=null,c=r),s!==c)){if(u=gn,h="onMouseLeave",p="onMouseEnter",m="mouse","pointerout"!==e&&"pointerover"!==e||(u=Pn,h="onPointerLeave",p="onPointerEnter",m="pointer"),d=null==s?l:ra(s),f=null==c?l:ra(c),(l=new u(h,m+"leave",s,n,a)).target=d,l.relatedTarget=f,h=null,ta(a)===r&&((u=new u(p,m+"enter",c,n,a)).target=f,u.relatedTarget=d,h=u),d=h,s&&c)e:{for(p=c,m=0,f=u=s;f;f=Fr(f))m++;for(f=0,h=p;h;h=Fr(h))f++;for(;0<m-f;)u=Fr(u),m--;for(;0<f-m;)p=Fr(p),f--;for(;m--;){if(u===p||null!==p&&u===p.alternate)break e;u=Fr(u),p=Fr(p)}u=null}else u=null;null!==s&&jr(i,l,s,u,!1),null!==c&&null!==d&&jr(i,d,c,u,!0)}if("select"===(s=(l=r?ra(r):window).nodeName&&l.nodeName.toLowerCase())||"input"===s&&"file"===l.type)var g=Qn;else if(Zn(l))if(Jn)g=sr;else{g=ir;var b=or}else(s=l.nodeName)&&"input"===s.toLowerCase()&&("checkbox"===l.type||"radio"===l.type)&&(g=lr);switch(g&&(g=g(e,r))?Vn(i,g,n,a):(b&&b(e,l,r),"focusout"===e&&(b=l._wrapperState)&&b.controlled&&"number"===l.type&&ae(l,"number",l.value)),b=r?ra(r):window,e){case"focusin":(Zn(b)||"true"===b.contentEditable)&&(vr=b,yr=r,wr=null);break;case"focusout":wr=yr=vr=null;break;case"mousedown":kr=!0;break;case"contextmenu":case"mouseup":case"dragend":kr=!1,Sr(i,n,a);break;case"selectionchange":if(br)break;case"keydown":case"keyup":Sr(i,n,a)}var v;if(Mn)e:{switch(e){case"compositionstart":var y="onCompositionStart";break e;case"compositionend":y="onCompositionEnd";break e;case"compositionupdate":y="onCompositionUpdate";break e}y=void 0}else Gn?$n(e,n)&&(y="onCompositionEnd"):"keydown"===e&&229===n.keyCode&&(y="onCompositionStart");y&&(Bn&&"ko"!==n.locale&&(Gn||"onCompositionStart"!==y?"onCompositionEnd"===y&&Gn&&(v=nn()):(en="value"in(Jt=a)?Jt.value:Jt.textContent,Gn=!0)),0<(b=Mr(r,y)).length&&(y=new Sn(y,e,null,n,a),i.push({event:y,listeners:b}),v?y.data=v:null!==(v=qn(n))&&(y.data=v))),(v=jn?function(e,t){switch(e){case"compositionend":return qn(t);case"keypress":return 32!==t.which?null:(Un=!0,zn);case"textInput":return(e=t.data)===zn&&Un?null:e;default:return null}}(e,n):function(e,t){if(Gn)return"compositionend"===e||!Mn&&$n(e,t)?(e=nn(),tn=en=Jt=null,Gn=!1,e):null;switch(e){case"paste":default:return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return Bn&&"ko"!==t.locale?null:t.data}}(e,n))&&(0<(r=Mr(r,"onBeforeInput")).length&&(a=new Sn("onBeforeInput","beforeinput",null,n,a),i.push({event:a,listeners:r}),a.data=v))}Ar(i,t)}))}function Dr(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Mr(e,t){for(var n=t+"Capture",r=[];null!==e;){var a=e,o=a.stateNode;5===a.tag&&null!==o&&(a=o,null!=(o=Be(e,n))&&r.unshift(Dr(e,o,a)),null!=(o=Be(e,t))&&r.push(Dr(e,o,a))),e=e.return}return r}function Fr(e){if(null===e)return null;do{e=e.return}while(e&&5!==e.tag);return e||null}function jr(e,t,n,r,a){for(var o=t._reactName,i=[];null!==n&&n!==r;){var l=n,s=l.alternate,c=l.stateNode;if(null!==s&&s===r)break;5===l.tag&&null!==c&&(l=c,a?null!=(s=Be(n,o))&&i.unshift(Dr(n,s,l)):a||null!=(s=Be(n,o))&&i.push(Dr(n,s,l))),n=n.return}0!==i.length&&e.push({event:t,listeners:i})}function Br(){}var zr=null,Ur=null;function $r(e,t){switch(e){case"button":case"input":case"select":case"textarea":return!!t.autoFocus}return!1}function qr(e,t){return"textarea"===e||"option"===e||"noscript"===e||"string"==typeof t.children||"number"==typeof t.children||"object"==typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var Gr="function"==typeof setTimeout?setTimeout:void 0,Hr="function"==typeof clearTimeout?clearTimeout:void 0;function Zr(e){1===e.nodeType?e.textContent="":9===e.nodeType&&(null!=(e=e.body)&&(e.textContent=""))}function Vr(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break}return e}function Wr(e){e=e.previousSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if("$"===n||"$!"===n||"$?"===n){if(0===t)return e;t--}else"/$"===n&&t++}e=e.previousSibling}return null}var Yr=0;var Kr=Math.random().toString(36).slice(2),Xr="__reactFiber$"+Kr,Qr="__reactProps$"+Kr,Jr="__reactContainer$"+Kr,ea="__reactEvents$"+Kr;function ta(e){var t=e[Xr];if(t)return t;for(var n=e.parentNode;n;){if(t=n[Jr]||n[Xr]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=Wr(e);null!==e;){if(n=e[Xr])return n;e=Wr(e)}return t}n=(e=n).parentNode}return null}function na(e){return!(e=e[Xr]||e[Jr])||5!==e.tag&&6!==e.tag&&13!==e.tag&&3!==e.tag?null:e}function ra(e){if(5===e.tag||6===e.tag)return e.stateNode;throw Error(i(33))}function aa(e){return e[Qr]||null}function oa(e){var t=e[ea];return void 0===t&&(t=e[ea]=new Set),t}var ia=[],la=-1;function sa(e){return{current:e}}function ca(e){0>la||(e.current=ia[la],ia[la]=null,la--)}function ua(e,t){la++,ia[la]=e.current,e.current=t}var da={},pa=sa(da),fa=sa(!1),ma=da;function ha(e,t){var n=e.type.contextTypes;if(!n)return da;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var a,o={};for(a in n)o[a]=t[a];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=o),o}function ga(e){return null!=(e=e.childContextTypes)}function ba(){ca(fa),ca(pa)}function va(e,t,n){if(pa.current!==da)throw Error(i(168));ua(pa,t),ua(fa,n)}function ya(e,t,n){var r=e.stateNode;if(e=t.childContextTypes,"function"!=typeof r.getChildContext)return n;for(var o in r=r.getChildContext())if(!(o in e))throw Error(i(108,V(t)||"Unknown",o));return a({},n,r)}function wa(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||da,ma=pa.current,ua(pa,e),ua(fa,fa.current),!0}function ka(e,t,n){var r=e.stateNode;if(!r)throw Error(i(169));n?(e=ya(e,t,ma),r.__reactInternalMemoizedMergedChildContext=e,ca(fa),ca(pa),ua(pa,e)):ca(fa),ua(fa,n)}var Sa=null,Ea=null,xa=o.unstable_runWithPriority,_a=o.unstable_scheduleCallback,Ca=o.unstable_cancelCallback,Ta=o.unstable_shouldYield,Aa=o.unstable_requestPaint,La=o.unstable_now,Pa=o.unstable_getCurrentPriorityLevel,Ra=o.unstable_ImmediatePriority,Na=o.unstable_UserBlockingPriority,Oa=o.unstable_NormalPriority,Ia=o.unstable_LowPriority,Da=o.unstable_IdlePriority,Ma={},Fa=void 0!==Aa?Aa:function(){},ja=null,Ba=null,za=!1,Ua=La(),$a=1e4>Ua?La:function(){return La()-Ua};function qa(){switch(Pa()){case Ra:return 99;case Na:return 98;case Oa:return 97;case Ia:return 96;case Da:return 95;default:throw Error(i(332))}}function Ga(e){switch(e){case 99:return Ra;case 98:return Na;case 97:return Oa;case 96:return Ia;case 95:return Da;default:throw Error(i(332))}}function Ha(e,t){return e=Ga(e),xa(e,t)}function Za(e,t,n){return e=Ga(e),_a(e,t,n)}function Va(){if(null!==Ba){var e=Ba;Ba=null,Ca(e)}Wa()}function Wa(){if(!za&&null!==ja){za=!0;var e=0;try{var t=ja;Ha(99,(function(){for(;e<t.length;e++){var n=t[e];do{n=n(!0)}while(null!==n)}})),ja=null}catch(n){throw null!==ja&&(ja=ja.slice(e+1)),_a(Ra,Va),n}finally{za=!1}}}var Ya=k.ReactCurrentBatchConfig;function Ka(e,t){if(e&&e.defaultProps){for(var n in t=a({},t),e=e.defaultProps)void 0===t[n]&&(t[n]=e[n]);return t}return t}var Xa=sa(null),Qa=null,Ja=null,eo=null;function to(){eo=Ja=Qa=null}function no(e){var t=Xa.current;ca(Xa),e.type._context._currentValue=t}function ro(e,t){for(;null!==e;){var n=e.alternate;if((e.childLanes&t)===t){if(null===n||(n.childLanes&t)===t)break;n.childLanes|=t}else e.childLanes|=t,null!==n&&(n.childLanes|=t);e=e.return}}function ao(e,t){Qa=e,eo=Ja=null,null!==(e=e.dependencies)&&null!==e.firstContext&&(0!=(e.lanes&t)&&(Mi=!0),e.firstContext=null)}function oo(e,t){if(eo!==e&&!1!==t&&0!==t)if("number"==typeof t&&1073741823!==t||(eo=e,t=1073741823),t={context:e,observedBits:t,next:null},null===Ja){if(null===Qa)throw Error(i(308));Ja=t,Qa.dependencies={lanes:0,firstContext:t,responders:null}}else Ja=Ja.next=t;return e._currentValue}var io=!1;function lo(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null},effects:null}}function so(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function co(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function uo(e,t){if(null!==(e=e.updateQueue)){var n=(e=e.shared).pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}}function po(e,t){var n=e.updateQueue,r=e.alternate;if(null!==r&&n===(r=r.updateQueue)){var a=null,o=null;if(null!==(n=n.firstBaseUpdate)){do{var i={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};null===o?a=o=i:o=o.next=i,n=n.next}while(null!==n);null===o?a=o=t:o=o.next=t}else a=o=t;return n={baseState:r.baseState,firstBaseUpdate:a,lastBaseUpdate:o,shared:r.shared,effects:r.effects},void(e.updateQueue=n)}null===(e=n.lastBaseUpdate)?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function fo(e,t,n,r){var o=e.updateQueue;io=!1;var i=o.firstBaseUpdate,l=o.lastBaseUpdate,s=o.shared.pending;if(null!==s){o.shared.pending=null;var c=s,u=c.next;c.next=null,null===l?i=u:l.next=u,l=c;var d=e.alternate;if(null!==d){var p=(d=d.updateQueue).lastBaseUpdate;p!==l&&(null===p?d.firstBaseUpdate=u:p.next=u,d.lastBaseUpdate=c)}}if(null!==i){for(p=o.baseState,l=0,d=u=c=null;;){s=i.lane;var f=i.eventTime;if((r&s)===s){null!==d&&(d=d.next={eventTime:f,lane:0,tag:i.tag,payload:i.payload,callback:i.callback,next:null});e:{var m=e,h=i;switch(s=t,f=n,h.tag){case 1:if("function"==typeof(m=h.payload)){p=m.call(f,p,s);break e}p=m;break e;case 3:m.flags=-4097&m.flags|64;case 0:if(null==(s="function"==typeof(m=h.payload)?m.call(f,p,s):m))break e;p=a({},p,s);break e;case 2:io=!0}}null!==i.callback&&(e.flags|=32,null===(s=o.effects)?o.effects=[i]:s.push(i))}else f={eventTime:f,lane:s,tag:i.tag,payload:i.payload,callback:i.callback,next:null},null===d?(u=d=f,c=p):d=d.next=f,l|=s;if(null===(i=i.next)){if(null===(s=o.shared.pending))break;i=s.next,s.next=null,o.lastBaseUpdate=s,o.shared.pending=null}}null===d&&(c=p),o.baseState=c,o.firstBaseUpdate=u,o.lastBaseUpdate=d,Ul|=l,e.lanes=l,e.memoizedState=p}}function mo(e,t,n){if(e=t.effects,t.effects=null,null!==e)for(t=0;t<e.length;t++){var r=e[t],a=r.callback;if(null!==a){if(r.callback=null,r=n,"function"!=typeof a)throw Error(i(191,a));a.call(r)}}}var ho=(new r.Component).refs;function go(e,t,n,r){n=null==(n=n(r,t=e.memoizedState))?t:a({},t,n),e.memoizedState=n,0===e.lanes&&(e.updateQueue.baseState=n)}var bo={isMounted:function(e){return!!(e=e._reactInternals)&&Ye(e)===e},enqueueSetState:function(e,t,n){e=e._reactInternals;var r=ps(),a=fs(e),o=co(r,a);o.payload=t,null!=n&&(o.callback=n),uo(e,o),ms(e,a,r)},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=ps(),a=fs(e),o=co(r,a);o.tag=1,o.payload=t,null!=n&&(o.callback=n),uo(e,o),ms(e,a,r)},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=ps(),r=fs(e),a=co(n,r);a.tag=2,null!=t&&(a.callback=t),uo(e,a),ms(e,r,n)}};function vo(e,t,n,r,a,o,i){return"function"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,o,i):!t.prototype||!t.prototype.isPureReactComponent||(!dr(n,r)||!dr(a,o))}function yo(e,t,n){var r=!1,a=da,o=t.contextType;return"object"==typeof o&&null!==o?o=oo(o):(a=ga(t)?ma:pa.current,o=(r=null!=(r=t.contextTypes))?ha(e,a):da),t=new t(n,o),e.memoizedState=null!==t.state&&void 0!==t.state?t.state:null,t.updater=bo,e.stateNode=t,t._reactInternals=e,r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=a,e.__reactInternalMemoizedMaskedChildContext=o),t}function wo(e,t,n,r){e=t.state,"function"==typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(n,r),"function"==typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&bo.enqueueReplaceState(t,t.state,null)}function ko(e,t,n,r){var a=e.stateNode;a.props=n,a.state=e.memoizedState,a.refs=ho,lo(e);var o=t.contextType;"object"==typeof o&&null!==o?a.context=oo(o):(o=ga(t)?ma:pa.current,a.context=ha(e,o)),fo(e,n,a,r),a.state=e.memoizedState,"function"==typeof(o=t.getDerivedStateFromProps)&&(go(e,t,o,n),a.state=e.memoizedState),"function"==typeof t.getDerivedStateFromProps||"function"==typeof a.getSnapshotBeforeUpdate||"function"!=typeof a.UNSAFE_componentWillMount&&"function"!=typeof a.componentWillMount||(t=a.state,"function"==typeof a.componentWillMount&&a.componentWillMount(),"function"==typeof a.UNSAFE_componentWillMount&&a.UNSAFE_componentWillMount(),t!==a.state&&bo.enqueueReplaceState(a,a.state,null),fo(e,n,a,r),a.state=e.memoizedState),"function"==typeof a.componentDidMount&&(e.flags|=4)}var So=Array.isArray;function Eo(e,t,n){if(null!==(e=n.ref)&&"function"!=typeof e&&"object"!=typeof e){if(n._owner){if(n=n._owner){if(1!==n.tag)throw Error(i(309));var r=n.stateNode}if(!r)throw Error(i(147,e));var a=""+e;return null!==t&&null!==t.ref&&"function"==typeof t.ref&&t.ref._stringRef===a?t.ref:(t=function(e){var t=r.refs;t===ho&&(t=r.refs={}),null===e?delete t[a]:t[a]=e},t._stringRef=a,t)}if("string"!=typeof e)throw Error(i(284));if(!n._owner)throw Error(i(290,e))}return e}function xo(e,t){if("textarea"!==e.type)throw Error(i(31,"[object Object]"===Object.prototype.toString.call(t)?"object with keys {"+Object.keys(t).join(", ")+"}":t))}function _o(e){function t(t,n){if(e){var r=t.lastEffect;null!==r?(r.nextEffect=n,t.lastEffect=n):t.firstEffect=t.lastEffect=n,n.nextEffect=null,n.flags=8}}function n(n,r){if(!e)return null;for(;null!==r;)t(n,r),r=r.sibling;return null}function r(e,t){for(e=new Map;null!==t;)null!==t.key?e.set(t.key,t):e.set(t.index,t),t=t.sibling;return e}function a(e,t){return(e=Zs(e,t)).index=0,e.sibling=null,e}function o(t,n,r){return t.index=r,e?null!==(r=t.alternate)?(r=r.index)<n?(t.flags=2,n):r:(t.flags=2,n):n}function l(t){return e&&null===t.alternate&&(t.flags=2),t}function s(e,t,n,r){return null===t||6!==t.tag?((t=Ks(n,e.mode,r)).return=e,t):((t=a(t,n)).return=e,t)}function c(e,t,n,r){return null!==t&&t.elementType===n.type?((r=a(t,n.props)).ref=Eo(e,t,n),r.return=e,r):((r=Vs(n.type,n.key,n.props,null,e.mode,r)).ref=Eo(e,t,n),r.return=e,r)}function u(e,t,n,r){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?((t=Xs(n,e.mode,r)).return=e,t):((t=a(t,n.children||[])).return=e,t)}function d(e,t,n,r,o){return null===t||7!==t.tag?((t=Ws(n,e.mode,r,o)).return=e,t):((t=a(t,n)).return=e,t)}function p(e,t,n){if("string"==typeof t||"number"==typeof t)return(t=Ks(""+t,e.mode,n)).return=e,t;if("object"==typeof t&&null!==t){switch(t.$$typeof){case S:return(n=Vs(t.type,t.key,t.props,null,e.mode,n)).ref=Eo(e,null,t),n.return=e,n;case E:return(t=Xs(t,e.mode,n)).return=e,t}if(So(t)||$(t))return(t=Ws(t,e.mode,n,null)).return=e,t;xo(e,t)}return null}function f(e,t,n,r){var a=null!==t?t.key:null;if("string"==typeof n||"number"==typeof n)return null!==a?null:s(e,t,""+n,r);if("object"==typeof n&&null!==n){switch(n.$$typeof){case S:return n.key===a?n.type===x?d(e,t,n.props.children,r,a):c(e,t,n,r):null;case E:return n.key===a?u(e,t,n,r):null}if(So(n)||$(n))return null!==a?null:d(e,t,n,r,null);xo(e,n)}return null}function m(e,t,n,r,a){if("string"==typeof r||"number"==typeof r)return s(t,e=e.get(n)||null,""+r,a);if("object"==typeof r&&null!==r){switch(r.$$typeof){case S:return e=e.get(null===r.key?n:r.key)||null,r.type===x?d(t,e,r.props.children,a,r.key):c(t,e,r,a);case E:return u(t,e=e.get(null===r.key?n:r.key)||null,r,a)}if(So(r)||$(r))return d(t,e=e.get(n)||null,r,a,null);xo(t,r)}return null}function h(a,i,l,s){for(var c=null,u=null,d=i,h=i=0,g=null;null!==d&&h<l.length;h++){d.index>h?(g=d,d=null):g=d.sibling;var b=f(a,d,l[h],s);if(null===b){null===d&&(d=g);break}e&&d&&null===b.alternate&&t(a,d),i=o(b,i,h),null===u?c=b:u.sibling=b,u=b,d=g}if(h===l.length)return n(a,d),c;if(null===d){for(;h<l.length;h++)null!==(d=p(a,l[h],s))&&(i=o(d,i,h),null===u?c=d:u.sibling=d,u=d);return c}for(d=r(a,d);h<l.length;h++)null!==(g=m(d,a,h,l[h],s))&&(e&&null!==g.alternate&&d.delete(null===g.key?h:g.key),i=o(g,i,h),null===u?c=g:u.sibling=g,u=g);return e&&d.forEach((function(e){return t(a,e)})),c}function g(a,l,s,c){var u=$(s);if("function"!=typeof u)throw Error(i(150));if(null==(s=u.call(s)))throw Error(i(151));for(var d=u=null,h=l,g=l=0,b=null,v=s.next();null!==h&&!v.done;g++,v=s.next()){h.index>g?(b=h,h=null):b=h.sibling;var y=f(a,h,v.value,c);if(null===y){null===h&&(h=b);break}e&&h&&null===y.alternate&&t(a,h),l=o(y,l,g),null===d?u=y:d.sibling=y,d=y,h=b}if(v.done)return n(a,h),u;if(null===h){for(;!v.done;g++,v=s.next())null!==(v=p(a,v.value,c))&&(l=o(v,l,g),null===d?u=v:d.sibling=v,d=v);return u}for(h=r(a,h);!v.done;g++,v=s.next())null!==(v=m(h,a,g,v.value,c))&&(e&&null!==v.alternate&&h.delete(null===v.key?g:v.key),l=o(v,l,g),null===d?u=v:d.sibling=v,d=v);return e&&h.forEach((function(e){return t(a,e)})),u}return function(e,r,o,s){var c="object"==typeof o&&null!==o&&o.type===x&&null===o.key;c&&(o=o.props.children);var u="object"==typeof o&&null!==o;if(u)switch(o.$$typeof){case S:e:{for(u=o.key,c=r;null!==c;){if(c.key===u){if(7===c.tag){if(o.type===x){n(e,c.sibling),(r=a(c,o.props.children)).return=e,e=r;break e}}else if(c.elementType===o.type){n(e,c.sibling),(r=a(c,o.props)).ref=Eo(e,c,o),r.return=e,e=r;break e}n(e,c);break}t(e,c),c=c.sibling}o.type===x?((r=Ws(o.props.children,e.mode,s,o.key)).return=e,e=r):((s=Vs(o.type,o.key,o.props,null,e.mode,s)).ref=Eo(e,r,o),s.return=e,e=s)}return l(e);case E:e:{for(c=o.key;null!==r;){if(r.key===c){if(4===r.tag&&r.stateNode.containerInfo===o.containerInfo&&r.stateNode.implementation===o.implementation){n(e,r.sibling),(r=a(r,o.children||[])).return=e,e=r;break e}n(e,r);break}t(e,r),r=r.sibling}(r=Xs(o,e.mode,s)).return=e,e=r}return l(e)}if("string"==typeof o||"number"==typeof o)return o=""+o,null!==r&&6===r.tag?(n(e,r.sibling),(r=a(r,o)).return=e,e=r):(n(e,r),(r=Ks(o,e.mode,s)).return=e,e=r),l(e);if(So(o))return h(e,r,o,s);if($(o))return g(e,r,o,s);if(u&&xo(e,o),void 0===o&&!c)switch(e.tag){case 1:case 22:case 0:case 11:case 15:throw Error(i(152,V(e.type)||"Component"))}return n(e,r)}}var Co=_o(!0),To=_o(!1),Ao={},Lo=sa(Ao),Po=sa(Ao),Ro=sa(Ao);function No(e){if(e===Ao)throw Error(i(174));return e}function Oo(e,t){switch(ua(Ro,t),ua(Po,e),ua(Lo,Ao),e=t.nodeType){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:fe(null,"");break;default:t=fe(t=(e=8===e?t.parentNode:t).namespaceURI||null,e=e.tagName)}ca(Lo),ua(Lo,t)}function Io(){ca(Lo),ca(Po),ca(Ro)}function Do(e){No(Ro.current);var t=No(Lo.current),n=fe(t,e.type);t!==n&&(ua(Po,e),ua(Lo,n))}function Mo(e){Po.current===e&&(ca(Lo),ca(Po))}var Fo=sa(0);function jo(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||"$?"===n.data||"$!"===n.data))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(0!=(64&t.flags))return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var Bo=null,zo=null,Uo=!1;function $o(e,t){var n=Gs(5,null,null,0);n.elementType="DELETED",n.type="DELETED",n.stateNode=t,n.return=e,n.flags=8,null!==e.lastEffect?(e.lastEffect.nextEffect=n,e.lastEffect=n):e.firstEffect=e.lastEffect=n}function qo(e,t){switch(e.tag){case 5:var n=e.type;return null!==(t=1!==t.nodeType||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t)&&(e.stateNode=t,!0);case 6:return null!==(t=""===e.pendingProps||3!==t.nodeType?null:t)&&(e.stateNode=t,!0);default:return!1}}function Go(e){if(Uo){var t=zo;if(t){var n=t;if(!qo(e,t)){if(!(t=Vr(n.nextSibling))||!qo(e,t))return e.flags=-1025&e.flags|2,Uo=!1,void(Bo=e);$o(Bo,n)}Bo=e,zo=Vr(t.firstChild)}else e.flags=-1025&e.flags|2,Uo=!1,Bo=e}}function Ho(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&13!==e.tag;)e=e.return;Bo=e}function Zo(e){if(e!==Bo)return!1;if(!Uo)return Ho(e),Uo=!0,!1;var t=e.type;if(5!==e.tag||"head"!==t&&"body"!==t&&!qr(t,e.memoizedProps))for(t=zo;t;)$o(e,t),t=Vr(t.nextSibling);if(Ho(e),13===e.tag){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(i(317));e:{for(e=e.nextSibling,t=0;e;){if(8===e.nodeType){var n=e.data;if("/$"===n){if(0===t){zo=Vr(e.nextSibling);break e}t--}else"$"!==n&&"$!"!==n&&"$?"!==n||t++}e=e.nextSibling}zo=null}}else zo=Bo?Vr(e.stateNode.nextSibling):null;return!0}function Vo(){zo=Bo=null,Uo=!1}var Wo=[];function Yo(){for(var e=0;e<Wo.length;e++)Wo[e]._workInProgressVersionPrimary=null;Wo.length=0}var Ko=k.ReactCurrentDispatcher,Xo=k.ReactCurrentBatchConfig,Qo=0,Jo=null,ei=null,ti=null,ni=!1,ri=!1;function ai(){throw Error(i(321))}function oi(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!cr(e[n],t[n]))return!1;return!0}function ii(e,t,n,r,a,o){if(Qo=o,Jo=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,Ko.current=null===e||null===e.memoizedState?Ni:Oi,e=n(r,a),ri){o=0;do{if(ri=!1,!(25>o))throw Error(i(301));o+=1,ti=ei=null,t.updateQueue=null,Ko.current=Ii,e=n(r,a)}while(ri)}if(Ko.current=Ri,t=null!==ei&&null!==ei.next,Qo=0,ti=ei=Jo=null,ni=!1,t)throw Error(i(300));return e}function li(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===ti?Jo.memoizedState=ti=e:ti=ti.next=e,ti}function si(){if(null===ei){var e=Jo.alternate;e=null!==e?e.memoizedState:null}else e=ei.next;var t=null===ti?Jo.memoizedState:ti.next;if(null!==t)ti=t,ei=e;else{if(null===e)throw Error(i(310));e={memoizedState:(ei=e).memoizedState,baseState:ei.baseState,baseQueue:ei.baseQueue,queue:ei.queue,next:null},null===ti?Jo.memoizedState=ti=e:ti=ti.next=e}return ti}function ci(e,t){return"function"==typeof t?t(e):t}function ui(e){var t=si(),n=t.queue;if(null===n)throw Error(i(311));n.lastRenderedReducer=e;var r=ei,a=r.baseQueue,o=n.pending;if(null!==o){if(null!==a){var l=a.next;a.next=o.next,o.next=l}r.baseQueue=a=o,n.pending=null}if(null!==a){a=a.next,r=r.baseState;var s=l=o=null,c=a;do{var u=c.lane;if((Qo&u)===u)null!==s&&(s=s.next={lane:0,action:c.action,eagerReducer:c.eagerReducer,eagerState:c.eagerState,next:null}),r=c.eagerReducer===e?c.eagerState:e(r,c.action);else{var d={lane:u,action:c.action,eagerReducer:c.eagerReducer,eagerState:c.eagerState,next:null};null===s?(l=s=d,o=r):s=s.next=d,Jo.lanes|=u,Ul|=u}c=c.next}while(null!==c&&c!==a);null===s?o=r:s.next=l,cr(r,t.memoizedState)||(Mi=!0),t.memoizedState=r,t.baseState=o,t.baseQueue=s,n.lastRenderedState=r}return[t.memoizedState,n.dispatch]}function di(e){var t=si(),n=t.queue;if(null===n)throw Error(i(311));n.lastRenderedReducer=e;var r=n.dispatch,a=n.pending,o=t.memoizedState;if(null!==a){n.pending=null;var l=a=a.next;do{o=e(o,l.action),l=l.next}while(l!==a);cr(o,t.memoizedState)||(Mi=!0),t.memoizedState=o,null===t.baseQueue&&(t.baseState=o),n.lastRenderedState=o}return[o,r]}function pi(e,t,n){var r=t._getVersion;r=r(t._source);var a=t._workInProgressVersionPrimary;if(null!==a?e=a===r:(e=e.mutableReadLanes,(e=(Qo&e)===e)&&(t._workInProgressVersionPrimary=r,Wo.push(t))),e)return n(t._source);throw Wo.push(t),Error(i(350))}function fi(e,t,n,r){var a=Ol;if(null===a)throw Error(i(349));var o=t._getVersion,l=o(t._source),s=Ko.current,c=s.useState((function(){return pi(a,t,n)})),u=c[1],d=c[0];c=ti;var p=e.memoizedState,f=p.refs,m=f.getSnapshot,h=p.source;p=p.subscribe;var g=Jo;return e.memoizedState={refs:f,source:t,subscribe:r},s.useEffect((function(){f.getSnapshot=n,f.setSnapshot=u;var e=o(t._source);if(!cr(l,e)){e=n(t._source),cr(d,e)||(u(e),e=fs(g),a.mutableReadLanes|=e&a.pendingLanes),e=a.mutableReadLanes,a.entangledLanes|=e;for(var r=a.entanglements,i=e;0<i;){var s=31-qt(i),c=1<<s;r[s]|=e,i&=~c}}}),[n,t,r]),s.useEffect((function(){return r(t._source,(function(){var e=f.getSnapshot,n=f.setSnapshot;try{n(e(t._source));var r=fs(g);a.mutableReadLanes|=r&a.pendingLanes}catch(o){n((function(){throw o}))}}))}),[t,r]),cr(m,n)&&cr(h,t)&&cr(p,r)||((e={pending:null,dispatch:null,lastRenderedReducer:ci,lastRenderedState:d}).dispatch=u=Pi.bind(null,Jo,e),c.queue=e,c.baseQueue=null,d=pi(a,t,n),c.memoizedState=c.baseState=d),d}function mi(e,t,n){return fi(si(),e,t,n)}function hi(e){var t=li();return"function"==typeof e&&(e=e()),t.memoizedState=t.baseState=e,e=(e=t.queue={pending:null,dispatch:null,lastRenderedReducer:ci,lastRenderedState:e}).dispatch=Pi.bind(null,Jo,e),[t.memoizedState,e]}function gi(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===(t=Jo.updateQueue)?(t={lastEffect:null},Jo.updateQueue=t,t.lastEffect=e.next=e):null===(n=t.lastEffect)?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function bi(e){return e={current:e},li().memoizedState=e}function vi(){return si().memoizedState}function yi(e,t,n,r){var a=li();Jo.flags|=e,a.memoizedState=gi(1|t,n,void 0,void 0===r?null:r)}function wi(e,t,n,r){var a=si();r=void 0===r?null:r;var o=void 0;if(null!==ei){var i=ei.memoizedState;if(o=i.destroy,null!==r&&oi(r,i.deps))return void gi(t,n,o,r)}Jo.flags|=e,a.memoizedState=gi(1|t,n,o,r)}function ki(e,t){return yi(516,4,e,t)}function Si(e,t){return wi(516,4,e,t)}function Ei(e,t){return wi(4,2,e,t)}function xi(e,t){return"function"==typeof t?(e=e(),t(e),function(){t(null)}):null!=t?(e=e(),t.current=e,function(){t.current=null}):void 0}function _i(e,t,n){return n=null!=n?n.concat([e]):null,wi(4,2,xi.bind(null,t,e),n)}function Ci(){}function Ti(e,t){var n=si();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&oi(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function Ai(e,t){var n=si();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&oi(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)}function Li(e,t){var n=qa();Ha(98>n?98:n,(function(){e(!0)})),Ha(97<n?97:n,(function(){var n=Xo.transition;Xo.transition=1;try{e(!1),t()}finally{Xo.transition=n}}))}function Pi(e,t,n){var r=ps(),a=fs(e),o={lane:a,action:n,eagerReducer:null,eagerState:null,next:null},i=t.pending;if(null===i?o.next=o:(o.next=i.next,i.next=o),t.pending=o,i=e.alternate,e===Jo||null!==i&&i===Jo)ri=ni=!0;else{if(0===e.lanes&&(null===i||0===i.lanes)&&null!==(i=t.lastRenderedReducer))try{var l=t.lastRenderedState,s=i(l,n);if(o.eagerReducer=i,o.eagerState=s,cr(s,l))return}catch(c){}ms(e,a,r)}}var Ri={readContext:oo,useCallback:ai,useContext:ai,useEffect:ai,useImperativeHandle:ai,useLayoutEffect:ai,useMemo:ai,useReducer:ai,useRef:ai,useState:ai,useDebugValue:ai,useDeferredValue:ai,useTransition:ai,useMutableSource:ai,useOpaqueIdentifier:ai,unstable_isNewReconciler:!1},Ni={readContext:oo,useCallback:function(e,t){return li().memoizedState=[e,void 0===t?null:t],e},useContext:oo,useEffect:ki,useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,yi(4,2,xi.bind(null,t,e),n)},useLayoutEffect:function(e,t){return yi(4,2,e,t)},useMemo:function(e,t){var n=li();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=li();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,e=(e=r.queue={pending:null,dispatch:null,lastRenderedReducer:e,lastRenderedState:t}).dispatch=Pi.bind(null,Jo,e),[r.memoizedState,e]},useRef:bi,useState:hi,useDebugValue:Ci,useDeferredValue:function(e){var t=hi(e),n=t[0],r=t[1];return ki((function(){var t=Xo.transition;Xo.transition=1;try{r(e)}finally{Xo.transition=t}}),[e]),n},useTransition:function(){var e=hi(!1),t=e[0];return bi(e=Li.bind(null,e[1])),[e,t]},useMutableSource:function(e,t,n){var r=li();return r.memoizedState={refs:{getSnapshot:t,setSnapshot:null},source:e,subscribe:n},fi(r,e,t,n)},useOpaqueIdentifier:function(){if(Uo){var e=!1,t=function(e){return{$$typeof:D,toString:e,valueOf:e}}((function(){throw e||(e=!0,n("r:"+(Yr++).toString(36))),Error(i(355))})),n=hi(t)[1];return 0==(2&Jo.mode)&&(Jo.flags|=516,gi(5,(function(){n("r:"+(Yr++).toString(36))}),void 0,null)),t}return hi(t="r:"+(Yr++).toString(36)),t},unstable_isNewReconciler:!1},Oi={readContext:oo,useCallback:Ti,useContext:oo,useEffect:Si,useImperativeHandle:_i,useLayoutEffect:Ei,useMemo:Ai,useReducer:ui,useRef:vi,useState:function(){return ui(ci)},useDebugValue:Ci,useDeferredValue:function(e){var t=ui(ci),n=t[0],r=t[1];return Si((function(){var t=Xo.transition;Xo.transition=1;try{r(e)}finally{Xo.transition=t}}),[e]),n},useTransition:function(){var e=ui(ci)[0];return[vi().current,e]},useMutableSource:mi,useOpaqueIdentifier:function(){return ui(ci)[0]},unstable_isNewReconciler:!1},Ii={readContext:oo,useCallback:Ti,useContext:oo,useEffect:Si,useImperativeHandle:_i,useLayoutEffect:Ei,useMemo:Ai,useReducer:di,useRef:vi,useState:function(){return di(ci)},useDebugValue:Ci,useDeferredValue:function(e){var t=di(ci),n=t[0],r=t[1];return Si((function(){var t=Xo.transition;Xo.transition=1;try{r(e)}finally{Xo.transition=t}}),[e]),n},useTransition:function(){var e=di(ci)[0];return[vi().current,e]},useMutableSource:mi,useOpaqueIdentifier:function(){return di(ci)[0]},unstable_isNewReconciler:!1},Di=k.ReactCurrentOwner,Mi=!1;function Fi(e,t,n,r){t.child=null===e?To(t,null,n,r):Co(t,e.child,n,r)}function ji(e,t,n,r,a){n=n.render;var o=t.ref;return ao(t,a),r=ii(e,t,n,r,o,a),null===e||Mi?(t.flags|=1,Fi(e,t,r,a),t.child):(t.updateQueue=e.updateQueue,t.flags&=-517,e.lanes&=~a,ol(e,t,a))}function Bi(e,t,n,r,a,o){if(null===e){var i=n.type;return"function"!=typeof i||Hs(i)||void 0!==i.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=Vs(n.type,null,r,t,t.mode,o)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=i,zi(e,t,i,r,a,o))}return i=e.child,0==(a&o)&&(a=i.memoizedProps,(n=null!==(n=n.compare)?n:dr)(a,r)&&e.ref===t.ref)?ol(e,t,o):(t.flags|=1,(e=Zs(i,r)).ref=t.ref,e.return=t,t.child=e)}function zi(e,t,n,r,a,o){if(null!==e&&dr(e.memoizedProps,r)&&e.ref===t.ref){if(Mi=!1,0==(o&a))return t.lanes=e.lanes,ol(e,t,o);0!=(16384&e.flags)&&(Mi=!0)}return qi(e,t,n,r,o)}function Ui(e,t,n){var r=t.pendingProps,a=r.children,o=null!==e?e.memoizedState:null;if("hidden"===r.mode||"unstable-defer-without-hiding"===r.mode)if(0==(4&t.mode))t.memoizedState={baseLanes:0},Ss(t,n);else{if(0==(1073741824&n))return e=null!==o?o.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e},Ss(t,e),null;t.memoizedState={baseLanes:0},Ss(t,null!==o?o.baseLanes:n)}else null!==o?(r=o.baseLanes|n,t.memoizedState=null):r=n,Ss(t,r);return Fi(e,t,a,n),t.child}function $i(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.flags|=128)}function qi(e,t,n,r,a){var o=ga(n)?ma:pa.current;return o=ha(t,o),ao(t,a),n=ii(e,t,n,r,o,a),null===e||Mi?(t.flags|=1,Fi(e,t,n,a),t.child):(t.updateQueue=e.updateQueue,t.flags&=-517,e.lanes&=~a,ol(e,t,a))}function Gi(e,t,n,r,a){if(ga(n)){var o=!0;wa(t)}else o=!1;if(ao(t,a),null===t.stateNode)null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),yo(t,n,r),ko(t,n,r,a),r=!0;else if(null===e){var i=t.stateNode,l=t.memoizedProps;i.props=l;var s=i.context,c=n.contextType;"object"==typeof c&&null!==c?c=oo(c):c=ha(t,c=ga(n)?ma:pa.current);var u=n.getDerivedStateFromProps,d="function"==typeof u||"function"==typeof i.getSnapshotBeforeUpdate;d||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(l!==r||s!==c)&&wo(t,i,r,c),io=!1;var p=t.memoizedState;i.state=p,fo(t,r,i,a),s=t.memoizedState,l!==r||p!==s||fa.current||io?("function"==typeof u&&(go(t,n,u,r),s=t.memoizedState),(l=io||vo(t,n,l,r,p,s,c))?(d||"function"!=typeof i.UNSAFE_componentWillMount&&"function"!=typeof i.componentWillMount||("function"==typeof i.componentWillMount&&i.componentWillMount(),"function"==typeof i.UNSAFE_componentWillMount&&i.UNSAFE_componentWillMount()),"function"==typeof i.componentDidMount&&(t.flags|=4)):("function"==typeof i.componentDidMount&&(t.flags|=4),t.memoizedProps=r,t.memoizedState=s),i.props=r,i.state=s,i.context=c,r=l):("function"==typeof i.componentDidMount&&(t.flags|=4),r=!1)}else{i=t.stateNode,so(e,t),l=t.memoizedProps,c=t.type===t.elementType?l:Ka(t.type,l),i.props=c,d=t.pendingProps,p=i.context,"object"==typeof(s=n.contextType)&&null!==s?s=oo(s):s=ha(t,s=ga(n)?ma:pa.current);var f=n.getDerivedStateFromProps;(u="function"==typeof f||"function"==typeof i.getSnapshotBeforeUpdate)||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(l!==d||p!==s)&&wo(t,i,r,s),io=!1,p=t.memoizedState,i.state=p,fo(t,r,i,a);var m=t.memoizedState;l!==d||p!==m||fa.current||io?("function"==typeof f&&(go(t,n,f,r),m=t.memoizedState),(c=io||vo(t,n,c,r,p,m,s))?(u||"function"!=typeof i.UNSAFE_componentWillUpdate&&"function"!=typeof i.componentWillUpdate||("function"==typeof i.componentWillUpdate&&i.componentWillUpdate(r,m,s),"function"==typeof i.UNSAFE_componentWillUpdate&&i.UNSAFE_componentWillUpdate(r,m,s)),"function"==typeof i.componentDidUpdate&&(t.flags|=4),"function"==typeof i.getSnapshotBeforeUpdate&&(t.flags|=256)):("function"!=typeof i.componentDidUpdate||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=256),t.memoizedProps=r,t.memoizedState=m),i.props=r,i.state=m,i.context=s,r=c):("function"!=typeof i.componentDidUpdate||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=256),r=!1)}return Hi(e,t,n,r,o,a)}function Hi(e,t,n,r,a,o){$i(e,t);var i=0!=(64&t.flags);if(!r&&!i)return a&&ka(t,n,!1),ol(e,t,o);r=t.stateNode,Di.current=t;var l=i&&"function"!=typeof n.getDerivedStateFromError?null:r.render();return t.flags|=1,null!==e&&i?(t.child=Co(t,e.child,null,o),t.child=Co(t,null,l,o)):Fi(e,t,l,o),t.memoizedState=r.state,a&&ka(t,n,!0),t.child}function Zi(e){var t=e.stateNode;t.pendingContext?va(0,t.pendingContext,t.pendingContext!==t.context):t.context&&va(0,t.context,!1),Oo(e,t.containerInfo)}var Vi,Wi,Yi,Ki,Xi={dehydrated:null,retryLane:0};function Qi(e,t,n){var r,a=t.pendingProps,o=Fo.current,i=!1;return(r=0!=(64&t.flags))||(r=(null===e||null!==e.memoizedState)&&0!=(2&o)),r?(i=!0,t.flags&=-65):null!==e&&null===e.memoizedState||void 0===a.fallback||!0===a.unstable_avoidThisFallback||(o|=1),ua(Fo,1&o),null===e?(void 0!==a.fallback&&Go(t),e=a.children,o=a.fallback,i?(e=Ji(t,e,o,n),t.child.memoizedState={baseLanes:n},t.memoizedState=Xi,e):"number"==typeof a.unstable_expectedLoadTime?(e=Ji(t,e,o,n),t.child.memoizedState={baseLanes:n},t.memoizedState=Xi,t.lanes=33554432,e):((n=Ys({mode:"visible",children:e},t.mode,n,null)).return=t,t.child=n)):(e.memoizedState,i?(a=tl(e,t,a.children,a.fallback,n),i=t.child,o=e.child.memoizedState,i.memoizedState=null===o?{baseLanes:n}:{baseLanes:o.baseLanes|n},i.childLanes=e.childLanes&~n,t.memoizedState=Xi,a):(n=el(e,t,a.children,n),t.memoizedState=null,n))}function Ji(e,t,n,r){var a=e.mode,o=e.child;return t={mode:"hidden",children:t},0==(2&a)&&null!==o?(o.childLanes=0,o.pendingProps=t):o=Ys(t,a,0,null),n=Ws(n,a,r,null),o.return=e,n.return=e,o.sibling=n,e.child=o,n}function el(e,t,n,r){var a=e.child;return e=a.sibling,n=Zs(a,{mode:"visible",children:n}),0==(2&t.mode)&&(n.lanes=r),n.return=t,n.sibling=null,null!==e&&(e.nextEffect=null,e.flags=8,t.firstEffect=t.lastEffect=e),t.child=n}function tl(e,t,n,r,a){var o=t.mode,i=e.child;e=i.sibling;var l={mode:"hidden",children:n};return 0==(2&o)&&t.child!==i?((n=t.child).childLanes=0,n.pendingProps=l,null!==(i=n.lastEffect)?(t.firstEffect=n.firstEffect,t.lastEffect=i,i.nextEffect=null):t.firstEffect=t.lastEffect=null):n=Zs(i,l),null!==e?r=Zs(e,r):(r=Ws(r,o,a,null)).flags|=2,r.return=t,n.return=t,n.sibling=r,t.child=n,r}function nl(e,t){e.lanes|=t;var n=e.alternate;null!==n&&(n.lanes|=t),ro(e.return,t)}function rl(e,t,n,r,a,o){var i=e.memoizedState;null===i?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:a,lastEffect:o}:(i.isBackwards=t,i.rendering=null,i.renderingStartTime=0,i.last=r,i.tail=n,i.tailMode=a,i.lastEffect=o)}function al(e,t,n){var r=t.pendingProps,a=r.revealOrder,o=r.tail;if(Fi(e,t,r.children,n),0!=(2&(r=Fo.current)))r=1&r|2,t.flags|=64;else{if(null!==e&&0!=(64&e.flags))e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&nl(e,n);else if(19===e.tag)nl(e,n);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;null===e.sibling;){if(null===e.return||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(ua(Fo,r),0==(2&t.mode))t.memoizedState=null;else switch(a){case"forwards":for(n=t.child,a=null;null!==n;)null!==(e=n.alternate)&&null===jo(e)&&(a=n),n=n.sibling;null===(n=a)?(a=t.child,t.child=null):(a=n.sibling,n.sibling=null),rl(t,!1,a,n,o,t.lastEffect);break;case"backwards":for(n=null,a=t.child,t.child=null;null!==a;){if(null!==(e=a.alternate)&&null===jo(e)){t.child=a;break}e=a.sibling,a.sibling=n,n=a,a=e}rl(t,!0,n,null,o,t.lastEffect);break;case"together":rl(t,!1,null,null,void 0,t.lastEffect);break;default:t.memoizedState=null}return t.child}function ol(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),Ul|=t.lanes,0!=(n&t.childLanes)){if(null!==e&&t.child!==e.child)throw Error(i(153));if(null!==t.child){for(n=Zs(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Zs(e,e.pendingProps)).return=t;n.sibling=null}return t.child}return null}function il(e,t){if(!Uo)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;null!==t;)null!==t.alternate&&(n=t),t=t.sibling;null===n?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;null!==n;)null!==n.alternate&&(r=n),n=n.sibling;null===r?t||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null}}function ll(e,t,n){var r=t.pendingProps;switch(t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return null;case 1:case 17:return ga(t.type)&&ba(),null;case 3:return Io(),ca(fa),ca(pa),Yo(),(r=t.stateNode).pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),null!==e&&null!==e.child||(Zo(t)?t.flags|=4:r.hydrate||(t.flags|=256)),Wi(t),null;case 5:Mo(t);var o=No(Ro.current);if(n=t.type,null!==e&&null!=t.stateNode)Yi(e,t,n,r,o),e.ref!==t.ref&&(t.flags|=128);else{if(!r){if(null===t.stateNode)throw Error(i(166));return null}if(e=No(Lo.current),Zo(t)){r=t.stateNode,n=t.type;var l=t.memoizedProps;switch(r[Xr]=t,r[Qr]=l,n){case"dialog":Lr("cancel",r),Lr("close",r);break;case"iframe":case"object":case"embed":Lr("load",r);break;case"video":case"audio":for(e=0;e<_r.length;e++)Lr(_r[e],r);break;case"source":Lr("error",r);break;case"img":case"image":case"link":Lr("error",r),Lr("load",r);break;case"details":Lr("toggle",r);break;case"input":ee(r,l),Lr("invalid",r);break;case"select":r._wrapperState={wasMultiple:!!l.multiple},Lr("invalid",r);break;case"textarea":se(r,l),Lr("invalid",r)}for(var c in Ee(n,l),e=null,l)l.hasOwnProperty(c)&&(o=l[c],"children"===c?"string"==typeof o?r.textContent!==o&&(e=["children",o]):"number"==typeof o&&r.textContent!==""+o&&(e=["children",""+o]):s.hasOwnProperty(c)&&null!=o&&"onScroll"===c&&Lr("scroll",r));switch(n){case"input":K(r),re(r,l,!0);break;case"textarea":K(r),ue(r);break;case"select":case"option":break;default:"function"==typeof l.onClick&&(r.onclick=Br)}r=e,t.updateQueue=r,null!==r&&(t.flags|=4)}else{switch(c=9===o.nodeType?o:o.ownerDocument,e===de.html&&(e=pe(n)),e===de.html?"script"===n?((e=c.createElement("div")).innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):"string"==typeof r.is?e=c.createElement(n,{is:r.is}):(e=c.createElement(n),"select"===n&&(c=e,r.multiple?c.multiple=!0:r.size&&(c.size=r.size))):e=c.createElementNS(e,n),e[Xr]=t,e[Qr]=r,Vi(e,t,!1,!1),t.stateNode=e,c=xe(n,r),n){case"dialog":Lr("cancel",e),Lr("close",e),o=r;break;case"iframe":case"object":case"embed":Lr("load",e),o=r;break;case"video":case"audio":for(o=0;o<_r.length;o++)Lr(_r[o],e);o=r;break;case"source":Lr("error",e),o=r;break;case"img":case"image":case"link":Lr("error",e),Lr("load",e),o=r;break;case"details":Lr("toggle",e),o=r;break;case"input":ee(e,r),o=J(e,r),Lr("invalid",e);break;case"option":o=oe(e,r);break;case"select":e._wrapperState={wasMultiple:!!r.multiple},o=a({},r,{value:void 0}),Lr("invalid",e);break;case"textarea":se(e,r),o=le(e,r),Lr("invalid",e);break;default:o=r}Ee(n,o);var u=o;for(l in u)if(u.hasOwnProperty(l)){var d=u[l];"style"===l?ke(e,d):"dangerouslySetInnerHTML"===l?null!=(d=d?d.__html:void 0)&&ge(e,d):"children"===l?"string"==typeof d?("textarea"!==n||""!==d)&&be(e,d):"number"==typeof d&&be(e,""+d):"suppressContentEditableWarning"!==l&&"suppressHydrationWarning"!==l&&"autoFocus"!==l&&(s.hasOwnProperty(l)?null!=d&&"onScroll"===l&&Lr("scroll",e):null!=d&&w(e,l,d,c))}switch(n){case"input":K(e),re(e,r,!1);break;case"textarea":K(e),ue(e);break;case"option":null!=r.value&&e.setAttribute("value",""+W(r.value));break;case"select":e.multiple=!!r.multiple,null!=(l=r.value)?ie(e,!!r.multiple,l,!1):null!=r.defaultValue&&ie(e,!!r.multiple,r.defaultValue,!0);break;default:"function"==typeof o.onClick&&(e.onclick=Br)}$r(n,r)&&(t.flags|=4)}null!==t.ref&&(t.flags|=128)}return null;case 6:if(e&&null!=t.stateNode)Ki(e,t,e.memoizedProps,r);else{if("string"!=typeof r&&null===t.stateNode)throw Error(i(166));n=No(Ro.current),No(Lo.current),Zo(t)?(r=t.stateNode,n=t.memoizedProps,r[Xr]=t,r.nodeValue!==n&&(t.flags|=4)):((r=(9===n.nodeType?n:n.ownerDocument).createTextNode(r))[Xr]=t,t.stateNode=r)}return null;case 13:return ca(Fo),r=t.memoizedState,0!=(64&t.flags)?(t.lanes=n,t):(r=null!==r,n=!1,null===e?void 0!==t.memoizedProps.fallback&&Zo(t):n=null!==e.memoizedState,r&&!n&&0!=(2&t.mode)&&(null===e&&!0!==t.memoizedProps.unstable_avoidThisFallback||0!=(1&Fo.current)?0===jl&&(jl=3):(0!==jl&&3!==jl||(jl=4),null===Ol||0==(134217727&Ul)&&0==(134217727&$l)||vs(Ol,Dl))),(r||n)&&(t.flags|=4),null);case 4:return Io(),Wi(t),null===e&&Rr(t.stateNode.containerInfo),null;case 10:return no(t),null;case 19:if(ca(Fo),null===(r=t.memoizedState))return null;if(l=0!=(64&t.flags),null===(c=r.rendering))if(l)il(r,!1);else{if(0!==jl||null!==e&&0!=(64&e.flags))for(e=t.child;null!==e;){if(null!==(c=jo(e))){for(t.flags|=64,il(r,!1),null!==(l=c.updateQueue)&&(t.updateQueue=l,t.flags|=4),null===r.lastEffect&&(t.firstEffect=null),t.lastEffect=r.lastEffect,r=n,n=t.child;null!==n;)e=r,(l=n).flags&=2,l.nextEffect=null,l.firstEffect=null,l.lastEffect=null,null===(c=l.alternate)?(l.childLanes=0,l.lanes=e,l.child=null,l.memoizedProps=null,l.memoizedState=null,l.updateQueue=null,l.dependencies=null,l.stateNode=null):(l.childLanes=c.childLanes,l.lanes=c.lanes,l.child=c.child,l.memoizedProps=c.memoizedProps,l.memoizedState=c.memoizedState,l.updateQueue=c.updateQueue,l.type=c.type,e=c.dependencies,l.dependencies=null===e?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return ua(Fo,1&Fo.current|2),t.child}e=e.sibling}null!==r.tail&&$a()>Zl&&(t.flags|=64,l=!0,il(r,!1),t.lanes=33554432)}else{if(!l)if(null!==(e=jo(c))){if(t.flags|=64,l=!0,null!==(n=e.updateQueue)&&(t.updateQueue=n,t.flags|=4),il(r,!0),null===r.tail&&"hidden"===r.tailMode&&!c.alternate&&!Uo)return null!==(t=t.lastEffect=r.lastEffect)&&(t.nextEffect=null),null}else 2*$a()-r.renderingStartTime>Zl&&1073741824!==n&&(t.flags|=64,l=!0,il(r,!1),t.lanes=33554432);r.isBackwards?(c.sibling=t.child,t.child=c):(null!==(n=r.last)?n.sibling=c:t.child=c,r.last=c)}return null!==r.tail?(n=r.tail,r.rendering=n,r.tail=n.sibling,r.lastEffect=t.lastEffect,r.renderingStartTime=$a(),n.sibling=null,t=Fo.current,ua(Fo,l?1&t|2:1&t),n):null;case 23:case 24:return Es(),null!==e&&null!==e.memoizedState!=(null!==t.memoizedState)&&"unstable-defer-without-hiding"!==r.mode&&(t.flags|=4),null}throw Error(i(156,t.tag))}function sl(e){switch(e.tag){case 1:ga(e.type)&&ba();var t=e.flags;return 4096&t?(e.flags=-4097&t|64,e):null;case 3:if(Io(),ca(fa),ca(pa),Yo(),0!=(64&(t=e.flags)))throw Error(i(285));return e.flags=-4097&t|64,e;case 5:return Mo(e),null;case 13:return ca(Fo),4096&(t=e.flags)?(e.flags=-4097&t|64,e):null;case 19:return ca(Fo),null;case 4:return Io(),null;case 10:return no(e),null;case 23:case 24:return Es(),null;default:return null}}function cl(e,t){try{var n="",r=t;do{n+=Z(r),r=r.return}while(r);var a=n}catch(o){a="\nError generating stack: "+o.message+"\n"+o.stack}return{value:e,source:t,stack:a}}function ul(e,t){try{console.error(t.value)}catch(n){setTimeout((function(){throw n}))}}Vi=function(e,t){for(var n=t.child;null!==n;){if(5===n.tag||6===n.tag)e.appendChild(n.stateNode);else if(4!==n.tag&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===t)break;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},Wi=function(){},Yi=function(e,t,n,r){var o=e.memoizedProps;if(o!==r){e=t.stateNode,No(Lo.current);var i,l=null;switch(n){case"input":o=J(e,o),r=J(e,r),l=[];break;case"option":o=oe(e,o),r=oe(e,r),l=[];break;case"select":o=a({},o,{value:void 0}),r=a({},r,{value:void 0}),l=[];break;case"textarea":o=le(e,o),r=le(e,r),l=[];break;default:"function"!=typeof o.onClick&&"function"==typeof r.onClick&&(e.onclick=Br)}for(d in Ee(n,r),n=null,o)if(!r.hasOwnProperty(d)&&o.hasOwnProperty(d)&&null!=o[d])if("style"===d){var c=o[d];for(i in c)c.hasOwnProperty(i)&&(n||(n={}),n[i]="")}else"dangerouslySetInnerHTML"!==d&&"children"!==d&&"suppressContentEditableWarning"!==d&&"suppressHydrationWarning"!==d&&"autoFocus"!==d&&(s.hasOwnProperty(d)?l||(l=[]):(l=l||[]).push(d,null));for(d in r){var u=r[d];if(c=null!=o?o[d]:void 0,r.hasOwnProperty(d)&&u!==c&&(null!=u||null!=c))if("style"===d)if(c){for(i in c)!c.hasOwnProperty(i)||u&&u.hasOwnProperty(i)||(n||(n={}),n[i]="");for(i in u)u.hasOwnProperty(i)&&c[i]!==u[i]&&(n||(n={}),n[i]=u[i])}else n||(l||(l=[]),l.push(d,n)),n=u;else"dangerouslySetInnerHTML"===d?(u=u?u.__html:void 0,c=c?c.__html:void 0,null!=u&&c!==u&&(l=l||[]).push(d,u)):"children"===d?"string"!=typeof u&&"number"!=typeof u||(l=l||[]).push(d,""+u):"suppressContentEditableWarning"!==d&&"suppressHydrationWarning"!==d&&(s.hasOwnProperty(d)?(null!=u&&"onScroll"===d&&Lr("scroll",e),l||c===u||(l=[])):"object"==typeof u&&null!==u&&u.$$typeof===D?u.toString():(l=l||[]).push(d,u))}n&&(l=l||[]).push("style",n);var d=l;(t.updateQueue=d)&&(t.flags|=4)}},Ki=function(e,t,n,r){n!==r&&(t.flags|=4)};var dl="function"==typeof WeakMap?WeakMap:Map;function pl(e,t,n){(n=co(-1,n)).tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Kl||(Kl=!0,Xl=r),ul(0,t)},n}function fl(e,t,n){(n=co(-1,n)).tag=3;var r=e.type.getDerivedStateFromError;if("function"==typeof r){var a=t.value;n.payload=function(){return ul(0,t),r(a)}}var o=e.stateNode;return null!==o&&"function"==typeof o.componentDidCatch&&(n.callback=function(){"function"!=typeof r&&(null===Ql?Ql=new Set([this]):Ql.add(this),ul(0,t));var e=t.stack;this.componentDidCatch(t.value,{componentStack:null!==e?e:""})}),n}var ml="function"==typeof WeakSet?WeakSet:Set;function hl(e){var t=e.ref;if(null!==t)if("function"==typeof t)try{t(null)}catch(n){zs(e,n)}else t.current=null}function gl(e,t){switch(t.tag){case 0:case 11:case 15:case 22:case 5:case 6:case 4:case 17:return;case 1:if(256&t.flags&&null!==e){var n=e.memoizedProps,r=e.memoizedState;t=(e=t.stateNode).getSnapshotBeforeUpdate(t.elementType===t.type?n:Ka(t.type,n),r),e.__reactInternalSnapshotBeforeUpdate=t}return;case 3:return void(256&t.flags&&Zr(t.stateNode.containerInfo))}throw Error(i(163))}function bl(e,t,n){switch(n.tag){case 0:case 11:case 15:case 22:if(null!==(t=null!==(t=n.updateQueue)?t.lastEffect:null)){e=t=t.next;do{if(3==(3&e.tag)){var r=e.create;e.destroy=r()}e=e.next}while(e!==t)}if(null!==(t=null!==(t=n.updateQueue)?t.lastEffect:null)){e=t=t.next;do{var a=e;r=a.next,0!=(4&(a=a.tag))&&0!=(1&a)&&(Fs(n,e),Ms(n,e)),e=r}while(e!==t)}return;case 1:return e=n.stateNode,4&n.flags&&(null===t?e.componentDidMount():(r=n.elementType===n.type?t.memoizedProps:Ka(n.type,t.memoizedProps),e.componentDidUpdate(r,t.memoizedState,e.__reactInternalSnapshotBeforeUpdate))),void(null!==(t=n.updateQueue)&&mo(n,t,e));case 3:if(null!==(t=n.updateQueue)){if(e=null,null!==n.child)switch(n.child.tag){case 5:case 1:e=n.child.stateNode}mo(n,t,e)}return;case 5:return e=n.stateNode,void(null===t&&4&n.flags&&$r(n.type,n.memoizedProps)&&e.focus());case 6:case 4:case 12:case 19:case 17:case 20:case 21:case 23:case 24:return;case 13:return void(null===n.memoizedState&&(n=n.alternate,null!==n&&(n=n.memoizedState,null!==n&&(n=n.dehydrated,null!==n&&kt(n)))))}throw Error(i(163))}function vl(e,t){for(var n=e;;){if(5===n.tag){var r=n.stateNode;if(t)"function"==typeof(r=r.style).setProperty?r.setProperty("display","none","important"):r.display="none";else{r=n.stateNode;var a=n.memoizedProps.style;a=null!=a&&a.hasOwnProperty("display")?a.display:null,r.style.display=we("display",a)}}else if(6===n.tag)n.stateNode.nodeValue=t?"":n.memoizedProps;else if((23!==n.tag&&24!==n.tag||null===n.memoizedState||n===e)&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===e)break;for(;null===n.sibling;){if(null===n.return||n.return===e)return;n=n.return}n.sibling.return=n.return,n=n.sibling}}function yl(e,t){if(Ea&&"function"==typeof Ea.onCommitFiberUnmount)try{Ea.onCommitFiberUnmount(Sa,t)}catch(o){}switch(t.tag){case 0:case 11:case 14:case 15:case 22:if(null!==(e=t.updateQueue)&&null!==(e=e.lastEffect)){var n=e=e.next;do{var r=n,a=r.destroy;if(r=r.tag,void 0!==a)if(0!=(4&r))Fs(t,n);else{r=t;try{a()}catch(o){zs(r,o)}}n=n.next}while(n!==e)}break;case 1:if(hl(t),"function"==typeof(e=t.stateNode).componentWillUnmount)try{e.props=t.memoizedProps,e.state=t.memoizedState,e.componentWillUnmount()}catch(o){zs(t,o)}break;case 5:hl(t);break;case 4:_l(e,t)}}function wl(e){e.alternate=null,e.child=null,e.dependencies=null,e.firstEffect=null,e.lastEffect=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.return=null,e.updateQueue=null}function kl(e){return 5===e.tag||3===e.tag||4===e.tag}function Sl(e){e:{for(var t=e.return;null!==t;){if(kl(t))break e;t=t.return}throw Error(i(160))}var n=t;switch(t=n.stateNode,n.tag){case 5:var r=!1;break;case 3:case 4:t=t.containerInfo,r=!0;break;default:throw Error(i(161))}16&n.flags&&(be(t,""),n.flags&=-17);e:t:for(n=e;;){for(;null===n.sibling;){if(null===n.return||kl(n.return)){n=null;break e}n=n.return}for(n.sibling.return=n.return,n=n.sibling;5!==n.tag&&6!==n.tag&&18!==n.tag;){if(2&n.flags)continue t;if(null===n.child||4===n.tag)continue t;n.child.return=n,n=n.child}if(!(2&n.flags)){n=n.stateNode;break e}}r?El(e,n,t):xl(e,n,t)}function El(e,t,n){var r=e.tag,a=5===r||6===r;if(a)e=a?e.stateNode:e.stateNode.instance,t?8===n.nodeType?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(8===n.nodeType?(t=n.parentNode).insertBefore(e,n):(t=n).appendChild(e),null!=(n=n._reactRootContainer)||null!==t.onclick||(t.onclick=Br));else if(4!==r&&null!==(e=e.child))for(El(e,t,n),e=e.sibling;null!==e;)El(e,t,n),e=e.sibling}function xl(e,t,n){var r=e.tag,a=5===r||6===r;if(a)e=a?e.stateNode:e.stateNode.instance,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==r&&null!==(e=e.child))for(xl(e,t,n),e=e.sibling;null!==e;)xl(e,t,n),e=e.sibling}function _l(e,t){for(var n,r,a=t,o=!1;;){if(!o){o=a.return;e:for(;;){if(null===o)throw Error(i(160));switch(n=o.stateNode,o.tag){case 5:r=!1;break e;case 3:case 4:n=n.containerInfo,r=!0;break e}o=o.return}o=!0}if(5===a.tag||6===a.tag){e:for(var l=e,s=a,c=s;;)if(yl(l,c),null!==c.child&&4!==c.tag)c.child.return=c,c=c.child;else{if(c===s)break e;for(;null===c.sibling;){if(null===c.return||c.return===s)break e;c=c.return}c.sibling.return=c.return,c=c.sibling}r?(l=n,s=a.stateNode,8===l.nodeType?l.parentNode.removeChild(s):l.removeChild(s)):n.removeChild(a.stateNode)}else if(4===a.tag){if(null!==a.child){n=a.stateNode.containerInfo,r=!0,a.child.return=a,a=a.child;continue}}else if(yl(e,a),null!==a.child){a.child.return=a,a=a.child;continue}if(a===t)break;for(;null===a.sibling;){if(null===a.return||a.return===t)return;4===(a=a.return).tag&&(o=!1)}a.sibling.return=a.return,a=a.sibling}}function Cl(e,t){switch(t.tag){case 0:case 11:case 14:case 15:case 22:var n=t.updateQueue;if(null!==(n=null!==n?n.lastEffect:null)){var r=n=n.next;do{3==(3&r.tag)&&(e=r.destroy,r.destroy=void 0,void 0!==e&&e()),r=r.next}while(r!==n)}return;case 1:case 12:case 17:return;case 5:if(null!=(n=t.stateNode)){r=t.memoizedProps;var a=null!==e?e.memoizedProps:r;e=t.type;var o=t.updateQueue;if(t.updateQueue=null,null!==o){for(n[Qr]=r,"input"===e&&"radio"===r.type&&null!=r.name&&te(n,r),xe(e,a),t=xe(e,r),a=0;a<o.length;a+=2){var l=o[a],s=o[a+1];"style"===l?ke(n,s):"dangerouslySetInnerHTML"===l?ge(n,s):"children"===l?be(n,s):w(n,l,s,t)}switch(e){case"input":ne(n,r);break;case"textarea":ce(n,r);break;case"select":e=n._wrapperState.wasMultiple,n._wrapperState.wasMultiple=!!r.multiple,null!=(o=r.value)?ie(n,!!r.multiple,o,!1):e!==!!r.multiple&&(null!=r.defaultValue?ie(n,!!r.multiple,r.defaultValue,!0):ie(n,!!r.multiple,r.multiple?[]:"",!1))}}}return;case 6:if(null===t.stateNode)throw Error(i(162));return void(t.stateNode.nodeValue=t.memoizedProps);case 3:return void((n=t.stateNode).hydrate&&(n.hydrate=!1,kt(n.containerInfo)));case 13:return null!==t.memoizedState&&(Hl=$a(),vl(t.child,!0)),void Tl(t);case 19:return void Tl(t);case 23:case 24:return void vl(t,null!==t.memoizedState)}throw Error(i(163))}function Tl(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var n=e.stateNode;null===n&&(n=e.stateNode=new ml),t.forEach((function(t){var r=$s.bind(null,e,t);n.has(t)||(n.add(t),t.then(r,r))}))}}function Al(e,t){return null!==e&&(null===(e=e.memoizedState)||null!==e.dehydrated)&&(null!==(t=t.memoizedState)&&null===t.dehydrated)}var Ll=Math.ceil,Pl=k.ReactCurrentDispatcher,Rl=k.ReactCurrentOwner,Nl=0,Ol=null,Il=null,Dl=0,Ml=0,Fl=sa(0),jl=0,Bl=null,zl=0,Ul=0,$l=0,ql=0,Gl=null,Hl=0,Zl=1/0;function Vl(){Zl=$a()+500}var Wl,Yl=null,Kl=!1,Xl=null,Ql=null,Jl=!1,es=null,ts=90,ns=[],rs=[],as=null,os=0,is=null,ls=-1,ss=0,cs=0,us=null,ds=!1;function ps(){return 0!=(48&Nl)?$a():-1!==ls?ls:ls=$a()}function fs(e){if(0==(2&(e=e.mode)))return 1;if(0==(4&e))return 99===qa()?1:2;if(0===ss&&(ss=zl),0!==Ya.transition){0!==cs&&(cs=null!==Gl?Gl.pendingLanes:0),e=ss;var t=4186112&~cs;return 0===(t&=-t)&&(0===(t=(e=4186112&~e)&-e)&&(t=8192)),t}return e=qa(),0!=(4&Nl)&&98===e?e=Bt(12,ss):e=Bt(e=function(e){switch(e){case 99:return 15;case 98:return 10;case 97:case 96:return 8;case 95:return 2;default:return 0}}(e),ss),e}function ms(e,t,n){if(50<os)throw os=0,is=null,Error(i(185));if(null===(e=hs(e,t)))return null;$t(e,t,n),e===Ol&&($l|=t,4===jl&&vs(e,Dl));var r=qa();1===t?0!=(8&Nl)&&0==(48&Nl)?ys(e):(gs(e,n),0===Nl&&(Vl(),Va())):(0==(4&Nl)||98!==r&&99!==r||(null===as?as=new Set([e]):as.add(e)),gs(e,n)),Gl=e}function hs(e,t){e.lanes|=t;var n=e.alternate;for(null!==n&&(n.lanes|=t),n=e,e=e.return;null!==e;)e.childLanes|=t,null!==(n=e.alternate)&&(n.childLanes|=t),n=e,e=e.return;return 3===n.tag?n.stateNode:null}function gs(e,t){for(var n=e.callbackNode,r=e.suspendedLanes,a=e.pingedLanes,o=e.expirationTimes,l=e.pendingLanes;0<l;){var s=31-qt(l),c=1<<s,u=o[s];if(-1===u){if(0==(c&r)||0!=(c&a)){u=t,Mt(c);var d=Dt;o[s]=10<=d?u+250:6<=d?u+5e3:-1}}else u<=t&&(e.expiredLanes|=c);l&=~c}if(r=Ft(e,e===Ol?Dl:0),t=Dt,0===r)null!==n&&(n!==Ma&&Ca(n),e.callbackNode=null,e.callbackPriority=0);else{if(null!==n){if(e.callbackPriority===t)return;n!==Ma&&Ca(n)}15===t?(n=ys.bind(null,e),null===ja?(ja=[n],Ba=_a(Ra,Wa)):ja.push(n),n=Ma):14===t?n=Za(99,ys.bind(null,e)):(n=function(e){switch(e){case 15:case 14:return 99;case 13:case 12:case 11:case 10:return 98;case 9:case 8:case 7:case 6:case 4:case 5:return 97;case 3:case 2:case 1:return 95;case 0:return 90;default:throw Error(i(358,e))}}(t),n=Za(n,bs.bind(null,e))),e.callbackPriority=t,e.callbackNode=n}}function bs(e){if(ls=-1,cs=ss=0,0!=(48&Nl))throw Error(i(327));var t=e.callbackNode;if(Ds()&&e.callbackNode!==t)return null;var n=Ft(e,e===Ol?Dl:0);if(0===n)return null;var r=n,a=Nl;Nl|=16;var o=Cs();for(Ol===e&&Dl===r||(Vl(),xs(e,r));;)try{Ls();break}catch(s){_s(e,s)}if(to(),Pl.current=o,Nl=a,null!==Il?r=0:(Ol=null,Dl=0,r=jl),0!=(zl&$l))xs(e,0);else if(0!==r){if(2===r&&(Nl|=64,e.hydrate&&(e.hydrate=!1,Zr(e.containerInfo)),0!==(n=jt(e))&&(r=Ts(e,n))),1===r)throw t=Bl,xs(e,0),vs(e,n),gs(e,$a()),t;switch(e.finishedWork=e.current.alternate,e.finishedLanes=n,r){case 0:case 1:throw Error(i(345));case 2:case 5:Ns(e);break;case 3:if(vs(e,n),(62914560&n)===n&&10<(r=Hl+500-$a())){if(0!==Ft(e,0))break;if(((a=e.suspendedLanes)&n)!==n){ps(),e.pingedLanes|=e.suspendedLanes&a;break}e.timeoutHandle=Gr(Ns.bind(null,e),r);break}Ns(e);break;case 4:if(vs(e,n),(4186112&n)===n)break;for(r=e.eventTimes,a=-1;0<n;){var l=31-qt(n);o=1<<l,(l=r[l])>a&&(a=l),n&=~o}if(n=a,10<(n=(120>(n=$a()-n)?120:480>n?480:1080>n?1080:1920>n?1920:3e3>n?3e3:4320>n?4320:1960*Ll(n/1960))-n)){e.timeoutHandle=Gr(Ns.bind(null,e),n);break}Ns(e);break;default:throw Error(i(329))}}return gs(e,$a()),e.callbackNode===t?bs.bind(null,e):null}function vs(e,t){for(t&=~ql,t&=~$l,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-qt(t),r=1<<n;e[n]=-1,t&=~r}}function ys(e){if(0!=(48&Nl))throw Error(i(327));if(Ds(),e===Ol&&0!=(e.expiredLanes&Dl)){var t=Dl,n=Ts(e,t);0!=(zl&$l)&&(n=Ts(e,t=Ft(e,t)))}else n=Ts(e,t=Ft(e,0));if(0!==e.tag&&2===n&&(Nl|=64,e.hydrate&&(e.hydrate=!1,Zr(e.containerInfo)),0!==(t=jt(e))&&(n=Ts(e,t))),1===n)throw n=Bl,xs(e,0),vs(e,t),gs(e,$a()),n;return e.finishedWork=e.current.alternate,e.finishedLanes=t,Ns(e),gs(e,$a()),null}function ws(e,t){var n=Nl;Nl|=1;try{return e(t)}finally{0===(Nl=n)&&(Vl(),Va())}}function ks(e,t){var n=Nl;Nl&=-2,Nl|=8;try{return e(t)}finally{0===(Nl=n)&&(Vl(),Va())}}function Ss(e,t){ua(Fl,Ml),Ml|=t,zl|=t}function Es(){Ml=Fl.current,ca(Fl)}function xs(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(-1!==n&&(e.timeoutHandle=-1,Hr(n)),null!==Il)for(n=Il.return;null!==n;){var r=n;switch(r.tag){case 1:null!=(r=r.type.childContextTypes)&&ba();break;case 3:Io(),ca(fa),ca(pa),Yo();break;case 5:Mo(r);break;case 4:Io();break;case 13:case 19:ca(Fo);break;case 10:no(r);break;case 23:case 24:Es()}n=n.return}Ol=e,Il=Zs(e.current,null),Dl=Ml=zl=t,jl=0,Bl=null,ql=$l=Ul=0}function _s(e,t){for(;;){var n=Il;try{if(to(),Ko.current=Ri,ni){for(var r=Jo.memoizedState;null!==r;){var a=r.queue;null!==a&&(a.pending=null),r=r.next}ni=!1}if(Qo=0,ti=ei=Jo=null,ri=!1,Rl.current=null,null===n||null===n.return){jl=1,Bl=t,Il=null;break}e:{var o=e,i=n.return,l=n,s=t;if(t=Dl,l.flags|=2048,l.firstEffect=l.lastEffect=null,null!==s&&"object"==typeof s&&"function"==typeof s.then){var c=s;if(0==(2&l.mode)){var u=l.alternate;u?(l.updateQueue=u.updateQueue,l.memoizedState=u.memoizedState,l.lanes=u.lanes):(l.updateQueue=null,l.memoizedState=null)}var d=0!=(1&Fo.current),p=i;do{var f;if(f=13===p.tag){var m=p.memoizedState;if(null!==m)f=null!==m.dehydrated;else{var h=p.memoizedProps;f=void 0!==h.fallback&&(!0!==h.unstable_avoidThisFallback||!d)}}if(f){var g=p.updateQueue;if(null===g){var b=new Set;b.add(c),p.updateQueue=b}else g.add(c);if(0==(2&p.mode)){if(p.flags|=64,l.flags|=16384,l.flags&=-2981,1===l.tag)if(null===l.alternate)l.tag=17;else{var v=co(-1,1);v.tag=2,uo(l,v)}l.lanes|=1;break e}s=void 0,l=t;var y=o.pingCache;if(null===y?(y=o.pingCache=new dl,s=new Set,y.set(c,s)):void 0===(s=y.get(c))&&(s=new Set,y.set(c,s)),!s.has(l)){s.add(l);var w=Us.bind(null,o,c,l);c.then(w,w)}p.flags|=4096,p.lanes=t;break e}p=p.return}while(null!==p);s=Error((V(l.type)||"A React component")+" suspended while rendering, but no fallback UI was specified.\n\nAdd a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display.")}5!==jl&&(jl=2),s=cl(s,l),p=i;do{switch(p.tag){case 3:o=s,p.flags|=4096,t&=-t,p.lanes|=t,po(p,pl(0,o,t));break e;case 1:o=s;var k=p.type,S=p.stateNode;if(0==(64&p.flags)&&("function"==typeof k.getDerivedStateFromError||null!==S&&"function"==typeof S.componentDidCatch&&(null===Ql||!Ql.has(S)))){p.flags|=4096,t&=-t,p.lanes|=t,po(p,fl(p,o,t));break e}}p=p.return}while(null!==p)}Rs(n)}catch(E){t=E,Il===n&&null!==n&&(Il=n=n.return);continue}break}}function Cs(){var e=Pl.current;return Pl.current=Ri,null===e?Ri:e}function Ts(e,t){var n=Nl;Nl|=16;var r=Cs();for(Ol===e&&Dl===t||xs(e,t);;)try{As();break}catch(a){_s(e,a)}if(to(),Nl=n,Pl.current=r,null!==Il)throw Error(i(261));return Ol=null,Dl=0,jl}function As(){for(;null!==Il;)Ps(Il)}function Ls(){for(;null!==Il&&!Ta();)Ps(Il)}function Ps(e){var t=Wl(e.alternate,e,Ml);e.memoizedProps=e.pendingProps,null===t?Rs(e):Il=t,Rl.current=null}function Rs(e){var t=e;do{var n=t.alternate;if(e=t.return,0==(2048&t.flags)){if(null!==(n=ll(n,t,Ml)))return void(Il=n);if(24!==(n=t).tag&&23!==n.tag||null===n.memoizedState||0!=(1073741824&Ml)||0==(4&n.mode)){for(var r=0,a=n.child;null!==a;)r|=a.lanes|a.childLanes,a=a.sibling;n.childLanes=r}null!==e&&0==(2048&e.flags)&&(null===e.firstEffect&&(e.firstEffect=t.firstEffect),null!==t.lastEffect&&(null!==e.lastEffect&&(e.lastEffect.nextEffect=t.firstEffect),e.lastEffect=t.lastEffect),1<t.flags&&(null!==e.lastEffect?e.lastEffect.nextEffect=t:e.firstEffect=t,e.lastEffect=t))}else{if(null!==(n=sl(t)))return n.flags&=2047,void(Il=n);null!==e&&(e.firstEffect=e.lastEffect=null,e.flags|=2048)}if(null!==(t=t.sibling))return void(Il=t);Il=t=e}while(null!==t);0===jl&&(jl=5)}function Ns(e){var t=qa();return Ha(99,Os.bind(null,e,t)),null}function Os(e,t){do{Ds()}while(null!==es);if(0!=(48&Nl))throw Error(i(327));var n=e.finishedWork;if(null===n)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(i(177));e.callbackNode=null;var r=n.lanes|n.childLanes,a=r,o=e.pendingLanes&~a;e.pendingLanes=a,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=a,e.mutableReadLanes&=a,e.entangledLanes&=a,a=e.entanglements;for(var l=e.eventTimes,s=e.expirationTimes;0<o;){var c=31-qt(o),u=1<<c;a[c]=0,l[c]=-1,s[c]=-1,o&=~u}if(null!==as&&0==(24&r)&&as.has(e)&&as.delete(e),e===Ol&&(Il=Ol=null,Dl=0),1<n.flags?null!==n.lastEffect?(n.lastEffect.nextEffect=n,r=n.firstEffect):r=n:r=n.firstEffect,null!==r){if(a=Nl,Nl|=32,Rl.current=null,zr=Wt,gr(l=hr())){if("selectionStart"in l)s={start:l.selectionStart,end:l.selectionEnd};else e:if(s=(s=l.ownerDocument)&&s.defaultView||window,(u=s.getSelection&&s.getSelection())&&0!==u.rangeCount){s=u.anchorNode,o=u.anchorOffset,c=u.focusNode,u=u.focusOffset;try{s.nodeType,c.nodeType}catch(C){s=null;break e}var d=0,p=-1,f=-1,m=0,h=0,g=l,b=null;t:for(;;){for(var v;g!==s||0!==o&&3!==g.nodeType||(p=d+o),g!==c||0!==u&&3!==g.nodeType||(f=d+u),3===g.nodeType&&(d+=g.nodeValue.length),null!==(v=g.firstChild);)b=g,g=v;for(;;){if(g===l)break t;if(b===s&&++m===o&&(p=d),b===c&&++h===u&&(f=d),null!==(v=g.nextSibling))break;b=(g=b).parentNode}g=v}s=-1===p||-1===f?null:{start:p,end:f}}else s=null;s=s||{start:0,end:0}}else s=null;Ur={focusedElem:l,selectionRange:s},Wt=!1,us=null,ds=!1,Yl=r;do{try{Is()}catch(C){if(null===Yl)throw Error(i(330));zs(Yl,C),Yl=Yl.nextEffect}}while(null!==Yl);us=null,Yl=r;do{try{for(l=e;null!==Yl;){var y=Yl.flags;if(16&y&&be(Yl.stateNode,""),128&y){var w=Yl.alternate;if(null!==w){var k=w.ref;null!==k&&("function"==typeof k?k(null):k.current=null)}}switch(1038&y){case 2:Sl(Yl),Yl.flags&=-3;break;case 6:Sl(Yl),Yl.flags&=-3,Cl(Yl.alternate,Yl);break;case 1024:Yl.flags&=-1025;break;case 1028:Yl.flags&=-1025,Cl(Yl.alternate,Yl);break;case 4:Cl(Yl.alternate,Yl);break;case 8:_l(l,s=Yl);var S=s.alternate;wl(s),null!==S&&wl(S)}Yl=Yl.nextEffect}}catch(C){if(null===Yl)throw Error(i(330));zs(Yl,C),Yl=Yl.nextEffect}}while(null!==Yl);if(k=Ur,w=hr(),y=k.focusedElem,l=k.selectionRange,w!==y&&y&&y.ownerDocument&&mr(y.ownerDocument.documentElement,y)){null!==l&&gr(y)&&(w=l.start,void 0===(k=l.end)&&(k=w),"selectionStart"in y?(y.selectionStart=w,y.selectionEnd=Math.min(k,y.value.length)):(k=(w=y.ownerDocument||document)&&w.defaultView||window).getSelection&&(k=k.getSelection(),s=y.textContent.length,S=Math.min(l.start,s),l=void 0===l.end?S:Math.min(l.end,s),!k.extend&&S>l&&(s=l,l=S,S=s),s=fr(y,S),o=fr(y,l),s&&o&&(1!==k.rangeCount||k.anchorNode!==s.node||k.anchorOffset!==s.offset||k.focusNode!==o.node||k.focusOffset!==o.offset)&&((w=w.createRange()).setStart(s.node,s.offset),k.removeAllRanges(),S>l?(k.addRange(w),k.extend(o.node,o.offset)):(w.setEnd(o.node,o.offset),k.addRange(w))))),w=[];for(k=y;k=k.parentNode;)1===k.nodeType&&w.push({element:k,left:k.scrollLeft,top:k.scrollTop});for("function"==typeof y.focus&&y.focus(),y=0;y<w.length;y++)(k=w[y]).element.scrollLeft=k.left,k.element.scrollTop=k.top}Wt=!!zr,Ur=zr=null,e.current=n,Yl=r;do{try{for(y=e;null!==Yl;){var E=Yl.flags;if(36&E&&bl(y,Yl.alternate,Yl),128&E){w=void 0;var x=Yl.ref;if(null!==x){var _=Yl.stateNode;Yl.tag,w=_,"function"==typeof x?x(w):x.current=w}}Yl=Yl.nextEffect}}catch(C){if(null===Yl)throw Error(i(330));zs(Yl,C),Yl=Yl.nextEffect}}while(null!==Yl);Yl=null,Fa(),Nl=a}else e.current=n;if(Jl)Jl=!1,es=e,ts=t;else for(Yl=r;null!==Yl;)t=Yl.nextEffect,Yl.nextEffect=null,8&Yl.flags&&((E=Yl).sibling=null,E.stateNode=null),Yl=t;if(0===(r=e.pendingLanes)&&(Ql=null),1===r?e===is?os++:(os=0,is=e):os=0,n=n.stateNode,Ea&&"function"==typeof Ea.onCommitFiberRoot)try{Ea.onCommitFiberRoot(Sa,n,void 0,64==(64&n.current.flags))}catch(C){}if(gs(e,$a()),Kl)throw Kl=!1,e=Xl,Xl=null,e;return 0!=(8&Nl)||Va(),null}function Is(){for(;null!==Yl;){var e=Yl.alternate;ds||null===us||(0!=(8&Yl.flags)?Je(Yl,us)&&(ds=!0):13===Yl.tag&&Al(e,Yl)&&Je(Yl,us)&&(ds=!0));var t=Yl.flags;0!=(256&t)&&gl(e,Yl),0==(512&t)||Jl||(Jl=!0,Za(97,(function(){return Ds(),null}))),Yl=Yl.nextEffect}}function Ds(){if(90!==ts){var e=97<ts?97:ts;return ts=90,Ha(e,js)}return!1}function Ms(e,t){ns.push(t,e),Jl||(Jl=!0,Za(97,(function(){return Ds(),null})))}function Fs(e,t){rs.push(t,e),Jl||(Jl=!0,Za(97,(function(){return Ds(),null})))}function js(){if(null===es)return!1;var e=es;if(es=null,0!=(48&Nl))throw Error(i(331));var t=Nl;Nl|=32;var n=rs;rs=[];for(var r=0;r<n.length;r+=2){var a=n[r],o=n[r+1],l=a.destroy;if(a.destroy=void 0,"function"==typeof l)try{l()}catch(c){if(null===o)throw Error(i(330));zs(o,c)}}for(n=ns,ns=[],r=0;r<n.length;r+=2){a=n[r],o=n[r+1];try{var s=a.create;a.destroy=s()}catch(c){if(null===o)throw Error(i(330));zs(o,c)}}for(s=e.current.firstEffect;null!==s;)e=s.nextEffect,s.nextEffect=null,8&s.flags&&(s.sibling=null,s.stateNode=null),s=e;return Nl=t,Va(),!0}function Bs(e,t,n){uo(e,t=pl(0,t=cl(n,t),1)),t=ps(),null!==(e=hs(e,1))&&($t(e,1,t),gs(e,t))}function zs(e,t){if(3===e.tag)Bs(e,e,t);else for(var n=e.return;null!==n;){if(3===n.tag){Bs(n,e,t);break}if(1===n.tag){var r=n.stateNode;if("function"==typeof n.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===Ql||!Ql.has(r))){var a=fl(n,e=cl(t,e),1);if(uo(n,a),a=ps(),null!==(n=hs(n,1)))$t(n,1,a),gs(n,a);else if("function"==typeof r.componentDidCatch&&(null===Ql||!Ql.has(r)))try{r.componentDidCatch(t,e)}catch(o){}break}}n=n.return}}function Us(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),t=ps(),e.pingedLanes|=e.suspendedLanes&n,Ol===e&&(Dl&n)===n&&(4===jl||3===jl&&(62914560&Dl)===Dl&&500>$a()-Hl?xs(e,0):ql|=n),gs(e,t)}function $s(e,t){var n=e.stateNode;null!==n&&n.delete(t),0===(t=0)&&(0==(2&(t=e.mode))?t=1:0==(4&t)?t=99===qa()?1:2:(0===ss&&(ss=zl),0===(t=zt(62914560&~ss))&&(t=4194304))),n=ps(),null!==(e=hs(e,t))&&($t(e,t,n),gs(e,n))}function qs(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.flags=0,this.lastEffect=this.firstEffect=this.nextEffect=null,this.childLanes=this.lanes=0,this.alternate=null}function Gs(e,t,n,r){return new qs(e,t,n,r)}function Hs(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Zs(e,t){var n=e.alternate;return null===n?((n=Gs(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.nextEffect=null,n.firstEffect=null,n.lastEffect=null),n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=null===t?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Vs(e,t,n,r,a,o){var l=2;if(r=e,"function"==typeof e)Hs(e)&&(l=1);else if("string"==typeof e)l=5;else e:switch(e){case x:return Ws(n.children,a,o,t);case M:l=8,a|=16;break;case _:l=8,a|=1;break;case C:return(e=Gs(12,n,t,8|a)).elementType=C,e.type=C,e.lanes=o,e;case P:return(e=Gs(13,n,t,a)).type=P,e.elementType=P,e.lanes=o,e;case R:return(e=Gs(19,n,t,a)).elementType=R,e.lanes=o,e;case F:return Ys(n,a,o,t);case j:return(e=Gs(24,n,t,a)).elementType=j,e.lanes=o,e;default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case T:l=10;break e;case A:l=9;break e;case L:l=11;break e;case N:l=14;break e;case O:l=16,r=null;break e;case I:l=22;break e}throw Error(i(130,null==e?e:typeof e,""))}return(t=Gs(l,n,t,a)).elementType=e,t.type=r,t.lanes=o,t}function Ws(e,t,n,r){return(e=Gs(7,e,r,t)).lanes=n,e}function Ys(e,t,n,r){return(e=Gs(23,e,r,t)).elementType=F,e.lanes=n,e}function Ks(e,t,n){return(e=Gs(6,e,null,t)).lanes=n,e}function Xs(e,t,n){return(t=Gs(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Qs(e,t,n){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.pendingContext=this.context=null,this.hydrate=n,this.callbackNode=null,this.callbackPriority=0,this.eventTimes=Ut(0),this.expirationTimes=Ut(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Ut(0),this.mutableSourceEagerHydrationData=null}function Js(e,t,n,r){var a=t.current,o=ps(),l=fs(a);e:if(n){t:{if(Ye(n=n._reactInternals)!==n||1!==n.tag)throw Error(i(170));var s=n;do{switch(s.tag){case 3:s=s.stateNode.context;break t;case 1:if(ga(s.type)){s=s.stateNode.__reactInternalMemoizedMergedChildContext;break t}}s=s.return}while(null!==s);throw Error(i(171))}if(1===n.tag){var c=n.type;if(ga(c)){n=ya(n,c,s);break e}}n=s}else n=da;return null===t.context?t.context=n:t.pendingContext=n,(t=co(o,l)).payload={element:e},null!==(r=void 0===r?null:r)&&(t.callback=r),uo(a,t),ms(a,l,o),l}function ec(e){return(e=e.current).child?(e.child.tag,e.child.stateNode):null}function tc(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var n=e.retryLane;e.retryLane=0!==n&&n<t?n:t}}function nc(e,t){tc(e,t),(e=e.alternate)&&tc(e,t)}function rc(e,t,n){var r=null!=n&&null!=n.hydrationOptions&&n.hydrationOptions.mutableSources||null;if(n=new Qs(e,t,null!=n&&!0===n.hydrate),t=Gs(3,null,null,2===t?7:1===t?3:0),n.current=t,t.stateNode=n,lo(t),e[Jr]=n.current,Rr(8===e.nodeType?e.parentNode:e),r)for(e=0;e<r.length;e++){var a=(t=r[e])._getVersion;a=a(t._source),null==n.mutableSourceEagerHydrationData?n.mutableSourceEagerHydrationData=[t,a]:n.mutableSourceEagerHydrationData.push(t,a)}this._internalRoot=n}function ac(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}function oc(e,t,n,r,a){var o=n._reactRootContainer;if(o){var i=o._internalRoot;if("function"==typeof a){var l=a;a=function(){var e=ec(i);l.call(e)}}Js(t,i,e,a)}else{if(o=n._reactRootContainer=function(e,t){if(t||(t=!(!(t=e?9===e.nodeType?e.documentElement:e.firstChild:null)||1!==t.nodeType||!t.hasAttribute("data-reactroot"))),!t)for(var n;n=e.lastChild;)e.removeChild(n);return new rc(e,0,t?{hydrate:!0}:void 0)}(n,r),i=o._internalRoot,"function"==typeof a){var s=a;a=function(){var e=ec(i);s.call(e)}}ks((function(){Js(t,i,e,a)}))}return ec(i)}function ic(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!ac(t))throw Error(i(200));return function(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:E,key:null==r?null:""+r,children:e,containerInfo:t,implementation:n}}(e,t,null,n)}Wl=function(e,t,n){var r=t.lanes;if(null!==e)if(e.memoizedProps!==t.pendingProps||fa.current)Mi=!0;else{if(0==(n&r)){switch(Mi=!1,t.tag){case 3:Zi(t),Vo();break;case 5:Do(t);break;case 1:ga(t.type)&&wa(t);break;case 4:Oo(t,t.stateNode.containerInfo);break;case 10:r=t.memoizedProps.value;var a=t.type._context;ua(Xa,a._currentValue),a._currentValue=r;break;case 13:if(null!==t.memoizedState)return 0!=(n&t.child.childLanes)?Qi(e,t,n):(ua(Fo,1&Fo.current),null!==(t=ol(e,t,n))?t.sibling:null);ua(Fo,1&Fo.current);break;case 19:if(r=0!=(n&t.childLanes),0!=(64&e.flags)){if(r)return al(e,t,n);t.flags|=64}if(null!==(a=t.memoizedState)&&(a.rendering=null,a.tail=null,a.lastEffect=null),ua(Fo,Fo.current),r)break;return null;case 23:case 24:return t.lanes=0,Ui(e,t,n)}return ol(e,t,n)}Mi=0!=(16384&e.flags)}else Mi=!1;switch(t.lanes=0,t.tag){case 2:if(r=t.type,null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,a=ha(t,pa.current),ao(t,n),a=ii(null,t,r,e,a,n),t.flags|=1,"object"==typeof a&&null!==a&&"function"==typeof a.render&&void 0===a.$$typeof){if(t.tag=1,t.memoizedState=null,t.updateQueue=null,ga(r)){var o=!0;wa(t)}else o=!1;t.memoizedState=null!==a.state&&void 0!==a.state?a.state:null,lo(t);var l=r.getDerivedStateFromProps;"function"==typeof l&&go(t,r,l,e),a.updater=bo,t.stateNode=a,a._reactInternals=t,ko(t,r,e,n),t=Hi(null,t,r,!0,o,n)}else t.tag=0,Fi(null,t,a,n),t=t.child;return t;case 16:a=t.elementType;e:{switch(null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,a=(o=a._init)(a._payload),t.type=a,o=t.tag=function(e){if("function"==typeof e)return Hs(e)?1:0;if(null!=e){if((e=e.$$typeof)===L)return 11;if(e===N)return 14}return 2}(a),e=Ka(a,e),o){case 0:t=qi(null,t,a,e,n);break e;case 1:t=Gi(null,t,a,e,n);break e;case 11:t=ji(null,t,a,e,n);break e;case 14:t=Bi(null,t,a,Ka(a.type,e),r,n);break e}throw Error(i(306,a,""))}return t;case 0:return r=t.type,a=t.pendingProps,qi(e,t,r,a=t.elementType===r?a:Ka(r,a),n);case 1:return r=t.type,a=t.pendingProps,Gi(e,t,r,a=t.elementType===r?a:Ka(r,a),n);case 3:if(Zi(t),r=t.updateQueue,null===e||null===r)throw Error(i(282));if(r=t.pendingProps,a=null!==(a=t.memoizedState)?a.element:null,so(e,t),fo(t,r,null,n),(r=t.memoizedState.element)===a)Vo(),t=ol(e,t,n);else{if((o=(a=t.stateNode).hydrate)&&(zo=Vr(t.stateNode.containerInfo.firstChild),Bo=t,o=Uo=!0),o){if(null!=(e=a.mutableSourceEagerHydrationData))for(a=0;a<e.length;a+=2)(o=e[a])._workInProgressVersionPrimary=e[a+1],Wo.push(o);for(n=To(t,null,r,n),t.child=n;n;)n.flags=-3&n.flags|1024,n=n.sibling}else Fi(e,t,r,n),Vo();t=t.child}return t;case 5:return Do(t),null===e&&Go(t),r=t.type,a=t.pendingProps,o=null!==e?e.memoizedProps:null,l=a.children,qr(r,a)?l=null:null!==o&&qr(r,o)&&(t.flags|=16),$i(e,t),Fi(e,t,l,n),t.child;case 6:return null===e&&Go(t),null;case 13:return Qi(e,t,n);case 4:return Oo(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=Co(t,null,r,n):Fi(e,t,r,n),t.child;case 11:return r=t.type,a=t.pendingProps,ji(e,t,r,a=t.elementType===r?a:Ka(r,a),n);case 7:return Fi(e,t,t.pendingProps,n),t.child;case 8:case 12:return Fi(e,t,t.pendingProps.children,n),t.child;case 10:e:{r=t.type._context,a=t.pendingProps,l=t.memoizedProps,o=a.value;var s=t.type._context;if(ua(Xa,s._currentValue),s._currentValue=o,null!==l)if(s=l.value,0===(o=cr(s,o)?0:0|("function"==typeof r._calculateChangedBits?r._calculateChangedBits(s,o):1073741823))){if(l.children===a.children&&!fa.current){t=ol(e,t,n);break e}}else for(null!==(s=t.child)&&(s.return=t);null!==s;){var c=s.dependencies;if(null!==c){l=s.child;for(var u=c.firstContext;null!==u;){if(u.context===r&&0!=(u.observedBits&o)){1===s.tag&&((u=co(-1,n&-n)).tag=2,uo(s,u)),s.lanes|=n,null!==(u=s.alternate)&&(u.lanes|=n),ro(s.return,n),c.lanes|=n;break}u=u.next}}else l=10===s.tag&&s.type===t.type?null:s.child;if(null!==l)l.return=s;else for(l=s;null!==l;){if(l===t){l=null;break}if(null!==(s=l.sibling)){s.return=l.return,l=s;break}l=l.return}s=l}Fi(e,t,a.children,n),t=t.child}return t;case 9:return a=t.type,r=(o=t.pendingProps).children,ao(t,n),r=r(a=oo(a,o.unstable_observedBits)),t.flags|=1,Fi(e,t,r,n),t.child;case 14:return o=Ka(a=t.type,t.pendingProps),Bi(e,t,a,o=Ka(a.type,o),r,n);case 15:return zi(e,t,t.type,t.pendingProps,r,n);case 17:return r=t.type,a=t.pendingProps,a=t.elementType===r?a:Ka(r,a),null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),t.tag=1,ga(r)?(e=!0,wa(t)):e=!1,ao(t,n),yo(t,r,a),ko(t,r,a,n),Hi(null,t,r,!0,e,n);case 19:return al(e,t,n);case 23:case 24:return Ui(e,t,n)}throw Error(i(156,t.tag))},rc.prototype.render=function(e){Js(e,this._internalRoot,null,null)},rc.prototype.unmount=function(){var e=this._internalRoot,t=e.containerInfo;Js(null,e,null,(function(){t[Jr]=null}))},et=function(e){13===e.tag&&(ms(e,4,ps()),nc(e,4))},tt=function(e){13===e.tag&&(ms(e,67108864,ps()),nc(e,67108864))},nt=function(e){if(13===e.tag){var t=ps(),n=fs(e);ms(e,n,t),nc(e,n)}},rt=function(e,t){return t()},Ce=function(e,t,n){switch(t){case"input":if(ne(e,n),t=n.name,"radio"===n.type&&null!=t){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var a=aa(r);if(!a)throw Error(i(90));X(r),ne(r,a)}}}break;case"textarea":ce(e,n);break;case"select":null!=(t=n.value)&&ie(e,!!n.multiple,t,!1)}},Ne=ws,Oe=function(e,t,n,r,a){var o=Nl;Nl|=4;try{return Ha(98,e.bind(null,t,n,r,a))}finally{0===(Nl=o)&&(Vl(),Va())}},Ie=function(){0==(49&Nl)&&(function(){if(null!==as){var e=as;as=null,e.forEach((function(e){e.expiredLanes|=24&e.pendingLanes,gs(e,$a())}))}Va()}(),Ds())},De=function(e,t){var n=Nl;Nl|=2;try{return e(t)}finally{0===(Nl=n)&&(Vl(),Va())}};var lc={Events:[na,ra,aa,Pe,Re,Ds,{current:!1}]},sc={findFiberByHostInstance:ta,bundleType:0,version:"17.0.2",rendererPackageName:"react-dom"},cc={bundleType:sc.bundleType,version:sc.version,rendererPackageName:sc.rendererPackageName,rendererConfig:sc.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:k.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=Qe(e))?null:e.stateNode},findFiberByHostInstance:sc.findFiberByHostInstance||function(){return null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null};if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var uc=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!uc.isDisabled&&uc.supportsFiber)try{Sa=uc.inject(cc),Ea=uc}catch(he){}}t.hydrate=function(e,t,n){if(!ac(t))throw Error(i(200));return oc(null,e,t,!0,n)}},3935:(e,t,n)=>{"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}(),e.exports=n(4448)},9590:e=>{var t="undefined"!=typeof Element,n="function"==typeof Map,r="function"==typeof Set,a="function"==typeof ArrayBuffer&&!!ArrayBuffer.isView;function o(e,i){if(e===i)return!0;if(e&&i&&"object"==typeof e&&"object"==typeof i){if(e.constructor!==i.constructor)return!1;var l,s,c,u;if(Array.isArray(e)){if((l=e.length)!=i.length)return!1;for(s=l;0!=s--;)if(!o(e[s],i[s]))return!1;return!0}if(n&&e instanceof Map&&i instanceof Map){if(e.size!==i.size)return!1;for(u=e.entries();!(s=u.next()).done;)if(!i.has(s.value[0]))return!1;for(u=e.entries();!(s=u.next()).done;)if(!o(s.value[1],i.get(s.value[0])))return!1;return!0}if(r&&e instanceof Set&&i instanceof Set){if(e.size!==i.size)return!1;for(u=e.entries();!(s=u.next()).done;)if(!i.has(s.value[0]))return!1;return!0}if(a&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(i)){if((l=e.length)!=i.length)return!1;for(s=l;0!=s--;)if(e[s]!==i[s])return!1;return!0}if(e.constructor===RegExp)return e.source===i.source&&e.flags===i.flags;if(e.valueOf!==Object.prototype.valueOf&&"function"==typeof e.valueOf&&"function"==typeof i.valueOf)return e.valueOf()===i.valueOf();if(e.toString!==Object.prototype.toString&&"function"==typeof e.toString&&"function"==typeof i.toString)return e.toString()===i.toString();if((l=(c=Object.keys(e)).length)!==Object.keys(i).length)return!1;for(s=l;0!=s--;)if(!Object.prototype.hasOwnProperty.call(i,c[s]))return!1;if(t&&e instanceof Element)return!1;for(s=l;0!=s--;)if(("_owner"!==c[s]&&"__v"!==c[s]&&"__o"!==c[s]||!e.$$typeof)&&!o(e[c[s]],i[c[s]]))return!1;return!0}return e!=e&&i!=i}e.exports=function(e,t){try{return o(e,t)}catch(n){if((n.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw n}}},405:(e,t,n)=>{"use strict";n.d(t,{B6:()=>H,ql:()=>J});var r=n(7294),a=n(5697),o=n.n(a),i=n(9590),l=n.n(i),s=n(1143),c=n.n(s),u=n(6774),d=n.n(u);function p(){return p=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},p.apply(this,arguments)}function f(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,m(e,t)}function m(e,t){return m=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},m(e,t)}function h(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)t.indexOf(n=o[r])>=0||(a[n]=e[n]);return a}var g={BASE:"base",BODY:"body",HEAD:"head",HTML:"html",LINK:"link",META:"meta",NOSCRIPT:"noscript",SCRIPT:"script",STYLE:"style",TITLE:"title",FRAGMENT:"Symbol(react.fragment)"},b={rel:["amphtml","canonical","alternate"]},v={type:["application/ld+json"]},y={charset:"",name:["robots","description"],property:["og:type","og:title","og:url","og:image","og:image:alt","og:description","twitter:url","twitter:title","twitter:description","twitter:image","twitter:image:alt","twitter:card","twitter:site"]},w=Object.keys(g).map((function(e){return g[e]})),k={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},S=Object.keys(k).reduce((function(e,t){return e[k[t]]=t,e}),{}),E=function(e,t){for(var n=e.length-1;n>=0;n-=1){var r=e[n];if(Object.prototype.hasOwnProperty.call(r,t))return r[t]}return null},x=function(e){var t=E(e,g.TITLE),n=E(e,"titleTemplate");if(Array.isArray(t)&&(t=t.join("")),n&&t)return n.replace(/%s/g,(function(){return t}));var r=E(e,"defaultTitle");return t||r||void 0},_=function(e){return E(e,"onChangeClientState")||function(){}},C=function(e,t){return t.filter((function(t){return void 0!==t[e]})).map((function(t){return t[e]})).reduce((function(e,t){return p({},e,t)}),{})},T=function(e,t){return t.filter((function(e){return void 0!==e[g.BASE]})).map((function(e){return e[g.BASE]})).reverse().reduce((function(t,n){if(!t.length)for(var r=Object.keys(n),a=0;a<r.length;a+=1){var o=r[a].toLowerCase();if(-1!==e.indexOf(o)&&n[o])return t.concat(n)}return t}),[])},A=function(e,t,n){var r={};return n.filter((function(t){return!!Array.isArray(t[e])||(void 0!==t[e]&&console&&"function"==typeof console.warn&&console.warn("Helmet: "+e+' should be of type "Array". Instead found type "'+typeof t[e]+'"'),!1)})).map((function(t){return t[e]})).reverse().reduce((function(e,n){var a={};n.filter((function(e){for(var n,o=Object.keys(e),i=0;i<o.length;i+=1){var l=o[i],s=l.toLowerCase();-1===t.indexOf(s)||"rel"===n&&"canonical"===e[n].toLowerCase()||"rel"===s&&"stylesheet"===e[s].toLowerCase()||(n=s),-1===t.indexOf(l)||"innerHTML"!==l&&"cssText"!==l&&"itemprop"!==l||(n=l)}if(!n||!e[n])return!1;var c=e[n].toLowerCase();return r[n]||(r[n]={}),a[n]||(a[n]={}),!r[n][c]&&(a[n][c]=!0,!0)})).reverse().forEach((function(t){return e.push(t)}));for(var o=Object.keys(a),i=0;i<o.length;i+=1){var l=o[i],s=p({},r[l],a[l]);r[l]=s}return e}),[]).reverse()},L=function(e,t){if(Array.isArray(e)&&e.length)for(var n=0;n<e.length;n+=1)if(e[n][t])return!0;return!1},P=function(e){return Array.isArray(e)?e.join(""):e},R=function(e,t){return Array.isArray(e)?e.reduce((function(e,n){return function(e,t){for(var n=Object.keys(e),r=0;r<n.length;r+=1)if(t[n[r]]&&t[n[r]].includes(e[n[r]]))return!0;return!1}(n,t)?e.priority.push(n):e.default.push(n),e}),{priority:[],default:[]}):{default:e}},N=function(e,t){var n;return p({},e,((n={})[t]=void 0,n))},O=[g.NOSCRIPT,g.SCRIPT,g.STYLE],I=function(e,t){return void 0===t&&(t=!0),!1===t?String(e):String(e).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")},D=function(e){return Object.keys(e).reduce((function(t,n){var r=void 0!==e[n]?n+'="'+e[n]+'"':""+n;return t?t+" "+r:r}),"")},M=function(e,t){return void 0===t&&(t={}),Object.keys(e).reduce((function(t,n){return t[k[n]||n]=e[n],t}),t)},F=function(e,t){return t.map((function(t,n){var a,o=((a={key:n})["data-rh"]=!0,a);return Object.keys(t).forEach((function(e){var n=k[e]||e;"innerHTML"===n||"cssText"===n?o.dangerouslySetInnerHTML={__html:t.innerHTML||t.cssText}:o[n]=t[e]})),r.createElement(e,o)}))},j=function(e,t,n){switch(e){case g.TITLE:return{toComponent:function(){return n=t.titleAttributes,(a={key:e=t.title})["data-rh"]=!0,o=M(n,a),[r.createElement(g.TITLE,o,e)];var e,n,a,o},toString:function(){return function(e,t,n,r){var a=D(n),o=P(t);return a?"<"+e+' data-rh="true" '+a+">"+I(o,r)+"</"+e+">":"<"+e+' data-rh="true">'+I(o,r)+"</"+e+">"}(e,t.title,t.titleAttributes,n)}};case"bodyAttributes":case"htmlAttributes":return{toComponent:function(){return M(t)},toString:function(){return D(t)}};default:return{toComponent:function(){return F(e,t)},toString:function(){return function(e,t,n){return t.reduce((function(t,r){var a=Object.keys(r).filter((function(e){return!("innerHTML"===e||"cssText"===e)})).reduce((function(e,t){var a=void 0===r[t]?t:t+'="'+I(r[t],n)+'"';return e?e+" "+a:a}),""),o=r.innerHTML||r.cssText||"",i=-1===O.indexOf(e);return t+"<"+e+' data-rh="true" '+a+(i?"/>":">"+o+"</"+e+">")}),"")}(e,t,n)}}}},B=function(e){var t=e.baseTag,n=e.bodyAttributes,r=e.encode,a=e.htmlAttributes,o=e.noscriptTags,i=e.styleTags,l=e.title,s=void 0===l?"":l,c=e.titleAttributes,u=e.linkTags,d=e.metaTags,p=e.scriptTags,f={toComponent:function(){},toString:function(){return""}};if(e.prioritizeSeoTags){var m=function(e){var t=e.linkTags,n=e.scriptTags,r=e.encode,a=R(e.metaTags,y),o=R(t,b),i=R(n,v);return{priorityMethods:{toComponent:function(){return[].concat(F(g.META,a.priority),F(g.LINK,o.priority),F(g.SCRIPT,i.priority))},toString:function(){return j(g.META,a.priority,r)+" "+j(g.LINK,o.priority,r)+" "+j(g.SCRIPT,i.priority,r)}},metaTags:a.default,linkTags:o.default,scriptTags:i.default}}(e);f=m.priorityMethods,u=m.linkTags,d=m.metaTags,p=m.scriptTags}return{priority:f,base:j(g.BASE,t,r),bodyAttributes:j("bodyAttributes",n,r),htmlAttributes:j("htmlAttributes",a,r),link:j(g.LINK,u,r),meta:j(g.META,d,r),noscript:j(g.NOSCRIPT,o,r),script:j(g.SCRIPT,p,r),style:j(g.STYLE,i,r),title:j(g.TITLE,{title:s,titleAttributes:c},r)}},z=[],U=function(e,t){var n=this;void 0===t&&(t="undefined"!=typeof document),this.instances=[],this.value={setHelmet:function(e){n.context.helmet=e},helmetInstances:{get:function(){return n.canUseDOM?z:n.instances},add:function(e){(n.canUseDOM?z:n.instances).push(e)},remove:function(e){var t=(n.canUseDOM?z:n.instances).indexOf(e);(n.canUseDOM?z:n.instances).splice(t,1)}}},this.context=e,this.canUseDOM=t,t||(e.helmet=B({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}}))},$=r.createContext({}),q=o().shape({setHelmet:o().func,helmetInstances:o().shape({get:o().func,add:o().func,remove:o().func})}),G="undefined"!=typeof document,H=function(e){function t(n){var r;return(r=e.call(this,n)||this).helmetData=new U(r.props.context,t.canUseDOM),r}return f(t,e),t.prototype.render=function(){return r.createElement($.Provider,{value:this.helmetData.value},this.props.children)},t}(r.Component);H.canUseDOM=G,H.propTypes={context:o().shape({helmet:o().shape()}),children:o().node.isRequired},H.defaultProps={context:{}},H.displayName="HelmetProvider";var Z=function(e,t){var n,r=document.head||document.querySelector(g.HEAD),a=r.querySelectorAll(e+"[data-rh]"),o=[].slice.call(a),i=[];return t&&t.length&&t.forEach((function(t){var r=document.createElement(e);for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&("innerHTML"===a?r.innerHTML=t.innerHTML:"cssText"===a?r.styleSheet?r.styleSheet.cssText=t.cssText:r.appendChild(document.createTextNode(t.cssText)):r.setAttribute(a,void 0===t[a]?"":t[a]));r.setAttribute("data-rh","true"),o.some((function(e,t){return n=t,r.isEqualNode(e)}))?o.splice(n,1):i.push(r)})),o.forEach((function(e){return e.parentNode.removeChild(e)})),i.forEach((function(e){return r.appendChild(e)})),{oldTags:o,newTags:i}},V=function(e,t){var n=document.getElementsByTagName(e)[0];if(n){for(var r=n.getAttribute("data-rh"),a=r?r.split(","):[],o=[].concat(a),i=Object.keys(t),l=0;l<i.length;l+=1){var s=i[l],c=t[s]||"";n.getAttribute(s)!==c&&n.setAttribute(s,c),-1===a.indexOf(s)&&a.push(s);var u=o.indexOf(s);-1!==u&&o.splice(u,1)}for(var d=o.length-1;d>=0;d-=1)n.removeAttribute(o[d]);a.length===o.length?n.removeAttribute("data-rh"):n.getAttribute("data-rh")!==i.join(",")&&n.setAttribute("data-rh",i.join(","))}},W=function(e,t){var n=e.baseTag,r=e.htmlAttributes,a=e.linkTags,o=e.metaTags,i=e.noscriptTags,l=e.onChangeClientState,s=e.scriptTags,c=e.styleTags,u=e.title,d=e.titleAttributes;V(g.BODY,e.bodyAttributes),V(g.HTML,r),function(e,t){void 0!==e&&document.title!==e&&(document.title=P(e)),V(g.TITLE,t)}(u,d);var p={baseTag:Z(g.BASE,n),linkTags:Z(g.LINK,a),metaTags:Z(g.META,o),noscriptTags:Z(g.NOSCRIPT,i),scriptTags:Z(g.SCRIPT,s),styleTags:Z(g.STYLE,c)},f={},m={};Object.keys(p).forEach((function(e){var t=p[e],n=t.newTags,r=t.oldTags;n.length&&(f[e]=n),r.length&&(m[e]=p[e].oldTags)})),t&&t(),l(e,f,m)},Y=null,K=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(t=e.call.apply(e,[this].concat(r))||this).rendered=!1,t}f(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!d()(e,this.props)},n.componentDidUpdate=function(){this.emitChange()},n.componentWillUnmount=function(){this.props.context.helmetInstances.remove(this),this.emitChange()},n.emitChange=function(){var e,t,n=this.props.context,r=n.setHelmet,a=null,o=(e=n.helmetInstances.get().map((function(e){var t=p({},e.props);return delete t.context,t})),{baseTag:T(["href"],e),bodyAttributes:C("bodyAttributes",e),defer:E(e,"defer"),encode:E(e,"encodeSpecialCharacters"),htmlAttributes:C("htmlAttributes",e),linkTags:A(g.LINK,["rel","href"],e),metaTags:A(g.META,["name","charset","http-equiv","property","itemprop"],e),noscriptTags:A(g.NOSCRIPT,["innerHTML"],e),onChangeClientState:_(e),scriptTags:A(g.SCRIPT,["src","innerHTML"],e),styleTags:A(g.STYLE,["cssText"],e),title:x(e),titleAttributes:C("titleAttributes",e),prioritizeSeoTags:L(e,"prioritizeSeoTags")});H.canUseDOM?(t=o,Y&&cancelAnimationFrame(Y),t.defer?Y=requestAnimationFrame((function(){W(t,(function(){Y=null}))})):(W(t),Y=null)):B&&(a=B(o)),r(a)},n.init=function(){this.rendered||(this.rendered=!0,this.props.context.helmetInstances.add(this),this.emitChange())},n.render=function(){return this.init(),null},t}(r.Component);K.propTypes={context:q.isRequired},K.displayName="HelmetDispatcher";var X=["children"],Q=["children"],J=function(e){function t(){return e.apply(this,arguments)||this}f(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!l()(N(this.props,"helmetData"),N(e,"helmetData"))},n.mapNestedChildrenToProps=function(e,t){if(!t)return null;switch(e.type){case g.SCRIPT:case g.NOSCRIPT:return{innerHTML:t};case g.STYLE:return{cssText:t};default:throw new Error("<"+e.type+" /> elements are self-closing and can not contain children. Refer to our API for more information.")}},n.flattenArrayTypeChildren=function(e){var t,n=e.child,r=e.arrayTypeChildren;return p({},r,((t={})[n.type]=[].concat(r[n.type]||[],[p({},e.newChildProps,this.mapNestedChildrenToProps(n,e.nestedChildren))]),t))},n.mapObjectTypeChildren=function(e){var t,n,r=e.child,a=e.newProps,o=e.newChildProps,i=e.nestedChildren;switch(r.type){case g.TITLE:return p({},a,((t={})[r.type]=i,t.titleAttributes=p({},o),t));case g.BODY:return p({},a,{bodyAttributes:p({},o)});case g.HTML:return p({},a,{htmlAttributes:p({},o)});default:return p({},a,((n={})[r.type]=p({},o),n))}},n.mapArrayTypeChildrenToProps=function(e,t){var n=p({},t);return Object.keys(e).forEach((function(t){var r;n=p({},n,((r={})[t]=e[t],r))})),n},n.warnOnInvalidChildren=function(e,t){return c()(w.some((function(t){return e.type===t})),"function"==typeof e.type?"You may be attempting to nest <Helmet> components within each other, which is not allowed. Refer to our API for more information.":"Only elements types "+w.join(", ")+" are allowed. Helmet does not support rendering <"+e.type+"> elements. Refer to our API for more information."),c()(!t||"string"==typeof t||Array.isArray(t)&&!t.some((function(e){return"string"!=typeof e})),"Helmet expects a string as a child of <"+e.type+">. Did you forget to wrap your children in braces? ( <"+e.type+">{``}</"+e.type+"> ) Refer to our API for more information."),!0},n.mapChildrenToProps=function(e,t){var n=this,a={};return r.Children.forEach(e,(function(e){if(e&&e.props){var r=e.props,o=r.children,i=h(r,X),l=Object.keys(i).reduce((function(e,t){return e[S[t]||t]=i[t],e}),{}),s=e.type;switch("symbol"==typeof s?s=s.toString():n.warnOnInvalidChildren(e,o),s){case g.FRAGMENT:t=n.mapChildrenToProps(o,t);break;case g.LINK:case g.META:case g.NOSCRIPT:case g.SCRIPT:case g.STYLE:a=n.flattenArrayTypeChildren({child:e,arrayTypeChildren:a,newChildProps:l,nestedChildren:o});break;default:t=n.mapObjectTypeChildren({child:e,newProps:t,newChildProps:l,nestedChildren:o})}}})),this.mapArrayTypeChildrenToProps(a,t)},n.render=function(){var e=this.props,t=e.children,n=h(e,Q),a=p({},n),o=n.helmetData;return t&&(a=this.mapChildrenToProps(t,a)),!o||o instanceof U||(o=new U(o.context,o.instances)),o?r.createElement(K,p({},a,{context:o.value,helmetData:void 0})):r.createElement($.Consumer,null,(function(e){return r.createElement(K,p({},a,{context:e}))}))},t}(r.Component);J.propTypes={base:o().object,bodyAttributes:o().object,children:o().oneOfType([o().arrayOf(o().node),o().node]),defaultTitle:o().string,defer:o().bool,encodeSpecialCharacters:o().bool,htmlAttributes:o().object,link:o().arrayOf(o().object),meta:o().arrayOf(o().object),noscript:o().arrayOf(o().object),onChangeClientState:o().func,script:o().arrayOf(o().object),style:o().arrayOf(o().object),title:o().string,titleAttributes:o().object,titleTemplate:o().string,prioritizeSeoTags:o().bool,helmetData:o().object},J.defaultProps={defer:!0,encodeSpecialCharacters:!0,prioritizeSeoTags:!1},J.displayName="Helmet"},9921:(e,t)=>{"use strict";var n="function"==typeof Symbol&&Symbol.for,r=n?Symbol.for("react.element"):60103,a=n?Symbol.for("react.portal"):60106,o=n?Symbol.for("react.fragment"):60107,i=n?Symbol.for("react.strict_mode"):60108,l=n?Symbol.for("react.profiler"):60114,s=n?Symbol.for("react.provider"):60109,c=n?Symbol.for("react.context"):60110,u=n?Symbol.for("react.async_mode"):60111,d=n?Symbol.for("react.concurrent_mode"):60111,p=n?Symbol.for("react.forward_ref"):60112,f=n?Symbol.for("react.suspense"):60113,m=n?Symbol.for("react.suspense_list"):60120,h=n?Symbol.for("react.memo"):60115,g=n?Symbol.for("react.lazy"):60116,b=n?Symbol.for("react.block"):60121,v=n?Symbol.for("react.fundamental"):60117,y=n?Symbol.for("react.responder"):60118,w=n?Symbol.for("react.scope"):60119;function k(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case u:case d:case o:case l:case i:case f:return e;default:switch(e=e&&e.$$typeof){case c:case p:case g:case h:case s:return e;default:return t}}case a:return t}}}function S(e){return k(e)===d}t.AsyncMode=u,t.ConcurrentMode=d,t.ContextConsumer=c,t.ContextProvider=s,t.Element=r,t.ForwardRef=p,t.Fragment=o,t.Lazy=g,t.Memo=h,t.Portal=a,t.Profiler=l,t.StrictMode=i,t.Suspense=f,t.isAsyncMode=function(e){return S(e)||k(e)===u},t.isConcurrentMode=S,t.isContextConsumer=function(e){return k(e)===c},t.isContextProvider=function(e){return k(e)===s},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return k(e)===p},t.isFragment=function(e){return k(e)===o},t.isLazy=function(e){return k(e)===g},t.isMemo=function(e){return k(e)===h},t.isPortal=function(e){return k(e)===a},t.isProfiler=function(e){return k(e)===l},t.isStrictMode=function(e){return k(e)===i},t.isSuspense=function(e){return k(e)===f},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===o||e===d||e===l||e===i||e===f||e===m||"object"==typeof e&&null!==e&&(e.$$typeof===g||e.$$typeof===h||e.$$typeof===s||e.$$typeof===c||e.$$typeof===p||e.$$typeof===v||e.$$typeof===y||e.$$typeof===w||e.$$typeof===b)},t.typeOf=k},9864:(e,t,n)=>{"use strict";e.exports=n(9921)},8356:(e,t,n)=>{"use strict";function r(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}function a(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(){return i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i.apply(this,arguments)}var l=n(7294),s=n(5697),c=[],u=[];function d(e){var t=e(),n={loading:!0,loaded:null,error:null};return n.promise=t.then((function(e){return n.loading=!1,n.loaded=e,e})).catch((function(e){throw n.loading=!1,n.error=e,e})),n}function p(e){var t={loading:!1,loaded:{},error:null},n=[];try{Object.keys(e).forEach((function(r){var a=d(e[r]);a.loading?t.loading=!0:(t.loaded[r]=a.loaded,t.error=a.error),n.push(a.promise),a.promise.then((function(e){t.loaded[r]=e})).catch((function(e){t.error=e}))}))}catch(r){t.error=r}return t.promise=Promise.all(n).then((function(e){return t.loading=!1,e})).catch((function(e){throw t.loading=!1,e})),t}function f(e,t){return l.createElement((n=e)&&n.__esModule?n.default:n,t);var n}function m(e,t){var d,p;if(!t.loading)throw new Error("react-loadable requires a `loading` component");var m=i({loader:null,loading:null,delay:200,timeout:null,render:f,webpack:null,modules:null},t),h=null;function g(){return h||(h=e(m.loader)),h.promise}return c.push(g),"function"==typeof m.webpack&&u.push((function(){if((0,m.webpack)().every((function(e){return void 0!==e&&void 0!==n.m[e]})))return g()})),p=d=function(t){function n(n){var r;return o(a(a(r=t.call(this,n)||this)),"retry",(function(){r.setState({error:null,loading:!0,timedOut:!1}),h=e(m.loader),r._loadModule()})),g(),r.state={error:h.error,pastDelay:!1,timedOut:!1,loading:h.loading,loaded:h.loaded},r}r(n,t),n.preload=function(){return g()};var i=n.prototype;return i.UNSAFE_componentWillMount=function(){this._loadModule()},i.componentDidMount=function(){this._mounted=!0},i._loadModule=function(){var e=this;if(this.context.loadable&&Array.isArray(m.modules)&&m.modules.forEach((function(t){e.context.loadable.report(t)})),h.loading){var t=function(t){e._mounted&&e.setState(t)};"number"==typeof m.delay&&(0===m.delay?this.setState({pastDelay:!0}):this._delay=setTimeout((function(){t({pastDelay:!0})}),m.delay)),"number"==typeof m.timeout&&(this._timeout=setTimeout((function(){t({timedOut:!0})}),m.timeout));var n=function(){t({error:h.error,loaded:h.loaded,loading:h.loading}),e._clearTimeouts()};h.promise.then((function(){return n(),null})).catch((function(e){return n(),null}))}},i.componentWillUnmount=function(){this._mounted=!1,this._clearTimeouts()},i._clearTimeouts=function(){clearTimeout(this._delay),clearTimeout(this._timeout)},i.render=function(){return this.state.loading||this.state.error?l.createElement(m.loading,{isLoading:this.state.loading,pastDelay:this.state.pastDelay,timedOut:this.state.timedOut,error:this.state.error,retry:this.retry}):this.state.loaded?m.render(this.state.loaded,this.props):null},n}(l.Component),o(d,"contextTypes",{loadable:s.shape({report:s.func.isRequired})}),p}function h(e){return m(d,e)}h.Map=function(e){if("function"!=typeof e.render)throw new Error("LoadableMap requires a `render(loaded, props)` function");return m(p,e)};var g=function(e){function t(){return e.apply(this,arguments)||this}r(t,e);var n=t.prototype;return n.getChildContext=function(){return{loadable:{report:this.props.report}}},n.render=function(){return l.Children.only(this.props.children)},t}(l.Component);function b(e){for(var t=[];e.length;){var n=e.pop();t.push(n())}return Promise.all(t).then((function(){if(e.length)return b(e)}))}o(g,"propTypes",{report:s.func.isRequired}),o(g,"childContextTypes",{loadable:s.shape({report:s.func.isRequired}).isRequired}),h.Capture=g,h.preloadAll=function(){return new Promise((function(e,t){b(c).then(e,t)}))},h.preloadReady=function(){return new Promise((function(e,t){b(u).then(e,e)}))},e.exports=h},8790:(e,t,n)=>{"use strict";n.d(t,{H:()=>l,f:()=>i});var r=n(6550),a=n(7462),o=n(7294);function i(e,t,n){return void 0===n&&(n=[]),e.some((function(e){var a=e.path?(0,r.LX)(t,e):n.length?n[n.length-1].match:r.F0.computeRootMatch(t);return a&&(n.push({route:e,match:a}),e.routes&&i(e.routes,t,n)),a})),n}function l(e,t,n){return void 0===t&&(t={}),void 0===n&&(n={}),e?o.createElement(r.rs,n,e.map((function(e,n){return o.createElement(r.AW,{key:e.key||n,path:e.path,exact:e.exact,strict:e.strict,render:function(n){return e.render?e.render((0,a.Z)({},n,{},t,{route:e})):o.createElement(e.component,(0,a.Z)({},n,t,{route:e}))}})}))):null}},3727:(e,t,n)=>{"use strict";n.d(t,{OL:()=>y,VK:()=>u,rU:()=>g});var r=n(6550),a=n(5068),o=n(7294),i=n(9318),l=n(7462),s=n(3366),c=n(8776),u=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(t=e.call.apply(e,[this].concat(r))||this).history=(0,i.lX)(t.props),t}return(0,a.Z)(t,e),t.prototype.render=function(){return o.createElement(r.F0,{history:this.history,children:this.props.children})},t}(o.Component);o.Component;var d=function(e,t){return"function"==typeof e?e(t):e},p=function(e,t){return"string"==typeof e?(0,i.ob)(e,null,null,t):e},f=function(e){return e},m=o.forwardRef;void 0===m&&(m=f);var h=m((function(e,t){var n=e.innerRef,r=e.navigate,a=e.onClick,i=(0,s.Z)(e,["innerRef","navigate","onClick"]),c=i.target,u=(0,l.Z)({},i,{onClick:function(e){try{a&&a(e)}catch(t){throw e.preventDefault(),t}e.defaultPrevented||0!==e.button||c&&"_self"!==c||function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}(e)||(e.preventDefault(),r())}});return u.ref=f!==m&&t||n,o.createElement("a",u)}));var g=m((function(e,t){var n=e.component,a=void 0===n?h:n,u=e.replace,g=e.to,b=e.innerRef,v=(0,s.Z)(e,["component","replace","to","innerRef"]);return o.createElement(r.s6.Consumer,null,(function(e){e||(0,c.Z)(!1);var n=e.history,r=p(d(g,e.location),e.location),s=r?n.createHref(r):"",h=(0,l.Z)({},v,{href:s,navigate:function(){var t=d(g,e.location),r=(0,i.Ep)(e.location)===(0,i.Ep)(p(t));(u||r?n.replace:n.push)(t)}});return f!==m?h.ref=t||b:h.innerRef=b,o.createElement(a,h)}))})),b=function(e){return e},v=o.forwardRef;void 0===v&&(v=b);var y=v((function(e,t){var n=e["aria-current"],a=void 0===n?"page":n,i=e.activeClassName,u=void 0===i?"active":i,f=e.activeStyle,m=e.className,h=e.exact,y=e.isActive,w=e.location,k=e.sensitive,S=e.strict,E=e.style,x=e.to,_=e.innerRef,C=(0,s.Z)(e,["aria-current","activeClassName","activeStyle","className","exact","isActive","location","sensitive","strict","style","to","innerRef"]);return o.createElement(r.s6.Consumer,null,(function(e){e||(0,c.Z)(!1);var n=w||e.location,i=p(d(x,n),n),s=i.pathname,T=s&&s.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1"),A=T?(0,r.LX)(n.pathname,{path:T,exact:h,sensitive:k,strict:S}):null,L=!!(y?y(A,n):A),P="function"==typeof m?m(L):m,R="function"==typeof E?E(L):E;L&&(P=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.filter((function(e){return e})).join(" ")}(P,u),R=(0,l.Z)({},R,f));var N=(0,l.Z)({"aria-current":L&&a||null,className:P,style:R,to:i},C);return b!==v?N.ref=t||_:N.innerRef=_,o.createElement(g,N)}))}))},6550:(e,t,n)=>{"use strict";n.d(t,{AW:()=>x,F0:()=>y,LX:()=>E,TH:()=>O,k6:()=>N,rs:()=>P,s6:()=>v});var r=n(5068),a=n(7294),o=n(5697),i=n.n(o),l=n(9318),s=n(8776),c=n(7462),u=n(4779),d=n.n(u),p=(n(9864),n(3366)),f=(n(8679),1073741823),m="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==n.g?n.g:{};var h=a.createContext||function(e,t){var n,o,l="__create-react-context-"+function(){var e="__global_unique_id__";return m[e]=(m[e]||0)+1}()+"__",s=function(e){function n(){for(var t,n,r,a=arguments.length,o=new Array(a),i=0;i<a;i++)o[i]=arguments[i];return(t=e.call.apply(e,[this].concat(o))||this).emitter=(n=t.props.value,r=[],{on:function(e){r.push(e)},off:function(e){r=r.filter((function(t){return t!==e}))},get:function(){return n},set:function(e,t){n=e,r.forEach((function(e){return e(n,t)}))}}),t}(0,r.Z)(n,e);var a=n.prototype;return a.getChildContext=function(){var e;return(e={})[l]=this.emitter,e},a.componentWillReceiveProps=function(e){if(this.props.value!==e.value){var n,r=this.props.value,a=e.value;((o=r)===(i=a)?0!==o||1/o==1/i:o!=o&&i!=i)?n=0:(n="function"==typeof t?t(r,a):f,0!==(n|=0)&&this.emitter.set(e.value,n))}var o,i},a.render=function(){return this.props.children},n}(a.Component);s.childContextTypes=((n={})[l]=i().object.isRequired,n);var c=function(t){function n(){for(var e,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(e=t.call.apply(t,[this].concat(r))||this).observedBits=void 0,e.state={value:e.getValue()},e.onUpdate=function(t,n){0!=((0|e.observedBits)&n)&&e.setState({value:e.getValue()})},e}(0,r.Z)(n,t);var a=n.prototype;return a.componentWillReceiveProps=function(e){var t=e.observedBits;this.observedBits=null==t?f:t},a.componentDidMount=function(){this.context[l]&&this.context[l].on(this.onUpdate);var e=this.props.observedBits;this.observedBits=null==e?f:e},a.componentWillUnmount=function(){this.context[l]&&this.context[l].off(this.onUpdate)},a.getValue=function(){return this.context[l]?this.context[l].get():e},a.render=function(){return(e=this.props.children,Array.isArray(e)?e[0]:e)(this.state.value);var e},n}(a.Component);return c.contextTypes=((o={})[l]=i().object,o),{Provider:s,Consumer:c}},g=function(e){var t=h();return t.displayName=e,t},b=g("Router-History"),v=g("Router"),y=function(e){function t(t){var n;return(n=e.call(this,t)||this).state={location:t.history.location},n._isMounted=!1,n._pendingLocation=null,t.staticContext||(n.unlisten=t.history.listen((function(e){n._pendingLocation=e}))),n}(0,r.Z)(t,e),t.computeRootMatch=function(e){return{path:"/",url:"/",params:{},isExact:"/"===e}};var n=t.prototype;return n.componentDidMount=function(){var e=this;this._isMounted=!0,this.unlisten&&this.unlisten(),this.props.staticContext||(this.unlisten=this.props.history.listen((function(t){e._isMounted&&e.setState({location:t})}))),this._pendingLocation&&this.setState({location:this._pendingLocation})},n.componentWillUnmount=function(){this.unlisten&&(this.unlisten(),this._isMounted=!1,this._pendingLocation=null)},n.render=function(){return a.createElement(v.Provider,{value:{history:this.props.history,location:this.state.location,match:t.computeRootMatch(this.state.location.pathname),staticContext:this.props.staticContext}},a.createElement(b.Provider,{children:this.props.children||null,value:this.props.history}))},t}(a.Component);a.Component;a.Component;var w={},k=1e4,S=0;function E(e,t){void 0===t&&(t={}),("string"==typeof t||Array.isArray(t))&&(t={path:t});var n=t,r=n.path,a=n.exact,o=void 0!==a&&a,i=n.strict,l=void 0!==i&&i,s=n.sensitive,c=void 0!==s&&s;return[].concat(r).reduce((function(t,n){if(!n&&""!==n)return null;if(t)return t;var r=function(e,t){var n=""+t.end+t.strict+t.sensitive,r=w[n]||(w[n]={});if(r[e])return r[e];var a=[],o={regexp:d()(e,a,t),keys:a};return S<k&&(r[e]=o,S++),o}(n,{end:o,strict:l,sensitive:c}),a=r.regexp,i=r.keys,s=a.exec(e);if(!s)return null;var u=s[0],p=s.slice(1),f=e===u;return o&&!f?null:{path:n,url:"/"===n&&""===u?"/":u,isExact:f,params:i.reduce((function(e,t,n){return e[t.name]=p[n],e}),{})}}),null)}var x=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.Z)(t,e),t.prototype.render=function(){var e=this;return a.createElement(v.Consumer,null,(function(t){t||(0,s.Z)(!1);var n=e.props.location||t.location,r=e.props.computedMatch?e.props.computedMatch:e.props.path?E(n.pathname,e.props):t.match,o=(0,c.Z)({},t,{location:n,match:r}),i=e.props,l=i.children,u=i.component,d=i.render;return Array.isArray(l)&&function(e){return 0===a.Children.count(e)}(l)&&(l=null),a.createElement(v.Provider,{value:o},o.match?l?"function"==typeof l?l(o):l:u?a.createElement(u,o):d?d(o):null:"function"==typeof l?l(o):null)}))},t}(a.Component);function _(e){return"/"===e.charAt(0)?e:"/"+e}function C(e,t){if(!e)return t;var n=_(e);return 0!==t.pathname.indexOf(n)?t:(0,c.Z)({},t,{pathname:t.pathname.substr(n.length)})}function T(e){return"string"==typeof e?e:(0,l.Ep)(e)}function A(e){return function(){(0,s.Z)(!1)}}function L(){}a.Component;var P=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.Z)(t,e),t.prototype.render=function(){var e=this;return a.createElement(v.Consumer,null,(function(t){t||(0,s.Z)(!1);var n,r,o=e.props.location||t.location;return a.Children.forEach(e.props.children,(function(e){if(null==r&&a.isValidElement(e)){n=e;var i=e.props.path||e.props.from;r=i?E(o.pathname,(0,c.Z)({},e.props,{path:i})):t.match}})),r?a.cloneElement(n,{location:o,computedMatch:r}):null}))},t}(a.Component);var R=a.useContext;function N(){return R(b)}function O(){return R(v).location}},2408:(e,t,n)=>{"use strict";var r=n(7418),a=60103,o=60106;t.Fragment=60107,t.StrictMode=60108,t.Profiler=60114;var i=60109,l=60110,s=60112;t.Suspense=60113;var c=60115,u=60116;if("function"==typeof Symbol&&Symbol.for){var d=Symbol.for;a=d("react.element"),o=d("react.portal"),t.Fragment=d("react.fragment"),t.StrictMode=d("react.strict_mode"),t.Profiler=d("react.profiler"),i=d("react.provider"),l=d("react.context"),s=d("react.forward_ref"),t.Suspense=d("react.suspense"),c=d("react.memo"),u=d("react.lazy")}var p="function"==typeof Symbol&&Symbol.iterator;function f(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var m={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},h={};function g(e,t,n){this.props=e,this.context=t,this.refs=h,this.updater=n||m}function b(){}function v(e,t,n){this.props=e,this.context=t,this.refs=h,this.updater=n||m}g.prototype.isReactComponent={},g.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error(f(85));this.updater.enqueueSetState(this,e,t,"setState")},g.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},b.prototype=g.prototype;var y=v.prototype=new b;y.constructor=v,r(y,g.prototype),y.isPureReactComponent=!0;var w={current:null},k=Object.prototype.hasOwnProperty,S={key:!0,ref:!0,__self:!0,__source:!0};function E(e,t,n){var r,o={},i=null,l=null;if(null!=t)for(r in void 0!==t.ref&&(l=t.ref),void 0!==t.key&&(i=""+t.key),t)k.call(t,r)&&!S.hasOwnProperty(r)&&(o[r]=t[r]);var s=arguments.length-2;if(1===s)o.children=n;else if(1<s){for(var c=Array(s),u=0;u<s;u++)c[u]=arguments[u+2];o.children=c}if(e&&e.defaultProps)for(r in s=e.defaultProps)void 0===o[r]&&(o[r]=s[r]);return{$$typeof:a,type:e,key:i,ref:l,props:o,_owner:w.current}}function x(e){return"object"==typeof e&&null!==e&&e.$$typeof===a}var _=/\/+/g;function C(e,t){return"object"==typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,(function(e){return t[e]}))}(""+e.key):t.toString(36)}function T(e,t,n,r,i){var l=typeof e;"undefined"!==l&&"boolean"!==l||(e=null);var s=!1;if(null===e)s=!0;else switch(l){case"string":case"number":s=!0;break;case"object":switch(e.$$typeof){case a:case o:s=!0}}if(s)return i=i(s=e),e=""===r?"."+C(s,0):r,Array.isArray(i)?(n="",null!=e&&(n=e.replace(_,"$&/")+"/"),T(i,t,n,"",(function(e){return e}))):null!=i&&(x(i)&&(i=function(e,t){return{$$typeof:a,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(i,n+(!i.key||s&&s.key===i.key?"":(""+i.key).replace(_,"$&/")+"/")+e)),t.push(i)),1;if(s=0,r=""===r?".":r+":",Array.isArray(e))for(var c=0;c<e.length;c++){var u=r+C(l=e[c],c);s+=T(l,t,n,u,i)}else if(u=function(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=p&&e[p]||e["@@iterator"])?e:null}(e),"function"==typeof u)for(e=u.call(e),c=0;!(l=e.next()).done;)s+=T(l=l.value,t,n,u=r+C(l,c++),i);else if("object"===l)throw t=""+e,Error(f(31,"[object Object]"===t?"object with keys {"+Object.keys(e).join(", ")+"}":t));return s}function A(e,t,n){if(null==e)return e;var r=[],a=0;return T(e,r,"","",(function(e){return t.call(n,e,a++)})),r}function L(e){if(-1===e._status){var t=e._result;t=t(),e._status=0,e._result=t,t.then((function(t){0===e._status&&(t=t.default,e._status=1,e._result=t)}),(function(t){0===e._status&&(e._status=2,e._result=t)}))}if(1===e._status)return e._result;throw e._result}var P={current:null};function R(){var e=P.current;if(null===e)throw Error(f(321));return e}var N={ReactCurrentDispatcher:P,ReactCurrentBatchConfig:{transition:0},ReactCurrentOwner:w,IsSomeRendererActing:{current:!1},assign:r};t.Children={map:A,forEach:function(e,t,n){A(e,(function(){t.apply(this,arguments)}),n)},count:function(e){var t=0;return A(e,(function(){t++})),t},toArray:function(e){return A(e,(function(e){return e}))||[]},only:function(e){if(!x(e))throw Error(f(143));return e}},t.Component=g,t.PureComponent=v,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=N,t.cloneElement=function(e,t,n){if(null==e)throw Error(f(267,e));var o=r({},e.props),i=e.key,l=e.ref,s=e._owner;if(null!=t){if(void 0!==t.ref&&(l=t.ref,s=w.current),void 0!==t.key&&(i=""+t.key),e.type&&e.type.defaultProps)var c=e.type.defaultProps;for(u in t)k.call(t,u)&&!S.hasOwnProperty(u)&&(o[u]=void 0===t[u]&&void 0!==c?c[u]:t[u])}var u=arguments.length-2;if(1===u)o.children=n;else if(1<u){c=Array(u);for(var d=0;d<u;d++)c[d]=arguments[d+2];o.children=c}return{$$typeof:a,type:e.type,key:i,ref:l,props:o,_owner:s}},t.createContext=function(e,t){return void 0===t&&(t=null),(e={$$typeof:l,_calculateChangedBits:t,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null}).Provider={$$typeof:i,_context:e},e.Consumer=e},t.createElement=E,t.createFactory=function(e){var t=E.bind(null,e);return t.type=e,t},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:s,render:e}},t.isValidElement=x,t.lazy=function(e){return{$$typeof:u,_payload:{_status:-1,_result:e},_init:L}},t.memo=function(e,t){return{$$typeof:c,type:e,compare:void 0===t?null:t}},t.useCallback=function(e,t){return R().useCallback(e,t)},t.useContext=function(e,t){return R().useContext(e,t)},t.useDebugValue=function(){},t.useEffect=function(e,t){return R().useEffect(e,t)},t.useImperativeHandle=function(e,t,n){return R().useImperativeHandle(e,t,n)},t.useLayoutEffect=function(e,t){return R().useLayoutEffect(e,t)},t.useMemo=function(e,t){return R().useMemo(e,t)},t.useReducer=function(e,t,n){return R().useReducer(e,t,n)},t.useRef=function(e){return R().useRef(e)},t.useState=function(e){return R().useState(e)},t.version="17.0.2"},7294:(e,t,n)=>{"use strict";e.exports=n(2408)},53:(e,t)=>{"use strict";var n,r,a,o;if("object"==typeof performance&&"function"==typeof performance.now){var i=performance;t.unstable_now=function(){return i.now()}}else{var l=Date,s=l.now();t.unstable_now=function(){return l.now()-s}}if("undefined"==typeof window||"function"!=typeof MessageChannel){var c=null,u=null,d=function(){if(null!==c)try{var e=t.unstable_now();c(!0,e),c=null}catch(n){throw setTimeout(d,0),n}};n=function(e){null!==c?setTimeout(n,0,e):(c=e,setTimeout(d,0))},r=function(e,t){u=setTimeout(e,t)},a=function(){clearTimeout(u)},t.unstable_shouldYield=function(){return!1},o=t.unstable_forceFrameRate=function(){}}else{var p=window.setTimeout,f=window.clearTimeout;if("undefined"!=typeof console){var m=window.cancelAnimationFrame;"function"!=typeof window.requestAnimationFrame&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"),"function"!=typeof m&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills")}var h=!1,g=null,b=-1,v=5,y=0;t.unstable_shouldYield=function(){return t.unstable_now()>=y},o=function(){},t.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):v=0<e?Math.floor(1e3/e):5};var w=new MessageChannel,k=w.port2;w.port1.onmessage=function(){if(null!==g){var e=t.unstable_now();y=e+v;try{g(!0,e)?k.postMessage(null):(h=!1,g=null)}catch(n){throw k.postMessage(null),n}}else h=!1},n=function(e){g=e,h||(h=!0,k.postMessage(null))},r=function(e,n){b=p((function(){e(t.unstable_now())}),n)},a=function(){f(b),b=-1}}function S(e,t){var n=e.length;e.push(t);e:for(;;){var r=n-1>>>1,a=e[r];if(!(void 0!==a&&0<_(a,t)))break e;e[r]=t,e[n]=a,n=r}}function E(e){return void 0===(e=e[0])?null:e}function x(e){var t=e[0];if(void 0!==t){var n=e.pop();if(n!==t){e[0]=n;e:for(var r=0,a=e.length;r<a;){var o=2*(r+1)-1,i=e[o],l=o+1,s=e[l];if(void 0!==i&&0>_(i,n))void 0!==s&&0>_(s,i)?(e[r]=s,e[l]=n,r=l):(e[r]=i,e[o]=n,r=o);else{if(!(void 0!==s&&0>_(s,n)))break e;e[r]=s,e[l]=n,r=l}}}return t}return null}function _(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}var C=[],T=[],A=1,L=null,P=3,R=!1,N=!1,O=!1;function I(e){for(var t=E(T);null!==t;){if(null===t.callback)x(T);else{if(!(t.startTime<=e))break;x(T),t.sortIndex=t.expirationTime,S(C,t)}t=E(T)}}function D(e){if(O=!1,I(e),!N)if(null!==E(C))N=!0,n(M);else{var t=E(T);null!==t&&r(D,t.startTime-e)}}function M(e,n){N=!1,O&&(O=!1,a()),R=!0;var o=P;try{for(I(n),L=E(C);null!==L&&(!(L.expirationTime>n)||e&&!t.unstable_shouldYield());){var i=L.callback;if("function"==typeof i){L.callback=null,P=L.priorityLevel;var l=i(L.expirationTime<=n);n=t.unstable_now(),"function"==typeof l?L.callback=l:L===E(C)&&x(C),I(n)}else x(C);L=E(C)}if(null!==L)var s=!0;else{var c=E(T);null!==c&&r(D,c.startTime-n),s=!1}return s}finally{L=null,P=o,R=!1}}var F=o;t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_continueExecution=function(){N||R||(N=!0,n(M))},t.unstable_getCurrentPriorityLevel=function(){return P},t.unstable_getFirstCallbackNode=function(){return E(C)},t.unstable_next=function(e){switch(P){case 1:case 2:case 3:var t=3;break;default:t=P}var n=P;P=t;try{return e()}finally{P=n}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=F,t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=P;P=e;try{return t()}finally{P=n}},t.unstable_scheduleCallback=function(e,o,i){var l=t.unstable_now();switch("object"==typeof i&&null!==i?i="number"==typeof(i=i.delay)&&0<i?l+i:l:i=l,e){case 1:var s=-1;break;case 2:s=250;break;case 5:s=1073741823;break;case 4:s=1e4;break;default:s=5e3}return e={id:A++,callback:o,priorityLevel:e,startTime:i,expirationTime:s=i+s,sortIndex:-1},i>l?(e.sortIndex=i,S(T,e),null===E(C)&&e===E(T)&&(O?a():O=!0,r(D,i-l))):(e.sortIndex=s,S(C,e),N||R||(N=!0,n(M))),e},t.unstable_wrapCallback=function(e){var t=P;return function(){var n=P;P=t;try{return e.apply(this,arguments)}finally{P=n}}}},3840:(e,t,n)=>{"use strict";e.exports=n(53)},6774:e=>{e.exports=function(e,t,n,r){var a=n?n.call(r,e,t):void 0;if(void 0!==a)return!!a;if(e===t)return!0;if("object"!=typeof e||!e||"object"!=typeof t||!t)return!1;var o=Object.keys(e),i=Object.keys(t);if(o.length!==i.length)return!1;for(var l=Object.prototype.hasOwnProperty.bind(t),s=0;s<o.length;s++){var c=o[s];if(!l(c))return!1;var u=e[c],d=t[c];if(!1===(a=n?n.call(r,u,d,c):void 0)||void 0===a&&u!==d)return!1}return!0}},3250:(e,t,n)=>{"use strict";var r=n(7294);var a="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},o=r.useState,i=r.useEffect,l=r.useLayoutEffect,s=r.useDebugValue;function c(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!a(e,n)}catch(r){return!0}}var u="undefined"==typeof window||void 0===window.document||void 0===window.document.createElement?function(e,t){return t()}:function(e,t){var n=t(),r=o({inst:{value:n,getSnapshot:t}}),a=r[0].inst,u=r[1];return l((function(){a.value=n,a.getSnapshot=t,c(a)&&u({inst:a})}),[e,n,t]),i((function(){return c(a)&&u({inst:a}),e((function(){c(a)&&u({inst:a})}))}),[e]),s(n),n};t.useSyncExternalStore=void 0!==r.useSyncExternalStore?r.useSyncExternalStore:u},1688:(e,t,n)=>{"use strict";e.exports=n(3250)},6809:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={title:"Middy.js",tagline:"The stylish Node.js middleware engine for AWS Lambda",url:"https://middy.js.org",baseUrl:"/",onBrokenLinks:"throw",onBrokenMarkdownLinks:"warn",favicon:"img/favicon.svg",organizationName:"middyjs",projectName:"middy",plugins:["/home/runner/work/middy/middy/website/node_modules/docusaurus-lunr-search/src/index.js"],presets:[["classic",{docs:{sidebarCollapsible:!0,showLastUpdateTime:!0,sidebarPath:"/home/runner/work/middy/middy/website/sidebars.js",editUrl:"https://github.com/middyjs/middy/tree/main/website/",remarkPlugins:[[null,{sync:!0}]]},pages:{remarkPlugins:[null]},theme:{customCss:"/home/runner/work/middy/middy/website/src/css/custom.css"}}]],themeConfig:{navbar:{title:"Middy",logo:{alt:"Middy Logo",src:"img/middy-logo-small.svg"},items:[{type:"doc",docId:"intro/intro",position:"left",label:"Documentation"},{type:"doc",docId:"middlewares/intro",position:"left",label:"Middlewares"},{type:"doc",docId:"events/intro",position:"left",label:"AWS Events"},{href:"https://github.com/middyjs/middy",label:"GitHub",position:"right"}],hideOnScroll:!1},footer:{style:"dark",links:[{title:"Docs",items:[{label:"Documentation",to:"/docs"},{label:"Middlewares",to:"/docs/category/middlewares"},{label:"AWS Events",to:"/docs/events/intro"}]},{title:"Community & support",items:[{label:"GitHub",href:"https://github.com/middyjs/middy"},{label:"Stack Overflow",href:"https://stackoverflow.com/questions/tagged/middy?sort=Newest&uqlId=35052"},{label:"Gitter",href:"https://gitter.im/middyjs/Lobby"}]},{title:"More",items:[{label:"npm",href:"https://www.npmjs.com/package/@middy/core"}]}],copyright:"Copyright \xa9 2023 Middy - Built with Docusaurus. - Icons by feathericons.com"},prism:{theme:{plain:{color:"#393A34",backgroundColor:"#f6f8fa"},styles:[{types:["comment","prolog","doctype","cdata"],style:{color:"#999988",fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}},{types:["string","attr-value"],style:{color:"#e3116c"}},{types:["punctuation","operator"],style:{color:"#393A34"}},{types:["entity","url","symbol","number","boolean","variable","constant","property","regex","inserted"],style:{color:"#36acaa"}},{types:["atrule","keyword","attr-name","selector"],style:{color:"#00a4db"}},{types:["function","deleted","tag"],style:{color:"#d73a49"}},{types:["function-variable"],style:{color:"#6f42c1"}},{types:["tag","selector","keyword"],style:{color:"#00009f"}}]},darkTheme:{plain:{color:"#F8F8F2",backgroundColor:"#282A36"},styles:[{types:["prolog","constant","builtin"],style:{color:"rgb(189, 147, 249)"}},{types:["inserted","function"],style:{color:"rgb(80, 250, 123)"}},{types:["deleted"],style:{color:"rgb(255, 85, 85)"}},{types:["changed"],style:{color:"rgb(255, 184, 108)"}},{types:["punctuation","symbol"],style:{color:"rgb(248, 248, 242)"}},{types:["string","char","tag","selector"],style:{color:"rgb(255, 121, 198)"}},{types:["keyword","variable"],style:{color:"rgb(189, 147, 249)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(98, 114, 164)"}},{types:["attr-name"],style:{color:"rgb(241, 250, 140)"}}]},additionalLanguages:[],magicComments:[{className:"theme-code-block-highlighted-line",line:"highlight-next-line",block:{start:"highlight-start",end:"highlight-end"}}]},colorMode:{defaultMode:"light",disableSwitch:!1,respectPrefersColorScheme:!1},docs:{versionPersistence:"localStorage",sidebar:{hideable:!1,autoCollapseCategories:!1}},metadata:[],tableOfContents:{minHeadingLevel:2,maxHeadingLevel:3}},baseUrlIssueBanner:!0,i18n:{defaultLocale:"en",path:"i18n",locales:["en"],localeConfigs:{}},onDuplicateRoutes:"warn",staticDirectories:["static"],customFields:{},themes:[],scripts:[],headTags:[],stylesheets:[],clientModules:[],titleDelimiter:"|",noIndex:!1,markdown:{mermaid:!1}}},7462:(e,t,n)=>{"use strict";function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},r.apply(this,arguments)}n.d(t,{Z:()=>r})},5068:(e,t,n)=>{"use strict";function r(e,t){return r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},r(e,t)}function a(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,r(e,t)}n.d(t,{Z:()=>a})},3366:(e,t,n)=>{"use strict";function r(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}n.d(t,{Z:()=>r})},8776:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=!0,a="Invariant failed";function o(e,t){if(!e){if(r)throw new Error(a);var n="function"==typeof t?t():t,o=n?"".concat(a,": ").concat(n):a;throw new Error(o)}}},7529:e=>{"use strict";e.exports={}},6887:e=>{"use strict";e.exports=JSON.parse('{"/markdown-page-08c":{"__comp":"1f391b9e","__context":{"plugin":"871ff594"},"content":"393be207"},"/docs-7a8":{"__comp":"1be78505","__context":{"plugin":"3e0add53"},"versionMetadata":"935f2afb"},"/docs/-a61":{"__comp":"17896441","content":"ecbeea21"},"/docs/best-practices/bundling-ec3":{"__comp":"17896441","content":"0ce61a91"},"/docs/best-practices/connection-reuse-e9a":{"__comp":"17896441","content":"54fc444e"},"/docs/best-practices/internal-context-fb7":{"__comp":"17896441","content":"c4fefc0c"},"/docs/best-practices/intro-816":{"__comp":"17896441","content":"acb7d57c"},"/docs/best-practices/profiling-6cf":{"__comp":"17896441","content":"54ed1cf2"},"/docs/best-practices/small-node-modules-385":{"__comp":"17896441","content":"70761510"},"/docs/category/aws-event-examples-116":{"__comp":"14eb3368","categoryGeneratedIndex":"cb00b214"},"/docs/category/best-practices-320":{"__comp":"14eb3368","categoryGeneratedIndex":"3ea7551b"},"/docs/category/integrations-3d4":{"__comp":"14eb3368","categoryGeneratedIndex":"4f2dd8bc"},"/docs/category/intro-to-middy-a3d":{"__comp":"14eb3368","categoryGeneratedIndex":"00787874"},"/docs/category/middlewares-65f":{"__comp":"14eb3368","categoryGeneratedIndex":"afa23cb9"},"/docs/category/routers-8cd":{"__comp":"14eb3368","categoryGeneratedIndex":"e326eb4c"},"/docs/category/upgrade-558":{"__comp":"14eb3368","categoryGeneratedIndex":"44063d41"},"/docs/category/writing-middlewares-c76":{"__comp":"14eb3368","categoryGeneratedIndex":"810a87d2"},"/docs/events/alexa-561":{"__comp":"17896441","content":"2f4f2e7a"},"/docs/events/api-gateway-authorizer-b1d":{"__comp":"17896441","content":"68318e94"},"/docs/events/api-gateway-http-dc8":{"__comp":"17896441","content":"18dc5a76"},"/docs/events/api-gateway-rest-1d4":{"__comp":"17896441","content":"73083085"},"/docs/events/api-gateway-ws-ddb":{"__comp":"17896441","content":"bff6c11b"},"/docs/events/application-load-balancer-344":{"__comp":"17896441","content":"7076eee1"},"/docs/events/appsync-c0f":{"__comp":"17896441","content":"796ad5a5"},"/docs/events/cloud-formation-134":{"__comp":"17896441","content":"79674995"},"/docs/events/cloud-front-2e5":{"__comp":"17896441","content":"34ad80cb"},"/docs/events/cloud-trail-ec9":{"__comp":"17896441","content":"28b74e92"},"/docs/events/cloud-watch-logs-21e":{"__comp":"17896441","content":"211396ae"},"/docs/events/code-commit-676":{"__comp":"17896441","content":"08f83687"},"/docs/events/code-pipeline-785":{"__comp":"17896441","content":"b6105e9b"},"/docs/events/cognito-207":{"__comp":"17896441","content":"89ce8835"},"/docs/events/config-bfe":{"__comp":"17896441","content":"71d5009c"},"/docs/events/connect-f4d":{"__comp":"17896441","content":"f20815ad"},"/docs/events/documentdb-7a2":{"__comp":"17896441","content":"4f3a9363"},"/docs/events/dynamodb-53a":{"__comp":"17896441","content":"9d560f77"},"/docs/events/ec2-94f":{"__comp":"17896441","content":"9d43f09c"},"/docs/events/event-bridge-3bf":{"__comp":"17896441","content":"52912c74"},"/docs/events/function-url-b85":{"__comp":"17896441","content":"f0886e87"},"/docs/events/intro-e69":{"__comp":"17896441","content":"56ed1c64"},"/docs/events/iot-cea":{"__comp":"17896441","content":"1ea8ecd6"},"/docs/events/iot-events-6c2":{"__comp":"17896441","content":"faf674c6"},"/docs/events/kafka-managed-streaming-bbd":{"__comp":"17896441","content":"949815f5"},"/docs/events/kafka-self-managed-d9e":{"__comp":"17896441","content":"65ce35be"},"/docs/events/kinesis-firehose-253":{"__comp":"17896441","content":"0d245e6a"},"/docs/events/kinesis-streams-9aa":{"__comp":"17896441","content":"b9c75af0"},"/docs/events/lex-af4":{"__comp":"17896441","content":"cc16eb0f"},"/docs/events/mq-5eb":{"__comp":"17896441","content":"340d0816"},"/docs/events/rds-3c4":{"__comp":"17896441","content":"a07e9812"},"/docs/events/s3-05f":{"__comp":"17896441","content":"53f1e98a"},"/docs/events/s3-batch-e3b":{"__comp":"17896441","content":"646b055a"},"/docs/events/s3-object-d5a":{"__comp":"17896441","content":"958c573d"},"/docs/events/secrets-manager-ea6":{"__comp":"17896441","content":"2b234cfe"},"/docs/events/ses-22b":{"__comp":"17896441","content":"a7c9f8b5"},"/docs/events/sns-af6":{"__comp":"17896441","content":"667584a0"},"/docs/events/sqs-2ce":{"__comp":"17896441","content":"028754be"},"/docs/events/vpc-lattice-ec4":{"__comp":"17896441","content":"a0697f1b"},"/docs/events/workmail-541":{"__comp":"17896441","content":"34ebece8"},"/docs/faq-e79":{"__comp":"17896441","content":"0480b142"},"/docs/integrations/apollo-server-d7d":{"__comp":"17896441","content":"e1c77d88"},"/docs/integrations/intro-0d2":{"__comp":"17896441","content":"b5163cd3"},"/docs/integrations/lambda-powertools-57c":{"__comp":"17896441","content":"c1378803"},"/docs/integrations/pino-2b6":{"__comp":"17896441","content":"3a74057e"},"/docs/integrations/RDS-c6b":{"__comp":"17896441","content":"171930c3"},"/docs/integrations/serverless-framework-95a":{"__comp":"17896441","content":"b5584809"},"/docs/integrations/serverless-stack-206":{"__comp":"17896441","content":"ace0032f"},"/docs/intro/contributing-e03":{"__comp":"17896441","content":"b83c886a"},"/docs/intro/early-interrupt-5ac":{"__comp":"17896441","content":"f795adf5"},"/docs/intro/getting-started-224":{"__comp":"17896441","content":"5afe45f2"},"/docs/intro/handling-errors-9da":{"__comp":"17896441","content":"cd47eedf"},"/docs/intro/history-b44":{"__comp":"17896441","content":"590578cb"},"/docs/intro/hooks-bb3":{"__comp":"17896441","content":"5e80d65e"},"/docs/intro/how-it-works-965":{"__comp":"17896441","content":"f9850e34"},"/docs/intro/influence-6be":{"__comp":"17896441","content":"a3787fd8"},"/docs/intro/release-cycle-f31":{"__comp":"17896441","content":"b5aee65c"},"/docs/intro/sponsoring-578":{"__comp":"17896441","content":"a7630442"},"/docs/intro/streamify-response-9ee":{"__comp":"17896441","content":"c21432a2"},"/docs/intro/testing-064":{"__comp":"17896441","content":"ea2a30f2"},"/docs/intro/typescript-3e8":{"__comp":"17896441","content":"5018e04c"},"/docs/intro/utilities-b1f":{"__comp":"17896441","content":"ec96ff11"},"/docs/middlewares/appconfig-ca4":{"__comp":"17896441","content":"7745d517"},"/docs/middlewares/cloudwatch-metrics-8bc":{"__comp":"17896441","content":"aecdbf7e"},"/docs/middlewares/do-not-wait-for-empty-event-loop-579":{"__comp":"17896441","content":"da0b5c8a"},"/docs/middlewares/dynamodb-8d2":{"__comp":"17896441","content":"1124057e"},"/docs/middlewares/error-logger-388":{"__comp":"17896441","content":"0976e874"},"/docs/middlewares/event-normalizer-6b6":{"__comp":"17896441","content":"19606b2d"},"/docs/middlewares/http-content-encoding-404":{"__comp":"17896441","content":"b6b85ed9"},"/docs/middlewares/http-content-negotiation-b8b":{"__comp":"17896441","content":"a8e9225e"},"/docs/middlewares/http-cors-d5f":{"__comp":"17896441","content":"4924cac4"},"/docs/middlewares/http-error-handler-044":{"__comp":"17896441","content":"436b299f"},"/docs/middlewares/http-event-normalizer-442":{"__comp":"17896441","content":"f0136a98"},"/docs/middlewares/http-header-normalizer-614":{"__comp":"17896441","content":"6c4d050a"},"/docs/middlewares/http-json-body-parser-6df":{"__comp":"17896441","content":"01c9695c"},"/docs/middlewares/http-multipart-body-parser-022":{"__comp":"17896441","content":"3db93d31"},"/docs/middlewares/http-partial-response-35c":{"__comp":"17896441","content":"c0ad98a5"},"/docs/middlewares/http-response-serializer-041":{"__comp":"17896441","content":"c2371ba7"},"/docs/middlewares/http-security-headers-410":{"__comp":"17896441","content":"dbc9373d"},"/docs/middlewares/http-urlencode-body-parser-041":{"__comp":"17896441","content":"59ac4306"},"/docs/middlewares/http-urlencode-path-parser-678":{"__comp":"17896441","content":"58ba397f"},"/docs/middlewares/input-output-logger-40b":{"__comp":"17896441","content":"24a252b9"},"/docs/middlewares/intro-e79":{"__comp":"17896441","content":"ad1e712e"},"/docs/middlewares/rds-signer-a53":{"__comp":"17896441","content":"3673b941"},"/docs/middlewares/s3-b3a":{"__comp":"17896441","content":"a17e0e42"},"/docs/middlewares/s3-object-response-5ed":{"__comp":"17896441","content":"1c88510b"},"/docs/middlewares/secrets-manager-381":{"__comp":"17896441","content":"0e90e864"},"/docs/middlewares/service-discovery-d35":{"__comp":"17896441","content":"41b3f383"},"/docs/middlewares/sqs-partial-batch-failure-4f2":{"__comp":"17896441","content":"6a1376e9"},"/docs/middlewares/ssm-42b":{"__comp":"17896441","content":"ff488875"},"/docs/middlewares/sts-522":{"__comp":"17896441","content":"b3edb814"},"/docs/middlewares/third-party-588":{"__comp":"17896441","content":"e0fb88b0"},"/docs/middlewares/validator-37c":{"__comp":"17896441","content":"d0953a14"},"/docs/middlewares/warmup-d75":{"__comp":"17896441","content":"3f569cdf"},"/docs/middlewares/ws-json-body-parser-8b5":{"__comp":"17896441","content":"1e42f3f3"},"/docs/middlewares/ws-response-702":{"__comp":"17896441","content":"2e6cdb22"},"/docs/routers/http-router-9b1":{"__comp":"17896441","content":"654635c7"},"/docs/routers/ws-router-354":{"__comp":"17896441","content":"f33bafb6"},"/docs/upgrade/0-1-95b":{"__comp":"17896441","content":"687b60fb"},"/docs/upgrade/1-2-667":{"__comp":"17896441","content":"7cb784f6"},"/docs/upgrade/2-3-b3c":{"__comp":"17896441","content":"4149078a"},"/docs/upgrade/3-4-809":{"__comp":"17896441","content":"5a01598e"},"/docs/writing-middlewares/configurable-middlewares-4e7":{"__comp":"17896441","content":"447662a1"},"/docs/writing-middlewares/inline-middlewares-d97":{"__comp":"17896441","content":"ce7003dc"},"/docs/writing-middlewares/internal-storage-cc1":{"__comp":"17896441","content":"d80baa5c"},"/docs/writing-middlewares/intro-b44":{"__comp":"17896441","content":"08eadb91"},"/docs/writing-middlewares/more-examples-fa2":{"__comp":"17896441","content":"a2b2d33a"},"/docs/writing-middlewares/timeouts-1a6":{"__comp":"17896441","content":"632f0854"},"/docs/writing-middlewares/with-typescript-863":{"__comp":"17896441","content":"49fe1afb"},"/-645":{"__comp":"c4f5d8e4","__context":{"plugin":"871ff594"},"config":"5e9f5e1a"}}')}},e=>{e.O(0,[532],(()=>{return t=7221,e(e.s=t);var t}));e.O()}]); \ No newline at end of file diff --git a/assets/js/main.be3ccd6b.js b/assets/js/main.be3ccd6b.js new file mode 100644 index 000000000..76e67ba7f --- /dev/null +++ b/assets/js/main.be3ccd6b.js @@ -0,0 +1,2 @@ +/*! For license information please see main.be3ccd6b.js.LICENSE.txt */ +(self.webpackChunkmiddy=self.webpackChunkmiddy||[]).push([[179],{723:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});n(7294);var r=n(8356),a=n.n(r),o=n(6887);const i={"00787874":[()=>n.e(8086).then(n.t.bind(n,9577,19)),"~docs/default/category-docs-tutorialsidebar-category-middy-intro-32a.json",9577],"01c9695c":[()=>Promise.all([n.e(532),n.e(3295)]).then(n.bind(n,2339)),"@site/docs/middlewares/http-json-body-parser.md",2339],"028754be":[()=>n.e(6238).then(n.bind(n,3568)),"@site/docs/events/sqs.md",3568],"0480b142":[()=>n.e(836).then(n.bind(n,8976)),"@site/docs/faq.md",8976],"08eadb91":[()=>n.e(1428).then(n.bind(n,7702)),"@site/docs/writing-middlewares/01-intro.md",7702],"08f83687":[()=>n.e(5409).then(n.bind(n,2423)),"@site/docs/events/code-commit.md",2423],"0976e874":[()=>Promise.all([n.e(532),n.e(4267)]).then(n.bind(n,8369)),"@site/docs/middlewares/error-logger.md",8369],"0ce61a91":[()=>n.e(6540).then(n.bind(n,8593)),"@site/docs/best-practices/05-bundling.md",8593],"0d245e6a":[()=>n.e(8481).then(n.bind(n,9081)),"@site/docs/events/kinesis-firehose.md",9081],"0e90e864":[()=>Promise.all([n.e(532),n.e(1469)]).then(n.bind(n,3048)),"@site/docs/middlewares/secrets-manager.md",3048],"1124057e":[()=>Promise.all([n.e(532),n.e(2308)]).then(n.bind(n,8625)),"@site/docs/middlewares/dynamodb.md",8625],"14eb3368":[()=>Promise.all([n.e(532),n.e(9817)]).then(n.bind(n,4228)),"@theme/DocCategoryGeneratedIndexPage",4228],"171930c3":[()=>n.e(2786).then(n.bind(n,3158)),"@site/docs/integrations/RDS.md",3158],17896441:[()=>Promise.all([n.e(532),n.e(9286),n.e(7908),n.e(7918)]).then(n.bind(n,230)),"@theme/DocItem",230],"18dc5a76":[()=>n.e(7566).then(n.bind(n,9307)),"@site/docs/events/api-gateway-http.md",9307],"19606b2d":[()=>Promise.all([n.e(532),n.e(1544)]).then(n.bind(n,6145)),"@site/docs/middlewares/event-normalizer.md",6145],"1c88510b":[()=>Promise.all([n.e(532),n.e(7858)]).then(n.bind(n,4328)),"@site/docs/middlewares/s3-object-response.md",4328],"1e42f3f3":[()=>n.e(8102).then(n.bind(n,1586)),"@site/docs/middlewares/ws-json-body-parser.md",1586],"1ea8ecd6":[()=>n.e(5341).then(n.bind(n,8683)),"@site/docs/events/iot.md",8683],"1f391b9e":[()=>Promise.all([n.e(532),n.e(9286),n.e(7908),n.e(3085)]).then(n.bind(n,4247)),"@theme/MDXPage",4247],"211396ae":[()=>n.e(3616).then(n.bind(n,394)),"@site/docs/events/cloud-watch-logs.md",394],"24a252b9":[()=>Promise.all([n.e(532),n.e(1098)]).then(n.bind(n,8500)),"@site/docs/middlewares/input-output-logger.md",8500],"28b74e92":[()=>n.e(3839).then(n.bind(n,7978)),"@site/docs/events/cloud-trail.md",7978],"2b234cfe":[()=>n.e(9158).then(n.bind(n,1910)),"@site/docs/events/secrets-manager.md",1910],"2e6cdb22":[()=>Promise.all([n.e(532),n.e(5774)]).then(n.bind(n,4919)),"@site/docs/middlewares/ws-response.md",4919],"2f4f2e7a":[()=>n.e(5222).then(n.bind(n,1950)),"@site/docs/events/alexa.md",1950],"340d0816":[()=>n.e(8729).then(n.bind(n,9571)),"@site/docs/events/mq.md",9571],"34ad80cb":[()=>n.e(4662).then(n.bind(n,9061)),"@site/docs/events/cloud-front.md",9061],"34ebece8":[()=>n.e(5853).then(n.bind(n,2900)),"@site/docs/events/workmail.md",2900],"3673b941":[()=>Promise.all([n.e(532),n.e(2344)]).then(n.bind(n,7017)),"@site/docs/middlewares/rds-signer.md",7017],"393be207":[()=>n.e(7414).then(n.bind(n,1181)),"@site/src/pages/markdown-page.md",1181],"3a74057e":[()=>n.e(517).then(n.bind(n,8740)),"@site/docs/integrations/pino.md",8740],"3db93d31":[()=>Promise.all([n.e(532),n.e(3631)]).then(n.bind(n,3252)),"@site/docs/middlewares/http-multipart-body-parser.md",3252],"3e0add53":[()=>n.e(4844).then(n.t.bind(n,3769,19)),"/home/runner/work/middy/middy/website/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json",3769],"3ea7551b":[()=>n.e(9868).then(n.t.bind(n,9207,19)),"~docs/default/category-docs-tutorialsidebar-category-best-practices-14d.json",9207],"3f569cdf":[()=>Promise.all([n.e(532),n.e(3775)]).then(n.bind(n,4775)),"@site/docs/middlewares/warmup.md",4775],"4149078a":[()=>n.e(4183).then(n.bind(n,3171)),"@site/docs/upgrade/2-3.md",3171],"41b3f383":[()=>Promise.all([n.e(532),n.e(479)]).then(n.bind(n,4379)),"@site/docs/middlewares/service-discovery.md",4379],"436b299f":[()=>Promise.all([n.e(532),n.e(5077)]).then(n.bind(n,8230)),"@site/docs/middlewares/http-error-handler.md",8230],"44063d41":[()=>n.e(5709).then(n.t.bind(n,1290,19)),"~docs/default/category-docs-tutorialsidebar-category-upgrade-a5e.json",1290],"447662a1":[()=>n.e(1768).then(n.bind(n,2912)),"@site/docs/writing-middlewares/02-configurable-middlewares.md",2912],"4924cac4":[()=>Promise.all([n.e(532),n.e(5270)]).then(n.bind(n,6535)),"@site/docs/middlewares/http-cors.md",6535],"49fe1afb":[()=>n.e(9076).then(n.bind(n,4451)),"@site/docs/writing-middlewares/07-with-typescript.md",4451],"4f2dd8bc":[()=>n.e(8792).then(n.t.bind(n,1720,19)),"~docs/default/category-docs-tutorialsidebar-category-integrations-b7d.json",1720],"4f3a9363":[()=>n.e(8852).then(n.bind(n,3238)),"@site/docs/events/documentdb.md",3238],"5018e04c":[()=>n.e(9862).then(n.bind(n,2258)),"@site/docs/intro/06-typescript.md",2258],"52912c74":[()=>n.e(7452).then(n.bind(n,949)),"@site/docs/events/event-bridge.md",949],"53f1e98a":[()=>n.e(2469).then(n.bind(n,3099)),"@site/docs/events/s3.md",3099],"54ed1cf2":[()=>n.e(6827).then(n.bind(n,5837)),"@site/docs/best-practices/07-profiling.md",5837],"54fc444e":[()=>n.e(1790).then(n.bind(n,737)),"@site/docs/best-practices/02-connection-reuse.md",737],"56ed1c64":[()=>n.e(4097).then(n.bind(n,8928)),"@site/docs/events/01-intro.md",8928],"58ba397f":[()=>Promise.all([n.e(532),n.e(1497)]).then(n.bind(n,7095)),"@site/docs/middlewares/http-urlencode-path-parser.md",7095],"590578cb":[()=>n.e(3181).then(n.bind(n,1115)),"@site/docs/intro/08-history.md",1115],"59ac4306":[()=>Promise.all([n.e(532),n.e(3151)]).then(n.bind(n,487)),"@site/docs/middlewares/http-urlencode-body-parser.md",487],"5a01598e":[()=>n.e(4297).then(n.bind(n,1627)),"@site/docs/upgrade/3-4.md",1627],"5afe45f2":[()=>Promise.all([n.e(532),n.e(5938)]).then(n.bind(n,770)),"@site/docs/intro/02-getting-started.md",770],"5e80d65e":[()=>n.e(1436).then(n.bind(n,9114)),"@site/docs/intro/07-hooks.md",9114],"5e95c892":[()=>n.e(9661).then(n.bind(n,1892)),"@theme/DocsRoot",1892],"5e9f5e1a":[()=>Promise.resolve().then(n.bind(n,6809)),"@generated/docusaurus.config",6809],"632f0854":[()=>n.e(9997).then(n.bind(n,5189)),"@site/docs/writing-middlewares/05-timeouts.md",5189],"646b055a":[()=>n.e(5686).then(n.bind(n,4468)),"@site/docs/events/s3-batch.md",4468],"654635c7":[()=>Promise.all([n.e(532),n.e(1338)]).then(n.bind(n,7803)),"@site/docs/routers/http-router.md",7803],"65ce35be":[()=>n.e(8002).then(n.bind(n,350)),"@site/docs/events/kafka-self-managed.md",350],"667584a0":[()=>n.e(2600).then(n.bind(n,7199)),"@site/docs/events/sns.md",7199],"68318e94":[()=>n.e(811).then(n.bind(n,4756)),"@site/docs/events/api-gateway-authorizer.md",4756],"687b60fb":[()=>n.e(7783).then(n.bind(n,1476)),"@site/docs/upgrade/0-1.md",1476],"6a1376e9":[()=>Promise.all([n.e(532),n.e(8644)]).then(n.bind(n,8550)),"@site/docs/middlewares/sqs-partial-batch-failure.md",8550],"6c4d050a":[()=>Promise.all([n.e(532),n.e(5512)]).then(n.bind(n,9794)),"@site/docs/middlewares/http-header-normalizer.md",9794],70761510:[()=>n.e(5024).then(n.bind(n,3455)),"@site/docs/best-practices/06-small-node-modules.md",3455],"7076eee1":[()=>n.e(481).then(n.bind(n,2865)),"@site/docs/events/application-load-balancer.md",2865],"71d5009c":[()=>n.e(2193).then(n.bind(n,1853)),"@site/docs/events/config.md",1853],73083085:[()=>n.e(8365).then(n.bind(n,3131)),"@site/docs/events/api-gateway-rest.md",3131],"7745d517":[()=>Promise.all([n.e(532),n.e(1702)]).then(n.bind(n,1391)),"@site/docs/middlewares/appconfig.md",1391],79674995:[()=>n.e(8200).then(n.bind(n,1934)),"@site/docs/events/cloud-formation.md",1934],"796ad5a5":[()=>n.e(6172).then(n.bind(n,5621)),"@site/docs/events/appsync.md",5621],"7cb784f6":[()=>n.e(711).then(n.bind(n,4122)),"@site/docs/upgrade/1-2.md",4122],"810a87d2":[()=>n.e(8455).then(n.t.bind(n,2472,19)),"~docs/default/category-docs-tutorialsidebar-category-writing-middlewares-c2b.json",2472],"871ff594":[()=>n.e(7359).then(n.t.bind(n,5745,19)),"/home/runner/work/middy/middy/website/.docusaurus/docusaurus-plugin-content-pages/default/plugin-route-context-module-100.json",5745],"89ce8835":[()=>n.e(1955).then(n.bind(n,3596)),"@site/docs/events/cognito.md",3596],"935f2afb":[()=>n.e(53).then(n.t.bind(n,1109,19)),"~docs/default/version-current-metadata-prop-751.json",1109],"949815f5":[()=>n.e(8394).then(n.bind(n,5707)),"@site/docs/events/kafka-managed-streaming.md",5707],"958c573d":[()=>n.e(8786).then(n.bind(n,5585)),"@site/docs/events/s3-object.md",5585],"9d43f09c":[()=>n.e(8591).then(n.bind(n,7663)),"@site/docs/events/ec2.md",7663],"9d560f77":[()=>n.e(310).then(n.bind(n,8618)),"@site/docs/events/dynamodb.md",8618],a0697f1b:[()=>n.e(5258).then(n.bind(n,957)),"@site/docs/events/vpc-lattice.md",957],a07e9812:[()=>n.e(2511).then(n.bind(n,6916)),"@site/docs/events/rds.md",6916],a17e0e42:[()=>Promise.all([n.e(532),n.e(2201)]).then(n.bind(n,5276)),"@site/docs/middlewares/s3.md",5276],a2b2d33a:[()=>n.e(8974).then(n.bind(n,9635)),"@site/docs/writing-middlewares/06-more-examples.md",9635],a3787fd8:[()=>n.e(9576).then(n.bind(n,8133)),"@site/docs/intro/08-influence.md",8133],a7630442:[()=>n.e(9502).then(n.bind(n,9878)),"@site/docs/intro/11-sponsoring.md",9878],a7bd4aaa:[()=>n.e(8518).then(n.bind(n,8564)),"@theme/DocVersionRoot",8564],a7c9f8b5:[()=>n.e(5898).then(n.bind(n,207)),"@site/docs/events/ses.md",207],a8e9225e:[()=>Promise.all([n.e(532),n.e(9319)]).then(n.bind(n,4579)),"@site/docs/middlewares/http-content-negotiation.md",4579],a94703ab:[()=>Promise.all([n.e(532),n.e(4368)]).then(n.bind(n,4867)),"@theme/DocRoot",4867],acb7d57c:[()=>n.e(1819).then(n.bind(n,7593)),"@site/docs/best-practices/01-intro.md",7593],ace0032f:[()=>n.e(2521).then(n.bind(n,2114)),"@site/docs/integrations/serverless-stack.md",2114],ad1e712e:[()=>n.e(9235).then(n.bind(n,9869)),"@site/docs/middlewares/00-intro.md",9869],aecdbf7e:[()=>Promise.all([n.e(532),n.e(1073)]).then(n.bind(n,9232)),"@site/docs/middlewares/cloudwatch-metrics.md",9232],afa23cb9:[()=>n.e(6161).then(n.t.bind(n,2982,19)),"~docs/default/category-docs-tutorialsidebar-category-middlewares-a97.json",2982],b3edb814:[()=>Promise.all([n.e(532),n.e(3786)]).then(n.bind(n,7963)),"@site/docs/middlewares/sts.md",7963],b5163cd3:[()=>n.e(4751).then(n.bind(n,9539)),"@site/docs/integrations/01-intro.md",9539],b5584809:[()=>n.e(2803).then(n.bind(n,8418)),"@site/docs/integrations/serverless-framework.md",8418],b5aee65c:[()=>n.e(4510).then(n.bind(n,8729)),"@site/docs/intro/09-release-cycle.md",8729],b6105e9b:[()=>n.e(8471).then(n.bind(n,530)),"@site/docs/events/code-pipeline.md",530],b6b85ed9:[()=>Promise.all([n.e(532),n.e(6476)]).then(n.bind(n,4670)),"@site/docs/middlewares/http-content-encoding.md",4670],b83c886a:[()=>n.e(8931).then(n.bind(n,5357)),"@site/docs/intro/10-contributing.md",5357],b9c75af0:[()=>n.e(4504).then(n.bind(n,582)),"@site/docs/events/kinesis-streams.md",582],bb2b8b33:[()=>n.e(9905).then(n.bind(n,1969)),"@site/docs/upgrade/4-5.md",1969],bff6c11b:[()=>n.e(4785).then(n.bind(n,4300)),"@site/docs/events/api-gateway-ws.md",4300],c0ad98a5:[()=>Promise.all([n.e(532),n.e(2932)]).then(n.bind(n,3705)),"@site/docs/middlewares/http-partial-response.md",3705],c1378803:[()=>Promise.all([n.e(532),n.e(7450)]).then(n.bind(n,1257)),"@site/docs/integrations/lambda-powertools.md",1257],c21432a2:[()=>n.e(1570).then(n.bind(n,1964)),"@site/docs/intro/06-streamify-response.md",1964],c2371ba7:[()=>Promise.all([n.e(532),n.e(7724)]).then(n.bind(n,3675)),"@site/docs/middlewares/http-response-serializer.md",3675],c4f5d8e4:[()=>Promise.all([n.e(532),n.e(9286),n.e(4195)]).then(n.bind(n,1658)),"@site/src/pages/index.js",1658],c4fefc0c:[()=>n.e(7812).then(n.bind(n,3784)),"@site/docs/best-practices/03-internal-context.md",3784],cb00b214:[()=>n.e(1721).then(n.t.bind(n,6105,19)),"~docs/default/category-docs-tutorialsidebar-category-aws-event-examples-51d.json",6105],cc16eb0f:[()=>n.e(5893).then(n.bind(n,9823)),"@site/docs/events/lex.md",9823],cd47eedf:[()=>n.e(4388).then(n.bind(n,8852)),"@site/docs/intro/05-handling-errors.md",8852],ce7003dc:[()=>n.e(9071).then(n.bind(n,1884)),"@site/docs/writing-middlewares/03-inline-middlewares.md",1884],d0953a14:[()=>Promise.all([n.e(532),n.e(4740)]).then(n.bind(n,217)),"@site/docs/middlewares/validator.md",217],d80baa5c:[()=>n.e(9647).then(n.bind(n,6592)),"@site/docs/writing-middlewares/04-internal-storage.md",6592],da0b5c8a:[()=>Promise.all([n.e(532),n.e(7796)]).then(n.bind(n,8029)),"@site/docs/middlewares/do-not-wait-for-empty-event-loop.md",8029],dbc9373d:[()=>Promise.all([n.e(532),n.e(9116)]).then(n.bind(n,1660)),"@site/docs/middlewares/http-security-headers.md",1660],e0fb88b0:[()=>n.e(4288).then(n.bind(n,4903)),"@site/docs/middlewares/third-party.md",4903],e1c77d88:[()=>n.e(6388).then(n.bind(n,3571)),"@site/docs/integrations/apollo-server.md",3571],e326eb4c:[()=>n.e(7677).then(n.t.bind(n,8203,19)),"~docs/default/category-docs-tutorialsidebar-category-routers-ed1.json",8203],ea2a30f2:[()=>n.e(527).then(n.bind(n,6831)),"@site/docs/intro/06-testing.md",6831],ec96ff11:[()=>n.e(7276).then(n.bind(n,1415)),"@site/docs/intro/08-utilities.md",1415],ecbeea21:[()=>n.e(9310).then(n.bind(n,6432)),"@site/docs/intro/01-intro.md",6432],f0136a98:[()=>Promise.all([n.e(532),n.e(1575)]).then(n.bind(n,3584)),"@site/docs/middlewares/http-event-normalizer.md",3584],f0886e87:[()=>n.e(3955).then(n.bind(n,4462)),"@site/docs/events/function-url.md",4462],f20815ad:[()=>n.e(4760).then(n.bind(n,6433)),"@site/docs/events/connect.md",6433],f33bafb6:[()=>n.e(8185).then(n.bind(n,2737)),"@site/docs/routers/ws-router.md",2737],f795adf5:[()=>n.e(8841).then(n.bind(n,5196)),"@site/docs/intro/04-early-interrupt.md",5196],f9850e34:[()=>n.e(6177).then(n.bind(n,9983)),"@site/docs/intro/03-how-it-works.md",9983],faf674c6:[()=>n.e(4962).then(n.bind(n,2342)),"@site/docs/events/iot-events.md",2342],ff488875:[()=>Promise.all([n.e(532),n.e(1531)]).then(n.bind(n,4974)),"@site/docs/middlewares/ssm.md",4974]};var s=n(5893);function l(e){let{error:t,retry:n,pastDelay:r}=e;return t?(0,s.jsxs)("div",{style:{textAlign:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"},children:[(0,s.jsx)("p",{children:String(t)}),(0,s.jsx)("div",{children:(0,s.jsx)("button",{type:"button",onClick:n,children:"Retry"})})]}):r?(0,s.jsx)("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"},children:(0,s.jsx)("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb",children:(0,s.jsxs)("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2",children:[(0,s.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,s.jsx)("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,s.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,s.jsx)("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,s.jsx)("circle",{cx:"22",cy:"22",r:"8",children:(0,s.jsx)("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"})})]})})}):null}var c=n(9670),u=n(226);function d(e,t){if("*"===e)return a()({loading:l,loader:()=>n.e(4204).then(n.bind(n,4204)),modules:["@theme/NotFound"],webpack:()=>[4204],render(e,t){const n=e.default;return(0,s.jsx)(u.z,{value:{plugin:{name:"native",id:"default"}},children:(0,s.jsx)(n,{...t})})}});const r=o[`${e}-${t}`],d={},p=[],f=[],m=(0,c.Z)(r);return Object.entries(m).forEach((e=>{let[t,n]=e;const r=i[n];r&&(d[t]=r[0],p.push(r[1]),f.push(r[2]))})),a().Map({loading:l,loader:d,modules:p,webpack:()=>f,render(t,n){const a=JSON.parse(JSON.stringify(r));Object.entries(t).forEach((t=>{let[n,r]=t;const o=r.default;if(!o)throw new Error(`The page component at ${e} doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.`);"object"!=typeof o&&"function"!=typeof o||Object.keys(r).filter((e=>"default"!==e)).forEach((e=>{o[e]=r[e]}));let i=a;const s=n.split(".");s.slice(0,-1).forEach((e=>{i=i[e]})),i[s[s.length-1]]=o}));const o=a.__comp;delete a.__comp;const i=a.__context;return delete a.__context,(0,s.jsx)(u.z,{value:i,children:(0,s.jsx)(o,{...a,...n})})}})}const p=[{path:"/markdown-page",component:d("/markdown-page","08c"),exact:!0},{path:"/docs",component:d("/docs","7d9"),routes:[{path:"/docs",component:d("/docs","2ba"),routes:[{path:"/docs",component:d("/docs","bfd"),routes:[{path:"/docs/",component:d("/docs/","a61"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/best-practices/bundling",component:d("/docs/best-practices/bundling","ec3"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/best-practices/connection-reuse",component:d("/docs/best-practices/connection-reuse","e9a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/best-practices/internal-context",component:d("/docs/best-practices/internal-context","fb7"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/best-practices/intro",component:d("/docs/best-practices/intro","816"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/best-practices/profiling",component:d("/docs/best-practices/profiling","6cf"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/best-practices/small-node-modules",component:d("/docs/best-practices/small-node-modules","385"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/category/aws-event-examples",component:d("/docs/category/aws-event-examples","116"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/category/best-practices",component:d("/docs/category/best-practices","320"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/category/integrations",component:d("/docs/category/integrations","3d4"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/category/intro-to-middy",component:d("/docs/category/intro-to-middy","a3d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/category/middlewares",component:d("/docs/category/middlewares","65f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/category/routers",component:d("/docs/category/routers","8cd"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/category/upgrade",component:d("/docs/category/upgrade","558"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/category/writing-middlewares",component:d("/docs/category/writing-middlewares","c76"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/events/alexa",component:d("/docs/events/alexa","561"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/events/api-gateway-authorizer",component:d("/docs/events/api-gateway-authorizer","b1d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/events/api-gateway-http",component:d("/docs/events/api-gateway-http","dc8"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/events/api-gateway-rest",component:d("/docs/events/api-gateway-rest","1d4"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/events/api-gateway-ws",component:d("/docs/events/api-gateway-ws","ddb"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/events/application-load-balancer",component:d("/docs/events/application-load-balancer","344"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/events/appsync",component:d("/docs/events/appsync","c0f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/events/cloud-formation",component:d("/docs/events/cloud-formation","134"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/events/cloud-front",component:d("/docs/events/cloud-front","2e5"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/events/cloud-trail",component:d("/docs/events/cloud-trail","ec9"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/events/cloud-watch-logs",component:d("/docs/events/cloud-watch-logs","21e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/events/code-commit",component:d("/docs/events/code-commit","676"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/events/code-pipeline",component:d("/docs/events/code-pipeline","785"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/events/cognito",component:d("/docs/events/cognito","207"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/events/config",component:d("/docs/events/config","bfe"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/events/connect",component:d("/docs/events/connect","f4d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/events/documentdb",component:d("/docs/events/documentdb","7a2"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/events/dynamodb",component:d("/docs/events/dynamodb","53a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/events/ec2",component:d("/docs/events/ec2","94f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/events/event-bridge",component:d("/docs/events/event-bridge","3bf"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/events/function-url",component:d("/docs/events/function-url","b85"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/events/intro",component:d("/docs/events/intro","e69"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/events/iot",component:d("/docs/events/iot","cea"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/events/iot-events",component:d("/docs/events/iot-events","6c2"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/events/kafka-managed-streaming",component:d("/docs/events/kafka-managed-streaming","bbd"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/events/kafka-self-managed",component:d("/docs/events/kafka-self-managed","d9e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/events/kinesis-firehose",component:d("/docs/events/kinesis-firehose","253"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/events/kinesis-streams",component:d("/docs/events/kinesis-streams","9aa"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/events/lex",component:d("/docs/events/lex","af4"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/events/mq",component:d("/docs/events/mq","5eb"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/events/rds",component:d("/docs/events/rds","3c4"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/events/s3",component:d("/docs/events/s3","05f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/events/s3-batch",component:d("/docs/events/s3-batch","e3b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/events/s3-object",component:d("/docs/events/s3-object","d5a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/events/secrets-manager",component:d("/docs/events/secrets-manager","ea6"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/events/ses",component:d("/docs/events/ses","22b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/events/sns",component:d("/docs/events/sns","af6"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/events/sqs",component:d("/docs/events/sqs","2ce"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/events/vpc-lattice",component:d("/docs/events/vpc-lattice","ec4"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/events/workmail",component:d("/docs/events/workmail","541"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/faq",component:d("/docs/faq","e79"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/integrations/apollo-server",component:d("/docs/integrations/apollo-server","d7d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/integrations/intro",component:d("/docs/integrations/intro","0d2"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/integrations/lambda-powertools",component:d("/docs/integrations/lambda-powertools","57c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/integrations/pino",component:d("/docs/integrations/pino","2b6"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/integrations/RDS",component:d("/docs/integrations/RDS","c6b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/integrations/serverless-framework",component:d("/docs/integrations/serverless-framework","95a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/integrations/serverless-stack",component:d("/docs/integrations/serverless-stack","206"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/intro/contributing",component:d("/docs/intro/contributing","e03"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/intro/early-interrupt",component:d("/docs/intro/early-interrupt","5ac"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/intro/getting-started",component:d("/docs/intro/getting-started","224"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/intro/handling-errors",component:d("/docs/intro/handling-errors","9da"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/intro/history",component:d("/docs/intro/history","b44"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/intro/hooks",component:d("/docs/intro/hooks","bb3"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/intro/how-it-works",component:d("/docs/intro/how-it-works","965"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/intro/influence",component:d("/docs/intro/influence","6be"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/intro/release-cycle",component:d("/docs/intro/release-cycle","f31"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/intro/sponsoring",component:d("/docs/intro/sponsoring","578"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/intro/streamify-response",component:d("/docs/intro/streamify-response","9ee"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/intro/testing",component:d("/docs/intro/testing","064"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/intro/typescript",component:d("/docs/intro/typescript","3e8"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/intro/utilities",component:d("/docs/intro/utilities","b1f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/middlewares/appconfig",component:d("/docs/middlewares/appconfig","ca4"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/middlewares/cloudwatch-metrics",component:d("/docs/middlewares/cloudwatch-metrics","8bc"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/middlewares/do-not-wait-for-empty-event-loop",component:d("/docs/middlewares/do-not-wait-for-empty-event-loop","579"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/middlewares/dynamodb",component:d("/docs/middlewares/dynamodb","8d2"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/middlewares/error-logger",component:d("/docs/middlewares/error-logger","388"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/middlewares/event-normalizer",component:d("/docs/middlewares/event-normalizer","6b6"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/middlewares/http-content-encoding",component:d("/docs/middlewares/http-content-encoding","404"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/middlewares/http-content-negotiation",component:d("/docs/middlewares/http-content-negotiation","b8b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/middlewares/http-cors",component:d("/docs/middlewares/http-cors","d5f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/middlewares/http-error-handler",component:d("/docs/middlewares/http-error-handler","044"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/middlewares/http-event-normalizer",component:d("/docs/middlewares/http-event-normalizer","442"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/middlewares/http-header-normalizer",component:d("/docs/middlewares/http-header-normalizer","614"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/middlewares/http-json-body-parser",component:d("/docs/middlewares/http-json-body-parser","6df"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/middlewares/http-multipart-body-parser",component:d("/docs/middlewares/http-multipart-body-parser","022"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/middlewares/http-partial-response",component:d("/docs/middlewares/http-partial-response","35c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/middlewares/http-response-serializer",component:d("/docs/middlewares/http-response-serializer","041"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/middlewares/http-security-headers",component:d("/docs/middlewares/http-security-headers","410"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/middlewares/http-urlencode-body-parser",component:d("/docs/middlewares/http-urlencode-body-parser","041"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/middlewares/http-urlencode-path-parser",component:d("/docs/middlewares/http-urlencode-path-parser","678"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/middlewares/input-output-logger",component:d("/docs/middlewares/input-output-logger","40b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/middlewares/intro",component:d("/docs/middlewares/intro","e79"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/middlewares/rds-signer",component:d("/docs/middlewares/rds-signer","a53"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/middlewares/s3",component:d("/docs/middlewares/s3","b3a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/middlewares/s3-object-response",component:d("/docs/middlewares/s3-object-response","5ed"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/middlewares/secrets-manager",component:d("/docs/middlewares/secrets-manager","381"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/middlewares/service-discovery",component:d("/docs/middlewares/service-discovery","d35"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/middlewares/sqs-partial-batch-failure",component:d("/docs/middlewares/sqs-partial-batch-failure","4f2"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/middlewares/ssm",component:d("/docs/middlewares/ssm","42b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/middlewares/sts",component:d("/docs/middlewares/sts","522"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/middlewares/third-party",component:d("/docs/middlewares/third-party","588"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/middlewares/validator",component:d("/docs/middlewares/validator","37c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/middlewares/warmup",component:d("/docs/middlewares/warmup","d75"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/middlewares/ws-json-body-parser",component:d("/docs/middlewares/ws-json-body-parser","8b5"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/middlewares/ws-response",component:d("/docs/middlewares/ws-response","702"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/routers/http-router",component:d("/docs/routers/http-router","9b1"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/routers/ws-router",component:d("/docs/routers/ws-router","354"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/upgrade/0-1",component:d("/docs/upgrade/0-1","95b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/upgrade/1-2",component:d("/docs/upgrade/1-2","667"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/upgrade/2-3",component:d("/docs/upgrade/2-3","b3c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/upgrade/3-4",component:d("/docs/upgrade/3-4","809"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/upgrade/4-5",component:d("/docs/upgrade/4-5","9a2"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/writing-middlewares/configurable-middlewares",component:d("/docs/writing-middlewares/configurable-middlewares","4e7"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/writing-middlewares/inline-middlewares",component:d("/docs/writing-middlewares/inline-middlewares","d97"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/writing-middlewares/internal-storage",component:d("/docs/writing-middlewares/internal-storage","cc1"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/writing-middlewares/intro",component:d("/docs/writing-middlewares/intro","b44"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/writing-middlewares/more-examples",component:d("/docs/writing-middlewares/more-examples","fa2"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/writing-middlewares/timeouts",component:d("/docs/writing-middlewares/timeouts","1a6"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/writing-middlewares/with-typescript",component:d("/docs/writing-middlewares/with-typescript","863"),exact:!0,sidebar:"tutorialSidebar"}]}]}]},{path:"/",component:d("/","645"),exact:!0},{path:"*",component:d("*")}]},8934:(e,t,n)=>{"use strict";n.d(t,{_:()=>o,t:()=>i});var r=n(7294),a=n(5893);const o=r.createContext(!1);function i(e){let{children:t}=e;const[n,i]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{i(!0)}),[]),(0,a.jsx)(o.Provider,{value:n,children:t})}},7221:(e,t,n)=>{"use strict";var r=n(7294),a=n(745),o=n(3727),i=n(405),s=n(412);const l=[n(2497),n(3310),n(8320),n(2295)];var c=n(723),u=n(6550),d=n(8790),p=n(5893);function f(e){let{children:t}=e;return(0,p.jsx)(p.Fragment,{children:t})}var m=n(5742),h=n(2263),g=n(4996),b=n(6668),y=n(1944),v=n(4711),w=n(9727),k=n(3320),x=n(8780),S=n(197);function E(){const{i18n:{currentLocale:e,defaultLocale:t,localeConfigs:n}}=(0,h.Z)(),r=(0,v.l)(),a=n[e].htmlLang,o=e=>e.replace("-","_");return(0,p.jsxs)(m.Z,{children:[Object.entries(n).map((e=>{let[t,{htmlLang:n}]=e;return(0,p.jsx)("link",{rel:"alternate",href:r.createUrl({locale:t,fullyQualified:!0}),hrefLang:n},t)})),(0,p.jsx)("link",{rel:"alternate",href:r.createUrl({locale:t,fullyQualified:!0}),hrefLang:"x-default"}),(0,p.jsx)("meta",{property:"og:locale",content:o(a)}),Object.values(n).filter((e=>a!==e.htmlLang)).map((e=>(0,p.jsx)("meta",{property:"og:locale:alternate",content:o(e.htmlLang)},`meta-og-${e.htmlLang}`)))]})}function _(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,h.Z)(),r=function(){const{siteConfig:{url:e,baseUrl:t,trailingSlash:n}}=(0,h.Z)(),{pathname:r}=(0,u.TH)();return e+(0,x.applyTrailingSlash)((0,g.Z)(r),{trailingSlash:n,baseUrl:t})}(),a=t?`${n}${t}`:r;return(0,p.jsxs)(m.Z,{children:[(0,p.jsx)("meta",{property:"og:url",content:a}),(0,p.jsx)("link",{rel:"canonical",href:a})]})}function C(){const{i18n:{currentLocale:e}}=(0,h.Z)(),{metadata:t,image:n}=(0,b.L)();return(0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)(m.Z,{children:[(0,p.jsx)("meta",{name:"twitter:card",content:"summary_large_image"}),(0,p.jsx)("body",{className:w.h})]}),n&&(0,p.jsx)(y.d,{image:n}),(0,p.jsx)(_,{}),(0,p.jsx)(E,{}),(0,p.jsx)(S.Z,{tag:k.HX,locale:e}),(0,p.jsx)(m.Z,{children:t.map(((e,t)=>(0,p.jsx)("meta",{...e},t)))})]})}const T=new Map;function j(e){if(T.has(e.pathname))return{...e,pathname:T.get(e.pathname)};if((0,d.f)(c.Z,e.pathname).some((e=>{let{route:t}=e;return!0===t.exact})))return T.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return T.set(e.pathname,t),{...e,pathname:t}}var N=n(8934),R=n(8940),A=n(469);function L(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];const a=l.map((t=>{const r=t.default?.[e]??t[e];return r?.(...n)}));return()=>a.forEach((e=>e?.()))}const P=function(e){let{children:t,location:n,previousLocation:r}=e;return(0,A.Z)((()=>{r!==n&&(!function(e){let{location:t,previousLocation:n}=e;if(!n)return;const r=t.pathname===n.pathname,a=t.hash===n.hash,o=t.search===n.search;if(r&&a&&!o)return;const{hash:i}=t;if(i){const e=decodeURIComponent(i.substring(1)),t=document.getElementById(e);t?.scrollIntoView()}else window.scrollTo(0,0)}({location:n,previousLocation:r}),L("onRouteDidUpdate",{previousLocation:r,location:n}))}),[r,n]),t};function O(e){const t=Array.from(new Set([e,decodeURI(e)])).map((e=>(0,d.f)(c.Z,e))).flat();return Promise.all(t.map((e=>e.route.component.preload?.())))}class I extends r.Component{previousLocation;routeUpdateCleanupCb;constructor(e){super(e),this.previousLocation=null,this.routeUpdateCleanupCb=s.Z.canUseDOM?L("onRouteUpdate",{previousLocation:null,location:this.props.location}):()=>{},this.state={nextRouteHasLoaded:!0}}shouldComponentUpdate(e,t){if(e.location===this.props.location)return t.nextRouteHasLoaded;const n=e.location;return this.previousLocation=this.props.location,this.setState({nextRouteHasLoaded:!1}),this.routeUpdateCleanupCb=L("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),O(n.pathname).then((()=>{this.routeUpdateCleanupCb(),this.setState({nextRouteHasLoaded:!0})})).catch((e=>{console.warn(e),window.location.reload()})),!1}render(){const{children:e,location:t}=this.props;return(0,p.jsx)(P,{previousLocation:this.previousLocation,location:t,children:(0,p.jsx)(u.AW,{location:t,render:()=>e})})}}const D=I,M="__docusaurus-base-url-issue-banner-container",F="__docusaurus-base-url-issue-banner",z="__docusaurus-base-url-issue-banner-suggestion-container";function B(e){return`\ndocument.addEventListener('DOMContentLoaded', function maybeInsertBanner() {\n var shouldInsert = typeof window['docusaurus'] === 'undefined';\n shouldInsert && insertBanner();\n});\n\nfunction insertBanner() {\n var bannerContainer = document.createElement('div');\n bannerContainer.id = '${M}';\n var bannerHtml = ${JSON.stringify(function(e){return`\n<div id="${F}" style="border: thick solid red; background-color: rgb(255, 230, 179); margin: 20px; padding: 20px; font-size: 20px;">\n <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p>\n <p>A very common reason is a wrong site <a href="https://docusaurus.io/docs/docusaurus.config.js/#baseUrl" style="font-weight: bold;">baseUrl configuration</a>.</p>\n <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">${e}</span> ${"/"===e?" (default value)":""}</p>\n <p>We suggest trying baseUrl = <span id="${z}" style="font-weight: bold; color: green;"></span></p>\n</div>\n`}(e)).replace(/</g,"\\<")};\n bannerContainer.innerHTML = bannerHtml;\n document.body.prepend(bannerContainer);\n var suggestionContainer = document.getElementById('${z}');\n var actualHomePagePath = window.location.pathname;\n var suggestedBaseUrl = actualHomePagePath.substr(-1) === '/'\n ? actualHomePagePath\n : actualHomePagePath + '/';\n suggestionContainer.innerHTML = suggestedBaseUrl;\n}\n`}function $(){const{siteConfig:{baseUrl:e}}=(0,h.Z)();return(0,p.jsx)(p.Fragment,{children:!s.Z.canUseDOM&&(0,p.jsx)(m.Z,{children:(0,p.jsx)("script",{children:B(e)})})})}function U(){const{siteConfig:{baseUrl:e,baseUrlIssueBanner:t}}=(0,h.Z)(),{pathname:n}=(0,u.TH)();return t&&n===e?(0,p.jsx)($,{}):null}function q(){const{siteConfig:{favicon:e,title:t,noIndex:n},i18n:{currentLocale:r,localeConfigs:a}}=(0,h.Z)(),o=(0,g.Z)(e),{htmlLang:i,direction:s}=a[r];return(0,p.jsxs)(m.Z,{children:[(0,p.jsx)("html",{lang:i,dir:s}),(0,p.jsx)("title",{children:t}),(0,p.jsx)("meta",{property:"og:title",content:t}),(0,p.jsx)("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),n&&(0,p.jsx)("meta",{name:"robots",content:"noindex, nofollow"}),e&&(0,p.jsx)("link",{rel:"icon",href:o})]})}var H=n(4763),Z=n(2389);function G(){const e=(0,Z.Z)();return(0,p.jsx)(m.Z,{children:(0,p.jsx)("html",{"data-has-hydrated":e})})}function W(){const e=(0,d.H)(c.Z),t=(0,u.TH)();return(0,p.jsx)(H.Z,{children:(0,p.jsx)(R.M,{children:(0,p.jsxs)(N.t,{children:[(0,p.jsxs)(f,{children:[(0,p.jsx)(q,{}),(0,p.jsx)(C,{}),(0,p.jsx)(U,{}),(0,p.jsx)(D,{location:j(t),children:e})]}),(0,p.jsx)(G,{})]})})})}var V=n(6887);const Q=function(e){try{return document.createElement("link").relList.supports(e)}catch{return!1}}("prefetch")?function(e){return new Promise(((t,n)=>{if("undefined"==typeof document)return void n();const r=document.createElement("link");r.setAttribute("rel","prefetch"),r.setAttribute("href",e),r.onload=()=>t(),r.onerror=()=>n();const a=document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode;a?.appendChild(r)}))}:function(e){return new Promise(((t,n)=>{const r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=()=>{200===r.status?t():n()},r.send(null)}))};var Y=n(9670);const K=new Set,X=new Set,J=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,ee={prefetch(e){if(!(e=>!J()&&!X.has(e)&&!K.has(e))(e))return!1;K.add(e);const t=(0,d.f)(c.Z,e).flatMap((e=>{return t=e.route.path,Object.entries(V).filter((e=>{let[n]=e;return n.replace(/-[^-]+$/,"")===t})).flatMap((e=>{let[,t]=e;return Object.values((0,Y.Z)(t))}));var t}));return Promise.all(t.map((e=>{const t=n.gca(e);return t&&!t.includes("undefined")?Q(t).catch((()=>{})):Promise.resolve()})))},preload:e=>!!(e=>!J()&&!X.has(e))(e)&&(X.add(e),O(e))},te=Object.freeze(ee),ne=Boolean(!0);if(s.Z.canUseDOM){window.docusaurus=te;const e=document.getElementById("__docusaurus"),t=(0,p.jsx)(i.B6,{children:(0,p.jsx)(o.VK,{children:(0,p.jsx)(W,{})})}),n=(e,t)=>{console.error("Docusaurus React Root onRecoverableError:",e,t)},s=()=>{if(ne)r.startTransition((()=>{a.hydrateRoot(e,t,{onRecoverableError:n})}));else{const o=a.createRoot(e,{onRecoverableError:n});r.startTransition((()=>{o.render(t)}))}};O(window.location.pathname).then(s)}},8940:(e,t,n)=>{"use strict";n.d(t,{_:()=>d,M:()=>p});var r=n(7294),a=n(6809);const o=JSON.parse('{"docusaurus-lunr-search":{"default":{"fileNames":{"searchDoc":"search-doc-1700079117944.json","lunrIndex":"lunr-index-1700079117944.json"}}},"docusaurus-plugin-content-docs":{"default":{"path":"/docs","versions":[{"name":"current","label":"Next","isLast":true,"path":"/docs","mainDocId":"intro/intro","docs":[{"id":"best-practices/bundling","path":"/docs/best-practices/bundling","sidebar":"tutorialSidebar"},{"id":"best-practices/connection-reuse","path":"/docs/best-practices/connection-reuse","sidebar":"tutorialSidebar"},{"id":"best-practices/internal-context","path":"/docs/best-practices/internal-context","sidebar":"tutorialSidebar"},{"id":"best-practices/intro","path":"/docs/best-practices/intro","sidebar":"tutorialSidebar"},{"id":"best-practices/profiling","path":"/docs/best-practices/profiling","sidebar":"tutorialSidebar"},{"id":"best-practices/small-node-modules","path":"/docs/best-practices/small-node-modules","sidebar":"tutorialSidebar"},{"id":"events/alexa","path":"/docs/events/alexa","sidebar":"tutorialSidebar"},{"id":"events/api-gateway-authorizer","path":"/docs/events/api-gateway-authorizer","sidebar":"tutorialSidebar"},{"id":"events/api-gateway-http","path":"/docs/events/api-gateway-http","sidebar":"tutorialSidebar"},{"id":"events/api-gateway-rest","path":"/docs/events/api-gateway-rest","sidebar":"tutorialSidebar"},{"id":"events/api-gateway-ws","path":"/docs/events/api-gateway-ws","sidebar":"tutorialSidebar"},{"id":"events/application-load-balancer","path":"/docs/events/application-load-balancer","sidebar":"tutorialSidebar"},{"id":"events/appsync","path":"/docs/events/appsync","sidebar":"tutorialSidebar"},{"id":"events/cloud-formation","path":"/docs/events/cloud-formation","sidebar":"tutorialSidebar"},{"id":"events/cloud-front","path":"/docs/events/cloud-front","sidebar":"tutorialSidebar"},{"id":"events/cloud-trail","path":"/docs/events/cloud-trail","sidebar":"tutorialSidebar"},{"id":"events/cloud-watch-logs","path":"/docs/events/cloud-watch-logs","sidebar":"tutorialSidebar"},{"id":"events/code-commit","path":"/docs/events/code-commit","sidebar":"tutorialSidebar"},{"id":"events/code-pipeline","path":"/docs/events/code-pipeline","sidebar":"tutorialSidebar"},{"id":"events/cognito","path":"/docs/events/cognito","sidebar":"tutorialSidebar"},{"id":"events/config","path":"/docs/events/config","sidebar":"tutorialSidebar"},{"id":"events/connect","path":"/docs/events/connect","sidebar":"tutorialSidebar"},{"id":"events/documentdb","path":"/docs/events/documentdb","sidebar":"tutorialSidebar"},{"id":"events/dynamodb","path":"/docs/events/dynamodb","sidebar":"tutorialSidebar"},{"id":"events/ec2","path":"/docs/events/ec2","sidebar":"tutorialSidebar"},{"id":"events/event-bridge","path":"/docs/events/event-bridge","sidebar":"tutorialSidebar"},{"id":"events/function-url","path":"/docs/events/function-url","sidebar":"tutorialSidebar"},{"id":"events/intro","path":"/docs/events/intro","sidebar":"tutorialSidebar"},{"id":"events/iot","path":"/docs/events/iot","sidebar":"tutorialSidebar"},{"id":"events/iot-events","path":"/docs/events/iot-events","sidebar":"tutorialSidebar"},{"id":"events/kafka-managed-streaming","path":"/docs/events/kafka-managed-streaming","sidebar":"tutorialSidebar"},{"id":"events/kafka-self-managed","path":"/docs/events/kafka-self-managed","sidebar":"tutorialSidebar"},{"id":"events/kinesis-firehose","path":"/docs/events/kinesis-firehose","sidebar":"tutorialSidebar"},{"id":"events/kinesis-streams","path":"/docs/events/kinesis-streams","sidebar":"tutorialSidebar"},{"id":"events/lex","path":"/docs/events/lex","sidebar":"tutorialSidebar"},{"id":"events/mq","path":"/docs/events/mq","sidebar":"tutorialSidebar"},{"id":"events/rds","path":"/docs/events/rds","sidebar":"tutorialSidebar"},{"id":"events/s3","path":"/docs/events/s3","sidebar":"tutorialSidebar"},{"id":"events/s3-batch","path":"/docs/events/s3-batch","sidebar":"tutorialSidebar"},{"id":"events/s3-object","path":"/docs/events/s3-object","sidebar":"tutorialSidebar"},{"id":"events/secrets-manager","path":"/docs/events/secrets-manager","sidebar":"tutorialSidebar"},{"id":"events/ses","path":"/docs/events/ses","sidebar":"tutorialSidebar"},{"id":"events/sns","path":"/docs/events/sns","sidebar":"tutorialSidebar"},{"id":"events/sqs","path":"/docs/events/sqs","sidebar":"tutorialSidebar"},{"id":"events/vpc-lattice","path":"/docs/events/vpc-lattice","sidebar":"tutorialSidebar"},{"id":"events/workmail","path":"/docs/events/workmail","sidebar":"tutorialSidebar"},{"id":"faq","path":"/docs/faq","sidebar":"tutorialSidebar"},{"id":"integrations/apollo-server","path":"/docs/integrations/apollo-server","sidebar":"tutorialSidebar"},{"id":"integrations/intro","path":"/docs/integrations/intro","sidebar":"tutorialSidebar"},{"id":"integrations/lambda-powertools","path":"/docs/integrations/lambda-powertools","sidebar":"tutorialSidebar"},{"id":"integrations/pino","path":"/docs/integrations/pino","sidebar":"tutorialSidebar"},{"id":"integrations/RDS","path":"/docs/integrations/RDS","sidebar":"tutorialSidebar"},{"id":"integrations/serverless-framework","path":"/docs/integrations/serverless-framework","sidebar":"tutorialSidebar"},{"id":"integrations/serverless-stack","path":"/docs/integrations/serverless-stack","sidebar":"tutorialSidebar"},{"id":"intro/contributing","path":"/docs/intro/contributing","sidebar":"tutorialSidebar"},{"id":"intro/early-interrupt","path":"/docs/intro/early-interrupt","sidebar":"tutorialSidebar"},{"id":"intro/getting-started","path":"/docs/intro/getting-started","sidebar":"tutorialSidebar"},{"id":"intro/handling-errors","path":"/docs/intro/handling-errors","sidebar":"tutorialSidebar"},{"id":"intro/history","path":"/docs/intro/history","sidebar":"tutorialSidebar"},{"id":"intro/hooks","path":"/docs/intro/hooks","sidebar":"tutorialSidebar"},{"id":"intro/how-it-works","path":"/docs/intro/how-it-works","sidebar":"tutorialSidebar"},{"id":"intro/influence","path":"/docs/intro/influence","sidebar":"tutorialSidebar"},{"id":"intro/intro","path":"/docs/","sidebar":"tutorialSidebar"},{"id":"intro/release-cycle","path":"/docs/intro/release-cycle","sidebar":"tutorialSidebar"},{"id":"intro/sponsoring","path":"/docs/intro/sponsoring","sidebar":"tutorialSidebar"},{"id":"intro/streamify-response","path":"/docs/intro/streamify-response","sidebar":"tutorialSidebar"},{"id":"intro/testing","path":"/docs/intro/testing","sidebar":"tutorialSidebar"},{"id":"intro/typescript","path":"/docs/intro/typescript","sidebar":"tutorialSidebar"},{"id":"intro/utilities","path":"/docs/intro/utilities","sidebar":"tutorialSidebar"},{"id":"middlewares/appconfig","path":"/docs/middlewares/appconfig","sidebar":"tutorialSidebar"},{"id":"middlewares/cloudwatch-metrics","path":"/docs/middlewares/cloudwatch-metrics","sidebar":"tutorialSidebar"},{"id":"middlewares/do-not-wait-for-empty-event-loop","path":"/docs/middlewares/do-not-wait-for-empty-event-loop","sidebar":"tutorialSidebar"},{"id":"middlewares/dynamodb","path":"/docs/middlewares/dynamodb","sidebar":"tutorialSidebar"},{"id":"middlewares/error-logger","path":"/docs/middlewares/error-logger","sidebar":"tutorialSidebar"},{"id":"middlewares/event-normalizer","path":"/docs/middlewares/event-normalizer","sidebar":"tutorialSidebar"},{"id":"middlewares/http-content-encoding","path":"/docs/middlewares/http-content-encoding","sidebar":"tutorialSidebar"},{"id":"middlewares/http-content-negotiation","path":"/docs/middlewares/http-content-negotiation","sidebar":"tutorialSidebar"},{"id":"middlewares/http-cors","path":"/docs/middlewares/http-cors","sidebar":"tutorialSidebar"},{"id":"middlewares/http-error-handler","path":"/docs/middlewares/http-error-handler","sidebar":"tutorialSidebar"},{"id":"middlewares/http-event-normalizer","path":"/docs/middlewares/http-event-normalizer","sidebar":"tutorialSidebar"},{"id":"middlewares/http-header-normalizer","path":"/docs/middlewares/http-header-normalizer","sidebar":"tutorialSidebar"},{"id":"middlewares/http-json-body-parser","path":"/docs/middlewares/http-json-body-parser","sidebar":"tutorialSidebar"},{"id":"middlewares/http-multipart-body-parser","path":"/docs/middlewares/http-multipart-body-parser","sidebar":"tutorialSidebar"},{"id":"middlewares/http-partial-response","path":"/docs/middlewares/http-partial-response","sidebar":"tutorialSidebar"},{"id":"middlewares/http-response-serializer","path":"/docs/middlewares/http-response-serializer","sidebar":"tutorialSidebar"},{"id":"middlewares/http-security-headers","path":"/docs/middlewares/http-security-headers","sidebar":"tutorialSidebar"},{"id":"middlewares/http-urlencode-body-parser","path":"/docs/middlewares/http-urlencode-body-parser","sidebar":"tutorialSidebar"},{"id":"middlewares/http-urlencode-path-parser","path":"/docs/middlewares/http-urlencode-path-parser","sidebar":"tutorialSidebar"},{"id":"middlewares/input-output-logger","path":"/docs/middlewares/input-output-logger","sidebar":"tutorialSidebar"},{"id":"middlewares/intro","path":"/docs/middlewares/intro","sidebar":"tutorialSidebar"},{"id":"middlewares/rds-signer","path":"/docs/middlewares/rds-signer","sidebar":"tutorialSidebar"},{"id":"middlewares/s3","path":"/docs/middlewares/s3","sidebar":"tutorialSidebar"},{"id":"middlewares/s3-object-response","path":"/docs/middlewares/s3-object-response","sidebar":"tutorialSidebar"},{"id":"middlewares/secrets-manager","path":"/docs/middlewares/secrets-manager","sidebar":"tutorialSidebar"},{"id":"middlewares/service-discovery","path":"/docs/middlewares/service-discovery","sidebar":"tutorialSidebar"},{"id":"middlewares/sqs-partial-batch-failure","path":"/docs/middlewares/sqs-partial-batch-failure","sidebar":"tutorialSidebar"},{"id":"middlewares/ssm","path":"/docs/middlewares/ssm","sidebar":"tutorialSidebar"},{"id":"middlewares/sts","path":"/docs/middlewares/sts","sidebar":"tutorialSidebar"},{"id":"middlewares/third-party","path":"/docs/middlewares/third-party","sidebar":"tutorialSidebar"},{"id":"middlewares/validator","path":"/docs/middlewares/validator","sidebar":"tutorialSidebar"},{"id":"middlewares/warmup","path":"/docs/middlewares/warmup","sidebar":"tutorialSidebar"},{"id":"middlewares/ws-json-body-parser","path":"/docs/middlewares/ws-json-body-parser","sidebar":"tutorialSidebar"},{"id":"middlewares/ws-response","path":"/docs/middlewares/ws-response","sidebar":"tutorialSidebar"},{"id":"routers/http-router","path":"/docs/routers/http-router","sidebar":"tutorialSidebar"},{"id":"routers/ws-router","path":"/docs/routers/ws-router","sidebar":"tutorialSidebar"},{"id":"upgrade/0-1","path":"/docs/upgrade/0-1","sidebar":"tutorialSidebar"},{"id":"upgrade/1-2","path":"/docs/upgrade/1-2","sidebar":"tutorialSidebar"},{"id":"upgrade/2-3","path":"/docs/upgrade/2-3","sidebar":"tutorialSidebar"},{"id":"upgrade/3-4","path":"/docs/upgrade/3-4","sidebar":"tutorialSidebar"},{"id":"upgrade/4-5","path":"/docs/upgrade/4-5","sidebar":"tutorialSidebar"},{"id":"writing-middlewares/configurable-middlewares","path":"/docs/writing-middlewares/configurable-middlewares","sidebar":"tutorialSidebar"},{"id":"writing-middlewares/inline-middlewares","path":"/docs/writing-middlewares/inline-middlewares","sidebar":"tutorialSidebar"},{"id":"writing-middlewares/internal-storage","path":"/docs/writing-middlewares/internal-storage","sidebar":"tutorialSidebar"},{"id":"writing-middlewares/intro","path":"/docs/writing-middlewares/intro","sidebar":"tutorialSidebar"},{"id":"writing-middlewares/more-examples","path":"/docs/writing-middlewares/more-examples","sidebar":"tutorialSidebar"},{"id":"writing-middlewares/timeouts","path":"/docs/writing-middlewares/timeouts","sidebar":"tutorialSidebar"},{"id":"writing-middlewares/with-typescript","path":"/docs/writing-middlewares/with-typescript","sidebar":"tutorialSidebar"},{"id":"/category/intro-to-middy","path":"/docs/category/intro-to-middy","sidebar":"tutorialSidebar"},{"id":"/category/middlewares","path":"/docs/category/middlewares","sidebar":"tutorialSidebar"},{"id":"/category/writing-middlewares","path":"/docs/category/writing-middlewares","sidebar":"tutorialSidebar"},{"id":"/category/routers","path":"/docs/category/routers","sidebar":"tutorialSidebar"},{"id":"/category/upgrade","path":"/docs/category/upgrade","sidebar":"tutorialSidebar"},{"id":"/category/aws-event-examples","path":"/docs/category/aws-event-examples","sidebar":"tutorialSidebar"},{"id":"/category/integrations","path":"/docs/category/integrations","sidebar":"tutorialSidebar"},{"id":"/category/best-practices","path":"/docs/category/best-practices","sidebar":"tutorialSidebar"}],"draftIds":[],"sidebars":{"tutorialSidebar":{"link":{"path":"/docs/category/intro-to-middy","label":"Intro to Middy"}}}}],"breadcrumbs":true}}}'),i=JSON.parse('{"defaultLocale":"en","locales":["en"],"path":"i18n","currentLocale":"en","localeConfigs":{"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en"}}}');var s=n(7529);const l=JSON.parse('{"docusaurusVersion":"3.0.0","siteVersion":"0.0.0","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"3.0.0"},"docusaurus-plugin-content-blog":{"type":"package","name":"@docusaurus/plugin-content-blog","version":"3.0.0"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"3.0.0"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"3.0.0"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"3.0.0"},"docusaurus-lunr-search":{"type":"package","name":"docusaurus-lunr-search","version":"3.3.0"}}}');var c=n(5893);const u={siteConfig:a.default,siteMetadata:l,globalData:o,i18n:i,codeTranslations:s},d=r.createContext(u);function p(e){let{children:t}=e;return(0,c.jsx)(d.Provider,{value:u,children:t})}},4763:(e,t,n)=>{"use strict";n.d(t,{Z:()=>f});var r=n(7294),a=n(412),o=n(5742),i=n(8780),s=n(63),l=n(5893);function c(e){let{error:t,tryAgain:n}=e;return(0,l.jsxs)("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"},children:[(0,l.jsx)("h1",{style:{fontSize:"3rem"},children:"This page crashed"}),(0,l.jsx)("button",{type:"button",onClick:n,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"},children:"Try again"}),(0,l.jsx)(u,{error:t})]})}function u(e){let{error:t}=e;const n=(0,i.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return(0,l.jsx)("p",{style:{whiteSpace:"pre-wrap"},children:n})}function d(e){let{error:t,tryAgain:n}=e;return(0,l.jsxs)(f,{fallback:()=>(0,l.jsx)(c,{error:t,tryAgain:n}),children:[(0,l.jsx)(o.Z,{children:(0,l.jsx)("title",{children:"Page Error"})}),(0,l.jsx)(s.Z,{children:(0,l.jsx)(c,{error:t,tryAgain:n})})]})}const p=e=>(0,l.jsx)(d,{...e});class f extends r.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){a.Z.canUseDOM&&this.setState({error:e})}render(){const{children:e}=this.props,{error:t}=this.state;if(t){const e={error:t,tryAgain:()=>this.setState({error:null})};return(this.props.fallback??p)(e)}return e??null}}},412:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});const r="undefined"!=typeof window&&"document"in window&&"createElement"in window.document,a={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},5742:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});n(7294);var r=n(405),a=n(5893);function o(e){return(0,a.jsx)(r.ql,{...e})}},9960:(e,t,n)=>{"use strict";n.d(t,{Z:()=>f});var r=n(7294),a=n(3727),o=n(8780),i=n(2263),s=n(3919),l=n(412),c=n(5893);const u=r.createContext({collectLink:()=>{}});var d=n(4996);function p(e,t){let{isNavLink:n,to:p,href:f,activeClassName:m,isActive:h,"data-noBrokenLinkCheck":g,autoAddBaseUrl:b=!0,...y}=e;const{siteConfig:{trailingSlash:v,baseUrl:w}}=(0,i.Z)(),{withBaseUrl:k}=(0,d.C)(),x=(0,r.useContext)(u),S=(0,r.useRef)(null);(0,r.useImperativeHandle)(t,(()=>S.current));const E=p||f;const _=(0,s.Z)(E),C=E?.replace("pathname://","");let T=void 0!==C?(j=C,b&&(e=>e.startsWith("/"))(j)?k(j):j):void 0;var j;T&&_&&(T=(0,o.applyTrailingSlash)(T,{trailingSlash:v,baseUrl:w}));const N=(0,r.useRef)(!1),R=n?a.OL:a.rU,A=l.Z.canUseIntersectionObserver,L=(0,r.useRef)(),P=()=>{N.current||null==T||(window.docusaurus.preload(T),N.current=!0)};(0,r.useEffect)((()=>(!A&&_&&null!=T&&window.docusaurus.prefetch(T),()=>{A&&L.current&&L.current.disconnect()})),[L,T,A,_]);const O=T?.startsWith("#")??!1,I=!T||!_||O;return I||g||x.collectLink(T),I?(0,c.jsx)("a",{ref:S,href:T,...E&&!_&&{target:"_blank",rel:"noopener noreferrer"},...y}):(0,c.jsx)(R,{...y,onMouseEnter:P,onTouchStart:P,innerRef:e=>{S.current=e,A&&e&&_&&(L.current=new window.IntersectionObserver((t=>{t.forEach((t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(L.current.unobserve(e),L.current.disconnect(),null!=T&&window.docusaurus.prefetch(T))}))})),L.current.observe(e))},to:T,...n&&{isActive:h,activeClassName:m}})}const f=r.forwardRef(p)},5999:(e,t,n)=>{"use strict";n.d(t,{Z:()=>c,I:()=>l});var r=n(7294),a=n(5893);function o(e,t){const n=e.split(/(\{\w+\})/).map(((e,n)=>{if(n%2==1){const n=t?.[e.slice(1,-1)];if(void 0!==n)return n}return e}));return n.some((e=>(0,r.isValidElement)(e)))?n.map(((e,t)=>(0,r.isValidElement)(e)?r.cloneElement(e,{key:t}):e)).filter((e=>""!==e)):n.join("")}var i=n(7529);function s(e){let{id:t,message:n}=e;if(void 0===t&&void 0===n)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return i[t??n]??n??t}function l(e,t){let{message:n,id:r}=e;return o(s({message:n,id:r}),t)}function c(e){let{children:t,id:n,values:r}=e;if(t&&"string"!=typeof t)throw console.warn("Illegal <Translate> children",t),new Error("The Docusaurus <Translate> component only accept simple string values");const i=s({message:t,id:n});return(0,a.jsx)(a.Fragment,{children:o(i,r)})}},9935:(e,t,n)=>{"use strict";n.d(t,{m:()=>r});const r="default"},3919:(e,t,n)=>{"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function a(e){return void 0!==e&&!r(e)}n.d(t,{Z:()=>a,b:()=>r})},4996:(e,t,n)=>{"use strict";n.d(t,{C:()=>i,Z:()=>s});var r=n(7294),a=n(2263),o=n(3919);function i(){const{siteConfig:{baseUrl:e,url:t}}=(0,a.Z)(),n=(0,r.useCallback)(((n,r)=>function(e,t,n,r){let{forcePrependBaseUrl:a=!1,absolute:i=!1}=void 0===r?{}:r;if(!n||n.startsWith("#")||(0,o.b)(n))return n;if(a)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;const s=n.startsWith(t)?n:t+n.replace(/^\//,"");return i?e+s:s}(t,e,n,r)),[t,e]);return{withBaseUrl:n}}function s(e,t){void 0===t&&(t={});const{withBaseUrl:n}=i();return n(e,t)}},2263:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(8940);function o(){return(0,r.useContext)(a._)}},8084:(e,t,n)=>{"use strict";n.d(t,{OD:()=>o,eZ:()=>i});var r=n(2263),a=n(9935);function o(e,t){void 0===t&&(t={});const n=function(){const{globalData:e}=(0,r.Z)();return e}()[e];if(!n&&t.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return n}function i(e,t,n){void 0===t&&(t=a.m),void 0===n&&(n={});const r=o(e),i=r?.[t];if(!i&&n.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return i}},2389:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(8934);function o(){return(0,r.useContext)(a._)}},469:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(7294);const a=n(412).Z.canUseDOM?r.useLayoutEffect:r.useEffect},9670:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});const r=e=>"object"==typeof e&&!!e&&Object.keys(e).length>0;function a(e){const t={};return function e(n,a){Object.entries(n).forEach((n=>{let[o,i]=n;const s=a?`${a}.${o}`:o;r(i)?e(i,s):t[s]=i}))}(e),t}},226:(e,t,n)=>{"use strict";n.d(t,{_:()=>o,z:()=>i});var r=n(7294),a=n(5893);const o=r.createContext(null);function i(e){let{children:t,value:n}=e;const i=r.useContext(o),s=(0,r.useMemo)((()=>function(e){let{parent:t,value:n}=e;if(!t){if(!n)throw new Error("Unexpected: no Docusaurus route context found");if(!("plugin"in n))throw new Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute");return n}const r={...t.data,...n?.data};return{plugin:t.plugin,data:r}}({parent:i,value:n})),[i,n]);return(0,a.jsx)(o.Provider,{value:s,children:t})}},4104:(e,t,n)=>{"use strict";n.d(t,{Iw:()=>f,gA:()=>u,_r:()=>l,Jo:()=>m,zh:()=>c,yW:()=>p,gB:()=>d});var r=n(6550),a=n(8084);const o=e=>e.versions.find((e=>e.isLast));function i(e,t){const n=function(e,t){const n=o(e);return[...e.versions.filter((e=>e!==n)),n].find((e=>!!(0,r.LX)(t,{path:e.path,exact:!1,strict:!1})))}(e,t),a=n?.docs.find((e=>!!(0,r.LX)(t,{path:e.path,exact:!0,strict:!1})));return{activeVersion:n,activeDoc:a,alternateDocVersions:a?function(t){const n={};return e.versions.forEach((e=>{e.docs.forEach((r=>{r.id===t&&(n[e.name]=r)}))})),n}(a.id):{}}}const s={},l=()=>(0,a.OD)("docusaurus-plugin-content-docs")??s,c=e=>(0,a.eZ)("docusaurus-plugin-content-docs",e,{failfast:!0});function u(e){void 0===e&&(e={});const t=l(),{pathname:n}=(0,r.TH)();return function(e,t,n){void 0===n&&(n={});const a=Object.entries(e).sort(((e,t)=>t[1].path.localeCompare(e[1].path))).find((e=>{let[,n]=e;return!!(0,r.LX)(t,{path:n.path,exact:!1,strict:!1})})),o=a?{pluginId:a[0],pluginData:a[1]}:void 0;if(!o&&n.failfast)throw new Error(`Can't find active docs plugin for "${t}" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: ${Object.values(e).map((e=>e.path)).join(", ")}`);return o}(t,n,e)}function d(e){return c(e).versions}function p(e){const t=c(e);return o(t)}function f(e){const t=c(e),{pathname:n}=(0,r.TH)();return i(t,n)}function m(e){const t=c(e),{pathname:n}=(0,r.TH)();return function(e,t){const n=o(e);return{latestDocSuggestion:i(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(t,n)}},8320:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n(4865),a=n.n(r);a().configure({showSpinner:!1});const o={onRouteUpdate(e){let{location:t,previousLocation:n}=e;if(n&&t.pathname!==n.pathname){const e=window.setTimeout((()=>{a().start()}),200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){a().done()}}},3310:(e,t,n)=>{"use strict";n.r(t);var r=n(2573),a=n(6809);!function(e){const{themeConfig:{prism:t}}=a.default,{additionalLanguages:r}=t;globalThis.Prism=e,r.forEach((e=>{"php"===e&&n(6854),n(6726)(`./prism-${e}`)})),delete globalThis.Prism}(r.p1)},2503:(e,t,n)=>{"use strict";n.d(t,{Z:()=>c});n(7294);var r=n(6010),a=n(5999),o=n(6668),i=n(9960);const s={anchorWithStickyNavbar:"anchorWithStickyNavbar_LWe7",anchorWithHideOnScrollNavbar:"anchorWithHideOnScrollNavbar_WYt5"};var l=n(5893);function c(e){let{as:t,id:n,...c}=e;const{navbar:{hideOnScroll:u}}=(0,o.L)();if("h1"===t||!n)return(0,l.jsx)(t,{...c,id:void 0});const d=(0,a.I)({id:"theme.common.headingLinkTitle",message:"Direct link to {heading}",description:"Title for link to heading"},{heading:"string"==typeof c.children?c.children:n});return(0,l.jsxs)(t,{...c,className:(0,r.Z)("anchor",u?s.anchorWithHideOnScrollNavbar:s.anchorWithStickyNavbar,c.className),id:n,children:[c.children,(0,l.jsx)(i.Z,{className:"hash-link",to:`#${n}`,"aria-label":d,title:d,children:"\u200b"})]})}},9471:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});n(7294);const r={iconExternalLink:"iconExternalLink_nPIU"};var a=n(5893);function o(e){let{width:t=13.5,height:n=13.5}=e;return(0,a.jsx)("svg",{width:t,height:n,"aria-hidden":"true",viewBox:"0 0 24 24",className:r.iconExternalLink,children:(0,a.jsx)("path",{fill:"currentColor",d:"M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"})})}},63:(e,t,n)=>{"use strict";n.d(t,{Z:()=>gt});var r=n(7294),a=n(6010),o=n(4763),i=n(1944),s=n(6550),l=n(5999),c=n(5936),u=n(5893);const d="__docusaurus_skipToContent_fallback";function p(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function f(){const e=(0,r.useRef)(null),{action:t}=(0,s.k6)(),n=(0,r.useCallback)((e=>{e.preventDefault();const t=document.querySelector("main:first-of-type")??document.getElementById(d);t&&p(t)}),[]);return(0,c.S)((n=>{let{location:r}=n;e.current&&!r.hash&&"PUSH"===t&&p(e.current)})),{containerRef:e,onClick:n}}const m=(0,l.I)({id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation",message:"Skip to main content"});function h(e){const t=e.children??m,{containerRef:n,onClick:r}=f();return(0,u.jsx)("div",{ref:n,role:"region","aria-label":m,children:(0,u.jsx)("a",{...e,href:`#${d}`,onClick:r,children:t})})}var g=n(5281),b=n(9727);const y={skipToContent:"skipToContent_fXgn"};function v(){return(0,u.jsx)(h,{className:y.skipToContent})}var w=n(6668),k=n(9689);function x(e){let{width:t=21,height:n=21,color:r="currentColor",strokeWidth:a=1.2,className:o,...i}=e;return(0,u.jsx)("svg",{viewBox:"0 0 15 15",width:t,height:n,...i,children:(0,u.jsx)("g",{stroke:r,strokeWidth:a,children:(0,u.jsx)("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})})})}const S={closeButton:"closeButton_CVFx"};function E(e){return(0,u.jsx)("button",{type:"button","aria-label":(0,l.I)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"}),...e,className:(0,a.Z)("clean-btn close",S.closeButton,e.className),children:(0,u.jsx)(x,{width:14,height:14,strokeWidth:3.1})})}const _={content:"content_knG7"};function C(e){const{announcementBar:t}=(0,w.L)(),{content:n}=t;return(0,u.jsx)("div",{...e,className:(0,a.Z)(_.content,e.className),dangerouslySetInnerHTML:{__html:n}})}const T={announcementBar:"announcementBar_mb4j",announcementBarPlaceholder:"announcementBarPlaceholder_vyr4",announcementBarClose:"announcementBarClose_gvF7",announcementBarContent:"announcementBarContent_xLdY"};function j(){const{announcementBar:e}=(0,w.L)(),{isActive:t,close:n}=(0,k.nT)();if(!t)return null;const{backgroundColor:r,textColor:a,isCloseable:o}=e;return(0,u.jsxs)("div",{className:T.announcementBar,style:{backgroundColor:r,color:a},role:"banner",children:[o&&(0,u.jsx)("div",{className:T.announcementBarPlaceholder}),(0,u.jsx)(C,{className:T.announcementBarContent}),o&&(0,u.jsx)(E,{onClick:n,className:T.announcementBarClose})]})}var N=n(3163),R=n(2466);var A=n(902),L=n(3102);const P=r.createContext(null);function O(e){let{children:t}=e;const n=function(){const e=(0,N.e)(),t=(0,L.HY)(),[n,a]=(0,r.useState)(!1),o=null!==t.component,i=(0,A.D9)(o);return(0,r.useEffect)((()=>{o&&!i&&a(!0)}),[o,i]),(0,r.useEffect)((()=>{o?e.shown||a(!0):a(!1)}),[e.shown,o]),(0,r.useMemo)((()=>[n,a]),[n])}();return(0,u.jsx)(P.Provider,{value:n,children:t})}function I(e){if(e.component){const t=e.component;return(0,u.jsx)(t,{...e.props})}}function D(){const e=(0,r.useContext)(P);if(!e)throw new A.i6("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,a=(0,r.useCallback)((()=>n(!1)),[n]),o=(0,L.HY)();return(0,r.useMemo)((()=>({shown:t,hide:a,content:I(o)})),[a,o,t])}function M(e){let{header:t,primaryMenu:n,secondaryMenu:r}=e;const{shown:o}=D();return(0,u.jsxs)("div",{className:"navbar-sidebar",children:[t,(0,u.jsxs)("div",{className:(0,a.Z)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":o}),children:[(0,u.jsx)("div",{className:"navbar-sidebar__item menu",children:n}),(0,u.jsx)("div",{className:"navbar-sidebar__item menu",children:r})]})]})}var F=n(2949),z=n(2389);function B(e){return(0,u.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,u.jsx)("path",{fill:"currentColor",d:"M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"})})}function $(e){return(0,u.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,u.jsx)("path",{fill:"currentColor",d:"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"})})}const U={toggle:"toggle_vylO",toggleButton:"toggleButton_gllP",darkToggleIcon:"darkToggleIcon_wfgR",lightToggleIcon:"lightToggleIcon_pyhR",toggleButtonDisabled:"toggleButtonDisabled_aARS"};function q(e){let{className:t,buttonClassName:n,value:r,onChange:o}=e;const i=(0,z.Z)(),s=(0,l.I)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the navbar color mode toggle"},{mode:"dark"===r?(0,l.I)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,l.I)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return(0,u.jsx)("div",{className:(0,a.Z)(U.toggle,t),children:(0,u.jsxs)("button",{className:(0,a.Z)("clean-btn",U.toggleButton,!i&&U.toggleButtonDisabled,n),type:"button",onClick:()=>o("dark"===r?"light":"dark"),disabled:!i,title:s,"aria-label":s,"aria-live":"polite",children:[(0,u.jsx)(B,{className:(0,a.Z)(U.toggleIcon,U.lightToggleIcon)}),(0,u.jsx)($,{className:(0,a.Z)(U.toggleIcon,U.darkToggleIcon)})]})})}const H=r.memo(q),Z={darkNavbarColorModeToggle:"darkNavbarColorModeToggle_X3D1"};function G(e){let{className:t}=e;const n=(0,w.L)().navbar.style,r=(0,w.L)().colorMode.disableSwitch,{colorMode:a,setColorMode:o}=(0,F.I)();return r?null:(0,u.jsx)(H,{className:t,buttonClassName:"dark"===n?Z.darkNavbarColorModeToggle:void 0,value:a,onChange:o})}var W=n(1327);function V(){return(0,u.jsx)(W.Z,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function Q(){const e=(0,N.e)();return(0,u.jsx)("button",{type:"button","aria-label":(0,l.I)({id:"theme.docs.sidebar.closeSidebarButtonAriaLabel",message:"Close navigation bar",description:"The ARIA label for close button of mobile sidebar"}),className:"clean-btn navbar-sidebar__close",onClick:()=>e.toggle(),children:(0,u.jsx)(x,{color:"var(--ifm-color-emphasis-600)"})})}function Y(){return(0,u.jsxs)("div",{className:"navbar-sidebar__brand",children:[(0,u.jsx)(V,{}),(0,u.jsx)(G,{className:"margin-right--md"}),(0,u.jsx)(Q,{})]})}var K=n(9960),X=n(4996),J=n(3919);function ee(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}var te=n(9471);function ne(e){let{activeBasePath:t,activeBaseRegex:n,to:r,href:a,label:o,html:i,isDropdownLink:s,prependBaseUrlToHref:l,...c}=e;const d=(0,X.Z)(r),p=(0,X.Z)(t),f=(0,X.Z)(a,{forcePrependBaseUrl:!0}),m=o&&a&&!(0,J.Z)(a),h=i?{dangerouslySetInnerHTML:{__html:i}}:{children:(0,u.jsxs)(u.Fragment,{children:[o,m&&(0,u.jsx)(te.Z,{...s&&{width:12,height:12}})]})};return a?(0,u.jsx)(K.Z,{href:l?f:a,...c,...h}):(0,u.jsx)(K.Z,{to:d,isNavLink:!0,...(t||n)&&{isActive:(e,t)=>n?ee(n,t.pathname):t.pathname.startsWith(p)},...c,...h})}function re(e){let{className:t,isDropdownItem:n=!1,...r}=e;const o=(0,u.jsx)(ne,{className:(0,a.Z)(n?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:n,...r});return n?(0,u.jsx)("li",{children:o}):o}function ae(e){let{className:t,isDropdownItem:n,...r}=e;return(0,u.jsx)("li",{className:"menu__list-item",children:(0,u.jsx)(ne,{className:(0,a.Z)("menu__link",t),...r})})}function oe(e){let{mobile:t=!1,position:n,...r}=e;const a=t?ae:re;return(0,u.jsx)(a,{...r,activeClassName:r.activeClassName??(t?"menu__link--active":"navbar__link--active")})}var ie=n(6043),se=n(8596),le=n(2263);function ce(e,t){return e.some((e=>function(e,t){return!!(0,se.Mg)(e.to,t)||!!ee(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)))}function ue(e){let{items:t,position:n,className:o,onClick:i,...s}=e;const l=(0,r.useRef)(null),[c,d]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{const e=e=>{l.current&&!l.current.contains(e.target)&&d(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),document.addEventListener("focusin",e),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e),document.removeEventListener("focusin",e)}}),[l]),(0,u.jsxs)("div",{ref:l,className:(0,a.Z)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===n,"dropdown--show":c}),children:[(0,u.jsx)(ne,{"aria-haspopup":"true","aria-expanded":c,role:"button",href:s.to?void 0:"#",className:(0,a.Z)("navbar__link",o),...s,onClick:s.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),d(!c))},children:s.children??s.label}),(0,u.jsx)("ul",{className:"dropdown__menu",children:t.map(((e,t)=>(0,r.createElement)(je,{isDropdownItem:!0,activeClassName:"dropdown__link--active",...e,key:t})))})]})}function de(e){let{items:t,className:n,position:o,onClick:i,...l}=e;const c=function(){const{siteConfig:{baseUrl:e}}=(0,le.Z)(),{pathname:t}=(0,s.TH)();return t.replace(e,"/")}(),d=ce(t,c),{collapsed:p,toggleCollapsed:f,setCollapsed:m}=(0,ie.u)({initialState:()=>!d});return(0,r.useEffect)((()=>{d&&m(!d)}),[c,d,m]),(0,u.jsxs)("li",{className:(0,a.Z)("menu__list-item",{"menu__list-item--collapsed":p}),children:[(0,u.jsx)(ne,{role:"button",className:(0,a.Z)("menu__link menu__link--sublist menu__link--sublist-caret",n),...l,onClick:e=>{e.preventDefault(),f()},children:l.children??l.label}),(0,u.jsx)(ie.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:p,children:t.map(((e,t)=>(0,r.createElement)(je,{mobile:!0,isDropdownItem:!0,onClick:i,activeClassName:"menu__link--active",...e,key:t})))})]})}function pe(e){let{mobile:t=!1,...n}=e;const r=t?de:ue;return(0,u.jsx)(r,{...n})}var fe=n(4711);function me(e){let{width:t=20,height:n=20,...r}=e;return(0,u.jsx)("svg",{viewBox:"0 0 24 24",width:t,height:n,"aria-hidden":!0,...r,children:(0,u.jsx)("path",{fill:"currentColor",d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"})})}const he="iconLanguage_nlXk";var ge=n(8084),be=n(813),ye=n.n(be);function ve(){const e=(0,s.TH)(),t=(0,s.k6)(),{siteConfig:{baseUrl:n}}=(0,le.Z)(),[a,o]=(0,r.useState)({wordToHighlight:"",isTitleSuggestion:!1,titleText:""});return(0,r.useEffect)((()=>{if(!e.state?.highlightState||0===e.state.highlightState.wordToHighlight.length)return;o(e.state.highlightState);const{highlightState:n,...r}=e.state;t.replace({...e,state:r})}),[e.state?.highlightState,t,e]),(0,r.useEffect)((()=>{if(0===a.wordToHighlight.length)return;const e=document.getElementsByTagName("article")[0]??document.getElementsByTagName("main")[0];if(!e)return;const t=new(ye())(e),n={ignoreJoiners:!0};return t.mark(a.wordToHighlight,n),()=>t.unmark(n)}),[a,n]),null}const we=e=>{const t=(0,r.useRef)(!1),o=(0,r.useRef)(null),[i,l]=(0,r.useState)(!1),c=(0,s.k6)(),{siteConfig:d={}}=(0,le.Z)(),p=(d.plugins||[]).find((e=>Array.isArray(e)&&"string"==typeof e[0]&&e[0].includes("docusaurus-lunr-search"))),f=(0,z.Z)(),{baseUrl:m}=d,h=p&&p[1]?.assetUrl||m,g=(0,ge.eZ)("docusaurus-lunr-search"),b=()=>{t.current||(Promise.all([fetch(`${h}${g.fileNames.searchDoc}`).then((e=>e.json())),fetch(`${h}${g.fileNames.lunrIndex}`).then((e=>e.json())),Promise.all([n.e(4611),n.e(5684)]).then(n.bind(n,4734)),Promise.all([n.e(532),n.e(2572)]).then(n.bind(n,2572))]).then((e=>{let[t,n,{default:r}]=e;const{searchDocs:a,options:o}=t;a&&0!==a.length&&(((e,t,n,r)=>{new n({searchDocs:e,searchIndex:t,baseUrl:m,inputSelector:"#search_input_react",handleSelected:(e,t,n)=>{const a=n.url||"/";document.createElement("a").href=a,e.setVal(""),t.target.blur();let o="";if(r.highlightResult)try{const e=(n.text||n.subcategory||n.title).match(new RegExp("<span.+span>\\w*","g"));if(e&&e.length>0){const t=document.createElement("div");t.innerHTML=e[0],o=t.textContent}}catch(i){console.log(i)}c.push(a,{highlightState:{wordToHighlight:o}})}})})(a,n,r,o),l(!0))})),t.current=!0)},y=(0,r.useCallback)((t=>{o.current.contains(t.target)||o.current.focus(),e.handleSearchBarToggle&&e.handleSearchBarToggle(!e.isSearchBarExpanded)}),[e.isSearchBarExpanded]);return f&&b(),(0,u.jsxs)("div",{className:"navbar__search",children:[(0,u.jsx)("span",{"aria-label":"expand searchbar",role:"button",className:(0,a.Z)("search-icon",{"search-icon-hidden":e.isSearchBarExpanded}),onClick:y,onKeyDown:y,tabIndex:0}),(0,u.jsx)("input",{id:"search_input_react",type:"search",placeholder:i?"Search Ctrl+K":"Loading...","aria-label":"Search",className:(0,a.Z)("navbar__search-input",{"search-bar-expanded":e.isSearchBarExpanded},{"search-bar":!e.isSearchBarExpanded}),onClick:b,onMouseOver:b,onFocus:y,onBlur:y,ref:o,disabled:!i}),(0,u.jsx)(ve,{})]},"search-box")},ke={navbarSearchContainer:"navbarSearchContainer_Bca1"};function xe(e){let{children:t,className:n}=e;return(0,u.jsx)("div",{className:(0,a.Z)(n,ke.navbarSearchContainer),children:t})}var Se=n(4104),Ee=n(3438);var _e=n(373);const Ce=e=>e.docs.find((t=>t.id===e.mainDocId));const Te={default:oe,localeDropdown:function(e){let{mobile:t,dropdownItemsBefore:n,dropdownItemsAfter:r,queryString:a="",...o}=e;const{i18n:{currentLocale:i,locales:c,localeConfigs:d}}=(0,le.Z)(),p=(0,fe.l)(),{search:f,hash:m}=(0,s.TH)(),h=[...n,...c.map((e=>{const n=`${`pathname://${p.createUrl({locale:e,fullyQualified:!1})}`}${f}${m}${a}`;return{label:d[e].label,lang:d[e].htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:e===i?t?"menu__link--active":"dropdown__link--active":""}})),...r],g=t?(0,l.I)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):d[i].label;return(0,u.jsx)(pe,{...o,mobile:t,label:(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(me,{className:he}),g]}),items:h})},search:function(e){let{mobile:t,className:n}=e;return t?null:(0,u.jsx)(xe,{className:n,children:(0,u.jsx)(we,{})})},dropdown:pe,html:function(e){let{value:t,className:n,mobile:r=!1,isDropdownItem:o=!1}=e;const i=o?"li":"div";return(0,u.jsx)(i,{className:(0,a.Z)({navbar__item:!r&&!o,"menu__list-item":r},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){let{docId:t,label:n,docsPluginId:r,...a}=e;const{activeDoc:o}=(0,Se.Iw)(r),i=(0,Ee.vY)(t,r),s=o?.path===i?.path;return null===i||i.unlisted&&!s?null:(0,u.jsx)(oe,{exact:!0,...a,isActive:()=>s||!!o?.sidebar&&o.sidebar===i.sidebar,label:n??i.id,to:i.path})},docSidebar:function(e){let{sidebarId:t,label:n,docsPluginId:r,...a}=e;const{activeDoc:o}=(0,Se.Iw)(r),i=(0,Ee.oz)(t,r).link;if(!i)throw new Error(`DocSidebarNavbarItem: Sidebar with ID "${t}" doesn't have anything to be linked to.`);return(0,u.jsx)(oe,{exact:!0,...a,isActive:()=>o?.sidebar===t,label:n??i.label,to:i.path})},docsVersion:function(e){let{label:t,to:n,docsPluginId:r,...a}=e;const o=(0,Ee.lO)(r)[0],i=t??o.label,s=n??(e=>e.docs.find((t=>t.id===e.mainDocId)))(o).path;return(0,u.jsx)(oe,{...a,label:i,to:s})},docsVersionDropdown:function(e){let{mobile:t,docsPluginId:n,dropdownActiveClassDisabled:r,dropdownItemsBefore:a,dropdownItemsAfter:o,...i}=e;const{search:c,hash:d}=(0,s.TH)(),p=(0,Se.Iw)(n),f=(0,Se.gB)(n),{savePreferredVersionName:m}=(0,_e.J)(n),h=[...a,...f.map((e=>{const t=p.alternateDocVersions[e.name]??Ce(e);return{label:e.label,to:`${t.path}${c}${d}`,isActive:()=>e===p.activeVersion,onClick:()=>m(e.name)}})),...o],g=(0,Ee.lO)(n)[0],b=t&&h.length>1?(0,l.I)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):g.label,y=t&&h.length>1?void 0:Ce(g).path;return h.length<=1?(0,u.jsx)(oe,{...i,mobile:t,label:b,to:y,isActive:r?()=>!1:void 0}):(0,u.jsx)(pe,{...i,mobile:t,label:b,to:y,items:h,isActive:r?()=>!1:void 0})}};function je(e){let{type:t,...n}=e;const r=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),a=Te[r];if(!a)throw new Error(`No NavbarItem component found for type "${t}".`);return(0,u.jsx)(a,{...n})}function Ne(){const e=(0,N.e)(),t=(0,w.L)().navbar.items;return(0,u.jsx)("ul",{className:"menu__list",children:t.map(((t,n)=>(0,r.createElement)(je,{mobile:!0,...t,onClick:()=>e.toggle(),key:n})))})}function Re(e){return(0,u.jsx)("button",{...e,type:"button",className:"clean-btn navbar-sidebar__back",children:(0,u.jsx)(l.Z,{id:"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel",description:"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)",children:"\u2190 Back to main menu"})})}function Ae(){const e=0===(0,w.L)().navbar.items.length,t=D();return(0,u.jsxs)(u.Fragment,{children:[!e&&(0,u.jsx)(Re,{onClick:()=>t.hide()}),t.content]})}function Le(){const e=(0,N.e)();var t;return void 0===(t=e.shown)&&(t=!0),(0,r.useEffect)((()=>(document.body.style.overflow=t?"hidden":"visible",()=>{document.body.style.overflow="visible"})),[t]),e.shouldRender?(0,u.jsx)(M,{header:(0,u.jsx)(Y,{}),primaryMenu:(0,u.jsx)(Ne,{}),secondaryMenu:(0,u.jsx)(Ae,{})}):null}const Pe={navbarHideable:"navbarHideable_m1mJ",navbarHidden:"navbarHidden_jGov"};function Oe(e){return(0,u.jsx)("div",{role:"presentation",...e,className:(0,a.Z)("navbar-sidebar__backdrop",e.className)})}function Ie(e){let{children:t}=e;const{navbar:{hideOnScroll:n,style:o}}=(0,w.L)(),i=(0,N.e)(),{navbarRef:s,isNavbarVisible:d}=function(e){const[t,n]=(0,r.useState)(e),a=(0,r.useRef)(!1),o=(0,r.useRef)(0),i=(0,r.useCallback)((e=>{null!==e&&(o.current=e.getBoundingClientRect().height)}),[]);return(0,R.RF)(((t,r)=>{let{scrollY:i}=t;if(!e)return;if(i<o.current)return void n(!0);if(a.current)return void(a.current=!1);const s=r?.scrollY,l=document.documentElement.scrollHeight-o.current,c=window.innerHeight;s&&i>=s?n(!1):i+c<l&&n(!0)})),(0,c.S)((t=>{if(!e)return;const r=t.location.hash;if(r?document.getElementById(r.substring(1)):void 0)return a.current=!0,void n(!1);n(!0)})),{navbarRef:i,isNavbarVisible:t}}(n);return(0,u.jsxs)("nav",{ref:s,"aria-label":(0,l.I)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,a.Z)("navbar","navbar--fixed-top",n&&[Pe.navbarHideable,!d&&Pe.navbarHidden],{"navbar--dark":"dark"===o,"navbar--primary":"primary"===o,"navbar-sidebar--show":i.shown}),children:[t,(0,u.jsx)(Oe,{onClick:i.toggle}),(0,u.jsx)(Le,{})]})}var De=n(8780);const Me={errorBoundaryError:"errorBoundaryError_a6uf",errorBoundaryFallback:"errorBoundaryFallback_VBag"};function Fe(e){return(0,u.jsx)("button",{type:"button",...e,children:(0,u.jsx)(l.Z,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again rendering when the React error boundary captures an error",children:"Try again"})})}function ze(e){let{error:t}=e;const n=(0,De.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return(0,u.jsx)("p",{className:Me.errorBoundaryError,children:n})}class Be extends r.Component{componentDidCatch(e,t){throw this.props.onError(e,t)}render(){return this.props.children}}const $e="right";function Ue(e){let{width:t=30,height:n=30,className:r,...a}=e;return(0,u.jsx)("svg",{className:r,width:t,height:n,viewBox:"0 0 30 30","aria-hidden":"true",...a,children:(0,u.jsx)("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"})})}function qe(){const{toggle:e,shown:t}=(0,N.e)();return(0,u.jsx)("button",{onClick:e,"aria-label":(0,l.I)({id:"theme.docs.sidebar.toggleSidebarButtonAriaLabel",message:"Toggle navigation bar",description:"The ARIA label for hamburger menu button of mobile navigation"}),"aria-expanded":t,className:"navbar__toggle clean-btn",type:"button",children:(0,u.jsx)(Ue,{})})}const He={colorModeToggle:"colorModeToggle_DEke"};function Ze(e){let{items:t}=e;return(0,u.jsx)(u.Fragment,{children:t.map(((e,t)=>(0,u.jsx)(Be,{onError:t=>new Error(`A theme navbar item failed to render.\nPlease double-check the following navbar item (themeConfig.navbar.items) of your Docusaurus config:\n${JSON.stringify(e,null,2)}`,{cause:t}),children:(0,u.jsx)(je,{...e})},t)))})}function Ge(e){let{left:t,right:n}=e;return(0,u.jsxs)("div",{className:"navbar__inner",children:[(0,u.jsx)("div",{className:"navbar__items",children:t}),(0,u.jsx)("div",{className:"navbar__items navbar__items--right",children:n})]})}function We(){const e=(0,N.e)(),t=(0,w.L)().navbar.items,[n,r]=function(e){function t(e){return"left"===(e.position??$e)}return[e.filter(t),e.filter((e=>!t(e)))]}(t),a=t.find((e=>"search"===e.type));return(0,u.jsx)(Ge,{left:(0,u.jsxs)(u.Fragment,{children:[!e.disabled&&(0,u.jsx)(qe,{}),(0,u.jsx)(V,{}),(0,u.jsx)(Ze,{items:n})]}),right:(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(Ze,{items:r}),(0,u.jsx)(G,{className:He.colorModeToggle}),!a&&(0,u.jsx)(xe,{children:(0,u.jsx)(we,{})})]})})}function Ve(){return(0,u.jsx)(Ie,{children:(0,u.jsx)(We,{})})}function Qe(e){let{item:t}=e;const{to:n,href:r,label:a,prependBaseUrlToHref:o,...i}=t,s=(0,X.Z)(n),l=(0,X.Z)(r,{forcePrependBaseUrl:!0});return(0,u.jsxs)(K.Z,{className:"footer__link-item",...r?{href:o?l:r}:{to:s},...i,children:[a,r&&!(0,J.Z)(r)&&(0,u.jsx)(te.Z,{})]})}function Ye(e){let{item:t}=e;return t.html?(0,u.jsx)("li",{className:"footer__item",dangerouslySetInnerHTML:{__html:t.html}}):(0,u.jsx)("li",{className:"footer__item",children:(0,u.jsx)(Qe,{item:t})},t.href??t.to)}function Ke(e){let{column:t}=e;return(0,u.jsxs)("div",{className:"col footer__col",children:[(0,u.jsx)("div",{className:"footer__title",children:t.title}),(0,u.jsx)("ul",{className:"footer__items clean-list",children:t.items.map(((e,t)=>(0,u.jsx)(Ye,{item:e},t)))})]})}function Xe(e){let{columns:t}=e;return(0,u.jsx)("div",{className:"row footer__links",children:t.map(((e,t)=>(0,u.jsx)(Ke,{column:e},t)))})}function Je(){return(0,u.jsx)("span",{className:"footer__link-separator",children:"\xb7"})}function et(e){let{item:t}=e;return t.html?(0,u.jsx)("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):(0,u.jsx)(Qe,{item:t})}function tt(e){let{links:t}=e;return(0,u.jsx)("div",{className:"footer__links text--center",children:(0,u.jsx)("div",{className:"footer__links",children:t.map(((e,n)=>(0,u.jsxs)(r.Fragment,{children:[(0,u.jsx)(et,{item:e}),t.length!==n+1&&(0,u.jsx)(Je,{})]},n)))})})}function nt(e){let{links:t}=e;return function(e){return"title"in e[0]}(t)?(0,u.jsx)(Xe,{columns:t}):(0,u.jsx)(tt,{links:t})}var rt=n(9965);const at={footerLogoLink:"footerLogoLink_BH7S"};function ot(e){let{logo:t}=e;const{withBaseUrl:n}=(0,X.C)(),r={light:n(t.src),dark:n(t.srcDark??t.src)};return(0,u.jsx)(rt.Z,{className:(0,a.Z)("footer__logo",t.className),alt:t.alt,sources:r,width:t.width,height:t.height,style:t.style})}function it(e){let{logo:t}=e;return t.href?(0,u.jsx)(K.Z,{href:t.href,className:at.footerLogoLink,target:t.target,children:(0,u.jsx)(ot,{logo:t})}):(0,u.jsx)(ot,{logo:t})}function st(e){let{copyright:t}=e;return(0,u.jsx)("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}function lt(e){let{style:t,links:n,logo:r,copyright:o}=e;return(0,u.jsx)("footer",{className:(0,a.Z)("footer",{"footer--dark":"dark"===t}),children:(0,u.jsxs)("div",{className:"container container-fluid",children:[n,(r||o)&&(0,u.jsxs)("div",{className:"footer__bottom text--center",children:[r&&(0,u.jsx)("div",{className:"margin-bottom--sm",children:r}),o]})]})})}function ct(){const{footer:e}=(0,w.L)();if(!e)return null;const{copyright:t,links:n,logo:r,style:a}=e;return(0,u.jsx)(lt,{style:a,links:n&&n.length>0&&(0,u.jsx)(nt,{links:n}),logo:r&&(0,u.jsx)(it,{logo:r}),copyright:t&&(0,u.jsx)(st,{copyright:t})})}const ut=r.memo(ct),dt=(0,A.Qc)([F.S,k.pl,R.OC,_e.L5,i.VC,function(e){let{children:t}=e;return(0,u.jsx)(L.n2,{children:(0,u.jsx)(N.M,{children:(0,u.jsx)(O,{children:t})})})}]);function pt(e){let{children:t}=e;return(0,u.jsx)(dt,{children:t})}var ft=n(2503);function mt(e){let{error:t,tryAgain:n}=e;return(0,u.jsx)("main",{className:"container margin-vert--xl",children:(0,u.jsx)("div",{className:"row",children:(0,u.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,u.jsx)(ft.Z,{as:"h1",className:"hero__title",children:(0,u.jsx)(l.Z,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed",children:"This page crashed."})}),(0,u.jsx)("div",{className:"margin-vert--lg",children:(0,u.jsx)(Fe,{onClick:n,className:"button button--primary shadow--lw"})}),(0,u.jsx)("hr",{}),(0,u.jsx)("div",{className:"margin-vert--md",children:(0,u.jsx)(ze,{error:t})})]})})})}const ht={mainWrapper:"mainWrapper_z2l0"};function gt(e){const{children:t,noFooter:n,wrapperClassName:r,title:s,description:l}=e;return(0,b.t)(),(0,u.jsxs)(pt,{children:[(0,u.jsx)(i.d,{title:s,description:l}),(0,u.jsx)(v,{}),(0,u.jsx)(j,{}),(0,u.jsx)(Ve,{}),(0,u.jsx)("div",{id:d,className:(0,a.Z)(g.k.wrapper.main,ht.mainWrapper,r),children:(0,u.jsx)(o.Z,{fallback:e=>(0,u.jsx)(mt,{...e}),children:t})}),!n&&(0,u.jsx)(ut,{})]})}},1327:(e,t,n)=>{"use strict";n.d(t,{Z:()=>u});n(7294);var r=n(9960),a=n(4996),o=n(2263),i=n(6668),s=n(9965),l=n(5893);function c(e){let{logo:t,alt:n,imageClassName:r}=e;const o={light:(0,a.Z)(t.src),dark:(0,a.Z)(t.srcDark||t.src)},i=(0,l.jsx)(s.Z,{className:t.className,sources:o,height:t.height,width:t.width,alt:n,style:t.style});return r?(0,l.jsx)("div",{className:r,children:i}):i}function u(e){const{siteConfig:{title:t}}=(0,o.Z)(),{navbar:{title:n,logo:s}}=(0,i.L)(),{imageClassName:u,titleClassName:d,...p}=e,f=(0,a.Z)(s?.href||"/"),m=n?"":t,h=s?.alt??m;return(0,l.jsxs)(r.Z,{to:f,...p,...s?.target&&{target:s.target},children:[s&&(0,l.jsx)(c,{logo:s,alt:h,imageClassName:u}),null!=n&&(0,l.jsx)("b",{className:d,children:n})]})}},197:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});n(7294);var r=n(5742),a=n(5893);function o(e){let{locale:t,version:n,tag:o}=e;const i=t;return(0,a.jsxs)(r.Z,{children:[t&&(0,a.jsx)("meta",{name:"docusaurus_locale",content:t}),n&&(0,a.jsx)("meta",{name:"docusaurus_version",content:n}),o&&(0,a.jsx)("meta",{name:"docusaurus_tag",content:o}),i&&(0,a.jsx)("meta",{name:"docsearch:language",content:i}),n&&(0,a.jsx)("meta",{name:"docsearch:version",content:n}),o&&(0,a.jsx)("meta",{name:"docsearch:docusaurus_tag",content:o})]})}},9965:(e,t,n)=>{"use strict";n.d(t,{Z:()=>u});var r=n(7294),a=n(6010),o=n(2389),i=n(2949);const s={themedComponent:"themedComponent_mlkZ","themedComponent--light":"themedComponent--light_NVdE","themedComponent--dark":"themedComponent--dark_xIcU"};var l=n(5893);function c(e){let{className:t,children:n}=e;const c=(0,o.Z)(),{colorMode:u}=(0,i.I)();return(0,l.jsx)(l.Fragment,{children:(c?"dark"===u?["dark"]:["light"]:["light","dark"]).map((e=>{const o=n({theme:e,className:(0,a.Z)(t,s.themedComponent,s[`themedComponent--${e}`])});return(0,l.jsx)(r.Fragment,{children:o},e)}))})}function u(e){const{sources:t,className:n,alt:r,...a}=e;return(0,l.jsx)(c,{className:n,children:e=>{let{theme:n,className:o}=e;return(0,l.jsx)("img",{src:t[n],alt:r,className:o,...a})}})}},6043:(e,t,n)=>{"use strict";n.d(t,{u:()=>c,z:()=>b});var r=n(7294),a=n(412),o=n(469),i=n(1442),s=n(5893);const l="ease-in-out";function c(e){let{initialState:t}=e;const[n,a]=(0,r.useState)(t??!1),o=(0,r.useCallback)((()=>{a((e=>!e))}),[]);return{collapsed:n,setCollapsed:a,toggleCollapsed:o}}const u={display:"none",overflow:"hidden",height:"0px"},d={display:"block",overflow:"visible",height:"auto"};function p(e,t){const n=t?u:d;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function f(e){let{collapsibleRef:t,collapsed:n,animation:a}=e;const o=(0,r.useRef)(!1);(0,r.useEffect)((()=>{const e=t.current;function r(){const t=e.scrollHeight,n=a?.duration??function(e){if((0,i.n)())return 1;const t=e/36;return Math.round(10*(4+15*t**.25+t/5))}(t);return{transition:`height ${n}ms ${a?.easing??l}`,height:`${t}px`}}function s(){const t=r();e.style.transition=t.transition,e.style.height=t.height}if(!o.current)return p(e,n),void(o.current=!0);return e.style.willChange="height",function(){const t=requestAnimationFrame((()=>{n?(s(),requestAnimationFrame((()=>{e.style.height=u.height,e.style.overflow=u.overflow}))):(e.style.display="block",requestAnimationFrame((()=>{s()})))}));return()=>cancelAnimationFrame(t)}()}),[t,n,a])}function m(e){if(!a.Z.canUseDOM)return e?u:d}function h(e){let{as:t="div",collapsed:n,children:a,animation:o,onCollapseTransitionEnd:i,className:l,disableSSRStyle:c}=e;const u=(0,r.useRef)(null);return f({collapsibleRef:u,collapsed:n,animation:o}),(0,s.jsx)(t,{ref:u,style:c?void 0:m(n),onTransitionEnd:e=>{"height"===e.propertyName&&(p(u.current,n),i?.(n))},className:l,children:a})}function g(e){let{collapsed:t,...n}=e;const[a,i]=(0,r.useState)(!t),[l,c]=(0,r.useState)(t);return(0,o.Z)((()=>{t||i(!0)}),[t]),(0,o.Z)((()=>{a&&c(t)}),[a,t]),a?(0,s.jsx)(h,{...n,collapsed:l}):null}function b(e){let{lazy:t,...n}=e;const r=t?g:h;return(0,s.jsx)(r,{...n})}},9689:(e,t,n)=>{"use strict";n.d(t,{nT:()=>h,pl:()=>m});var r=n(7294),a=n(2389),o=n(12),i=n(902),s=n(6668),l=n(5893);const c=(0,o.WA)("docusaurus.announcement.dismiss"),u=(0,o.WA)("docusaurus.announcement.id"),d=()=>"true"===c.get(),p=e=>c.set(String(e)),f=r.createContext(null);function m(e){let{children:t}=e;const n=function(){const{announcementBar:e}=(0,s.L)(),t=(0,a.Z)(),[n,o]=(0,r.useState)((()=>!!t&&d()));(0,r.useEffect)((()=>{o(d())}),[]);const i=(0,r.useCallback)((()=>{p(!0),o(!0)}),[]);return(0,r.useEffect)((()=>{if(!e)return;const{id:t}=e;let n=u.get();"annoucement-bar"===n&&(n="announcement-bar");const r=t!==n;u.set(t),r&&p(!1),!r&&d()||o(!1)}),[e]),(0,r.useMemo)((()=>({isActive:!!e&&!n,close:i})),[e,n,i])}();return(0,l.jsx)(f.Provider,{value:n,children:t})}function h(){const e=(0,r.useContext)(f);if(!e)throw new i.i6("AnnouncementBarProvider");return e}},2949:(e,t,n)=>{"use strict";n.d(t,{I:()=>b,S:()=>g});var r=n(7294),a=n(412),o=n(902),i=n(12),s=n(6668),l=n(5893);const c=r.createContext(void 0),u="theme",d=(0,i.WA)(u),p={light:"light",dark:"dark"},f=e=>e===p.dark?p.dark:p.light,m=e=>a.Z.canUseDOM?f(document.documentElement.getAttribute("data-theme")):f(e),h=e=>{d.set(f(e))};function g(e){let{children:t}=e;const n=function(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,s.L)(),[a,o]=(0,r.useState)(m(e));(0,r.useEffect)((()=>{t&&d.del()}),[t]);const i=(0,r.useCallback)((function(t,r){void 0===r&&(r={});const{persist:a=!0}=r;t?(o(t),a&&h(t)):(o(n?window.matchMedia("(prefers-color-scheme: dark)").matches?p.dark:p.light:e),d.del())}),[n,e]);(0,r.useEffect)((()=>{document.documentElement.setAttribute("data-theme",f(a))}),[a]),(0,r.useEffect)((()=>{if(t)return;const e=e=>{if(e.key!==u)return;const t=d.get();null!==t&&i(f(t))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)}),[t,i]);const l=(0,r.useRef)(!1);return(0,r.useEffect)((()=>{if(t&&!n)return;const e=window.matchMedia("(prefers-color-scheme: dark)"),r=()=>{window.matchMedia("print").matches||l.current?l.current=window.matchMedia("print").matches:i(null)};return e.addListener(r),()=>e.removeListener(r)}),[i,t,n]),(0,r.useMemo)((()=>({colorMode:a,setColorMode:i,get isDarkTheme(){return a===p.dark},setLightTheme(){i(p.light)},setDarkTheme(){i(p.dark)}})),[a,i])}();return(0,l.jsx)(c.Provider,{value:n,children:t})}function b(){const e=(0,r.useContext)(c);if(null==e)throw new o.i6("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},373:(e,t,n)=>{"use strict";n.d(t,{J:()=>v,L5:()=>b});var r=n(7294),a=n(4104),o=n(9935),i=n(6668),s=n(3438),l=n(902),c=n(12),u=n(5893);const d=e=>`docs-preferred-version-${e}`,p={save:(e,t,n)=>{(0,c.WA)(d(e),{persistence:t}).set(n)},read:(e,t)=>(0,c.WA)(d(e),{persistence:t}).get(),clear:(e,t)=>{(0,c.WA)(d(e),{persistence:t}).del()}},f=e=>Object.fromEntries(e.map((e=>[e,{preferredVersionName:null}])));const m=r.createContext(null);function h(){const e=(0,a._r)(),t=(0,i.L)().docs.versionPersistence,n=(0,r.useMemo)((()=>Object.keys(e)),[e]),[o,s]=(0,r.useState)((()=>f(n)));(0,r.useEffect)((()=>{s(function(e){let{pluginIds:t,versionPersistence:n,allDocsData:r}=e;function a(e){const t=p.read(e,n);return r[e].versions.some((e=>e.name===t))?{preferredVersionName:t}:(p.clear(e,n),{preferredVersionName:null})}return Object.fromEntries(t.map((e=>[e,a(e)])))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]);return[o,(0,r.useMemo)((()=>({savePreferredVersion:function(e,n){p.save(e,t,n),s((t=>({...t,[e]:{preferredVersionName:n}})))}})),[t])]}function g(e){let{children:t}=e;const n=h();return(0,u.jsx)(m.Provider,{value:n,children:t})}function b(e){let{children:t}=e;return s.cE?(0,u.jsx)(g,{children:t}):(0,u.jsx)(u.Fragment,{children:t})}function y(){const e=(0,r.useContext)(m);if(!e)throw new l.i6("DocsPreferredVersionContextProvider");return e}function v(e){void 0===e&&(e=o.m);const t=(0,a.zh)(e),[n,i]=y(),{preferredVersionName:s}=n[e];return{preferredVersion:t.versions.find((e=>e.name===s))??null,savePreferredVersionName:(0,r.useCallback)((t=>{i.savePreferredVersion(e,t)}),[i,e])}}},1116:(e,t,n)=>{"use strict";n.d(t,{V:()=>c,b:()=>l});var r=n(7294),a=n(902),o=n(5893);const i=Symbol("EmptyContext"),s=r.createContext(i);function l(e){let{children:t,name:n,items:a}=e;const i=(0,r.useMemo)((()=>n&&a?{name:n,items:a}:null),[n,a]);return(0,o.jsx)(s.Provider,{value:i,children:t})}function c(){const e=(0,r.useContext)(s);if(e===i)throw new a.i6("DocsSidebarProvider");return e}},4477:(e,t,n)=>{"use strict";n.d(t,{E:()=>l,q:()=>s});var r=n(7294),a=n(902),o=n(5893);const i=r.createContext(null);function s(e){let{children:t,version:n}=e;return(0,o.jsx)(i.Provider,{value:n,children:t})}function l(){const e=(0,r.useContext)(i);if(null===e)throw new a.i6("DocsVersionProvider");return e}},3163:(e,t,n)=>{"use strict";n.d(t,{M:()=>p,e:()=>f});var r=n(7294),a=n(3102),o=n(7524),i=n(1980),s=n(6668),l=n(902),c=n(5893);const u=r.createContext(void 0);function d(){const e=function(){const e=(0,a.HY)(),{items:t}=(0,s.L)().navbar;return 0===t.length&&!e.component}(),t=(0,o.i)(),n=!e&&"mobile"===t,[l,c]=(0,r.useState)(!1);(0,i.Rb)((()=>{if(l)return c(!1),!1}));const u=(0,r.useCallback)((()=>{c((e=>!e))}),[]);return(0,r.useEffect)((()=>{"desktop"===t&&c(!1)}),[t]),(0,r.useMemo)((()=>({disabled:e,shouldRender:n,toggle:u,shown:l})),[e,n,u,l])}function p(e){let{children:t}=e;const n=d();return(0,c.jsx)(u.Provider,{value:n,children:t})}function f(){const e=r.useContext(u);if(void 0===e)throw new l.i6("NavbarMobileSidebarProvider");return e}},3102:(e,t,n)=>{"use strict";n.d(t,{HY:()=>l,Zo:()=>c,n2:()=>s});var r=n(7294),a=n(902),o=n(5893);const i=r.createContext(null);function s(e){let{children:t}=e;const n=(0,r.useState)({component:null,props:null});return(0,o.jsx)(i.Provider,{value:n,children:t})}function l(){const e=(0,r.useContext)(i);if(!e)throw new a.i6("NavbarSecondaryMenuContentProvider");return e[0]}function c(e){let{component:t,props:n}=e;const o=(0,r.useContext)(i);if(!o)throw new a.i6("NavbarSecondaryMenuContentProvider");const[,s]=o,l=(0,a.Ql)(n);return(0,r.useEffect)((()=>{s({component:t,props:l})}),[s,t,l]),(0,r.useEffect)((()=>()=>s({component:null,props:null})),[s]),null}},9727:(e,t,n)=>{"use strict";n.d(t,{h:()=>a,t:()=>o});var r=n(7294);const a="navigation-with-keyboard";function o(){(0,r.useEffect)((()=>{function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(a),"mousedown"===e.type&&document.body.classList.remove(a)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),()=>{document.body.classList.remove(a),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}}),[])}},7524:(e,t,n)=>{"use strict";n.d(t,{i:()=>s});var r=n(7294),a=n(412);const o={desktop:"desktop",mobile:"mobile",ssr:"ssr"},i=996;function s(){const[e,t]=(0,r.useState)((()=>"ssr"));return(0,r.useEffect)((()=>{function e(){t(function(){if(!a.Z.canUseDOM)throw new Error("getWindowSize() should only be called after React hydration");return window.innerWidth>i?o.desktop:o.mobile}())}return e(),window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e)}}),[]),e}},5281:(e,t,n)=>{"use strict";n.d(t,{k:()=>r});const r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",unlistedBanner:"theme-unlisted-banner",admonitionType:e=>`theme-admonition-${e}`},layout:{},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:e=>`theme-doc-sidebar-item-category-level-${e}`,docSidebarItemLinkLevel:e=>`theme-doc-sidebar-item-link-level-${e}`},blog:{}}},1442:(e,t,n)=>{"use strict";function r(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}n.d(t,{n:()=>r})},3438:(e,t,n)=>{"use strict";n.d(t,{LM:()=>m,MN:()=>T,SN:()=>C,_F:()=>y,cE:()=>p,f:()=>w,jA:()=>h,lO:()=>S,oz:()=>E,s1:()=>x,vY:()=>_,xz:()=>f});var r=n(7294),a=n(6550),o=n(8790),i=n(4104),s=n(373),l=n(4477),c=n(1116),u=n(7392),d=n(8596);const p=!!i._r;function f(e){const t=(0,l.E)();if(!e)return;const n=t.docs[e];if(!n)throw new Error(`no version doc found by id=${e}`);return n}function m(e){return"link"!==e.type||e.unlisted?"category"===e.type?function(e){if(e.href&&!e.linkUnlisted)return e.href;for(const t of e.items){const e=m(t);if(e)return e}}(e):void 0:e.href}function h(){const{pathname:e}=(0,a.TH)(),t=(0,c.V)();if(!t)throw new Error("Unexpected: cant find current sidebar in context");const n=k({sidebarItems:t.items,pathname:e,onlyCategories:!0}).slice(-1)[0];if(!n)throw new Error(`${e} is not associated with a category. useCurrentSidebarCategory() should only be used on category index pages.`);return n}const g=(e,t)=>void 0!==e&&(0,d.Mg)(e,t),b=(e,t)=>e.some((e=>y(e,t)));function y(e,t){return"link"===e.type?g(e.href,t):"category"===e.type&&(g(e.href,t)||b(e.items,t))}function v(e,t){switch(e.type){case"category":return y(e,t)||e.items.some((e=>v(e,t)));case"link":return!e.unlisted||y(e,t);default:return!1}}function w(e,t){return(0,r.useMemo)((()=>e.filter((e=>v(e,t)))),[e,t])}function k(e){let{sidebarItems:t,pathname:n,onlyCategories:r=!1}=e;const a=[];return function e(t){for(const o of t)if("category"===o.type&&((0,d.Mg)(o.href,n)||e(o.items))||"link"===o.type&&(0,d.Mg)(o.href,n)){return r&&"category"!==o.type||a.unshift(o),!0}return!1}(t),a}function x(){const e=(0,c.V)(),{pathname:t}=(0,a.TH)(),n=(0,i.gA)()?.pluginData.breadcrumbs;return!1!==n&&e?k({sidebarItems:e.items,pathname:t}):null}function S(e){const{activeVersion:t}=(0,i.Iw)(e),{preferredVersion:n}=(0,s.J)(e),a=(0,i.yW)(e);return(0,r.useMemo)((()=>(0,u.j)([t,n,a].filter(Boolean))),[t,n,a])}function E(e,t){const n=S(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.sidebars?Object.entries(e.sidebars):[])),r=t.find((t=>t[0]===e));if(!r)throw new Error(`Can't find any sidebar with id "${e}" in version${n.length>1?"s":""} ${n.map((e=>e.name)).join(", ")}".\nAvailable sidebar ids are:\n- ${t.map((e=>e[0])).join("\n- ")}`);return r[1]}),[e,n])}function _(e,t){const n=S(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.docs)),r=t.find((t=>t.id===e));if(!r){if(n.flatMap((e=>e.draftIds)).includes(e))return null;throw new Error(`Couldn't find any doc with id "${e}" in version${n.length>1?"s":""} "${n.map((e=>e.name)).join(", ")}".\nAvailable doc ids are:\n- ${(0,u.j)(t.map((e=>e.id))).join("\n- ")}`)}return r}),[e,n])}function C(e){let{route:t}=e;const n=(0,a.TH)(),r=(0,l.E)(),i=t.routes,s=i.find((e=>(0,a.LX)(n.pathname,e)));if(!s)return null;const c=s.sidebar,u=c?r.docsSidebars[c]:void 0;return{docElement:(0,o.H)(i),sidebarName:c,sidebarItems:u}}function T(e){return e.filter((e=>!("category"===e.type||"link"===e.type)||!!m(e)))}},1980:(e,t,n)=>{"use strict";n.d(t,{Rb:()=>i,_X:()=>s});var r=n(7294),a=n(6550),o=n(902);function i(e){!function(e){const t=(0,a.k6)(),n=(0,o.zX)(e);(0,r.useEffect)((()=>t.block(((e,t)=>n(e,t)))),[t,n])}(((t,n)=>{if("POP"===n)return e(t,n)}))}function s(e){return function(e){const t=(0,a.k6)();return(0,r.useSyncExternalStore)(t.listen,(()=>e(t)),(()=>e(t)))}((t=>null===e?null:new URLSearchParams(t.location.search).get(e)))}},7392:(e,t,n)=>{"use strict";function r(e,t){return void 0===t&&(t=(e,t)=>e===t),e.filter(((n,r)=>e.findIndex((e=>t(e,n)))!==r))}function a(e){return Array.from(new Set(e))}n.d(t,{j:()=>a,l:()=>r})},1944:(e,t,n)=>{"use strict";n.d(t,{FG:()=>f,d:()=>d,VC:()=>m});var r=n(7294),a=n(6010),o=n(5742),i=n(226);function s(){const e=r.useContext(i._);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}var l=n(4996),c=n(2263);var u=n(5893);function d(e){let{title:t,description:n,keywords:r,image:a,children:i}=e;const s=function(e){const{siteConfig:t}=(0,c.Z)(),{title:n,titleDelimiter:r}=t;return e?.trim().length?`${e.trim()} ${r} ${n}`:n}(t),{withBaseUrl:d}=(0,l.C)(),p=a?d(a,{absolute:!0}):void 0;return(0,u.jsxs)(o.Z,{children:[t&&(0,u.jsx)("title",{children:s}),t&&(0,u.jsx)("meta",{property:"og:title",content:s}),n&&(0,u.jsx)("meta",{name:"description",content:n}),n&&(0,u.jsx)("meta",{property:"og:description",content:n}),r&&(0,u.jsx)("meta",{name:"keywords",content:Array.isArray(r)?r.join(","):r}),p&&(0,u.jsx)("meta",{property:"og:image",content:p}),p&&(0,u.jsx)("meta",{name:"twitter:image",content:p}),i]})}const p=r.createContext(void 0);function f(e){let{className:t,children:n}=e;const i=r.useContext(p),s=(0,a.Z)(i,t);return(0,u.jsxs)(p.Provider,{value:s,children:[(0,u.jsx)(o.Z,{children:(0,u.jsx)("html",{className:s})}),n]})}function m(e){let{children:t}=e;const n=s(),r=`plugin-${n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`;const o=`plugin-id-${n.plugin.id}`;return(0,u.jsx)(f,{className:(0,a.Z)(r,o),children:t})}},902:(e,t,n)=>{"use strict";n.d(t,{D9:()=>s,Qc:()=>u,Ql:()=>c,i6:()=>l,zX:()=>i});var r=n(7294),a=n(469),o=n(5893);function i(e){const t=(0,r.useRef)(e);return(0,a.Z)((()=>{t.current=e}),[e]),(0,r.useCallback)((function(){return t.current(...arguments)}),[])}function s(e){const t=(0,r.useRef)();return(0,a.Z)((()=>{t.current=e})),t.current}class l extends Error{constructor(e,t){super(),this.name="ReactContextError",this.message=`Hook ${this.stack?.split("\n")[1]?.match(/at (?:\w+\.)?(?<name>\w+)/)?.groups.name??""} is called outside the <${e}>. ${t??""}`}}function c(e){const t=Object.entries(e);return t.sort(((e,t)=>e[0].localeCompare(t[0]))),(0,r.useMemo)((()=>e),t.flat())}function u(e){return t=>{let{children:n}=t;return(0,o.jsx)(o.Fragment,{children:e.reduceRight(((e,t)=>(0,o.jsx)(t,{children:e})),n)})}}},8596:(e,t,n)=>{"use strict";n.d(t,{Mg:()=>i,Ns:()=>s});var r=n(7294),a=n(723),o=n(2263);function i(e,t){const n=e=>(!e||e.endsWith("/")?e:`${e}/`)?.toLowerCase();return n(e)===n(t)}function s(){const{baseUrl:e}=(0,o.Z)().siteConfig;return(0,r.useMemo)((()=>function(e){let{baseUrl:t,routes:n}=e;function r(e){return e.path===t&&!0===e.exact}function a(e){return e.path===t&&!e.exact}return function e(t){if(0===t.length)return;return t.find(r)||e(t.filter(a).flatMap((e=>e.routes??[])))}(n)}({routes:a.Z,baseUrl:e})),[e])}},2466:(e,t,n)=>{"use strict";n.d(t,{Ct:()=>h,OC:()=>u,RF:()=>f,o5:()=>m});var r=n(7294),a=n(412),o=n(2389),i=n(469),s=n(902),l=n(5893);const c=r.createContext(void 0);function u(e){let{children:t}=e;const n=function(){const e=(0,r.useRef)(!0);return(0,r.useMemo)((()=>({scrollEventsEnabledRef:e,enableScrollEvents:()=>{e.current=!0},disableScrollEvents:()=>{e.current=!1}})),[])}();return(0,l.jsx)(c.Provider,{value:n,children:t})}function d(){const e=(0,r.useContext)(c);if(null==e)throw new s.i6("ScrollControllerProvider");return e}const p=()=>a.Z.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function f(e,t){void 0===t&&(t=[]);const{scrollEventsEnabledRef:n}=d(),a=(0,r.useRef)(p()),o=(0,s.zX)(e);(0,r.useEffect)((()=>{const e=()=>{if(!n.current)return;const e=p();o(e,a.current),a.current=e},t={passive:!0};return e(),window.addEventListener("scroll",e,t),()=>window.removeEventListener("scroll",e,t)}),[o,n,...t])}function m(){const e=d(),t=function(){const e=(0,r.useRef)({elem:null,top:0}),t=(0,r.useCallback)((t=>{e.current={elem:t,top:t.getBoundingClientRect().top}}),[]),n=(0,r.useCallback)((()=>{const{current:{elem:t,top:n}}=e;if(!t)return{restored:!1};const r=t.getBoundingClientRect().top-n;return r&&window.scrollBy({left:0,top:r}),e.current={elem:null,top:0},{restored:0!==r}}),[]);return(0,r.useMemo)((()=>({save:t,restore:n})),[n,t])}(),n=(0,r.useRef)(void 0),a=(0,r.useCallback)((r=>{t.save(r),e.disableScrollEvents(),n.current=()=>{const{restored:r}=t.restore();if(n.current=void 0,r){const t=()=>{e.enableScrollEvents(),window.removeEventListener("scroll",t)};window.addEventListener("scroll",t)}else e.enableScrollEvents()}}),[e,t]);return(0,i.Z)((()=>{queueMicrotask((()=>n.current?.()))})),{blockElementScrollPositionUntilNextRender:a}}function h(){const e=(0,r.useRef)(null),t=(0,o.Z)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:n=>{e.current=t?function(e){return window.scrollTo({top:e,behavior:"smooth"}),()=>{}}(n):function(e){let t=null;const n=document.documentElement.scrollTop>e;return function r(){const a=document.documentElement.scrollTop;(n&&a>e||!n&&a<e)&&(t=requestAnimationFrame(r),window.scrollTo(0,Math.floor(.85*(a-e))+e))}(),()=>t&&cancelAnimationFrame(t)}(n)},cancelScroll:()=>e.current?.()}}},3320:(e,t,n)=>{"use strict";n.d(t,{HX:()=>r,os:()=>a});n(2263);const r="default";function a(e,t){return`docs-${e}-${t}`}},12:(e,t,n)=>{"use strict";n.d(t,{Nk:()=>u,WA:()=>c});var r=n(7294);const a="localStorage";function o(e){let{key:t,oldValue:n,newValue:r,storage:a}=e;if(n===r)return;const o=document.createEvent("StorageEvent");o.initStorageEvent("storage",!1,!1,t,n,r,window.location.href,a),window.dispatchEvent(o)}function i(e){if(void 0===e&&(e=a),"undefined"==typeof window)throw new Error("Browser storage is not available on Node.js/Docusaurus SSR process.");if("none"===e)return null;try{return window[e]}catch(n){return t=n,s||(console.warn("Docusaurus browser storage is not available.\nPossible reasons: running Docusaurus in an iframe, in an incognito browser session, or using too strict browser privacy settings.",t),s=!0),null}var t}let s=!1;const l={get:()=>null,set:()=>{},del:()=>{},listen:()=>()=>{}};function c(e,t){if("undefined"==typeof window)return function(e){function t(){throw new Error(`Illegal storage API usage for storage key "${e}".\nDocusaurus storage APIs are not supposed to be called on the server-rendering process.\nPlease only call storage APIs in effects and event handlers.`)}return{get:t,set:t,del:t,listen:t}}(e);const n=i(t?.persistence);return null===n?l:{get:()=>{try{return n.getItem(e)}catch(t){return console.error(`Docusaurus storage error, can't get key=${e}`,t),null}},set:t=>{try{const r=n.getItem(e);n.setItem(e,t),o({key:e,oldValue:r,newValue:t,storage:n})}catch(r){console.error(`Docusaurus storage error, can't set ${e}=${t}`,r)}},del:()=>{try{const t=n.getItem(e);n.removeItem(e),o({key:e,oldValue:t,newValue:null,storage:n})}catch(t){console.error(`Docusaurus storage error, can't delete key=${e}`,t)}},listen:t=>{try{const r=r=>{r.storageArea===n&&r.key===e&&t(r)};return window.addEventListener("storage",r),()=>window.removeEventListener("storage",r)}catch(r){return console.error(`Docusaurus storage error, can't listen for changes of key=${e}`,r),()=>{}}}}}function u(e,t){const n=(0,r.useRef)((()=>null===e?l:c(e,t))).current(),a=(0,r.useCallback)((e=>"undefined"==typeof window?()=>{}:n.listen(e)),[n]);return[(0,r.useSyncExternalStore)(a,(()=>"undefined"==typeof window?null:n.get()),(()=>null)),n]}},4711:(e,t,n)=>{"use strict";n.d(t,{l:()=>i});var r=n(2263),a=n(6550),o=n(8780);function i(){const{siteConfig:{baseUrl:e,url:t,trailingSlash:n},i18n:{defaultLocale:i,currentLocale:s}}=(0,r.Z)(),{pathname:l}=(0,a.TH)(),c=(0,o.applyTrailingSlash)(l,{trailingSlash:n,baseUrl:e}),u=s===i?e:e.replace(`/${s}/`,"/"),d=c.replace(e,"");return{createUrl:function(e){let{locale:n,fullyQualified:r}=e;return`${r?t:""}${function(e){return e===i?`${u}`:`${u}${e}/`}(n)}${d}`}}}},5936:(e,t,n)=>{"use strict";n.d(t,{S:()=>i});var r=n(7294),a=n(6550),o=n(902);function i(e){const t=(0,a.TH)(),n=(0,o.D9)(t),i=(0,o.zX)(e);(0,r.useEffect)((()=>{n&&t!==n&&i({location:t,previousLocation:n})}),[i,t,n])}},6668:(e,t,n)=>{"use strict";n.d(t,{L:()=>a});var r=n(2263);function a(){return(0,r.Z)().siteConfig.themeConfig}},8802:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){const{trailingSlash:n,baseUrl:r}=t;if(e.startsWith("#"))return e;if(void 0===n)return e;const[a]=e.split(/[#?]/),o="/"===a||a===r?a:(i=a,n?function(e){return e.endsWith("/")?e:`${e}/`}(i):function(e){return e.endsWith("/")?e.slice(0,-1):e}(i));var i;return e.replace(a,o)}},4143:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=void 0,t.getErrorCausalChain=function e(t){return t.cause?[t,...e(t.cause)]:[t]}},8780:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=t.applyTrailingSlash=t.blogPostContainerID=void 0,t.blogPostContainerID="__blog-post-container";var a=n(8802);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r(a).default}});var o=n(4143);Object.defineProperty(t,"getErrorCausalChain",{enumerable:!0,get:function(){return o.getErrorCausalChain}})},6010:(e,t,n)=>{"use strict";function r(e){var t,n,a="";if("string"==typeof e||"number"==typeof e)a+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(n=r(e[t]))&&(a&&(a+=" "),a+=n);else for(t in e)e[t]&&(a&&(a+=" "),a+=t);return a}n.d(t,{Z:()=>a});const a=function(){for(var e,t,n=0,a="";n<arguments.length;)(e=arguments[n++])&&(t=r(e))&&(a&&(a+=" "),a+=t);return a}},9318:(e,t,n)=>{"use strict";n.d(t,{lX:()=>w,q_:()=>C,ob:()=>f,PP:()=>j,Ep:()=>p});var r=n(7462);function a(e){return"/"===e.charAt(0)}function o(e,t){for(var n=t,r=n+1,a=e.length;r<a;n+=1,r+=1)e[n]=e[r];e.pop()}const i=function(e,t){void 0===t&&(t="");var n,r=e&&e.split("/")||[],i=t&&t.split("/")||[],s=e&&a(e),l=t&&a(t),c=s||l;if(e&&a(e)?i=r:r.length&&(i.pop(),i=i.concat(r)),!i.length)return"/";if(i.length){var u=i[i.length-1];n="."===u||".."===u||""===u}else n=!1;for(var d=0,p=i.length;p>=0;p--){var f=i[p];"."===f?o(i,p):".."===f?(o(i,p),d++):d&&(o(i,p),d--)}if(!c)for(;d--;d)i.unshift("..");!c||""===i[0]||i[0]&&a(i[0])||i.unshift("");var m=i.join("/");return n&&"/"!==m.substr(-1)&&(m+="/"),m};var s=n(8776);function l(e){return"/"===e.charAt(0)?e:"/"+e}function c(e){return"/"===e.charAt(0)?e.substr(1):e}function u(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function d(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function p(e){var t=e.pathname,n=e.search,r=e.hash,a=t||"/";return n&&"?"!==n&&(a+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(a+="#"===r.charAt(0)?r:"#"+r),a}function f(e,t,n,a){var o;"string"==typeof e?(o=function(e){var t=e||"/",n="",r="",a=t.indexOf("#");-1!==a&&(r=t.substr(a),t=t.substr(0,a));var o=t.indexOf("?");return-1!==o&&(n=t.substr(o),t=t.substr(0,o)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),o.state=t):(void 0===(o=(0,r.Z)({},e)).pathname&&(o.pathname=""),o.search?"?"!==o.search.charAt(0)&&(o.search="?"+o.search):o.search="",o.hash?"#"!==o.hash.charAt(0)&&(o.hash="#"+o.hash):o.hash="",void 0!==t&&void 0===o.state&&(o.state=t));try{o.pathname=decodeURI(o.pathname)}catch(s){throw s instanceof URIError?new URIError('Pathname "'+o.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):s}return n&&(o.key=n),a?o.pathname?"/"!==o.pathname.charAt(0)&&(o.pathname=i(o.pathname,a.pathname)):o.pathname=a.pathname:o.pathname||(o.pathname="/"),o}function m(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,a){if(null!=e){var o="function"==typeof e?e(t,n):e;"string"==typeof o?"function"==typeof r?r(o,a):a(!0):a(!1!==o)}else a(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];t.forEach((function(e){return e.apply(void 0,n)}))}}}var h=!("undefined"==typeof window||!window.document||!window.document.createElement);function g(e,t){t(window.confirm(e))}var b="popstate",y="hashchange";function v(){try{return window.history.state||{}}catch(e){return{}}}function w(e){void 0===e&&(e={}),h||(0,s.Z)(!1);var t,n=window.history,a=(-1===(t=window.navigator.userAgent).indexOf("Android 2.")&&-1===t.indexOf("Android 4.0")||-1===t.indexOf("Mobile Safari")||-1!==t.indexOf("Chrome")||-1!==t.indexOf("Windows Phone"))&&window.history&&"pushState"in window.history,o=!(-1===window.navigator.userAgent.indexOf("Trident")),i=e,c=i.forceRefresh,w=void 0!==c&&c,k=i.getUserConfirmation,x=void 0===k?g:k,S=i.keyLength,E=void 0===S?6:S,_=e.basename?d(l(e.basename)):"";function C(e){var t=e||{},n=t.key,r=t.state,a=window.location,o=a.pathname+a.search+a.hash;return _&&(o=u(o,_)),f(o,r,n)}function T(){return Math.random().toString(36).substr(2,E)}var j=m();function N(e){(0,r.Z)($,e),$.length=n.length,j.notifyListeners($.location,$.action)}function R(e){(function(e){return void 0===e.state&&-1===navigator.userAgent.indexOf("CriOS")})(e)||P(C(e.state))}function A(){P(C(v()))}var L=!1;function P(e){if(L)L=!1,N();else{j.confirmTransitionTo(e,"POP",x,(function(t){t?N({action:"POP",location:e}):function(e){var t=$.location,n=I.indexOf(t.key);-1===n&&(n=0);var r=I.indexOf(e.key);-1===r&&(r=0);var a=n-r;a&&(L=!0,M(a))}(e)}))}}var O=C(v()),I=[O.key];function D(e){return _+p(e)}function M(e){n.go(e)}var F=0;function z(e){1===(F+=e)&&1===e?(window.addEventListener(b,R),o&&window.addEventListener(y,A)):0===F&&(window.removeEventListener(b,R),o&&window.removeEventListener(y,A))}var B=!1;var $={length:n.length,action:"POP",location:O,createHref:D,push:function(e,t){var r="PUSH",o=f(e,t,T(),$.location);j.confirmTransitionTo(o,r,x,(function(e){if(e){var t=D(o),i=o.key,s=o.state;if(a)if(n.pushState({key:i,state:s},null,t),w)window.location.href=t;else{var l=I.indexOf($.location.key),c=I.slice(0,l+1);c.push(o.key),I=c,N({action:r,location:o})}else window.location.href=t}}))},replace:function(e,t){var r="REPLACE",o=f(e,t,T(),$.location);j.confirmTransitionTo(o,r,x,(function(e){if(e){var t=D(o),i=o.key,s=o.state;if(a)if(n.replaceState({key:i,state:s},null,t),w)window.location.replace(t);else{var l=I.indexOf($.location.key);-1!==l&&(I[l]=o.key),N({action:r,location:o})}else window.location.replace(t)}}))},go:M,goBack:function(){M(-1)},goForward:function(){M(1)},block:function(e){void 0===e&&(e=!1);var t=j.setPrompt(e);return B||(z(1),B=!0),function(){return B&&(B=!1,z(-1)),t()}},listen:function(e){var t=j.appendListener(e);return z(1),function(){z(-1),t()}}};return $}var k="hashchange",x={hashbang:{encodePath:function(e){return"!"===e.charAt(0)?e:"!/"+c(e)},decodePath:function(e){return"!"===e.charAt(0)?e.substr(1):e}},noslash:{encodePath:c,decodePath:l},slash:{encodePath:l,decodePath:l}};function S(e){var t=e.indexOf("#");return-1===t?e:e.slice(0,t)}function E(){var e=window.location.href,t=e.indexOf("#");return-1===t?"":e.substring(t+1)}function _(e){window.location.replace(S(window.location.href)+"#"+e)}function C(e){void 0===e&&(e={}),h||(0,s.Z)(!1);var t=window.history,n=(window.navigator.userAgent.indexOf("Firefox"),e),a=n.getUserConfirmation,o=void 0===a?g:a,i=n.hashType,c=void 0===i?"slash":i,b=e.basename?d(l(e.basename)):"",y=x[c],v=y.encodePath,w=y.decodePath;function C(){var e=w(E());return b&&(e=u(e,b)),f(e)}var T=m();function j(e){(0,r.Z)(B,e),B.length=t.length,T.notifyListeners(B.location,B.action)}var N=!1,R=null;function A(){var e,t,n=E(),r=v(n);if(n!==r)_(r);else{var a=C(),i=B.location;if(!N&&(t=a,(e=i).pathname===t.pathname&&e.search===t.search&&e.hash===t.hash))return;if(R===p(a))return;R=null,function(e){if(N)N=!1,j();else{var t="POP";T.confirmTransitionTo(e,t,o,(function(n){n?j({action:t,location:e}):function(e){var t=B.location,n=I.lastIndexOf(p(t));-1===n&&(n=0);var r=I.lastIndexOf(p(e));-1===r&&(r=0);var a=n-r;a&&(N=!0,D(a))}(e)}))}}(a)}}var L=E(),P=v(L);L!==P&&_(P);var O=C(),I=[p(O)];function D(e){t.go(e)}var M=0;function F(e){1===(M+=e)&&1===e?window.addEventListener(k,A):0===M&&window.removeEventListener(k,A)}var z=!1;var B={length:t.length,action:"POP",location:O,createHref:function(e){var t=document.querySelector("base"),n="";return t&&t.getAttribute("href")&&(n=S(window.location.href)),n+"#"+v(b+p(e))},push:function(e,t){var n="PUSH",r=f(e,void 0,void 0,B.location);T.confirmTransitionTo(r,n,o,(function(e){if(e){var t=p(r),a=v(b+t);if(E()!==a){R=t,function(e){window.location.hash=e}(a);var o=I.lastIndexOf(p(B.location)),i=I.slice(0,o+1);i.push(t),I=i,j({action:n,location:r})}else j()}}))},replace:function(e,t){var n="REPLACE",r=f(e,void 0,void 0,B.location);T.confirmTransitionTo(r,n,o,(function(e){if(e){var t=p(r),a=v(b+t);E()!==a&&(R=t,_(a));var o=I.indexOf(p(B.location));-1!==o&&(I[o]=t),j({action:n,location:r})}}))},go:D,goBack:function(){D(-1)},goForward:function(){D(1)},block:function(e){void 0===e&&(e=!1);var t=T.setPrompt(e);return z||(F(1),z=!0),function(){return z&&(z=!1,F(-1)),t()}},listen:function(e){var t=T.appendListener(e);return F(1),function(){F(-1),t()}}};return B}function T(e,t,n){return Math.min(Math.max(e,t),n)}function j(e){void 0===e&&(e={});var t=e,n=t.getUserConfirmation,a=t.initialEntries,o=void 0===a?["/"]:a,i=t.initialIndex,s=void 0===i?0:i,l=t.keyLength,c=void 0===l?6:l,u=m();function d(e){(0,r.Z)(w,e),w.length=w.entries.length,u.notifyListeners(w.location,w.action)}function h(){return Math.random().toString(36).substr(2,c)}var g=T(s,0,o.length-1),b=o.map((function(e){return f(e,void 0,"string"==typeof e?h():e.key||h())})),y=p;function v(e){var t=T(w.index+e,0,w.entries.length-1),r=w.entries[t];u.confirmTransitionTo(r,"POP",n,(function(e){e?d({action:"POP",location:r,index:t}):d()}))}var w={length:b.length,action:"POP",location:b[g],index:g,entries:b,createHref:y,push:function(e,t){var r="PUSH",a=f(e,t,h(),w.location);u.confirmTransitionTo(a,r,n,(function(e){if(e){var t=w.index+1,n=w.entries.slice(0);n.length>t?n.splice(t,n.length-t,a):n.push(a),d({action:r,location:a,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",a=f(e,t,h(),w.location);u.confirmTransitionTo(a,r,n,(function(e){e&&(w.entries[w.index]=a,d({action:r,location:a}))}))},go:v,goBack:function(){v(-1)},goForward:function(){v(1)},canGo:function(e){var t=w.index+e;return t>=0&&t<w.entries.length},block:function(e){return void 0===e&&(e=!1),u.setPrompt(e)},listen:function(e){return u.appendListener(e)}};return w}},8679:(e,t,n)=>{"use strict";var r=n(9864),a={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},o={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},s={};function l(e){return r.isMemo(e)?i:s[e.$$typeof]||a}s[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},s[r.Memo]=i;var c=Object.defineProperty,u=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,p=Object.getOwnPropertyDescriptor,f=Object.getPrototypeOf,m=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(m){var a=f(n);a&&a!==m&&e(t,a,r)}var i=u(n);d&&(i=i.concat(d(n)));for(var s=l(t),h=l(n),g=0;g<i.length;++g){var b=i[g];if(!(o[b]||r&&r[b]||h&&h[b]||s&&s[b])){var y=p(n,b);try{c(t,b,y)}catch(v){}}}}return t}},1143:e=>{"use strict";e.exports=function(e,t,n,r,a,o,i,s){if(!e){var l;if(void 0===t)l=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var c=[n,r,a,o,i,s],u=0;(l=new Error(t.replace(/%s/g,(function(){return c[u++]})))).name="Invariant Violation"}throw l.framesToPop=1,l}}},5826:e=>{e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},813:function(e){e.exports=function(){"use strict";var e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},t=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},n=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},a=function(){function e(n){var r=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:5e3;t(this,e),this.ctx=n,this.iframes=r,this.exclude=a,this.iframesTimeout=o}return n(e,[{key:"getContexts",value:function(){var e=[];return(void 0!==this.ctx&&this.ctx?NodeList.prototype.isPrototypeOf(this.ctx)?Array.prototype.slice.call(this.ctx):Array.isArray(this.ctx)?this.ctx:"string"==typeof this.ctx?Array.prototype.slice.call(document.querySelectorAll(this.ctx)):[this.ctx]:[]).forEach((function(t){var n=e.filter((function(e){return e.contains(t)})).length>0;-1!==e.indexOf(t)||n||e.push(t)})),e}},{key:"getIframeContents",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){},r=void 0;try{var a=e.contentWindow;if(r=a.document,!a||!r)throw new Error("iframe inaccessible")}catch(o){n()}r&&t(r)}},{key:"isIframeBlank",value:function(e){var t="about:blank",n=e.getAttribute("src").trim();return e.contentWindow.location.href===t&&n!==t&&n}},{key:"observeIframeLoad",value:function(e,t,n){var r=this,a=!1,o=null,i=function i(){if(!a){a=!0,clearTimeout(o);try{r.isIframeBlank(e)||(e.removeEventListener("load",i),r.getIframeContents(e,t,n))}catch(s){n()}}};e.addEventListener("load",i),o=setTimeout(i,this.iframesTimeout)}},{key:"onIframeReady",value:function(e,t,n){try{"complete"===e.contentWindow.document.readyState?this.isIframeBlank(e)?this.observeIframeLoad(e,t,n):this.getIframeContents(e,t,n):this.observeIframeLoad(e,t,n)}catch(r){n()}}},{key:"waitForIframes",value:function(e,t){var n=this,r=0;this.forEachIframe(e,(function(){return!0}),(function(e){r++,n.waitForIframes(e.querySelector("html"),(function(){--r||t()}))}),(function(e){e||t()}))}},{key:"forEachIframe",value:function(t,n,r){var a=this,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:function(){},i=t.querySelectorAll("iframe"),s=i.length,l=0;i=Array.prototype.slice.call(i);var c=function(){--s<=0&&o(l)};s||c(),i.forEach((function(t){e.matches(t,a.exclude)?c():a.onIframeReady(t,(function(e){n(t)&&(l++,r(e)),c()}),c)}))}},{key:"createIterator",value:function(e,t,n){return document.createNodeIterator(e,t,n,!1)}},{key:"createInstanceOnIframe",value:function(t){return new e(t.querySelector("html"),this.iframes)}},{key:"compareNodeIframe",value:function(e,t,n){if(e.compareDocumentPosition(n)&Node.DOCUMENT_POSITION_PRECEDING){if(null===t)return!0;if(t.compareDocumentPosition(n)&Node.DOCUMENT_POSITION_FOLLOWING)return!0}return!1}},{key:"getIteratorNode",value:function(e){var t=e.previousNode();return{prevNode:t,node:(null===t||e.nextNode())&&e.nextNode()}}},{key:"checkIframeFilter",value:function(e,t,n,r){var a=!1,o=!1;return r.forEach((function(e,t){e.val===n&&(a=t,o=e.handled)})),this.compareNodeIframe(e,t,n)?(!1!==a||o?!1===a||o||(r[a].handled=!0):r.push({val:n,handled:!0}),!0):(!1===a&&r.push({val:n,handled:!1}),!1)}},{key:"handleOpenIframes",value:function(e,t,n,r){var a=this;e.forEach((function(e){e.handled||a.getIframeContents(e.val,(function(e){a.createInstanceOnIframe(e).forEachNode(t,n,r)}))}))}},{key:"iterateThroughNodes",value:function(e,t,n,r,a){for(var o=this,i=this.createIterator(t,e,r),s=[],l=[],c=void 0,u=void 0,d=function(){var e=o.getIteratorNode(i);return u=e.prevNode,c=e.node};d();)this.iframes&&this.forEachIframe(t,(function(e){return o.checkIframeFilter(c,u,e,s)}),(function(t){o.createInstanceOnIframe(t).forEachNode(e,(function(e){return l.push(e)}),r)})),l.push(c);l.forEach((function(e){n(e)})),this.iframes&&this.handleOpenIframes(s,e,n,r),a()}},{key:"forEachNode",value:function(e,t,n){var r=this,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:function(){},o=this.getContexts(),i=o.length;i||a(),o.forEach((function(o){var s=function(){r.iterateThroughNodes(e,o,t,n,(function(){--i<=0&&a()}))};r.iframes?r.waitForIframes(o,s):s()}))}}],[{key:"matches",value:function(e,t){var n="string"==typeof t?[t]:t,r=e.matches||e.matchesSelector||e.msMatchesSelector||e.mozMatchesSelector||e.oMatchesSelector||e.webkitMatchesSelector;if(r){var a=!1;return n.every((function(t){return!r.call(e,t)||(a=!0,!1)})),a}return!1}}]),e}(),o=function(){function o(e){t(this,o),this.ctx=e,this.ie=!1;var n=window.navigator.userAgent;(n.indexOf("MSIE")>-1||n.indexOf("Trident")>-1)&&(this.ie=!0)}return n(o,[{key:"log",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"debug",r=this.opt.log;this.opt.debug&&"object"===(void 0===r?"undefined":e(r))&&"function"==typeof r[n]&&r[n]("mark.js: "+t)}},{key:"escapeStr",value:function(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}},{key:"createRegExp",value:function(e){return"disabled"!==this.opt.wildcards&&(e=this.setupWildcardsRegExp(e)),e=this.escapeStr(e),Object.keys(this.opt.synonyms).length&&(e=this.createSynonymsRegExp(e)),(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.setupIgnoreJoinersRegExp(e)),this.opt.diacritics&&(e=this.createDiacriticsRegExp(e)),e=this.createMergedBlanksRegExp(e),(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.createJoinersRegExp(e)),"disabled"!==this.opt.wildcards&&(e=this.createWildcardsRegExp(e)),e=this.createAccuracyRegExp(e)}},{key:"createSynonymsRegExp",value:function(e){var t=this.opt.synonyms,n=this.opt.caseSensitive?"":"i",r=this.opt.ignoreJoiners||this.opt.ignorePunctuation.length?"\0":"";for(var a in t)if(t.hasOwnProperty(a)){var o=t[a],i="disabled"!==this.opt.wildcards?this.setupWildcardsRegExp(a):this.escapeStr(a),s="disabled"!==this.opt.wildcards?this.setupWildcardsRegExp(o):this.escapeStr(o);""!==i&&""!==s&&(e=e.replace(new RegExp("("+this.escapeStr(i)+"|"+this.escapeStr(s)+")","gm"+n),r+"("+this.processSynomyms(i)+"|"+this.processSynomyms(s)+")"+r))}return e}},{key:"processSynomyms",value:function(e){return(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.setupIgnoreJoinersRegExp(e)),e}},{key:"setupWildcardsRegExp",value:function(e){return(e=e.replace(/(?:\\)*\?/g,(function(e){return"\\"===e.charAt(0)?"?":"\x01"}))).replace(/(?:\\)*\*/g,(function(e){return"\\"===e.charAt(0)?"*":"\x02"}))}},{key:"createWildcardsRegExp",value:function(e){var t="withSpaces"===this.opt.wildcards;return e.replace(/\u0001/g,t?"[\\S\\s]?":"\\S?").replace(/\u0002/g,t?"[\\S\\s]*?":"\\S*")}},{key:"setupIgnoreJoinersRegExp",value:function(e){return e.replace(/[^(|)\\]/g,(function(e,t,n){var r=n.charAt(t+1);return/[(|)\\]/.test(r)||""===r?e:e+"\0"}))}},{key:"createJoinersRegExp",value:function(e){var t=[],n=this.opt.ignorePunctuation;return Array.isArray(n)&&n.length&&t.push(this.escapeStr(n.join(""))),this.opt.ignoreJoiners&&t.push("\\u00ad\\u200b\\u200c\\u200d"),t.length?e.split(/\u0000+/).join("["+t.join("")+"]*"):e}},{key:"createDiacriticsRegExp",value:function(e){var t=this.opt.caseSensitive?"":"i",n=this.opt.caseSensitive?["a\xe0\xe1\u1ea3\xe3\u1ea1\u0103\u1eb1\u1eaf\u1eb3\u1eb5\u1eb7\xe2\u1ea7\u1ea5\u1ea9\u1eab\u1ead\xe4\xe5\u0101\u0105","A\xc0\xc1\u1ea2\xc3\u1ea0\u0102\u1eb0\u1eae\u1eb2\u1eb4\u1eb6\xc2\u1ea6\u1ea4\u1ea8\u1eaa\u1eac\xc4\xc5\u0100\u0104","c\xe7\u0107\u010d","C\xc7\u0106\u010c","d\u0111\u010f","D\u0110\u010e","e\xe8\xe9\u1ebb\u1ebd\u1eb9\xea\u1ec1\u1ebf\u1ec3\u1ec5\u1ec7\xeb\u011b\u0113\u0119","E\xc8\xc9\u1eba\u1ebc\u1eb8\xca\u1ec0\u1ebe\u1ec2\u1ec4\u1ec6\xcb\u011a\u0112\u0118","i\xec\xed\u1ec9\u0129\u1ecb\xee\xef\u012b","I\xcc\xcd\u1ec8\u0128\u1eca\xce\xcf\u012a","l\u0142","L\u0141","n\xf1\u0148\u0144","N\xd1\u0147\u0143","o\xf2\xf3\u1ecf\xf5\u1ecd\xf4\u1ed3\u1ed1\u1ed5\u1ed7\u1ed9\u01a1\u1edf\u1ee1\u1edb\u1edd\u1ee3\xf6\xf8\u014d","O\xd2\xd3\u1ece\xd5\u1ecc\xd4\u1ed2\u1ed0\u1ed4\u1ed6\u1ed8\u01a0\u1ede\u1ee0\u1eda\u1edc\u1ee2\xd6\xd8\u014c","r\u0159","R\u0158","s\u0161\u015b\u0219\u015f","S\u0160\u015a\u0218\u015e","t\u0165\u021b\u0163","T\u0164\u021a\u0162","u\xf9\xfa\u1ee7\u0169\u1ee5\u01b0\u1eeb\u1ee9\u1eed\u1eef\u1ef1\xfb\xfc\u016f\u016b","U\xd9\xda\u1ee6\u0168\u1ee4\u01af\u1eea\u1ee8\u1eec\u1eee\u1ef0\xdb\xdc\u016e\u016a","y\xfd\u1ef3\u1ef7\u1ef9\u1ef5\xff","Y\xdd\u1ef2\u1ef6\u1ef8\u1ef4\u0178","z\u017e\u017c\u017a","Z\u017d\u017b\u0179"]:["a\xe0\xe1\u1ea3\xe3\u1ea1\u0103\u1eb1\u1eaf\u1eb3\u1eb5\u1eb7\xe2\u1ea7\u1ea5\u1ea9\u1eab\u1ead\xe4\xe5\u0101\u0105A\xc0\xc1\u1ea2\xc3\u1ea0\u0102\u1eb0\u1eae\u1eb2\u1eb4\u1eb6\xc2\u1ea6\u1ea4\u1ea8\u1eaa\u1eac\xc4\xc5\u0100\u0104","c\xe7\u0107\u010dC\xc7\u0106\u010c","d\u0111\u010fD\u0110\u010e","e\xe8\xe9\u1ebb\u1ebd\u1eb9\xea\u1ec1\u1ebf\u1ec3\u1ec5\u1ec7\xeb\u011b\u0113\u0119E\xc8\xc9\u1eba\u1ebc\u1eb8\xca\u1ec0\u1ebe\u1ec2\u1ec4\u1ec6\xcb\u011a\u0112\u0118","i\xec\xed\u1ec9\u0129\u1ecb\xee\xef\u012bI\xcc\xcd\u1ec8\u0128\u1eca\xce\xcf\u012a","l\u0142L\u0141","n\xf1\u0148\u0144N\xd1\u0147\u0143","o\xf2\xf3\u1ecf\xf5\u1ecd\xf4\u1ed3\u1ed1\u1ed5\u1ed7\u1ed9\u01a1\u1edf\u1ee1\u1edb\u1edd\u1ee3\xf6\xf8\u014dO\xd2\xd3\u1ece\xd5\u1ecc\xd4\u1ed2\u1ed0\u1ed4\u1ed6\u1ed8\u01a0\u1ede\u1ee0\u1eda\u1edc\u1ee2\xd6\xd8\u014c","r\u0159R\u0158","s\u0161\u015b\u0219\u015fS\u0160\u015a\u0218\u015e","t\u0165\u021b\u0163T\u0164\u021a\u0162","u\xf9\xfa\u1ee7\u0169\u1ee5\u01b0\u1eeb\u1ee9\u1eed\u1eef\u1ef1\xfb\xfc\u016f\u016bU\xd9\xda\u1ee6\u0168\u1ee4\u01af\u1eea\u1ee8\u1eec\u1eee\u1ef0\xdb\xdc\u016e\u016a","y\xfd\u1ef3\u1ef7\u1ef9\u1ef5\xffY\xdd\u1ef2\u1ef6\u1ef8\u1ef4\u0178","z\u017e\u017c\u017aZ\u017d\u017b\u0179"],r=[];return e.split("").forEach((function(a){n.every((function(n){if(-1!==n.indexOf(a)){if(r.indexOf(n)>-1)return!1;e=e.replace(new RegExp("["+n+"]","gm"+t),"["+n+"]"),r.push(n)}return!0}))})),e}},{key:"createMergedBlanksRegExp",value:function(e){return e.replace(/[\s]+/gim,"[\\s]+")}},{key:"createAccuracyRegExp",value:function(e){var t=this,n="!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~\xa1\xbf",r=this.opt.accuracy,a="string"==typeof r?r:r.value,o="string"==typeof r?[]:r.limiters,i="";switch(o.forEach((function(e){i+="|"+t.escapeStr(e)})),a){case"partially":default:return"()("+e+")";case"complementary":return"()([^"+(i="\\s"+(i||this.escapeStr(n)))+"]*"+e+"[^"+i+"]*)";case"exactly":return"(^|\\s"+i+")("+e+")(?=$|\\s"+i+")"}}},{key:"getSeparatedKeywords",value:function(e){var t=this,n=[];return e.forEach((function(e){t.opt.separateWordSearch?e.split(" ").forEach((function(e){e.trim()&&-1===n.indexOf(e)&&n.push(e)})):e.trim()&&-1===n.indexOf(e)&&n.push(e)})),{keywords:n.sort((function(e,t){return t.length-e.length})),length:n.length}}},{key:"isNumeric",value:function(e){return Number(parseFloat(e))==e}},{key:"checkRanges",value:function(e){var t=this;if(!Array.isArray(e)||"[object Object]"!==Object.prototype.toString.call(e[0]))return this.log("markRanges() will only accept an array of objects"),this.opt.noMatch(e),[];var n=[],r=0;return e.sort((function(e,t){return e.start-t.start})).forEach((function(e){var a=t.callNoMatchOnInvalidRanges(e,r),o=a.start,i=a.end;a.valid&&(e.start=o,e.length=i-o,n.push(e),r=i)})),n}},{key:"callNoMatchOnInvalidRanges",value:function(e,t){var n=void 0,r=void 0,a=!1;return e&&void 0!==e.start?(r=(n=parseInt(e.start,10))+parseInt(e.length,10),this.isNumeric(e.start)&&this.isNumeric(e.length)&&r-t>0&&r-n>0?a=!0:(this.log("Ignoring invalid or overlapping range: "+JSON.stringify(e)),this.opt.noMatch(e))):(this.log("Ignoring invalid range: "+JSON.stringify(e)),this.opt.noMatch(e)),{start:n,end:r,valid:a}}},{key:"checkWhitespaceRanges",value:function(e,t,n){var r=void 0,a=!0,o=n.length,i=t-o,s=parseInt(e.start,10)-i;return(r=(s=s>o?o:s)+parseInt(e.length,10))>o&&(r=o,this.log("End range automatically set to the max value of "+o)),s<0||r-s<0||s>o||r>o?(a=!1,this.log("Invalid range: "+JSON.stringify(e)),this.opt.noMatch(e)):""===n.substring(s,r).replace(/\s+/g,"")&&(a=!1,this.log("Skipping whitespace only range: "+JSON.stringify(e)),this.opt.noMatch(e)),{start:s,end:r,valid:a}}},{key:"getTextNodes",value:function(e){var t=this,n="",r=[];this.iterator.forEachNode(NodeFilter.SHOW_TEXT,(function(e){r.push({start:n.length,end:(n+=e.textContent).length,node:e})}),(function(e){return t.matchesExclude(e.parentNode)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT}),(function(){e({value:n,nodes:r})}))}},{key:"matchesExclude",value:function(e){return a.matches(e,this.opt.exclude.concat(["script","style","title","head","html"]))}},{key:"wrapRangeInTextNode",value:function(e,t,n){var r=this.opt.element?this.opt.element:"mark",a=e.splitText(t),o=a.splitText(n-t),i=document.createElement(r);return i.setAttribute("data-markjs","true"),this.opt.className&&i.setAttribute("class",this.opt.className),i.textContent=a.textContent,a.parentNode.replaceChild(i,a),o}},{key:"wrapRangeInMappedTextNode",value:function(e,t,n,r,a){var o=this;e.nodes.every((function(i,s){var l=e.nodes[s+1];if(void 0===l||l.start>t){if(!r(i.node))return!1;var c=t-i.start,u=(n>i.end?i.end:n)-i.start,d=e.value.substr(0,i.start),p=e.value.substr(u+i.start);if(i.node=o.wrapRangeInTextNode(i.node,c,u),e.value=d+p,e.nodes.forEach((function(t,n){n>=s&&(e.nodes[n].start>0&&n!==s&&(e.nodes[n].start-=u),e.nodes[n].end-=u)})),n-=u,a(i.node.previousSibling,i.start),!(n>i.end))return!1;t=i.end}return!0}))}},{key:"wrapMatches",value:function(e,t,n,r,a){var o=this,i=0===t?0:t+1;this.getTextNodes((function(t){t.nodes.forEach((function(t){t=t.node;for(var a=void 0;null!==(a=e.exec(t.textContent))&&""!==a[i];)if(n(a[i],t)){var s=a.index;if(0!==i)for(var l=1;l<i;l++)s+=a[l].length;t=o.wrapRangeInTextNode(t,s,s+a[i].length),r(t.previousSibling),e.lastIndex=0}})),a()}))}},{key:"wrapMatchesAcrossElements",value:function(e,t,n,r,a){var o=this,i=0===t?0:t+1;this.getTextNodes((function(t){for(var s=void 0;null!==(s=e.exec(t.value))&&""!==s[i];){var l=s.index;if(0!==i)for(var c=1;c<i;c++)l+=s[c].length;var u=l+s[i].length;o.wrapRangeInMappedTextNode(t,l,u,(function(e){return n(s[i],e)}),(function(t,n){e.lastIndex=n,r(t)}))}a()}))}},{key:"wrapRangeFromIndex",value:function(e,t,n,r){var a=this;this.getTextNodes((function(o){var i=o.value.length;e.forEach((function(e,r){var s=a.checkWhitespaceRanges(e,i,o.value),l=s.start,c=s.end;s.valid&&a.wrapRangeInMappedTextNode(o,l,c,(function(n){return t(n,e,o.value.substring(l,c),r)}),(function(t){n(t,e)}))})),r()}))}},{key:"unwrapMatches",value:function(e){for(var t=e.parentNode,n=document.createDocumentFragment();e.firstChild;)n.appendChild(e.removeChild(e.firstChild));t.replaceChild(n,e),this.ie?this.normalizeTextNode(t):t.normalize()}},{key:"normalizeTextNode",value:function(e){if(e){if(3===e.nodeType)for(;e.nextSibling&&3===e.nextSibling.nodeType;)e.nodeValue+=e.nextSibling.nodeValue,e.parentNode.removeChild(e.nextSibling);else this.normalizeTextNode(e.firstChild);this.normalizeTextNode(e.nextSibling)}}},{key:"markRegExp",value:function(e,t){var n=this;this.opt=t,this.log('Searching with expression "'+e+'"');var r=0,a="wrapMatches",o=function(e){r++,n.opt.each(e)};this.opt.acrossElements&&(a="wrapMatchesAcrossElements"),this[a](e,this.opt.ignoreGroups,(function(e,t){return n.opt.filter(t,e,r)}),o,(function(){0===r&&n.opt.noMatch(e),n.opt.done(r)}))}},{key:"mark",value:function(e,t){var n=this;this.opt=t;var r=0,a="wrapMatches",o=this.getSeparatedKeywords("string"==typeof e?[e]:e),i=o.keywords,s=o.length,l=this.opt.caseSensitive?"":"i",c=function e(t){var o=new RegExp(n.createRegExp(t),"gm"+l),c=0;n.log('Searching with expression "'+o+'"'),n[a](o,1,(function(e,a){return n.opt.filter(a,t,r,c)}),(function(e){c++,r++,n.opt.each(e)}),(function(){0===c&&n.opt.noMatch(t),i[s-1]===t?n.opt.done(r):e(i[i.indexOf(t)+1])}))};this.opt.acrossElements&&(a="wrapMatchesAcrossElements"),0===s?this.opt.done(r):c(i[0])}},{key:"markRanges",value:function(e,t){var n=this;this.opt=t;var r=0,a=this.checkRanges(e);a&&a.length?(this.log("Starting to mark with the following ranges: "+JSON.stringify(a)),this.wrapRangeFromIndex(a,(function(e,t,r,a){return n.opt.filter(e,t,r,a)}),(function(e,t){r++,n.opt.each(e,t)}),(function(){n.opt.done(r)}))):this.opt.done(r)}},{key:"unmark",value:function(e){var t=this;this.opt=e;var n=this.opt.element?this.opt.element:"*";n+="[data-markjs]",this.opt.className&&(n+="."+this.opt.className),this.log('Removal selector "'+n+'"'),this.iterator.forEachNode(NodeFilter.SHOW_ELEMENT,(function(e){t.unwrapMatches(e)}),(function(e){var r=a.matches(e,n),o=t.matchesExclude(e);return!r||o?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT}),this.opt.done)}},{key:"opt",set:function(e){this._opt=r({},{element:"",className:"",exclude:[],iframes:!1,iframesTimeout:5e3,separateWordSearch:!0,diacritics:!0,synonyms:{},accuracy:"partially",acrossElements:!1,caseSensitive:!1,ignoreJoiners:!1,ignoreGroups:0,ignorePunctuation:[],wildcards:"disabled",each:function(){},noMatch:function(){},filter:function(){return!0},done:function(){},debug:!1,log:window.console},e)},get:function(){return this._opt}},{key:"iterator",get:function(){return new a(this.ctx,this.opt.iframes,this.opt.exclude,this.opt.iframesTimeout)}}]),o}();function i(e){var t=this,n=new o(e);return this.mark=function(e,r){return n.mark(e,r),t},this.markRegExp=function(e,r){return n.markRegExp(e,r),t},this.markRanges=function(e,r){return n.markRanges(e,r),t},this.unmark=function(e){return n.unmark(e),t},this}return i}()},2497:(e,t,n)=>{"use strict";n.r(t)},2295:(e,t,n)=>{"use strict";n.r(t)},4865:function(e,t,n){var r,a;r=function(){var e,t,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'<div class="bar" role="bar"><div class="peg"></div></div><div class="spinner" role="spinner"><div class="spinner-icon"></div></div>'};function a(e,t,n){return e<t?t:e>n?n:e}function o(e){return 100*(-1+e)}function i(e,t,n){var a;return(a="translate3d"===r.positionUsing?{transform:"translate3d("+o(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+o(e)+"%,0)"}:{"margin-left":o(e)+"%"}).transition="all "+t+"ms "+n,a}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(r[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=a(e,r.minimum,1),n.status=1===e?null:e;var o=n.render(!t),c=o.querySelector(r.barSelector),u=r.speed,d=r.easing;return o.offsetWidth,s((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),l(c,i(e,u,d)),1===e?(l(o,{transition:"none",opacity:1}),o.offsetWidth,setTimeout((function(){l(o,{transition:"all "+u+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),u)}),u)):setTimeout(t,u)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),r.trickleSpeed)};return r.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*a(Math.random()*t,.1,.95)),t=a(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},e=0,t=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===t&&n.start(),e++,t++,r.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");u(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var a,i=t.querySelector(r.barSelector),s=e?"-100":o(n.status||0),c=document.querySelector(r.parent);return l(i,{transition:"all 0 linear",transform:"translate3d("+s+"%,0,0)"}),r.showSpinner||(a=t.querySelector(r.spinnerSelector))&&f(a),c!=document.body&&u(c,"nprogress-custom-parent"),c.appendChild(t),t},n.remove=function(){d(document.documentElement,"nprogress-busy"),d(document.querySelector(r.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&f(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var s=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),l=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()}))}function r(t){var n=document.body.style;if(t in n)return t;for(var r,a=e.length,o=t.charAt(0).toUpperCase()+t.slice(1);a--;)if((r=e[a]+o)in n)return r;return t}function a(e){return e=n(e),t[e]||(t[e]=r(e))}function o(e,t,n){t=a(t),e.style[t]=n}return function(e,t){var n,r,a=arguments;if(2==a.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&o(e,n,r);else o(e,a[1],a[2])}}();function c(e,t){return("string"==typeof e?e:p(e)).indexOf(" "+t+" ")>=0}function u(e,t){var n=p(e),r=n+t;c(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=p(e);c(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function p(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function f(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n},void 0===(a="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=a)},4779:(e,t,n)=>{var r=n(5826);e.exports=f,e.exports.parse=o,e.exports.compile=function(e,t){return s(o(e,t),t)},e.exports.tokensToFunction=s,e.exports.tokensToRegExp=p;var a=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function o(e,t){for(var n,r=[],o=0,i=0,s="",u=t&&t.delimiter||"/";null!=(n=a.exec(e));){var d=n[0],p=n[1],f=n.index;if(s+=e.slice(i,f),i=f+d.length,p)s+=p[1];else{var m=e[i],h=n[2],g=n[3],b=n[4],y=n[5],v=n[6],w=n[7];s&&(r.push(s),s="");var k=null!=h&&null!=m&&m!==h,x="+"===v||"*"===v,S="?"===v||"*"===v,E=n[2]||u,_=b||y;r.push({name:g||o++,prefix:h||"",delimiter:E,optional:S,repeat:x,partial:k,asterisk:!!w,pattern:_?c(_):w?".*":"[^"+l(E)+"]+?"})}}return i<e.length&&(s+=e.substr(i)),s&&r.push(s),r}function i(e){return encodeURI(e).replace(/[\/?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))}function s(e,t){for(var n=new Array(e.length),a=0;a<e.length;a++)"object"==typeof e[a]&&(n[a]=new RegExp("^(?:"+e[a].pattern+")$",d(t)));return function(t,a){for(var o="",s=t||{},l=(a||{}).pretty?i:encodeURIComponent,c=0;c<e.length;c++){var u=e[c];if("string"!=typeof u){var d,p=s[u.name];if(null==p){if(u.optional){u.partial&&(o+=u.prefix);continue}throw new TypeError('Expected "'+u.name+'" to be defined')}if(r(p)){if(!u.repeat)throw new TypeError('Expected "'+u.name+'" to not repeat, but received `'+JSON.stringify(p)+"`");if(0===p.length){if(u.optional)continue;throw new TypeError('Expected "'+u.name+'" to not be empty')}for(var f=0;f<p.length;f++){if(d=l(p[f]),!n[c].test(d))throw new TypeError('Expected all "'+u.name+'" to match "'+u.pattern+'", but received `'+JSON.stringify(d)+"`");o+=(0===f?u.prefix:u.delimiter)+d}}else{if(d=u.asterisk?encodeURI(p).replace(/[?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})):l(p),!n[c].test(d))throw new TypeError('Expected "'+u.name+'" to match "'+u.pattern+'", but received "'+d+'"');o+=u.prefix+d}}else o+=u}return o}}function l(e){return e.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1")}function c(e){return e.replace(/([=!:$\/()])/g,"\\$1")}function u(e,t){return e.keys=t,e}function d(e){return e&&e.sensitive?"":"i"}function p(e,t,n){r(t)||(n=t||n,t=[]);for(var a=(n=n||{}).strict,o=!1!==n.end,i="",s=0;s<e.length;s++){var c=e[s];if("string"==typeof c)i+=l(c);else{var p=l(c.prefix),f="(?:"+c.pattern+")";t.push(c),c.repeat&&(f+="(?:"+p+f+")*"),i+=f=c.optional?c.partial?p+"("+f+")?":"(?:"+p+"("+f+"))?":p+"("+f+")"}}var m=l(n.delimiter||"/"),h=i.slice(-m.length)===m;return a||(i=(h?i.slice(0,-m.length):i)+"(?:"+m+"(?=$))?"),i+=o?"$":a&&h?"":"(?="+m+"|$)",u(new RegExp("^"+i,d(n)),t)}function f(e,t,n){return r(t)||(n=t||n,t=[]),n=n||{},e instanceof RegExp?function(e,t){var n=e.source.match(/\((?!\?)/g);if(n)for(var r=0;r<n.length;r++)t.push({name:r,prefix:null,delimiter:null,optional:!1,repeat:!1,partial:!1,asterisk:!1,pattern:null});return u(e,t)}(e,t):r(e)?function(e,t,n){for(var r=[],a=0;a<e.length;a++)r.push(f(e[a],t,n).source);return u(new RegExp("(?:"+r.join("|")+")",d(n)),t)}(e,t,n):function(e,t,n){return p(o(e,n),t,n)}(e,t,n)}},9901:e=>{e.exports&&(e.exports={core:{meta:{path:"components/prism-core.js",option:"mandatory"},core:"Core"},themes:{meta:{path:"themes/{id}.css",link:"index.html?theme={id}",exclusive:!0},prism:{title:"Default",option:"default"},"prism-dark":"Dark","prism-funky":"Funky","prism-okaidia":{title:"Okaidia",owner:"ocodia"},"prism-twilight":{title:"Twilight",owner:"remybach"},"prism-coy":{title:"Coy",owner:"tshedor"},"prism-solarizedlight":{title:"Solarized Light",owner:"hectormatos2011 "},"prism-tomorrow":{title:"Tomorrow Night",owner:"Rosey"}},languages:{meta:{path:"components/prism-{id}",noCSS:!0,examplesPath:"examples/prism-{id}",addCheckAll:!0},markup:{title:"Markup",alias:["html","xml","svg","mathml","ssml","atom","rss"],aliasTitles:{html:"HTML",xml:"XML",svg:"SVG",mathml:"MathML",ssml:"SSML",atom:"Atom",rss:"RSS"},option:"default"},css:{title:"CSS",option:"default",modify:"markup"},clike:{title:"C-like",option:"default"},javascript:{title:"JavaScript",require:"clike",modify:"markup",optional:"regex",alias:"js",option:"default"},abap:{title:"ABAP",owner:"dellagustin"},abnf:{title:"ABNF",owner:"RunDevelopment"},actionscript:{title:"ActionScript",require:"javascript",modify:"markup",owner:"Golmote"},ada:{title:"Ada",owner:"Lucretia"},agda:{title:"Agda",owner:"xy-ren"},al:{title:"AL",owner:"RunDevelopment"},antlr4:{title:"ANTLR4",alias:"g4",owner:"RunDevelopment"},apacheconf:{title:"Apache Configuration",owner:"GuiTeK"},apex:{title:"Apex",require:["clike","sql"],owner:"RunDevelopment"},apl:{title:"APL",owner:"ngn"},applescript:{title:"AppleScript",owner:"Golmote"},aql:{title:"AQL",owner:"RunDevelopment"},arduino:{title:"Arduino",require:"cpp",alias:"ino",owner:"dkern"},arff:{title:"ARFF",owner:"Golmote"},armasm:{title:"ARM Assembly",alias:"arm-asm",owner:"RunDevelopment"},arturo:{title:"Arturo",alias:"art",optional:["bash","css","javascript","markup","markdown","sql"],owner:"drkameleon"},asciidoc:{alias:"adoc",title:"AsciiDoc",owner:"Golmote"},aspnet:{title:"ASP.NET (C#)",require:["markup","csharp"],owner:"nauzilus"},asm6502:{title:"6502 Assembly",owner:"kzurawel"},asmatmel:{title:"Atmel AVR Assembly",owner:"cerkit"},autohotkey:{title:"AutoHotkey",owner:"aviaryan"},autoit:{title:"AutoIt",owner:"Golmote"},avisynth:{title:"AviSynth",alias:"avs",owner:"Zinfidel"},"avro-idl":{title:"Avro IDL",alias:"avdl",owner:"RunDevelopment"},awk:{title:"AWK",alias:"gawk",aliasTitles:{gawk:"GAWK"},owner:"RunDevelopment"},bash:{title:"Bash",alias:["sh","shell"],aliasTitles:{sh:"Shell",shell:"Shell"},owner:"zeitgeist87"},basic:{title:"BASIC",owner:"Golmote"},batch:{title:"Batch",owner:"Golmote"},bbcode:{title:"BBcode",alias:"shortcode",aliasTitles:{shortcode:"Shortcode"},owner:"RunDevelopment"},bbj:{title:"BBj",owner:"hyyan"},bicep:{title:"Bicep",owner:"johnnyreilly"},birb:{title:"Birb",require:"clike",owner:"Calamity210"},bison:{title:"Bison",require:"c",owner:"Golmote"},bnf:{title:"BNF",alias:"rbnf",aliasTitles:{rbnf:"RBNF"},owner:"RunDevelopment"},bqn:{title:"BQN",owner:"yewscion"},brainfuck:{title:"Brainfuck",owner:"Golmote"},brightscript:{title:"BrightScript",owner:"RunDevelopment"},bro:{title:"Bro",owner:"wayward710"},bsl:{title:"BSL (1C:Enterprise)",alias:"oscript",aliasTitles:{oscript:"OneScript"},owner:"Diversus23"},c:{title:"C",require:"clike",owner:"zeitgeist87"},csharp:{title:"C#",require:"clike",alias:["cs","dotnet"],owner:"mvalipour"},cpp:{title:"C++",require:"c",owner:"zeitgeist87"},cfscript:{title:"CFScript",require:"clike",alias:"cfc",owner:"mjclemente"},chaiscript:{title:"ChaiScript",require:["clike","cpp"],owner:"RunDevelopment"},cil:{title:"CIL",owner:"sbrl"},cilkc:{title:"Cilk/C",require:"c",alias:"cilk-c",owner:"OpenCilk"},cilkcpp:{title:"Cilk/C++",require:"cpp",alias:["cilk-cpp","cilk"],owner:"OpenCilk"},clojure:{title:"Clojure",owner:"troglotit"},cmake:{title:"CMake",owner:"mjrogozinski"},cobol:{title:"COBOL",owner:"RunDevelopment"},coffeescript:{title:"CoffeeScript",require:"javascript",alias:"coffee",owner:"R-osey"},concurnas:{title:"Concurnas",alias:"conc",owner:"jasontatton"},csp:{title:"Content-Security-Policy",owner:"ScottHelme"},cooklang:{title:"Cooklang",owner:"ahue"},coq:{title:"Coq",owner:"RunDevelopment"},crystal:{title:"Crystal",require:"ruby",owner:"MakeNowJust"},"css-extras":{title:"CSS Extras",require:"css",modify:"css",owner:"milesj"},csv:{title:"CSV",owner:"RunDevelopment"},cue:{title:"CUE",owner:"RunDevelopment"},cypher:{title:"Cypher",owner:"RunDevelopment"},d:{title:"D",require:"clike",owner:"Golmote"},dart:{title:"Dart",require:"clike",owner:"Golmote"},dataweave:{title:"DataWeave",owner:"machaval"},dax:{title:"DAX",owner:"peterbud"},dhall:{title:"Dhall",owner:"RunDevelopment"},diff:{title:"Diff",owner:"uranusjr"},django:{title:"Django/Jinja2",require:"markup-templating",alias:"jinja2",owner:"romanvm"},"dns-zone-file":{title:"DNS zone file",owner:"RunDevelopment",alias:"dns-zone"},docker:{title:"Docker",alias:"dockerfile",owner:"JustinBeckwith"},dot:{title:"DOT (Graphviz)",alias:"gv",optional:"markup",owner:"RunDevelopment"},ebnf:{title:"EBNF",owner:"RunDevelopment"},editorconfig:{title:"EditorConfig",owner:"osipxd"},eiffel:{title:"Eiffel",owner:"Conaclos"},ejs:{title:"EJS",require:["javascript","markup-templating"],owner:"RunDevelopment",alias:"eta",aliasTitles:{eta:"Eta"}},elixir:{title:"Elixir",owner:"Golmote"},elm:{title:"Elm",owner:"zwilias"},etlua:{title:"Embedded Lua templating",require:["lua","markup-templating"],owner:"RunDevelopment"},erb:{title:"ERB",require:["ruby","markup-templating"],owner:"Golmote"},erlang:{title:"Erlang",owner:"Golmote"},"excel-formula":{title:"Excel Formula",alias:["xlsx","xls"],owner:"RunDevelopment"},fsharp:{title:"F#",require:"clike",owner:"simonreynolds7"},factor:{title:"Factor",owner:"catb0t"},false:{title:"False",owner:"edukisto"},"firestore-security-rules":{title:"Firestore security rules",require:"clike",owner:"RunDevelopment"},flow:{title:"Flow",require:"javascript",owner:"Golmote"},fortran:{title:"Fortran",owner:"Golmote"},ftl:{title:"FreeMarker Template Language",require:"markup-templating",owner:"RunDevelopment"},gml:{title:"GameMaker Language",alias:"gamemakerlanguage",require:"clike",owner:"LiarOnce"},gap:{title:"GAP (CAS)",owner:"RunDevelopment"},gcode:{title:"G-code",owner:"RunDevelopment"},gdscript:{title:"GDScript",owner:"RunDevelopment"},gedcom:{title:"GEDCOM",owner:"Golmote"},gettext:{title:"gettext",alias:"po",owner:"RunDevelopment"},gherkin:{title:"Gherkin",owner:"hason"},git:{title:"Git",owner:"lgiraudel"},glsl:{title:"GLSL",require:"c",owner:"Golmote"},gn:{title:"GN",alias:"gni",owner:"RunDevelopment"},"linker-script":{title:"GNU Linker Script",alias:"ld",owner:"RunDevelopment"},go:{title:"Go",require:"clike",owner:"arnehormann"},"go-module":{title:"Go module",alias:"go-mod",owner:"RunDevelopment"},gradle:{title:"Gradle",require:"clike",owner:"zeabdelkhalek-badido18"},graphql:{title:"GraphQL",optional:"markdown",owner:"Golmote"},groovy:{title:"Groovy",require:"clike",owner:"robfletcher"},haml:{title:"Haml",require:"ruby",optional:["css","css-extras","coffeescript","erb","javascript","less","markdown","scss","textile"],owner:"Golmote"},handlebars:{title:"Handlebars",require:"markup-templating",alias:["hbs","mustache"],aliasTitles:{mustache:"Mustache"},owner:"Golmote"},haskell:{title:"Haskell",alias:"hs",owner:"bholst"},haxe:{title:"Haxe",require:"clike",optional:"regex",owner:"Golmote"},hcl:{title:"HCL",owner:"outsideris"},hlsl:{title:"HLSL",require:"c",owner:"RunDevelopment"},hoon:{title:"Hoon",owner:"matildepark"},http:{title:"HTTP",optional:["csp","css","hpkp","hsts","javascript","json","markup","uri"],owner:"danielgtaylor"},hpkp:{title:"HTTP Public-Key-Pins",owner:"ScottHelme"},hsts:{title:"HTTP Strict-Transport-Security",owner:"ScottHelme"},ichigojam:{title:"IchigoJam",owner:"BlueCocoa"},icon:{title:"Icon",owner:"Golmote"},"icu-message-format":{title:"ICU Message Format",owner:"RunDevelopment"},idris:{title:"Idris",alias:"idr",owner:"KeenS",require:"haskell"},ignore:{title:".ignore",owner:"osipxd",alias:["gitignore","hgignore","npmignore"],aliasTitles:{gitignore:".gitignore",hgignore:".hgignore",npmignore:".npmignore"}},inform7:{title:"Inform 7",owner:"Golmote"},ini:{title:"Ini",owner:"aviaryan"},io:{title:"Io",owner:"AlesTsurko"},j:{title:"J",owner:"Golmote"},java:{title:"Java",require:"clike",owner:"sherblot"},javadoc:{title:"JavaDoc",require:["markup","java","javadoclike"],modify:"java",optional:"scala",owner:"RunDevelopment"},javadoclike:{title:"JavaDoc-like",modify:["java","javascript","php"],owner:"RunDevelopment"},javastacktrace:{title:"Java stack trace",owner:"RunDevelopment"},jexl:{title:"Jexl",owner:"czosel"},jolie:{title:"Jolie",require:"clike",owner:"thesave"},jq:{title:"JQ",owner:"RunDevelopment"},jsdoc:{title:"JSDoc",require:["javascript","javadoclike","typescript"],modify:"javascript",optional:["actionscript","coffeescript"],owner:"RunDevelopment"},"js-extras":{title:"JS Extras",require:"javascript",modify:"javascript",optional:["actionscript","coffeescript","flow","n4js","typescript"],owner:"RunDevelopment"},json:{title:"JSON",alias:"webmanifest",aliasTitles:{webmanifest:"Web App Manifest"},owner:"CupOfTea696"},json5:{title:"JSON5",require:"json",owner:"RunDevelopment"},jsonp:{title:"JSONP",require:"json",owner:"RunDevelopment"},jsstacktrace:{title:"JS stack trace",owner:"sbrl"},"js-templates":{title:"JS Templates",require:"javascript",modify:"javascript",optional:["css","css-extras","graphql","markdown","markup","sql"],owner:"RunDevelopment"},julia:{title:"Julia",owner:"cdagnino"},keepalived:{title:"Keepalived Configure",owner:"dev-itsheng"},keyman:{title:"Keyman",owner:"mcdurdin"},kotlin:{title:"Kotlin",alias:["kt","kts"],aliasTitles:{kts:"Kotlin Script"},require:"clike",owner:"Golmote"},kumir:{title:"KuMir (\u041a\u0443\u041c\u0438\u0440)",alias:"kum",owner:"edukisto"},kusto:{title:"Kusto",owner:"RunDevelopment"},latex:{title:"LaTeX",alias:["tex","context"],aliasTitles:{tex:"TeX",context:"ConTeXt"},owner:"japborst"},latte:{title:"Latte",require:["clike","markup-templating","php"],owner:"nette"},less:{title:"Less",require:"css",optional:"css-extras",owner:"Golmote"},lilypond:{title:"LilyPond",require:"scheme",alias:"ly",owner:"RunDevelopment"},liquid:{title:"Liquid",require:"markup-templating",owner:"cinhtau"},lisp:{title:"Lisp",alias:["emacs","elisp","emacs-lisp"],owner:"JuanCaicedo"},livescript:{title:"LiveScript",owner:"Golmote"},llvm:{title:"LLVM IR",owner:"porglezomp"},log:{title:"Log file",optional:"javastacktrace",owner:"RunDevelopment"},lolcode:{title:"LOLCODE",owner:"Golmote"},lua:{title:"Lua",owner:"Golmote"},magma:{title:"Magma (CAS)",owner:"RunDevelopment"},makefile:{title:"Makefile",owner:"Golmote"},markdown:{title:"Markdown",require:"markup",optional:"yaml",alias:"md",owner:"Golmote"},"markup-templating":{title:"Markup templating",require:"markup",owner:"Golmote"},mata:{title:"Mata",owner:"RunDevelopment"},matlab:{title:"MATLAB",owner:"Golmote"},maxscript:{title:"MAXScript",owner:"RunDevelopment"},mel:{title:"MEL",owner:"Golmote"},mermaid:{title:"Mermaid",owner:"RunDevelopment"},metafont:{title:"METAFONT",owner:"LaeriExNihilo"},mizar:{title:"Mizar",owner:"Golmote"},mongodb:{title:"MongoDB",owner:"airs0urce",require:"javascript"},monkey:{title:"Monkey",owner:"Golmote"},moonscript:{title:"MoonScript",alias:"moon",owner:"RunDevelopment"},n1ql:{title:"N1QL",owner:"TMWilds"},n4js:{title:"N4JS",require:"javascript",optional:"jsdoc",alias:"n4jsd",owner:"bsmith-n4"},"nand2tetris-hdl":{title:"Nand To Tetris HDL",owner:"stephanmax"},naniscript:{title:"Naninovel Script",owner:"Elringus",alias:"nani"},nasm:{title:"NASM",owner:"rbmj"},neon:{title:"NEON",owner:"nette"},nevod:{title:"Nevod",owner:"nezaboodka"},nginx:{title:"nginx",owner:"volado"},nim:{title:"Nim",owner:"Golmote"},nix:{title:"Nix",owner:"Golmote"},nsis:{title:"NSIS",owner:"idleberg"},objectivec:{title:"Objective-C",require:"c",alias:"objc",owner:"uranusjr"},ocaml:{title:"OCaml",owner:"Golmote"},odin:{title:"Odin",owner:"edukisto"},opencl:{title:"OpenCL",require:"c",modify:["c","cpp"],owner:"Milania1"},openqasm:{title:"OpenQasm",alias:"qasm",owner:"RunDevelopment"},oz:{title:"Oz",owner:"Golmote"},parigp:{title:"PARI/GP",owner:"Golmote"},parser:{title:"Parser",require:"markup",owner:"Golmote"},pascal:{title:"Pascal",alias:"objectpascal",aliasTitles:{objectpascal:"Object Pascal"},owner:"Golmote"},pascaligo:{title:"Pascaligo",owner:"DefinitelyNotAGoat"},psl:{title:"PATROL Scripting Language",owner:"bertysentry"},pcaxis:{title:"PC-Axis",alias:"px",owner:"RunDevelopment"},peoplecode:{title:"PeopleCode",alias:"pcode",owner:"RunDevelopment"},perl:{title:"Perl",owner:"Golmote"},php:{title:"PHP",require:"markup-templating",owner:"milesj"},phpdoc:{title:"PHPDoc",require:["php","javadoclike"],modify:"php",owner:"RunDevelopment"},"php-extras":{title:"PHP Extras",require:"php",modify:"php",owner:"milesj"},"plant-uml":{title:"PlantUML",alias:"plantuml",owner:"RunDevelopment"},plsql:{title:"PL/SQL",require:"sql",owner:"Golmote"},powerquery:{title:"PowerQuery",alias:["pq","mscript"],owner:"peterbud"},powershell:{title:"PowerShell",owner:"nauzilus"},processing:{title:"Processing",require:"clike",owner:"Golmote"},prolog:{title:"Prolog",owner:"Golmote"},promql:{title:"PromQL",owner:"arendjr"},properties:{title:".properties",owner:"Golmote"},protobuf:{title:"Protocol Buffers",require:"clike",owner:"just-boris"},pug:{title:"Pug",require:["markup","javascript"],optional:["coffeescript","ejs","handlebars","less","livescript","markdown","scss","stylus","twig"],owner:"Golmote"},puppet:{title:"Puppet",owner:"Golmote"},pure:{title:"Pure",optional:["c","cpp","fortran"],owner:"Golmote"},purebasic:{title:"PureBasic",require:"clike",alias:"pbfasm",owner:"HeX0R101"},purescript:{title:"PureScript",require:"haskell",alias:"purs",owner:"sriharshachilakapati"},python:{title:"Python",alias:"py",owner:"multipetros"},qsharp:{title:"Q#",require:"clike",alias:"qs",owner:"fedonman"},q:{title:"Q (kdb+ database)",owner:"Golmote"},qml:{title:"QML",require:"javascript",owner:"RunDevelopment"},qore:{title:"Qore",require:"clike",owner:"temnroegg"},r:{title:"R",owner:"Golmote"},racket:{title:"Racket",require:"scheme",alias:"rkt",owner:"RunDevelopment"},cshtml:{title:"Razor C#",alias:"razor",require:["markup","csharp"],optional:["css","css-extras","javascript","js-extras"],owner:"RunDevelopment"},jsx:{title:"React JSX",require:["markup","javascript"],optional:["jsdoc","js-extras","js-templates"],owner:"vkbansal"},tsx:{title:"React TSX",require:["jsx","typescript"]},reason:{title:"Reason",require:"clike",owner:"Golmote"},regex:{title:"Regex",owner:"RunDevelopment"},rego:{title:"Rego",owner:"JordanSh"},renpy:{title:"Ren'py",alias:"rpy",owner:"HyuchiaDiego"},rescript:{title:"ReScript",alias:"res",owner:"vmarcosp"},rest:{title:"reST (reStructuredText)",owner:"Golmote"},rip:{title:"Rip",owner:"ravinggenius"},roboconf:{title:"Roboconf",owner:"Golmote"},robotframework:{title:"Robot Framework",alias:"robot",owner:"RunDevelopment"},ruby:{title:"Ruby",require:"clike",alias:"rb",owner:"samflores"},rust:{title:"Rust",owner:"Golmote"},sas:{title:"SAS",optional:["groovy","lua","sql"],owner:"Golmote"},sass:{title:"Sass (Sass)",require:"css",optional:"css-extras",owner:"Golmote"},scss:{title:"Sass (SCSS)",require:"css",optional:"css-extras",owner:"MoOx"},scala:{title:"Scala",require:"java",owner:"jozic"},scheme:{title:"Scheme",owner:"bacchus123"},"shell-session":{title:"Shell session",require:"bash",alias:["sh-session","shellsession"],owner:"RunDevelopment"},smali:{title:"Smali",owner:"RunDevelopment"},smalltalk:{title:"Smalltalk",owner:"Golmote"},smarty:{title:"Smarty",require:"markup-templating",optional:"php",owner:"Golmote"},sml:{title:"SML",alias:"smlnj",aliasTitles:{smlnj:"SML/NJ"},owner:"RunDevelopment"},solidity:{title:"Solidity (Ethereum)",alias:"sol",require:"clike",owner:"glachaud"},"solution-file":{title:"Solution file",alias:"sln",owner:"RunDevelopment"},soy:{title:"Soy (Closure Template)",require:"markup-templating",owner:"Golmote"},sparql:{title:"SPARQL",require:"turtle",owner:"Triply-Dev",alias:"rq"},"splunk-spl":{title:"Splunk SPL",owner:"RunDevelopment"},sqf:{title:"SQF: Status Quo Function (Arma 3)",require:"clike",owner:"RunDevelopment"},sql:{title:"SQL",owner:"multipetros"},squirrel:{title:"Squirrel",require:"clike",owner:"RunDevelopment"},stan:{title:"Stan",owner:"RunDevelopment"},stata:{title:"Stata Ado",require:["mata","java","python"],owner:"RunDevelopment"},iecst:{title:"Structured Text (IEC 61131-3)",owner:"serhioromano"},stylus:{title:"Stylus",owner:"vkbansal"},supercollider:{title:"SuperCollider",alias:"sclang",owner:"RunDevelopment"},swift:{title:"Swift",owner:"chrischares"},systemd:{title:"Systemd configuration file",owner:"RunDevelopment"},"t4-templating":{title:"T4 templating",owner:"RunDevelopment"},"t4-cs":{title:"T4 Text Templates (C#)",require:["t4-templating","csharp"],alias:"t4",owner:"RunDevelopment"},"t4-vb":{title:"T4 Text Templates (VB)",require:["t4-templating","vbnet"],owner:"RunDevelopment"},tap:{title:"TAP",owner:"isaacs",require:"yaml"},tcl:{title:"Tcl",owner:"PeterChaplin"},tt2:{title:"Template Toolkit 2",require:["clike","markup-templating"],owner:"gflohr"},textile:{title:"Textile",require:"markup",optional:"css",owner:"Golmote"},toml:{title:"TOML",owner:"RunDevelopment"},tremor:{title:"Tremor",alias:["trickle","troy"],owner:"darach",aliasTitles:{trickle:"trickle",troy:"troy"}},turtle:{title:"Turtle",alias:"trig",aliasTitles:{trig:"TriG"},owner:"jakubklimek"},twig:{title:"Twig",require:"markup-templating",owner:"brandonkelly"},typescript:{title:"TypeScript",require:"javascript",optional:"js-templates",alias:"ts",owner:"vkbansal"},typoscript:{title:"TypoScript",alias:"tsconfig",aliasTitles:{tsconfig:"TSConfig"},owner:"dkern"},unrealscript:{title:"UnrealScript",alias:["uscript","uc"],owner:"RunDevelopment"},uorazor:{title:"UO Razor Script",owner:"jaseowns"},uri:{title:"URI",alias:"url",aliasTitles:{url:"URL"},owner:"RunDevelopment"},v:{title:"V",require:"clike",owner:"taggon"},vala:{title:"Vala",require:"clike",optional:"regex",owner:"TemplarVolk"},vbnet:{title:"VB.Net",require:"basic",owner:"Bigsby"},velocity:{title:"Velocity",require:"markup",owner:"Golmote"},verilog:{title:"Verilog",owner:"a-rey"},vhdl:{title:"VHDL",owner:"a-rey"},vim:{title:"vim",owner:"westonganger"},"visual-basic":{title:"Visual Basic",alias:["vb","vba"],aliasTitles:{vba:"VBA"},owner:"Golmote"},warpscript:{title:"WarpScript",owner:"RunDevelopment"},wasm:{title:"WebAssembly",owner:"Golmote"},"web-idl":{title:"Web IDL",alias:"webidl",owner:"RunDevelopment"},wgsl:{title:"WGSL",owner:"Dr4gonthree"},wiki:{title:"Wiki markup",require:"markup",owner:"Golmote"},wolfram:{title:"Wolfram language",alias:["mathematica","nb","wl"],aliasTitles:{mathematica:"Mathematica",nb:"Mathematica Notebook"},owner:"msollami"},wren:{title:"Wren",owner:"clsource"},xeora:{title:"Xeora",require:"markup",alias:"xeoracube",aliasTitles:{xeoracube:"XeoraCube"},owner:"freakmaxi"},"xml-doc":{title:"XML doc (.net)",require:"markup",modify:["csharp","fsharp","vbnet"],owner:"RunDevelopment"},xojo:{title:"Xojo (REALbasic)",owner:"Golmote"},xquery:{title:"XQuery",require:"markup",owner:"Golmote"},yaml:{title:"YAML",alias:"yml",owner:"hason"},yang:{title:"YANG",owner:"RunDevelopment"},zig:{title:"Zig",owner:"RunDevelopment"}},plugins:{meta:{path:"plugins/{id}/prism-{id}",link:"plugins/{id}/"},"line-highlight":{title:"Line Highlight",description:"Highlights specific lines and/or line ranges."},"line-numbers":{title:"Line Numbers",description:"Line number at the beginning of code lines.",owner:"kuba-kubula"},"show-invisibles":{title:"Show Invisibles",description:"Show hidden characters such as tabs and line breaks.",optional:["autolinker","data-uri-highlight"]},autolinker:{title:"Autolinker",description:"Converts URLs and emails in code to clickable links. Parses Markdown links in comments."},wpd:{title:"WebPlatform Docs",description:'Makes tokens link to <a href="https://webplatform.github.io/docs/">WebPlatform.org documentation</a>. The links open in a new tab.'},"custom-class":{title:"Custom Class",description:"This plugin allows you to prefix Prism's default classes (<code>.comment</code> can become <code>.namespace--comment</code>) or replace them with your defined ones (like <code>.editor__comment</code>). You can even add new classes.",owner:"dvkndn",noCSS:!0},"file-highlight":{title:"File Highlight",description:"Fetch external files and highlight them with Prism. Used on the Prism website itself.",noCSS:!0},"show-language":{title:"Show Language",description:"Display the highlighted language in code blocks (inline code does not show the label).",owner:"nauzilus",noCSS:!0,require:"toolbar"},"jsonp-highlight":{title:"JSONP Highlight",description:"Fetch content with JSONP and highlight some interesting content (e.g. GitHub/Gists or Bitbucket API).",noCSS:!0,owner:"nauzilus"},"highlight-keywords":{title:"Highlight Keywords",description:"Adds special CSS classes for each keyword for fine-grained highlighting.",owner:"vkbansal",noCSS:!0},"remove-initial-line-feed":{title:"Remove initial line feed",description:"Removes the initial line feed in code blocks.",owner:"Golmote",noCSS:!0},"inline-color":{title:"Inline color",description:"Adds a small inline preview for colors in style sheets.",require:"css-extras",owner:"RunDevelopment"},previewers:{title:"Previewers",description:"Previewers for angles, colors, gradients, easing and time.",require:"css-extras",owner:"Golmote"},autoloader:{title:"Autoloader",description:"Automatically loads the needed languages to highlight the code blocks.",owner:"Golmote",noCSS:!0},"keep-markup":{title:"Keep Markup",description:"Prevents custom markup from being dropped out during highlighting.",owner:"Golmote",optional:"normalize-whitespace",noCSS:!0},"command-line":{title:"Command Line",description:"Display a command line with a prompt and, optionally, the output/response from the commands.",owner:"chriswells0"},"unescaped-markup":{title:"Unescaped Markup",description:"Write markup without having to escape anything."},"normalize-whitespace":{title:"Normalize Whitespace",description:"Supports multiple operations to normalize whitespace in code blocks.",owner:"zeitgeist87",optional:"unescaped-markup",noCSS:!0},"data-uri-highlight":{title:"Data-URI Highlight",description:"Highlights data-URI contents.",owner:"Golmote",noCSS:!0},toolbar:{title:"Toolbar",description:"Attach a toolbar for plugins to easily register buttons on the top of a code block.",owner:"mAAdhaTTah"},"copy-to-clipboard":{title:"Copy to Clipboard Button",description:"Add a button that copies the code block to the clipboard when clicked.",owner:"mAAdhaTTah",require:"toolbar",noCSS:!0},"download-button":{title:"Download Button",description:"A button in the toolbar of a code block adding a convenient way to download a code file.",owner:"Golmote",require:"toolbar",noCSS:!0},"match-braces":{title:"Match braces",description:"Highlights matching braces.",owner:"RunDevelopment"},"diff-highlight":{title:"Diff Highlight",description:"Highlights the code inside diff blocks.",owner:"RunDevelopment",require:"diff"},"filter-highlight-all":{title:"Filter highlightAll",description:"Filters the elements the <code>highlightAll</code> and <code>highlightAllUnder</code> methods actually highlight.",owner:"RunDevelopment",noCSS:!0},treeview:{title:"Treeview",description:"A language with special styles to highlight file system tree structures.",owner:"Golmote"}}})},2885:(e,t,n)=>{const r=n(9901),a=n(9642),o=new Set;function i(e){void 0===e?e=Object.keys(r.languages).filter((e=>"meta"!=e)):Array.isArray(e)||(e=[e]);const t=[...o,...Object.keys(Prism.languages)];a(r,e,t).load((e=>{if(!(e in r.languages))return void(i.silent||console.warn("Language does not exist: "+e));const t="./prism-"+e;delete n.c[n(6500).resolve(t)],delete Prism.languages[e],n(6500)(t),o.add(e)}))}i.silent=!1,e.exports=i},6854:()=>{!function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,a,o){if(n.language===r){var i=n.tokenStack=[];n.code=n.code.replace(a,(function(e){if("function"==typeof o&&!o(e))return e;for(var a,s=i.length;-1!==n.code.indexOf(a=t(r,s));)++s;return i[s]=e,a})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var a=0,o=Object.keys(n.tokenStack);!function i(s){for(var l=0;l<s.length&&!(a>=o.length);l++){var c=s[l];if("string"==typeof c||c.content&&"string"==typeof c.content){var u=o[a],d=n.tokenStack[u],p="string"==typeof c?c:c.content,f=t(r,u),m=p.indexOf(f);if(m>-1){++a;var h=p.substring(0,m),g=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),b=p.substring(m+f.length),y=[];h&&y.push.apply(y,i([h])),y.push(g),b&&y.push.apply(y,i([b])),"string"==typeof c?s.splice.apply(s,[l,1].concat(y)):c.content=y}}else c.content&&i(c.content)}return s}(n.tokens)}}}})}(Prism)},6726:(e,t,n)=>{var r={"./":2885};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=6726},6500:(e,t,n)=>{var r={"./":2885};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=6500},9642:e=>{"use strict";var t=function(){var e=function(){};function t(e,t){Array.isArray(e)?e.forEach(t):null!=e&&t(e,0)}function n(e){for(var t={},n=0,r=e.length;n<r;n++)t[e[n]]=!0;return t}function r(e){var n={},r=[];function a(r,o){if(!(r in n)){o.push(r);var i=o.indexOf(r);if(i<o.length-1)throw new Error("Circular dependency: "+o.slice(i).join(" -> "));var s={},l=e[r];if(l){function c(t){if(!(t in e))throw new Error(r+" depends on an unknown component "+t);if(!(t in s))for(var i in a(t,o),s[t]=!0,n[t])s[i]=!0}t(l.require,c),t(l.optional,c),t(l.modify,c)}n[r]=s,o.pop()}}return function(e){var t=n[e];return t||(a(e,r),t=n[e]),t}}function a(e){for(var t in e)return!0;return!1}return function(o,i,s){var l=function(e){var t={};for(var n in e){var r=e[n];for(var a in r)if("meta"!=a){var o=r[a];t[a]="string"==typeof o?{title:o}:o}}return t}(o),c=function(e){var n;return function(r){if(r in e)return r;if(!n)for(var a in n={},e){var o=e[a];t(o&&o.alias,(function(t){if(t in n)throw new Error(t+" cannot be alias for both "+a+" and "+n[t]);if(t in e)throw new Error(t+" cannot be alias of "+a+" because it is a component.");n[t]=a}))}return n[r]||r}}(l);i=i.map(c),s=(s||[]).map(c);var u=n(i),d=n(s);i.forEach((function e(n){var r=l[n];t(r&&r.require,(function(t){t in d||(u[t]=!0,e(t))}))}));for(var p,f=r(l),m=u;a(m);){for(var h in p={},m){var g=l[h];t(g&&g.modify,(function(e){e in d&&(p[e]=!0)}))}for(var b in d)if(!(b in u))for(var y in f(b))if(y in u){p[b]=!0;break}for(var v in m=p)u[v]=!0}var w={getIds:function(){var e=[];return w.load((function(t){e.push(t)})),e},load:function(t,n){return function(t,n,r,a){var o=a?a.series:void 0,i=a?a.parallel:e,s={},l={};function c(e){if(e in s)return s[e];l[e]=!0;var a,u=[];for(var d in t(e))d in n&&u.push(d);if(0===u.length)a=r(e);else{var p=i(u.map((function(e){var t=c(e);return delete l[e],t})));o?a=o(p,(function(){return r(e)})):r(e)}return s[e]=a}for(var u in n)c(u);var d=[];for(var p in l)d.push(s[p]);return i(d)}(f,u,t,n)}};return w}}();e.exports=t},2703:(e,t,n)=>{"use strict";var r=n(414);function a(){}function o(){}o.resetWarningCache=a,e.exports=function(){function e(e,t,n,a,o,i){if(i!==r){var s=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name="Invariant Violation",s}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:o,resetWarningCache:a};return n.PropTypes=n,n}},5697:(e,t,n)=>{e.exports=n(2703)()},414:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},4448:(e,t,n)=>{"use strict";var r=n(7294),a=n(3840);function o(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var i=new Set,s={};function l(e,t){c(e,t),c(e+"Capture",t)}function c(e,t){for(s[e]=t,e=0;e<t.length;e++)i.add(t[e])}var u=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement),d=Object.prototype.hasOwnProperty,p=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,f={},m={};function h(e,t,n,r,a,o,i){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=r,this.attributeNamespace=a,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=o,this.removeEmptyString=i}var g={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e){g[e]=new h(e,0,!1,e,null,!1,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var t=e[0];g[t]=new h(t,1,!1,e[1],null,!1,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){g[e]=new h(e,2,!1,e.toLowerCase(),null,!1,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){g[e]=new h(e,2,!1,e,null,!1,!1)})),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach((function(e){g[e]=new h(e,3,!1,e.toLowerCase(),null,!1,!1)})),["checked","multiple","muted","selected"].forEach((function(e){g[e]=new h(e,3,!0,e,null,!1,!1)})),["capture","download"].forEach((function(e){g[e]=new h(e,4,!1,e,null,!1,!1)})),["cols","rows","size","span"].forEach((function(e){g[e]=new h(e,6,!1,e,null,!1,!1)})),["rowSpan","start"].forEach((function(e){g[e]=new h(e,5,!1,e.toLowerCase(),null,!1,!1)}));var b=/[\-:]([a-z])/g;function y(e){return e[1].toUpperCase()}function v(e,t,n,r){var a=g.hasOwnProperty(t)?g[t]:null;(null!==a?0!==a.type:r||!(2<t.length)||"o"!==t[0]&&"O"!==t[0]||"n"!==t[1]&&"N"!==t[1])&&(function(e,t,n,r){if(null==t||function(e,t,n,r){if(null!==n&&0===n.type)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return!r&&(null!==n?!n.acceptsBooleans:"data-"!==(e=e.toLowerCase().slice(0,5))&&"aria-"!==e);default:return!1}}(e,t,n,r))return!0;if(r)return!1;if(null!==n)switch(n.type){case 3:return!t;case 4:return!1===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}(t,n,a,r)&&(n=null),r||null===a?function(e){return!!d.call(m,e)||!d.call(f,e)&&(p.test(e)?m[e]=!0:(f[e]=!0,!1))}(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,""+n)):a.mustUseProperty?e[a.propertyName]=null===n?3!==a.type&&"":n:(t=a.attributeName,r=a.attributeNamespace,null===n?e.removeAttribute(t):(n=3===(a=a.type)||4===a&&!0===n?"":""+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach((function(e){var t=e.replace(b,y);g[t]=new h(t,1,!1,e,null,!1,!1)})),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach((function(e){var t=e.replace(b,y);g[t]=new h(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)})),["xml:base","xml:lang","xml:space"].forEach((function(e){var t=e.replace(b,y);g[t]=new h(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)})),["tabIndex","crossOrigin"].forEach((function(e){g[e]=new h(e,1,!1,e.toLowerCase(),null,!1,!1)})),g.xlinkHref=new h("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach((function(e){g[e]=new h(e,1,!1,e.toLowerCase(),null,!0,!0)}));var w=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,k=Symbol.for("react.element"),x=Symbol.for("react.portal"),S=Symbol.for("react.fragment"),E=Symbol.for("react.strict_mode"),_=Symbol.for("react.profiler"),C=Symbol.for("react.provider"),T=Symbol.for("react.context"),j=Symbol.for("react.forward_ref"),N=Symbol.for("react.suspense"),R=Symbol.for("react.suspense_list"),A=Symbol.for("react.memo"),L=Symbol.for("react.lazy");Symbol.for("react.scope"),Symbol.for("react.debug_trace_mode");var P=Symbol.for("react.offscreen");Symbol.for("react.legacy_hidden"),Symbol.for("react.cache"),Symbol.for("react.tracing_marker");var O=Symbol.iterator;function I(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=O&&e[O]||e["@@iterator"])?e:null}var D,M=Object.assign;function F(e){if(void 0===D)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);D=t&&t[1]||""}return"\n"+D+e}var z=!1;function B(e,t){if(!e||z)return"";z=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),"object"==typeof Reflect&&Reflect.construct){try{Reflect.construct(t,[])}catch(c){var r=c}Reflect.construct(e,[],t)}else{try{t.call()}catch(c){r=c}e.call(t.prototype)}else{try{throw Error()}catch(c){r=c}e()}}catch(c){if(c&&r&&"string"==typeof c.stack){for(var a=c.stack.split("\n"),o=r.stack.split("\n"),i=a.length-1,s=o.length-1;1<=i&&0<=s&&a[i]!==o[s];)s--;for(;1<=i&&0<=s;i--,s--)if(a[i]!==o[s]){if(1!==i||1!==s)do{if(i--,0>--s||a[i]!==o[s]){var l="\n"+a[i].replace(" at new "," at ");return e.displayName&&l.includes("<anonymous>")&&(l=l.replace("<anonymous>",e.displayName)),l}}while(1<=i&&0<=s);break}}}finally{z=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?F(e):""}function $(e){switch(e.tag){case 5:return F(e.type);case 16:return F("Lazy");case 13:return F("Suspense");case 19:return F("SuspenseList");case 0:case 2:case 15:return e=B(e.type,!1);case 11:return e=B(e.type.render,!1);case 1:return e=B(e.type,!0);default:return""}}function U(e){if(null==e)return null;if("function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case S:return"Fragment";case x:return"Portal";case _:return"Profiler";case E:return"StrictMode";case N:return"Suspense";case R:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case T:return(e.displayName||"Context")+".Consumer";case C:return(e._context.displayName||"Context")+".Provider";case j:var t=e.render;return(e=e.displayName)||(e=""!==(e=t.displayName||t.name||"")?"ForwardRef("+e+")":"ForwardRef"),e;case A:return null!==(t=e.displayName||null)?t:U(e.type)||"Memo";case L:t=e._payload,e=e._init;try{return U(e(t))}catch(n){}}return null}function q(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=(e=t.render).displayName||e.name||"",t.displayName||(""!==e?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return U(t);case 8:return t===E?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if("function"==typeof t)return t.displayName||t.name||null;if("string"==typeof t)return t}return null}function H(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":case"object":return e;default:return""}}function Z(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function G(e){e._valueTracker||(e._valueTracker=function(e){var t=Z(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&void 0!==n&&"function"==typeof n.get&&"function"==typeof n.set){var a=n.get,o=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return a.call(this)},set:function(e){r=""+e,o.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(e){r=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e))}function W(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=Z(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}function V(e){if(void 0===(e=e||("undefined"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}function Q(e,t){var n=t.checked;return M({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=n?n:e._wrapperState.initialChecked})}function Y(e,t){var n=null==t.defaultValue?"":t.defaultValue,r=null!=t.checked?t.checked:t.defaultChecked;n=H(null!=t.value?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value}}function K(e,t){null!=(t=t.checked)&&v(e,"checked",t,!1)}function X(e,t){K(e,t);var n=H(t.value),r=t.type;if(null!=n)"number"===r?(0===n&&""===e.value||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if("submit"===r||"reset"===r)return void e.removeAttribute("value");t.hasOwnProperty("value")?ee(e,t.type,n):t.hasOwnProperty("defaultValue")&&ee(e,t.type,H(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function J(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!("submit"!==r&&"reset"!==r||void 0!==t.value&&null!==t.value))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}""!==(n=e.name)&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,""!==n&&(e.name=n)}function ee(e,t,n){"number"===t&&V(e.ownerDocument)===e||(null==n?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var te=Array.isArray;function ne(e,t,n,r){if(e=e.options,t){t={};for(var a=0;a<n.length;a++)t["$"+n[a]]=!0;for(n=0;n<e.length;n++)a=t.hasOwnProperty("$"+e[n].value),e[n].selected!==a&&(e[n].selected=a),a&&r&&(e[n].defaultSelected=!0)}else{for(n=""+H(n),t=null,a=0;a<e.length;a++){if(e[a].value===n)return e[a].selected=!0,void(r&&(e[a].defaultSelected=!0));null!==t||e[a].disabled||(t=e[a])}null!==t&&(t.selected=!0)}}function re(e,t){if(null!=t.dangerouslySetInnerHTML)throw Error(o(91));return M({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function ae(e,t){var n=t.value;if(null==n){if(n=t.children,t=t.defaultValue,null!=n){if(null!=t)throw Error(o(92));if(te(n)){if(1<n.length)throw Error(o(93));n=n[0]}t=n}null==t&&(t=""),n=t}e._wrapperState={initialValue:H(n)}}function oe(e,t){var n=H(t.value),r=H(t.defaultValue);null!=n&&((n=""+n)!==e.value&&(e.value=n),null==t.defaultValue&&e.defaultValue!==n&&(e.defaultValue=n)),null!=r&&(e.defaultValue=""+r)}function ie(e){var t=e.textContent;t===e._wrapperState.initialValue&&""!==t&&null!==t&&(e.value=t)}function se(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function le(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?se(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}var ce,ue,de=(ue=function(e,t){if("http://www.w3.org/2000/svg"!==e.namespaceURI||"innerHTML"in e)e.innerHTML=t;else{for((ce=ce||document.createElement("div")).innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=ce.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}},"undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(e,t,n,r){MSApp.execUnsafeLocalFunction((function(){return ue(e,t)}))}:ue);function pe(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}var fe={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},me=["Webkit","ms","Moz","O"];function he(e,t,n){return null==t||"boolean"==typeof t||""===t?"":n||"number"!=typeof t||0===t||fe.hasOwnProperty(e)&&fe[e]?(""+t).trim():t+"px"}function ge(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var r=0===n.indexOf("--"),a=he(n,t[n],r);"float"===n&&(n="cssFloat"),r?e.setProperty(n,a):e[n]=a}}Object.keys(fe).forEach((function(e){me.forEach((function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),fe[t]=fe[e]}))}));var be=M({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function ye(e,t){if(t){if(be[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML))throw Error(o(137,e));if(null!=t.dangerouslySetInnerHTML){if(null!=t.children)throw Error(o(60));if("object"!=typeof t.dangerouslySetInnerHTML||!("__html"in t.dangerouslySetInnerHTML))throw Error(o(61))}if(null!=t.style&&"object"!=typeof t.style)throw Error(o(62))}}function ve(e,t){if(-1===e.indexOf("-"))return"string"==typeof t.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var we=null;function ke(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var xe=null,Se=null,Ee=null;function _e(e){if(e=va(e)){if("function"!=typeof xe)throw Error(o(280));var t=e.stateNode;t&&(t=ka(t),xe(e.stateNode,e.type,t))}}function Ce(e){Se?Ee?Ee.push(e):Ee=[e]:Se=e}function Te(){if(Se){var e=Se,t=Ee;if(Ee=Se=null,_e(e),t)for(e=0;e<t.length;e++)_e(t[e])}}function je(e,t){return e(t)}function Ne(){}var Re=!1;function Ae(e,t,n){if(Re)return e(t,n);Re=!0;try{return je(e,t,n)}finally{Re=!1,(null!==Se||null!==Ee)&&(Ne(),Te())}}function Le(e,t){var n=e.stateNode;if(null===n)return null;var r=ka(n);if(null===r)return null;n=r[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(r=!r.disabled)||(r=!("button"===(e=e.type)||"input"===e||"select"===e||"textarea"===e)),e=!r;break e;default:e=!1}if(e)return null;if(n&&"function"!=typeof n)throw Error(o(231,t,typeof n));return n}var Pe=!1;if(u)try{var Oe={};Object.defineProperty(Oe,"passive",{get:function(){Pe=!0}}),window.addEventListener("test",Oe,Oe),window.removeEventListener("test",Oe,Oe)}catch(ue){Pe=!1}function Ie(e,t,n,r,a,o,i,s,l){var c=Array.prototype.slice.call(arguments,3);try{t.apply(n,c)}catch(u){this.onError(u)}}var De=!1,Me=null,Fe=!1,ze=null,Be={onError:function(e){De=!0,Me=e}};function $e(e,t,n,r,a,o,i,s,l){De=!1,Me=null,Ie.apply(Be,arguments)}function Ue(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do{0!=(4098&(t=e).flags)&&(n=t.return),e=t.return}while(e)}return 3===t.tag?n:null}function qe(e){if(13===e.tag){var t=e.memoizedState;if(null===t&&(null!==(e=e.alternate)&&(t=e.memoizedState)),null!==t)return t.dehydrated}return null}function He(e){if(Ue(e)!==e)throw Error(o(188))}function Ze(e){return null!==(e=function(e){var t=e.alternate;if(!t){if(null===(t=Ue(e)))throw Error(o(188));return t!==e?null:e}for(var n=e,r=t;;){var a=n.return;if(null===a)break;var i=a.alternate;if(null===i){if(null!==(r=a.return)){n=r;continue}break}if(a.child===i.child){for(i=a.child;i;){if(i===n)return He(a),e;if(i===r)return He(a),t;i=i.sibling}throw Error(o(188))}if(n.return!==r.return)n=a,r=i;else{for(var s=!1,l=a.child;l;){if(l===n){s=!0,n=a,r=i;break}if(l===r){s=!0,r=a,n=i;break}l=l.sibling}if(!s){for(l=i.child;l;){if(l===n){s=!0,n=i,r=a;break}if(l===r){s=!0,r=i,n=a;break}l=l.sibling}if(!s)throw Error(o(189))}}if(n.alternate!==r)throw Error(o(190))}if(3!==n.tag)throw Error(o(188));return n.stateNode.current===n?e:t}(e))?Ge(e):null}function Ge(e){if(5===e.tag||6===e.tag)return e;for(e=e.child;null!==e;){var t=Ge(e);if(null!==t)return t;e=e.sibling}return null}var We=a.unstable_scheduleCallback,Ve=a.unstable_cancelCallback,Qe=a.unstable_shouldYield,Ye=a.unstable_requestPaint,Ke=a.unstable_now,Xe=a.unstable_getCurrentPriorityLevel,Je=a.unstable_ImmediatePriority,et=a.unstable_UserBlockingPriority,tt=a.unstable_NormalPriority,nt=a.unstable_LowPriority,rt=a.unstable_IdlePriority,at=null,ot=null;var it=Math.clz32?Math.clz32:function(e){return e>>>=0,0===e?32:31-(st(e)/lt|0)|0},st=Math.log,lt=Math.LN2;var ct=64,ut=4194304;function dt(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return 4194240&e;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return 130023424&e;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function pt(e,t){var n=e.pendingLanes;if(0===n)return 0;var r=0,a=e.suspendedLanes,o=e.pingedLanes,i=268435455&n;if(0!==i){var s=i&~a;0!==s?r=dt(s):0!==(o&=i)&&(r=dt(o))}else 0!==(i=n&~a)?r=dt(i):0!==o&&(r=dt(o));if(0===r)return 0;if(0!==t&&t!==r&&0==(t&a)&&((a=r&-r)>=(o=t&-t)||16===a&&0!=(4194240&o)))return t;if(0!=(4&r)&&(r|=16&n),0!==(t=e.entangledLanes))for(e=e.entanglements,t&=r;0<t;)a=1<<(n=31-it(t)),r|=e[n],t&=~a;return r}function ft(e,t){switch(e){case 1:case 2:case 4:return t+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;default:return-1}}function mt(e){return 0!==(e=-1073741825&e.pendingLanes)?e:1073741824&e?1073741824:0}function ht(){var e=ct;return 0==(4194240&(ct<<=1))&&(ct=64),e}function gt(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function bt(e,t,n){e.pendingLanes|=t,536870912!==t&&(e.suspendedLanes=0,e.pingedLanes=0),(e=e.eventTimes)[t=31-it(t)]=n}function yt(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-it(n),a=1<<r;a&t|e[r]&t&&(e[r]|=t),n&=~a}}var vt=0;function wt(e){return 1<(e&=-e)?4<e?0!=(268435455&e)?16:536870912:4:1}var kt,xt,St,Et,_t,Ct=!1,Tt=[],jt=null,Nt=null,Rt=null,At=new Map,Lt=new Map,Pt=[],Ot="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function It(e,t){switch(e){case"focusin":case"focusout":jt=null;break;case"dragenter":case"dragleave":Nt=null;break;case"mouseover":case"mouseout":Rt=null;break;case"pointerover":case"pointerout":At.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":Lt.delete(t.pointerId)}}function Dt(e,t,n,r,a,o){return null===e||e.nativeEvent!==o?(e={blockedOn:t,domEventName:n,eventSystemFlags:r,nativeEvent:o,targetContainers:[a]},null!==t&&(null!==(t=va(t))&&xt(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,null!==a&&-1===t.indexOf(a)&&t.push(a),e)}function Mt(e){var t=ya(e.target);if(null!==t){var n=Ue(t);if(null!==n)if(13===(t=n.tag)){if(null!==(t=qe(n)))return e.blockedOn=t,void _t(e.priority,(function(){St(n)}))}else if(3===t&&n.stateNode.current.memoizedState.isDehydrated)return void(e.blockedOn=3===n.tag?n.stateNode.containerInfo:null)}e.blockedOn=null}function Ft(e){if(null!==e.blockedOn)return!1;for(var t=e.targetContainers;0<t.length;){var n=Qt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n)return null!==(t=va(n))&&xt(t),e.blockedOn=n,!1;var r=new(n=e.nativeEvent).constructor(n.type,n);we=r,n.target.dispatchEvent(r),we=null,t.shift()}return!0}function zt(e,t,n){Ft(e)&&n.delete(t)}function Bt(){Ct=!1,null!==jt&&Ft(jt)&&(jt=null),null!==Nt&&Ft(Nt)&&(Nt=null),null!==Rt&&Ft(Rt)&&(Rt=null),At.forEach(zt),Lt.forEach(zt)}function $t(e,t){e.blockedOn===t&&(e.blockedOn=null,Ct||(Ct=!0,a.unstable_scheduleCallback(a.unstable_NormalPriority,Bt)))}function Ut(e){function t(t){return $t(t,e)}if(0<Tt.length){$t(Tt[0],e);for(var n=1;n<Tt.length;n++){var r=Tt[n];r.blockedOn===e&&(r.blockedOn=null)}}for(null!==jt&&$t(jt,e),null!==Nt&&$t(Nt,e),null!==Rt&&$t(Rt,e),At.forEach(t),Lt.forEach(t),n=0;n<Pt.length;n++)(r=Pt[n]).blockedOn===e&&(r.blockedOn=null);for(;0<Pt.length&&null===(n=Pt[0]).blockedOn;)Mt(n),null===n.blockedOn&&Pt.shift()}var qt=w.ReactCurrentBatchConfig,Ht=!0;function Zt(e,t,n,r){var a=vt,o=qt.transition;qt.transition=null;try{vt=1,Wt(e,t,n,r)}finally{vt=a,qt.transition=o}}function Gt(e,t,n,r){var a=vt,o=qt.transition;qt.transition=null;try{vt=4,Wt(e,t,n,r)}finally{vt=a,qt.transition=o}}function Wt(e,t,n,r){if(Ht){var a=Qt(e,t,n,r);if(null===a)Hr(e,t,r,Vt,n),It(e,r);else if(function(e,t,n,r,a){switch(t){case"focusin":return jt=Dt(jt,e,t,n,r,a),!0;case"dragenter":return Nt=Dt(Nt,e,t,n,r,a),!0;case"mouseover":return Rt=Dt(Rt,e,t,n,r,a),!0;case"pointerover":var o=a.pointerId;return At.set(o,Dt(At.get(o)||null,e,t,n,r,a)),!0;case"gotpointercapture":return o=a.pointerId,Lt.set(o,Dt(Lt.get(o)||null,e,t,n,r,a)),!0}return!1}(a,e,t,n,r))r.stopPropagation();else if(It(e,r),4&t&&-1<Ot.indexOf(e)){for(;null!==a;){var o=va(a);if(null!==o&&kt(o),null===(o=Qt(e,t,n,r))&&Hr(e,t,r,Vt,n),o===a)break;a=o}null!==a&&r.stopPropagation()}else Hr(e,t,r,null,n)}}var Vt=null;function Qt(e,t,n,r){if(Vt=null,null!==(e=ya(e=ke(r))))if(null===(t=Ue(e)))e=null;else if(13===(n=t.tag)){if(null!==(e=qe(t)))return e;e=null}else if(3===n){if(t.stateNode.current.memoizedState.isDehydrated)return 3===t.tag?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null);return Vt=e,null}function Yt(e){switch(e){case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 1;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"toggle":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 4;case"message":switch(Xe()){case Je:return 1;case et:return 4;case tt:case nt:return 16;case rt:return 536870912;default:return 16}default:return 16}}var Kt=null,Xt=null,Jt=null;function en(){if(Jt)return Jt;var e,t,n=Xt,r=n.length,a="value"in Kt?Kt.value:Kt.textContent,o=a.length;for(e=0;e<r&&n[e]===a[e];e++);var i=r-e;for(t=1;t<=i&&n[r-t]===a[o-t];t++);return Jt=a.slice(e,1<t?1-t:void 0)}function tn(e){var t=e.keyCode;return"charCode"in e?0===(e=e.charCode)&&13===t&&(e=13):e=t,10===e&&(e=13),32<=e||13===e?e:0}function nn(){return!0}function rn(){return!1}function an(e){function t(t,n,r,a,o){for(var i in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=a,this.target=o,this.currentTarget=null,e)e.hasOwnProperty(i)&&(t=e[i],this[i]=t?t(a):a[i]);return this.isDefaultPrevented=(null!=a.defaultPrevented?a.defaultPrevented:!1===a.returnValue)?nn:rn,this.isPropagationStopped=rn,this}return M(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=nn)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=nn)},persist:function(){},isPersistent:nn}),t}var on,sn,ln,cn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},un=an(cn),dn=M({},cn,{view:0,detail:0}),pn=an(dn),fn=M({},dn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:_n,button:0,buttons:0,relatedTarget:function(e){return void 0===e.relatedTarget?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==ln&&(ln&&"mousemove"===e.type?(on=e.screenX-ln.screenX,sn=e.screenY-ln.screenY):sn=on=0,ln=e),on)},movementY:function(e){return"movementY"in e?e.movementY:sn}}),mn=an(fn),hn=an(M({},fn,{dataTransfer:0})),gn=an(M({},dn,{relatedTarget:0})),bn=an(M({},cn,{animationName:0,elapsedTime:0,pseudoElement:0})),yn=M({},cn,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),vn=an(yn),wn=an(M({},cn,{data:0})),kn={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},xn={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},Sn={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function En(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=Sn[e])&&!!t[e]}function _n(){return En}var Cn=M({},dn,{key:function(e){if(e.key){var t=kn[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?13===(e=tn(e))?"Enter":String.fromCharCode(e):"keydown"===e.type||"keyup"===e.type?xn[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:_n,charCode:function(e){return"keypress"===e.type?tn(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?tn(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}}),Tn=an(Cn),jn=an(M({},fn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),Nn=an(M({},dn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:_n})),Rn=an(M({},cn,{propertyName:0,elapsedTime:0,pseudoElement:0})),An=M({},fn,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),Ln=an(An),Pn=[9,13,27,32],On=u&&"CompositionEvent"in window,In=null;u&&"documentMode"in document&&(In=document.documentMode);var Dn=u&&"TextEvent"in window&&!In,Mn=u&&(!On||In&&8<In&&11>=In),Fn=String.fromCharCode(32),zn=!1;function Bn(e,t){switch(e){case"keyup":return-1!==Pn.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function $n(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var Un=!1;var qn={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Hn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!qn[e.type]:"textarea"===t}function Zn(e,t,n,r){Ce(r),0<(t=Gr(t,"onChange")).length&&(n=new un("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var Gn=null,Wn=null;function Vn(e){Fr(e,0)}function Qn(e){if(W(wa(e)))return e}function Yn(e,t){if("change"===e)return t}var Kn=!1;if(u){var Xn;if(u){var Jn="oninput"in document;if(!Jn){var er=document.createElement("div");er.setAttribute("oninput","return;"),Jn="function"==typeof er.oninput}Xn=Jn}else Xn=!1;Kn=Xn&&(!document.documentMode||9<document.documentMode)}function tr(){Gn&&(Gn.detachEvent("onpropertychange",nr),Wn=Gn=null)}function nr(e){if("value"===e.propertyName&&Qn(Wn)){var t=[];Zn(t,Wn,e,ke(e)),Ae(Vn,t)}}function rr(e,t,n){"focusin"===e?(tr(),Wn=n,(Gn=t).attachEvent("onpropertychange",nr)):"focusout"===e&&tr()}function ar(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return Qn(Wn)}function or(e,t){if("click"===e)return Qn(t)}function ir(e,t){if("input"===e||"change"===e)return Qn(t)}var sr="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t};function lr(e,t){if(sr(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++){var a=n[r];if(!d.call(t,a)||!sr(e[a],t[a]))return!1}return!0}function cr(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function ur(e,t){var n,r=cr(e);for(e=0;r;){if(3===r.nodeType){if(n=e+r.textContent.length,e<=t&&n>=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=cr(r)}}function dr(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?dr(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function pr(){for(var e=window,t=V();t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch(r){n=!1}if(!n)break;t=V((e=t.contentWindow).document)}return t}function fr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}function mr(e){var t=pr(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&dr(n.ownerDocument.documentElement,n)){if(null!==r&&fr(n))if(t=r.start,void 0===(e=r.end)&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if((e=(t=n.ownerDocument||document)&&t.defaultView||window).getSelection){e=e.getSelection();var a=n.textContent.length,o=Math.min(r.start,a);r=void 0===r.end?o:Math.min(r.end,a),!e.extend&&o>r&&(a=r,r=o,o=a),a=ur(n,o);var i=ur(n,r);a&&i&&(1!==e.rangeCount||e.anchorNode!==a.node||e.anchorOffset!==a.offset||e.focusNode!==i.node||e.focusOffset!==i.offset)&&((t=t.createRange()).setStart(a.node,a.offset),e.removeAllRanges(),o>r?(e.addRange(t),e.extend(i.node,i.offset)):(t.setEnd(i.node,i.offset),e.addRange(t)))}for(t=[],e=n;e=e.parentNode;)1===e.nodeType&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for("function"==typeof n.focus&&n.focus(),n=0;n<t.length;n++)(e=t[n]).element.scrollLeft=e.left,e.element.scrollTop=e.top}}var hr=u&&"documentMode"in document&&11>=document.documentMode,gr=null,br=null,yr=null,vr=!1;function wr(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;vr||null==gr||gr!==V(r)||("selectionStart"in(r=gr)&&fr(r)?r={start:r.selectionStart,end:r.selectionEnd}:r={anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},yr&&lr(yr,r)||(yr=r,0<(r=Gr(br,"onSelect")).length&&(t=new un("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=gr)))}function kr(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var xr={animationend:kr("Animation","AnimationEnd"),animationiteration:kr("Animation","AnimationIteration"),animationstart:kr("Animation","AnimationStart"),transitionend:kr("Transition","TransitionEnd")},Sr={},Er={};function _r(e){if(Sr[e])return Sr[e];if(!xr[e])return e;var t,n=xr[e];for(t in n)if(n.hasOwnProperty(t)&&t in Er)return Sr[e]=n[t];return e}u&&(Er=document.createElement("div").style,"AnimationEvent"in window||(delete xr.animationend.animation,delete xr.animationiteration.animation,delete xr.animationstart.animation),"TransitionEvent"in window||delete xr.transitionend.transition);var Cr=_r("animationend"),Tr=_r("animationiteration"),jr=_r("animationstart"),Nr=_r("transitionend"),Rr=new Map,Ar="abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function Lr(e,t){Rr.set(e,t),l(t,[e])}for(var Pr=0;Pr<Ar.length;Pr++){var Or=Ar[Pr];Lr(Or.toLowerCase(),"on"+(Or[0].toUpperCase()+Or.slice(1)))}Lr(Cr,"onAnimationEnd"),Lr(Tr,"onAnimationIteration"),Lr(jr,"onAnimationStart"),Lr("dblclick","onDoubleClick"),Lr("focusin","onFocus"),Lr("focusout","onBlur"),Lr(Nr,"onTransitionEnd"),c("onMouseEnter",["mouseout","mouseover"]),c("onMouseLeave",["mouseout","mouseover"]),c("onPointerEnter",["pointerout","pointerover"]),c("onPointerLeave",["pointerout","pointerover"]),l("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),l("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),l("onBeforeInput",["compositionend","keypress","textInput","paste"]),l("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),l("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),l("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Ir="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Dr=new Set("cancel close invalid load scroll toggle".split(" ").concat(Ir));function Mr(e,t,n){var r=e.type||"unknown-event";e.currentTarget=n,function(e,t,n,r,a,i,s,l,c){if($e.apply(this,arguments),De){if(!De)throw Error(o(198));var u=Me;De=!1,Me=null,Fe||(Fe=!0,ze=u)}}(r,t,void 0,e),e.currentTarget=null}function Fr(e,t){t=0!=(4&t);for(var n=0;n<e.length;n++){var r=e[n],a=r.event;r=r.listeners;e:{var o=void 0;if(t)for(var i=r.length-1;0<=i;i--){var s=r[i],l=s.instance,c=s.currentTarget;if(s=s.listener,l!==o&&a.isPropagationStopped())break e;Mr(a,s,c),o=l}else for(i=0;i<r.length;i++){if(l=(s=r[i]).instance,c=s.currentTarget,s=s.listener,l!==o&&a.isPropagationStopped())break e;Mr(a,s,c),o=l}}}if(Fe)throw e=ze,Fe=!1,ze=null,e}function zr(e,t){var n=t[ha];void 0===n&&(n=t[ha]=new Set);var r=e+"__bubble";n.has(r)||(qr(t,e,2,!1),n.add(r))}function Br(e,t,n){var r=0;t&&(r|=4),qr(n,e,r,t)}var $r="_reactListening"+Math.random().toString(36).slice(2);function Ur(e){if(!e[$r]){e[$r]=!0,i.forEach((function(t){"selectionchange"!==t&&(Dr.has(t)||Br(t,!1,e),Br(t,!0,e))}));var t=9===e.nodeType?e:e.ownerDocument;null===t||t[$r]||(t[$r]=!0,Br("selectionchange",!1,t))}}function qr(e,t,n,r){switch(Yt(t)){case 1:var a=Zt;break;case 4:a=Gt;break;default:a=Wt}n=a.bind(null,t,n,e),a=void 0,!Pe||"touchstart"!==t&&"touchmove"!==t&&"wheel"!==t||(a=!0),r?void 0!==a?e.addEventListener(t,n,{capture:!0,passive:a}):e.addEventListener(t,n,!0):void 0!==a?e.addEventListener(t,n,{passive:a}):e.addEventListener(t,n,!1)}function Hr(e,t,n,r,a){var o=r;if(0==(1&t)&&0==(2&t)&&null!==r)e:for(;;){if(null===r)return;var i=r.tag;if(3===i||4===i){var s=r.stateNode.containerInfo;if(s===a||8===s.nodeType&&s.parentNode===a)break;if(4===i)for(i=r.return;null!==i;){var l=i.tag;if((3===l||4===l)&&((l=i.stateNode.containerInfo)===a||8===l.nodeType&&l.parentNode===a))return;i=i.return}for(;null!==s;){if(null===(i=ya(s)))return;if(5===(l=i.tag)||6===l){r=o=i;continue e}s=s.parentNode}}r=r.return}Ae((function(){var r=o,a=ke(n),i=[];e:{var s=Rr.get(e);if(void 0!==s){var l=un,c=e;switch(e){case"keypress":if(0===tn(n))break e;case"keydown":case"keyup":l=Tn;break;case"focusin":c="focus",l=gn;break;case"focusout":c="blur",l=gn;break;case"beforeblur":case"afterblur":l=gn;break;case"click":if(2===n.button)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":l=mn;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":l=hn;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":l=Nn;break;case Cr:case Tr:case jr:l=bn;break;case Nr:l=Rn;break;case"scroll":l=pn;break;case"wheel":l=Ln;break;case"copy":case"cut":case"paste":l=vn;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":l=jn}var u=0!=(4&t),d=!u&&"scroll"===e,p=u?null!==s?s+"Capture":null:s;u=[];for(var f,m=r;null!==m;){var h=(f=m).stateNode;if(5===f.tag&&null!==h&&(f=h,null!==p&&(null!=(h=Le(m,p))&&u.push(Zr(m,h,f)))),d)break;m=m.return}0<u.length&&(s=new l(s,c,null,n,a),i.push({event:s,listeners:u}))}}if(0==(7&t)){if(l="mouseout"===e||"pointerout"===e,(!(s="mouseover"===e||"pointerover"===e)||n===we||!(c=n.relatedTarget||n.fromElement)||!ya(c)&&!c[ma])&&(l||s)&&(s=a.window===a?a:(s=a.ownerDocument)?s.defaultView||s.parentWindow:window,l?(l=r,null!==(c=(c=n.relatedTarget||n.toElement)?ya(c):null)&&(c!==(d=Ue(c))||5!==c.tag&&6!==c.tag)&&(c=null)):(l=null,c=r),l!==c)){if(u=mn,h="onMouseLeave",p="onMouseEnter",m="mouse","pointerout"!==e&&"pointerover"!==e||(u=jn,h="onPointerLeave",p="onPointerEnter",m="pointer"),d=null==l?s:wa(l),f=null==c?s:wa(c),(s=new u(h,m+"leave",l,n,a)).target=d,s.relatedTarget=f,h=null,ya(a)===r&&((u=new u(p,m+"enter",c,n,a)).target=f,u.relatedTarget=d,h=u),d=h,l&&c)e:{for(p=c,m=0,f=u=l;f;f=Wr(f))m++;for(f=0,h=p;h;h=Wr(h))f++;for(;0<m-f;)u=Wr(u),m--;for(;0<f-m;)p=Wr(p),f--;for(;m--;){if(u===p||null!==p&&u===p.alternate)break e;u=Wr(u),p=Wr(p)}u=null}else u=null;null!==l&&Vr(i,s,l,u,!1),null!==c&&null!==d&&Vr(i,d,c,u,!0)}if("select"===(l=(s=r?wa(r):window).nodeName&&s.nodeName.toLowerCase())||"input"===l&&"file"===s.type)var g=Yn;else if(Hn(s))if(Kn)g=ir;else{g=ar;var b=rr}else(l=s.nodeName)&&"input"===l.toLowerCase()&&("checkbox"===s.type||"radio"===s.type)&&(g=or);switch(g&&(g=g(e,r))?Zn(i,g,n,a):(b&&b(e,s,r),"focusout"===e&&(b=s._wrapperState)&&b.controlled&&"number"===s.type&&ee(s,"number",s.value)),b=r?wa(r):window,e){case"focusin":(Hn(b)||"true"===b.contentEditable)&&(gr=b,br=r,yr=null);break;case"focusout":yr=br=gr=null;break;case"mousedown":vr=!0;break;case"contextmenu":case"mouseup":case"dragend":vr=!1,wr(i,n,a);break;case"selectionchange":if(hr)break;case"keydown":case"keyup":wr(i,n,a)}var y;if(On)e:{switch(e){case"compositionstart":var v="onCompositionStart";break e;case"compositionend":v="onCompositionEnd";break e;case"compositionupdate":v="onCompositionUpdate";break e}v=void 0}else Un?Bn(e,n)&&(v="onCompositionEnd"):"keydown"===e&&229===n.keyCode&&(v="onCompositionStart");v&&(Mn&&"ko"!==n.locale&&(Un||"onCompositionStart"!==v?"onCompositionEnd"===v&&Un&&(y=en()):(Xt="value"in(Kt=a)?Kt.value:Kt.textContent,Un=!0)),0<(b=Gr(r,v)).length&&(v=new wn(v,e,null,n,a),i.push({event:v,listeners:b}),y?v.data=y:null!==(y=$n(n))&&(v.data=y))),(y=Dn?function(e,t){switch(e){case"compositionend":return $n(t);case"keypress":return 32!==t.which?null:(zn=!0,Fn);case"textInput":return(e=t.data)===Fn&&zn?null:e;default:return null}}(e,n):function(e,t){if(Un)return"compositionend"===e||!On&&Bn(e,t)?(e=en(),Jt=Xt=Kt=null,Un=!1,e):null;switch(e){case"paste":default:return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return Mn&&"ko"!==t.locale?null:t.data}}(e,n))&&(0<(r=Gr(r,"onBeforeInput")).length&&(a=new wn("onBeforeInput","beforeinput",null,n,a),i.push({event:a,listeners:r}),a.data=y))}Fr(i,t)}))}function Zr(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Gr(e,t){for(var n=t+"Capture",r=[];null!==e;){var a=e,o=a.stateNode;5===a.tag&&null!==o&&(a=o,null!=(o=Le(e,n))&&r.unshift(Zr(e,o,a)),null!=(o=Le(e,t))&&r.push(Zr(e,o,a))),e=e.return}return r}function Wr(e){if(null===e)return null;do{e=e.return}while(e&&5!==e.tag);return e||null}function Vr(e,t,n,r,a){for(var o=t._reactName,i=[];null!==n&&n!==r;){var s=n,l=s.alternate,c=s.stateNode;if(null!==l&&l===r)break;5===s.tag&&null!==c&&(s=c,a?null!=(l=Le(n,o))&&i.unshift(Zr(n,l,s)):a||null!=(l=Le(n,o))&&i.push(Zr(n,l,s))),n=n.return}0!==i.length&&e.push({event:t,listeners:i})}var Qr=/\r\n?/g,Yr=/\u0000|\uFFFD/g;function Kr(e){return("string"==typeof e?e:""+e).replace(Qr,"\n").replace(Yr,"")}function Xr(e,t,n){if(t=Kr(t),Kr(e)!==t&&n)throw Error(o(425))}function Jr(){}var ea=null,ta=null;function na(e,t){return"textarea"===e||"noscript"===e||"string"==typeof t.children||"number"==typeof t.children||"object"==typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var ra="function"==typeof setTimeout?setTimeout:void 0,aa="function"==typeof clearTimeout?clearTimeout:void 0,oa="function"==typeof Promise?Promise:void 0,ia="function"==typeof queueMicrotask?queueMicrotask:void 0!==oa?function(e){return oa.resolve(null).then(e).catch(sa)}:ra;function sa(e){setTimeout((function(){throw e}))}function la(e,t){var n=t,r=0;do{var a=n.nextSibling;if(e.removeChild(n),a&&8===a.nodeType)if("/$"===(n=a.data)){if(0===r)return e.removeChild(a),void Ut(t);r--}else"$"!==n&&"$?"!==n&&"$!"!==n||r++;n=a}while(n);Ut(t)}function ca(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break;if(8===t){if("$"===(t=e.data)||"$!"===t||"$?"===t)break;if("/$"===t)return null}}return e}function ua(e){e=e.previousSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if("$"===n||"$!"===n||"$?"===n){if(0===t)return e;t--}else"/$"===n&&t++}e=e.previousSibling}return null}var da=Math.random().toString(36).slice(2),pa="__reactFiber$"+da,fa="__reactProps$"+da,ma="__reactContainer$"+da,ha="__reactEvents$"+da,ga="__reactListeners$"+da,ba="__reactHandles$"+da;function ya(e){var t=e[pa];if(t)return t;for(var n=e.parentNode;n;){if(t=n[ma]||n[pa]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=ua(e);null!==e;){if(n=e[pa])return n;e=ua(e)}return t}n=(e=n).parentNode}return null}function va(e){return!(e=e[pa]||e[ma])||5!==e.tag&&6!==e.tag&&13!==e.tag&&3!==e.tag?null:e}function wa(e){if(5===e.tag||6===e.tag)return e.stateNode;throw Error(o(33))}function ka(e){return e[fa]||null}var xa=[],Sa=-1;function Ea(e){return{current:e}}function _a(e){0>Sa||(e.current=xa[Sa],xa[Sa]=null,Sa--)}function Ca(e,t){Sa++,xa[Sa]=e.current,e.current=t}var Ta={},ja=Ea(Ta),Na=Ea(!1),Ra=Ta;function Aa(e,t){var n=e.type.contextTypes;if(!n)return Ta;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var a,o={};for(a in n)o[a]=t[a];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=o),o}function La(e){return null!=(e=e.childContextTypes)}function Pa(){_a(Na),_a(ja)}function Oa(e,t,n){if(ja.current!==Ta)throw Error(o(168));Ca(ja,t),Ca(Na,n)}function Ia(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,"function"!=typeof r.getChildContext)return n;for(var a in r=r.getChildContext())if(!(a in t))throw Error(o(108,q(e)||"Unknown",a));return M({},n,r)}function Da(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Ta,Ra=ja.current,Ca(ja,e),Ca(Na,Na.current),!0}function Ma(e,t,n){var r=e.stateNode;if(!r)throw Error(o(169));n?(e=Ia(e,t,Ra),r.__reactInternalMemoizedMergedChildContext=e,_a(Na),_a(ja),Ca(ja,e)):_a(Na),Ca(Na,n)}var Fa=null,za=!1,Ba=!1;function $a(e){null===Fa?Fa=[e]:Fa.push(e)}function Ua(){if(!Ba&&null!==Fa){Ba=!0;var e=0,t=vt;try{var n=Fa;for(vt=1;e<n.length;e++){var r=n[e];do{r=r(!0)}while(null!==r)}Fa=null,za=!1}catch(a){throw null!==Fa&&(Fa=Fa.slice(e+1)),We(Je,Ua),a}finally{vt=t,Ba=!1}}return null}var qa=[],Ha=0,Za=null,Ga=0,Wa=[],Va=0,Qa=null,Ya=1,Ka="";function Xa(e,t){qa[Ha++]=Ga,qa[Ha++]=Za,Za=e,Ga=t}function Ja(e,t,n){Wa[Va++]=Ya,Wa[Va++]=Ka,Wa[Va++]=Qa,Qa=e;var r=Ya;e=Ka;var a=32-it(r)-1;r&=~(1<<a),n+=1;var o=32-it(t)+a;if(30<o){var i=a-a%5;o=(r&(1<<i)-1).toString(32),r>>=i,a-=i,Ya=1<<32-it(t)+a|n<<a|r,Ka=o+e}else Ya=1<<o|n<<a|r,Ka=e}function eo(e){null!==e.return&&(Xa(e,1),Ja(e,1,0))}function to(e){for(;e===Za;)Za=qa[--Ha],qa[Ha]=null,Ga=qa[--Ha],qa[Ha]=null;for(;e===Qa;)Qa=Wa[--Va],Wa[Va]=null,Ka=Wa[--Va],Wa[Va]=null,Ya=Wa[--Va],Wa[Va]=null}var no=null,ro=null,ao=!1,oo=null;function io(e,t){var n=Lc(5,null,null,0);n.elementType="DELETED",n.stateNode=t,n.return=e,null===(t=e.deletions)?(e.deletions=[n],e.flags|=16):t.push(n)}function so(e,t){switch(e.tag){case 5:var n=e.type;return null!==(t=1!==t.nodeType||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t)&&(e.stateNode=t,no=e,ro=ca(t.firstChild),!0);case 6:return null!==(t=""===e.pendingProps||3!==t.nodeType?null:t)&&(e.stateNode=t,no=e,ro=null,!0);case 13:return null!==(t=8!==t.nodeType?null:t)&&(n=null!==Qa?{id:Ya,overflow:Ka}:null,e.memoizedState={dehydrated:t,treeContext:n,retryLane:1073741824},(n=Lc(18,null,null,0)).stateNode=t,n.return=e,e.child=n,no=e,ro=null,!0);default:return!1}}function lo(e){return 0!=(1&e.mode)&&0==(128&e.flags)}function co(e){if(ao){var t=ro;if(t){var n=t;if(!so(e,t)){if(lo(e))throw Error(o(418));t=ca(n.nextSibling);var r=no;t&&so(e,t)?io(r,n):(e.flags=-4097&e.flags|2,ao=!1,no=e)}}else{if(lo(e))throw Error(o(418));e.flags=-4097&e.flags|2,ao=!1,no=e}}}function uo(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&13!==e.tag;)e=e.return;no=e}function po(e){if(e!==no)return!1;if(!ao)return uo(e),ao=!0,!1;var t;if((t=3!==e.tag)&&!(t=5!==e.tag)&&(t="head"!==(t=e.type)&&"body"!==t&&!na(e.type,e.memoizedProps)),t&&(t=ro)){if(lo(e))throw fo(),Error(o(418));for(;t;)io(e,t),t=ca(t.nextSibling)}if(uo(e),13===e.tag){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(o(317));e:{for(e=e.nextSibling,t=0;e;){if(8===e.nodeType){var n=e.data;if("/$"===n){if(0===t){ro=ca(e.nextSibling);break e}t--}else"$"!==n&&"$!"!==n&&"$?"!==n||t++}e=e.nextSibling}ro=null}}else ro=no?ca(e.stateNode.nextSibling):null;return!0}function fo(){for(var e=ro;e;)e=ca(e.nextSibling)}function mo(){ro=no=null,ao=!1}function ho(e){null===oo?oo=[e]:oo.push(e)}var go=w.ReactCurrentBatchConfig;function bo(e,t){if(e&&e.defaultProps){for(var n in t=M({},t),e=e.defaultProps)void 0===t[n]&&(t[n]=e[n]);return t}return t}var yo=Ea(null),vo=null,wo=null,ko=null;function xo(){ko=wo=vo=null}function So(e){var t=yo.current;_a(yo),e._currentValue=t}function Eo(e,t,n){for(;null!==e;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,null!==r&&(r.childLanes|=t)):null!==r&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function _o(e,t){vo=e,ko=wo=null,null!==(e=e.dependencies)&&null!==e.firstContext&&(0!=(e.lanes&t)&&(ws=!0),e.firstContext=null)}function Co(e){var t=e._currentValue;if(ko!==e)if(e={context:e,memoizedValue:t,next:null},null===wo){if(null===vo)throw Error(o(308));wo=e,vo.dependencies={lanes:0,firstContext:e}}else wo=wo.next=e;return t}var To=null;function jo(e){null===To?To=[e]:To.push(e)}function No(e,t,n,r){var a=t.interleaved;return null===a?(n.next=n,jo(t)):(n.next=a.next,a.next=n),t.interleaved=n,Ro(e,r)}function Ro(e,t){e.lanes|=t;var n=e.alternate;for(null!==n&&(n.lanes|=t),n=e,e=e.return;null!==e;)e.childLanes|=t,null!==(n=e.alternate)&&(n.childLanes|=t),n=e,e=e.return;return 3===n.tag?n.stateNode:null}var Ao=!1;function Lo(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Po(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function Oo(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function Io(e,t,n){var r=e.updateQueue;if(null===r)return null;if(r=r.shared,0!=(2&Nl)){var a=r.pending;return null===a?t.next=t:(t.next=a.next,a.next=t),r.pending=t,Ro(e,n)}return null===(a=r.interleaved)?(t.next=t,jo(r)):(t.next=a.next,a.next=t),r.interleaved=t,Ro(e,n)}function Do(e,t,n){if(null!==(t=t.updateQueue)&&(t=t.shared,0!=(4194240&n))){var r=t.lanes;n|=r&=e.pendingLanes,t.lanes=n,yt(e,n)}}function Mo(e,t){var n=e.updateQueue,r=e.alternate;if(null!==r&&n===(r=r.updateQueue)){var a=null,o=null;if(null!==(n=n.firstBaseUpdate)){do{var i={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};null===o?a=o=i:o=o.next=i,n=n.next}while(null!==n);null===o?a=o=t:o=o.next=t}else a=o=t;return n={baseState:r.baseState,firstBaseUpdate:a,lastBaseUpdate:o,shared:r.shared,effects:r.effects},void(e.updateQueue=n)}null===(e=n.lastBaseUpdate)?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function Fo(e,t,n,r){var a=e.updateQueue;Ao=!1;var o=a.firstBaseUpdate,i=a.lastBaseUpdate,s=a.shared.pending;if(null!==s){a.shared.pending=null;var l=s,c=l.next;l.next=null,null===i?o=c:i.next=c,i=l;var u=e.alternate;null!==u&&((s=(u=u.updateQueue).lastBaseUpdate)!==i&&(null===s?u.firstBaseUpdate=c:s.next=c,u.lastBaseUpdate=l))}if(null!==o){var d=a.baseState;for(i=0,u=c=l=null,s=o;;){var p=s.lane,f=s.eventTime;if((r&p)===p){null!==u&&(u=u.next={eventTime:f,lane:0,tag:s.tag,payload:s.payload,callback:s.callback,next:null});e:{var m=e,h=s;switch(p=t,f=n,h.tag){case 1:if("function"==typeof(m=h.payload)){d=m.call(f,d,p);break e}d=m;break e;case 3:m.flags=-65537&m.flags|128;case 0:if(null==(p="function"==typeof(m=h.payload)?m.call(f,d,p):m))break e;d=M({},d,p);break e;case 2:Ao=!0}}null!==s.callback&&0!==s.lane&&(e.flags|=64,null===(p=a.effects)?a.effects=[s]:p.push(s))}else f={eventTime:f,lane:p,tag:s.tag,payload:s.payload,callback:s.callback,next:null},null===u?(c=u=f,l=d):u=u.next=f,i|=p;if(null===(s=s.next)){if(null===(s=a.shared.pending))break;s=(p=s).next,p.next=null,a.lastBaseUpdate=p,a.shared.pending=null}}if(null===u&&(l=d),a.baseState=l,a.firstBaseUpdate=c,a.lastBaseUpdate=u,null!==(t=a.shared.interleaved)){a=t;do{i|=a.lane,a=a.next}while(a!==t)}else null===o&&(a.shared.lanes=0);Ml|=i,e.lanes=i,e.memoizedState=d}}function zo(e,t,n){if(e=t.effects,t.effects=null,null!==e)for(t=0;t<e.length;t++){var r=e[t],a=r.callback;if(null!==a){if(r.callback=null,r=n,"function"!=typeof a)throw Error(o(191,a));a.call(r)}}}var Bo=(new r.Component).refs;function $o(e,t,n,r){n=null==(n=n(r,t=e.memoizedState))?t:M({},t,n),e.memoizedState=n,0===e.lanes&&(e.updateQueue.baseState=n)}var Uo={isMounted:function(e){return!!(e=e._reactInternals)&&Ue(e)===e},enqueueSetState:function(e,t,n){e=e._reactInternals;var r=tc(),a=nc(e),o=Oo(r,a);o.payload=t,null!=n&&(o.callback=n),null!==(t=Io(e,o,a))&&(rc(t,e,a,r),Do(t,e,a))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=tc(),a=nc(e),o=Oo(r,a);o.tag=1,o.payload=t,null!=n&&(o.callback=n),null!==(t=Io(e,o,a))&&(rc(t,e,a,r),Do(t,e,a))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=tc(),r=nc(e),a=Oo(n,r);a.tag=2,null!=t&&(a.callback=t),null!==(t=Io(e,a,r))&&(rc(t,e,r,n),Do(t,e,r))}};function qo(e,t,n,r,a,o,i){return"function"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,o,i):!t.prototype||!t.prototype.isPureReactComponent||(!lr(n,r)||!lr(a,o))}function Ho(e,t,n){var r=!1,a=Ta,o=t.contextType;return"object"==typeof o&&null!==o?o=Co(o):(a=La(t)?Ra:ja.current,o=(r=null!=(r=t.contextTypes))?Aa(e,a):Ta),t=new t(n,o),e.memoizedState=null!==t.state&&void 0!==t.state?t.state:null,t.updater=Uo,e.stateNode=t,t._reactInternals=e,r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=a,e.__reactInternalMemoizedMaskedChildContext=o),t}function Zo(e,t,n,r){e=t.state,"function"==typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(n,r),"function"==typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&Uo.enqueueReplaceState(t,t.state,null)}function Go(e,t,n,r){var a=e.stateNode;a.props=n,a.state=e.memoizedState,a.refs=Bo,Lo(e);var o=t.contextType;"object"==typeof o&&null!==o?a.context=Co(o):(o=La(t)?Ra:ja.current,a.context=Aa(e,o)),a.state=e.memoizedState,"function"==typeof(o=t.getDerivedStateFromProps)&&($o(e,t,o,n),a.state=e.memoizedState),"function"==typeof t.getDerivedStateFromProps||"function"==typeof a.getSnapshotBeforeUpdate||"function"!=typeof a.UNSAFE_componentWillMount&&"function"!=typeof a.componentWillMount||(t=a.state,"function"==typeof a.componentWillMount&&a.componentWillMount(),"function"==typeof a.UNSAFE_componentWillMount&&a.UNSAFE_componentWillMount(),t!==a.state&&Uo.enqueueReplaceState(a,a.state,null),Fo(e,n,a,r),a.state=e.memoizedState),"function"==typeof a.componentDidMount&&(e.flags|=4194308)}function Wo(e,t,n){if(null!==(e=n.ref)&&"function"!=typeof e&&"object"!=typeof e){if(n._owner){if(n=n._owner){if(1!==n.tag)throw Error(o(309));var r=n.stateNode}if(!r)throw Error(o(147,e));var a=r,i=""+e;return null!==t&&null!==t.ref&&"function"==typeof t.ref&&t.ref._stringRef===i?t.ref:(t=function(e){var t=a.refs;t===Bo&&(t=a.refs={}),null===e?delete t[i]:t[i]=e},t._stringRef=i,t)}if("string"!=typeof e)throw Error(o(284));if(!n._owner)throw Error(o(290,e))}return e}function Vo(e,t){throw e=Object.prototype.toString.call(t),Error(o(31,"[object Object]"===e?"object with keys {"+Object.keys(t).join(", ")+"}":e))}function Qo(e){return(0,e._init)(e._payload)}function Yo(e){function t(t,n){if(e){var r=t.deletions;null===r?(t.deletions=[n],t.flags|=16):r.push(n)}}function n(n,r){if(!e)return null;for(;null!==r;)t(n,r),r=r.sibling;return null}function r(e,t){for(e=new Map;null!==t;)null!==t.key?e.set(t.key,t):e.set(t.index,t),t=t.sibling;return e}function a(e,t){return(e=Oc(e,t)).index=0,e.sibling=null,e}function i(t,n,r){return t.index=r,e?null!==(r=t.alternate)?(r=r.index)<n?(t.flags|=2,n):r:(t.flags|=2,n):(t.flags|=1048576,n)}function s(t){return e&&null===t.alternate&&(t.flags|=2),t}function l(e,t,n,r){return null===t||6!==t.tag?((t=Fc(n,e.mode,r)).return=e,t):((t=a(t,n)).return=e,t)}function c(e,t,n,r){var o=n.type;return o===S?d(e,t,n.props.children,r,n.key):null!==t&&(t.elementType===o||"object"==typeof o&&null!==o&&o.$$typeof===L&&Qo(o)===t.type)?((r=a(t,n.props)).ref=Wo(e,t,n),r.return=e,r):((r=Ic(n.type,n.key,n.props,null,e.mode,r)).ref=Wo(e,t,n),r.return=e,r)}function u(e,t,n,r){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?((t=zc(n,e.mode,r)).return=e,t):((t=a(t,n.children||[])).return=e,t)}function d(e,t,n,r,o){return null===t||7!==t.tag?((t=Dc(n,e.mode,r,o)).return=e,t):((t=a(t,n)).return=e,t)}function p(e,t,n){if("string"==typeof t&&""!==t||"number"==typeof t)return(t=Fc(""+t,e.mode,n)).return=e,t;if("object"==typeof t&&null!==t){switch(t.$$typeof){case k:return(n=Ic(t.type,t.key,t.props,null,e.mode,n)).ref=Wo(e,null,t),n.return=e,n;case x:return(t=zc(t,e.mode,n)).return=e,t;case L:return p(e,(0,t._init)(t._payload),n)}if(te(t)||I(t))return(t=Dc(t,e.mode,n,null)).return=e,t;Vo(e,t)}return null}function f(e,t,n,r){var a=null!==t?t.key:null;if("string"==typeof n&&""!==n||"number"==typeof n)return null!==a?null:l(e,t,""+n,r);if("object"==typeof n&&null!==n){switch(n.$$typeof){case k:return n.key===a?c(e,t,n,r):null;case x:return n.key===a?u(e,t,n,r):null;case L:return f(e,t,(a=n._init)(n._payload),r)}if(te(n)||I(n))return null!==a?null:d(e,t,n,r,null);Vo(e,n)}return null}function m(e,t,n,r,a){if("string"==typeof r&&""!==r||"number"==typeof r)return l(t,e=e.get(n)||null,""+r,a);if("object"==typeof r&&null!==r){switch(r.$$typeof){case k:return c(t,e=e.get(null===r.key?n:r.key)||null,r,a);case x:return u(t,e=e.get(null===r.key?n:r.key)||null,r,a);case L:return m(e,t,n,(0,r._init)(r._payload),a)}if(te(r)||I(r))return d(t,e=e.get(n)||null,r,a,null);Vo(t,r)}return null}function h(a,o,s,l){for(var c=null,u=null,d=o,h=o=0,g=null;null!==d&&h<s.length;h++){d.index>h?(g=d,d=null):g=d.sibling;var b=f(a,d,s[h],l);if(null===b){null===d&&(d=g);break}e&&d&&null===b.alternate&&t(a,d),o=i(b,o,h),null===u?c=b:u.sibling=b,u=b,d=g}if(h===s.length)return n(a,d),ao&&Xa(a,h),c;if(null===d){for(;h<s.length;h++)null!==(d=p(a,s[h],l))&&(o=i(d,o,h),null===u?c=d:u.sibling=d,u=d);return ao&&Xa(a,h),c}for(d=r(a,d);h<s.length;h++)null!==(g=m(d,a,h,s[h],l))&&(e&&null!==g.alternate&&d.delete(null===g.key?h:g.key),o=i(g,o,h),null===u?c=g:u.sibling=g,u=g);return e&&d.forEach((function(e){return t(a,e)})),ao&&Xa(a,h),c}function g(a,s,l,c){var u=I(l);if("function"!=typeof u)throw Error(o(150));if(null==(l=u.call(l)))throw Error(o(151));for(var d=u=null,h=s,g=s=0,b=null,y=l.next();null!==h&&!y.done;g++,y=l.next()){h.index>g?(b=h,h=null):b=h.sibling;var v=f(a,h,y.value,c);if(null===v){null===h&&(h=b);break}e&&h&&null===v.alternate&&t(a,h),s=i(v,s,g),null===d?u=v:d.sibling=v,d=v,h=b}if(y.done)return n(a,h),ao&&Xa(a,g),u;if(null===h){for(;!y.done;g++,y=l.next())null!==(y=p(a,y.value,c))&&(s=i(y,s,g),null===d?u=y:d.sibling=y,d=y);return ao&&Xa(a,g),u}for(h=r(a,h);!y.done;g++,y=l.next())null!==(y=m(h,a,g,y.value,c))&&(e&&null!==y.alternate&&h.delete(null===y.key?g:y.key),s=i(y,s,g),null===d?u=y:d.sibling=y,d=y);return e&&h.forEach((function(e){return t(a,e)})),ao&&Xa(a,g),u}return function e(r,o,i,l){if("object"==typeof i&&null!==i&&i.type===S&&null===i.key&&(i=i.props.children),"object"==typeof i&&null!==i){switch(i.$$typeof){case k:e:{for(var c=i.key,u=o;null!==u;){if(u.key===c){if((c=i.type)===S){if(7===u.tag){n(r,u.sibling),(o=a(u,i.props.children)).return=r,r=o;break e}}else if(u.elementType===c||"object"==typeof c&&null!==c&&c.$$typeof===L&&Qo(c)===u.type){n(r,u.sibling),(o=a(u,i.props)).ref=Wo(r,u,i),o.return=r,r=o;break e}n(r,u);break}t(r,u),u=u.sibling}i.type===S?((o=Dc(i.props.children,r.mode,l,i.key)).return=r,r=o):((l=Ic(i.type,i.key,i.props,null,r.mode,l)).ref=Wo(r,o,i),l.return=r,r=l)}return s(r);case x:e:{for(u=i.key;null!==o;){if(o.key===u){if(4===o.tag&&o.stateNode.containerInfo===i.containerInfo&&o.stateNode.implementation===i.implementation){n(r,o.sibling),(o=a(o,i.children||[])).return=r,r=o;break e}n(r,o);break}t(r,o),o=o.sibling}(o=zc(i,r.mode,l)).return=r,r=o}return s(r);case L:return e(r,o,(u=i._init)(i._payload),l)}if(te(i))return h(r,o,i,l);if(I(i))return g(r,o,i,l);Vo(r,i)}return"string"==typeof i&&""!==i||"number"==typeof i?(i=""+i,null!==o&&6===o.tag?(n(r,o.sibling),(o=a(o,i)).return=r,r=o):(n(r,o),(o=Fc(i,r.mode,l)).return=r,r=o),s(r)):n(r,o)}}var Ko=Yo(!0),Xo=Yo(!1),Jo={},ei=Ea(Jo),ti=Ea(Jo),ni=Ea(Jo);function ri(e){if(e===Jo)throw Error(o(174));return e}function ai(e,t){switch(Ca(ni,t),Ca(ti,e),Ca(ei,Jo),e=t.nodeType){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:le(null,"");break;default:t=le(t=(e=8===e?t.parentNode:t).namespaceURI||null,e=e.tagName)}_a(ei),Ca(ei,t)}function oi(){_a(ei),_a(ti),_a(ni)}function ii(e){ri(ni.current);var t=ri(ei.current),n=le(t,e.type);t!==n&&(Ca(ti,e),Ca(ei,n))}function si(e){ti.current===e&&(_a(ei),_a(ti))}var li=Ea(0);function ci(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||"$?"===n.data||"$!"===n.data))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(0!=(128&t.flags))return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var ui=[];function di(){for(var e=0;e<ui.length;e++)ui[e]._workInProgressVersionPrimary=null;ui.length=0}var pi=w.ReactCurrentDispatcher,fi=w.ReactCurrentBatchConfig,mi=0,hi=null,gi=null,bi=null,yi=!1,vi=!1,wi=0,ki=0;function xi(){throw Error(o(321))}function Si(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!sr(e[n],t[n]))return!1;return!0}function Ei(e,t,n,r,a,i){if(mi=i,hi=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,pi.current=null===e||null===e.memoizedState?ss:ls,e=n(r,a),vi){i=0;do{if(vi=!1,wi=0,25<=i)throw Error(o(301));i+=1,bi=gi=null,t.updateQueue=null,pi.current=cs,e=n(r,a)}while(vi)}if(pi.current=is,t=null!==gi&&null!==gi.next,mi=0,bi=gi=hi=null,yi=!1,t)throw Error(o(300));return e}function _i(){var e=0!==wi;return wi=0,e}function Ci(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===bi?hi.memoizedState=bi=e:bi=bi.next=e,bi}function Ti(){if(null===gi){var e=hi.alternate;e=null!==e?e.memoizedState:null}else e=gi.next;var t=null===bi?hi.memoizedState:bi.next;if(null!==t)bi=t,gi=e;else{if(null===e)throw Error(o(310));e={memoizedState:(gi=e).memoizedState,baseState:gi.baseState,baseQueue:gi.baseQueue,queue:gi.queue,next:null},null===bi?hi.memoizedState=bi=e:bi=bi.next=e}return bi}function ji(e,t){return"function"==typeof t?t(e):t}function Ni(e){var t=Ti(),n=t.queue;if(null===n)throw Error(o(311));n.lastRenderedReducer=e;var r=gi,a=r.baseQueue,i=n.pending;if(null!==i){if(null!==a){var s=a.next;a.next=i.next,i.next=s}r.baseQueue=a=i,n.pending=null}if(null!==a){i=a.next,r=r.baseState;var l=s=null,c=null,u=i;do{var d=u.lane;if((mi&d)===d)null!==c&&(c=c.next={lane:0,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null}),r=u.hasEagerState?u.eagerState:e(r,u.action);else{var p={lane:d,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null};null===c?(l=c=p,s=r):c=c.next=p,hi.lanes|=d,Ml|=d}u=u.next}while(null!==u&&u!==i);null===c?s=r:c.next=l,sr(r,t.memoizedState)||(ws=!0),t.memoizedState=r,t.baseState=s,t.baseQueue=c,n.lastRenderedState=r}if(null!==(e=n.interleaved)){a=e;do{i=a.lane,hi.lanes|=i,Ml|=i,a=a.next}while(a!==e)}else null===a&&(n.lanes=0);return[t.memoizedState,n.dispatch]}function Ri(e){var t=Ti(),n=t.queue;if(null===n)throw Error(o(311));n.lastRenderedReducer=e;var r=n.dispatch,a=n.pending,i=t.memoizedState;if(null!==a){n.pending=null;var s=a=a.next;do{i=e(i,s.action),s=s.next}while(s!==a);sr(i,t.memoizedState)||(ws=!0),t.memoizedState=i,null===t.baseQueue&&(t.baseState=i),n.lastRenderedState=i}return[i,r]}function Ai(){}function Li(e,t){var n=hi,r=Ti(),a=t(),i=!sr(r.memoizedState,a);if(i&&(r.memoizedState=a,ws=!0),r=r.queue,Hi(Ii.bind(null,n,r,e),[e]),r.getSnapshot!==t||i||null!==bi&&1&bi.memoizedState.tag){if(n.flags|=2048,zi(9,Oi.bind(null,n,r,a,t),void 0,null),null===Rl)throw Error(o(349));0!=(30&mi)||Pi(n,t,a)}return a}function Pi(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},null===(t=hi.updateQueue)?(t={lastEffect:null,stores:null},hi.updateQueue=t,t.stores=[e]):null===(n=t.stores)?t.stores=[e]:n.push(e)}function Oi(e,t,n,r){t.value=n,t.getSnapshot=r,Di(t)&&Mi(e)}function Ii(e,t,n){return n((function(){Di(t)&&Mi(e)}))}function Di(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!sr(e,n)}catch(r){return!0}}function Mi(e){var t=Ro(e,1);null!==t&&rc(t,e,1,-1)}function Fi(e){var t=Ci();return"function"==typeof e&&(e=e()),t.memoizedState=t.baseState=e,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:ji,lastRenderedState:e},t.queue=e,e=e.dispatch=ns.bind(null,hi,e),[t.memoizedState,e]}function zi(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===(t=hi.updateQueue)?(t={lastEffect:null,stores:null},hi.updateQueue=t,t.lastEffect=e.next=e):null===(n=t.lastEffect)?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function Bi(){return Ti().memoizedState}function $i(e,t,n,r){var a=Ci();hi.flags|=e,a.memoizedState=zi(1|t,n,void 0,void 0===r?null:r)}function Ui(e,t,n,r){var a=Ti();r=void 0===r?null:r;var o=void 0;if(null!==gi){var i=gi.memoizedState;if(o=i.destroy,null!==r&&Si(r,i.deps))return void(a.memoizedState=zi(t,n,o,r))}hi.flags|=e,a.memoizedState=zi(1|t,n,o,r)}function qi(e,t){return $i(8390656,8,e,t)}function Hi(e,t){return Ui(2048,8,e,t)}function Zi(e,t){return Ui(4,2,e,t)}function Gi(e,t){return Ui(4,4,e,t)}function Wi(e,t){return"function"==typeof t?(e=e(),t(e),function(){t(null)}):null!=t?(e=e(),t.current=e,function(){t.current=null}):void 0}function Vi(e,t,n){return n=null!=n?n.concat([e]):null,Ui(4,4,Wi.bind(null,t,e),n)}function Qi(){}function Yi(e,t){var n=Ti();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&Si(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function Ki(e,t){var n=Ti();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&Si(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)}function Xi(e,t,n){return 0==(21&mi)?(e.baseState&&(e.baseState=!1,ws=!0),e.memoizedState=n):(sr(n,t)||(n=ht(),hi.lanes|=n,Ml|=n,e.baseState=!0),t)}function Ji(e,t){var n=vt;vt=0!==n&&4>n?n:4,e(!0);var r=fi.transition;fi.transition={};try{e(!1),t()}finally{vt=n,fi.transition=r}}function es(){return Ti().memoizedState}function ts(e,t,n){var r=nc(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},rs(e))as(t,n);else if(null!==(n=No(e,t,n,r))){rc(n,e,r,tc()),os(n,t,r)}}function ns(e,t,n){var r=nc(e),a={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(rs(e))as(t,a);else{var o=e.alternate;if(0===e.lanes&&(null===o||0===o.lanes)&&null!==(o=t.lastRenderedReducer))try{var i=t.lastRenderedState,s=o(i,n);if(a.hasEagerState=!0,a.eagerState=s,sr(s,i)){var l=t.interleaved;return null===l?(a.next=a,jo(t)):(a.next=l.next,l.next=a),void(t.interleaved=a)}}catch(c){}null!==(n=No(e,t,a,r))&&(rc(n,e,r,a=tc()),os(n,t,r))}}function rs(e){var t=e.alternate;return e===hi||null!==t&&t===hi}function as(e,t){vi=yi=!0;var n=e.pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function os(e,t,n){if(0!=(4194240&n)){var r=t.lanes;n|=r&=e.pendingLanes,t.lanes=n,yt(e,n)}}var is={readContext:Co,useCallback:xi,useContext:xi,useEffect:xi,useImperativeHandle:xi,useInsertionEffect:xi,useLayoutEffect:xi,useMemo:xi,useReducer:xi,useRef:xi,useState:xi,useDebugValue:xi,useDeferredValue:xi,useTransition:xi,useMutableSource:xi,useSyncExternalStore:xi,useId:xi,unstable_isNewReconciler:!1},ss={readContext:Co,useCallback:function(e,t){return Ci().memoizedState=[e,void 0===t?null:t],e},useContext:Co,useEffect:qi,useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,$i(4194308,4,Wi.bind(null,t,e),n)},useLayoutEffect:function(e,t){return $i(4194308,4,e,t)},useInsertionEffect:function(e,t){return $i(4,2,e,t)},useMemo:function(e,t){var n=Ci();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Ci();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=ts.bind(null,hi,e),[r.memoizedState,e]},useRef:function(e){return e={current:e},Ci().memoizedState=e},useState:Fi,useDebugValue:Qi,useDeferredValue:function(e){return Ci().memoizedState=e},useTransition:function(){var e=Fi(!1),t=e[0];return e=Ji.bind(null,e[1]),Ci().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=hi,a=Ci();if(ao){if(void 0===n)throw Error(o(407));n=n()}else{if(n=t(),null===Rl)throw Error(o(349));0!=(30&mi)||Pi(r,t,n)}a.memoizedState=n;var i={value:n,getSnapshot:t};return a.queue=i,qi(Ii.bind(null,r,i,e),[e]),r.flags|=2048,zi(9,Oi.bind(null,r,i,n,t),void 0,null),n},useId:function(){var e=Ci(),t=Rl.identifierPrefix;if(ao){var n=Ka;t=":"+t+"R"+(n=(Ya&~(1<<32-it(Ya)-1)).toString(32)+n),0<(n=wi++)&&(t+="H"+n.toString(32)),t+=":"}else t=":"+t+"r"+(n=ki++).toString(32)+":";return e.memoizedState=t},unstable_isNewReconciler:!1},ls={readContext:Co,useCallback:Yi,useContext:Co,useEffect:Hi,useImperativeHandle:Vi,useInsertionEffect:Zi,useLayoutEffect:Gi,useMemo:Ki,useReducer:Ni,useRef:Bi,useState:function(){return Ni(ji)},useDebugValue:Qi,useDeferredValue:function(e){return Xi(Ti(),gi.memoizedState,e)},useTransition:function(){return[Ni(ji)[0],Ti().memoizedState]},useMutableSource:Ai,useSyncExternalStore:Li,useId:es,unstable_isNewReconciler:!1},cs={readContext:Co,useCallback:Yi,useContext:Co,useEffect:Hi,useImperativeHandle:Vi,useInsertionEffect:Zi,useLayoutEffect:Gi,useMemo:Ki,useReducer:Ri,useRef:Bi,useState:function(){return Ri(ji)},useDebugValue:Qi,useDeferredValue:function(e){var t=Ti();return null===gi?t.memoizedState=e:Xi(t,gi.memoizedState,e)},useTransition:function(){return[Ri(ji)[0],Ti().memoizedState]},useMutableSource:Ai,useSyncExternalStore:Li,useId:es,unstable_isNewReconciler:!1};function us(e,t){try{var n="",r=t;do{n+=$(r),r=r.return}while(r);var a=n}catch(o){a="\nError generating stack: "+o.message+"\n"+o.stack}return{value:e,source:t,stack:a,digest:null}}function ds(e,t,n){return{value:e,source:null,stack:null!=n?n:null,digest:null!=t?t:null}}function ps(e,t){try{console.error(t.value)}catch(n){setTimeout((function(){throw n}))}}var fs="function"==typeof WeakMap?WeakMap:Map;function ms(e,t,n){(n=Oo(-1,n)).tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Zl||(Zl=!0,Gl=r),ps(0,t)},n}function hs(e,t,n){(n=Oo(-1,n)).tag=3;var r=e.type.getDerivedStateFromError;if("function"==typeof r){var a=t.value;n.payload=function(){return r(a)},n.callback=function(){ps(0,t)}}var o=e.stateNode;return null!==o&&"function"==typeof o.componentDidCatch&&(n.callback=function(){ps(0,t),"function"!=typeof r&&(null===Wl?Wl=new Set([this]):Wl.add(this));var e=t.stack;this.componentDidCatch(t.value,{componentStack:null!==e?e:""})}),n}function gs(e,t,n){var r=e.pingCache;if(null===r){r=e.pingCache=new fs;var a=new Set;r.set(t,a)}else void 0===(a=r.get(t))&&(a=new Set,r.set(t,a));a.has(n)||(a.add(n),e=Cc.bind(null,e,t,n),t.then(e,e))}function bs(e){do{var t;if((t=13===e.tag)&&(t=null===(t=e.memoizedState)||null!==t.dehydrated),t)return e;e=e.return}while(null!==e);return null}function ys(e,t,n,r,a){return 0==(1&e.mode)?(e===t?e.flags|=65536:(e.flags|=128,n.flags|=131072,n.flags&=-52805,1===n.tag&&(null===n.alternate?n.tag=17:((t=Oo(-1,1)).tag=2,Io(n,t,1))),n.lanes|=1),e):(e.flags|=65536,e.lanes=a,e)}var vs=w.ReactCurrentOwner,ws=!1;function ks(e,t,n,r){t.child=null===e?Xo(t,null,n,r):Ko(t,e.child,n,r)}function xs(e,t,n,r,a){n=n.render;var o=t.ref;return _o(t,a),r=Ei(e,t,n,r,o,a),n=_i(),null===e||ws?(ao&&n&&eo(t),t.flags|=1,ks(e,t,r,a),t.child):(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~a,Zs(e,t,a))}function Ss(e,t,n,r,a){if(null===e){var o=n.type;return"function"!=typeof o||Pc(o)||void 0!==o.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=Ic(n.type,null,r,t,t.mode,a)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=o,Es(e,t,o,r,a))}if(o=e.child,0==(e.lanes&a)){var i=o.memoizedProps;if((n=null!==(n=n.compare)?n:lr)(i,r)&&e.ref===t.ref)return Zs(e,t,a)}return t.flags|=1,(e=Oc(o,r)).ref=t.ref,e.return=t,t.child=e}function Es(e,t,n,r,a){if(null!==e){var o=e.memoizedProps;if(lr(o,r)&&e.ref===t.ref){if(ws=!1,t.pendingProps=r=o,0==(e.lanes&a))return t.lanes=e.lanes,Zs(e,t,a);0!=(131072&e.flags)&&(ws=!0)}}return Ts(e,t,n,r,a)}function _s(e,t,n){var r=t.pendingProps,a=r.children,o=null!==e?e.memoizedState:null;if("hidden"===r.mode)if(0==(1&t.mode))t.memoizedState={baseLanes:0,cachePool:null,transitions:null},Ca(Ol,Pl),Pl|=n;else{if(0==(1073741824&n))return e=null!==o?o.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,Ca(Ol,Pl),Pl|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},r=null!==o?o.baseLanes:n,Ca(Ol,Pl),Pl|=r}else null!==o?(r=o.baseLanes|n,t.memoizedState=null):r=n,Ca(Ol,Pl),Pl|=r;return ks(e,t,a,n),t.child}function Cs(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.flags|=512,t.flags|=2097152)}function Ts(e,t,n,r,a){var o=La(n)?Ra:ja.current;return o=Aa(t,o),_o(t,a),n=Ei(e,t,n,r,o,a),r=_i(),null===e||ws?(ao&&r&&eo(t),t.flags|=1,ks(e,t,n,a),t.child):(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~a,Zs(e,t,a))}function js(e,t,n,r,a){if(La(n)){var o=!0;Da(t)}else o=!1;if(_o(t,a),null===t.stateNode)Hs(e,t),Ho(t,n,r),Go(t,n,r,a),r=!0;else if(null===e){var i=t.stateNode,s=t.memoizedProps;i.props=s;var l=i.context,c=n.contextType;"object"==typeof c&&null!==c?c=Co(c):c=Aa(t,c=La(n)?Ra:ja.current);var u=n.getDerivedStateFromProps,d="function"==typeof u||"function"==typeof i.getSnapshotBeforeUpdate;d||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(s!==r||l!==c)&&Zo(t,i,r,c),Ao=!1;var p=t.memoizedState;i.state=p,Fo(t,r,i,a),l=t.memoizedState,s!==r||p!==l||Na.current||Ao?("function"==typeof u&&($o(t,n,u,r),l=t.memoizedState),(s=Ao||qo(t,n,s,r,p,l,c))?(d||"function"!=typeof i.UNSAFE_componentWillMount&&"function"!=typeof i.componentWillMount||("function"==typeof i.componentWillMount&&i.componentWillMount(),"function"==typeof i.UNSAFE_componentWillMount&&i.UNSAFE_componentWillMount()),"function"==typeof i.componentDidMount&&(t.flags|=4194308)):("function"==typeof i.componentDidMount&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=l),i.props=r,i.state=l,i.context=c,r=s):("function"==typeof i.componentDidMount&&(t.flags|=4194308),r=!1)}else{i=t.stateNode,Po(e,t),s=t.memoizedProps,c=t.type===t.elementType?s:bo(t.type,s),i.props=c,d=t.pendingProps,p=i.context,"object"==typeof(l=n.contextType)&&null!==l?l=Co(l):l=Aa(t,l=La(n)?Ra:ja.current);var f=n.getDerivedStateFromProps;(u="function"==typeof f||"function"==typeof i.getSnapshotBeforeUpdate)||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(s!==d||p!==l)&&Zo(t,i,r,l),Ao=!1,p=t.memoizedState,i.state=p,Fo(t,r,i,a);var m=t.memoizedState;s!==d||p!==m||Na.current||Ao?("function"==typeof f&&($o(t,n,f,r),m=t.memoizedState),(c=Ao||qo(t,n,c,r,p,m,l)||!1)?(u||"function"!=typeof i.UNSAFE_componentWillUpdate&&"function"!=typeof i.componentWillUpdate||("function"==typeof i.componentWillUpdate&&i.componentWillUpdate(r,m,l),"function"==typeof i.UNSAFE_componentWillUpdate&&i.UNSAFE_componentWillUpdate(r,m,l)),"function"==typeof i.componentDidUpdate&&(t.flags|=4),"function"==typeof i.getSnapshotBeforeUpdate&&(t.flags|=1024)):("function"!=typeof i.componentDidUpdate||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=m),i.props=r,i.state=m,i.context=l,r=c):("function"!=typeof i.componentDidUpdate||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=1024),r=!1)}return Ns(e,t,n,r,o,a)}function Ns(e,t,n,r,a,o){Cs(e,t);var i=0!=(128&t.flags);if(!r&&!i)return a&&Ma(t,n,!1),Zs(e,t,o);r=t.stateNode,vs.current=t;var s=i&&"function"!=typeof n.getDerivedStateFromError?null:r.render();return t.flags|=1,null!==e&&i?(t.child=Ko(t,e.child,null,o),t.child=Ko(t,null,s,o)):ks(e,t,s,o),t.memoizedState=r.state,a&&Ma(t,n,!0),t.child}function Rs(e){var t=e.stateNode;t.pendingContext?Oa(0,t.pendingContext,t.pendingContext!==t.context):t.context&&Oa(0,t.context,!1),ai(e,t.containerInfo)}function As(e,t,n,r,a){return mo(),ho(a),t.flags|=256,ks(e,t,n,r),t.child}var Ls,Ps,Os,Is,Ds={dehydrated:null,treeContext:null,retryLane:0};function Ms(e){return{baseLanes:e,cachePool:null,transitions:null}}function Fs(e,t,n){var r,a=t.pendingProps,i=li.current,s=!1,l=0!=(128&t.flags);if((r=l)||(r=(null===e||null!==e.memoizedState)&&0!=(2&i)),r?(s=!0,t.flags&=-129):null!==e&&null===e.memoizedState||(i|=1),Ca(li,1&i),null===e)return co(t),null!==(e=t.memoizedState)&&null!==(e=e.dehydrated)?(0==(1&t.mode)?t.lanes=1:"$!"===e.data?t.lanes=8:t.lanes=1073741824,null):(l=a.children,e=a.fallback,s?(a=t.mode,s=t.child,l={mode:"hidden",children:l},0==(1&a)&&null!==s?(s.childLanes=0,s.pendingProps=l):s=Mc(l,a,0,null),e=Dc(e,a,n,null),s.return=t,e.return=t,s.sibling=e,t.child=s,t.child.memoizedState=Ms(n),t.memoizedState=Ds,e):zs(t,l));if(null!==(i=e.memoizedState)&&null!==(r=i.dehydrated))return function(e,t,n,r,a,i,s){if(n)return 256&t.flags?(t.flags&=-257,Bs(e,t,s,r=ds(Error(o(422))))):null!==t.memoizedState?(t.child=e.child,t.flags|=128,null):(i=r.fallback,a=t.mode,r=Mc({mode:"visible",children:r.children},a,0,null),(i=Dc(i,a,s,null)).flags|=2,r.return=t,i.return=t,r.sibling=i,t.child=r,0!=(1&t.mode)&&Ko(t,e.child,null,s),t.child.memoizedState=Ms(s),t.memoizedState=Ds,i);if(0==(1&t.mode))return Bs(e,t,s,null);if("$!"===a.data){if(r=a.nextSibling&&a.nextSibling.dataset)var l=r.dgst;return r=l,Bs(e,t,s,r=ds(i=Error(o(419)),r,void 0))}if(l=0!=(s&e.childLanes),ws||l){if(null!==(r=Rl)){switch(s&-s){case 4:a=2;break;case 16:a=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:a=32;break;case 536870912:a=268435456;break;default:a=0}0!==(a=0!=(a&(r.suspendedLanes|s))?0:a)&&a!==i.retryLane&&(i.retryLane=a,Ro(e,a),rc(r,e,a,-1))}return gc(),Bs(e,t,s,r=ds(Error(o(421))))}return"$?"===a.data?(t.flags|=128,t.child=e.child,t=jc.bind(null,e),a._reactRetry=t,null):(e=i.treeContext,ro=ca(a.nextSibling),no=t,ao=!0,oo=null,null!==e&&(Wa[Va++]=Ya,Wa[Va++]=Ka,Wa[Va++]=Qa,Ya=e.id,Ka=e.overflow,Qa=t),t=zs(t,r.children),t.flags|=4096,t)}(e,t,l,a,r,i,n);if(s){s=a.fallback,l=t.mode,r=(i=e.child).sibling;var c={mode:"hidden",children:a.children};return 0==(1&l)&&t.child!==i?((a=t.child).childLanes=0,a.pendingProps=c,t.deletions=null):(a=Oc(i,c)).subtreeFlags=14680064&i.subtreeFlags,null!==r?s=Oc(r,s):(s=Dc(s,l,n,null)).flags|=2,s.return=t,a.return=t,a.sibling=s,t.child=a,a=s,s=t.child,l=null===(l=e.child.memoizedState)?Ms(n):{baseLanes:l.baseLanes|n,cachePool:null,transitions:l.transitions},s.memoizedState=l,s.childLanes=e.childLanes&~n,t.memoizedState=Ds,a}return e=(s=e.child).sibling,a=Oc(s,{mode:"visible",children:a.children}),0==(1&t.mode)&&(a.lanes=n),a.return=t,a.sibling=null,null!==e&&(null===(n=t.deletions)?(t.deletions=[e],t.flags|=16):n.push(e)),t.child=a,t.memoizedState=null,a}function zs(e,t){return(t=Mc({mode:"visible",children:t},e.mode,0,null)).return=e,e.child=t}function Bs(e,t,n,r){return null!==r&&ho(r),Ko(t,e.child,null,n),(e=zs(t,t.pendingProps.children)).flags|=2,t.memoizedState=null,e}function $s(e,t,n){e.lanes|=t;var r=e.alternate;null!==r&&(r.lanes|=t),Eo(e.return,t,n)}function Us(e,t,n,r,a){var o=e.memoizedState;null===o?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:a}:(o.isBackwards=t,o.rendering=null,o.renderingStartTime=0,o.last=r,o.tail=n,o.tailMode=a)}function qs(e,t,n){var r=t.pendingProps,a=r.revealOrder,o=r.tail;if(ks(e,t,r.children,n),0!=(2&(r=li.current)))r=1&r|2,t.flags|=128;else{if(null!==e&&0!=(128&e.flags))e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&$s(e,n,t);else if(19===e.tag)$s(e,n,t);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;null===e.sibling;){if(null===e.return||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(Ca(li,r),0==(1&t.mode))t.memoizedState=null;else switch(a){case"forwards":for(n=t.child,a=null;null!==n;)null!==(e=n.alternate)&&null===ci(e)&&(a=n),n=n.sibling;null===(n=a)?(a=t.child,t.child=null):(a=n.sibling,n.sibling=null),Us(t,!1,a,n,o);break;case"backwards":for(n=null,a=t.child,t.child=null;null!==a;){if(null!==(e=a.alternate)&&null===ci(e)){t.child=a;break}e=a.sibling,a.sibling=n,n=a,a=e}Us(t,!0,n,null,o);break;case"together":Us(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function Hs(e,t){0==(1&t.mode)&&null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2)}function Zs(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),Ml|=t.lanes,0==(n&t.childLanes))return null;if(null!==e&&t.child!==e.child)throw Error(o(153));if(null!==t.child){for(n=Oc(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Oc(e,e.pendingProps)).return=t;n.sibling=null}return t.child}function Gs(e,t){if(!ao)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;null!==t;)null!==t.alternate&&(n=t),t=t.sibling;null===n?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;null!==n;)null!==n.alternate&&(r=n),n=n.sibling;null===r?t||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null}}function Ws(e){var t=null!==e.alternate&&e.alternate.child===e.child,n=0,r=0;if(t)for(var a=e.child;null!==a;)n|=a.lanes|a.childLanes,r|=14680064&a.subtreeFlags,r|=14680064&a.flags,a.return=e,a=a.sibling;else for(a=e.child;null!==a;)n|=a.lanes|a.childLanes,r|=a.subtreeFlags,r|=a.flags,a.return=e,a=a.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function Vs(e,t,n){var r=t.pendingProps;switch(to(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Ws(t),null;case 1:case 17:return La(t.type)&&Pa(),Ws(t),null;case 3:return r=t.stateNode,oi(),_a(Na),_a(ja),di(),r.pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),null!==e&&null!==e.child||(po(t)?t.flags|=4:null===e||e.memoizedState.isDehydrated&&0==(256&t.flags)||(t.flags|=1024,null!==oo&&(sc(oo),oo=null))),Ps(e,t),Ws(t),null;case 5:si(t);var a=ri(ni.current);if(n=t.type,null!==e&&null!=t.stateNode)Os(e,t,n,r,a),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else{if(!r){if(null===t.stateNode)throw Error(o(166));return Ws(t),null}if(e=ri(ei.current),po(t)){r=t.stateNode,n=t.type;var i=t.memoizedProps;switch(r[pa]=t,r[fa]=i,e=0!=(1&t.mode),n){case"dialog":zr("cancel",r),zr("close",r);break;case"iframe":case"object":case"embed":zr("load",r);break;case"video":case"audio":for(a=0;a<Ir.length;a++)zr(Ir[a],r);break;case"source":zr("error",r);break;case"img":case"image":case"link":zr("error",r),zr("load",r);break;case"details":zr("toggle",r);break;case"input":Y(r,i),zr("invalid",r);break;case"select":r._wrapperState={wasMultiple:!!i.multiple},zr("invalid",r);break;case"textarea":ae(r,i),zr("invalid",r)}for(var l in ye(n,i),a=null,i)if(i.hasOwnProperty(l)){var c=i[l];"children"===l?"string"==typeof c?r.textContent!==c&&(!0!==i.suppressHydrationWarning&&Xr(r.textContent,c,e),a=["children",c]):"number"==typeof c&&r.textContent!==""+c&&(!0!==i.suppressHydrationWarning&&Xr(r.textContent,c,e),a=["children",""+c]):s.hasOwnProperty(l)&&null!=c&&"onScroll"===l&&zr("scroll",r)}switch(n){case"input":G(r),J(r,i,!0);break;case"textarea":G(r),ie(r);break;case"select":case"option":break;default:"function"==typeof i.onClick&&(r.onclick=Jr)}r=a,t.updateQueue=r,null!==r&&(t.flags|=4)}else{l=9===a.nodeType?a:a.ownerDocument,"http://www.w3.org/1999/xhtml"===e&&(e=se(n)),"http://www.w3.org/1999/xhtml"===e?"script"===n?((e=l.createElement("div")).innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):"string"==typeof r.is?e=l.createElement(n,{is:r.is}):(e=l.createElement(n),"select"===n&&(l=e,r.multiple?l.multiple=!0:r.size&&(l.size=r.size))):e=l.createElementNS(e,n),e[pa]=t,e[fa]=r,Ls(e,t,!1,!1),t.stateNode=e;e:{switch(l=ve(n,r),n){case"dialog":zr("cancel",e),zr("close",e),a=r;break;case"iframe":case"object":case"embed":zr("load",e),a=r;break;case"video":case"audio":for(a=0;a<Ir.length;a++)zr(Ir[a],e);a=r;break;case"source":zr("error",e),a=r;break;case"img":case"image":case"link":zr("error",e),zr("load",e),a=r;break;case"details":zr("toggle",e),a=r;break;case"input":Y(e,r),a=Q(e,r),zr("invalid",e);break;case"option":default:a=r;break;case"select":e._wrapperState={wasMultiple:!!r.multiple},a=M({},r,{value:void 0}),zr("invalid",e);break;case"textarea":ae(e,r),a=re(e,r),zr("invalid",e)}for(i in ye(n,a),c=a)if(c.hasOwnProperty(i)){var u=c[i];"style"===i?ge(e,u):"dangerouslySetInnerHTML"===i?null!=(u=u?u.__html:void 0)&&de(e,u):"children"===i?"string"==typeof u?("textarea"!==n||""!==u)&&pe(e,u):"number"==typeof u&&pe(e,""+u):"suppressContentEditableWarning"!==i&&"suppressHydrationWarning"!==i&&"autoFocus"!==i&&(s.hasOwnProperty(i)?null!=u&&"onScroll"===i&&zr("scroll",e):null!=u&&v(e,i,u,l))}switch(n){case"input":G(e),J(e,r,!1);break;case"textarea":G(e),ie(e);break;case"option":null!=r.value&&e.setAttribute("value",""+H(r.value));break;case"select":e.multiple=!!r.multiple,null!=(i=r.value)?ne(e,!!r.multiple,i,!1):null!=r.defaultValue&&ne(e,!!r.multiple,r.defaultValue,!0);break;default:"function"==typeof a.onClick&&(e.onclick=Jr)}switch(n){case"button":case"input":case"select":case"textarea":r=!!r.autoFocus;break e;case"img":r=!0;break e;default:r=!1}}r&&(t.flags|=4)}null!==t.ref&&(t.flags|=512,t.flags|=2097152)}return Ws(t),null;case 6:if(e&&null!=t.stateNode)Is(e,t,e.memoizedProps,r);else{if("string"!=typeof r&&null===t.stateNode)throw Error(o(166));if(n=ri(ni.current),ri(ei.current),po(t)){if(r=t.stateNode,n=t.memoizedProps,r[pa]=t,(i=r.nodeValue!==n)&&null!==(e=no))switch(e.tag){case 3:Xr(r.nodeValue,n,0!=(1&e.mode));break;case 5:!0!==e.memoizedProps.suppressHydrationWarning&&Xr(r.nodeValue,n,0!=(1&e.mode))}i&&(t.flags|=4)}else(r=(9===n.nodeType?n:n.ownerDocument).createTextNode(r))[pa]=t,t.stateNode=r}return Ws(t),null;case 13:if(_a(li),r=t.memoizedState,null===e||null!==e.memoizedState&&null!==e.memoizedState.dehydrated){if(ao&&null!==ro&&0!=(1&t.mode)&&0==(128&t.flags))fo(),mo(),t.flags|=98560,i=!1;else if(i=po(t),null!==r&&null!==r.dehydrated){if(null===e){if(!i)throw Error(o(318));if(!(i=null!==(i=t.memoizedState)?i.dehydrated:null))throw Error(o(317));i[pa]=t}else mo(),0==(128&t.flags)&&(t.memoizedState=null),t.flags|=4;Ws(t),i=!1}else null!==oo&&(sc(oo),oo=null),i=!0;if(!i)return 65536&t.flags?t:null}return 0!=(128&t.flags)?(t.lanes=n,t):((r=null!==r)!==(null!==e&&null!==e.memoizedState)&&r&&(t.child.flags|=8192,0!=(1&t.mode)&&(null===e||0!=(1&li.current)?0===Il&&(Il=3):gc())),null!==t.updateQueue&&(t.flags|=4),Ws(t),null);case 4:return oi(),Ps(e,t),null===e&&Ur(t.stateNode.containerInfo),Ws(t),null;case 10:return So(t.type._context),Ws(t),null;case 19:if(_a(li),null===(i=t.memoizedState))return Ws(t),null;if(r=0!=(128&t.flags),null===(l=i.rendering))if(r)Gs(i,!1);else{if(0!==Il||null!==e&&0!=(128&e.flags))for(e=t.child;null!==e;){if(null!==(l=ci(e))){for(t.flags|=128,Gs(i,!1),null!==(r=l.updateQueue)&&(t.updateQueue=r,t.flags|=4),t.subtreeFlags=0,r=n,n=t.child;null!==n;)e=r,(i=n).flags&=14680066,null===(l=i.alternate)?(i.childLanes=0,i.lanes=e,i.child=null,i.subtreeFlags=0,i.memoizedProps=null,i.memoizedState=null,i.updateQueue=null,i.dependencies=null,i.stateNode=null):(i.childLanes=l.childLanes,i.lanes=l.lanes,i.child=l.child,i.subtreeFlags=0,i.deletions=null,i.memoizedProps=l.memoizedProps,i.memoizedState=l.memoizedState,i.updateQueue=l.updateQueue,i.type=l.type,e=l.dependencies,i.dependencies=null===e?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return Ca(li,1&li.current|2),t.child}e=e.sibling}null!==i.tail&&Ke()>ql&&(t.flags|=128,r=!0,Gs(i,!1),t.lanes=4194304)}else{if(!r)if(null!==(e=ci(l))){if(t.flags|=128,r=!0,null!==(n=e.updateQueue)&&(t.updateQueue=n,t.flags|=4),Gs(i,!0),null===i.tail&&"hidden"===i.tailMode&&!l.alternate&&!ao)return Ws(t),null}else 2*Ke()-i.renderingStartTime>ql&&1073741824!==n&&(t.flags|=128,r=!0,Gs(i,!1),t.lanes=4194304);i.isBackwards?(l.sibling=t.child,t.child=l):(null!==(n=i.last)?n.sibling=l:t.child=l,i.last=l)}return null!==i.tail?(t=i.tail,i.rendering=t,i.tail=t.sibling,i.renderingStartTime=Ke(),t.sibling=null,n=li.current,Ca(li,r?1&n|2:1&n),t):(Ws(t),null);case 22:case 23:return pc(),r=null!==t.memoizedState,null!==e&&null!==e.memoizedState!==r&&(t.flags|=8192),r&&0!=(1&t.mode)?0!=(1073741824&Pl)&&(Ws(t),6&t.subtreeFlags&&(t.flags|=8192)):Ws(t),null;case 24:case 25:return null}throw Error(o(156,t.tag))}function Qs(e,t){switch(to(t),t.tag){case 1:return La(t.type)&&Pa(),65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 3:return oi(),_a(Na),_a(ja),di(),0!=(65536&(e=t.flags))&&0==(128&e)?(t.flags=-65537&e|128,t):null;case 5:return si(t),null;case 13:if(_a(li),null!==(e=t.memoizedState)&&null!==e.dehydrated){if(null===t.alternate)throw Error(o(340));mo()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 19:return _a(li),null;case 4:return oi(),null;case 10:return So(t.type._context),null;case 22:case 23:return pc(),null;default:return null}}Ls=function(e,t){for(var n=t.child;null!==n;){if(5===n.tag||6===n.tag)e.appendChild(n.stateNode);else if(4!==n.tag&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===t)break;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},Ps=function(){},Os=function(e,t,n,r){var a=e.memoizedProps;if(a!==r){e=t.stateNode,ri(ei.current);var o,i=null;switch(n){case"input":a=Q(e,a),r=Q(e,r),i=[];break;case"select":a=M({},a,{value:void 0}),r=M({},r,{value:void 0}),i=[];break;case"textarea":a=re(e,a),r=re(e,r),i=[];break;default:"function"!=typeof a.onClick&&"function"==typeof r.onClick&&(e.onclick=Jr)}for(u in ye(n,r),n=null,a)if(!r.hasOwnProperty(u)&&a.hasOwnProperty(u)&&null!=a[u])if("style"===u){var l=a[u];for(o in l)l.hasOwnProperty(o)&&(n||(n={}),n[o]="")}else"dangerouslySetInnerHTML"!==u&&"children"!==u&&"suppressContentEditableWarning"!==u&&"suppressHydrationWarning"!==u&&"autoFocus"!==u&&(s.hasOwnProperty(u)?i||(i=[]):(i=i||[]).push(u,null));for(u in r){var c=r[u];if(l=null!=a?a[u]:void 0,r.hasOwnProperty(u)&&c!==l&&(null!=c||null!=l))if("style"===u)if(l){for(o in l)!l.hasOwnProperty(o)||c&&c.hasOwnProperty(o)||(n||(n={}),n[o]="");for(o in c)c.hasOwnProperty(o)&&l[o]!==c[o]&&(n||(n={}),n[o]=c[o])}else n||(i||(i=[]),i.push(u,n)),n=c;else"dangerouslySetInnerHTML"===u?(c=c?c.__html:void 0,l=l?l.__html:void 0,null!=c&&l!==c&&(i=i||[]).push(u,c)):"children"===u?"string"!=typeof c&&"number"!=typeof c||(i=i||[]).push(u,""+c):"suppressContentEditableWarning"!==u&&"suppressHydrationWarning"!==u&&(s.hasOwnProperty(u)?(null!=c&&"onScroll"===u&&zr("scroll",e),i||l===c||(i=[])):(i=i||[]).push(u,c))}n&&(i=i||[]).push("style",n);var u=i;(t.updateQueue=u)&&(t.flags|=4)}},Is=function(e,t,n,r){n!==r&&(t.flags|=4)};var Ys=!1,Ks=!1,Xs="function"==typeof WeakSet?WeakSet:Set,Js=null;function el(e,t){var n=e.ref;if(null!==n)if("function"==typeof n)try{n(null)}catch(r){_c(e,t,r)}else n.current=null}function tl(e,t,n){try{n()}catch(r){_c(e,t,r)}}var nl=!1;function rl(e,t,n){var r=t.updateQueue;if(null!==(r=null!==r?r.lastEffect:null)){var a=r=r.next;do{if((a.tag&e)===e){var o=a.destroy;a.destroy=void 0,void 0!==o&&tl(t,n,o)}a=a.next}while(a!==r)}}function al(e,t){if(null!==(t=null!==(t=t.updateQueue)?t.lastEffect:null)){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function ol(e){var t=e.ref;if(null!==t){var n=e.stateNode;e.tag,e=n,"function"==typeof t?t(e):t.current=e}}function il(e){var t=e.alternate;null!==t&&(e.alternate=null,il(t)),e.child=null,e.deletions=null,e.sibling=null,5===e.tag&&(null!==(t=e.stateNode)&&(delete t[pa],delete t[fa],delete t[ha],delete t[ga],delete t[ba])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function sl(e){return 5===e.tag||3===e.tag||4===e.tag}function ll(e){e:for(;;){for(;null===e.sibling;){if(null===e.return||sl(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;5!==e.tag&&6!==e.tag&&18!==e.tag;){if(2&e.flags)continue e;if(null===e.child||4===e.tag)continue e;e.child.return=e,e=e.child}if(!(2&e.flags))return e.stateNode}}function cl(e,t,n){var r=e.tag;if(5===r||6===r)e=e.stateNode,t?8===n.nodeType?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(8===n.nodeType?(t=n.parentNode).insertBefore(e,n):(t=n).appendChild(e),null!=(n=n._reactRootContainer)||null!==t.onclick||(t.onclick=Jr));else if(4!==r&&null!==(e=e.child))for(cl(e,t,n),e=e.sibling;null!==e;)cl(e,t,n),e=e.sibling}function ul(e,t,n){var r=e.tag;if(5===r||6===r)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==r&&null!==(e=e.child))for(ul(e,t,n),e=e.sibling;null!==e;)ul(e,t,n),e=e.sibling}var dl=null,pl=!1;function fl(e,t,n){for(n=n.child;null!==n;)ml(e,t,n),n=n.sibling}function ml(e,t,n){if(ot&&"function"==typeof ot.onCommitFiberUnmount)try{ot.onCommitFiberUnmount(at,n)}catch(s){}switch(n.tag){case 5:Ks||el(n,t);case 6:var r=dl,a=pl;dl=null,fl(e,t,n),pl=a,null!==(dl=r)&&(pl?(e=dl,n=n.stateNode,8===e.nodeType?e.parentNode.removeChild(n):e.removeChild(n)):dl.removeChild(n.stateNode));break;case 18:null!==dl&&(pl?(e=dl,n=n.stateNode,8===e.nodeType?la(e.parentNode,n):1===e.nodeType&&la(e,n),Ut(e)):la(dl,n.stateNode));break;case 4:r=dl,a=pl,dl=n.stateNode.containerInfo,pl=!0,fl(e,t,n),dl=r,pl=a;break;case 0:case 11:case 14:case 15:if(!Ks&&(null!==(r=n.updateQueue)&&null!==(r=r.lastEffect))){a=r=r.next;do{var o=a,i=o.destroy;o=o.tag,void 0!==i&&(0!=(2&o)||0!=(4&o))&&tl(n,t,i),a=a.next}while(a!==r)}fl(e,t,n);break;case 1:if(!Ks&&(el(n,t),"function"==typeof(r=n.stateNode).componentWillUnmount))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(s){_c(n,t,s)}fl(e,t,n);break;case 21:fl(e,t,n);break;case 22:1&n.mode?(Ks=(r=Ks)||null!==n.memoizedState,fl(e,t,n),Ks=r):fl(e,t,n);break;default:fl(e,t,n)}}function hl(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var n=e.stateNode;null===n&&(n=e.stateNode=new Xs),t.forEach((function(t){var r=Nc.bind(null,e,t);n.has(t)||(n.add(t),t.then(r,r))}))}}function gl(e,t){var n=t.deletions;if(null!==n)for(var r=0;r<n.length;r++){var a=n[r];try{var i=e,s=t,l=s;e:for(;null!==l;){switch(l.tag){case 5:dl=l.stateNode,pl=!1;break e;case 3:case 4:dl=l.stateNode.containerInfo,pl=!0;break e}l=l.return}if(null===dl)throw Error(o(160));ml(i,s,a),dl=null,pl=!1;var c=a.alternate;null!==c&&(c.return=null),a.return=null}catch(u){_c(a,t,u)}}if(12854&t.subtreeFlags)for(t=t.child;null!==t;)bl(t,e),t=t.sibling}function bl(e,t){var n=e.alternate,r=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(gl(t,e),yl(e),4&r){try{rl(3,e,e.return),al(3,e)}catch(g){_c(e,e.return,g)}try{rl(5,e,e.return)}catch(g){_c(e,e.return,g)}}break;case 1:gl(t,e),yl(e),512&r&&null!==n&&el(n,n.return);break;case 5:if(gl(t,e),yl(e),512&r&&null!==n&&el(n,n.return),32&e.flags){var a=e.stateNode;try{pe(a,"")}catch(g){_c(e,e.return,g)}}if(4&r&&null!=(a=e.stateNode)){var i=e.memoizedProps,s=null!==n?n.memoizedProps:i,l=e.type,c=e.updateQueue;if(e.updateQueue=null,null!==c)try{"input"===l&&"radio"===i.type&&null!=i.name&&K(a,i),ve(l,s);var u=ve(l,i);for(s=0;s<c.length;s+=2){var d=c[s],p=c[s+1];"style"===d?ge(a,p):"dangerouslySetInnerHTML"===d?de(a,p):"children"===d?pe(a,p):v(a,d,p,u)}switch(l){case"input":X(a,i);break;case"textarea":oe(a,i);break;case"select":var f=a._wrapperState.wasMultiple;a._wrapperState.wasMultiple=!!i.multiple;var m=i.value;null!=m?ne(a,!!i.multiple,m,!1):f!==!!i.multiple&&(null!=i.defaultValue?ne(a,!!i.multiple,i.defaultValue,!0):ne(a,!!i.multiple,i.multiple?[]:"",!1))}a[fa]=i}catch(g){_c(e,e.return,g)}}break;case 6:if(gl(t,e),yl(e),4&r){if(null===e.stateNode)throw Error(o(162));a=e.stateNode,i=e.memoizedProps;try{a.nodeValue=i}catch(g){_c(e,e.return,g)}}break;case 3:if(gl(t,e),yl(e),4&r&&null!==n&&n.memoizedState.isDehydrated)try{Ut(t.containerInfo)}catch(g){_c(e,e.return,g)}break;case 4:default:gl(t,e),yl(e);break;case 13:gl(t,e),yl(e),8192&(a=e.child).flags&&(i=null!==a.memoizedState,a.stateNode.isHidden=i,!i||null!==a.alternate&&null!==a.alternate.memoizedState||(Ul=Ke())),4&r&&hl(e);break;case 22:if(d=null!==n&&null!==n.memoizedState,1&e.mode?(Ks=(u=Ks)||d,gl(t,e),Ks=u):gl(t,e),yl(e),8192&r){if(u=null!==e.memoizedState,(e.stateNode.isHidden=u)&&!d&&0!=(1&e.mode))for(Js=e,d=e.child;null!==d;){for(p=Js=d;null!==Js;){switch(m=(f=Js).child,f.tag){case 0:case 11:case 14:case 15:rl(4,f,f.return);break;case 1:el(f,f.return);var h=f.stateNode;if("function"==typeof h.componentWillUnmount){r=f,n=f.return;try{t=r,h.props=t.memoizedProps,h.state=t.memoizedState,h.componentWillUnmount()}catch(g){_c(r,n,g)}}break;case 5:el(f,f.return);break;case 22:if(null!==f.memoizedState){xl(p);continue}}null!==m?(m.return=f,Js=m):xl(p)}d=d.sibling}e:for(d=null,p=e;;){if(5===p.tag){if(null===d){d=p;try{a=p.stateNode,u?"function"==typeof(i=a.style).setProperty?i.setProperty("display","none","important"):i.display="none":(l=p.stateNode,s=null!=(c=p.memoizedProps.style)&&c.hasOwnProperty("display")?c.display:null,l.style.display=he("display",s))}catch(g){_c(e,e.return,g)}}}else if(6===p.tag){if(null===d)try{p.stateNode.nodeValue=u?"":p.memoizedProps}catch(g){_c(e,e.return,g)}}else if((22!==p.tag&&23!==p.tag||null===p.memoizedState||p===e)&&null!==p.child){p.child.return=p,p=p.child;continue}if(p===e)break e;for(;null===p.sibling;){if(null===p.return||p.return===e)break e;d===p&&(d=null),p=p.return}d===p&&(d=null),p.sibling.return=p.return,p=p.sibling}}break;case 19:gl(t,e),yl(e),4&r&&hl(e);case 21:}}function yl(e){var t=e.flags;if(2&t){try{e:{for(var n=e.return;null!==n;){if(sl(n)){var r=n;break e}n=n.return}throw Error(o(160))}switch(r.tag){case 5:var a=r.stateNode;32&r.flags&&(pe(a,""),r.flags&=-33),ul(e,ll(e),a);break;case 3:case 4:var i=r.stateNode.containerInfo;cl(e,ll(e),i);break;default:throw Error(o(161))}}catch(s){_c(e,e.return,s)}e.flags&=-3}4096&t&&(e.flags&=-4097)}function vl(e,t,n){Js=e,wl(e,t,n)}function wl(e,t,n){for(var r=0!=(1&e.mode);null!==Js;){var a=Js,o=a.child;if(22===a.tag&&r){var i=null!==a.memoizedState||Ys;if(!i){var s=a.alternate,l=null!==s&&null!==s.memoizedState||Ks;s=Ys;var c=Ks;if(Ys=i,(Ks=l)&&!c)for(Js=a;null!==Js;)l=(i=Js).child,22===i.tag&&null!==i.memoizedState?Sl(a):null!==l?(l.return=i,Js=l):Sl(a);for(;null!==o;)Js=o,wl(o,t,n),o=o.sibling;Js=a,Ys=s,Ks=c}kl(e)}else 0!=(8772&a.subtreeFlags)&&null!==o?(o.return=a,Js=o):kl(e)}}function kl(e){for(;null!==Js;){var t=Js;if(0!=(8772&t.flags)){var n=t.alternate;try{if(0!=(8772&t.flags))switch(t.tag){case 0:case 11:case 15:Ks||al(5,t);break;case 1:var r=t.stateNode;if(4&t.flags&&!Ks)if(null===n)r.componentDidMount();else{var a=t.elementType===t.type?n.memoizedProps:bo(t.type,n.memoizedProps);r.componentDidUpdate(a,n.memoizedState,r.__reactInternalSnapshotBeforeUpdate)}var i=t.updateQueue;null!==i&&zo(t,i,r);break;case 3:var s=t.updateQueue;if(null!==s){if(n=null,null!==t.child)switch(t.child.tag){case 5:case 1:n=t.child.stateNode}zo(t,s,n)}break;case 5:var l=t.stateNode;if(null===n&&4&t.flags){n=l;var c=t.memoizedProps;switch(t.type){case"button":case"input":case"select":case"textarea":c.autoFocus&&n.focus();break;case"img":c.src&&(n.src=c.src)}}break;case 6:case 4:case 12:case 19:case 17:case 21:case 22:case 23:case 25:break;case 13:if(null===t.memoizedState){var u=t.alternate;if(null!==u){var d=u.memoizedState;if(null!==d){var p=d.dehydrated;null!==p&&Ut(p)}}}break;default:throw Error(o(163))}Ks||512&t.flags&&ol(t)}catch(f){_c(t,t.return,f)}}if(t===e){Js=null;break}if(null!==(n=t.sibling)){n.return=t.return,Js=n;break}Js=t.return}}function xl(e){for(;null!==Js;){var t=Js;if(t===e){Js=null;break}var n=t.sibling;if(null!==n){n.return=t.return,Js=n;break}Js=t.return}}function Sl(e){for(;null!==Js;){var t=Js;try{switch(t.tag){case 0:case 11:case 15:var n=t.return;try{al(4,t)}catch(l){_c(t,n,l)}break;case 1:var r=t.stateNode;if("function"==typeof r.componentDidMount){var a=t.return;try{r.componentDidMount()}catch(l){_c(t,a,l)}}var o=t.return;try{ol(t)}catch(l){_c(t,o,l)}break;case 5:var i=t.return;try{ol(t)}catch(l){_c(t,i,l)}}}catch(l){_c(t,t.return,l)}if(t===e){Js=null;break}var s=t.sibling;if(null!==s){s.return=t.return,Js=s;break}Js=t.return}}var El,_l=Math.ceil,Cl=w.ReactCurrentDispatcher,Tl=w.ReactCurrentOwner,jl=w.ReactCurrentBatchConfig,Nl=0,Rl=null,Al=null,Ll=0,Pl=0,Ol=Ea(0),Il=0,Dl=null,Ml=0,Fl=0,zl=0,Bl=null,$l=null,Ul=0,ql=1/0,Hl=null,Zl=!1,Gl=null,Wl=null,Vl=!1,Ql=null,Yl=0,Kl=0,Xl=null,Jl=-1,ec=0;function tc(){return 0!=(6&Nl)?Ke():-1!==Jl?Jl:Jl=Ke()}function nc(e){return 0==(1&e.mode)?1:0!=(2&Nl)&&0!==Ll?Ll&-Ll:null!==go.transition?(0===ec&&(ec=ht()),ec):0!==(e=vt)?e:e=void 0===(e=window.event)?16:Yt(e.type)}function rc(e,t,n,r){if(50<Kl)throw Kl=0,Xl=null,Error(o(185));bt(e,n,r),0!=(2&Nl)&&e===Rl||(e===Rl&&(0==(2&Nl)&&(Fl|=n),4===Il&&lc(e,Ll)),ac(e,r),1===n&&0===Nl&&0==(1&t.mode)&&(ql=Ke()+500,za&&Ua()))}function ac(e,t){var n=e.callbackNode;!function(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,a=e.expirationTimes,o=e.pendingLanes;0<o;){var i=31-it(o),s=1<<i,l=a[i];-1===l?0!=(s&n)&&0==(s&r)||(a[i]=ft(s,t)):l<=t&&(e.expiredLanes|=s),o&=~s}}(e,t);var r=pt(e,e===Rl?Ll:0);if(0===r)null!==n&&Ve(n),e.callbackNode=null,e.callbackPriority=0;else if(t=r&-r,e.callbackPriority!==t){if(null!=n&&Ve(n),1===t)0===e.tag?function(e){za=!0,$a(e)}(cc.bind(null,e)):$a(cc.bind(null,e)),ia((function(){0==(6&Nl)&&Ua()})),n=null;else{switch(wt(r)){case 1:n=Je;break;case 4:n=et;break;case 16:default:n=tt;break;case 536870912:n=rt}n=Rc(n,oc.bind(null,e))}e.callbackPriority=t,e.callbackNode=n}}function oc(e,t){if(Jl=-1,ec=0,0!=(6&Nl))throw Error(o(327));var n=e.callbackNode;if(Sc()&&e.callbackNode!==n)return null;var r=pt(e,e===Rl?Ll:0);if(0===r)return null;if(0!=(30&r)||0!=(r&e.expiredLanes)||t)t=bc(e,r);else{t=r;var a=Nl;Nl|=2;var i=hc();for(Rl===e&&Ll===t||(Hl=null,ql=Ke()+500,fc(e,t));;)try{vc();break}catch(l){mc(e,l)}xo(),Cl.current=i,Nl=a,null!==Al?t=0:(Rl=null,Ll=0,t=Il)}if(0!==t){if(2===t&&(0!==(a=mt(e))&&(r=a,t=ic(e,a))),1===t)throw n=Dl,fc(e,0),lc(e,r),ac(e,Ke()),n;if(6===t)lc(e,r);else{if(a=e.current.alternate,0==(30&r)&&!function(e){for(var t=e;;){if(16384&t.flags){var n=t.updateQueue;if(null!==n&&null!==(n=n.stores))for(var r=0;r<n.length;r++){var a=n[r],o=a.getSnapshot;a=a.value;try{if(!sr(o(),a))return!1}catch(s){return!1}}}if(n=t.child,16384&t.subtreeFlags&&null!==n)n.return=t,t=n;else{if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}(a)&&(2===(t=bc(e,r))&&(0!==(i=mt(e))&&(r=i,t=ic(e,i))),1===t))throw n=Dl,fc(e,0),lc(e,r),ac(e,Ke()),n;switch(e.finishedWork=a,e.finishedLanes=r,t){case 0:case 1:throw Error(o(345));case 2:case 5:xc(e,$l,Hl);break;case 3:if(lc(e,r),(130023424&r)===r&&10<(t=Ul+500-Ke())){if(0!==pt(e,0))break;if(((a=e.suspendedLanes)&r)!==r){tc(),e.pingedLanes|=e.suspendedLanes&a;break}e.timeoutHandle=ra(xc.bind(null,e,$l,Hl),t);break}xc(e,$l,Hl);break;case 4:if(lc(e,r),(4194240&r)===r)break;for(t=e.eventTimes,a=-1;0<r;){var s=31-it(r);i=1<<s,(s=t[s])>a&&(a=s),r&=~i}if(r=a,10<(r=(120>(r=Ke()-r)?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*_l(r/1960))-r)){e.timeoutHandle=ra(xc.bind(null,e,$l,Hl),r);break}xc(e,$l,Hl);break;default:throw Error(o(329))}}}return ac(e,Ke()),e.callbackNode===n?oc.bind(null,e):null}function ic(e,t){var n=Bl;return e.current.memoizedState.isDehydrated&&(fc(e,t).flags|=256),2!==(e=bc(e,t))&&(t=$l,$l=n,null!==t&&sc(t)),e}function sc(e){null===$l?$l=e:$l.push.apply($l,e)}function lc(e,t){for(t&=~zl,t&=~Fl,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-it(t),r=1<<n;e[n]=-1,t&=~r}}function cc(e){if(0!=(6&Nl))throw Error(o(327));Sc();var t=pt(e,0);if(0==(1&t))return ac(e,Ke()),null;var n=bc(e,t);if(0!==e.tag&&2===n){var r=mt(e);0!==r&&(t=r,n=ic(e,r))}if(1===n)throw n=Dl,fc(e,0),lc(e,t),ac(e,Ke()),n;if(6===n)throw Error(o(345));return e.finishedWork=e.current.alternate,e.finishedLanes=t,xc(e,$l,Hl),ac(e,Ke()),null}function uc(e,t){var n=Nl;Nl|=1;try{return e(t)}finally{0===(Nl=n)&&(ql=Ke()+500,za&&Ua())}}function dc(e){null!==Ql&&0===Ql.tag&&0==(6&Nl)&&Sc();var t=Nl;Nl|=1;var n=jl.transition,r=vt;try{if(jl.transition=null,vt=1,e)return e()}finally{vt=r,jl.transition=n,0==(6&(Nl=t))&&Ua()}}function pc(){Pl=Ol.current,_a(Ol)}function fc(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(-1!==n&&(e.timeoutHandle=-1,aa(n)),null!==Al)for(n=Al.return;null!==n;){var r=n;switch(to(r),r.tag){case 1:null!=(r=r.type.childContextTypes)&&Pa();break;case 3:oi(),_a(Na),_a(ja),di();break;case 5:si(r);break;case 4:oi();break;case 13:case 19:_a(li);break;case 10:So(r.type._context);break;case 22:case 23:pc()}n=n.return}if(Rl=e,Al=e=Oc(e.current,null),Ll=Pl=t,Il=0,Dl=null,zl=Fl=Ml=0,$l=Bl=null,null!==To){for(t=0;t<To.length;t++)if(null!==(r=(n=To[t]).interleaved)){n.interleaved=null;var a=r.next,o=n.pending;if(null!==o){var i=o.next;o.next=a,r.next=i}n.pending=r}To=null}return e}function mc(e,t){for(;;){var n=Al;try{if(xo(),pi.current=is,yi){for(var r=hi.memoizedState;null!==r;){var a=r.queue;null!==a&&(a.pending=null),r=r.next}yi=!1}if(mi=0,bi=gi=hi=null,vi=!1,wi=0,Tl.current=null,null===n||null===n.return){Il=1,Dl=t,Al=null;break}e:{var i=e,s=n.return,l=n,c=t;if(t=Ll,l.flags|=32768,null!==c&&"object"==typeof c&&"function"==typeof c.then){var u=c,d=l,p=d.tag;if(0==(1&d.mode)&&(0===p||11===p||15===p)){var f=d.alternate;f?(d.updateQueue=f.updateQueue,d.memoizedState=f.memoizedState,d.lanes=f.lanes):(d.updateQueue=null,d.memoizedState=null)}var m=bs(s);if(null!==m){m.flags&=-257,ys(m,s,l,0,t),1&m.mode&&gs(i,u,t),c=u;var h=(t=m).updateQueue;if(null===h){var g=new Set;g.add(c),t.updateQueue=g}else h.add(c);break e}if(0==(1&t)){gs(i,u,t),gc();break e}c=Error(o(426))}else if(ao&&1&l.mode){var b=bs(s);if(null!==b){0==(65536&b.flags)&&(b.flags|=256),ys(b,s,l,0,t),ho(us(c,l));break e}}i=c=us(c,l),4!==Il&&(Il=2),null===Bl?Bl=[i]:Bl.push(i),i=s;do{switch(i.tag){case 3:i.flags|=65536,t&=-t,i.lanes|=t,Mo(i,ms(0,c,t));break e;case 1:l=c;var y=i.type,v=i.stateNode;if(0==(128&i.flags)&&("function"==typeof y.getDerivedStateFromError||null!==v&&"function"==typeof v.componentDidCatch&&(null===Wl||!Wl.has(v)))){i.flags|=65536,t&=-t,i.lanes|=t,Mo(i,hs(i,l,t));break e}}i=i.return}while(null!==i)}kc(n)}catch(w){t=w,Al===n&&null!==n&&(Al=n=n.return);continue}break}}function hc(){var e=Cl.current;return Cl.current=is,null===e?is:e}function gc(){0!==Il&&3!==Il&&2!==Il||(Il=4),null===Rl||0==(268435455&Ml)&&0==(268435455&Fl)||lc(Rl,Ll)}function bc(e,t){var n=Nl;Nl|=2;var r=hc();for(Rl===e&&Ll===t||(Hl=null,fc(e,t));;)try{yc();break}catch(a){mc(e,a)}if(xo(),Nl=n,Cl.current=r,null!==Al)throw Error(o(261));return Rl=null,Ll=0,Il}function yc(){for(;null!==Al;)wc(Al)}function vc(){for(;null!==Al&&!Qe();)wc(Al)}function wc(e){var t=El(e.alternate,e,Pl);e.memoizedProps=e.pendingProps,null===t?kc(e):Al=t,Tl.current=null}function kc(e){var t=e;do{var n=t.alternate;if(e=t.return,0==(32768&t.flags)){if(null!==(n=Vs(n,t,Pl)))return void(Al=n)}else{if(null!==(n=Qs(n,t)))return n.flags&=32767,void(Al=n);if(null===e)return Il=6,void(Al=null);e.flags|=32768,e.subtreeFlags=0,e.deletions=null}if(null!==(t=t.sibling))return void(Al=t);Al=t=e}while(null!==t);0===Il&&(Il=5)}function xc(e,t,n){var r=vt,a=jl.transition;try{jl.transition=null,vt=1,function(e,t,n,r){do{Sc()}while(null!==Ql);if(0!=(6&Nl))throw Error(o(327));n=e.finishedWork;var a=e.finishedLanes;if(null===n)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(o(177));e.callbackNode=null,e.callbackPriority=0;var i=n.lanes|n.childLanes;if(function(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0<n;){var a=31-it(n),o=1<<a;t[a]=0,r[a]=-1,e[a]=-1,n&=~o}}(e,i),e===Rl&&(Al=Rl=null,Ll=0),0==(2064&n.subtreeFlags)&&0==(2064&n.flags)||Vl||(Vl=!0,Rc(tt,(function(){return Sc(),null}))),i=0!=(15990&n.flags),0!=(15990&n.subtreeFlags)||i){i=jl.transition,jl.transition=null;var s=vt;vt=1;var l=Nl;Nl|=4,Tl.current=null,function(e,t){if(ea=Ht,fr(e=pr())){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{var r=(n=(n=e.ownerDocument)&&n.defaultView||window).getSelection&&n.getSelection();if(r&&0!==r.rangeCount){n=r.anchorNode;var a=r.anchorOffset,i=r.focusNode;r=r.focusOffset;try{n.nodeType,i.nodeType}catch(k){n=null;break e}var s=0,l=-1,c=-1,u=0,d=0,p=e,f=null;t:for(;;){for(var m;p!==n||0!==a&&3!==p.nodeType||(l=s+a),p!==i||0!==r&&3!==p.nodeType||(c=s+r),3===p.nodeType&&(s+=p.nodeValue.length),null!==(m=p.firstChild);)f=p,p=m;for(;;){if(p===e)break t;if(f===n&&++u===a&&(l=s),f===i&&++d===r&&(c=s),null!==(m=p.nextSibling))break;f=(p=f).parentNode}p=m}n=-1===l||-1===c?null:{start:l,end:c}}else n=null}n=n||{start:0,end:0}}else n=null;for(ta={focusedElem:e,selectionRange:n},Ht=!1,Js=t;null!==Js;)if(e=(t=Js).child,0!=(1028&t.subtreeFlags)&&null!==e)e.return=t,Js=e;else for(;null!==Js;){t=Js;try{var h=t.alternate;if(0!=(1024&t.flags))switch(t.tag){case 0:case 11:case 15:case 5:case 6:case 4:case 17:break;case 1:if(null!==h){var g=h.memoizedProps,b=h.memoizedState,y=t.stateNode,v=y.getSnapshotBeforeUpdate(t.elementType===t.type?g:bo(t.type,g),b);y.__reactInternalSnapshotBeforeUpdate=v}break;case 3:var w=t.stateNode.containerInfo;1===w.nodeType?w.textContent="":9===w.nodeType&&w.documentElement&&w.removeChild(w.documentElement);break;default:throw Error(o(163))}}catch(k){_c(t,t.return,k)}if(null!==(e=t.sibling)){e.return=t.return,Js=e;break}Js=t.return}h=nl,nl=!1}(e,n),bl(n,e),mr(ta),Ht=!!ea,ta=ea=null,e.current=n,vl(n,e,a),Ye(),Nl=l,vt=s,jl.transition=i}else e.current=n;if(Vl&&(Vl=!1,Ql=e,Yl=a),i=e.pendingLanes,0===i&&(Wl=null),function(e){if(ot&&"function"==typeof ot.onCommitFiberRoot)try{ot.onCommitFiberRoot(at,e,void 0,128==(128&e.current.flags))}catch(t){}}(n.stateNode),ac(e,Ke()),null!==t)for(r=e.onRecoverableError,n=0;n<t.length;n++)a=t[n],r(a.value,{componentStack:a.stack,digest:a.digest});if(Zl)throw Zl=!1,e=Gl,Gl=null,e;0!=(1&Yl)&&0!==e.tag&&Sc(),i=e.pendingLanes,0!=(1&i)?e===Xl?Kl++:(Kl=0,Xl=e):Kl=0,Ua()}(e,t,n,r)}finally{jl.transition=a,vt=r}return null}function Sc(){if(null!==Ql){var e=wt(Yl),t=jl.transition,n=vt;try{if(jl.transition=null,vt=16>e?16:e,null===Ql)var r=!1;else{if(e=Ql,Ql=null,Yl=0,0!=(6&Nl))throw Error(o(331));var a=Nl;for(Nl|=4,Js=e.current;null!==Js;){var i=Js,s=i.child;if(0!=(16&Js.flags)){var l=i.deletions;if(null!==l){for(var c=0;c<l.length;c++){var u=l[c];for(Js=u;null!==Js;){var d=Js;switch(d.tag){case 0:case 11:case 15:rl(8,d,i)}var p=d.child;if(null!==p)p.return=d,Js=p;else for(;null!==Js;){var f=(d=Js).sibling,m=d.return;if(il(d),d===u){Js=null;break}if(null!==f){f.return=m,Js=f;break}Js=m}}}var h=i.alternate;if(null!==h){var g=h.child;if(null!==g){h.child=null;do{var b=g.sibling;g.sibling=null,g=b}while(null!==g)}}Js=i}}if(0!=(2064&i.subtreeFlags)&&null!==s)s.return=i,Js=s;else e:for(;null!==Js;){if(0!=(2048&(i=Js).flags))switch(i.tag){case 0:case 11:case 15:rl(9,i,i.return)}var y=i.sibling;if(null!==y){y.return=i.return,Js=y;break e}Js=i.return}}var v=e.current;for(Js=v;null!==Js;){var w=(s=Js).child;if(0!=(2064&s.subtreeFlags)&&null!==w)w.return=s,Js=w;else e:for(s=v;null!==Js;){if(0!=(2048&(l=Js).flags))try{switch(l.tag){case 0:case 11:case 15:al(9,l)}}catch(x){_c(l,l.return,x)}if(l===s){Js=null;break e}var k=l.sibling;if(null!==k){k.return=l.return,Js=k;break e}Js=l.return}}if(Nl=a,Ua(),ot&&"function"==typeof ot.onPostCommitFiberRoot)try{ot.onPostCommitFiberRoot(at,e)}catch(x){}r=!0}return r}finally{vt=n,jl.transition=t}}return!1}function Ec(e,t,n){e=Io(e,t=ms(0,t=us(n,t),1),1),t=tc(),null!==e&&(bt(e,1,t),ac(e,t))}function _c(e,t,n){if(3===e.tag)Ec(e,e,n);else for(;null!==t;){if(3===t.tag){Ec(t,e,n);break}if(1===t.tag){var r=t.stateNode;if("function"==typeof t.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===Wl||!Wl.has(r))){t=Io(t,e=hs(t,e=us(n,e),1),1),e=tc(),null!==t&&(bt(t,1,e),ac(t,e));break}}t=t.return}}function Cc(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),t=tc(),e.pingedLanes|=e.suspendedLanes&n,Rl===e&&(Ll&n)===n&&(4===Il||3===Il&&(130023424&Ll)===Ll&&500>Ke()-Ul?fc(e,0):zl|=n),ac(e,t)}function Tc(e,t){0===t&&(0==(1&e.mode)?t=1:(t=ut,0==(130023424&(ut<<=1))&&(ut=4194304)));var n=tc();null!==(e=Ro(e,t))&&(bt(e,t,n),ac(e,n))}function jc(e){var t=e.memoizedState,n=0;null!==t&&(n=t.retryLane),Tc(e,n)}function Nc(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,a=e.memoizedState;null!==a&&(n=a.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(o(314))}null!==r&&r.delete(t),Tc(e,n)}function Rc(e,t){return We(e,t)}function Ac(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Lc(e,t,n,r){return new Ac(e,t,n,r)}function Pc(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Oc(e,t){var n=e.alternate;return null===n?((n=Lc(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=14680064&e.flags,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=null===t?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Ic(e,t,n,r,a,i){var s=2;if(r=e,"function"==typeof e)Pc(e)&&(s=1);else if("string"==typeof e)s=5;else e:switch(e){case S:return Dc(n.children,a,i,t);case E:s=8,a|=8;break;case _:return(e=Lc(12,n,t,2|a)).elementType=_,e.lanes=i,e;case N:return(e=Lc(13,n,t,a)).elementType=N,e.lanes=i,e;case R:return(e=Lc(19,n,t,a)).elementType=R,e.lanes=i,e;case P:return Mc(n,a,i,t);default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case C:s=10;break e;case T:s=9;break e;case j:s=11;break e;case A:s=14;break e;case L:s=16,r=null;break e}throw Error(o(130,null==e?e:typeof e,""))}return(t=Lc(s,n,t,a)).elementType=e,t.type=r,t.lanes=i,t}function Dc(e,t,n,r){return(e=Lc(7,e,r,t)).lanes=n,e}function Mc(e,t,n,r){return(e=Lc(22,e,r,t)).elementType=P,e.lanes=n,e.stateNode={isHidden:!1},e}function Fc(e,t,n){return(e=Lc(6,e,null,t)).lanes=n,e}function zc(e,t,n){return(t=Lc(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Bc(e,t,n,r,a){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=gt(0),this.expirationTimes=gt(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=gt(0),this.identifierPrefix=r,this.onRecoverableError=a,this.mutableSourceEagerHydrationData=null}function $c(e,t,n,r,a,o,i,s,l){return e=new Bc(e,t,n,s,l),1===t?(t=1,!0===o&&(t|=8)):t=0,o=Lc(3,null,null,t),e.current=o,o.stateNode=e,o.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},Lo(o),e}function Uc(e){if(!e)return Ta;e:{if(Ue(e=e._reactInternals)!==e||1!==e.tag)throw Error(o(170));var t=e;do{switch(t.tag){case 3:t=t.stateNode.context;break e;case 1:if(La(t.type)){t=t.stateNode.__reactInternalMemoizedMergedChildContext;break e}}t=t.return}while(null!==t);throw Error(o(171))}if(1===e.tag){var n=e.type;if(La(n))return Ia(e,n,t)}return t}function qc(e,t,n,r,a,o,i,s,l){return(e=$c(n,r,!0,e,0,o,0,s,l)).context=Uc(null),n=e.current,(o=Oo(r=tc(),a=nc(n))).callback=null!=t?t:null,Io(n,o,a),e.current.lanes=a,bt(e,a,r),ac(e,r),e}function Hc(e,t,n,r){var a=t.current,o=tc(),i=nc(a);return n=Uc(n),null===t.context?t.context=n:t.pendingContext=n,(t=Oo(o,i)).payload={element:e},null!==(r=void 0===r?null:r)&&(t.callback=r),null!==(e=Io(a,t,i))&&(rc(e,a,i,o),Do(e,a,i)),i}function Zc(e){return(e=e.current).child?(e.child.tag,e.child.stateNode):null}function Gc(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var n=e.retryLane;e.retryLane=0!==n&&n<t?n:t}}function Wc(e,t){Gc(e,t),(e=e.alternate)&&Gc(e,t)}El=function(e,t,n){if(null!==e)if(e.memoizedProps!==t.pendingProps||Na.current)ws=!0;else{if(0==(e.lanes&n)&&0==(128&t.flags))return ws=!1,function(e,t,n){switch(t.tag){case 3:Rs(t),mo();break;case 5:ii(t);break;case 1:La(t.type)&&Da(t);break;case 4:ai(t,t.stateNode.containerInfo);break;case 10:var r=t.type._context,a=t.memoizedProps.value;Ca(yo,r._currentValue),r._currentValue=a;break;case 13:if(null!==(r=t.memoizedState))return null!==r.dehydrated?(Ca(li,1&li.current),t.flags|=128,null):0!=(n&t.child.childLanes)?Fs(e,t,n):(Ca(li,1&li.current),null!==(e=Zs(e,t,n))?e.sibling:null);Ca(li,1&li.current);break;case 19:if(r=0!=(n&t.childLanes),0!=(128&e.flags)){if(r)return qs(e,t,n);t.flags|=128}if(null!==(a=t.memoizedState)&&(a.rendering=null,a.tail=null,a.lastEffect=null),Ca(li,li.current),r)break;return null;case 22:case 23:return t.lanes=0,_s(e,t,n)}return Zs(e,t,n)}(e,t,n);ws=0!=(131072&e.flags)}else ws=!1,ao&&0!=(1048576&t.flags)&&Ja(t,Ga,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;Hs(e,t),e=t.pendingProps;var a=Aa(t,ja.current);_o(t,n),a=Ei(null,t,r,e,a,n);var i=_i();return t.flags|=1,"object"==typeof a&&null!==a&&"function"==typeof a.render&&void 0===a.$$typeof?(t.tag=1,t.memoizedState=null,t.updateQueue=null,La(r)?(i=!0,Da(t)):i=!1,t.memoizedState=null!==a.state&&void 0!==a.state?a.state:null,Lo(t),a.updater=Uo,t.stateNode=a,a._reactInternals=t,Go(t,r,e,n),t=Ns(null,t,r,!0,i,n)):(t.tag=0,ao&&i&&eo(t),ks(null,t,a,n),t=t.child),t;case 16:r=t.elementType;e:{switch(Hs(e,t),e=t.pendingProps,r=(a=r._init)(r._payload),t.type=r,a=t.tag=function(e){if("function"==typeof e)return Pc(e)?1:0;if(null!=e){if((e=e.$$typeof)===j)return 11;if(e===A)return 14}return 2}(r),e=bo(r,e),a){case 0:t=Ts(null,t,r,e,n);break e;case 1:t=js(null,t,r,e,n);break e;case 11:t=xs(null,t,r,e,n);break e;case 14:t=Ss(null,t,r,bo(r.type,e),n);break e}throw Error(o(306,r,""))}return t;case 0:return r=t.type,a=t.pendingProps,Ts(e,t,r,a=t.elementType===r?a:bo(r,a),n);case 1:return r=t.type,a=t.pendingProps,js(e,t,r,a=t.elementType===r?a:bo(r,a),n);case 3:e:{if(Rs(t),null===e)throw Error(o(387));r=t.pendingProps,a=(i=t.memoizedState).element,Po(e,t),Fo(t,r,null,n);var s=t.memoizedState;if(r=s.element,i.isDehydrated){if(i={element:r,isDehydrated:!1,cache:s.cache,pendingSuspenseBoundaries:s.pendingSuspenseBoundaries,transitions:s.transitions},t.updateQueue.baseState=i,t.memoizedState=i,256&t.flags){t=As(e,t,r,n,a=us(Error(o(423)),t));break e}if(r!==a){t=As(e,t,r,n,a=us(Error(o(424)),t));break e}for(ro=ca(t.stateNode.containerInfo.firstChild),no=t,ao=!0,oo=null,n=Xo(t,null,r,n),t.child=n;n;)n.flags=-3&n.flags|4096,n=n.sibling}else{if(mo(),r===a){t=Zs(e,t,n);break e}ks(e,t,r,n)}t=t.child}return t;case 5:return ii(t),null===e&&co(t),r=t.type,a=t.pendingProps,i=null!==e?e.memoizedProps:null,s=a.children,na(r,a)?s=null:null!==i&&na(r,i)&&(t.flags|=32),Cs(e,t),ks(e,t,s,n),t.child;case 6:return null===e&&co(t),null;case 13:return Fs(e,t,n);case 4:return ai(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=Ko(t,null,r,n):ks(e,t,r,n),t.child;case 11:return r=t.type,a=t.pendingProps,xs(e,t,r,a=t.elementType===r?a:bo(r,a),n);case 7:return ks(e,t,t.pendingProps,n),t.child;case 8:case 12:return ks(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,a=t.pendingProps,i=t.memoizedProps,s=a.value,Ca(yo,r._currentValue),r._currentValue=s,null!==i)if(sr(i.value,s)){if(i.children===a.children&&!Na.current){t=Zs(e,t,n);break e}}else for(null!==(i=t.child)&&(i.return=t);null!==i;){var l=i.dependencies;if(null!==l){s=i.child;for(var c=l.firstContext;null!==c;){if(c.context===r){if(1===i.tag){(c=Oo(-1,n&-n)).tag=2;var u=i.updateQueue;if(null!==u){var d=(u=u.shared).pending;null===d?c.next=c:(c.next=d.next,d.next=c),u.pending=c}}i.lanes|=n,null!==(c=i.alternate)&&(c.lanes|=n),Eo(i.return,n,t),l.lanes|=n;break}c=c.next}}else if(10===i.tag)s=i.type===t.type?null:i.child;else if(18===i.tag){if(null===(s=i.return))throw Error(o(341));s.lanes|=n,null!==(l=s.alternate)&&(l.lanes|=n),Eo(s,n,t),s=i.sibling}else s=i.child;if(null!==s)s.return=i;else for(s=i;null!==s;){if(s===t){s=null;break}if(null!==(i=s.sibling)){i.return=s.return,s=i;break}s=s.return}i=s}ks(e,t,a.children,n),t=t.child}return t;case 9:return a=t.type,r=t.pendingProps.children,_o(t,n),r=r(a=Co(a)),t.flags|=1,ks(e,t,r,n),t.child;case 14:return a=bo(r=t.type,t.pendingProps),Ss(e,t,r,a=bo(r.type,a),n);case 15:return Es(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,a=t.pendingProps,a=t.elementType===r?a:bo(r,a),Hs(e,t),t.tag=1,La(r)?(e=!0,Da(t)):e=!1,_o(t,n),Ho(t,r,a),Go(t,r,a,n),Ns(null,t,r,!0,e,n);case 19:return qs(e,t,n);case 22:return _s(e,t,n)}throw Error(o(156,t.tag))};var Vc="function"==typeof reportError?reportError:function(e){console.error(e)};function Qc(e){this._internalRoot=e}function Yc(e){this._internalRoot=e}function Kc(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType)}function Xc(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}function Jc(){}function eu(e,t,n,r,a){var o=n._reactRootContainer;if(o){var i=o;if("function"==typeof a){var s=a;a=function(){var e=Zc(i);s.call(e)}}Hc(t,i,e,a)}else i=function(e,t,n,r,a){if(a){if("function"==typeof r){var o=r;r=function(){var e=Zc(i);o.call(e)}}var i=qc(t,r,e,0,null,!1,0,"",Jc);return e._reactRootContainer=i,e[ma]=i.current,Ur(8===e.nodeType?e.parentNode:e),dc(),i}for(;a=e.lastChild;)e.removeChild(a);if("function"==typeof r){var s=r;r=function(){var e=Zc(l);s.call(e)}}var l=$c(e,0,!1,null,0,!1,0,"",Jc);return e._reactRootContainer=l,e[ma]=l.current,Ur(8===e.nodeType?e.parentNode:e),dc((function(){Hc(t,l,n,r)})),l}(n,t,e,a,r);return Zc(i)}Yc.prototype.render=Qc.prototype.render=function(e){var t=this._internalRoot;if(null===t)throw Error(o(409));Hc(e,t,null,null)},Yc.prototype.unmount=Qc.prototype.unmount=function(){var e=this._internalRoot;if(null!==e){this._internalRoot=null;var t=e.containerInfo;dc((function(){Hc(null,e,null,null)})),t[ma]=null}},Yc.prototype.unstable_scheduleHydration=function(e){if(e){var t=Et();e={blockedOn:null,target:e,priority:t};for(var n=0;n<Pt.length&&0!==t&&t<Pt[n].priority;n++);Pt.splice(n,0,e),0===n&&Mt(e)}},kt=function(e){switch(e.tag){case 3:var t=e.stateNode;if(t.current.memoizedState.isDehydrated){var n=dt(t.pendingLanes);0!==n&&(yt(t,1|n),ac(t,Ke()),0==(6&Nl)&&(ql=Ke()+500,Ua()))}break;case 13:dc((function(){var t=Ro(e,1);if(null!==t){var n=tc();rc(t,e,1,n)}})),Wc(e,1)}},xt=function(e){if(13===e.tag){var t=Ro(e,134217728);if(null!==t)rc(t,e,134217728,tc());Wc(e,134217728)}},St=function(e){if(13===e.tag){var t=nc(e),n=Ro(e,t);if(null!==n)rc(n,e,t,tc());Wc(e,t)}},Et=function(){return vt},_t=function(e,t){var n=vt;try{return vt=e,t()}finally{vt=n}},xe=function(e,t,n){switch(t){case"input":if(X(e,n),t=n.name,"radio"===n.type&&null!=t){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var a=ka(r);if(!a)throw Error(o(90));W(r),X(r,a)}}}break;case"textarea":oe(e,n);break;case"select":null!=(t=n.value)&&ne(e,!!n.multiple,t,!1)}},je=uc,Ne=dc;var tu={usingClientEntryPoint:!1,Events:[va,wa,ka,Ce,Te,uc]},nu={findFiberByHostInstance:ya,bundleType:0,version:"18.2.0",rendererPackageName:"react-dom"},ru={bundleType:nu.bundleType,version:nu.version,rendererPackageName:nu.rendererPackageName,rendererConfig:nu.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:w.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=Ze(e))?null:e.stateNode},findFiberByHostInstance:nu.findFiberByHostInstance||function(){return null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.2.0-next-9e3b772b8-20220608"};if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var au=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!au.isDisabled&&au.supportsFiber)try{at=au.inject(ru),ot=au}catch(ue){}}t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=tu,t.createPortal=function(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!Kc(t))throw Error(o(200));return function(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:x,key:null==r?null:""+r,children:e,containerInfo:t,implementation:n}}(e,t,null,n)},t.createRoot=function(e,t){if(!Kc(e))throw Error(o(299));var n=!1,r="",a=Vc;return null!=t&&(!0===t.unstable_strictMode&&(n=!0),void 0!==t.identifierPrefix&&(r=t.identifierPrefix),void 0!==t.onRecoverableError&&(a=t.onRecoverableError)),t=$c(e,1,!1,null,0,n,0,r,a),e[ma]=t.current,Ur(8===e.nodeType?e.parentNode:e),new Qc(t)},t.findDOMNode=function(e){if(null==e)return null;if(1===e.nodeType)return e;var t=e._reactInternals;if(void 0===t){if("function"==typeof e.render)throw Error(o(188));throw e=Object.keys(e).join(","),Error(o(268,e))}return e=null===(e=Ze(t))?null:e.stateNode},t.flushSync=function(e){return dc(e)},t.hydrate=function(e,t,n){if(!Xc(t))throw Error(o(200));return eu(null,e,t,!0,n)},t.hydrateRoot=function(e,t,n){if(!Kc(e))throw Error(o(405));var r=null!=n&&n.hydratedSources||null,a=!1,i="",s=Vc;if(null!=n&&(!0===n.unstable_strictMode&&(a=!0),void 0!==n.identifierPrefix&&(i=n.identifierPrefix),void 0!==n.onRecoverableError&&(s=n.onRecoverableError)),t=qc(t,null,e,1,null!=n?n:null,a,0,i,s),e[ma]=t.current,Ur(e),r)for(e=0;e<r.length;e++)a=(a=(n=r[e])._getVersion)(n._source),null==t.mutableSourceEagerHydrationData?t.mutableSourceEagerHydrationData=[n,a]:t.mutableSourceEagerHydrationData.push(n,a);return new Yc(t)},t.render=function(e,t,n){if(!Xc(t))throw Error(o(200));return eu(null,e,t,!1,n)},t.unmountComponentAtNode=function(e){if(!Xc(e))throw Error(o(40));return!!e._reactRootContainer&&(dc((function(){eu(null,null,e,!1,(function(){e._reactRootContainer=null,e[ma]=null}))})),!0)},t.unstable_batchedUpdates=uc,t.unstable_renderSubtreeIntoContainer=function(e,t,n,r){if(!Xc(n))throw Error(o(200));if(null==e||void 0===e._reactInternals)throw Error(o(38));return eu(e,t,n,!1,r)},t.version="18.2.0-next-9e3b772b8-20220608"},745:(e,t,n)=>{"use strict";var r=n(3935);t.createRoot=r.createRoot,t.hydrateRoot=r.hydrateRoot},3935:(e,t,n)=>{"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}(),e.exports=n(4448)},9590:e=>{var t="undefined"!=typeof Element,n="function"==typeof Map,r="function"==typeof Set,a="function"==typeof ArrayBuffer&&!!ArrayBuffer.isView;function o(e,i){if(e===i)return!0;if(e&&i&&"object"==typeof e&&"object"==typeof i){if(e.constructor!==i.constructor)return!1;var s,l,c,u;if(Array.isArray(e)){if((s=e.length)!=i.length)return!1;for(l=s;0!=l--;)if(!o(e[l],i[l]))return!1;return!0}if(n&&e instanceof Map&&i instanceof Map){if(e.size!==i.size)return!1;for(u=e.entries();!(l=u.next()).done;)if(!i.has(l.value[0]))return!1;for(u=e.entries();!(l=u.next()).done;)if(!o(l.value[1],i.get(l.value[0])))return!1;return!0}if(r&&e instanceof Set&&i instanceof Set){if(e.size!==i.size)return!1;for(u=e.entries();!(l=u.next()).done;)if(!i.has(l.value[0]))return!1;return!0}if(a&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(i)){if((s=e.length)!=i.length)return!1;for(l=s;0!=l--;)if(e[l]!==i[l])return!1;return!0}if(e.constructor===RegExp)return e.source===i.source&&e.flags===i.flags;if(e.valueOf!==Object.prototype.valueOf&&"function"==typeof e.valueOf&&"function"==typeof i.valueOf)return e.valueOf()===i.valueOf();if(e.toString!==Object.prototype.toString&&"function"==typeof e.toString&&"function"==typeof i.toString)return e.toString()===i.toString();if((s=(c=Object.keys(e)).length)!==Object.keys(i).length)return!1;for(l=s;0!=l--;)if(!Object.prototype.hasOwnProperty.call(i,c[l]))return!1;if(t&&e instanceof Element)return!1;for(l=s;0!=l--;)if(("_owner"!==c[l]&&"__v"!==c[l]&&"__o"!==c[l]||!e.$$typeof)&&!o(e[c[l]],i[c[l]]))return!1;return!0}return e!=e&&i!=i}e.exports=function(e,t){try{return o(e,t)}catch(n){if((n.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw n}}},405:(e,t,n)=>{"use strict";n.d(t,{B6:()=>Z,ql:()=>J});var r=n(7294),a=n(5697),o=n.n(a),i=n(9590),s=n.n(i),l=n(1143),c=n.n(l),u=n(6774),d=n.n(u);function p(){return p=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},p.apply(this,arguments)}function f(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,m(e,t)}function m(e,t){return m=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},m(e,t)}function h(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)t.indexOf(n=o[r])>=0||(a[n]=e[n]);return a}var g={BASE:"base",BODY:"body",HEAD:"head",HTML:"html",LINK:"link",META:"meta",NOSCRIPT:"noscript",SCRIPT:"script",STYLE:"style",TITLE:"title",FRAGMENT:"Symbol(react.fragment)"},b={rel:["amphtml","canonical","alternate"]},y={type:["application/ld+json"]},v={charset:"",name:["robots","description"],property:["og:type","og:title","og:url","og:image","og:image:alt","og:description","twitter:url","twitter:title","twitter:description","twitter:image","twitter:image:alt","twitter:card","twitter:site"]},w=Object.keys(g).map((function(e){return g[e]})),k={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},x=Object.keys(k).reduce((function(e,t){return e[k[t]]=t,e}),{}),S=function(e,t){for(var n=e.length-1;n>=0;n-=1){var r=e[n];if(Object.prototype.hasOwnProperty.call(r,t))return r[t]}return null},E=function(e){var t=S(e,g.TITLE),n=S(e,"titleTemplate");if(Array.isArray(t)&&(t=t.join("")),n&&t)return n.replace(/%s/g,(function(){return t}));var r=S(e,"defaultTitle");return t||r||void 0},_=function(e){return S(e,"onChangeClientState")||function(){}},C=function(e,t){return t.filter((function(t){return void 0!==t[e]})).map((function(t){return t[e]})).reduce((function(e,t){return p({},e,t)}),{})},T=function(e,t){return t.filter((function(e){return void 0!==e[g.BASE]})).map((function(e){return e[g.BASE]})).reverse().reduce((function(t,n){if(!t.length)for(var r=Object.keys(n),a=0;a<r.length;a+=1){var o=r[a].toLowerCase();if(-1!==e.indexOf(o)&&n[o])return t.concat(n)}return t}),[])},j=function(e,t,n){var r={};return n.filter((function(t){return!!Array.isArray(t[e])||(void 0!==t[e]&&console&&"function"==typeof console.warn&&console.warn("Helmet: "+e+' should be of type "Array". Instead found type "'+typeof t[e]+'"'),!1)})).map((function(t){return t[e]})).reverse().reduce((function(e,n){var a={};n.filter((function(e){for(var n,o=Object.keys(e),i=0;i<o.length;i+=1){var s=o[i],l=s.toLowerCase();-1===t.indexOf(l)||"rel"===n&&"canonical"===e[n].toLowerCase()||"rel"===l&&"stylesheet"===e[l].toLowerCase()||(n=l),-1===t.indexOf(s)||"innerHTML"!==s&&"cssText"!==s&&"itemprop"!==s||(n=s)}if(!n||!e[n])return!1;var c=e[n].toLowerCase();return r[n]||(r[n]={}),a[n]||(a[n]={}),!r[n][c]&&(a[n][c]=!0,!0)})).reverse().forEach((function(t){return e.push(t)}));for(var o=Object.keys(a),i=0;i<o.length;i+=1){var s=o[i],l=p({},r[s],a[s]);r[s]=l}return e}),[]).reverse()},N=function(e,t){if(Array.isArray(e)&&e.length)for(var n=0;n<e.length;n+=1)if(e[n][t])return!0;return!1},R=function(e){return Array.isArray(e)?e.join(""):e},A=function(e,t){return Array.isArray(e)?e.reduce((function(e,n){return function(e,t){for(var n=Object.keys(e),r=0;r<n.length;r+=1)if(t[n[r]]&&t[n[r]].includes(e[n[r]]))return!0;return!1}(n,t)?e.priority.push(n):e.default.push(n),e}),{priority:[],default:[]}):{default:e}},L=function(e,t){var n;return p({},e,((n={})[t]=void 0,n))},P=[g.NOSCRIPT,g.SCRIPT,g.STYLE],O=function(e,t){return void 0===t&&(t=!0),!1===t?String(e):String(e).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")},I=function(e){return Object.keys(e).reduce((function(t,n){var r=void 0!==e[n]?n+'="'+e[n]+'"':""+n;return t?t+" "+r:r}),"")},D=function(e,t){return void 0===t&&(t={}),Object.keys(e).reduce((function(t,n){return t[k[n]||n]=e[n],t}),t)},M=function(e,t){return t.map((function(t,n){var a,o=((a={key:n})["data-rh"]=!0,a);return Object.keys(t).forEach((function(e){var n=k[e]||e;"innerHTML"===n||"cssText"===n?o.dangerouslySetInnerHTML={__html:t.innerHTML||t.cssText}:o[n]=t[e]})),r.createElement(e,o)}))},F=function(e,t,n){switch(e){case g.TITLE:return{toComponent:function(){return n=t.titleAttributes,(a={key:e=t.title})["data-rh"]=!0,o=D(n,a),[r.createElement(g.TITLE,o,e)];var e,n,a,o},toString:function(){return function(e,t,n,r){var a=I(n),o=R(t);return a?"<"+e+' data-rh="true" '+a+">"+O(o,r)+"</"+e+">":"<"+e+' data-rh="true">'+O(o,r)+"</"+e+">"}(e,t.title,t.titleAttributes,n)}};case"bodyAttributes":case"htmlAttributes":return{toComponent:function(){return D(t)},toString:function(){return I(t)}};default:return{toComponent:function(){return M(e,t)},toString:function(){return function(e,t,n){return t.reduce((function(t,r){var a=Object.keys(r).filter((function(e){return!("innerHTML"===e||"cssText"===e)})).reduce((function(e,t){var a=void 0===r[t]?t:t+'="'+O(r[t],n)+'"';return e?e+" "+a:a}),""),o=r.innerHTML||r.cssText||"",i=-1===P.indexOf(e);return t+"<"+e+' data-rh="true" '+a+(i?"/>":">"+o+"</"+e+">")}),"")}(e,t,n)}}}},z=function(e){var t=e.baseTag,n=e.bodyAttributes,r=e.encode,a=e.htmlAttributes,o=e.noscriptTags,i=e.styleTags,s=e.title,l=void 0===s?"":s,c=e.titleAttributes,u=e.linkTags,d=e.metaTags,p=e.scriptTags,f={toComponent:function(){},toString:function(){return""}};if(e.prioritizeSeoTags){var m=function(e){var t=e.linkTags,n=e.scriptTags,r=e.encode,a=A(e.metaTags,v),o=A(t,b),i=A(n,y);return{priorityMethods:{toComponent:function(){return[].concat(M(g.META,a.priority),M(g.LINK,o.priority),M(g.SCRIPT,i.priority))},toString:function(){return F(g.META,a.priority,r)+" "+F(g.LINK,o.priority,r)+" "+F(g.SCRIPT,i.priority,r)}},metaTags:a.default,linkTags:o.default,scriptTags:i.default}}(e);f=m.priorityMethods,u=m.linkTags,d=m.metaTags,p=m.scriptTags}return{priority:f,base:F(g.BASE,t,r),bodyAttributes:F("bodyAttributes",n,r),htmlAttributes:F("htmlAttributes",a,r),link:F(g.LINK,u,r),meta:F(g.META,d,r),noscript:F(g.NOSCRIPT,o,r),script:F(g.SCRIPT,p,r),style:F(g.STYLE,i,r),title:F(g.TITLE,{title:l,titleAttributes:c},r)}},B=[],$=function(e,t){var n=this;void 0===t&&(t="undefined"!=typeof document),this.instances=[],this.value={setHelmet:function(e){n.context.helmet=e},helmetInstances:{get:function(){return n.canUseDOM?B:n.instances},add:function(e){(n.canUseDOM?B:n.instances).push(e)},remove:function(e){var t=(n.canUseDOM?B:n.instances).indexOf(e);(n.canUseDOM?B:n.instances).splice(t,1)}}},this.context=e,this.canUseDOM=t,t||(e.helmet=z({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}}))},U=r.createContext({}),q=o().shape({setHelmet:o().func,helmetInstances:o().shape({get:o().func,add:o().func,remove:o().func})}),H="undefined"!=typeof document,Z=function(e){function t(n){var r;return(r=e.call(this,n)||this).helmetData=new $(r.props.context,t.canUseDOM),r}return f(t,e),t.prototype.render=function(){return r.createElement(U.Provider,{value:this.helmetData.value},this.props.children)},t}(r.Component);Z.canUseDOM=H,Z.propTypes={context:o().shape({helmet:o().shape()}),children:o().node.isRequired},Z.defaultProps={context:{}},Z.displayName="HelmetProvider";var G=function(e,t){var n,r=document.head||document.querySelector(g.HEAD),a=r.querySelectorAll(e+"[data-rh]"),o=[].slice.call(a),i=[];return t&&t.length&&t.forEach((function(t){var r=document.createElement(e);for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&("innerHTML"===a?r.innerHTML=t.innerHTML:"cssText"===a?r.styleSheet?r.styleSheet.cssText=t.cssText:r.appendChild(document.createTextNode(t.cssText)):r.setAttribute(a,void 0===t[a]?"":t[a]));r.setAttribute("data-rh","true"),o.some((function(e,t){return n=t,r.isEqualNode(e)}))?o.splice(n,1):i.push(r)})),o.forEach((function(e){return e.parentNode.removeChild(e)})),i.forEach((function(e){return r.appendChild(e)})),{oldTags:o,newTags:i}},W=function(e,t){var n=document.getElementsByTagName(e)[0];if(n){for(var r=n.getAttribute("data-rh"),a=r?r.split(","):[],o=[].concat(a),i=Object.keys(t),s=0;s<i.length;s+=1){var l=i[s],c=t[l]||"";n.getAttribute(l)!==c&&n.setAttribute(l,c),-1===a.indexOf(l)&&a.push(l);var u=o.indexOf(l);-1!==u&&o.splice(u,1)}for(var d=o.length-1;d>=0;d-=1)n.removeAttribute(o[d]);a.length===o.length?n.removeAttribute("data-rh"):n.getAttribute("data-rh")!==i.join(",")&&n.setAttribute("data-rh",i.join(","))}},V=function(e,t){var n=e.baseTag,r=e.htmlAttributes,a=e.linkTags,o=e.metaTags,i=e.noscriptTags,s=e.onChangeClientState,l=e.scriptTags,c=e.styleTags,u=e.title,d=e.titleAttributes;W(g.BODY,e.bodyAttributes),W(g.HTML,r),function(e,t){void 0!==e&&document.title!==e&&(document.title=R(e)),W(g.TITLE,t)}(u,d);var p={baseTag:G(g.BASE,n),linkTags:G(g.LINK,a),metaTags:G(g.META,o),noscriptTags:G(g.NOSCRIPT,i),scriptTags:G(g.SCRIPT,l),styleTags:G(g.STYLE,c)},f={},m={};Object.keys(p).forEach((function(e){var t=p[e],n=t.newTags,r=t.oldTags;n.length&&(f[e]=n),r.length&&(m[e]=p[e].oldTags)})),t&&t(),s(e,f,m)},Q=null,Y=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(t=e.call.apply(e,[this].concat(r))||this).rendered=!1,t}f(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!d()(e,this.props)},n.componentDidUpdate=function(){this.emitChange()},n.componentWillUnmount=function(){this.props.context.helmetInstances.remove(this),this.emitChange()},n.emitChange=function(){var e,t,n=this.props.context,r=n.setHelmet,a=null,o=(e=n.helmetInstances.get().map((function(e){var t=p({},e.props);return delete t.context,t})),{baseTag:T(["href"],e),bodyAttributes:C("bodyAttributes",e),defer:S(e,"defer"),encode:S(e,"encodeSpecialCharacters"),htmlAttributes:C("htmlAttributes",e),linkTags:j(g.LINK,["rel","href"],e),metaTags:j(g.META,["name","charset","http-equiv","property","itemprop"],e),noscriptTags:j(g.NOSCRIPT,["innerHTML"],e),onChangeClientState:_(e),scriptTags:j(g.SCRIPT,["src","innerHTML"],e),styleTags:j(g.STYLE,["cssText"],e),title:E(e),titleAttributes:C("titleAttributes",e),prioritizeSeoTags:N(e,"prioritizeSeoTags")});Z.canUseDOM?(t=o,Q&&cancelAnimationFrame(Q),t.defer?Q=requestAnimationFrame((function(){V(t,(function(){Q=null}))})):(V(t),Q=null)):z&&(a=z(o)),r(a)},n.init=function(){this.rendered||(this.rendered=!0,this.props.context.helmetInstances.add(this),this.emitChange())},n.render=function(){return this.init(),null},t}(r.Component);Y.propTypes={context:q.isRequired},Y.displayName="HelmetDispatcher";var K=["children"],X=["children"],J=function(e){function t(){return e.apply(this,arguments)||this}f(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!s()(L(this.props,"helmetData"),L(e,"helmetData"))},n.mapNestedChildrenToProps=function(e,t){if(!t)return null;switch(e.type){case g.SCRIPT:case g.NOSCRIPT:return{innerHTML:t};case g.STYLE:return{cssText:t};default:throw new Error("<"+e.type+" /> elements are self-closing and can not contain children. Refer to our API for more information.")}},n.flattenArrayTypeChildren=function(e){var t,n=e.child,r=e.arrayTypeChildren;return p({},r,((t={})[n.type]=[].concat(r[n.type]||[],[p({},e.newChildProps,this.mapNestedChildrenToProps(n,e.nestedChildren))]),t))},n.mapObjectTypeChildren=function(e){var t,n,r=e.child,a=e.newProps,o=e.newChildProps,i=e.nestedChildren;switch(r.type){case g.TITLE:return p({},a,((t={})[r.type]=i,t.titleAttributes=p({},o),t));case g.BODY:return p({},a,{bodyAttributes:p({},o)});case g.HTML:return p({},a,{htmlAttributes:p({},o)});default:return p({},a,((n={})[r.type]=p({},o),n))}},n.mapArrayTypeChildrenToProps=function(e,t){var n=p({},t);return Object.keys(e).forEach((function(t){var r;n=p({},n,((r={})[t]=e[t],r))})),n},n.warnOnInvalidChildren=function(e,t){return c()(w.some((function(t){return e.type===t})),"function"==typeof e.type?"You may be attempting to nest <Helmet> components within each other, which is not allowed. Refer to our API for more information.":"Only elements types "+w.join(", ")+" are allowed. Helmet does not support rendering <"+e.type+"> elements. Refer to our API for more information."),c()(!t||"string"==typeof t||Array.isArray(t)&&!t.some((function(e){return"string"!=typeof e})),"Helmet expects a string as a child of <"+e.type+">. Did you forget to wrap your children in braces? ( <"+e.type+">{``}</"+e.type+"> ) Refer to our API for more information."),!0},n.mapChildrenToProps=function(e,t){var n=this,a={};return r.Children.forEach(e,(function(e){if(e&&e.props){var r=e.props,o=r.children,i=h(r,K),s=Object.keys(i).reduce((function(e,t){return e[x[t]||t]=i[t],e}),{}),l=e.type;switch("symbol"==typeof l?l=l.toString():n.warnOnInvalidChildren(e,o),l){case g.FRAGMENT:t=n.mapChildrenToProps(o,t);break;case g.LINK:case g.META:case g.NOSCRIPT:case g.SCRIPT:case g.STYLE:a=n.flattenArrayTypeChildren({child:e,arrayTypeChildren:a,newChildProps:s,nestedChildren:o});break;default:t=n.mapObjectTypeChildren({child:e,newProps:t,newChildProps:s,nestedChildren:o})}}})),this.mapArrayTypeChildrenToProps(a,t)},n.render=function(){var e=this.props,t=e.children,n=h(e,X),a=p({},n),o=n.helmetData;return t&&(a=this.mapChildrenToProps(t,a)),!o||o instanceof $||(o=new $(o.context,o.instances)),o?r.createElement(Y,p({},a,{context:o.value,helmetData:void 0})):r.createElement(U.Consumer,null,(function(e){return r.createElement(Y,p({},a,{context:e}))}))},t}(r.Component);J.propTypes={base:o().object,bodyAttributes:o().object,children:o().oneOfType([o().arrayOf(o().node),o().node]),defaultTitle:o().string,defer:o().bool,encodeSpecialCharacters:o().bool,htmlAttributes:o().object,link:o().arrayOf(o().object),meta:o().arrayOf(o().object),noscript:o().arrayOf(o().object),onChangeClientState:o().func,script:o().arrayOf(o().object),style:o().arrayOf(o().object),title:o().string,titleAttributes:o().object,titleTemplate:o().string,prioritizeSeoTags:o().bool,helmetData:o().object},J.defaultProps={defer:!0,encodeSpecialCharacters:!0,prioritizeSeoTags:!1},J.displayName="Helmet"},9921:(e,t)=>{"use strict";var n="function"==typeof Symbol&&Symbol.for,r=n?Symbol.for("react.element"):60103,a=n?Symbol.for("react.portal"):60106,o=n?Symbol.for("react.fragment"):60107,i=n?Symbol.for("react.strict_mode"):60108,s=n?Symbol.for("react.profiler"):60114,l=n?Symbol.for("react.provider"):60109,c=n?Symbol.for("react.context"):60110,u=n?Symbol.for("react.async_mode"):60111,d=n?Symbol.for("react.concurrent_mode"):60111,p=n?Symbol.for("react.forward_ref"):60112,f=n?Symbol.for("react.suspense"):60113,m=n?Symbol.for("react.suspense_list"):60120,h=n?Symbol.for("react.memo"):60115,g=n?Symbol.for("react.lazy"):60116,b=n?Symbol.for("react.block"):60121,y=n?Symbol.for("react.fundamental"):60117,v=n?Symbol.for("react.responder"):60118,w=n?Symbol.for("react.scope"):60119;function k(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case u:case d:case o:case s:case i:case f:return e;default:switch(e=e&&e.$$typeof){case c:case p:case g:case h:case l:return e;default:return t}}case a:return t}}}function x(e){return k(e)===d}t.AsyncMode=u,t.ConcurrentMode=d,t.ContextConsumer=c,t.ContextProvider=l,t.Element=r,t.ForwardRef=p,t.Fragment=o,t.Lazy=g,t.Memo=h,t.Portal=a,t.Profiler=s,t.StrictMode=i,t.Suspense=f,t.isAsyncMode=function(e){return x(e)||k(e)===u},t.isConcurrentMode=x,t.isContextConsumer=function(e){return k(e)===c},t.isContextProvider=function(e){return k(e)===l},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return k(e)===p},t.isFragment=function(e){return k(e)===o},t.isLazy=function(e){return k(e)===g},t.isMemo=function(e){return k(e)===h},t.isPortal=function(e){return k(e)===a},t.isProfiler=function(e){return k(e)===s},t.isStrictMode=function(e){return k(e)===i},t.isSuspense=function(e){return k(e)===f},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===o||e===d||e===s||e===i||e===f||e===m||"object"==typeof e&&null!==e&&(e.$$typeof===g||e.$$typeof===h||e.$$typeof===l||e.$$typeof===c||e.$$typeof===p||e.$$typeof===y||e.$$typeof===v||e.$$typeof===w||e.$$typeof===b)},t.typeOf=k},9864:(e,t,n)=>{"use strict";e.exports=n(9921)},8356:(e,t,n)=>{"use strict";function r(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}function a(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(){return i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i.apply(this,arguments)}var s=n(7294),l=n(5697),c=[],u=[];function d(e){var t=e(),n={loading:!0,loaded:null,error:null};return n.promise=t.then((function(e){return n.loading=!1,n.loaded=e,e})).catch((function(e){throw n.loading=!1,n.error=e,e})),n}function p(e){var t={loading:!1,loaded:{},error:null},n=[];try{Object.keys(e).forEach((function(r){var a=d(e[r]);a.loading?t.loading=!0:(t.loaded[r]=a.loaded,t.error=a.error),n.push(a.promise),a.promise.then((function(e){t.loaded[r]=e})).catch((function(e){t.error=e}))}))}catch(r){t.error=r}return t.promise=Promise.all(n).then((function(e){return t.loading=!1,e})).catch((function(e){throw t.loading=!1,e})),t}function f(e,t){return s.createElement((n=e)&&n.__esModule?n.default:n,t);var n}function m(e,t){var d,p;if(!t.loading)throw new Error("react-loadable requires a `loading` component");var m=i({loader:null,loading:null,delay:200,timeout:null,render:f,webpack:null,modules:null},t),h=null;function g(){return h||(h=e(m.loader)),h.promise}return c.push(g),"function"==typeof m.webpack&&u.push((function(){if((0,m.webpack)().every((function(e){return void 0!==e&&void 0!==n.m[e]})))return g()})),p=d=function(t){function n(n){var r;return o(a(a(r=t.call(this,n)||this)),"retry",(function(){r.setState({error:null,loading:!0,timedOut:!1}),h=e(m.loader),r._loadModule()})),g(),r.state={error:h.error,pastDelay:!1,timedOut:!1,loading:h.loading,loaded:h.loaded},r}r(n,t),n.preload=function(){return g()};var i=n.prototype;return i.UNSAFE_componentWillMount=function(){this._loadModule()},i.componentDidMount=function(){this._mounted=!0},i._loadModule=function(){var e=this;if(this.context.loadable&&Array.isArray(m.modules)&&m.modules.forEach((function(t){e.context.loadable.report(t)})),h.loading){var t=function(t){e._mounted&&e.setState(t)};"number"==typeof m.delay&&(0===m.delay?this.setState({pastDelay:!0}):this._delay=setTimeout((function(){t({pastDelay:!0})}),m.delay)),"number"==typeof m.timeout&&(this._timeout=setTimeout((function(){t({timedOut:!0})}),m.timeout));var n=function(){t({error:h.error,loaded:h.loaded,loading:h.loading}),e._clearTimeouts()};h.promise.then((function(){return n(),null})).catch((function(e){return n(),null}))}},i.componentWillUnmount=function(){this._mounted=!1,this._clearTimeouts()},i._clearTimeouts=function(){clearTimeout(this._delay),clearTimeout(this._timeout)},i.render=function(){return this.state.loading||this.state.error?s.createElement(m.loading,{isLoading:this.state.loading,pastDelay:this.state.pastDelay,timedOut:this.state.timedOut,error:this.state.error,retry:this.retry}):this.state.loaded?m.render(this.state.loaded,this.props):null},n}(s.Component),o(d,"contextTypes",{loadable:l.shape({report:l.func.isRequired})}),p}function h(e){return m(d,e)}h.Map=function(e){if("function"!=typeof e.render)throw new Error("LoadableMap requires a `render(loaded, props)` function");return m(p,e)};var g=function(e){function t(){return e.apply(this,arguments)||this}r(t,e);var n=t.prototype;return n.getChildContext=function(){return{loadable:{report:this.props.report}}},n.render=function(){return s.Children.only(this.props.children)},t}(s.Component);function b(e){for(var t=[];e.length;){var n=e.pop();t.push(n())}return Promise.all(t).then((function(){if(e.length)return b(e)}))}o(g,"propTypes",{report:l.func.isRequired}),o(g,"childContextTypes",{loadable:l.shape({report:l.func.isRequired}).isRequired}),h.Capture=g,h.preloadAll=function(){return new Promise((function(e,t){b(c).then(e,t)}))},h.preloadReady=function(){return new Promise((function(e,t){b(u).then(e,e)}))},e.exports=h},8790:(e,t,n)=>{"use strict";n.d(t,{H:()=>s,f:()=>i});var r=n(6550),a=n(7462),o=n(7294);function i(e,t,n){return void 0===n&&(n=[]),e.some((function(e){var a=e.path?(0,r.LX)(t,e):n.length?n[n.length-1].match:r.F0.computeRootMatch(t);return a&&(n.push({route:e,match:a}),e.routes&&i(e.routes,t,n)),a})),n}function s(e,t,n){return void 0===t&&(t={}),void 0===n&&(n={}),e?o.createElement(r.rs,n,e.map((function(e,n){return o.createElement(r.AW,{key:e.key||n,path:e.path,exact:e.exact,strict:e.strict,render:function(n){return e.render?e.render((0,a.Z)({},n,{},t,{route:e})):o.createElement(e.component,(0,a.Z)({},n,t,{route:e}))}})}))):null}},3727:(e,t,n)=>{"use strict";n.d(t,{OL:()=>v,VK:()=>u,rU:()=>g});var r=n(6550),a=n(5068),o=n(7294),i=n(9318),s=n(7462),l=n(3366),c=n(8776),u=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(t=e.call.apply(e,[this].concat(r))||this).history=(0,i.lX)(t.props),t}return(0,a.Z)(t,e),t.prototype.render=function(){return o.createElement(r.F0,{history:this.history,children:this.props.children})},t}(o.Component);o.Component;var d=function(e,t){return"function"==typeof e?e(t):e},p=function(e,t){return"string"==typeof e?(0,i.ob)(e,null,null,t):e},f=function(e){return e},m=o.forwardRef;void 0===m&&(m=f);var h=m((function(e,t){var n=e.innerRef,r=e.navigate,a=e.onClick,i=(0,l.Z)(e,["innerRef","navigate","onClick"]),c=i.target,u=(0,s.Z)({},i,{onClick:function(e){try{a&&a(e)}catch(t){throw e.preventDefault(),t}e.defaultPrevented||0!==e.button||c&&"_self"!==c||function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}(e)||(e.preventDefault(),r())}});return u.ref=f!==m&&t||n,o.createElement("a",u)}));var g=m((function(e,t){var n=e.component,a=void 0===n?h:n,u=e.replace,g=e.to,b=e.innerRef,y=(0,l.Z)(e,["component","replace","to","innerRef"]);return o.createElement(r.s6.Consumer,null,(function(e){e||(0,c.Z)(!1);var n=e.history,r=p(d(g,e.location),e.location),l=r?n.createHref(r):"",h=(0,s.Z)({},y,{href:l,navigate:function(){var t=d(g,e.location),r=(0,i.Ep)(e.location)===(0,i.Ep)(p(t));(u||r?n.replace:n.push)(t)}});return f!==m?h.ref=t||b:h.innerRef=b,o.createElement(a,h)}))})),b=function(e){return e},y=o.forwardRef;void 0===y&&(y=b);var v=y((function(e,t){var n=e["aria-current"],a=void 0===n?"page":n,i=e.activeClassName,u=void 0===i?"active":i,f=e.activeStyle,m=e.className,h=e.exact,v=e.isActive,w=e.location,k=e.sensitive,x=e.strict,S=e.style,E=e.to,_=e.innerRef,C=(0,l.Z)(e,["aria-current","activeClassName","activeStyle","className","exact","isActive","location","sensitive","strict","style","to","innerRef"]);return o.createElement(r.s6.Consumer,null,(function(e){e||(0,c.Z)(!1);var n=w||e.location,i=p(d(E,n),n),l=i.pathname,T=l&&l.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1"),j=T?(0,r.LX)(n.pathname,{path:T,exact:h,sensitive:k,strict:x}):null,N=!!(v?v(j,n):j),R="function"==typeof m?m(N):m,A="function"==typeof S?S(N):S;N&&(R=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.filter((function(e){return e})).join(" ")}(R,u),A=(0,s.Z)({},A,f));var L=(0,s.Z)({"aria-current":N&&a||null,className:R,style:A,to:i},C);return b!==y?L.ref=t||_:L.innerRef=_,o.createElement(g,L)}))}))},6550:(e,t,n)=>{"use strict";n.d(t,{AW:()=>E,F0:()=>v,LX:()=>S,TH:()=>P,k6:()=>L,rs:()=>R,s6:()=>y});var r=n(5068),a=n(7294),o=n(5697),i=n.n(o),s=n(9318),l=n(8776),c=n(7462),u=n(4779),d=n.n(u),p=(n(9864),n(3366)),f=(n(8679),1073741823),m="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==n.g?n.g:{};var h=a.createContext||function(e,t){var n,o,s="__create-react-context-"+function(){var e="__global_unique_id__";return m[e]=(m[e]||0)+1}()+"__",l=function(e){function n(){for(var t,n,r,a=arguments.length,o=new Array(a),i=0;i<a;i++)o[i]=arguments[i];return(t=e.call.apply(e,[this].concat(o))||this).emitter=(n=t.props.value,r=[],{on:function(e){r.push(e)},off:function(e){r=r.filter((function(t){return t!==e}))},get:function(){return n},set:function(e,t){n=e,r.forEach((function(e){return e(n,t)}))}}),t}(0,r.Z)(n,e);var a=n.prototype;return a.getChildContext=function(){var e;return(e={})[s]=this.emitter,e},a.componentWillReceiveProps=function(e){if(this.props.value!==e.value){var n,r=this.props.value,a=e.value;((o=r)===(i=a)?0!==o||1/o==1/i:o!=o&&i!=i)?n=0:(n="function"==typeof t?t(r,a):f,0!==(n|=0)&&this.emitter.set(e.value,n))}var o,i},a.render=function(){return this.props.children},n}(a.Component);l.childContextTypes=((n={})[s]=i().object.isRequired,n);var c=function(t){function n(){for(var e,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(e=t.call.apply(t,[this].concat(r))||this).observedBits=void 0,e.state={value:e.getValue()},e.onUpdate=function(t,n){0!=((0|e.observedBits)&n)&&e.setState({value:e.getValue()})},e}(0,r.Z)(n,t);var a=n.prototype;return a.componentWillReceiveProps=function(e){var t=e.observedBits;this.observedBits=null==t?f:t},a.componentDidMount=function(){this.context[s]&&this.context[s].on(this.onUpdate);var e=this.props.observedBits;this.observedBits=null==e?f:e},a.componentWillUnmount=function(){this.context[s]&&this.context[s].off(this.onUpdate)},a.getValue=function(){return this.context[s]?this.context[s].get():e},a.render=function(){return(e=this.props.children,Array.isArray(e)?e[0]:e)(this.state.value);var e},n}(a.Component);return c.contextTypes=((o={})[s]=i().object,o),{Provider:l,Consumer:c}},g=function(e){var t=h();return t.displayName=e,t},b=g("Router-History"),y=g("Router"),v=function(e){function t(t){var n;return(n=e.call(this,t)||this).state={location:t.history.location},n._isMounted=!1,n._pendingLocation=null,t.staticContext||(n.unlisten=t.history.listen((function(e){n._pendingLocation=e}))),n}(0,r.Z)(t,e),t.computeRootMatch=function(e){return{path:"/",url:"/",params:{},isExact:"/"===e}};var n=t.prototype;return n.componentDidMount=function(){var e=this;this._isMounted=!0,this.unlisten&&this.unlisten(),this.props.staticContext||(this.unlisten=this.props.history.listen((function(t){e._isMounted&&e.setState({location:t})}))),this._pendingLocation&&this.setState({location:this._pendingLocation})},n.componentWillUnmount=function(){this.unlisten&&(this.unlisten(),this._isMounted=!1,this._pendingLocation=null)},n.render=function(){return a.createElement(y.Provider,{value:{history:this.props.history,location:this.state.location,match:t.computeRootMatch(this.state.location.pathname),staticContext:this.props.staticContext}},a.createElement(b.Provider,{children:this.props.children||null,value:this.props.history}))},t}(a.Component);a.Component;a.Component;var w={},k=1e4,x=0;function S(e,t){void 0===t&&(t={}),("string"==typeof t||Array.isArray(t))&&(t={path:t});var n=t,r=n.path,a=n.exact,o=void 0!==a&&a,i=n.strict,s=void 0!==i&&i,l=n.sensitive,c=void 0!==l&&l;return[].concat(r).reduce((function(t,n){if(!n&&""!==n)return null;if(t)return t;var r=function(e,t){var n=""+t.end+t.strict+t.sensitive,r=w[n]||(w[n]={});if(r[e])return r[e];var a=[],o={regexp:d()(e,a,t),keys:a};return x<k&&(r[e]=o,x++),o}(n,{end:o,strict:s,sensitive:c}),a=r.regexp,i=r.keys,l=a.exec(e);if(!l)return null;var u=l[0],p=l.slice(1),f=e===u;return o&&!f?null:{path:n,url:"/"===n&&""===u?"/":u,isExact:f,params:i.reduce((function(e,t,n){return e[t.name]=p[n],e}),{})}}),null)}var E=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.Z)(t,e),t.prototype.render=function(){var e=this;return a.createElement(y.Consumer,null,(function(t){t||(0,l.Z)(!1);var n=e.props.location||t.location,r=e.props.computedMatch?e.props.computedMatch:e.props.path?S(n.pathname,e.props):t.match,o=(0,c.Z)({},t,{location:n,match:r}),i=e.props,s=i.children,u=i.component,d=i.render;return Array.isArray(s)&&function(e){return 0===a.Children.count(e)}(s)&&(s=null),a.createElement(y.Provider,{value:o},o.match?s?"function"==typeof s?s(o):s:u?a.createElement(u,o):d?d(o):null:"function"==typeof s?s(o):null)}))},t}(a.Component);function _(e){return"/"===e.charAt(0)?e:"/"+e}function C(e,t){if(!e)return t;var n=_(e);return 0!==t.pathname.indexOf(n)?t:(0,c.Z)({},t,{pathname:t.pathname.substr(n.length)})}function T(e){return"string"==typeof e?e:(0,s.Ep)(e)}function j(e){return function(){(0,l.Z)(!1)}}function N(){}a.Component;var R=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.Z)(t,e),t.prototype.render=function(){var e=this;return a.createElement(y.Consumer,null,(function(t){t||(0,l.Z)(!1);var n,r,o=e.props.location||t.location;return a.Children.forEach(e.props.children,(function(e){if(null==r&&a.isValidElement(e)){n=e;var i=e.props.path||e.props.from;r=i?S(o.pathname,(0,c.Z)({},e.props,{path:i})):t.match}})),r?a.cloneElement(n,{location:o,computedMatch:r}):null}))},t}(a.Component);var A=a.useContext;function L(){return A(b)}function P(){return A(y).location}},5251:(e,t,n)=>{"use strict";var r=n(7294),a=Symbol.for("react.element"),o=Symbol.for("react.fragment"),i=Object.prototype.hasOwnProperty,s=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,l={key:!0,ref:!0,__self:!0,__source:!0};function c(e,t,n){var r,o={},c=null,u=null;for(r in void 0!==n&&(c=""+n),void 0!==t.key&&(c=""+t.key),void 0!==t.ref&&(u=t.ref),t)i.call(t,r)&&!l.hasOwnProperty(r)&&(o[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps)void 0===o[r]&&(o[r]=t[r]);return{$$typeof:a,type:e,key:c,ref:u,props:o,_owner:s.current}}t.Fragment=o,t.jsx=c,t.jsxs=c},2408:(e,t)=>{"use strict";var n=Symbol.for("react.element"),r=Symbol.for("react.portal"),a=Symbol.for("react.fragment"),o=Symbol.for("react.strict_mode"),i=Symbol.for("react.profiler"),s=Symbol.for("react.provider"),l=Symbol.for("react.context"),c=Symbol.for("react.forward_ref"),u=Symbol.for("react.suspense"),d=Symbol.for("react.memo"),p=Symbol.for("react.lazy"),f=Symbol.iterator;var m={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},h=Object.assign,g={};function b(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||m}function y(){}function v(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||m}b.prototype.isReactComponent={},b.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},b.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},y.prototype=b.prototype;var w=v.prototype=new y;w.constructor=v,h(w,b.prototype),w.isPureReactComponent=!0;var k=Array.isArray,x=Object.prototype.hasOwnProperty,S={current:null},E={key:!0,ref:!0,__self:!0,__source:!0};function _(e,t,r){var a,o={},i=null,s=null;if(null!=t)for(a in void 0!==t.ref&&(s=t.ref),void 0!==t.key&&(i=""+t.key),t)x.call(t,a)&&!E.hasOwnProperty(a)&&(o[a]=t[a]);var l=arguments.length-2;if(1===l)o.children=r;else if(1<l){for(var c=Array(l),u=0;u<l;u++)c[u]=arguments[u+2];o.children=c}if(e&&e.defaultProps)for(a in l=e.defaultProps)void 0===o[a]&&(o[a]=l[a]);return{$$typeof:n,type:e,key:i,ref:s,props:o,_owner:S.current}}function C(e){return"object"==typeof e&&null!==e&&e.$$typeof===n}var T=/\/+/g;function j(e,t){return"object"==typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,(function(e){return t[e]}))}(""+e.key):t.toString(36)}function N(e,t,a,o,i){var s=typeof e;"undefined"!==s&&"boolean"!==s||(e=null);var l=!1;if(null===e)l=!0;else switch(s){case"string":case"number":l=!0;break;case"object":switch(e.$$typeof){case n:case r:l=!0}}if(l)return i=i(l=e),e=""===o?"."+j(l,0):o,k(i)?(a="",null!=e&&(a=e.replace(T,"$&/")+"/"),N(i,t,a,"",(function(e){return e}))):null!=i&&(C(i)&&(i=function(e,t){return{$$typeof:n,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(i,a+(!i.key||l&&l.key===i.key?"":(""+i.key).replace(T,"$&/")+"/")+e)),t.push(i)),1;if(l=0,o=""===o?".":o+":",k(e))for(var c=0;c<e.length;c++){var u=o+j(s=e[c],c);l+=N(s,t,a,u,i)}else if(u=function(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=f&&e[f]||e["@@iterator"])?e:null}(e),"function"==typeof u)for(e=u.call(e),c=0;!(s=e.next()).done;)l+=N(s=s.value,t,a,u=o+j(s,c++),i);else if("object"===s)throw t=String(e),Error("Objects are not valid as a React child (found: "+("[object Object]"===t?"object with keys {"+Object.keys(e).join(", ")+"}":t)+"). If you meant to render a collection of children, use an array instead.");return l}function R(e,t,n){if(null==e)return e;var r=[],a=0;return N(e,r,"","",(function(e){return t.call(n,e,a++)})),r}function A(e){if(-1===e._status){var t=e._result;(t=t()).then((function(t){0!==e._status&&-1!==e._status||(e._status=1,e._result=t)}),(function(t){0!==e._status&&-1!==e._status||(e._status=2,e._result=t)})),-1===e._status&&(e._status=0,e._result=t)}if(1===e._status)return e._result.default;throw e._result}var L={current:null},P={transition:null},O={ReactCurrentDispatcher:L,ReactCurrentBatchConfig:P,ReactCurrentOwner:S};t.Children={map:R,forEach:function(e,t,n){R(e,(function(){t.apply(this,arguments)}),n)},count:function(e){var t=0;return R(e,(function(){t++})),t},toArray:function(e){return R(e,(function(e){return e}))||[]},only:function(e){if(!C(e))throw Error("React.Children.only expected to receive a single React element child.");return e}},t.Component=b,t.Fragment=a,t.Profiler=i,t.PureComponent=v,t.StrictMode=o,t.Suspense=u,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=O,t.cloneElement=function(e,t,r){if(null==e)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+e+".");var a=h({},e.props),o=e.key,i=e.ref,s=e._owner;if(null!=t){if(void 0!==t.ref&&(i=t.ref,s=S.current),void 0!==t.key&&(o=""+t.key),e.type&&e.type.defaultProps)var l=e.type.defaultProps;for(c in t)x.call(t,c)&&!E.hasOwnProperty(c)&&(a[c]=void 0===t[c]&&void 0!==l?l[c]:t[c])}var c=arguments.length-2;if(1===c)a.children=r;else if(1<c){l=Array(c);for(var u=0;u<c;u++)l[u]=arguments[u+2];a.children=l}return{$$typeof:n,type:e.type,key:o,ref:i,props:a,_owner:s}},t.createContext=function(e){return(e={$$typeof:l,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null}).Provider={$$typeof:s,_context:e},e.Consumer=e},t.createElement=_,t.createFactory=function(e){var t=_.bind(null,e);return t.type=e,t},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:c,render:e}},t.isValidElement=C,t.lazy=function(e){return{$$typeof:p,_payload:{_status:-1,_result:e},_init:A}},t.memo=function(e,t){return{$$typeof:d,type:e,compare:void 0===t?null:t}},t.startTransition=function(e){var t=P.transition;P.transition={};try{e()}finally{P.transition=t}},t.unstable_act=function(){throw Error("act(...) is not supported in production builds of React.")},t.useCallback=function(e,t){return L.current.useCallback(e,t)},t.useContext=function(e){return L.current.useContext(e)},t.useDebugValue=function(){},t.useDeferredValue=function(e){return L.current.useDeferredValue(e)},t.useEffect=function(e,t){return L.current.useEffect(e,t)},t.useId=function(){return L.current.useId()},t.useImperativeHandle=function(e,t,n){return L.current.useImperativeHandle(e,t,n)},t.useInsertionEffect=function(e,t){return L.current.useInsertionEffect(e,t)},t.useLayoutEffect=function(e,t){return L.current.useLayoutEffect(e,t)},t.useMemo=function(e,t){return L.current.useMemo(e,t)},t.useReducer=function(e,t,n){return L.current.useReducer(e,t,n)},t.useRef=function(e){return L.current.useRef(e)},t.useState=function(e){return L.current.useState(e)},t.useSyncExternalStore=function(e,t,n){return L.current.useSyncExternalStore(e,t,n)},t.useTransition=function(){return L.current.useTransition()},t.version="18.2.0"},7294:(e,t,n)=>{"use strict";e.exports=n(2408)},5893:(e,t,n)=>{"use strict";e.exports=n(5251)},53:(e,t)=>{"use strict";function n(e,t){var n=e.length;e.push(t);e:for(;0<n;){var r=n-1>>>1,a=e[r];if(!(0<o(a,t)))break e;e[r]=t,e[n]=a,n=r}}function r(e){return 0===e.length?null:e[0]}function a(e){if(0===e.length)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;e:for(var r=0,a=e.length,i=a>>>1;r<i;){var s=2*(r+1)-1,l=e[s],c=s+1,u=e[c];if(0>o(l,n))c<a&&0>o(u,l)?(e[r]=u,e[c]=n,r=c):(e[r]=l,e[s]=n,r=s);else{if(!(c<a&&0>o(u,n)))break e;e[r]=u,e[c]=n,r=c}}}return t}function o(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}if("object"==typeof performance&&"function"==typeof performance.now){var i=performance;t.unstable_now=function(){return i.now()}}else{var s=Date,l=s.now();t.unstable_now=function(){return s.now()-l}}var c=[],u=[],d=1,p=null,f=3,m=!1,h=!1,g=!1,b="function"==typeof setTimeout?setTimeout:null,y="function"==typeof clearTimeout?clearTimeout:null,v="undefined"!=typeof setImmediate?setImmediate:null;function w(e){for(var t=r(u);null!==t;){if(null===t.callback)a(u);else{if(!(t.startTime<=e))break;a(u),t.sortIndex=t.expirationTime,n(c,t)}t=r(u)}}function k(e){if(g=!1,w(e),!h)if(null!==r(c))h=!0,P(x);else{var t=r(u);null!==t&&O(k,t.startTime-e)}}function x(e,n){h=!1,g&&(g=!1,y(C),C=-1),m=!0;var o=f;try{for(w(n),p=r(c);null!==p&&(!(p.expirationTime>n)||e&&!N());){var i=p.callback;if("function"==typeof i){p.callback=null,f=p.priorityLevel;var s=i(p.expirationTime<=n);n=t.unstable_now(),"function"==typeof s?p.callback=s:p===r(c)&&a(c),w(n)}else a(c);p=r(c)}if(null!==p)var l=!0;else{var d=r(u);null!==d&&O(k,d.startTime-n),l=!1}return l}finally{p=null,f=o,m=!1}}"undefined"!=typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);var S,E=!1,_=null,C=-1,T=5,j=-1;function N(){return!(t.unstable_now()-j<T)}function R(){if(null!==_){var e=t.unstable_now();j=e;var n=!0;try{n=_(!0,e)}finally{n?S():(E=!1,_=null)}}else E=!1}if("function"==typeof v)S=function(){v(R)};else if("undefined"!=typeof MessageChannel){var A=new MessageChannel,L=A.port2;A.port1.onmessage=R,S=function(){L.postMessage(null)}}else S=function(){b(R,0)};function P(e){_=e,E||(E=!0,S())}function O(e,n){C=b((function(){e(t.unstable_now())}),n)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_continueExecution=function(){h||m||(h=!0,P(x))},t.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):T=0<e?Math.floor(1e3/e):5},t.unstable_getCurrentPriorityLevel=function(){return f},t.unstable_getFirstCallbackNode=function(){return r(c)},t.unstable_next=function(e){switch(f){case 1:case 2:case 3:var t=3;break;default:t=f}var n=f;f=t;try{return e()}finally{f=n}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=function(){},t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=f;f=e;try{return t()}finally{f=n}},t.unstable_scheduleCallback=function(e,a,o){var i=t.unstable_now();switch("object"==typeof o&&null!==o?o="number"==typeof(o=o.delay)&&0<o?i+o:i:o=i,e){case 1:var s=-1;break;case 2:s=250;break;case 5:s=1073741823;break;case 4:s=1e4;break;default:s=5e3}return e={id:d++,callback:a,priorityLevel:e,startTime:o,expirationTime:s=o+s,sortIndex:-1},o>i?(e.sortIndex=o,n(u,e),null===r(c)&&e===r(u)&&(g?(y(C),C=-1):g=!0,O(k,o-i))):(e.sortIndex=s,n(c,e),h||m||(h=!0,P(x))),e},t.unstable_shouldYield=N,t.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}},3840:(e,t,n)=>{"use strict";e.exports=n(53)},6774:e=>{e.exports=function(e,t,n,r){var a=n?n.call(r,e,t):void 0;if(void 0!==a)return!!a;if(e===t)return!0;if("object"!=typeof e||!e||"object"!=typeof t||!t)return!1;var o=Object.keys(e),i=Object.keys(t);if(o.length!==i.length)return!1;for(var s=Object.prototype.hasOwnProperty.bind(t),l=0;l<o.length;l++){var c=o[l];if(!s(c))return!1;var u=e[c],d=t[c];if(!1===(a=n?n.call(r,u,d,c):void 0)||void 0===a&&u!==d)return!1}return!0}},6809:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={title:"Middy.js",tagline:"The stylish Node.js middleware engine for AWS Lambda",url:"https://middy.js.org",baseUrl:"/",onBrokenLinks:"throw",onBrokenMarkdownLinks:"warn",favicon:"img/favicon.svg",organizationName:"middyjs",projectName:"middy",plugins:["/home/runner/work/middy/middy/website/node_modules/docusaurus-lunr-search/src/index.js"],presets:[["classic",{docs:{sidebarCollapsible:!0,showLastUpdateTime:!0,sidebarPath:"/home/runner/work/middy/middy/website/sidebars.js",editUrl:"https://github.com/middyjs/middy/tree/main/website/",remarkPlugins:[[null,{sync:!0}]]},pages:{remarkPlugins:[null]},theme:{customCss:"/home/runner/work/middy/middy/website/src/css/custom.css"}}]],themeConfig:{navbar:{title:"Middy",logo:{alt:"Middy Logo",src:"img/middy-logo-small.svg"},items:[{type:"doc",docId:"intro/intro",position:"left",label:"Documentation"},{type:"doc",docId:"middlewares/intro",position:"left",label:"Middlewares"},{type:"doc",docId:"events/intro",position:"left",label:"AWS Events"},{href:"https://github.com/middyjs/middy",label:"GitHub",position:"right"}],hideOnScroll:!1},footer:{style:"dark",links:[{title:"Docs",items:[{label:"Documentation",to:"/docs"},{label:"Middlewares",to:"/docs/category/middlewares"},{label:"AWS Events",to:"/docs/events/intro"}]},{title:"Community & support",items:[{label:"GitHub",href:"https://github.com/middyjs/middy"},{label:"Stack Overflow",href:"https://stackoverflow.com/questions/tagged/middy?sort=Newest&uqlId=35052"},{label:"Gitter",href:"https://gitter.im/middyjs/Lobby"}]},{title:"More",items:[{label:"npm",href:"https://www.npmjs.com/package/@middy/core"}]}],copyright:"Copyright \xa9 2023 Middy - Built with Docusaurus. - Icons by feathericons.com"},prism:{theme:{plain:{color:"#0f172a",backgroundColor:"#f1f5f9"},styles:[{types:["prolog"],style:{color:"#000080"}},{types:["comment"],style:{color:"#6A9955"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"#0c4a6e"}},{types:["number","inserted"],style:{color:"#B5CEA8"}},{types:["constant"],style:{color:"#0f172a"}},{types:["attr-name","variable"],style:{color:"#0c4a6e"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"#64748b"}},{types:["selector"],style:{color:"#D7BA7D"}},{types:["tag"],style:{color:"#0ea5e9"}},{types:["tag"],languages:["markup"],style:{color:"#0ea5e9"}},{types:["punctuation","operator"],style:{color:"#475569"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"#0e7490"}},{types:["class-name"],style:{color:"#0ea5e9"}},{types:["char"],style:{color:"#D16969"}}]},darkTheme:{plain:{color:"#d6deeb",backgroundColor:"#011627"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)",fontStyle:"italic"}},{types:["inserted","attr-name"],style:{color:"rgb(173, 219, 103)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(99, 119, 119)",fontStyle:"italic"}},{types:["string","url"],style:{color:"rgb(173, 219, 103)"}},{types:["variable"],style:{color:"rgb(214, 222, 235)"}},{types:["number"],style:{color:"rgb(247, 140, 108)"}},{types:["builtin","char","constant","function"],style:{color:"rgb(130, 170, 255)"}},{types:["punctuation"],style:{color:"rgb(199, 146, 234)"}},{types:["selector","doctype"],style:{color:"rgb(199, 146, 234)",fontStyle:"italic"}},{types:["class-name"],style:{color:"rgb(255, 203, 139)"}},{types:["tag","operator","keyword"],style:{color:"rgb(127, 219, 202)"}},{types:["boolean"],style:{color:"rgb(255, 88, 116)"}},{types:["property"],style:{color:"rgb(128, 203, 196)"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)"}}]},additionalLanguages:[],magicComments:[{className:"theme-code-block-highlighted-line",line:"highlight-next-line",block:{start:"highlight-start",end:"highlight-end"}}]},colorMode:{defaultMode:"light",disableSwitch:!1,respectPrefersColorScheme:!1},docs:{versionPersistence:"localStorage",sidebar:{hideable:!1,autoCollapseCategories:!1}},metadata:[],tableOfContents:{minHeadingLevel:2,maxHeadingLevel:3}},baseUrlIssueBanner:!0,i18n:{defaultLocale:"en",path:"i18n",locales:["en"],localeConfigs:{}},onDuplicateRoutes:"warn",staticDirectories:["static"],customFields:{},themes:[],scripts:[],headTags:[],stylesheets:[],clientModules:[],titleDelimiter:"|",noIndex:!1,markdown:{format:"mdx",mermaid:!1,mdx1Compat:{comments:!0,admonitions:!0,headingIds:!0}}}},7462:(e,t,n)=>{"use strict";function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},r.apply(this,arguments)}n.d(t,{Z:()=>r})},5068:(e,t,n)=>{"use strict";function r(e,t){return r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},r(e,t)}function a(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,r(e,t)}n.d(t,{Z:()=>a})},3366:(e,t,n)=>{"use strict";function r(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}n.d(t,{Z:()=>r})},2573:(e,t,n)=>{"use strict";n.d(t,{p1:()=>T,y$:()=>ee});var r,a,o,i,s,l,c,u=n(7294),d=n(6010),p=Object.create,f=Object.defineProperty,m=Object.defineProperties,h=Object.getOwnPropertyDescriptor,g=Object.getOwnPropertyDescriptors,b=Object.getOwnPropertyNames,y=Object.getOwnPropertySymbols,v=Object.getPrototypeOf,w=Object.prototype.hasOwnProperty,k=Object.prototype.propertyIsEnumerable,x=(e,t,n)=>t in e?f(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,S=(e,t)=>{for(var n in t||(t={}))w.call(t,n)&&x(e,n,t[n]);if(y)for(var n of y(t))k.call(t,n)&&x(e,n,t[n]);return e},E=(e,t)=>m(e,g(t)),_=(e,t)=>{var n={};for(var r in e)w.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&y)for(var r of y(e))t.indexOf(r)<0&&k.call(e,r)&&(n[r]=e[r]);return n},C=(r={"../../node_modules/.pnpm/prismjs@1.29.0_patch_hash=vrxx3pzkik6jpmgpayxfjunetu/node_modules/prismjs/prism.js"(e,t){var n=function(){var e=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,n={},r={util:{encode:function e(t){return t instanceof a?new a(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&").replace(/</g,"<").replace(/\u00a0/g," ")},type:function(e){return Object.prototype.toString.call(e).slice(8,-1)},objId:function(e){return e.__id||Object.defineProperty(e,"__id",{value:++t}),e.__id},clone:function e(t,n){var a,o;switch(n=n||{},r.util.type(t)){case"Object":if(o=r.util.objId(t),n[o])return n[o];for(var i in a={},n[o]=a,t)t.hasOwnProperty(i)&&(a[i]=e(t[i],n));return a;case"Array":return o=r.util.objId(t),n[o]?n[o]:(a=[],n[o]=a,t.forEach((function(t,r){a[r]=e(t,n)})),a);default:return t}},getLanguage:function(t){for(;t;){var n=e.exec(t.className);if(n)return n[1].toLowerCase();t=t.parentElement}return"none"},setLanguage:function(t,n){t.className=t.className.replace(RegExp(e,"gi"),""),t.classList.add("language-"+n)},isActive:function(e,t,n){for(var r="no-"+t;e;){var a=e.classList;if(a.contains(t))return!0;if(a.contains(r))return!1;e=e.parentElement}return!!n}},languages:{plain:n,plaintext:n,text:n,txt:n,extend:function(e,t){var n=r.util.clone(r.languages[e]);for(var a in t)n[a]=t[a];return n},insertBefore:function(e,t,n,a){var o=(a=a||r.languages)[e],i={};for(var s in o)if(o.hasOwnProperty(s)){if(s==t)for(var l in n)n.hasOwnProperty(l)&&(i[l]=n[l]);n.hasOwnProperty(s)||(i[s]=o[s])}var c=a[e];return a[e]=i,r.languages.DFS(r.languages,(function(t,n){n===c&&t!=e&&(this[t]=i)})),i},DFS:function e(t,n,a,o){o=o||{};var i=r.util.objId;for(var s in t)if(t.hasOwnProperty(s)){n.call(t,s,t[s],a||s);var l=t[s],c=r.util.type(l);"Object"!==c||o[i(l)]?"Array"!==c||o[i(l)]||(o[i(l)]=!0,e(l,n,s,o)):(o[i(l)]=!0,e(l,n,null,o))}}},plugins:{},highlight:function(e,t,n){var o={code:e,grammar:t,language:n};if(r.hooks.run("before-tokenize",o),!o.grammar)throw new Error('The language "'+o.language+'" has no grammar.');return o.tokens=r.tokenize(o.code,o.grammar),r.hooks.run("after-tokenize",o),a.stringify(r.util.encode(o.tokens),o.language)},tokenize:function(e,t){var n=t.rest;if(n){for(var r in n)t[r]=n[r];delete t.rest}var a=new s;return l(a,a.head,e),i(e,a,t,a.head,0),function(e){for(var t=[],n=e.head.next;n!==e.tail;)t.push(n.value),n=n.next;return t}(a)},hooks:{all:{},add:function(e,t){var n=r.hooks.all;n[e]=n[e]||[],n[e].push(t)},run:function(e,t){var n=r.hooks.all[e];if(n&&n.length)for(var a,o=0;a=n[o++];)a(t)}},Token:a};function a(e,t,n,r){this.type=e,this.content=t,this.alias=n,this.length=0|(r||"").length}function o(e,t,n,r){e.lastIndex=t;var a=e.exec(n);if(a&&r&&a[1]){var o=a[1].length;a.index+=o,a[0]=a[0].slice(o)}return a}function i(e,t,n,s,u,d){for(var p in n)if(n.hasOwnProperty(p)&&n[p]){var f=n[p];f=Array.isArray(f)?f:[f];for(var m=0;m<f.length;++m){if(d&&d.cause==p+","+m)return;var h=f[m],g=h.inside,b=!!h.lookbehind,y=!!h.greedy,v=h.alias;if(y&&!h.pattern.global){var w=h.pattern.toString().match(/[imsuy]*$/)[0];h.pattern=RegExp(h.pattern.source,w+"g")}for(var k=h.pattern||h,x=s.next,S=u;x!==t.tail&&!(d&&S>=d.reach);S+=x.value.length,x=x.next){var E=x.value;if(t.length>e.length)return;if(!(E instanceof a)){var _,C=1;if(y){if(!(_=o(k,S,e,b))||_.index>=e.length)break;var T=_.index,j=_.index+_[0].length,N=S;for(N+=x.value.length;T>=N;)N+=(x=x.next).value.length;if(S=N-=x.value.length,x.value instanceof a)continue;for(var R=x;R!==t.tail&&(N<j||"string"==typeof R.value);R=R.next)C++,N+=R.value.length;C--,E=e.slice(S,N),_.index-=S}else if(!(_=o(k,0,E,b)))continue;T=_.index;var A=_[0],L=E.slice(0,T),P=E.slice(T+A.length),O=S+E.length;d&&O>d.reach&&(d.reach=O);var I=x.prev;if(L&&(I=l(t,I,L),S+=L.length),c(t,I,C),x=l(t,I,new a(p,g?r.tokenize(A,g):A,v,A)),P&&l(t,x,P),C>1){var D={cause:p+","+m,reach:O};i(e,t,n,x.prev,S,D),d&&D.reach>d.reach&&(d.reach=D.reach)}}}}}}function s(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function l(e,t,n){var r=t.next,a={value:n,prev:t,next:r};return t.next=a,r.prev=a,e.length++,a}function c(e,t,n){for(var r=t.next,a=0;a<n&&r!==e.tail;a++)r=r.next;t.next=r,r.prev=t,e.length-=a}return a.stringify=function e(t,n){if("string"==typeof t)return t;if(Array.isArray(t)){var a="";return t.forEach((function(t){a+=e(t,n)})),a}var o={type:t.type,content:e(t.content,n),tag:"span",classes:["token",t.type],attributes:{},language:n},i=t.alias;i&&(Array.isArray(i)?Array.prototype.push.apply(o.classes,i):o.classes.push(i)),r.hooks.run("wrap",o);var s="";for(var l in o.attributes)s+=" "+l+'="'+(o.attributes[l]||"").replace(/"/g,""")+'"';return"<"+o.tag+' class="'+o.classes.join(" ")+'"'+s+">"+o.content+"</"+o.tag+">"},r}();t.exports=n,n.default=n}},function(){return a||(0,r[b(r)[0]])((a={exports:{}}).exports,a),a.exports}),T=((e,t,n)=>(n=null!=e?p(v(e)):{},((e,t,n,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let a of b(t))w.call(e,a)||a===n||f(e,a,{get:()=>t[a],enumerable:!(r=h(t,a))||r.enumerable});return e})(!t&&e&&e.__esModule?n:f(n,"default",{value:e,enumerable:!0}),e)))(C());o=T,i={pattern:/\\[\\(){}[\]^$+*?|.]/,alias:"escape"},l="(?:[^\\\\-]|"+(s=/\\(?:x[\da-fA-F]{2}|u[\da-fA-F]{4}|u\{[\da-fA-F]+\}|0[0-7]{0,2}|[123][0-7]{2}|c[a-zA-Z]|.)/).source+")",l=RegExp(l+"-"+l),c={pattern:/(<|')[^<>']+(?=[>']$)/,lookbehind:!0,alias:"variable"},o.languages.regex={"char-class":{pattern:/((?:^|[^\\])(?:\\\\)*)\[(?:[^\\\]]|\\[\s\S])*\]/,lookbehind:!0,inside:{"char-class-negation":{pattern:/(^\[)\^/,lookbehind:!0,alias:"operator"},"char-class-punctuation":{pattern:/^\[|\]$/,alias:"punctuation"},range:{pattern:l,inside:{escape:s,"range-punctuation":{pattern:/-/,alias:"operator"}}},"special-escape":i,"char-set":{pattern:/\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},escape:s}},"special-escape":i,"char-set":{pattern:/\.|\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},backreference:[{pattern:/\\(?![123][0-7]{2})[1-9]/,alias:"keyword"},{pattern:/\\k<[^<>']+>/,alias:"keyword",inside:{"group-name":c}}],anchor:{pattern:/[$^]|\\[ABbGZz]/,alias:"function"},escape:s,group:[{pattern:/\((?:\?(?:<[^<>']+>|'[^<>']+'|[>:]|<?[=!]|[idmnsuxU]+(?:-[idmnsuxU]+)?:?))?/,alias:"punctuation",inside:{"group-name":c}},{pattern:/\)/,alias:"punctuation"}],quantifier:{pattern:/(?:[+*?]|\{\d+(?:,\d*)?\})[?+]?/,alias:"number"},alternation:{pattern:/\|/,alias:"keyword"}},T.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},T.languages.javascript=T.languages.extend("clike",{"class-name":[T.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),T.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,T.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp(/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source+/\//.source+"(?:"+/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}/.source+"|"+/(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source+")"+/(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:T.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:T.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:T.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:T.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:T.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),T.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:T.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),T.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),T.languages.markup&&(T.languages.markup.tag.addInlined("script","javascript"),T.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),T.languages.js=T.languages.javascript,T.languages.actionscript=T.languages.extend("javascript",{keyword:/\b(?:as|break|case|catch|class|const|default|delete|do|dynamic|each|else|extends|final|finally|for|function|get|if|implements|import|in|include|instanceof|interface|internal|is|namespace|native|new|null|override|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|use|var|void|while|with)\b/,operator:/\+\+|--|(?:[+\-*\/%^]|&&?|\|\|?|<<?|>>?>?|[!=]=?)=?|[~?@]/}),T.languages.actionscript["class-name"].alias="function",delete T.languages.actionscript.parameter,delete T.languages.actionscript["literal-property"],T.languages.markup&&T.languages.insertBefore("actionscript","string",{xml:{pattern:/(^|[^.])<\/?\w+(?:\s+[^\s>\/=]+=("|')(?:\\[\s\S]|(?!\2)[^\\])*\2)*\s*\/?>/,lookbehind:!0,inside:T.languages.markup}}),function(e){var t=/#(?!\{).+/,n={pattern:/#\{[^}]+\}/,alias:"variable"};e.languages.coffeescript=e.languages.extend("javascript",{comment:t,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:n}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),e.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:t,interpolation:n}}}),e.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:e.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:n}}]}),e.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete e.languages.coffeescript["template-string"],e.languages.coffee=e.languages.coffeescript}(T),function(e){var t=e.languages.javadoclike={parameter:{pattern:/(^[\t ]*(?:\/{3}|\*|\/\*\*)\s*@(?:arg|arguments|param)\s+)\w+/m,lookbehind:!0},keyword:{pattern:/(^[\t ]*(?:\/{3}|\*|\/\*\*)\s*|\{)@[a-z][a-zA-Z-]+\b/m,lookbehind:!0},punctuation:/[{}]/};Object.defineProperty(t,"addSupport",{value:function(t,n){(t="string"==typeof t?[t]:t).forEach((function(t){var r=function(e){e.inside||(e.inside={}),e.inside.rest=n},a="doc-comment";if(o=e.languages[t]){var o,i=o[a];if((i=i||(o=e.languages.insertBefore(t,"comment",{"doc-comment":{pattern:/(^|[^\\])\/\*\*[^/][\s\S]*?(?:\*\/|$)/,lookbehind:!0,alias:"comment"}}))[a])instanceof RegExp&&(i=o[a]={pattern:i}),Array.isArray(i))for(var s=0,l=i.length;s<l;s++)i[s]instanceof RegExp&&(i[s]={pattern:i[s]}),r(i[s]);else r(i)}}))}}),t.addSupport(["java","javascript","php"],t)}(T),function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;(t=(e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:RegExp("@[\\w-](?:"+/[^;{\s"']|\s+(?!\s)/.source+"|"+t.source+")*?"+/(?:;|(?=\s*\{))/.source),inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+t.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+t.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+t.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:t,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css,e.languages.markup))&&(t.tag.addInlined("style","css"),t.tag.addAttribute("style","css"))}(T),function(e){var t=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,n=(t=(e.languages.css.selector={pattern:e.languages.css.selector.pattern,lookbehind:!0,inside:t={"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+/,class:/\.[-\w]+/,id:/#[-\w]+/,attribute:{pattern:RegExp("\\[(?:[^[\\]\"']|"+t.source+")*\\]"),greedy:!0,inside:{punctuation:/^\[|\]$/,"case-sensitivity":{pattern:/(\s)[si]$/i,lookbehind:!0,alias:"keyword"},namespace:{pattern:/^(\s*)(?:(?!\s)[-*\w\xA0-\uFFFF])*\|(?!=)/,lookbehind:!0,inside:{punctuation:/\|$/}},"attr-name":{pattern:/^(\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+/,lookbehind:!0},"attr-value":[t,{pattern:/(=\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+(?=\s*$)/,lookbehind:!0}],operator:/[|~*^$]?=/}},"n-th":[{pattern:/(\(\s*)[+-]?\d*[\dn](?:\s*[+-]\s*\d+)?(?=\s*\))/,lookbehind:!0,inside:{number:/[\dn]+/,operator:/[+-]/}},{pattern:/(\(\s*)(?:even|odd)(?=\s*\))/i,lookbehind:!0}],combinator:/>|\+|~|\|\|/,punctuation:/[(),]/}},e.languages.css.atrule.inside["selector-function-argument"].inside=t,e.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}}),{pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0}),{pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0});e.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[{pattern:/(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|RebeccaPurple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:t,number:n,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:t,number:n})}(T),function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+n.source+"(?:[ \t]+"+t.source+")?|"+t.source+"(?:[ \t]+"+n.source+")?)",a=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-]<PLAIN>)(?:[ \t]*(?:(?![#:])<PLAIN>|:<PLAIN>))*/.source.replace(/<PLAIN>/g,(function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source})),o=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function i(e,t){t=(t||"").replace(/m/g,"")+"m";var n=/([:\-,[{]\s*(?:\s<<prop>>[ \t]+)?)(?:<<value>>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<<prop>>/g,(function(){return r})).replace(/<<value>>/g,(function(){return e}));return RegExp(n,t)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<<prop>>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<<prop>>/g,(function(){return r}))),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<<prop>>[ \t]+)?)<<key>>(?=\s*:\s)/.source.replace(/<<prop>>/g,(function(){return r})).replace(/<<key>>/g,(function(){return"(?:"+a+"|"+o+")"}))),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:i(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:i(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:i(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:i(o),lookbehind:!0,greedy:!0},number:{pattern:i(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(T),T.languages.markup={comment:{pattern:/<!--(?:(?!<!--)[\s\S])*?-->/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^<!|>$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},T.languages.markup.tag.inside["attr-value"].inside.entity=T.languages.markup.entity,T.languages.markup.doctype.inside["internal-subset"].inside=T.languages.markup,T.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(T.languages.markup.tag,"addInlined",{value:function(e,t){var n;(t=((n=((n={})["language-"+t]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:T.languages[t]},n.cdata=/^<!\[CDATA\[|\]\]>$/i,{"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:n}}))["language-"+t]={pattern:/[\s\S]+/,inside:T.languages[t]},{}))[e]={pattern:RegExp(/(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:n},T.languages.insertBefore("markup","cdata",t)}}),Object.defineProperty(T.languages.markup.tag,"addAttribute",{value:function(e,t){T.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:T.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),T.languages.html=T.languages.markup,T.languages.mathml=T.languages.markup,T.languages.svg=T.languages.markup,T.languages.xml=T.languages.extend("markup",{}),T.languages.ssml=T.languages.xml,T.languages.atom=T.languages.xml,T.languages.rss=T.languages.xml,function(e){var t=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function n(e){return e=e.replace(/<inner>/g,(function(){return t})),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+e+")")}var r=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,a=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,(function(){return r})),o=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source,i=(e.languages.markdown=e.languages.extend("markup",{}),e.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+a+o+"(?:"+a+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+a+o+")(?:"+a+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(r),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+a+")"+o+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+a+"$"),inside:{"table-header":{pattern:RegExp(r),alias:"important",inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:n(/\b__(?:(?!_)<inner>|_(?:(?!_)<inner>)+_)+__\b|\*\*(?:(?!\*)<inner>|\*(?:(?!\*)<inner>)+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(/\b_(?:(?!_)<inner>|__(?:(?!_)<inner>)+__)+_\b|\*(?:(?!\*)<inner>|\*\*(?:(?!\*)<inner>)+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(/(~~?)(?:(?!~)<inner>)+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:n(/!?\[(?:(?!\])<inner>)+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\])<inner>)+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach((function(t){["url","bold","italic","strike","code-snippet"].forEach((function(n){t!==n&&(e.languages.markdown[t].inside.content.inside[n]=e.languages.markdown[n])}))})),e.hooks.add("after-tokenize",(function(e){"markdown"!==e.language&&"md"!==e.language||function e(t){if(t&&"string"!=typeof t)for(var n=0,r=t.length;n<r;n++){var a,o=t[n];"code"!==o.type?e(o.content):(a=o.content[1],o=o.content[3],a&&o&&"code-language"===a.type&&"code-block"===o.type&&"string"==typeof a.content&&(a=a.content.replace(/\b#/g,"sharp").replace(/\b\+\+/g,"pp"),a="language-"+(a=(/[a-z][\w-]*/i.exec(a)||[""])[0].toLowerCase()),o.alias?"string"==typeof o.alias?o.alias=[o.alias,a]:o.alias.push(a):o.alias=[a]))}}(e.tokens)})),e.hooks.add("wrap",(function(t){if("code-block"===t.type){for(var n="",r=0,a=t.classes.length;r<a;r++){var o=t.classes[r];if(o=/language-(.+)/.exec(o)){n=o[1];break}}var c,u=e.languages[n];u?t.content=e.highlight(t.content.replace(i,"").replace(/&(\w{1,8}|#x?[\da-f]{1,8});/gi,(function(e,t){var n;return"#"===(t=t.toLowerCase())[0]?(n="x"===t[1]?parseInt(t.slice(2),16):Number(t.slice(1)),l(n)):s[t]||e})),u,n):n&&"none"!==n&&e.plugins.autoloader&&(c="md-"+(new Date).valueOf()+"-"+Math.floor(1e16*Math.random()),t.attributes.id=c,e.plugins.autoloader.loadLanguages(n,(function(){var t=document.getElementById(c);t&&(t.innerHTML=e.highlight(t.textContent,e.languages[n],n))})))}})),RegExp(e.languages.markup.tag.pattern.source,"gi")),s={amp:"&",lt:"<",gt:">",quot:'"'},l=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(T),T.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:T.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},T.hooks.add("after-tokenize",(function(e){if("graphql"===e.language)for(var t=e.tokens.filter((function(e){return"string"!=typeof e&&"comment"!==e.type&&"scalar"!==e.type})),n=0;n<t.length;){var r=t[n++];if("keyword"===r.type&&"mutation"===r.content){var a=[];if(d(["definition-mutation","punctuation"])&&"("===u(1).content){n+=2;var o=p(/^\($/,/^\)$/);if(-1===o)continue;for(;n<o;n++){var i=u(0);"variable"===i.type&&(f(i,"variable-input"),a.push(i.content))}n=o+1}if(d(["punctuation","property-query"])&&"{"===u(0).content&&(n++,f(u(0),"property-mutation"),0<a.length)){var s=p(/^\{$/,/^\}$/);if(-1!==s)for(var l=n;l<s;l++){var c=t[l];"variable"===c.type&&0<=a.indexOf(c.content)&&f(c,"variable-input")}}}}function u(e){return t[n+e]}function d(e,t){t=t||0;for(var n=0;n<e.length;n++){var r=u(n+t);if(!r||r.type!==e[n])return}return 1}function p(e,r){for(var a=1,o=n;o<t.length;o++){var i=t[o],s=i.content;if("punctuation"===i.type&&"string"==typeof s)if(e.test(s))a++;else if(r.test(s)&&0==--a)return o}return-1}function f(e,t){var n=e.alias;n?Array.isArray(n)||(e.alias=n=[n]):e.alias=n=[],n.push(t)}})),T.languages.sql={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},variable:[{pattern:/@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/,greedy:!0},/@[\w.$]+/],string:{pattern:/(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\]|\2\2)*\2/,greedy:!0,lookbehind:!0},identifier:{pattern:/(^|[^@\\])`(?:\\[\s\S]|[^`\\]|``)*`/,greedy:!0,lookbehind:!0,inside:{punctuation:/^`|`$/}},function:/\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i,keyword:/\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i,boolean:/\b(?:FALSE|NULL|TRUE)\b/i,number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*\/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/},function(e){var t=e.languages.javascript["template-string"],n=t.pattern.source,r=t.inside.interpolation,a=r.inside["interpolation-punctuation"],o=r.pattern.source;function i(t,r){if(e.languages[t])return{pattern:RegExp("((?:"+r+")\\s*)"+n),lookbehind:!0,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},"embedded-code":{pattern:/[\s\S]+/,alias:t}}}}function s(t,n,r){return t={code:t,grammar:n,language:r},e.hooks.run("before-tokenize",t),t.tokens=e.tokenize(t.code,t.grammar),e.hooks.run("after-tokenize",t),t.tokens}function l(t,n,i){var l=e.tokenize(t,{interpolation:{pattern:RegExp(o),lookbehind:!0}}),c=0,u={},d=(l=s(l.map((function(e){if("string"==typeof e)return e;var n,r;for(e=e.content;-1!==t.indexOf((r=c++,n="___"+i.toUpperCase()+"_"+r+"___")););return u[n]=e,n})).join(""),n,i),Object.keys(u));return c=0,function t(n){for(var o=0;o<n.length;o++){if(c>=d.length)return;var i,l,p,f,m,h,g,b=n[o];"string"==typeof b||"string"==typeof b.content?(i=d[c],-1!==(g=(h="string"==typeof b?b:b.content).indexOf(i))&&(++c,l=h.substring(0,g),m=u[i],p=void 0,(f={})["interpolation-punctuation"]=a,3===(f=e.tokenize(m,f)).length&&((p=[1,1]).push.apply(p,s(f[1],e.languages.javascript,"javascript")),f.splice.apply(f,p)),p=new e.Token("interpolation",f,r.alias,m),f=h.substring(g+i.length),m=[],l&&m.push(l),m.push(p),f&&(t(h=[f]),m.push.apply(m,h)),"string"==typeof b?(n.splice.apply(n,[o,1].concat(m)),o+=m.length-1):b.content=m)):(g=b.content,Array.isArray(g)?t(g):t([g]))}}(l),new e.Token(i,l,"language-"+i,t)}e.languages.javascript["template-string"]=[i("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),i("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),i("svg",/\bsvg/.source),i("markdown",/\b(?:markdown|md)/.source),i("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),i("sql",/\bsql/.source),t].filter(Boolean);var c={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function u(e){return"string"==typeof e?e:Array.isArray(e)?e.map(u).join(""):u(e.content)}e.hooks.add("after-tokenize",(function(t){t.language in c&&function t(n){for(var r=0,a=n.length;r<a;r++){var o,i,s,c=n[r];"string"!=typeof c&&(o=c.content,Array.isArray(o)?"template-string"===c.type?(c=o[1],3===o.length&&"string"!=typeof c&&"embedded-code"===c.type&&(i=u(c),c=c.alias,c=Array.isArray(c)?c[0]:c,s=e.languages[c])&&(o[1]=l(i,s,c))):t(o):"string"!=typeof o&&t([o]))}}(t.tokens)}))}(T),function(e){e.languages.typescript=e.languages.extend("javascript",{"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),e.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete e.languages.typescript.parameter,delete e.languages.typescript["literal-property"];var t=e.languages.extend("typescript",{});delete t["class-name"],e.languages.typescript["class-name"].inside=t,e.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:t}}}}),e.languages.ts=e.languages.typescript}(T),function(e){var t=e.languages.javascript,n=/\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})+\}/.source,r="(@(?:arg|argument|param|property)\\s+(?:"+n+"\\s+)?)";e.languages.jsdoc=e.languages.extend("javadoclike",{parameter:{pattern:RegExp(r+/(?:(?!\s)[$\w\xA0-\uFFFF.])+(?=\s|$)/.source),lookbehind:!0,inside:{punctuation:/\./}}}),e.languages.insertBefore("jsdoc","keyword",{"optional-parameter":{pattern:RegExp(r+/\[(?:(?!\s)[$\w\xA0-\uFFFF.])+(?:=[^[\]]+)?\](?=\s|$)/.source),lookbehind:!0,inside:{parameter:{pattern:/(^\[)[$\w\xA0-\uFFFF\.]+/,lookbehind:!0,inside:{punctuation:/\./}},code:{pattern:/(=)[\s\S]*(?=\]$)/,lookbehind:!0,inside:t,alias:"language-javascript"},punctuation:/[=[\]]/}},"class-name":[{pattern:RegExp(/(@(?:augments|class|extends|interface|memberof!?|template|this|typedef)\s+(?:<TYPE>\s+)?)[A-Z]\w*(?:\.[A-Z]\w*)*/.source.replace(/<TYPE>/g,(function(){return n}))),lookbehind:!0,inside:{punctuation:/\./}},{pattern:RegExp("(@[a-z]+\\s+)"+n),lookbehind:!0,inside:{string:t.string,number:t.number,boolean:t.boolean,keyword:e.languages.typescript.keyword,operator:/=>|\.\.\.|[&|?:*]/,punctuation:/[.,;=<>{}()[\]]/}}],example:{pattern:/(@example\s+(?!\s))(?:[^@\s]|\s+(?!\s))+?(?=\s*(?:\*\s*)?(?:@\w|\*\/))/,lookbehind:!0,inside:{code:{pattern:/^([\t ]*(?:\*\s*)?)\S.*$/m,lookbehind:!0,inside:t,alias:"language-javascript"}}}}),e.languages.javadoclike.addSupport("javascript",e.languages.jsdoc)}(T),function(e){e.languages.flow=e.languages.extend("javascript",{}),e.languages.insertBefore("flow","keyword",{type:[{pattern:/\b(?:[Bb]oolean|Function|[Nn]umber|[Ss]tring|[Ss]ymbol|any|mixed|null|void)\b/,alias:"class-name"}]}),e.languages.flow["function-variable"].pattern=/(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=\s*(?:function\b|(?:\([^()]*\)(?:\s*:\s*\w+)?|(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/i,delete e.languages.flow.parameter,e.languages.insertBefore("flow","operator",{"flow-punctuation":{pattern:/\{\||\|\}/,alias:"punctuation"}}),Array.isArray(e.languages.flow.keyword)||(e.languages.flow.keyword=[e.languages.flow.keyword]),e.languages.flow.keyword.unshift({pattern:/(^|[^$]\b)(?:Class|declare|opaque|type)\b(?!\$)/,lookbehind:!0},{pattern:/(^|[^$]\B)\$(?:Diff|Enum|Exact|Keys|ObjMap|PropertyType|Record|Shape|Subtype|Supertype|await)\b(?!\$)/,lookbehind:!0})}(T),T.languages.n4js=T.languages.extend("javascript",{keyword:/\b(?:Array|any|boolean|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|false|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|module|new|null|number|package|private|protected|public|return|set|static|string|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)\b/}),T.languages.insertBefore("n4js","constant",{annotation:{pattern:/@+\w+/,alias:"operator"}}),T.languages.n4jsd=T.languages.n4js,function(e){function t(e,t){return RegExp(e.replace(/<ID>/g,(function(){return/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/.source})),t)}e.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+e.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),e.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+e.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),e.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]}),e.languages.insertBefore("javascript","keyword",{imports:{pattern:t(/(\bimport\b\s*)(?:<ID>(?:\s*,\s*(?:\*\s*as\s+<ID>|\{[^{}]*\}))?|\*\s*as\s+<ID>|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:e.languages.javascript},exports:{pattern:t(/(\bexport\b\s*)(?:\*(?:\s*as\s+<ID>)?(?=\s*\bfrom\b)|\{[^{}]*\})/.source),lookbehind:!0,inside:e.languages.javascript}}),e.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\b/,alias:"control-flow"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),e.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),e.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:t(/(\.\s*)#?<ID>/.source),lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var n=["function","function-variable","method","method-variable","property-access"],r=0;r<n.length;r++){var a=n[r],o=e.languages.javascript[a];a=(o="RegExp"===e.util.type(o)?e.languages.javascript[a]={pattern:o}:o).inside||{};(o.inside=a)["maybe-class-name"]=/^[A-Z][\s\S]*/}}(T),function(e){var t=e.util.clone(e.languages.javascript),n=/(?:\s|\/\/.*(?!.)|\/\*(?:[^*]|\*(?!\/))\*\/)/.source,r=/(?:\{(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])*\})/.source,a=/(?:\{<S>*\.{3}(?:[^{}]|<BRACES>)*\})/.source;function o(e,t){return e=e.replace(/<S>/g,(function(){return n})).replace(/<BRACES>/g,(function(){return r})).replace(/<SPREAD>/g,(function(){return a})),RegExp(e,t)}function i(t){for(var n=[],r=0;r<t.length;r++){var a=t[r],o=!1;"string"!=typeof a&&("tag"===a.type&&a.content[0]&&"tag"===a.content[0].type?"</"===a.content[0].content[0].content?0<n.length&&n[n.length-1].tagName===s(a.content[0].content[1])&&n.pop():"/>"!==a.content[a.content.length-1].content&&n.push({tagName:s(a.content[0].content[1]),openedBraces:0}):0<n.length&&"punctuation"===a.type&&"{"===a.content?n[n.length-1].openedBraces++:0<n.length&&0<n[n.length-1].openedBraces&&"punctuation"===a.type&&"}"===a.content?n[n.length-1].openedBraces--:o=!0),(o||"string"==typeof a)&&0<n.length&&0===n[n.length-1].openedBraces&&(o=s(a),r<t.length-1&&("string"==typeof t[r+1]||"plain-text"===t[r+1].type)&&(o+=s(t[r+1]),t.splice(r+1,1)),0<r&&("string"==typeof t[r-1]||"plain-text"===t[r-1].type)&&(o=s(t[r-1])+o,t.splice(r-1,1),r--),t[r]=new e.Token("plain-text",o,null,o)),a.content&&"string"!=typeof a.content&&i(a.content)}}a=o(a).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=o(/<\/?(?:[\w.:-]+(?:<S>+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|<BRACES>))?|<SPREAD>))*<S>*\/?)?>/.source),e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,e.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,e.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.jsx.tag.inside.comment=t.comment,e.languages.insertBefore("inside","attr-name",{spread:{pattern:o(/<SPREAD>/.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:o(/=<BRACES>/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:e.languages.jsx}}},e.languages.jsx.tag);var s=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(s).join(""):""};e.hooks.add("after-tokenize",(function(e){"jsx"!==e.language&&"tsx"!==e.language||i(e.tokens)}))}(T),function(e){var t=e.util.clone(e.languages.typescript);(t=(e.languages.tsx=e.languages.extend("jsx",t),delete e.languages.tsx.parameter,delete e.languages.tsx["literal-property"],e.languages.tsx.tag)).pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+t.pattern.source+")",t.pattern.flags),t.lookbehind=!0}(T),T.languages.swift={comment:{pattern:/(^|[^\\:])(?:\/\/.*|\/\*(?:[^/*]|\/(?!\*)|\*(?!\/)|\/\*(?:[^*]|\*(?!\/))*\*\/)*\*\/)/,lookbehind:!0,greedy:!0},"string-literal":[{pattern:RegExp(/(^|[^"#])/.source+"(?:"+/"(?:\\(?:\((?:[^()]|\([^()]*\))*\)|\r\n|[^(])|[^\\\r\n"])*"/.source+"|"+/"""(?:\\(?:\((?:[^()]|\([^()]*\))*\)|[^(])|[^\\"]|"(?!""))*"""/.source+")"+/(?!["#])/.source),lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/(\\\()(?:[^()]|\([^()]*\))*(?=\))/,lookbehind:!0,inside:null},"interpolation-punctuation":{pattern:/^\)|\\\($/,alias:"punctuation"},punctuation:/\\(?=[\r\n])/,string:/[\s\S]+/}},{pattern:RegExp(/(^|[^"#])(#+)/.source+"(?:"+/"(?:\\(?:#+\((?:[^()]|\([^()]*\))*\)|\r\n|[^#])|[^\\\r\n])*?"/.source+"|"+/"""(?:\\(?:#+\((?:[^()]|\([^()]*\))*\)|[^#])|[^\\])*?"""/.source+")\\2"),lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/(\\#+\()(?:[^()]|\([^()]*\))*(?=\))/,lookbehind:!0,inside:null},"interpolation-punctuation":{pattern:/^\)|\\#+\($/,alias:"punctuation"},string:/[\s\S]+/}}],directive:{pattern:RegExp(/#/.source+"(?:"+/(?:elseif|if)\b/.source+"(?:[ \t]*"+/(?:![ \t]*)?(?:\b\w+\b(?:[ \t]*\((?:[^()]|\([^()]*\))*\))?|\((?:[^()]|\([^()]*\))*\))(?:[ \t]*(?:&&|\|\|))?/.source+")+|"+/(?:else|endif)\b/.source+")"),alias:"property",inside:{"directive-name":/^#\w+/,boolean:/\b(?:false|true)\b/,number:/\b\d+(?:\.\d+)*\b/,operator:/!|&&|\|\||[<>]=?/,punctuation:/[(),]/}},literal:{pattern:/#(?:colorLiteral|column|dsohandle|file(?:ID|Literal|Path)?|function|imageLiteral|line)\b/,alias:"constant"},"other-directive":{pattern:/#\w+\b/,alias:"property"},attribute:{pattern:/@\w+/,alias:"atrule"},"function-definition":{pattern:/(\bfunc\s+)\w+/,lookbehind:!0,alias:"function"},label:{pattern:/\b(break|continue)\s+\w+|\b[a-zA-Z_]\w*(?=\s*:\s*(?:for|repeat|while)\b)/,lookbehind:!0,alias:"important"},keyword:/\b(?:Any|Protocol|Self|Type|actor|as|assignment|associatedtype|associativity|async|await|break|case|catch|class|continue|convenience|default|defer|deinit|didSet|do|dynamic|else|enum|extension|fallthrough|fileprivate|final|for|func|get|guard|higherThan|if|import|in|indirect|infix|init|inout|internal|is|isolated|lazy|left|let|lowerThan|mutating|none|nonisolated|nonmutating|open|operator|optional|override|postfix|precedencegroup|prefix|private|protocol|public|repeat|required|rethrows|return|right|safe|self|set|some|static|struct|subscript|super|switch|throw|throws|try|typealias|unowned|unsafe|var|weak|where|while|willSet)\b/,boolean:/\b(?:false|true)\b/,nil:{pattern:/\bnil\b/,alias:"constant"},"short-argument":/\$\d+\b/,omit:{pattern:/\b_\b/,alias:"keyword"},number:/\b(?:[\d_]+(?:\.[\de_]+)?|0x[a-f0-9_]+(?:\.[a-f0-9p_]+)?|0b[01_]+|0o[0-7_]+)\b/i,"class-name":/\b[A-Z](?:[A-Z_\d]*[a-z]\w*)?\b/,function:/\b[a-z_]\w*(?=\s*\()/i,constant:/\b(?:[A-Z_]{2,}|k[A-Z][A-Za-z_]+)\b/,operator:/[-+*/%=!<>&|^~?]+|\.[.\-+*/%=!<>&|^~?]+/,punctuation:/[{}[\]();,.:\\]/},T.languages.swift["string-literal"].forEach((function(e){e.inside.interpolation.inside=T.languages.swift})),function(e){e.languages.kotlin=e.languages.extend("clike",{keyword:{pattern:/(^|[^.])\b(?:abstract|actual|annotation|as|break|by|catch|class|companion|const|constructor|continue|crossinline|data|do|dynamic|else|enum|expect|external|final|finally|for|fun|get|if|import|in|infix|init|inline|inner|interface|internal|is|lateinit|noinline|null|object|open|operator|out|override|package|private|protected|public|reified|return|sealed|set|super|suspend|tailrec|this|throw|to|try|typealias|val|var|vararg|when|where|while)\b/,lookbehind:!0},function:[{pattern:/(?:`[^\r\n`]+`|\b\w+)(?=\s*\()/,greedy:!0},{pattern:/(\.)(?:`[^\r\n`]+`|\w+)(?=\s*\{)/,lookbehind:!0,greedy:!0}],number:/\b(?:0[xX][\da-fA-F]+(?:_[\da-fA-F]+)*|0[bB][01]+(?:_[01]+)*|\d+(?:_\d+)*(?:\.\d+(?:_\d+)*)?(?:[eE][+-]?\d+(?:_\d+)*)?[fFL]?)\b/,operator:/\+[+=]?|-[-=>]?|==?=?|!(?:!|==?)?|[\/*%<>]=?|[?:]:?|\.\.|&&|\|\||\b(?:and|inv|or|shl|shr|ushr|xor)\b/}),delete e.languages.kotlin["class-name"];var t={"interpolation-punctuation":{pattern:/^\$\{?|\}$/,alias:"punctuation"},expression:{pattern:/[\s\S]+/,inside:e.languages.kotlin}};e.languages.insertBefore("kotlin","string",{"string-literal":[{pattern:/"""(?:[^$]|\$(?:(?!\{)|\{[^{}]*\}))*?"""/,alias:"multiline",inside:{interpolation:{pattern:/\$(?:[a-z_]\w*|\{[^{}]*\})/i,inside:t},string:/[\s\S]+/}},{pattern:/"(?:[^"\\\r\n$]|\\.|\$(?:(?!\{)|\{[^{}]*\}))*"/,alias:"singleline",inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$(?:[a-z_]\w*|\{[^{}]*\})/i,lookbehind:!0,inside:t},string:/[\s\S]+/}}],char:{pattern:/'(?:[^'\\\r\n]|\\(?:.|u[a-fA-F0-9]{0,4}))'/,greedy:!0}}),delete e.languages.kotlin.string,e.languages.insertBefore("kotlin","keyword",{annotation:{pattern:/\B@(?:\w+:)?(?:[A-Z]\w*|\[[^\]]+\])/,alias:"builtin"}}),e.languages.insertBefore("kotlin","function",{label:{pattern:/\b\w+@|@\w+\b/,alias:"symbol"}}),e.languages.kt=e.languages.kotlin,e.languages.kts=e.languages.kotlin}(T),T.languages.c=T.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),T.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),T.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},T.languages.c.string],char:T.languages.c.char,comment:T.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:T.languages.c}}}}),T.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete T.languages.c.boolean,T.languages.objectivec=T.languages.extend("c",{string:{pattern:/@?"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<<?=?|>>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete T.languages.objectivec["class-name"],T.languages.objc=T.languages.objectivec,T.languages.reason=T.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:asr|land|lor|lsl|lsr|lxor|mod)\b/}),T.languages.insertBefore("reason","class-name",{char:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,greedy:!0},constructor:/\b[A-Z]\w*\b(?!\s*\.)/,label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete T.languages.reason.function,function(e){for(var t=/\/\*(?:[^*/]|\*(?!\/)|\/(?!\*)|<self>)*\*\//.source,n=0;n<2;n++)t=t.replace(/<self>/g,(function(){return t}));t=t.replace(/<self>/g,(function(){return/[^\s\S]/.source})),e.languages.rust={comment:[{pattern:RegExp(/(^|[^\\])/.source+t),lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/b?"(?:\\[\s\S]|[^\\"])*"|b?r(#*)"(?:[^"]|"(?!\1))*"\1/,greedy:!0},char:{pattern:/b?'(?:\\(?:x[0-7][\da-fA-F]|u\{(?:[\da-fA-F]_*){1,6}\}|.)|[^\\\r\n\t'])'/,greedy:!0},attribute:{pattern:/#!?\[(?:[^\[\]"]|"(?:\\[\s\S]|[^\\"])*")*\]/,greedy:!0,alias:"attr-name",inside:{string:null}},"closure-params":{pattern:/([=(,:]\s*|\bmove\s*)\|[^|]*\||\|[^|]*\|(?=\s*(?:\{|->))/,lookbehind:!0,greedy:!0,inside:{"closure-punctuation":{pattern:/^\||\|$/,alias:"punctuation"},rest:null}},"lifetime-annotation":{pattern:/'\w+/,alias:"symbol"},"fragment-specifier":{pattern:/(\$\w+:)[a-z]+/,lookbehind:!0,alias:"punctuation"},variable:/\$\w+/,"function-definition":{pattern:/(\bfn\s+)\w+/,lookbehind:!0,alias:"function"},"type-definition":{pattern:/(\b(?:enum|struct|trait|type|union)\s+)\w+/,lookbehind:!0,alias:"class-name"},"module-declaration":[{pattern:/(\b(?:crate|mod)\s+)[a-z][a-z_\d]*/,lookbehind:!0,alias:"namespace"},{pattern:/(\b(?:crate|self|super)\s*)::\s*[a-z][a-z_\d]*\b(?:\s*::(?:\s*[a-z][a-z_\d]*\s*::)*)?/,lookbehind:!0,alias:"namespace",inside:{punctuation:/::/}}],keyword:[/\b(?:Self|abstract|as|async|await|become|box|break|const|continue|crate|do|dyn|else|enum|extern|final|fn|for|if|impl|in|let|loop|macro|match|mod|move|mut|override|priv|pub|ref|return|self|static|struct|super|trait|try|type|typeof|union|unsafe|unsized|use|virtual|where|while|yield)\b/,/\b(?:bool|char|f(?:32|64)|[ui](?:8|16|32|64|128|size)|str)\b/],function:/\b[a-z_]\w*(?=\s*(?:::\s*<|\())/,macro:{pattern:/\b\w+!/,alias:"property"},constant:/\b[A-Z_][A-Z_\d]+\b/,"class-name":/\b[A-Z]\w*\b/,namespace:{pattern:/(?:\b[a-z][a-z_\d]*\s*::\s*)*\b[a-z][a-z_\d]*\s*::(?!\s*<)/,inside:{punctuation:/::/}},number:/\b(?:0x[\dA-Fa-f](?:_?[\dA-Fa-f])*|0o[0-7](?:_?[0-7])*|0b[01](?:_?[01])*|(?:(?:\d(?:_?\d)*)?\.)?\d(?:_?\d)*(?:[Ee][+-]?\d+)?)(?:_?(?:f32|f64|[iu](?:8|16|32|64|size)?))?\b/,boolean:/\b(?:false|true)\b/,punctuation:/->|\.\.=|\.{1,3}|::|[{}[\];(),:]/,operator:/[-+*\/%!^]=?|=[=>]?|&[&=]?|\|[|=]?|<<?=?|>>?=?|[@?]/},e.languages.rust["closure-params"].inside.rest=e.languages.rust,e.languages.rust.attribute.inside.string=e.languages.rust.string}(T),T.languages.go=T.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|false|iota|nil|true)\b/,number:[/\b0(?:b[01_]+|o[0-7_]+)i?\b/i,/\b0x(?:[a-f\d_]+(?:\.[a-f\d_]*)?|\.[a-f\d_]+)(?:p[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,/(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?[\d_]+)?i?(?!\w)/i],operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\b/}),T.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete T.languages.go["class-name"],function(e){var t=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,n=/\b(?!<keyword>)\w+(?:\s*\.\s*\w+)*\b/.source.replace(/<keyword>/g,(function(){return t.source}));e.languages.cpp=e.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!<keyword>)\w+/.source.replace(/<keyword>/g,(function(){return t.source}))),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:t,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),e.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/<mod-name>(?:\s*:\s*<mod-name>)?|:\s*<mod-name>/.source.replace(/<mod-name>/g,(function(){return n}))+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),e.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:e.languages.cpp}}}}),e.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),e.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:e.languages.extend("cpp",{})}}),e.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},e.languages.cpp["base-clause"])}(T);((e,t)=>{for(var n in t)f(e,n,{get:t[n],enumerable:!0})})({},{dracula:()=>j,duotoneDark:()=>N,duotoneLight:()=>R,github:()=>A,jettwaveDark:()=>H,jettwaveLight:()=>Z,nightOwl:()=>L,nightOwlLight:()=>P,oceanicNext:()=>D,okaidia:()=>M,oneDark:()=>G,oneLight:()=>W,palenight:()=>F,shadesOfPurple:()=>z,synthwave84:()=>B,ultramin:()=>$,vsDark:()=>U,vsLight:()=>q});var j={plain:{color:"#F8F8F2",backgroundColor:"#282A36"},styles:[{types:["prolog","constant","builtin"],style:{color:"rgb(189, 147, 249)"}},{types:["inserted","function"],style:{color:"rgb(80, 250, 123)"}},{types:["deleted"],style:{color:"rgb(255, 85, 85)"}},{types:["changed"],style:{color:"rgb(255, 184, 108)"}},{types:["punctuation","symbol"],style:{color:"rgb(248, 248, 242)"}},{types:["string","char","tag","selector"],style:{color:"rgb(255, 121, 198)"}},{types:["keyword","variable"],style:{color:"rgb(189, 147, 249)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(98, 114, 164)"}},{types:["attr-name"],style:{color:"rgb(241, 250, 140)"}}]},N={plain:{backgroundColor:"#2a2734",color:"#9a86fd"},styles:[{types:["comment","prolog","doctype","cdata","punctuation"],style:{color:"#6c6783"}},{types:["namespace"],style:{opacity:.7}},{types:["tag","operator","number"],style:{color:"#e09142"}},{types:["property","function"],style:{color:"#9a86fd"}},{types:["tag-id","selector","atrule-id"],style:{color:"#eeebff"}},{types:["attr-name"],style:{color:"#c4b9fe"}},{types:["boolean","string","entity","url","attr-value","keyword","control","directive","unit","statement","regex","atrule","placeholder","variable"],style:{color:"#ffcc99"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"#c4b9fe"}}]},R={plain:{backgroundColor:"#faf8f5",color:"#728fcb"},styles:[{types:["comment","prolog","doctype","cdata","punctuation"],style:{color:"#b6ad9a"}},{types:["namespace"],style:{opacity:.7}},{types:["tag","operator","number"],style:{color:"#063289"}},{types:["property","function"],style:{color:"#b29762"}},{types:["tag-id","selector","atrule-id"],style:{color:"#2d2006"}},{types:["attr-name"],style:{color:"#896724"}},{types:["boolean","string","entity","url","attr-value","keyword","control","directive","unit","statement","regex","atrule"],style:{color:"#728fcb"}},{types:["placeholder","variable"],style:{color:"#93abdc"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"#896724"}}]},A={plain:{color:"#393A34",backgroundColor:"#f6f8fa"},styles:[{types:["comment","prolog","doctype","cdata"],style:{color:"#999988",fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}},{types:["string","attr-value"],style:{color:"#e3116c"}},{types:["punctuation","operator"],style:{color:"#393A34"}},{types:["entity","url","symbol","number","boolean","variable","constant","property","regex","inserted"],style:{color:"#36acaa"}},{types:["atrule","keyword","attr-name","selector"],style:{color:"#00a4db"}},{types:["function","deleted","tag"],style:{color:"#d73a49"}},{types:["function-variable"],style:{color:"#6f42c1"}},{types:["tag","selector","keyword"],style:{color:"#00009f"}}]},L={plain:{color:"#d6deeb",backgroundColor:"#011627"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)",fontStyle:"italic"}},{types:["inserted","attr-name"],style:{color:"rgb(173, 219, 103)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(99, 119, 119)",fontStyle:"italic"}},{types:["string","url"],style:{color:"rgb(173, 219, 103)"}},{types:["variable"],style:{color:"rgb(214, 222, 235)"}},{types:["number"],style:{color:"rgb(247, 140, 108)"}},{types:["builtin","char","constant","function"],style:{color:"rgb(130, 170, 255)"}},{types:["punctuation"],style:{color:"rgb(199, 146, 234)"}},{types:["selector","doctype"],style:{color:"rgb(199, 146, 234)",fontStyle:"italic"}},{types:["class-name"],style:{color:"rgb(255, 203, 139)"}},{types:["tag","operator","keyword"],style:{color:"rgb(127, 219, 202)"}},{types:["boolean"],style:{color:"rgb(255, 88, 116)"}},{types:["property"],style:{color:"rgb(128, 203, 196)"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)"}}]},P={plain:{color:"#403f53",backgroundColor:"#FBFBFB"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)",fontStyle:"italic"}},{types:["inserted","attr-name"],style:{color:"rgb(72, 118, 214)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(152, 159, 177)",fontStyle:"italic"}},{types:["string","builtin","char","constant","url"],style:{color:"rgb(72, 118, 214)"}},{types:["variable"],style:{color:"rgb(201, 103, 101)"}},{types:["number"],style:{color:"rgb(170, 9, 130)"}},{types:["punctuation"],style:{color:"rgb(153, 76, 195)"}},{types:["function","selector","doctype"],style:{color:"rgb(153, 76, 195)",fontStyle:"italic"}},{types:["class-name"],style:{color:"rgb(17, 17, 17)"}},{types:["tag"],style:{color:"rgb(153, 76, 195)"}},{types:["operator","property","keyword","namespace"],style:{color:"rgb(12, 150, 155)"}},{types:["boolean"],style:{color:"rgb(188, 84, 84)"}}]},O="#c5a5c5",I="#8dc891",D={plain:{backgroundColor:"#282c34",color:"#ffffff"},styles:[{types:["attr-name"],style:{color:O}},{types:["attr-value"],style:{color:I}},{types:["comment","block-comment","prolog","doctype","cdata","shebang"],style:{color:"#999999"}},{types:["property","number","function-name","constant","symbol","deleted"],style:{color:"#5a9bcf"}},{types:["boolean"],style:{color:"#ff8b50"}},{types:["tag"],style:{color:"#fc929e"}},{types:["string"],style:{color:I}},{types:["punctuation"],style:{color:I}},{types:["selector","char","builtin","inserted"],style:{color:"#D8DEE9"}},{types:["function"],style:{color:"#79b6f2"}},{types:["operator","entity","url","variable"],style:{color:"#d7deea"}},{types:["keyword"],style:{color:O}},{types:["atrule","class-name"],style:{color:"#FAC863"}},{types:["important"],style:{fontWeight:"400"}},{types:["bold"],style:{fontWeight:"bold"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}}]},M={plain:{color:"#f8f8f2",backgroundColor:"#272822"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"#f92672",fontStyle:"italic"}},{types:["inserted"],style:{color:"rgb(173, 219, 103)",fontStyle:"italic"}},{types:["comment"],style:{color:"#8292a2",fontStyle:"italic"}},{types:["string","url"],style:{color:"#a6e22e"}},{types:["variable"],style:{color:"#f8f8f2"}},{types:["number"],style:{color:"#ae81ff"}},{types:["builtin","char","constant","function","class-name"],style:{color:"#e6db74"}},{types:["punctuation"],style:{color:"#f8f8f2"}},{types:["selector","doctype"],style:{color:"#a6e22e",fontStyle:"italic"}},{types:["tag","operator","keyword"],style:{color:"#66d9ef"}},{types:["boolean"],style:{color:"#ae81ff"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)",opacity:.7}},{types:["tag","property"],style:{color:"#f92672"}},{types:["attr-name"],style:{color:"#a6e22e !important"}},{types:["doctype"],style:{color:"#8292a2"}},{types:["rule"],style:{color:"#e6db74"}}]},F={plain:{color:"#bfc7d5",backgroundColor:"#292d3e"},styles:[{types:["comment"],style:{color:"rgb(105, 112, 152)",fontStyle:"italic"}},{types:["string","inserted"],style:{color:"rgb(195, 232, 141)"}},{types:["number"],style:{color:"rgb(247, 140, 108)"}},{types:["builtin","char","constant","function"],style:{color:"rgb(130, 170, 255)"}},{types:["punctuation","selector"],style:{color:"rgb(199, 146, 234)"}},{types:["variable"],style:{color:"rgb(191, 199, 213)"}},{types:["class-name","attr-name"],style:{color:"rgb(255, 203, 107)"}},{types:["tag","deleted"],style:{color:"rgb(255, 85, 114)"}},{types:["operator"],style:{color:"rgb(137, 221, 255)"}},{types:["boolean"],style:{color:"rgb(255, 88, 116)"}},{types:["keyword"],style:{fontStyle:"italic"}},{types:["doctype"],style:{color:"rgb(199, 146, 234)",fontStyle:"italic"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)"}},{types:["url"],style:{color:"rgb(221, 221, 221)"}}]},z={plain:{color:"#9EFEFF",backgroundColor:"#2D2A55"},styles:[{types:["changed"],style:{color:"rgb(255, 238, 128)"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)"}},{types:["inserted"],style:{color:"rgb(173, 219, 103)"}},{types:["comment"],style:{color:"rgb(179, 98, 255)",fontStyle:"italic"}},{types:["punctuation"],style:{color:"rgb(255, 255, 255)"}},{types:["constant"],style:{color:"rgb(255, 98, 140)"}},{types:["string","url"],style:{color:"rgb(165, 255, 144)"}},{types:["variable"],style:{color:"rgb(255, 238, 128)"}},{types:["number","boolean"],style:{color:"rgb(255, 98, 140)"}},{types:["attr-name"],style:{color:"rgb(255, 180, 84)"}},{types:["keyword","operator","property","namespace","tag","selector","doctype"],style:{color:"rgb(255, 157, 0)"}},{types:["builtin","char","constant","function","class-name"],style:{color:"rgb(250, 208, 0)"}}]},B={plain:{backgroundColor:"linear-gradient(to bottom, #2a2139 75%, #34294f)",backgroundImage:"#34294f",color:"#f92aad",textShadow:"0 0 2px #100c0f, 0 0 5px #dc078e33, 0 0 10px #fff3"},styles:[{types:["comment","block-comment","prolog","doctype","cdata"],style:{color:"#495495",fontStyle:"italic"}},{types:["punctuation"],style:{color:"#ccc"}},{types:["tag","attr-name","namespace","number","unit","hexcode","deleted"],style:{color:"#e2777a"}},{types:["property","selector"],style:{color:"#72f1b8",textShadow:"0 0 2px #100c0f, 0 0 10px #257c5575, 0 0 35px #21272475"}},{types:["function-name"],style:{color:"#6196cc"}},{types:["boolean","selector-id","function"],style:{color:"#fdfdfd",textShadow:"0 0 2px #001716, 0 0 3px #03edf975, 0 0 5px #03edf975, 0 0 8px #03edf975"}},{types:["class-name","maybe-class-name","builtin"],style:{color:"#fff5f6",textShadow:"0 0 2px #000, 0 0 10px #fc1f2c75, 0 0 5px #fc1f2c75, 0 0 25px #fc1f2c75"}},{types:["constant","symbol"],style:{color:"#f92aad",textShadow:"0 0 2px #100c0f, 0 0 5px #dc078e33, 0 0 10px #fff3"}},{types:["important","atrule","keyword","selector-class"],style:{color:"#f4eee4",textShadow:"0 0 2px #393a33, 0 0 8px #f39f0575, 0 0 2px #f39f0575"}},{types:["string","char","attr-value","regex","variable"],style:{color:"#f87c32"}},{types:["parameter"],style:{fontStyle:"italic"}},{types:["entity","url"],style:{color:"#67cdcc"}},{types:["operator"],style:{color:"ffffffee"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["entity"],style:{cursor:"help"}},{types:["inserted"],style:{color:"green"}}]},$={plain:{color:"#282a2e",backgroundColor:"#ffffff"},styles:[{types:["comment"],style:{color:"rgb(197, 200, 198)"}},{types:["string","number","builtin","variable"],style:{color:"rgb(150, 152, 150)"}},{types:["class-name","function","tag","attr-name"],style:{color:"rgb(40, 42, 46)"}}]},U={plain:{color:"#9CDCFE",backgroundColor:"#1E1E1E"},styles:[{types:["prolog"],style:{color:"rgb(0, 0, 128)"}},{types:["comment"],style:{color:"rgb(106, 153, 85)"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"rgb(86, 156, 214)"}},{types:["number","inserted"],style:{color:"rgb(181, 206, 168)"}},{types:["constant"],style:{color:"rgb(100, 102, 149)"}},{types:["attr-name","variable"],style:{color:"rgb(156, 220, 254)"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"rgb(206, 145, 120)"}},{types:["selector"],style:{color:"rgb(215, 186, 125)"}},{types:["tag"],style:{color:"rgb(78, 201, 176)"}},{types:["tag"],languages:["markup"],style:{color:"rgb(86, 156, 214)"}},{types:["punctuation","operator"],style:{color:"rgb(212, 212, 212)"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"rgb(220, 220, 170)"}},{types:["class-name"],style:{color:"rgb(78, 201, 176)"}},{types:["char"],style:{color:"rgb(209, 105, 105)"}}]},q={plain:{color:"#000000",backgroundColor:"#ffffff"},styles:[{types:["comment"],style:{color:"rgb(0, 128, 0)"}},{types:["builtin"],style:{color:"rgb(0, 112, 193)"}},{types:["number","variable","inserted"],style:{color:"rgb(9, 134, 88)"}},{types:["operator"],style:{color:"rgb(0, 0, 0)"}},{types:["constant","char"],style:{color:"rgb(129, 31, 63)"}},{types:["tag"],style:{color:"rgb(128, 0, 0)"}},{types:["attr-name"],style:{color:"rgb(255, 0, 0)"}},{types:["deleted","string"],style:{color:"rgb(163, 21, 21)"}},{types:["changed","punctuation"],style:{color:"rgb(4, 81, 165)"}},{types:["function","keyword"],style:{color:"rgb(0, 0, 255)"}},{types:["class-name"],style:{color:"rgb(38, 127, 153)"}}]},H={plain:{color:"#f8fafc",backgroundColor:"#011627"},styles:[{types:["prolog"],style:{color:"#000080"}},{types:["comment"],style:{color:"#6A9955"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"#569CD6"}},{types:["number","inserted"],style:{color:"#B5CEA8"}},{types:["constant"],style:{color:"#f8fafc"}},{types:["attr-name","variable"],style:{color:"#9CDCFE"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"#cbd5e1"}},{types:["selector"],style:{color:"#D7BA7D"}},{types:["tag"],style:{color:"#0ea5e9"}},{types:["tag"],languages:["markup"],style:{color:"#0ea5e9"}},{types:["punctuation","operator"],style:{color:"#D4D4D4"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"#7dd3fc"}},{types:["class-name"],style:{color:"#0ea5e9"}},{types:["char"],style:{color:"#D16969"}}]},Z={plain:{color:"#0f172a",backgroundColor:"#f1f5f9"},styles:[{types:["prolog"],style:{color:"#000080"}},{types:["comment"],style:{color:"#6A9955"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"#0c4a6e"}},{types:["number","inserted"],style:{color:"#B5CEA8"}},{types:["constant"],style:{color:"#0f172a"}},{types:["attr-name","variable"],style:{color:"#0c4a6e"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"#64748b"}},{types:["selector"],style:{color:"#D7BA7D"}},{types:["tag"],style:{color:"#0ea5e9"}},{types:["tag"],languages:["markup"],style:{color:"#0ea5e9"}},{types:["punctuation","operator"],style:{color:"#475569"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"#0e7490"}},{types:["class-name"],style:{color:"#0ea5e9"}},{types:["char"],style:{color:"#D16969"}}]},G={plain:{backgroundColor:"hsl(220, 13%, 18%)",color:"hsl(220, 14%, 71%)",textShadow:"0 1px rgba(0, 0, 0, 0.3)"},styles:[{types:["comment","prolog","cdata"],style:{color:"hsl(220, 10%, 40%)"}},{types:["doctype","punctuation","entity"],style:{color:"hsl(220, 14%, 71%)"}},{types:["attr-name","class-name","maybe-class-name","boolean","constant","number","atrule"],style:{color:"hsl(29, 54%, 61%)"}},{types:["keyword"],style:{color:"hsl(286, 60%, 67%)"}},{types:["property","tag","symbol","deleted","important"],style:{color:"hsl(355, 65%, 65%)"}},{types:["selector","string","char","builtin","inserted","regex","attr-value"],style:{color:"hsl(95, 38%, 62%)"}},{types:["variable","operator","function"],style:{color:"hsl(207, 82%, 66%)"}},{types:["url"],style:{color:"hsl(187, 47%, 55%)"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"hsl(220, 14%, 71%)"}}]},W={plain:{backgroundColor:"hsl(230, 1%, 98%)",color:"hsl(230, 8%, 24%)"},styles:[{types:["comment","prolog","cdata"],style:{color:"hsl(230, 4%, 64%)"}},{types:["doctype","punctuation","entity"],style:{color:"hsl(230, 8%, 24%)"}},{types:["attr-name","class-name","boolean","constant","number","atrule"],style:{color:"hsl(35, 99%, 36%)"}},{types:["keyword"],style:{color:"hsl(301, 63%, 40%)"}},{types:["property","tag","symbol","deleted","important"],style:{color:"hsl(5, 74%, 59%)"}},{types:["selector","string","char","builtin","inserted","regex","attr-value","punctuation"],style:{color:"hsl(119, 34%, 47%)"}},{types:["variable","operator","function"],style:{color:"hsl(221, 87%, 60%)"}},{types:["url"],style:{color:"hsl(198, 99%, 37%)"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"hsl(230, 8%, 24%)"}}]},V=(e,t)=>{const{plain:n}=e,r=e.styles.reduce(((e,n)=>{const{languages:r,style:a}=n;return r&&!r.includes(t)||n.types.forEach((t=>{const n=S(S({},e[t]),a);e[t]=n})),e}),{});return r.root=n,r.plain=E(S({},n),{backgroundColor:void 0}),r},Q=/\r\n|\r|\n/,Y=e=>{0===e.length?e.push({types:["plain"],content:"\n",empty:!0}):1===e.length&&""===e[0].content&&(e[0].content="\n",e[0].empty=!0)},K=(e,t)=>{const n=e.length;return n>0&&e[n-1]===t?e:e.concat(t)},X=e=>{const t=[[]],n=[e],r=[0],a=[e.length];let o=0,i=0,s=[];const l=[s];for(;i>-1;){for(;(o=r[i]++)<a[i];){let e,c=t[i];const u=n[i][o];if("string"==typeof u?(c=i>0?c:["plain"],e=u):(c=K(c,u.type),u.alias&&(c=K(c,u.alias)),e=u.content),"string"!=typeof e){i++,t.push(c),n.push(e),r.push(0),a.push(e.length);continue}const d=e.split(Q),p=d.length;s.push({types:c,content:d[0]});for(let t=1;t<p;t++)Y(s),l.push(s=[]),s.push({types:c,content:d[t]})}i--,t.pop(),n.pop(),r.pop(),a.pop()}return Y(s),l},J=({children:e,language:t,code:n,theme:r,prism:a})=>{const o=t.toLowerCase(),i=((e,t)=>{const[n,r]=(0,u.useState)(V(t,e)),a=(0,u.useRef)(),o=(0,u.useRef)();return(0,u.useEffect)((()=>{t===a.current&&e===o.current||(a.current=t,o.current=e,r(V(t,e)))}),[e,t]),n})(o,r),s=(e=>(0,u.useCallback)((t=>{var n=t,{className:r,style:a,line:o}=n,i=_(n,["className","style","line"]);const s=E(S({},i),{className:(0,d.Z)("token-line",r)});return"object"==typeof e&&"plain"in e&&(s.style=e.plain),"object"==typeof a&&(s.style=S(S({},s.style||{}),a)),s}),[e]))(i),l=(e=>{const t=(0,u.useCallback)((({types:t,empty:n})=>{if(null!=e)return 1===t.length&&"plain"===t[0]?null!=n?{display:"inline-block"}:void 0:1===t.length&&null!=n?e[t[0]]:Object.assign(null!=n?{display:"inline-block"}:{},...t.map((t=>e[t])))}),[e]);return(0,u.useCallback)((e=>{var n=e,{token:r,className:a,style:o}=n,i=_(n,["token","className","style"]);const s=E(S({},i),{className:(0,d.Z)("token",...r.types,a),children:r.content,style:t(r)});return null!=o&&(s.style=S(S({},s.style||{}),o)),s}),[t])})(i),c=(({prism:e,code:t,grammar:n,language:r})=>{const a=(0,u.useRef)(e);return(0,u.useMemo)((()=>{if(null==n)return X([t]);const e={code:t,grammar:n,language:r,tokens:[]};return a.current.hooks.run("before-tokenize",e),e.tokens=a.current.tokenize(t,n),a.current.hooks.run("after-tokenize",e),X(e.tokens)}),[t,n,r])})({prism:a,language:o,code:n,grammar:a.languages[o]});return e({tokens:c,className:`prism-code language-${o}`,style:null!=i?i.root:{},getLineProps:s,getTokenProps:l})},ee=e=>(0,u.createElement)(J,E(S({},e),{prism:e.prism||T,theme:e.theme||U,code:e.code,language:e.language}))},8776:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=!0,a="Invariant failed";function o(e,t){if(!e){if(r)throw new Error(a);var n="function"==typeof t?t():t,o=n?"".concat(a,": ").concat(n):a;throw new Error(o)}}},7529:e=>{"use strict";e.exports={}},6887:e=>{"use strict";e.exports=JSON.parse('{"/markdown-page-08c":{"__comp":"1f391b9e","__context":{"plugin":"871ff594"},"content":"393be207"},"/docs-7d9":{"__comp":"5e95c892","__context":{"plugin":"3e0add53"}},"/docs-2ba":{"__comp":"a7bd4aaa","version":"935f2afb"},"/docs-bfd":{"__comp":"a94703ab"},"/docs/-a61":{"__comp":"17896441","content":"ecbeea21"},"/docs/best-practices/bundling-ec3":{"__comp":"17896441","content":"0ce61a91"},"/docs/best-practices/connection-reuse-e9a":{"__comp":"17896441","content":"54fc444e"},"/docs/best-practices/internal-context-fb7":{"__comp":"17896441","content":"c4fefc0c"},"/docs/best-practices/intro-816":{"__comp":"17896441","content":"acb7d57c"},"/docs/best-practices/profiling-6cf":{"__comp":"17896441","content":"54ed1cf2"},"/docs/best-practices/small-node-modules-385":{"__comp":"17896441","content":"70761510"},"/docs/category/aws-event-examples-116":{"__comp":"14eb3368","categoryGeneratedIndex":"cb00b214"},"/docs/category/best-practices-320":{"__comp":"14eb3368","categoryGeneratedIndex":"3ea7551b"},"/docs/category/integrations-3d4":{"__comp":"14eb3368","categoryGeneratedIndex":"4f2dd8bc"},"/docs/category/intro-to-middy-a3d":{"__comp":"14eb3368","categoryGeneratedIndex":"00787874"},"/docs/category/middlewares-65f":{"__comp":"14eb3368","categoryGeneratedIndex":"afa23cb9"},"/docs/category/routers-8cd":{"__comp":"14eb3368","categoryGeneratedIndex":"e326eb4c"},"/docs/category/upgrade-558":{"__comp":"14eb3368","categoryGeneratedIndex":"44063d41"},"/docs/category/writing-middlewares-c76":{"__comp":"14eb3368","categoryGeneratedIndex":"810a87d2"},"/docs/events/alexa-561":{"__comp":"17896441","content":"2f4f2e7a"},"/docs/events/api-gateway-authorizer-b1d":{"__comp":"17896441","content":"68318e94"},"/docs/events/api-gateway-http-dc8":{"__comp":"17896441","content":"18dc5a76"},"/docs/events/api-gateway-rest-1d4":{"__comp":"17896441","content":"73083085"},"/docs/events/api-gateway-ws-ddb":{"__comp":"17896441","content":"bff6c11b"},"/docs/events/application-load-balancer-344":{"__comp":"17896441","content":"7076eee1"},"/docs/events/appsync-c0f":{"__comp":"17896441","content":"796ad5a5"},"/docs/events/cloud-formation-134":{"__comp":"17896441","content":"79674995"},"/docs/events/cloud-front-2e5":{"__comp":"17896441","content":"34ad80cb"},"/docs/events/cloud-trail-ec9":{"__comp":"17896441","content":"28b74e92"},"/docs/events/cloud-watch-logs-21e":{"__comp":"17896441","content":"211396ae"},"/docs/events/code-commit-676":{"__comp":"17896441","content":"08f83687"},"/docs/events/code-pipeline-785":{"__comp":"17896441","content":"b6105e9b"},"/docs/events/cognito-207":{"__comp":"17896441","content":"89ce8835"},"/docs/events/config-bfe":{"__comp":"17896441","content":"71d5009c"},"/docs/events/connect-f4d":{"__comp":"17896441","content":"f20815ad"},"/docs/events/documentdb-7a2":{"__comp":"17896441","content":"4f3a9363"},"/docs/events/dynamodb-53a":{"__comp":"17896441","content":"9d560f77"},"/docs/events/ec2-94f":{"__comp":"17896441","content":"9d43f09c"},"/docs/events/event-bridge-3bf":{"__comp":"17896441","content":"52912c74"},"/docs/events/function-url-b85":{"__comp":"17896441","content":"f0886e87"},"/docs/events/intro-e69":{"__comp":"17896441","content":"56ed1c64"},"/docs/events/iot-cea":{"__comp":"17896441","content":"1ea8ecd6"},"/docs/events/iot-events-6c2":{"__comp":"17896441","content":"faf674c6"},"/docs/events/kafka-managed-streaming-bbd":{"__comp":"17896441","content":"949815f5"},"/docs/events/kafka-self-managed-d9e":{"__comp":"17896441","content":"65ce35be"},"/docs/events/kinesis-firehose-253":{"__comp":"17896441","content":"0d245e6a"},"/docs/events/kinesis-streams-9aa":{"__comp":"17896441","content":"b9c75af0"},"/docs/events/lex-af4":{"__comp":"17896441","content":"cc16eb0f"},"/docs/events/mq-5eb":{"__comp":"17896441","content":"340d0816"},"/docs/events/rds-3c4":{"__comp":"17896441","content":"a07e9812"},"/docs/events/s3-05f":{"__comp":"17896441","content":"53f1e98a"},"/docs/events/s3-batch-e3b":{"__comp":"17896441","content":"646b055a"},"/docs/events/s3-object-d5a":{"__comp":"17896441","content":"958c573d"},"/docs/events/secrets-manager-ea6":{"__comp":"17896441","content":"2b234cfe"},"/docs/events/ses-22b":{"__comp":"17896441","content":"a7c9f8b5"},"/docs/events/sns-af6":{"__comp":"17896441","content":"667584a0"},"/docs/events/sqs-2ce":{"__comp":"17896441","content":"028754be"},"/docs/events/vpc-lattice-ec4":{"__comp":"17896441","content":"a0697f1b"},"/docs/events/workmail-541":{"__comp":"17896441","content":"34ebece8"},"/docs/faq-e79":{"__comp":"17896441","content":"0480b142"},"/docs/integrations/apollo-server-d7d":{"__comp":"17896441","content":"e1c77d88"},"/docs/integrations/intro-0d2":{"__comp":"17896441","content":"b5163cd3"},"/docs/integrations/lambda-powertools-57c":{"__comp":"17896441","content":"c1378803"},"/docs/integrations/pino-2b6":{"__comp":"17896441","content":"3a74057e"},"/docs/integrations/RDS-c6b":{"__comp":"17896441","content":"171930c3"},"/docs/integrations/serverless-framework-95a":{"__comp":"17896441","content":"b5584809"},"/docs/integrations/serverless-stack-206":{"__comp":"17896441","content":"ace0032f"},"/docs/intro/contributing-e03":{"__comp":"17896441","content":"b83c886a"},"/docs/intro/early-interrupt-5ac":{"__comp":"17896441","content":"f795adf5"},"/docs/intro/getting-started-224":{"__comp":"17896441","content":"5afe45f2"},"/docs/intro/handling-errors-9da":{"__comp":"17896441","content":"cd47eedf"},"/docs/intro/history-b44":{"__comp":"17896441","content":"590578cb"},"/docs/intro/hooks-bb3":{"__comp":"17896441","content":"5e80d65e"},"/docs/intro/how-it-works-965":{"__comp":"17896441","content":"f9850e34"},"/docs/intro/influence-6be":{"__comp":"17896441","content":"a3787fd8"},"/docs/intro/release-cycle-f31":{"__comp":"17896441","content":"b5aee65c"},"/docs/intro/sponsoring-578":{"__comp":"17896441","content":"a7630442"},"/docs/intro/streamify-response-9ee":{"__comp":"17896441","content":"c21432a2"},"/docs/intro/testing-064":{"__comp":"17896441","content":"ea2a30f2"},"/docs/intro/typescript-3e8":{"__comp":"17896441","content":"5018e04c"},"/docs/intro/utilities-b1f":{"__comp":"17896441","content":"ec96ff11"},"/docs/middlewares/appconfig-ca4":{"__comp":"17896441","content":"7745d517"},"/docs/middlewares/cloudwatch-metrics-8bc":{"__comp":"17896441","content":"aecdbf7e"},"/docs/middlewares/do-not-wait-for-empty-event-loop-579":{"__comp":"17896441","content":"da0b5c8a"},"/docs/middlewares/dynamodb-8d2":{"__comp":"17896441","content":"1124057e"},"/docs/middlewares/error-logger-388":{"__comp":"17896441","content":"0976e874"},"/docs/middlewares/event-normalizer-6b6":{"__comp":"17896441","content":"19606b2d"},"/docs/middlewares/http-content-encoding-404":{"__comp":"17896441","content":"b6b85ed9"},"/docs/middlewares/http-content-negotiation-b8b":{"__comp":"17896441","content":"a8e9225e"},"/docs/middlewares/http-cors-d5f":{"__comp":"17896441","content":"4924cac4"},"/docs/middlewares/http-error-handler-044":{"__comp":"17896441","content":"436b299f"},"/docs/middlewares/http-event-normalizer-442":{"__comp":"17896441","content":"f0136a98"},"/docs/middlewares/http-header-normalizer-614":{"__comp":"17896441","content":"6c4d050a"},"/docs/middlewares/http-json-body-parser-6df":{"__comp":"17896441","content":"01c9695c"},"/docs/middlewares/http-multipart-body-parser-022":{"__comp":"17896441","content":"3db93d31"},"/docs/middlewares/http-partial-response-35c":{"__comp":"17896441","content":"c0ad98a5"},"/docs/middlewares/http-response-serializer-041":{"__comp":"17896441","content":"c2371ba7"},"/docs/middlewares/http-security-headers-410":{"__comp":"17896441","content":"dbc9373d"},"/docs/middlewares/http-urlencode-body-parser-041":{"__comp":"17896441","content":"59ac4306"},"/docs/middlewares/http-urlencode-path-parser-678":{"__comp":"17896441","content":"58ba397f"},"/docs/middlewares/input-output-logger-40b":{"__comp":"17896441","content":"24a252b9"},"/docs/middlewares/intro-e79":{"__comp":"17896441","content":"ad1e712e"},"/docs/middlewares/rds-signer-a53":{"__comp":"17896441","content":"3673b941"},"/docs/middlewares/s3-b3a":{"__comp":"17896441","content":"a17e0e42"},"/docs/middlewares/s3-object-response-5ed":{"__comp":"17896441","content":"1c88510b"},"/docs/middlewares/secrets-manager-381":{"__comp":"17896441","content":"0e90e864"},"/docs/middlewares/service-discovery-d35":{"__comp":"17896441","content":"41b3f383"},"/docs/middlewares/sqs-partial-batch-failure-4f2":{"__comp":"17896441","content":"6a1376e9"},"/docs/middlewares/ssm-42b":{"__comp":"17896441","content":"ff488875"},"/docs/middlewares/sts-522":{"__comp":"17896441","content":"b3edb814"},"/docs/middlewares/third-party-588":{"__comp":"17896441","content":"e0fb88b0"},"/docs/middlewares/validator-37c":{"__comp":"17896441","content":"d0953a14"},"/docs/middlewares/warmup-d75":{"__comp":"17896441","content":"3f569cdf"},"/docs/middlewares/ws-json-body-parser-8b5":{"__comp":"17896441","content":"1e42f3f3"},"/docs/middlewares/ws-response-702":{"__comp":"17896441","content":"2e6cdb22"},"/docs/routers/http-router-9b1":{"__comp":"17896441","content":"654635c7"},"/docs/routers/ws-router-354":{"__comp":"17896441","content":"f33bafb6"},"/docs/upgrade/0-1-95b":{"__comp":"17896441","content":"687b60fb"},"/docs/upgrade/1-2-667":{"__comp":"17896441","content":"7cb784f6"},"/docs/upgrade/2-3-b3c":{"__comp":"17896441","content":"4149078a"},"/docs/upgrade/3-4-809":{"__comp":"17896441","content":"5a01598e"},"/docs/upgrade/4-5-9a2":{"__comp":"17896441","content":"bb2b8b33"},"/docs/writing-middlewares/configurable-middlewares-4e7":{"__comp":"17896441","content":"447662a1"},"/docs/writing-middlewares/inline-middlewares-d97":{"__comp":"17896441","content":"ce7003dc"},"/docs/writing-middlewares/internal-storage-cc1":{"__comp":"17896441","content":"d80baa5c"},"/docs/writing-middlewares/intro-b44":{"__comp":"17896441","content":"08eadb91"},"/docs/writing-middlewares/more-examples-fa2":{"__comp":"17896441","content":"a2b2d33a"},"/docs/writing-middlewares/timeouts-1a6":{"__comp":"17896441","content":"632f0854"},"/docs/writing-middlewares/with-typescript-863":{"__comp":"17896441","content":"49fe1afb"},"/-645":{"__comp":"c4f5d8e4","__context":{"plugin":"871ff594"},"config":"5e9f5e1a"}}')}},e=>{e.O(0,[532],(()=>{return t=7221,e(e.s=t);var t}));e.O()}]); \ No newline at end of file diff --git a/assets/js/main.a6ba7aa7.js.LICENSE.txt b/assets/js/main.be3ccd6b.js.LICENSE.txt similarity index 66% rename from assets/js/main.a6ba7aa7.js.LICENSE.txt rename to assets/js/main.be3ccd6b.js.LICENSE.txt index eb75d6910..ae63de0ab 100644 --- a/assets/js/main.a6ba7aa7.js.LICENSE.txt +++ b/assets/js/main.be3ccd6b.js.LICENSE.txt @@ -1,15 +1,29 @@ -/* -object-assign -(c) Sindre Sorhus -@license MIT -*/ - /* NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress * @license MIT */ +/*! Bundled license information: + +prismjs/prism.js: + (** + * Prism: Lightweight, robust, elegant syntax highlighting + * + * @license MIT <https://opensource.org/licenses/MIT> + * @author Lea Verou <https://lea.verou.me> + * @namespace + * @public + *) +*/ + +/*!*************************************************** +* mark.js v8.11.1 +* https://markjs.io/ +* Copyright (c) 2014–2018, Julian Kühnel +* Released under the MIT license https://git.io/vwTVl +*****************************************************/ + /** * @license React - * use-sync-external-store-shim.production.min.js + * react-dom.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. * @@ -18,16 +32,8 @@ object-assign */ /** - * Prism: Lightweight, robust, elegant syntax highlighting - * - * @license MIT <https://opensource.org/licenses/MIT> - * @author Lea Verou <https://lea.verou.me> - * @namespace - * @public - */ - -/** @license React v0.20.2 - * scheduler.production.min.js + * @license React + * react-jsx-runtime.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. * @@ -35,8 +41,9 @@ object-assign * LICENSE file in the root directory of this source tree. */ -/** @license React v16.13.1 - * react-is.production.min.js +/** + * @license React + * react.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. * @@ -44,8 +51,9 @@ object-assign * LICENSE file in the root directory of this source tree. */ -/** @license React v17.0.2 - * react-dom.production.min.js +/** + * @license React + * scheduler.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. * @@ -53,8 +61,8 @@ object-assign * LICENSE file in the root directory of this source tree. */ -/** @license React v17.0.2 - * react.production.min.js +/** @license React v16.13.1 + * react-is.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. * diff --git a/assets/js/runtime~main.52b6407d.js b/assets/js/runtime~main.52b6407d.js deleted file mode 100644 index 71fac52e0..000000000 --- a/assets/js/runtime~main.52b6407d.js +++ /dev/null @@ -1 +0,0 @@ -(()=>{"use strict";var e,a,f,c,b,d={},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var f=t[e]={id:e,loaded:!1,exports:{}};return d[e].call(f.exports,f,f.exports,r),f.loaded=!0,f.exports}r.m=d,r.c=t,e=[],r.O=(a,f,c,b)=>{if(!f){var d=1/0;for(i=0;i<e.length;i++){f=e[i][0],c=e[i][1],b=e[i][2];for(var t=!0,o=0;o<f.length;o++)(!1&b||d>=b)&&Object.keys(r.O).every((e=>r.O[e](f[o])))?f.splice(o--,1):(t=!1,b<d&&(d=b));if(t){e.splice(i--,1);var n=c();void 0!==n&&(a=n)}}return a}b=b||0;for(var i=e.length;i>0&&e[i-1][2]>b;i--)e[i]=e[i-1];e[i]=[f,c,b]},r.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return r.d(a,{a:a}),a},f=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,c){if(1&c&&(e=this(e)),8&c)return e;if("object"==typeof e&&e){if(4&c&&e.__esModule)return e;if(16&c&&"function"==typeof e.then)return e}var b=Object.create(null);r.r(b);var d={};a=a||[null,f({}),f([]),f(f)];for(var t=2&c&&e;"object"==typeof t&&!~a.indexOf(t);t=f(t))Object.getOwnPropertyNames(t).forEach((a=>d[a]=()=>e[a]));return d.default=()=>e,r.d(b,d),b},r.d=(e,a)=>{for(var f in a)r.o(a,f)&&!r.o(e,f)&&Object.defineProperty(e,f,{enumerable:!0,get:a[f]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((a,f)=>(r.f[f](e,a),a)),[])),r.u=e=>"assets/js/"+({53:"935f2afb",310:"9d560f77",479:"41b3f383",481:"7076eee1",517:"3a74057e",527:"ea2a30f2",711:"7cb784f6",811:"68318e94",836:"0480b142",1073:"aecdbf7e",1098:"24a252b9",1338:"654635c7",1428:"08eadb91",1436:"5e80d65e",1469:"0e90e864",1497:"58ba397f",1531:"ff488875",1544:"19606b2d",1570:"c21432a2",1575:"f0136a98",1702:"7745d517",1721:"cb00b214",1768:"447662a1",1790:"54fc444e",1819:"acb7d57c",1955:"89ce8835",2193:"71d5009c",2201:"a17e0e42",2308:"1124057e",2344:"3673b941",2469:"53f1e98a",2511:"a07e9812",2521:"ace0032f",2600:"667584a0",2786:"171930c3",2803:"b5584809",2932:"c0ad98a5",3085:"1f391b9e",3151:"59ac4306",3181:"590578cb",3295:"01c9695c",3616:"211396ae",3631:"3db93d31",3775:"3f569cdf",3786:"b3edb814",3839:"28b74e92",3955:"f0886e87",4097:"56ed1c64",4183:"4149078a",4195:"c4f5d8e4",4267:"0976e874",4288:"e0fb88b0",4297:"5a01598e",4388:"cd47eedf",4504:"b9c75af0",4510:"b5aee65c",4662:"34ad80cb",4740:"d0953a14",4751:"b5163cd3",4760:"f20815ad",4785:"bff6c11b",4844:"3e0add53",4962:"faf674c6",5024:"70761510",5077:"436b299f",5222:"2f4f2e7a",5258:"a0697f1b",5270:"4924cac4",5341:"1ea8ecd6",5409:"08f83687",5512:"6c4d050a",5686:"646b055a",5709:"44063d41",5774:"2e6cdb22",5853:"34ebece8",5893:"cc16eb0f",5898:"a7c9f8b5",5938:"5afe45f2",6161:"afa23cb9",6172:"796ad5a5",6177:"f9850e34",6238:"028754be",6388:"e1c77d88",6476:"b6b85ed9",6540:"0ce61a91",6827:"54ed1cf2",7276:"ec96ff11",7359:"871ff594",7414:"393be207",7450:"c1378803",7452:"52912c74",7566:"18dc5a76",7677:"e326eb4c",7724:"c2371ba7",7783:"687b60fb",7796:"da0b5c8a",7812:"c4fefc0c",7858:"1c88510b",7918:"17896441",8002:"65ce35be",8086:"00787874",8102:"1e42f3f3",8185:"f33bafb6",8200:"79674995",8365:"73083085",8394:"949815f5",8455:"810a87d2",8471:"b6105e9b",8481:"0d245e6a",8591:"9d43f09c",8644:"6a1376e9",8729:"340d0816",8786:"958c573d",8792:"4f2dd8bc",8841:"f795adf5",8852:"4f3a9363",8931:"b83c886a",8974:"a2b2d33a",9071:"ce7003dc",9076:"49fe1afb",9116:"dbc9373d",9158:"2b234cfe",9235:"ad1e712e",9310:"ecbeea21",9319:"a8e9225e",9502:"a7630442",9514:"1be78505",9576:"a3787fd8",9647:"d80baa5c",9817:"14eb3368",9862:"5018e04c",9868:"3ea7551b",9997:"632f0854"}[e]||e)+"."+{53:"a874467f",310:"5b92a322",479:"75a2c1b8",481:"cddaa659",517:"02bbb660",527:"a26dfc1f",614:"f05f7964",711:"1d2f8128",811:"b49dc391",817:"acd323f2",836:"2ce6d116",1073:"b4cde063",1098:"22d35c69",1338:"104154c4",1428:"076ac5fc",1436:"ffabbe17",1469:"476fdb3c",1497:"3fb458fa",1531:"5e716e72",1544:"bf0a0fac",1570:"6e01ed11",1575:"691c2e87",1702:"2d2d7514",1721:"2e003555",1768:"8b02ebcf",1790:"0c42a823",1819:"ee753c93",1955:"11025618",2193:"8aa8b59c",2201:"956b919b",2308:"0ebbb85e",2344:"c5c1061b",2469:"d91ee413",2511:"570f67a7",2521:"1ea8d713",2572:"2674340a",2600:"b4226377",2786:"6836c4c9",2803:"02995ad9",2932:"bc335e82",3085:"d00ef048",3151:"c8fe2288",3181:"3cdcc18c",3295:"fd5ef393",3616:"3f74e82d",3631:"2b51f15a",3775:"8982d424",3786:"fcce4aa8",3839:"7ddaf793",3955:"66e9b30c",4097:"7b4da069",4183:"8c2f92fe",4195:"1d23cb3f",4204:"f4712634",4267:"32d84b32",4288:"13cf6a48",4297:"3a78e8b4",4388:"d0d50040",4504:"985970de",4510:"3e1c117a",4611:"41e855eb",4662:"03c7cf95",4740:"2238c9da",4751:"99517f24",4760:"2b91d0ca",4785:"16281dcd",4844:"722e2ae5",4962:"4f86d2d2",5024:"57516ede",5077:"45d677cc",5222:"566d032e",5258:"34b26408",5270:"c95f2d0e",5341:"2a0a1656",5409:"0ddc2d24",5512:"93c2ac11",5684:"dbe880ee",5686:"39a57bde",5709:"285d08bf",5774:"6a9600b9",5853:"a2ae2b0f",5893:"468376e3",5898:"b66d0f76",5938:"49392e1d",6161:"0fa71b6e",6172:"678cffcd",6177:"5fcff5e5",6238:"f1113f4c",6388:"b21dea5d",6476:"e8d23ec7",6540:"b731cc1e",6827:"b7de75e2",7276:"a57baaba",7359:"b0be7e78",7414:"9244bc8a",7450:"fdca63ad",7452:"ef791cbf",7566:"e97c80ec",7677:"81365111",7724:"35440969",7783:"c6dbbab9",7796:"53dc03b6",7812:"8bf57f85",7858:"7435c9cb",7918:"bb50e585",8002:"ada22df1",8086:"6320d82a",8102:"078e0838",8185:"b10790f1",8200:"b354a8ed",8365:"12ad991c",8394:"a2e0521d",8455:"6ec98848",8471:"de5af768",8481:"058d9fad",8591:"a980de4d",8644:"f2e2eda2",8729:"1d815217",8786:"1bb3f8f4",8792:"27cee8d8",8841:"157f790c",8852:"c52828e7",8931:"e5d69ed5",8974:"aacf6f8a",9071:"d69c5693",9076:"02921dd7",9116:"0bc90701",9158:"c2d39616",9235:"2fe9c84a",9310:"4b05f2ec",9319:"69182c73",9502:"2196a043",9514:"3f195a9f",9576:"36df0bd8",9647:"65c4f622",9817:"78fc892f",9862:"8b337323",9868:"3ece61f0",9997:"25f656ed"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),c={},b="middy:",r.l=(e,a,f,d)=>{if(c[e])c[e].push(a);else{var t,o;if(void 0!==f)for(var n=document.getElementsByTagName("script"),i=0;i<n.length;i++){var u=n[i];if(u.getAttribute("src")==e||u.getAttribute("data-webpack")==b+f){t=u;break}}t||(o=!0,(t=document.createElement("script")).charset="utf-8",t.timeout=120,r.nc&&t.setAttribute("nonce",r.nc),t.setAttribute("data-webpack",b+f),t.src=e),c[e]=[a];var l=(a,f)=>{t.onerror=t.onload=null,clearTimeout(s);var b=c[e];if(delete c[e],t.parentNode&&t.parentNode.removeChild(t),b&&b.forEach((e=>e(f))),a)return a(f)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=l.bind(null,t.onerror),t.onload=l.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="/",r.gca=function(e){return e={17896441:"7918",70761510:"5024",73083085:"8365",79674995:"8200","935f2afb":"53","9d560f77":"310","41b3f383":"479","7076eee1":"481","3a74057e":"517",ea2a30f2:"527","7cb784f6":"711","68318e94":"811","0480b142":"836",aecdbf7e:"1073","24a252b9":"1098","654635c7":"1338","08eadb91":"1428","5e80d65e":"1436","0e90e864":"1469","58ba397f":"1497",ff488875:"1531","19606b2d":"1544",c21432a2:"1570",f0136a98:"1575","7745d517":"1702",cb00b214:"1721","447662a1":"1768","54fc444e":"1790",acb7d57c:"1819","89ce8835":"1955","71d5009c":"2193",a17e0e42:"2201","1124057e":"2308","3673b941":"2344","53f1e98a":"2469",a07e9812:"2511",ace0032f:"2521","667584a0":"2600","171930c3":"2786",b5584809:"2803",c0ad98a5:"2932","1f391b9e":"3085","59ac4306":"3151","590578cb":"3181","01c9695c":"3295","211396ae":"3616","3db93d31":"3631","3f569cdf":"3775",b3edb814:"3786","28b74e92":"3839",f0886e87:"3955","56ed1c64":"4097","4149078a":"4183",c4f5d8e4:"4195","0976e874":"4267",e0fb88b0:"4288","5a01598e":"4297",cd47eedf:"4388",b9c75af0:"4504",b5aee65c:"4510","34ad80cb":"4662",d0953a14:"4740",b5163cd3:"4751",f20815ad:"4760",bff6c11b:"4785","3e0add53":"4844",faf674c6:"4962","436b299f":"5077","2f4f2e7a":"5222",a0697f1b:"5258","4924cac4":"5270","1ea8ecd6":"5341","08f83687":"5409","6c4d050a":"5512","646b055a":"5686","44063d41":"5709","2e6cdb22":"5774","34ebece8":"5853",cc16eb0f:"5893",a7c9f8b5:"5898","5afe45f2":"5938",afa23cb9:"6161","796ad5a5":"6172",f9850e34:"6177","028754be":"6238",e1c77d88:"6388",b6b85ed9:"6476","0ce61a91":"6540","54ed1cf2":"6827",ec96ff11:"7276","871ff594":"7359","393be207":"7414",c1378803:"7450","52912c74":"7452","18dc5a76":"7566",e326eb4c:"7677",c2371ba7:"7724","687b60fb":"7783",da0b5c8a:"7796",c4fefc0c:"7812","1c88510b":"7858","65ce35be":"8002","00787874":"8086","1e42f3f3":"8102",f33bafb6:"8185","949815f5":"8394","810a87d2":"8455",b6105e9b:"8471","0d245e6a":"8481","9d43f09c":"8591","6a1376e9":"8644","340d0816":"8729","958c573d":"8786","4f2dd8bc":"8792",f795adf5:"8841","4f3a9363":"8852",b83c886a:"8931",a2b2d33a:"8974",ce7003dc:"9071","49fe1afb":"9076",dbc9373d:"9116","2b234cfe":"9158",ad1e712e:"9235",ecbeea21:"9310",a8e9225e:"9319",a7630442:"9502","1be78505":"9514",a3787fd8:"9576",d80baa5c:"9647","14eb3368":"9817","5018e04c":"9862","3ea7551b":"9868","632f0854":"9997"}[e]||e,r.p+r.u(e)},(()=>{var e={1303:0,532:0};r.f.j=(a,f)=>{var c=r.o(e,a)?e[a]:void 0;if(0!==c)if(c)f.push(c[2]);else if(/^(1303|532)$/.test(a))e[a]=0;else{var b=new Promise(((f,b)=>c=e[a]=[f,b]));f.push(c[2]=b);var d=r.p+r.u(a),t=new Error;r.l(d,(f=>{if(r.o(e,a)&&(0!==(c=e[a])&&(e[a]=void 0),c)){var b=f&&("load"===f.type?"missing":f.type),d=f&&f.target&&f.target.src;t.message="Loading chunk "+a+" failed.\n("+b+": "+d+")",t.name="ChunkLoadError",t.type=b,t.request=d,c[1](t)}}),"chunk-"+a,a)}},r.O.j=a=>0===e[a];var a=(a,f)=>{var c,b,d=f[0],t=f[1],o=f[2],n=0;if(d.some((a=>0!==e[a]))){for(c in t)r.o(t,c)&&(r.m[c]=t[c]);if(o)var i=o(r)}for(a&&a(f);n<d.length;n++)b=d[n],r.o(e,b)&&e[b]&&e[b][0](),e[b]=0;return r.O(i)},f=self.webpackChunkmiddy=self.webpackChunkmiddy||[];f.forEach(a.bind(null,0)),f.push=a.bind(null,f.push.bind(f))})()})(); \ No newline at end of file diff --git a/assets/js/runtime~main.e978780c.js b/assets/js/runtime~main.e978780c.js new file mode 100644 index 000000000..86870c07d --- /dev/null +++ b/assets/js/runtime~main.e978780c.js @@ -0,0 +1 @@ +(()=>{"use strict";var e,a,c,b,f,d={},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var c=t[e]={id:e,loaded:!1,exports:{}};return d[e].call(c.exports,c,c.exports,r),c.loaded=!0,c.exports}r.m=d,r.c=t,e=[],r.O=(a,c,b,f)=>{if(!c){var d=1/0;for(i=0;i<e.length;i++){c=e[i][0],b=e[i][1],f=e[i][2];for(var t=!0,o=0;o<c.length;o++)(!1&f||d>=f)&&Object.keys(r.O).every((e=>r.O[e](c[o])))?c.splice(o--,1):(t=!1,f<d&&(d=f));if(t){e.splice(i--,1);var n=b();void 0!==n&&(a=n)}}return a}f=f||0;for(var i=e.length;i>0&&e[i-1][2]>f;i--)e[i]=e[i-1];e[i]=[c,b,f]},r.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return r.d(a,{a:a}),a},c=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,b){if(1&b&&(e=this(e)),8&b)return e;if("object"==typeof e&&e){if(4&b&&e.__esModule)return e;if(16&b&&"function"==typeof e.then)return e}var f=Object.create(null);r.r(f);var d={};a=a||[null,c({}),c([]),c(c)];for(var t=2&b&&e;"object"==typeof t&&!~a.indexOf(t);t=c(t))Object.getOwnPropertyNames(t).forEach((a=>d[a]=()=>e[a]));return d.default=()=>e,r.d(f,d),f},r.d=(e,a)=>{for(var c in a)r.o(a,c)&&!r.o(e,c)&&Object.defineProperty(e,c,{enumerable:!0,get:a[c]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((a,c)=>(r.f[c](e,a),a)),[])),r.u=e=>"assets/js/"+({53:"935f2afb",310:"9d560f77",479:"41b3f383",481:"7076eee1",517:"3a74057e",527:"ea2a30f2",711:"7cb784f6",811:"68318e94",836:"0480b142",1073:"aecdbf7e",1098:"24a252b9",1338:"654635c7",1428:"08eadb91",1436:"5e80d65e",1469:"0e90e864",1497:"58ba397f",1531:"ff488875",1544:"19606b2d",1570:"c21432a2",1575:"f0136a98",1702:"7745d517",1721:"cb00b214",1768:"447662a1",1790:"54fc444e",1819:"acb7d57c",1955:"89ce8835",2193:"71d5009c",2201:"a17e0e42",2308:"1124057e",2344:"3673b941",2469:"53f1e98a",2511:"a07e9812",2521:"ace0032f",2600:"667584a0",2786:"171930c3",2803:"b5584809",2932:"c0ad98a5",3085:"1f391b9e",3151:"59ac4306",3181:"590578cb",3295:"01c9695c",3616:"211396ae",3631:"3db93d31",3775:"3f569cdf",3786:"b3edb814",3839:"28b74e92",3955:"f0886e87",4097:"56ed1c64",4183:"4149078a",4195:"c4f5d8e4",4267:"0976e874",4288:"e0fb88b0",4297:"5a01598e",4368:"a94703ab",4388:"cd47eedf",4504:"b9c75af0",4510:"b5aee65c",4662:"34ad80cb",4740:"d0953a14",4751:"b5163cd3",4760:"f20815ad",4785:"bff6c11b",4844:"3e0add53",4962:"faf674c6",5024:"70761510",5077:"436b299f",5222:"2f4f2e7a",5258:"a0697f1b",5270:"4924cac4",5341:"1ea8ecd6",5409:"08f83687",5512:"6c4d050a",5686:"646b055a",5709:"44063d41",5774:"2e6cdb22",5853:"34ebece8",5893:"cc16eb0f",5898:"a7c9f8b5",5938:"5afe45f2",6161:"afa23cb9",6172:"796ad5a5",6177:"f9850e34",6238:"028754be",6388:"e1c77d88",6476:"b6b85ed9",6540:"0ce61a91",6827:"54ed1cf2",7276:"ec96ff11",7359:"871ff594",7414:"393be207",7450:"c1378803",7452:"52912c74",7566:"18dc5a76",7677:"e326eb4c",7724:"c2371ba7",7783:"687b60fb",7796:"da0b5c8a",7812:"c4fefc0c",7858:"1c88510b",7918:"17896441",8002:"65ce35be",8086:"00787874",8102:"1e42f3f3",8185:"f33bafb6",8200:"79674995",8365:"73083085",8394:"949815f5",8455:"810a87d2",8471:"b6105e9b",8481:"0d245e6a",8518:"a7bd4aaa",8591:"9d43f09c",8644:"6a1376e9",8729:"340d0816",8786:"958c573d",8792:"4f2dd8bc",8841:"f795adf5",8852:"4f3a9363",8931:"b83c886a",8974:"a2b2d33a",9071:"ce7003dc",9076:"49fe1afb",9116:"dbc9373d",9158:"2b234cfe",9235:"ad1e712e",9310:"ecbeea21",9319:"a8e9225e",9502:"a7630442",9576:"a3787fd8",9647:"d80baa5c",9661:"5e95c892",9817:"14eb3368",9862:"5018e04c",9868:"3ea7551b",9905:"bb2b8b33",9997:"632f0854"}[e]||e)+"."+{53:"786a574b",310:"b2ec2bf6",479:"27922243",481:"c00cdf79",517:"9b8516e3",527:"99e73e03",711:"f1547972",811:"f0552e72",836:"6b37e640",1073:"bfba9e83",1098:"8e7b66d3",1338:"dc35b4f1",1428:"d414cd0e",1436:"cbb9295d",1469:"08a6bb8d",1497:"7c21f350",1531:"61c29dc9",1544:"a301c5d4",1570:"2489ca26",1575:"e82a8d57",1702:"16dc1797",1721:"db675edd",1768:"aeee1bc5",1790:"0c797511",1819:"a6d16426",1955:"2c537261",2193:"d9df73e2",2201:"13707390",2308:"7d43e3f2",2344:"491936f4",2469:"4aba1086",2511:"09648006",2521:"98acff1b",2572:"2674340a",2600:"c856e970",2786:"ec33f3de",2803:"8fa6684e",2932:"0edd04da",3085:"f610db05",3151:"a60dbbe2",3181:"2e0473b3",3295:"39e499f3",3616:"75d36224",3631:"cc672540",3775:"559ba438",3786:"faade522",3839:"a703bf53",3955:"a7b07d9a",4097:"6a27c727",4183:"2278715d",4195:"900ed3bc",4204:"f9b87e33",4267:"199a929a",4288:"5d442774",4297:"205a3971",4368:"20bd98ab",4388:"79840171",4504:"f4f3ac3f",4510:"86e1a1d5",4611:"70d0184b",4662:"2d1ee7d2",4740:"7e6317fb",4751:"646f42cd",4760:"322794e6",4785:"fdf7cd1a",4844:"722e2ae5",4962:"f8055c7b",5024:"54dab7d8",5077:"c2d57882",5222:"ef75f68a",5258:"8503c09e",5270:"cf1fb87d",5341:"92667eab",5409:"7ceb497d",5512:"c509b4ce",5684:"dbe880ee",5686:"e743fb12",5709:"44e09010",5774:"ba5d7686",5853:"76fec6af",5893:"4d3bf260",5898:"6238d387",5938:"a47a34d1",6161:"0fa71b6e",6172:"48948616",6177:"e053ea41",6238:"0bb6ca4a",6388:"474a5a04",6476:"f56259e2",6540:"6c5ba8ab",6827:"5990bf7a",7276:"563bae6b",7359:"b0be7e78",7414:"7430aae8",7450:"cea9a565",7452:"167c51c0",7566:"443b3252",7677:"81365111",7724:"0fb54ba7",7783:"12305578",7796:"0de36f7f",7812:"9e140cb7",7858:"b5e5e8bb",7908:"7f651888",7918:"eaee85e9",8002:"70a66fc9",8086:"6320d82a",8102:"82514db2",8185:"1c03333a",8200:"11a9a6a4",8365:"4ed98a51",8394:"49d9a0c3",8455:"6ec98848",8471:"16794ff2",8481:"c757d31e",8518:"baf2abb2",8591:"080e48a0",8644:"81fc68cb",8729:"b964de2f",8786:"2c60aa10",8792:"27cee8d8",8841:"dcb256e5",8852:"4298b16b",8931:"8851a69b",8974:"938a0662",9071:"662df6b1",9076:"0a61e2bb",9116:"2213d515",9158:"881f7894",9235:"e1378430",9286:"2ea53de4",9310:"66be3876",9319:"cbd3d422",9502:"30bdd835",9576:"f9a8a6d5",9647:"ab51e3fa",9661:"601ebc7c",9817:"6c38f63d",9862:"ea56202a",9868:"3ece61f0",9905:"e13464cf",9997:"1a482285"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),b={},f="middy:",r.l=(e,a,c,d)=>{if(b[e])b[e].push(a);else{var t,o;if(void 0!==c)for(var n=document.getElementsByTagName("script"),i=0;i<n.length;i++){var u=n[i];if(u.getAttribute("src")==e||u.getAttribute("data-webpack")==f+c){t=u;break}}t||(o=!0,(t=document.createElement("script")).charset="utf-8",t.timeout=120,r.nc&&t.setAttribute("nonce",r.nc),t.setAttribute("data-webpack",f+c),t.src=e),b[e]=[a];var l=(a,c)=>{t.onerror=t.onload=null,clearTimeout(s);var f=b[e];if(delete b[e],t.parentNode&&t.parentNode.removeChild(t),f&&f.forEach((e=>e(c))),a)return a(c)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=l.bind(null,t.onerror),t.onload=l.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="/",r.gca=function(e){return e={17896441:"7918",70761510:"5024",73083085:"8365",79674995:"8200","935f2afb":"53","9d560f77":"310","41b3f383":"479","7076eee1":"481","3a74057e":"517",ea2a30f2:"527","7cb784f6":"711","68318e94":"811","0480b142":"836",aecdbf7e:"1073","24a252b9":"1098","654635c7":"1338","08eadb91":"1428","5e80d65e":"1436","0e90e864":"1469","58ba397f":"1497",ff488875:"1531","19606b2d":"1544",c21432a2:"1570",f0136a98:"1575","7745d517":"1702",cb00b214:"1721","447662a1":"1768","54fc444e":"1790",acb7d57c:"1819","89ce8835":"1955","71d5009c":"2193",a17e0e42:"2201","1124057e":"2308","3673b941":"2344","53f1e98a":"2469",a07e9812:"2511",ace0032f:"2521","667584a0":"2600","171930c3":"2786",b5584809:"2803",c0ad98a5:"2932","1f391b9e":"3085","59ac4306":"3151","590578cb":"3181","01c9695c":"3295","211396ae":"3616","3db93d31":"3631","3f569cdf":"3775",b3edb814:"3786","28b74e92":"3839",f0886e87:"3955","56ed1c64":"4097","4149078a":"4183",c4f5d8e4:"4195","0976e874":"4267",e0fb88b0:"4288","5a01598e":"4297",a94703ab:"4368",cd47eedf:"4388",b9c75af0:"4504",b5aee65c:"4510","34ad80cb":"4662",d0953a14:"4740",b5163cd3:"4751",f20815ad:"4760",bff6c11b:"4785","3e0add53":"4844",faf674c6:"4962","436b299f":"5077","2f4f2e7a":"5222",a0697f1b:"5258","4924cac4":"5270","1ea8ecd6":"5341","08f83687":"5409","6c4d050a":"5512","646b055a":"5686","44063d41":"5709","2e6cdb22":"5774","34ebece8":"5853",cc16eb0f:"5893",a7c9f8b5:"5898","5afe45f2":"5938",afa23cb9:"6161","796ad5a5":"6172",f9850e34:"6177","028754be":"6238",e1c77d88:"6388",b6b85ed9:"6476","0ce61a91":"6540","54ed1cf2":"6827",ec96ff11:"7276","871ff594":"7359","393be207":"7414",c1378803:"7450","52912c74":"7452","18dc5a76":"7566",e326eb4c:"7677",c2371ba7:"7724","687b60fb":"7783",da0b5c8a:"7796",c4fefc0c:"7812","1c88510b":"7858","65ce35be":"8002","00787874":"8086","1e42f3f3":"8102",f33bafb6:"8185","949815f5":"8394","810a87d2":"8455",b6105e9b:"8471","0d245e6a":"8481",a7bd4aaa:"8518","9d43f09c":"8591","6a1376e9":"8644","340d0816":"8729","958c573d":"8786","4f2dd8bc":"8792",f795adf5:"8841","4f3a9363":"8852",b83c886a:"8931",a2b2d33a:"8974",ce7003dc:"9071","49fe1afb":"9076",dbc9373d:"9116","2b234cfe":"9158",ad1e712e:"9235",ecbeea21:"9310",a8e9225e:"9319",a7630442:"9502",a3787fd8:"9576",d80baa5c:"9647","5e95c892":"9661","14eb3368":"9817","5018e04c":"9862","3ea7551b":"9868",bb2b8b33:"9905","632f0854":"9997"}[e]||e,r.p+r.u(e)},(()=>{var e={1303:0,532:0};r.f.j=(a,c)=>{var b=r.o(e,a)?e[a]:void 0;if(0!==b)if(b)c.push(b[2]);else if(/^(1303|532)$/.test(a))e[a]=0;else{var f=new Promise(((c,f)=>b=e[a]=[c,f]));c.push(b[2]=f);var d=r.p+r.u(a),t=new Error;r.l(d,(c=>{if(r.o(e,a)&&(0!==(b=e[a])&&(e[a]=void 0),b)){var f=c&&("load"===c.type?"missing":c.type),d=c&&c.target&&c.target.src;t.message="Loading chunk "+a+" failed.\n("+f+": "+d+")",t.name="ChunkLoadError",t.type=f,t.request=d,b[1](t)}}),"chunk-"+a,a)}},r.O.j=a=>0===e[a];var a=(a,c)=>{var b,f,d=c[0],t=c[1],o=c[2],n=0;if(d.some((a=>0!==e[a]))){for(b in t)r.o(t,b)&&(r.m[b]=t[b]);if(o)var i=o(r)}for(a&&a(c);n<d.length;n++)f=d[n],r.o(e,f)&&e[f]&&e[f][0](),e[f]=0;return r.O(i)},c=self.webpackChunkmiddy=self.webpackChunkmiddy||[];c.forEach(a.bind(null,0)),c.push=a.bind(null,c.push.bind(c))})()})(); \ No newline at end of file diff --git a/docs/best-practices/bundling/index.html b/docs/best-practices/bundling/index.html index ac0985ed2..2b129b8e0 100644 --- a/docs/best-practices/bundling/index.html +++ b/docs/best-practices/bundling/index.html @@ -1,17 +1,45 @@ <!doctype html> -<html lang="en" dir="ltr" class="docs-wrapper docs-doc-page docs-version-current plugin-docs plugin-id-default docs-doc-id-best-practices/bundling" data-has-hydrated="false"> +<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-best-practices/bundling" data-has-hydrated="false"> <head> <meta charset="UTF-8"> -<meta name="generator" content="Docusaurus v2.4.3"> -<title data-rh="true">Bundling Lambda packages | Middy.js - - + +Bundling Lambda packages | Middy.js + + -
-

Bundling Lambda packages

caution

This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.

Always bundle the @aws-sdk/* with your project eventhough the Lambda runtime already includes it by default (Note: nodejs16.x does not have AWS SDK v3 included). -This gives you full control of when to update the SDK to prevent unexpected errors from a bad SDK version, allows you to ensure that you are running the latest version with the most up to date fixes and features, and has been shown to decrease cold start times.

Compilers

typescript

npm i -D typescript
node_modules/.bin/tsc

tsconfig.json

{
"compilerOptions": {
"baseUrl": "./",
"esModuleInterop": true,
"preserveConstEnums": true,
"strictNullChecks": true,
"allowJs": false,
"target": "es2021",
"typeRoots": ["node_modules/@types"],
"resolveJsonModule": true,
"moduleResolution": "node"
}
}

Bundlers

esbuild

npm i -D esbuild

# --banner:js hack from https://github.com/evanw/esbuild/pull/2067
node_modules/.bin/esbuild index.js \
--platform=node --format=esm --target=node18 --bundle --minify \
--banner:js="import { createRequire } from 'module';const require = createRequire(import.meta.url);" \
--legal-comments=external --sourcemap=external \
--allow-overwrite --outfile=index.mjs

rollup

npm i -D rollup @rollup/plugin-node-resolve @rollup/plugin-commonjs
node_modules/.bin/rollup --config

rollup.config.mjs

import { nodeResolve } from '@rollup/plugin-node-resolve'
import commonjs from '@rollup/plugin-commonjs'

const plugins = [nodeResolve({ preferBuiltins: true }), commonjs()]

export default (input) => ({
input: 'index.js',
output: {
file: 'index.bundle.rollup.mjs',
format: 'es' // cjs, es
},
plugins,
external: [
// AWS SDK
'@aws-sdk/client-apigatewaymanagementapi', // @middy/ws-response
'@aws-sdk/client-rds', // @middy/rds-signer
'@aws-sdk/client-s3', // @middy/s3-object-response
'@aws-sdk/client-secretsmanager', // @middy/sercrets-manager
'@aws-sdk/client-servicediscovery', // @middy/service-discovery
'@aws-sdk/client-ssm', // @middy/ssm
'@aws-sdk/client-sts' // @middy/sts
]
})

swc/pack

npm i -D @swc/cli @swc/core
node_modules/.bin/spack
caution

Incomplete

webpack

npm i -D webpack-cli webpack
node_modules/.bin/webpack

webpack.config.mjs

import path from 'node:path'
import { fileURLToPath } from 'node:url'

const __filename = fileURLToPath(import.meta.url)
const __dirname = path.dirname(__filename)

export default {
mode: 'development',
entry: './index.js',
output: {
filename: 'index.bundle.webpack.mjs',
path: __dirname
},
experiments: {
outputModule: true
},
externals: [
// NodeJS modules
'events', // @middy/core
'https', // @middy/s3-object-response
'stream', // @middy/http-content-encoding @middy/s3-object-response
'util', // @middy/http-content-encoding
'zlib', // @middy/http-content-encoding
// AWS SDK
'@aws-sdk/client-apigatewaymanagementapi', // @middy/ws-response
'@aws-sdk/client-rds', // @middy/rds-signer
'@aws-sdk/client-s3', // @middy/s3-object-response
'@aws-sdk/client-secretsmanager', // @middy/sercrets-manager
'@aws-sdk/client-servicediscovery', // @middy/service-discovery
'@aws-sdk/client-ssm', // @middy/ssm
'@aws-sdk/client-sts' // @middy/sts
]
}

Transpilers

babel

npm i -D @babel/cli @babel/core @babel/preset-env
node_modules/.bin/babel index.js --out-file index.transpile.babel.cjs

babel.config.json

{
"presets": [
[
"@babel/preset-env",
{
"targets": {
"node": "16"
}
}
]
]
}

esbuild

npm i -D esbuild
node_modules/.bin/esbuild --platform=node --target=node16 --format=cjs index.js --outfile=index.cjs

swc

npm i -D @swc/cli @swc/core
node_modules/.bin/swc index.js --out-file index.transpile.swc.cjs

.swcrc

{
"jsc": {
"parser": {
"syntax": "ecmascript"
},
"target": "es2021"
},
"module": {
"type": "commonjs"
}
}
- - +

Bundling Lambda packages

caution

This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.

+

Always bundle the @aws-sdk/* with your project eventhough the Lambda runtime already includes it by default (Note: nodejs16.x does not have AWS SDK v3 included). +This gives you full control of when to update the SDK to prevent unexpected errors from a bad SDK version, allows you to ensure that you are running the latest version with the most up to date fixes and features, and has been shown to decrease cold start times.

+

Compilers

+

typescript

+
npm i -D typescript
node_modules/.bin/tsc
+

tsconfig.json

+
{
"compilerOptions": {
"baseUrl": "./",
"esModuleInterop": true,
"preserveConstEnums": true,
"strictNullChecks": true,
"allowJs": false,
"target": "es2021",
"typeRoots": ["node_modules/@types"],
"resolveJsonModule": true,
"moduleResolution": "node"
}
}
+

Bundlers

+

esbuild

+
npm i -D esbuild

# --banner:js hack from https://github.com/evanw/esbuild/pull/2067
node_modules/.bin/esbuild index.js \
--platform=node --format=esm --target=node18 --bundle --minify \
--banner:js="import { createRequire } from 'module';const require = createRequire(import.meta.url);" \
--legal-comments=external --sourcemap=external \
--allow-overwrite --outfile=index.mjs

+

rollup

+
npm i -D rollup @rollup/plugin-node-resolve @rollup/plugin-commonjs
node_modules/.bin/rollup --config
+

rollup.config.mjs

+
import { nodeResolve } from '@rollup/plugin-node-resolve'
import commonjs from '@rollup/plugin-commonjs'

const plugins = [nodeResolve({ preferBuiltins: true }), commonjs()]

export default (input) => ({
input: 'index.js',
output: {
file: 'index.bundle.rollup.mjs',
format: 'es' // cjs, es
},
plugins,
external: [
// AWS SDK
'@aws-sdk/client-apigatewaymanagementapi', // @middy/ws-response
'@aws-sdk/client-rds', // @middy/rds-signer
'@aws-sdk/client-s3', // @middy/s3-object-response
'@aws-sdk/client-secretsmanager', // @middy/sercrets-manager
'@aws-sdk/client-servicediscovery', // @middy/service-discovery
'@aws-sdk/client-ssm', // @middy/ssm
'@aws-sdk/client-sts' // @middy/sts
]
})
+

swc/pack

+
npm i -D @swc/cli @swc/core
node_modules/.bin/spack
+
caution

Incomplete

+

webpack

+
npm i -D webpack-cli webpack
node_modules/.bin/webpack
+

webpack.config.mjs

+
import path from 'node:path'
import { fileURLToPath } from 'node:url'

const __filename = fileURLToPath(import.meta.url)
const __dirname = path.dirname(__filename)

export default {
mode: 'development',
entry: './index.js',
output: {
filename: 'index.bundle.webpack.mjs',
path: __dirname
},
experiments: {
outputModule: true
},
externals: [
// NodeJS modules
'events', // @middy/core
'https', // @middy/s3-object-response
'stream', // @middy/http-content-encoding @middy/s3-object-response
'util', // @middy/http-content-encoding
'zlib', // @middy/http-content-encoding
// AWS SDK
'@aws-sdk/client-apigatewaymanagementapi', // @middy/ws-response
'@aws-sdk/client-rds', // @middy/rds-signer
'@aws-sdk/client-s3', // @middy/s3-object-response
'@aws-sdk/client-secretsmanager', // @middy/sercrets-manager
'@aws-sdk/client-servicediscovery', // @middy/service-discovery
'@aws-sdk/client-ssm', // @middy/ssm
'@aws-sdk/client-sts' // @middy/sts
]
}
+

Transpilers

+

babel

+
npm i -D @babel/cli @babel/core @babel/preset-env
node_modules/.bin/babel index.js --out-file index.transpile.babel.cjs
+

babel.config.json

+
{
"presets": [
[
"@babel/preset-env",
{
"targets": {
"node": "16"
}
}
]
]
}
+

esbuild

+
npm i -D esbuild
node_modules/.bin/esbuild --platform=node --target=node16 --format=cjs index.js --outfile=index.cjs
+

swc

+
npm i -D @swc/cli @swc/core
node_modules/.bin/swc index.js --out-file index.transpile.swc.cjs
+

.swcrc

+
{
"jsc": {
"parser": {
"syntax": "ecmascript"
},
"target": "es2021"
},
"module": {
"type": "commonjs"
}
}
\ No newline at end of file diff --git a/docs/best-practices/connection-reuse/index.html b/docs/best-practices/connection-reuse/index.html index c394b119e..1d00e554c 100644 --- a/docs/best-practices/connection-reuse/index.html +++ b/docs/best-practices/connection-reuse/index.html @@ -1,16 +1,16 @@ - + - -Connection reuse | Middy.js - - + +Connection reuse | Middy.js + + -
-
- - +
\ No newline at end of file diff --git a/docs/best-practices/internal-context/index.html b/docs/best-practices/internal-context/index.html index e05e50304..3cb106afd 100644 --- a/docs/best-practices/internal-context/index.html +++ b/docs/best-practices/internal-context/index.html @@ -1,17 +1,15 @@ - + - -Internal Context | Middy.js - - + +Internal Context | Middy.js + + -
-

Internal Context

Middy is built to be async even at it's core. Middlewares can set promises to internal. -This approach allows them to be resolved together just when you need them.

import middy from '@middy/core'
import {getInternal} from '@middy/util'

const config = {
internal: new Proxy({}, {
get: (target, prop, receiver) => {
// ...
return Reflect.get(...arguments)
},
set: (obj, prop, value) => {
// ... ie if `prop` changes, trigger something
obj[prop] = value
return true
}
})
}

export const handler = middy()
// Incase you want to add values on to internal directly
.before((async (request) => {
request.internal = {
env: process.env.NODE_ENV
}
}))
.use(sts(...))
.use(ssm(...))
.use(rdsSigner(...))
.use(secretsManager(...))
.before(async (request) => {
// internal == { key: 'value' }

// Map with same name
Object.assign(request.context, await getInternal(['key'], request))
// -> context == { key: 'value'}

// Map to new name
Object.assign(request.context, await getInternal({'newKey':'key'}, request))
// -> context == { newKey: 'value'}

// get all the values, only if you really need to,
// but you should only request what you need for the handler
Object.assign(request.context, await getInternal(true, request))
// -> context == { key: 'value'}
})
.handler(async (event, context, { signal }) => {

})
- - +

Internal Context

Middy is built to be async even at it's core. Middlewares can set promises to internal. +This approach allows them to be resolved together just when you need them.

+
import middy from '@middy/core'
import {getInternal} from '@middy/util'

const lambdaHandler = async (event, context, { signal }) => {

}

const config = {
internal: new Proxy({}, {
get: (target, prop, receiver) => {
// ...
return Reflect.get(...arguments)
},
set: (obj, prop, value) => {
// ... ie if `prop` changes, trigger something
obj[prop] = value
return true
}
})
}

export const handler = middy(config)
// Incase you want to add values on to internal directly
.before((async (request) => {
request.internal = {
env: process.env.NODE_ENV
}
}))
.use(sts(...))
.use(ssm(...))
.use(rdsSigner(...))
.use(secretsManager(...))
.before(async (request) => {
// internal == { key: 'value' }

// Map with same name
Object.assign(request.context, await getInternal(['key'], request))
// -> context == { key: 'value'}

// Map to new name
Object.assign(request.context, await getInternal({'newKey':'key'}, request))
// -> context == { newKey: 'value'}

// get all the values, only if you really need to,
// but you should only request what you need for the handler
Object.assign(request.context, await getInternal(true, request))
// -> context == { key: 'value'}
})
.handler(lambdaHandler)
\ No newline at end of file diff --git a/docs/best-practices/intro/index.html b/docs/best-practices/intro/index.html index d864d8c69..779bce685 100644 --- a/docs/best-practices/intro/index.html +++ b/docs/best-practices/intro/index.html @@ -1,16 +1,14 @@ - + - -Intro | Middy.js - - + +Intro | Middy.js + + -
-

Intro

In this section you will find some common tips and tricks to ensure you don't hit any performance or security issues.

Did we miss something? Let us know.

- - +

Intro

In this section you will find some common tips and tricks to ensure you don't hit any performance or security issues.

+

Did we miss something? Let us know.

\ No newline at end of file diff --git a/docs/best-practices/profiling/index.html b/docs/best-practices/profiling/index.html index 7cbd66c59..42a8f456e 100644 --- a/docs/best-practices/profiling/index.html +++ b/docs/best-practices/profiling/index.html @@ -1,22 +1,28 @@ - + - -Profiling | Middy.js - - + +Profiling | Middy.js + + -
-

Profiling

Inside of @middy/core we've added some hook before and after every middleware called, the handler and from start to end of it's execution.

Time


const defaults = {
logger: console.log,
enabled: true
}

const timePlugin = (opts = {}) => {
const { logger, enabled } = { ...defaults, ...opts }
const store = {}

const start = (id) => {
store[id] = process.hrtime.bigint()
}
const stop = (id) => {
if (!enabled) return
logger(id, Number.parseInt((process.hrtime.bigint() - store[id]).toString()) / 1000000, 'ms')
}

// Only run during cold start
const beforePrefetch = () => start('total')
const requestStart = () => {
if (!store.init) {
store.init = store.total
stop('init')
} else {
start('total')
}
}
const beforeMiddleware = start
const afterMiddleware = stop
const beforeHandler = () => start('handler')
const afterHandler = () => stop('handler')
const requestEnd = () => stop('total')

return {
beforePrefetch,
requestStart,
beforeMiddleware,
afterMiddleware,
beforeHandler,
afterHandler,
requestEnd
}
}

export const handler = middy(timePlugin())
.use(eventLogger())
.use(errorLogger())
.use(httpEventNormalizer())
.use(httpHeaderNormalizer())
.use(httpUrlencodePathParametersParser())
.use(httpUrlencodeBodyParser())
.use(httpJsonBodyParser())
.use(httpCors())
.use(httpSecurityHeaders())
.use(validator({eventSchema}))
.handler(()=>{})

await handler()

This will log out something this:

inputOutputLoggerMiddlewareBefore 0.156033 ms
httpEventNormalizerMiddlewareBefore 0.073921 ms
httpHeaderNormalizerMiddlewareBefore 0.095098 ms
httpUrlencodePathParserMiddlewareBefore 0.036255 ms
httpUrlencodeBodyParserMiddlewareBefore 0.038809 ms
httpJsonBodyParserMiddlewareBefore 0.048383 ms
httpContentNegotiationMiddlewareBefore 0.042311 ms
validatorMiddlewareBefore 0.083366 ms
handler 0.094875 ms
validatorMiddlewareAfter 0.083601 ms
httpSecurityHeadersMiddlewareAfter 0.19702 ms
httpCorsMiddlewareAfter 0.080532 ms
inputOutputLoggerMiddlewareAfter 0.066886 ms
lambda 66.141835 ms

From this everything looks good. Sub 1ms for every middleware and the handler. But wait, that total doesn't look right. +

Profiling

Inside of @middy/core we've added some hook before and after every middleware called, the handler and from start to end of it's execution.

+

Time

+

const defaults = {
logger: console.log,
enabled: true
}

const timePlugin = (opts = {}) => {
const { logger, enabled } = { ...defaults, ...opts }
const store = {}

const start = (id) => {
store[id] = process.hrtime.bigint()
}
const stop = (id) => {
if (!enabled) return
logger(id, Number.parseInt((process.hrtime.bigint() - store[id]).toString()) / 1000000, 'ms')
}

// Only run during cold start
const beforePrefetch = () => start('total')
const requestStart = () => {
if (!store.init) {
store.init = store.total
stop('init')
} else {
start('total')
}
}
const beforeMiddleware = start
const afterMiddleware = stop
const beforeHandler = () => start('handler')
const afterHandler = () => stop('handler')
const requestEnd = () => stop('total')

return {
beforePrefetch,
requestStart,
beforeMiddleware,
afterMiddleware,
beforeHandler,
afterHandler,
requestEnd
}
}

export const handler = middy(timePlugin())
.use(eventLogger())
.use(errorLogger())
.use(httpEventNormalizer())
.use(httpHeaderNormalizer())
.use(httpUrlencodePathParametersParser())
.use(httpUrlencodeBodyParser())
.use(httpJsonBodyParser())
.use(httpCors())
.use(httpSecurityHeaders())
.use(validator({eventSchema}))
.handler(()=>{})

await handler()
+

This will log out something this:

+
inputOutputLoggerMiddlewareBefore 0.156033 ms
httpEventNormalizerMiddlewareBefore 0.073921 ms
httpHeaderNormalizerMiddlewareBefore 0.095098 ms
httpUrlencodePathParserMiddlewareBefore 0.036255 ms
httpUrlencodeBodyParserMiddlewareBefore 0.038809 ms
httpJsonBodyParserMiddlewareBefore 0.048383 ms
httpContentNegotiationMiddlewareBefore 0.042311 ms
validatorMiddlewareBefore 0.083366 ms
handler 0.094875 ms
validatorMiddlewareAfter 0.083601 ms
httpSecurityHeadersMiddlewareAfter 0.19702 ms
httpCorsMiddlewareAfter 0.080532 ms
inputOutputLoggerMiddlewareAfter 0.066886 ms
lambda 66.141835 ms
+

From this everything looks good. Sub 1ms for every middleware and the handler. But wait, that total doesn't look right. You're correct, total includes the initial setup time (or cold start time) for all middlewares. In this case validator is the culprit. The Ajv constructor and compiler do a lot of magic when they first run to get ready for later schema validations. This is why in the validator middleware we now support passing in complied schema and expose the default compiler in -case you want to use it in a build step. We hope this feature will help to you in identify slow middlewares and improve your development experience.

There is also a beforeRequest hook, but was left out of the example for dramatic effect.

Additionally, you'll notice that each middleware shows a descriptive name. This is printing out the function name passed into middy core. +case you want to use it in a build step. We hope this feature will help to you in identify slow middlewares and improve your development experience.

+

There is also a beforeRequest hook, but was left out of the example for dramatic effect.

+

Additionally, you'll notice that each middleware shows a descriptive name. This is printing out the function name passed into middy core. If you've looked at the code for some the supported middlewares, you'll see these long descriptive variable names being set, then returned. -This is why.

Memory

import memwatch from '@airbnb/node-memwatch'

const defaults = {
logger: console.log
}

const memoryPlugin = (opts = {}) => {
const { logger } = { ...defaults, ...opts }
const store = {}

const start = (id) => {
store[id] = new memwatch.HeapDiff()
}
const stop = (id) => {
logger(id, store[id].end())
}

const beforePrefetch = () => start('total')
const requestStart = () => {
store.init = store.total
stop('init')
}
const beforeMiddleware = start
const afterMiddleware = stop
const beforeHandler = () => start('handler')
const afterHandler = () => stop('handler')
const requestEnd = () => stop('total')

return {
beforePrefetch,
requestStart,
beforeMiddleware,
afterMiddleware,
beforeHandler,
afterHandler,
requestEnd
}
}

export const handler = middy(memoryPlugin())
.use(eventLogger())
.use(errorLogger())
.use(httpEventNormalizer())
.use(httpHeaderNormalizer())
.use(httpUrlencodePathParametersParser())
.use(httpUrlencodeBodyParser())
.use(httpJsonBodyParser())
.use(httpCors())
.use(httpSecurityHeaders())
.use(validator({eventSchema}))
.handler(()=>{})

await handler()
- - +This is why.

+

Memory

+
import memwatch from '@airbnb/node-memwatch'

const defaults = {
logger: console.log
}

const memoryPlugin = (opts = {}) => {
const { logger } = { ...defaults, ...opts }
const store = {}

const start = (id) => {
store[id] = new memwatch.HeapDiff()
}
const stop = (id) => {
logger(id, store[id].end())
}

const beforePrefetch = () => start('total')
const requestStart = () => {
store.init = store.total
stop('init')
}
const beforeMiddleware = start
const afterMiddleware = stop
const beforeHandler = () => start('handler')
const afterHandler = () => stop('handler')
const requestEnd = () => stop('total')

return {
beforePrefetch,
requestStart,
beforeMiddleware,
afterMiddleware,
beforeHandler,
afterHandler,
requestEnd
}
}

export const handler = middy(memoryPlugin())
.use(eventLogger())
.use(errorLogger())
.use(httpEventNormalizer())
.use(httpHeaderNormalizer())
.use(httpUrlencodePathParametersParser())
.use(httpUrlencodeBodyParser())
.use(httpJsonBodyParser())
.use(httpCors())
.use(httpSecurityHeaders())
.use(validator({eventSchema}))
.handler(()=>{})

await handler()
\ No newline at end of file diff --git a/docs/best-practices/small-node-modules/index.html b/docs/best-practices/small-node-modules/index.html index c996714e8..781e6ac58 100644 --- a/docs/best-practices/small-node-modules/index.html +++ b/docs/best-practices/small-node-modules/index.html @@ -1,16 +1,16 @@ - + - -Small node_modules | Middy.js - - + +Small node_modules | Middy.js + + -
-

Small node_modules

Using a bundler is the optimal solution, but can be complex depending on your setup.

In this case you should remove excess files from your node_modules directory to ensure it doesn't have anything excess shipped to AWS.

We put together a .yarnclean file you can check out and use as part of your CI/CD process:

.yarnclean
# -- Middy.js --

# Dependencies
**/ajv/lib
**/ajv/.runkit_examples.js
**/ajv-errors/src
**/ajv-formats/src
**/ajv-formats-draft2019/.github
**/ajv-formats-draft2019/.prettierrc.js
**/ajv-formats-draft2019/index.test.js
**/ajv-i18n/localize/.eslintrc.yml
**/json-mask/bin
**/json-mask/build
**/qs/.github
**/qs/dist
**/qs/test
**/qs/.editorconfig
**/qs/.eslintrc
**/qs/.nycrc
**/qs/CHANGELOG.md

# DevDependencies
**/@types
**/@serverless/event-mocks

## Sub[/Sub] Dependencies
**/bowser/src
**/bowser/bundled.js
**/dicer/bench
**/dicer/test
**/inherits/inherits_browser.js
**/json-schema-traverse/.github
**/json-schema-traverse/spec
**/fast-deep-equal/es6
**/fast-deep-equal/react.js
**/querystring/test
**/react-native-get-random-values/android
**/react-native-get-random-values/ios
**/react-native-get-random-values/index.web.js
**/react-native-get-random-values/react-native-get-random-values.podspec
**/setprototypeof/test
**/tslib
**/uri-js/dist/esnext
**/url/.zuul.yml
**/url/test.js
**/uuid/bin

# Builds
*.ts
tsconfig.json
*.js.map
package-lock.json
yarn.lock
.travis.yml

# Common
.bin
.cache
.editorconfig
.eslintignore
.eslintrc
.eslintrc.yml
.gitattributes
.npmignore
AUTHORS
LICENSE
*.md
*.txt
- - +

Small node_modules

Using a bundler is the optimal solution, but can be complex depending on your setup.

+

In this case you should remove excess files from your node_modules directory to ensure it doesn't have anything excess shipped to AWS.

+

We put together a .yarnclean file you can check out and use as part of your CI/CD process:

+
.yarnclean
# -- Middy.js --

# Dependencies
**/ajv/lib
**/ajv/.runkit_examples.js
**/ajv-errors/src
**/ajv-formats/src
**/ajv-formats-draft2019/.github
**/ajv-formats-draft2019/.prettierrc.js
**/ajv-formats-draft2019/index.test.js
**/ajv-i18n/localize/.eslintrc.yml
**/json-mask/bin
**/json-mask/build
**/qs/.github
**/qs/dist
**/qs/test
**/qs/.editorconfig
**/qs/.eslintrc
**/qs/.nycrc
**/qs/CHANGELOG.md

# DevDependencies
**/@types
**/@serverless/event-mocks

## Sub[/Sub] Dependencies
**/bowser/src
**/bowser/bundled.js
**/dicer/bench
**/dicer/test
**/inherits/inherits_browser.js
**/json-schema-traverse/.github
**/json-schema-traverse/spec
**/fast-deep-equal/es6
**/fast-deep-equal/react.js
**/querystring/test
**/react-native-get-random-values/android
**/react-native-get-random-values/ios
**/react-native-get-random-values/index.web.js
**/react-native-get-random-values/react-native-get-random-values.podspec
**/setprototypeof/test
**/tslib
**/uri-js/dist/esnext
**/url/.zuul.yml
**/url/test.js
**/uuid/bin

# Builds
*.ts
tsconfig.json
*.js.map
package-lock.json
yarn.lock
.travis.yml

# Common
.bin
.cache
.editorconfig
.eslintignore
.eslintrc
.eslintrc.yml
.gitattributes
.npmignore
AUTHORS
LICENSE
*.md
*.txt
\ No newline at end of file diff --git a/docs/category/aws-event-examples/index.html b/docs/category/aws-event-examples/index.html index a3c1b4f84..7474ce072 100644 --- a/docs/category/aws-event-examples/index.html +++ b/docs/category/aws-event-examples/index.html @@ -1,16 +1,13 @@ - + - -AWS Event Examples | Middy.js - - + +AWS Event Examples | Middy.js + + -
-

AWS Event Examples

- - +

AWS Event Examples

\ No newline at end of file diff --git a/docs/category/best-practices/index.html b/docs/category/best-practices/index.html index 181ea453d..dce052874 100644 --- a/docs/category/best-practices/index.html +++ b/docs/category/best-practices/index.html @@ -1,16 +1,13 @@ - + - -Best Practices | Middy.js - - + +Best Practices | Middy.js + + - - - + \ No newline at end of file diff --git a/docs/category/integrations/index.html b/docs/category/integrations/index.html index 157700634..1b37c2065 100644 --- a/docs/category/integrations/index.html +++ b/docs/category/integrations/index.html @@ -1,16 +1,13 @@ - + - -Integrations | Middy.js - - + +Integrations | Middy.js + + -
-
- - +
\ No newline at end of file diff --git a/docs/category/intro-to-middy/index.html b/docs/category/intro-to-middy/index.html index 204b056dd..03ad1992b 100644 --- a/docs/category/intro-to-middy/index.html +++ b/docs/category/intro-to-middy/index.html @@ -1,16 +1,13 @@ - + - -Middy Intro | Middy.js - - + +Middy Intro | Middy.js + + -
-

Middy Intro

- - +

Middy Intro

\ No newline at end of file diff --git a/docs/category/middlewares/index.html b/docs/category/middlewares/index.html index fc7b25f74..173232402 100644 --- a/docs/category/middlewares/index.html +++ b/docs/category/middlewares/index.html @@ -1,16 +1,13 @@ - + - -Middlewares | Middy.js - - + +Middlewares | Middy.js + + -
-

Middlewares

- - +

Middlewares

\ No newline at end of file diff --git a/docs/category/routers/index.html b/docs/category/routers/index.html index b188310df..539de2cea 100644 --- a/docs/category/routers/index.html +++ b/docs/category/routers/index.html @@ -1,16 +1,13 @@ - + - -Routers | Middy.js - - + +Routers | Middy.js + + - - - + \ No newline at end of file diff --git a/docs/category/upgrade/index.html b/docs/category/upgrade/index.html index 82bd4097b..ad66b9301 100644 --- a/docs/category/upgrade/index.html +++ b/docs/category/upgrade/index.html @@ -1,16 +1,13 @@ - + - -Upgrade | Middy.js - - + +Upgrade | Middy.js + + - - - + \ No newline at end of file diff --git a/docs/category/writing-middlewares/index.html b/docs/category/writing-middlewares/index.html index 222aa5821..e4a7e356b 100644 --- a/docs/category/writing-middlewares/index.html +++ b/docs/category/writing-middlewares/index.html @@ -1,16 +1,13 @@ - + - -Writing Middlewares | Middy.js - - + +Writing Middlewares | Middy.js + + - - - + \ No newline at end of file diff --git a/docs/events/alexa/index.html b/docs/events/alexa/index.html index a9d168d47..f17752a25 100644 --- a/docs/events/alexa/index.html +++ b/docs/events/alexa/index.html @@ -1,16 +1,19 @@ - + - -Alexa | Middy.js - - + +Alexa | Middy.js + + - - - + \ No newline at end of file diff --git a/docs/events/api-gateway-authorizer/index.html b/docs/events/api-gateway-authorizer/index.html index c129f6461..d128b86b8 100644 --- a/docs/events/api-gateway-authorizer/index.html +++ b/docs/events/api-gateway-authorizer/index.html @@ -1,16 +1,20 @@ - + - -API Gateway Authorizer | Middy.js - - + +API Gateway Authorizer | Middy.js + + - - - + \ No newline at end of file diff --git a/docs/events/api-gateway-http/index.html b/docs/events/api-gateway-http/index.html index 669959f69..02d5ba461 100644 --- a/docs/events/api-gateway-http/index.html +++ b/docs/events/api-gateway-http/index.html @@ -1,16 +1,20 @@ - + - -API Gateway (HTTP) | Middy.js - - + +API Gateway (HTTP) | Middy.js + + -
-

API Gateway (HTTP)

caution

This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.

AWS Documentation

Example

import middy from '@middy/core'
import errorLoggerMiddleware from '@middy/error-logger'
import inputOutputLoggerMiddleware from '@middy/input-output-logger'
import httpContentNegotiationMiddleware from '@middy/http-content-negotiation'
import httpContentEncodingMiddleware from '@middy/http-content-encoding'
import httpCorsMiddleware from '@middy/http-cors'
import httpErrorHandlerMiddleware from '@middy/http-error-handler'
import httpEventNormalizerMiddleware from '@middy/http-event-normalizer'
import httpHeaderNormalizerMiddleware from '@middy/http-header-normalizer'
import httpJsonBodyParserMiddleware from '@middy/http-json-body-parser'
import httpMultipartBodyParserMiddleware from '@middy/http-multipart-body-parser'
import httpPartialResponseMiddleware from '@middy/http-partial-response'
import httpResponseSerializerMiddleware from '@middy/http-response-serializer'
import httpSecurityHeadersMiddleware from '@middy/http-security-headers'
import httpUrlencodeBodyParserMiddleware from '@middy/http-urlencode-body-parser'
import httpUrlencodePathParametersParserMiddleware from '@middy/http-urlencode-path-parser'
import validatorMiddleware from 'validator'
import warmupMiddleware from 'warmup'

import eventSchema from './eventSchema.json' assert { type: 'json' }
import responseSchema from './responseSchema.json' assert { type: 'json' }

export const handler = middy({
timeoutEarlyResponse: () => {
return {
statusCode: 408
}
}
})
.use(warmupMiddleware())
.use(httpEventNormalizerMiddleware())
.use(httpHeaderNormalizerMiddleware())
.use(
httpContentNegotiationMiddleware({
availableLanguages: ['en-CA', 'fr-CA'],
availableMediaTypes: ['application/json']
})
)
.use(httpUrlencodePathParametersParserMiddleware())
// Start oneOf
.use(httpUrlencodeBodyParserMiddleware())
.use(httpJsonBodyParserMiddleware())
.use(httpMultipartBodyParserMiddleware())
// End oneOf
.use(httpSecurityHeadersMiddleware())
.use(httpCorsMiddleware())
.use(httpContentEncodingMiddleware())
.use(
httpResponseSerializerMiddleware({
serializers: [
{
regex: /^application\/json$/,
serializer: ({ body }) => JSON.stringify(body)
}
],
default: 'application/json'
})
)
.use(httpPartialResponseMiddleware())
.use(validatorMiddleware({ eventSchema, responseSchema }))
.use(httpErrorHandlerMiddleware())
.handler((event, context, { signal }) => {
// ...
})
- - +

API Gateway (HTTP)

caution

This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.

+

AWS Documentation

+ +

Example

+
import middy from '@middy/core'
import errorLoggerMiddleware from '@middy/error-logger'
import inputOutputLoggerMiddleware from '@middy/input-output-logger'
import httpContentNegotiationMiddleware from '@middy/http-content-negotiation'
import httpContentEncodingMiddleware from '@middy/http-content-encoding'
import httpCorsMiddleware from '@middy/http-cors'
import httpErrorHandlerMiddleware from '@middy/http-error-handler'
import httpEventNormalizerMiddleware from '@middy/http-event-normalizer'
import httpHeaderNormalizerMiddleware from '@middy/http-header-normalizer'
import httpJsonBodyParserMiddleware from '@middy/http-json-body-parser'
import httpMultipartBodyParserMiddleware from '@middy/http-multipart-body-parser'
import httpPartialResponseMiddleware from '@middy/http-partial-response'
import httpResponseSerializerMiddleware from '@middy/http-response-serializer'
import httpSecurityHeadersMiddleware from '@middy/http-security-headers'
import httpUrlencodeBodyParserMiddleware from '@middy/http-urlencode-body-parser'
import httpUrlencodePathParametersParserMiddleware from '@middy/http-urlencode-path-parser'
import validatorMiddleware from 'validator'
import warmupMiddleware from 'warmup'

import eventSchema from './eventSchema.json' assert { type: 'json' }
import responseSchema from './responseSchema.json' assert { type: 'json' }

export const handler = middy({
timeoutEarlyResponse: () => {
return {
statusCode: 408
}
}
})
.use(warmupMiddleware())
.use(httpEventNormalizerMiddleware())
.use(httpHeaderNormalizerMiddleware())
.use(
httpContentNegotiationMiddleware({
availableLanguages: ['en-CA', 'fr-CA'],
availableMediaTypes: ['application/json']
})
)
.use(httpUrlencodePathParametersParserMiddleware())
// Start oneOf
.use(httpUrlencodeBodyParserMiddleware())
.use(httpJsonBodyParserMiddleware())
.use(httpMultipartBodyParserMiddleware())
// End oneOf
.use(httpSecurityHeadersMiddleware())
.use(httpCorsMiddleware())
.use(httpContentEncodingMiddleware())
.use(
httpResponseSerializerMiddleware({
serializers: [
{
regex: /^application\/json$/,
serializer: ({ body }) => JSON.stringify(body)
}
],
default: 'application/json'
})
)
.use(httpPartialResponseMiddleware())
.use(validatorMiddleware({ eventSchema, responseSchema }))
.use(httpErrorHandlerMiddleware())
.handler((event, context, { signal }) => {
// ...
})
\ No newline at end of file diff --git a/docs/events/api-gateway-rest/index.html b/docs/events/api-gateway-rest/index.html index 92cae3179..16bc2ff43 100644 --- a/docs/events/api-gateway-rest/index.html +++ b/docs/events/api-gateway-rest/index.html @@ -1,16 +1,20 @@ - + - -API Gateway (REST) | Middy.js - - + +API Gateway (REST) | Middy.js + + -
-

API Gateway (REST)

caution

This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.

AWS Documentation

Example

import middy from '@middy/core'
import errorLoggerMiddleware from '@middy/error-logger'
import inputOutputLoggerMiddleware from '@middy/input-output-logger'
import httpContentNegotiationMiddleware from '@middy/http-content-negotiation'
import httpContentEncodingMiddleware from '@middy/http-content-encoding'
import httpCorsMiddleware from '@middy/http-cors'
import httpErrorHandlerMiddleware from '@middy/http-error-handler'
import httpEventNormalizerMiddleware from '@middy/http-event-normalizer'
import httpHeaderNormalizerMiddleware from '@middy/http-header-normalizer'
import httpJsonBodyParserMiddleware from '@middy/http-json-body-parser'
import httpMultipartBodyParserMiddleware from '@middy/http-multipart-body-parser'
import httpPartialResponseMiddleware from '@middy/http-partial-response'
import httpResponseSerializerMiddleware from '@middy/http-response-serializer'
import httpSecurityHeadersMiddleware from '@middy/http-security-headers'
import httpUrlencodeBodyParserMiddleware from '@middy/http-urlencode-body-parser'
import httpUrlencodePathParametersParserMiddleware from '@middy/http-urlencode-path-parser'
import validatorMiddleware from 'validator'
import warmupMiddleware from 'warmup'

import eventSchema from './eventSchema.json' assert { type: 'json' }
import responseSchema from './responseSchema.json' assert { type: 'json' }

export const handler = middy({
timeoutEarlyResponse: () => {
return {
statusCode: 408
}
}
})
.use(warmupMiddleware())
.use(httpEventNormalizerMiddleware())
.use(httpHeaderNormalizerMiddleware())
.use(
httpContentNegotiationMiddleware({
availableLanguages: ['en-CA', 'fr-CA'],
availableMediaTypes: ['application/json']
})
)
.use(httpUrlencodePathParametersParserMiddleware())
// Start oneOf
.use(httpUrlencodeBodyParserMiddleware())
.use(httpJsonBodyParserMiddleware())
.use(httpMultipartBodyParserMiddleware())
// End oneOf
.use(httpSecurityHeadersMiddleware())
.use(httpCorsMiddleware())
.use(httpContentEncodingMiddleware())
.use(
httpResponseSerializerMiddleware({
serializers: [
{
regex: /^application\/json$/,
serializer: ({ body }) => JSON.stringify(body)
}
],
defaultContentType: 'application/json'
})
)
.use(httpPartialResponseMiddleware())
.use(validatorMiddleware({ eventSchema, responseSchema }))
.use(httpErrorHandlerMiddleware())
.handler((event, context, { signal }) => {
// ...
})
- - +

API Gateway (REST)

caution

This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.

+

AWS Documentation

+ +

Example

+
import middy from '@middy/core'
import errorLoggerMiddleware from '@middy/error-logger'
import inputOutputLoggerMiddleware from '@middy/input-output-logger'
import httpContentNegotiationMiddleware from '@middy/http-content-negotiation'
import httpContentEncodingMiddleware from '@middy/http-content-encoding'
import httpCorsMiddleware from '@middy/http-cors'
import httpErrorHandlerMiddleware from '@middy/http-error-handler'
import httpEventNormalizerMiddleware from '@middy/http-event-normalizer'
import httpHeaderNormalizerMiddleware from '@middy/http-header-normalizer'
import httpJsonBodyParserMiddleware from '@middy/http-json-body-parser'
import httpMultipartBodyParserMiddleware from '@middy/http-multipart-body-parser'
import httpPartialResponseMiddleware from '@middy/http-partial-response'
import httpResponseSerializerMiddleware from '@middy/http-response-serializer'
import httpSecurityHeadersMiddleware from '@middy/http-security-headers'
import httpUrlencodeBodyParserMiddleware from '@middy/http-urlencode-body-parser'
import httpUrlencodePathParametersParserMiddleware from '@middy/http-urlencode-path-parser'
import validatorMiddleware from 'validator'
import warmupMiddleware from 'warmup'

import eventSchema from './eventSchema.json' assert { type: 'json' }
import responseSchema from './responseSchema.json' assert { type: 'json' }

export const handler = middy({
timeoutEarlyResponse: () => {
return {
statusCode: 408
}
}
})
.use(warmupMiddleware())
.use(httpEventNormalizerMiddleware())
.use(httpHeaderNormalizerMiddleware())
.use(
httpContentNegotiationMiddleware({
availableLanguages: ['en-CA', 'fr-CA'],
availableMediaTypes: ['application/json']
})
)
.use(httpUrlencodePathParametersParserMiddleware())
// Start oneOf
.use(httpUrlencodeBodyParserMiddleware())
.use(httpJsonBodyParserMiddleware())
.use(httpMultipartBodyParserMiddleware())
// End oneOf
.use(httpSecurityHeadersMiddleware())
.use(httpCorsMiddleware())
.use(httpContentEncodingMiddleware())
.use(
httpResponseSerializerMiddleware({
serializers: [
{
regex: /^application\/json$/,
serializer: ({ body }) => JSON.stringify(body)
}
],
defaultContentType: 'application/json'
})
)
.use(httpPartialResponseMiddleware())
.use(validatorMiddleware({ eventSchema, responseSchema }))
.use(httpErrorHandlerMiddleware())
.handler((event, context, { signal }) => {
// ...
})
\ No newline at end of file diff --git a/docs/events/api-gateway-ws/index.html b/docs/events/api-gateway-ws/index.html index 2a7b17d13..c46db0f8d 100644 --- a/docs/events/api-gateway-ws/index.html +++ b/docs/events/api-gateway-ws/index.html @@ -1,16 +1,20 @@ - + - -API Gateway (WebSocket) | Middy.js - - + +API Gateway (WebSocket) | Middy.js + + -
-

API Gateway (WebSocket)

caution

This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.

AWS Documentation

Example

import middy from '@middy/core'
import wsJsonBodyParserMiddleware from '@middy/ws-json-body-parser'
import wsResponseMiddleware from '@middy/ws-response'
import wsRouterHandler from '@middy/ws-router'

import { handler as connectHandler } from './handlers/connect.js'
import { handler as disconnectHandler } from './handlers/disconnect.js'
import { handler as defaultHandler } from './handlers/default.js'

const routes = [
{
routeKey: '$connect',
handler: connectHandler
},
{
routeKey: '$disconnect',
handler: disconnectHandler
},
{
routeKey: 'default',
handler: defaultHandler
}
]

export const handler = middy()
.use(wsJsonBodyParserMiddleware())
.use(wsResponseMiddleware())
.handler(wsRouterHandler(routes))

- - +

API Gateway (WebSocket)

caution

This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.

+

AWS Documentation

+ +

Example

+
import middy from '@middy/core'
import wsJsonBodyParserMiddleware from '@middy/ws-json-body-parser'
import wsResponseMiddleware from '@middy/ws-response'
import wsRouterHandler from '@middy/ws-router'

import { handler as connectHandler } from './handlers/connect.js'
import { handler as disconnectHandler } from './handlers/disconnect.js'
import { handler as defaultHandler } from './handlers/default.js'

const routes = [
{
routeKey: '$connect',
handler: connectHandler
},
{
routeKey: '$disconnect',
handler: disconnectHandler
},
{
routeKey: 'default',
handler: defaultHandler
}
]

export const handler = middy()
.use(wsJsonBodyParserMiddleware())
.use(wsResponseMiddleware())
.handler(wsRouterHandler(routes))

\ No newline at end of file diff --git a/docs/events/application-load-balancer/index.html b/docs/events/application-load-balancer/index.html index 4e190aebd..f17ae43fb 100644 --- a/docs/events/application-load-balancer/index.html +++ b/docs/events/application-load-balancer/index.html @@ -1,16 +1,20 @@ - + - -Application Load Balancer | Middy.js - - + +Application Load Balancer | Middy.js + + -
-

Application Load Balancer

Same as API Gateway (REST)

caution

This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.

AWS Documentation

Example

import middy from '@middy/core'
import httpRouterHandler from '@middy/http-router'
import errorLoggerMiddleware from '@middy/error-logger'
import inputOutputLoggerMiddleware from '@middy/input-output-logger'
import httpContentNegotiationMiddleware from '@middy/http-content-negotiation'
import httpContentEncodingMiddleware from '@middy/http-content-encoding'
import httpCorsMiddleware from '@middy/http-cors'
import httpErrorHandlerMiddleware from '@middy/http-error-handler'
import httpEventNormalizerMiddleware from '@middy/http-event-normalizer'
import httpHeaderNormalizerMiddleware from '@middy/http-header-normalizer'
import httpJsonBodyParserMiddleware from '@middy/http-json-body-parser'
import httpMultipartBodyParserMiddleware from '@middy/http-multipart-body-parser'
import httpPartialResponseMiddleware from '@middy/http-partial-response'
import httpResponseSerializerMiddleware from '@middy/http-response-serializer'
import httpSecurityHeadersMiddleware from '@middy/http-security-headers'
import httpUrlencodeBodyParserMiddleware from '@middy/http-urlencode-body-parser'
import httpUrlencodePathParametersParserMiddleware from '@middy/http-urlencode-path-parser'
import warmupMiddleware from 'warmup'

import { handler as getHandler } from './handlers/get-user.js'
import { handler as postHandler } from './handlers/get-user.js'

const routes = [
{
method: 'GET',
path: '/user/{id}',
handler: getHandler
},
{
method: 'POST',
path: '/user',
handler: postHandler
}
]

export const handler = middy({
timeoutEarlyResponse: () => {
return {
statusCode: 408
}
}
})
.use(warmupMiddleware())
.use(httpEventNormalizerMiddleware())
.use(httpHeaderNormalizerMiddleware())
.use(
httpContentNegotiationMiddleware({
availableLanguages: ['en-CA', 'fr-CA'],
availableMediaTypes: ['application/json']
})
)
.use(httpUrlencodePathParametersParserMiddleware())
// Start oneOf
.use(httpUrlencodeBodyParserMiddleware())
.use(httpJsonBodyParserMiddleware())
.use(httpMultipartBodyParserMiddleware())
// End oneOf
.use(httpSecurityHeadersMiddleware())
.use(httpCorsMiddleware())
.use(httpContentEncodingMiddleware())
.use(
httpResponseSerializerMiddleware({
serializers: [
{
regex: /^application\/json$/,
serializer: ({ body }) => JSON.stringify(body)
}
],
default: 'application/json'
})
)
.use(httpPartialResponseMiddleware())
.use(httpErrorHandlerMiddleware())
.handler(httpRouterHandler(routes))
- - +

Application Load Balancer

Same as API Gateway (REST)

+
caution

This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.

+

AWS Documentation

+ +

Example

+
import middy from '@middy/core'
import httpRouterHandler from '@middy/http-router'
import errorLoggerMiddleware from '@middy/error-logger'
import inputOutputLoggerMiddleware from '@middy/input-output-logger'
import httpContentNegotiationMiddleware from '@middy/http-content-negotiation'
import httpContentEncodingMiddleware from '@middy/http-content-encoding'
import httpCorsMiddleware from '@middy/http-cors'
import httpErrorHandlerMiddleware from '@middy/http-error-handler'
import httpEventNormalizerMiddleware from '@middy/http-event-normalizer'
import httpHeaderNormalizerMiddleware from '@middy/http-header-normalizer'
import httpJsonBodyParserMiddleware from '@middy/http-json-body-parser'
import httpMultipartBodyParserMiddleware from '@middy/http-multipart-body-parser'
import httpPartialResponseMiddleware from '@middy/http-partial-response'
import httpResponseSerializerMiddleware from '@middy/http-response-serializer'
import httpSecurityHeadersMiddleware from '@middy/http-security-headers'
import httpUrlencodeBodyParserMiddleware from '@middy/http-urlencode-body-parser'
import httpUrlencodePathParametersParserMiddleware from '@middy/http-urlencode-path-parser'
import warmupMiddleware from 'warmup'

import { handler as getHandler } from './handlers/get-user.js'
import { handler as postHandler } from './handlers/get-user.js'

const routes = [
{
method: 'GET',
path: '/user/{id}',
handler: getHandler
},
{
method: 'POST',
path: '/user',
handler: postHandler
}
]

export const handler = middy({
timeoutEarlyResponse: () => {
return {
statusCode: 408
}
}
})
.use(warmupMiddleware())
.use(httpEventNormalizerMiddleware())
.use(httpHeaderNormalizerMiddleware())
.use(
httpContentNegotiationMiddleware({
availableLanguages: ['en-CA', 'fr-CA'],
availableMediaTypes: ['application/json']
})
)
.use(httpUrlencodePathParametersParserMiddleware())
// Start oneOf
.use(httpUrlencodeBodyParserMiddleware())
.use(httpJsonBodyParserMiddleware())
.use(httpMultipartBodyParserMiddleware())
// End oneOf
.use(httpSecurityHeadersMiddleware())
.use(httpCorsMiddleware())
.use(httpContentEncodingMiddleware())
.use(
httpResponseSerializerMiddleware({
serializers: [
{
regex: /^application\/json$/,
serializer: ({ body }) => JSON.stringify(body)
}
],
default: 'application/json'
})
)
.use(httpPartialResponseMiddleware())
.use(httpErrorHandlerMiddleware())
.handler(httpRouterHandler(routes))
\ No newline at end of file diff --git a/docs/events/appsync/index.html b/docs/events/appsync/index.html index df54ceb16..ba3fce73f 100644 --- a/docs/events/appsync/index.html +++ b/docs/events/appsync/index.html @@ -1,16 +1,19 @@ - + - -AppSync | Middy.js - - + +AppSync | Middy.js + + - - - + \ No newline at end of file diff --git a/docs/events/cloud-formation/index.html b/docs/events/cloud-formation/index.html index e5d47ab67..ea963d2f3 100644 --- a/docs/events/cloud-formation/index.html +++ b/docs/events/cloud-formation/index.html @@ -1,16 +1,19 @@ - + - -CloudFormation | Middy.js - - + +CloudFormation | Middy.js + + - - - + \ No newline at end of file diff --git a/docs/events/cloud-front/index.html b/docs/events/cloud-front/index.html index 57562866e..bc32cab3f 100644 --- a/docs/events/cloud-front/index.html +++ b/docs/events/cloud-front/index.html @@ -1,16 +1,19 @@ - + - -CloudFront Lambda@Edge | Middy.js - - + +CloudFront Lambda@Edge | Middy.js + + - - - + \ No newline at end of file diff --git a/docs/events/cloud-trail/index.html b/docs/events/cloud-trail/index.html index 44bc0e639..3986a732d 100644 --- a/docs/events/cloud-trail/index.html +++ b/docs/events/cloud-trail/index.html @@ -1,16 +1,19 @@ - + - -CloudTrail | Middy.js - - + +CloudTrail | Middy.js + + - - - + \ No newline at end of file diff --git a/docs/events/cloud-watch-logs/index.html b/docs/events/cloud-watch-logs/index.html index 5c4af89a1..ab9a3795e 100644 --- a/docs/events/cloud-watch-logs/index.html +++ b/docs/events/cloud-watch-logs/index.html @@ -1,16 +1,19 @@ - + - -Cloud Watch Logs | Middy.js - - + +Cloud Watch Logs | Middy.js + + - - - + \ No newline at end of file diff --git a/docs/events/code-commit/index.html b/docs/events/code-commit/index.html index 42a777cc0..e9d139c5f 100644 --- a/docs/events/code-commit/index.html +++ b/docs/events/code-commit/index.html @@ -1,16 +1,19 @@ - + - -Code Commit | Middy.js - - + +Code Commit | Middy.js + + - - - + \ No newline at end of file diff --git a/docs/events/code-pipeline/index.html b/docs/events/code-pipeline/index.html index dd996e0f3..f66406baf 100644 --- a/docs/events/code-pipeline/index.html +++ b/docs/events/code-pipeline/index.html @@ -1,16 +1,19 @@ - + - -CodePipeline | Middy.js - - + +CodePipeline | Middy.js + + - - - + \ No newline at end of file diff --git a/docs/events/cognito/index.html b/docs/events/cognito/index.html index e8ff1c816..dbae0d790 100644 --- a/docs/events/cognito/index.html +++ b/docs/events/cognito/index.html @@ -1,16 +1,19 @@ - + - -Cognito | Middy.js - - + +Cognito | Middy.js + + - - - + \ No newline at end of file diff --git a/docs/events/config/index.html b/docs/events/config/index.html index 57c521a9b..f24d11485 100644 --- a/docs/events/config/index.html +++ b/docs/events/config/index.html @@ -1,16 +1,19 @@ - + - -Config | Middy.js - - + +Config | Middy.js + + - - - + \ No newline at end of file diff --git a/docs/events/connect/index.html b/docs/events/connect/index.html index 9c15199cf..36f555aa8 100644 --- a/docs/events/connect/index.html +++ b/docs/events/connect/index.html @@ -1,16 +1,19 @@ - + - -Connect | Middy.js - - + +Connect | Middy.js + + - - - + \ No newline at end of file diff --git a/docs/events/documentdb/index.html b/docs/events/documentdb/index.html index ad9ebb99d..34212f212 100644 --- a/docs/events/documentdb/index.html +++ b/docs/events/documentdb/index.html @@ -1,16 +1,19 @@ - + - -DocumentDB | Middy.js - - + +DocumentDB | Middy.js + + - - - + \ No newline at end of file diff --git a/docs/events/dynamodb/index.html b/docs/events/dynamodb/index.html index eb3d1a8a1..464f7a8bf 100644 --- a/docs/events/dynamodb/index.html +++ b/docs/events/dynamodb/index.html @@ -1,16 +1,19 @@ - + - -DynamoDB | Middy.js - - + +DynamoDB | Middy.js + + - - - + \ No newline at end of file diff --git a/docs/events/ec2/index.html b/docs/events/ec2/index.html index e6b5b96ab..dc9189a44 100644 --- a/docs/events/ec2/index.html +++ b/docs/events/ec2/index.html @@ -1,16 +1,19 @@ - + - -EC2 | Middy.js - - + +EC2 | Middy.js + + - - - + \ No newline at end of file diff --git a/docs/events/event-bridge/index.html b/docs/events/event-bridge/index.html index 5548ad146..3ac30e470 100644 --- a/docs/events/event-bridge/index.html +++ b/docs/events/event-bridge/index.html @@ -1,16 +1,19 @@ - + - -EventBridge | Middy.js - - + +EventBridge | Middy.js + + - - - + \ No newline at end of file diff --git a/docs/events/function-url/index.html b/docs/events/function-url/index.html index eb1d49c3d..cf069cf1c 100644 --- a/docs/events/function-url/index.html +++ b/docs/events/function-url/index.html @@ -1,16 +1,20 @@ - + - -Function URL | Middy.js - - + +Function URL | Middy.js + + -
-

Function URL

Same as API Gateway (HTTP), but with support for response streams.

AWS Documentation

Example

import middy from '@middy/core'
import errorLoggerMiddleware from '@middy/error-logger'
import inputOutputLoggerMiddleware from '@middy/input-output-logger'
import httpContentNegotiationMiddleware from '@middy/http-content-negotiation'
import httpContentEncodingMiddleware from '@middy/http-content-encoding'
import httpCorsMiddleware from '@middy/http-cors'
import httpErrorHandlerMiddleware from '@middy/http-error-handler'
import httpEventNormalizerMiddleware from '@middy/http-event-normalizer'
import httpHeaderNormalizerMiddleware from '@middy/http-header-normalizer'
import httpJsonBodyParserMiddleware from '@middy/http-json-body-parser'
import httpMultipartBodyParserMiddleware from '@middy/http-multipart-body-parser'
import httpPartialResponseMiddleware from '@middy/http-partial-response'
import httpResponseSerializerMiddleware from '@middy/http-response-serializer'
import httpSecurityHeadersMiddleware from '@middy/http-security-headers'
import httpUrlencodeBodyParserMiddleware from '@middy/http-urlencode-body-parser'
import httpUrlencodePathParametersParserMiddleware from '@middy/http-urlencode-path-parser'
import validatorMiddleware from 'validator'
import warmupMiddleware from 'warmup'

import eventSchema from './eventSchema.json' assert { type: 'json' }
import responseSchema from './responseSchema.json' assert { type: 'json' }

export const handler = middy({
timeoutEarlyResponse: () => {
return {
statusCode: 408
}
},
streamifyResponse: true
})
.use(warmupMiddleware())
.use(httpEventNormalizerMiddleware())
.use(httpHeaderNormalizerMiddleware())
.use(
httpContentNegotiationMiddleware({
availableLanguages: ['en-CA', 'fr-CA'],
availableMediaTypes: ['application/json']
})
)
.use(httpUrlencodePathParametersParserMiddleware())
// Start oneOf
.use(httpUrlencodeBodyParserMiddleware())
.use(httpJsonBodyParserMiddleware())
.use(httpMultipartBodyParserMiddleware())
// End oneOf
.use(httpSecurityHeadersMiddleware())
.use(httpCorsMiddleware())
.use(httpContentEncodingMiddleware())
.use(
httpResponseSerializerMiddleware({
serializers: [
{
regex: /^application\/json$/,
serializer: ({ body }) => JSON.stringify(body)
}
],
default: 'application/json'
})
)
.use(httpPartialResponseMiddleware())
.use(validatorMiddleware({ eventSchema, responseSchema }))
.use(httpErrorHandlerMiddleware())
.handler((event, context, { signal }) => {
// ...
})
- - +

Function URL

Same as API Gateway (HTTP), but with support for response streams.

+

AWS Documentation

+ +

Example

+
import middy from '@middy/core'
import errorLoggerMiddleware from '@middy/error-logger'
import inputOutputLoggerMiddleware from '@middy/input-output-logger'
import httpContentNegotiationMiddleware from '@middy/http-content-negotiation'
import httpContentEncodingMiddleware from '@middy/http-content-encoding'
import httpCorsMiddleware from '@middy/http-cors'
import httpErrorHandlerMiddleware from '@middy/http-error-handler'
import httpEventNormalizerMiddleware from '@middy/http-event-normalizer'
import httpHeaderNormalizerMiddleware from '@middy/http-header-normalizer'
import httpJsonBodyParserMiddleware from '@middy/http-json-body-parser'
import httpMultipartBodyParserMiddleware from '@middy/http-multipart-body-parser'
import httpPartialResponseMiddleware from '@middy/http-partial-response'
import httpResponseSerializerMiddleware from '@middy/http-response-serializer'
import httpSecurityHeadersMiddleware from '@middy/http-security-headers'
import httpUrlencodeBodyParserMiddleware from '@middy/http-urlencode-body-parser'
import httpUrlencodePathParametersParserMiddleware from '@middy/http-urlencode-path-parser'
import validatorMiddleware from 'validator'
import warmupMiddleware from 'warmup'

import eventSchema from './eventSchema.json' assert { type: 'json' }
import responseSchema from './responseSchema.json' assert { type: 'json' }

export const handler = middy({
timeoutEarlyResponse: () => {
return {
statusCode: 408
}
},
streamifyResponse: true
})
.use(warmupMiddleware())
.use(httpEventNormalizerMiddleware())
.use(httpHeaderNormalizerMiddleware())
.use(
httpContentNegotiationMiddleware({
availableLanguages: ['en-CA', 'fr-CA'],
availableMediaTypes: ['application/json']
})
)
.use(httpUrlencodePathParametersParserMiddleware())
// Start oneOf
.use(httpUrlencodeBodyParserMiddleware())
.use(httpJsonBodyParserMiddleware())
.use(httpMultipartBodyParserMiddleware())
// End oneOf
.use(httpSecurityHeadersMiddleware())
.use(httpCorsMiddleware())
.use(httpContentEncodingMiddleware())
.use(
httpResponseSerializerMiddleware({
serializers: [
{
regex: /^application\/json$/,
serializer: ({ body }) => JSON.stringify(body)
}
],
default: 'application/json'
})
)
.use(httpPartialResponseMiddleware())
.use(validatorMiddleware({ eventSchema, responseSchema }))
.use(httpErrorHandlerMiddleware())
.handler((event, context, { signal }) => {
// ...
})
\ No newline at end of file diff --git a/docs/events/intro/index.html b/docs/events/intro/index.html index cb49fea8e..0e4c4a20d 100644 --- a/docs/events/intro/index.html +++ b/docs/events/intro/index.html @@ -1,16 +1,19 @@ - + - -All AWS Events | Middy.js - - + +All AWS Events | Middy.js + + -
-

All AWS Events

Middy is built to help with all AWS Events that can connect with AWS Lambda.

Middlewares that can benefit any Lambda

import middy from '@middy/core'
import cloudWatchMetricsMiddleware from '@middy/cloudwatch-metrics'
import errorLoggerMiddleware from '@middy/error-logger'
import inputOutputLoggerMiddleware from '@middy/input-output-logger'
import validatorMiddleware from 'validator'
import warmupMiddleware from 'warmup'

import eventSchema from './eventSchema.json' assert { type: 'json' }
import responseSchema from './responseSchema.json' assert { type: 'json' }

const handler = middy()
.use(warmupMiddleware())
.use(cloudWatchMetricsMiddleware())
.use(inputOutputLoggerMiddleware())
.use(errorLoggerMiddleware())
.use(validatorMiddleware({ eventSchema, responseSchema }))
.handler(async (event, context, { signal }) => {
// ...
})

Need secrets? We have you covered there too

import middy from '@middy/core'
import { getInternal } from '@middy/util'
import rdsSignerMiddleware from '@middy/rds-signer'
import secretsManagerMiddleware from '@middy/secrets-manager'
import ssmMiddleware from '@middy/ssm'
import stsMiddleware from '@middy/sts'

export const handler = middy()
.use(
rdsSignerMiddleware({
fetchData: {
rdsSigner: {
region: process.env.AWS_REGION,
hostname: process.env.RDS_HOSTNAME,
username: 'iam_role',
database: 'database',
port: 5555
}
}
})
)
.use(
secretsManagerMiddleware({
fetchData: {
secretsManager: '/dev/service_name/key_name'
}
})
)
.use(
ssmMiddleware({
fetchData: {
ssm: '/dev/service_name/key_name'
}
})
)
.use(
stsMiddleware({
fetchData: {
sts: {
RoleArn: '.../role'
}
}
})
)
.before(async (request) => {
request.context.secrets = await getInternal(true, request)
})
.handler(async (event, context, { signal }) => {
// context.secrets = { rdsSigner, secretsManager, ssm, sts }
})

How about configs? We have you covered there as well

import middy from '@middy/core'
import { getInternal } from '@middy/util'
import appConfigMiddleware from '@middy/appconfig'
import s3Middleware from '@middy/s3'
import dynamoDBMiddleware from '@middy/dynamodb'
import ssmMiddleware from '@middy/ssm'

export const handler = middy()
.use(
appConfigMiddleware({
fetchData: {
appConfig: {
Application: '...',
ClientId: '...',
Configuration: '...',
Environment: '...'
}
}
})
)
.use(
s3Middleware({
fetchData: {
s3: {
Bucket: '...',
Key: '...'
}
}
})
)
.use(
dynamoDBMiddleware({
fetchData: {
dynamodb: {
TableName: '...',
Key: { '...' }
}
}
})
)
.use(
ssmMiddleware({
fetchData: {
ssm: '/dev/service_name/key_name'
}
})
)
.before(async (request) => {
request.context.configs = await getInternal(true, request)
})
.handler(async (event, context, { signal }) => {
// context.configs = { appConfig, dynamodb, s3, ssm }
})
- - +

All AWS Events

Middy is built to help with all AWS Events that can connect with AWS Lambda.

+

Middlewares that can benefit any Lambda

+
import middy from '@middy/core'
import cloudWatchMetricsMiddleware from '@middy/cloudwatch-metrics'
import errorLoggerMiddleware from '@middy/error-logger'
import inputOutputLoggerMiddleware from '@middy/input-output-logger'
import validatorMiddleware from 'validator'
import warmupMiddleware from 'warmup'

import eventSchema from './eventSchema.json' assert { type: 'json' }
import responseSchema from './responseSchema.json' assert { type: 'json' }

const handler = middy()
.use(warmupMiddleware())
.use(cloudWatchMetricsMiddleware())
.use(inputOutputLoggerMiddleware())
.use(errorLoggerMiddleware())
.use(validatorMiddleware({ eventSchema, responseSchema }))
.handler(async (event, context, { signal }) => {
// ...
})
+

Need secrets? We have you covered there too

+
import middy from '@middy/core'
import { getInternal } from '@middy/util'
import rdsSignerMiddleware from '@middy/rds-signer'
import secretsManagerMiddleware from '@middy/secrets-manager'
import ssmMiddleware from '@middy/ssm'
import stsMiddleware from '@middy/sts'

export const handler = middy()
.use(
rdsSignerMiddleware({
fetchData: {
rdsSigner: {
region: process.env.AWS_REGION,
hostname: process.env.RDS_HOSTNAME,
username: 'iam_role',
port: 5555
}
}
})
)
.use(
secretsManagerMiddleware({
fetchData: {
secretsManager: '/dev/service_name/key_name'
}
})
)
.use(
ssmMiddleware({
fetchData: {
ssm: '/dev/service_name/key_name'
}
})
)
.use(
stsMiddleware({
fetchData: {
sts: {
RoleArn: '.../role'
}
}
})
)
.before(async (request) => {
request.context.secrets = await getInternal(true, request)
})
.handler(async (event, context, { signal }) => {
// context.secrets = { rdsSigner, secretsManager, ssm, sts }
})
+

How about configs? We have you covered there as well

+
import middy from '@middy/core'
import { getInternal } from '@middy/util'
import appConfigMiddleware from '@middy/appconfig'
import s3Middleware from '@middy/s3'
import dynamoDBMiddleware from '@middy/dynamodb'
import ssmMiddleware from '@middy/ssm'

export const handler = middy()
.use(
appConfigMiddleware({
fetchData: {
appConfig: {
Application: '...',
ClientId: '...',
Configuration: '...',
Environment: '...'
}
}
})
)
.use(
s3Middleware({
fetchData: {
s3: {
Bucket: '...',
Key: '...'
}
}
})
)
.use(
dynamoDBMiddleware({
fetchData: {
dynamodb: {
TableName: '...',
Key: { '...' }
}
}
})
)
.use(
ssmMiddleware({
fetchData: {
ssm: '/dev/service_name/key_name'
}
})
)
.before(async (request) => {
request.context.configs = await getInternal(true, request)
})
.handler(async (event, context, { signal }) => {
// context.configs = { appConfig, dynamodb, s3, ssm }
})
\ No newline at end of file diff --git a/docs/events/iot-events/index.html b/docs/events/iot-events/index.html index 5c179dbc6..24809c37a 100644 --- a/docs/events/iot-events/index.html +++ b/docs/events/iot-events/index.html @@ -1,16 +1,19 @@ - + - -IoT Events | Middy.js - - + +IoT Events | Middy.js + + - - - + \ No newline at end of file diff --git a/docs/events/iot/index.html b/docs/events/iot/index.html index 384b3f308..0f45a91cd 100644 --- a/docs/events/iot/index.html +++ b/docs/events/iot/index.html @@ -1,16 +1,19 @@ - + - -Internet of things (IoT) | Middy.js - - + +Internet of things (IoT) | Middy.js + + - - - + \ No newline at end of file diff --git a/docs/events/kafka-managed-streaming/index.html b/docs/events/kafka-managed-streaming/index.html index 3cf911cb4..b193c3193 100644 --- a/docs/events/kafka-managed-streaming/index.html +++ b/docs/events/kafka-managed-streaming/index.html @@ -1,16 +1,19 @@ - + - -Kafka, Managed Streaming (MSK) | Middy.js - - + +Kafka, Managed Streaming (MSK) | Middy.js + + -
-
- - +
\ No newline at end of file diff --git a/docs/events/kafka-self-managed/index.html b/docs/events/kafka-self-managed/index.html index ab1224d6e..8b7541f60 100644 --- a/docs/events/kafka-self-managed/index.html +++ b/docs/events/kafka-self-managed/index.html @@ -1,16 +1,19 @@ - + - -Kafka, Self-Managed | Middy.js - - + +Kafka, Self-Managed | Middy.js + + - - - + \ No newline at end of file diff --git a/docs/events/kinesis-firehose/index.html b/docs/events/kinesis-firehose/index.html index 8ef7f86c4..f631b0660 100644 --- a/docs/events/kinesis-firehose/index.html +++ b/docs/events/kinesis-firehose/index.html @@ -1,16 +1,19 @@ - + - -Kinesis Firehose | Middy.js - - + +Kinesis Firehose | Middy.js + + - - - + \ No newline at end of file diff --git a/docs/events/kinesis-streams/index.html b/docs/events/kinesis-streams/index.html index 1f87846db..1e56d37e7 100644 --- a/docs/events/kinesis-streams/index.html +++ b/docs/events/kinesis-streams/index.html @@ -1,16 +1,19 @@ - + - -Kinesis Streams | Middy.js - - + +Kinesis Streams | Middy.js + + - - - + \ No newline at end of file diff --git a/docs/events/lex/index.html b/docs/events/lex/index.html index 780c75682..eedcaeb2a 100644 --- a/docs/events/lex/index.html +++ b/docs/events/lex/index.html @@ -1,16 +1,20 @@ - + - -Lex | Middy.js - - + +Lex | Middy.js + + - - - + \ No newline at end of file diff --git a/docs/events/mq/index.html b/docs/events/mq/index.html index 01db19802..45e03dd3a 100644 --- a/docs/events/mq/index.html +++ b/docs/events/mq/index.html @@ -1,16 +1,19 @@ - + - -MQ | Middy.js - - + +MQ | Middy.js + + - - - + \ No newline at end of file diff --git a/docs/events/rds/index.html b/docs/events/rds/index.html index 7eddbf7a6..39cb91c60 100644 --- a/docs/events/rds/index.html +++ b/docs/events/rds/index.html @@ -1,16 +1,19 @@ - + - -RDS | Middy.js - - + +RDS | Middy.js + + - - - +
\ No newline at end of file diff --git a/docs/events/s3-batch/index.html b/docs/events/s3-batch/index.html index 8abf1b1b2..13f430c93 100644 --- a/docs/events/s3-batch/index.html +++ b/docs/events/s3-batch/index.html @@ -1,16 +1,19 @@ - + - -S3 Batch | Middy.js - - + +S3 Batch | Middy.js + + - - - + \ No newline at end of file diff --git a/docs/events/s3-object/index.html b/docs/events/s3-object/index.html index 9f8a9b1ab..820dbc04d 100644 --- a/docs/events/s3-object/index.html +++ b/docs/events/s3-object/index.html @@ -1,16 +1,20 @@ - + - -S3 Object | Middy.js - - + +S3 Object | Middy.js + + -
-

S3 Object

caution

This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.

AWS Documentation

Example

import middy from '@middy/core'
import s3ObjectResponseMiddleware from '@middy/s3-object-response'
import {captureAWSv3Client, captureHTTPsGlobal} from 'aws-xray-sdk-core'

export const handler = middy()
.use(s3ObjectResponseMiddleware({
awsClientCapture: captureAWSv3Client,
httpsCapture: captureHTTPsGlobal,
bodyType: 'promise'
}))
.handler((event, context, {signal}) => {
// ...
})
- - +

S3 Object

caution

This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.

+

AWS Documentation

+ +

Example

+
import middy from '@middy/core'
import s3ObjectResponseMiddleware from '@middy/s3-object-response'
import {captureAWSv3Client, captureHTTPsGlobal} from 'aws-xray-sdk-core'

export const handler = middy()
.use(s3ObjectResponseMiddleware({
awsClientCapture: captureAWSv3Client,
httpsCapture: captureHTTPsGlobal,
bodyType: 'promise'
}))
.handler((event, context, {signal}) => {
// ...
})
\ No newline at end of file diff --git a/docs/events/s3/index.html b/docs/events/s3/index.html index 4924cd0b5..0d3e017ab 100644 --- a/docs/events/s3/index.html +++ b/docs/events/s3/index.html @@ -1,16 +1,19 @@ - + - -S3 | Middy.js - - + +S3 | Middy.js + + - - - + \ No newline at end of file diff --git a/docs/events/secrets-manager/index.html b/docs/events/secrets-manager/index.html index af1a55acb..3e34c87b0 100644 --- a/docs/events/secrets-manager/index.html +++ b/docs/events/secrets-manager/index.html @@ -1,16 +1,19 @@ - + - -Secrets Manager | Middy.js - - + +Secrets Manager | Middy.js + + - - - + \ No newline at end of file diff --git a/docs/events/ses/index.html b/docs/events/ses/index.html index c77687a02..019caf368 100644 --- a/docs/events/ses/index.html +++ b/docs/events/ses/index.html @@ -1,16 +1,19 @@ - + - -SES | Middy.js - - + +SES | Middy.js + + - - - + \ No newline at end of file diff --git a/docs/events/sns/index.html b/docs/events/sns/index.html index cd6b49049..84bc0fb12 100644 --- a/docs/events/sns/index.html +++ b/docs/events/sns/index.html @@ -1,16 +1,19 @@ - + - -SNS | Middy.js - - + +SNS | Middy.js + + - - - + \ No newline at end of file diff --git a/docs/events/sqs/index.html b/docs/events/sqs/index.html index 264c5e4f6..3b6783d30 100644 --- a/docs/events/sqs/index.html +++ b/docs/events/sqs/index.html @@ -1,16 +1,19 @@ - + - -SQS | Middy.js - - + +SQS | Middy.js + + -
-

SQS

caution

This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.

AWS Documentation

Example

import middy from '@middy/core'
import eventNormalizerMiddleware from '@middy/event-normalizer'
import sqsPartialBatchFailure from '@middy/sqs-partial-batch-failure'

export const handler = middy()
.use(eventNormalizerMiddleware())
.use(sqsPartialBatchFailure())
.handler((event, context, {signal}) => {
// ...
})
- - +

SQS

caution

This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.

+

AWS Documentation

+ +

Example

+
import middy from '@middy/core'
import eventNormalizerMiddleware from '@middy/event-normalizer'
import sqsPartialBatchFailure from '@middy/sqs-partial-batch-failure'

export const handler = middy()
.use(eventNormalizerMiddleware())
.use(sqsPartialBatchFailure())
.handler((event, context, {signal}) => {
// ...
})
\ No newline at end of file diff --git a/docs/events/vpc-lattice/index.html b/docs/events/vpc-lattice/index.html index 70f103948..76b19df9a 100644 --- a/docs/events/vpc-lattice/index.html +++ b/docs/events/vpc-lattice/index.html @@ -1,16 +1,20 @@ - + - -VPC Lattice | Middy.js - - + +VPC Lattice | Middy.js + + -
-

VPC Lattice

caution

This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.

We recommend using @middy/http-event-normalizer if you place to use any of the following: @middy/http-json-body-parser, @middy/http-multipart-body-parser, @middy/http-urlencode-body-parser, @middy/http-partial-response

AWS Documentation

Example

import middy from '@middy/core'
import errorLoggerMiddleware from '@middy/error-logger'
import inputOutputLoggerMiddleware from '@middy/input-output-logger'
import httpContentNegotiationMiddleware from '@middy/http-content-negotiation'
import httpContentEncodingMiddleware from '@middy/http-content-encoding'
import httpCorsMiddleware from '@middy/http-cors'
import httpErrorHandlerMiddleware from '@middy/http-error-handler'
import httpEventNormalizerMiddleware from '@middy/http-event-normalizer' // required
import httpHeaderNormalizerMiddleware from '@middy/http-header-normalizer'
import httpJsonBodyParserMiddleware from '@middy/http-json-body-parser'
import httpMultipartBodyParserMiddleware from '@middy/http-multipart-body-parser'
import httpPartialResponseMiddleware from '@middy/http-partial-response'
import httpResponseSerializerMiddleware from '@middy/http-response-serializer'
import httpSecurityHeadersMiddleware from '@middy/http-security-headers'
import httpUrlencodeBodyParserMiddleware from '@middy/http-urlencode-body-parser'
import httpUrlencodePathParametersParserMiddleware from '@middy/http-urlencode-path-parser'
import validatorMiddleware from 'validator'
import warmupMiddleware from 'warmup'

import eventSchema from './eventSchema.json' assert { type: 'json' }
import responseSchema from './responseSchema.json' assert { type: 'json' }

export const handler = middy({
timeoutEarlyResponse: () => {
return {
statusCode: 408
}
}
})
.use(warmupMiddleware())
.use(httpEventNormalizerMiddleware())
.use(httpHeaderNormalizerMiddleware())
.use(
httpContentNegotiationMiddleware({
availableLanguages: ['en-CA', 'fr-CA'],
availableMediaTypes: ['application/json']
})
)
.use(httpUrlencodePathParametersParserMiddleware())
// Start oneOf
.use(httpUrlencodeBodyParserMiddleware())
.use(httpJsonBodyParserMiddleware())
.use(httpMultipartBodyParserMiddleware())
// End oneOf
.use(httpSecurityHeadersMiddleware())
.use(httpCorsMiddleware())
.use(httpContentEncodingMiddleware())
.use(
httpResponseSerializerMiddleware({
serializers: [
{
regex: /^application\/json$/,
serializer: ({ body }) => JSON.stringify(body)
}
],
default: 'application/json'
})
)
.use(httpPartialResponseMiddleware())
.use(validatorMiddleware({ eventSchema, responseSchema }))
.use(httpErrorHandlerMiddleware())
.handler((event, context, { signal }) => {
// ...
})
- - +

VPC Lattice

caution

This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.

+

We recommend using @middy/http-event-normalizer if you place to use any of the following: @middy/http-json-body-parser, @middy/http-multipart-body-parser, @middy/http-urlencode-body-parser, @middy/http-partial-response

+

AWS Documentation

+ +

Example

+
import middy from '@middy/core'
import errorLoggerMiddleware from '@middy/error-logger'
import inputOutputLoggerMiddleware from '@middy/input-output-logger'
import httpContentNegotiationMiddleware from '@middy/http-content-negotiation'
import httpContentEncodingMiddleware from '@middy/http-content-encoding'
import httpCorsMiddleware from '@middy/http-cors'
import httpErrorHandlerMiddleware from '@middy/http-error-handler'
import httpEventNormalizerMiddleware from '@middy/http-event-normalizer' // required
import httpHeaderNormalizerMiddleware from '@middy/http-header-normalizer'
import httpJsonBodyParserMiddleware from '@middy/http-json-body-parser'
import httpMultipartBodyParserMiddleware from '@middy/http-multipart-body-parser'
import httpPartialResponseMiddleware from '@middy/http-partial-response'
import httpResponseSerializerMiddleware from '@middy/http-response-serializer'
import httpSecurityHeadersMiddleware from '@middy/http-security-headers'
import httpUrlencodeBodyParserMiddleware from '@middy/http-urlencode-body-parser'
import httpUrlencodePathParametersParserMiddleware from '@middy/http-urlencode-path-parser'
import validatorMiddleware from 'validator'
import warmupMiddleware from 'warmup'

import eventSchema from './eventSchema.json' assert { type: 'json' }
import responseSchema from './responseSchema.json' assert { type: 'json' }

export const handler = middy({
timeoutEarlyResponse: () => {
return {
statusCode: 408
}
}
})
.use(warmupMiddleware())
.use(httpEventNormalizerMiddleware())
.use(httpHeaderNormalizerMiddleware())
.use(
httpContentNegotiationMiddleware({
availableLanguages: ['en-CA', 'fr-CA'],
availableMediaTypes: ['application/json']
})
)
.use(httpUrlencodePathParametersParserMiddleware())
// Start oneOf
.use(httpUrlencodeBodyParserMiddleware())
.use(httpJsonBodyParserMiddleware())
.use(httpMultipartBodyParserMiddleware())
// End oneOf
.use(httpSecurityHeadersMiddleware())
.use(httpCorsMiddleware())
.use(httpContentEncodingMiddleware())
.use(
httpResponseSerializerMiddleware({
serializers: [
{
regex: /^application\/json$/,
serializer: ({ body }) => JSON.stringify(body)
}
],
default: 'application/json'
})
)
.use(httpPartialResponseMiddleware())
.use(validatorMiddleware({ eventSchema, responseSchema }))
.use(httpErrorHandlerMiddleware())
.handler((event, context, { signal }) => {
// ...
})
\ No newline at end of file diff --git a/docs/events/workmail/index.html b/docs/events/workmail/index.html index d97be358e..824e615ac 100644 --- a/docs/events/workmail/index.html +++ b/docs/events/workmail/index.html @@ -1,16 +1,19 @@ - + - -WorkMail | Middy.js - - + +WorkMail | Middy.js + + - - - + \ No newline at end of file diff --git a/docs/faq/index.html b/docs/faq/index.html index 538bf0ac1..69e18edea 100644 --- a/docs/faq/index.html +++ b/docs/faq/index.html @@ -1,16 +1,14 @@ - + - -FAQ | Middy.js - - + +FAQ | Middy.js + + -
-

FAQ

My lambda keep timing out without responding, what do I do?

Likely your event loop is not empty. This happens when you have a database connect still open for example. Checkout @middy/do-not-wait-for-empty-event-loop.

- - +

FAQ

My lambda keep timing out without responding, what do I do?

+

Likely your event loop is not empty. This happens when you have a database connect still open for example. Checkout @middy/do-not-wait-for-empty-event-loop.

\ No newline at end of file diff --git a/docs/index.html b/docs/index.html index 9b6e18c22..7aef217c8 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1,26 +1,37 @@ - + - -Introduction | Middy.js - - + +Introduction | Middy.js + + -
-

Introduction

What is middy

Middy is a very simple middleware engine that allows you to simplify your AWS Lambda code when using Node.js.

If you have used web frameworks like Express, then you will be familiar with the concepts adopted in Middy and you will be able to get started very quickly.

A middleware engine allows you to focus on the strict business logic of your Lambda and then attach additional common elements like authentication, authorization, validation, serialization, etc. in a modular and reusable way by decorating the main business logic.

A quick example

Code is better than 10,000 words, so let's jump into an example.

Let's assume you are building a JSON API to process a payment:

handler.js
// import core
import middy from '@middy/core' // esm Node v14+
//const middy = require('@middy/core') // commonjs Node v12+

// import some middlewares
import jsonBodyParser from '@middy/http-json-body-parser'
import httpErrorHandler from '@middy/http-error-handler'
import validator from '@middy/validator'
import { transpileSchema } from '@middy/validator/transpile'

// This is your common handler, in no way different than what you are used to doing every day in AWS Lambda
const lambdaHandler = async (event, context) => {
// we don't need to deserialize the body ourself as a middleware will be used to do that
const { creditCardNumber, expiryMonth, expiryYear, cvc, nameOnCard, amount } =
event.body

// do stuff with this data
// ...

const response = { result: 'success', message: 'payment processed correctly' }
return { statusCode: 200, body: JSON.stringify(response) }
}

// Notice that in the handler you only added base business logic (no deserialization,
// validation or error handler), we will add the rest with middlewares

const schema = {
type: 'object',
properties: {
body: {
type: 'object',
properties: {
creditCardNumber: {
type: 'string',
minLength: 12,
maxLength: 19,
pattern: '\\d+'
},
expiryMonth: { type: 'integer', minimum: 1, maximum: 12 },
expiryYear: { type: 'integer', minimum: 2017, maximum: 2027 },
cvc: { type: 'string', minLength: 3, maxLength: 4, pattern: '\\d+' },
nameOnCard: { type: 'string' },
amount: { type: 'number' }
},
required: ['creditCardNumber'] // Insert here all required event properties
}
}
}

// Let's "middyfy" our handler, then we will be able to attach middlewares to it
const handler = middy()
.use(jsonBodyParser()) // parses the request body when it's a JSON and converts it to an object
.use(validator({ eventSchema: transpileSchema(schema) })) // validates the input
.use(httpErrorHandler()) // handles common http errors and returns proper responses
.handler(lambdaHandler)

Why?

One of the main strengths of serverless and AWS Lambda is that, from a developer -perspective, your focus is mostly shifted toward implementing business logic.

Anyway, when you are writing a handler, you still have to deal with some common technical concerns +

Introduction

What is middy

+

Middy is a very simple middleware engine that allows you to simplify your AWS Lambda code when using Node.js.

+

If you have used web frameworks like Express, then you will be familiar with the concepts adopted in Middy and you will be able to get started very quickly.

+

A middleware engine allows you to focus on the strict business logic of your Lambda and then attach additional common elements like authentication, authorization, validation, serialization, etc. in a modular and reusable way by decorating the main business logic.

+

A quick example

+

Code is better than 10,000 words, so let's jump into an example.

+

Let's assume you are building a JSON API to process a payment:

+
handler.js
// import core
import middy from '@middy/core' // esm Node v14+
//const middy = require('@middy/core') // commonjs Node v12+

// import some middlewares
import jsonBodyParser from '@middy/http-json-body-parser'
import httpErrorHandler from '@middy/http-error-handler'
import validator from '@middy/validator'
import { transpileSchema } from '@middy/validator/transpile'

// This is your common handler, in no way different than what you are used to doing every day in AWS Lambda
const lambdaHandler = async (event, context) => {
// we don't need to deserialize the body ourself as a middleware will be used to do that
const { creditCardNumber, expiryMonth, expiryYear, cvc, nameOnCard, amount } =
event.body

// do stuff with this data
// ...

const response = { result: 'success', message: 'payment processed correctly' }
return { statusCode: 200, body: JSON.stringify(response) }
}

// Notice that in the handler you only added base business logic (no deserialization,
// validation or error handler), we will add the rest with middlewares

const schema = {
type: 'object',
properties: {
body: {
type: 'object',
properties: {
creditCardNumber: {
type: 'string',
minLength: 12,
maxLength: 19,
pattern: '\\d+'
},
expiryMonth: { type: 'integer', minimum: 1, maximum: 12 },
expiryYear: { type: 'integer', minimum: 2017, maximum: 2027 },
cvc: { type: 'string', minLength: 3, maxLength: 4, pattern: '\\d+' },
nameOnCard: { type: 'string' },
amount: { type: 'number' }
},
required: ['creditCardNumber'] // Insert here all required event properties
}
}
}

// Let's "middyfy" our handler, then we will be able to attach middlewares to it
export const handler = middy()
.use(jsonBodyParser()) // parses the request body when it's a JSON and converts it to an object
.use(validator({ eventSchema: transpileSchema(schema) })) // validates the input
.use(httpErrorHandler()) // handles common http errors and returns proper responses
.handler(lambdaHandler)
+

Why?

+

One of the main strengths of serverless and AWS Lambda is that, from a developer +perspective, your focus is mostly shifted toward implementing business logic.

+

Anyway, when you are writing a handler, you still have to deal with some common technical concerns outside business logic, like input parsing and validation, output serialization, -error handling, etc.

Very often, all this necessary code ends up polluting the pure business logic code in -your handlers, making the code harder to read and to maintain.

In other contexts, like generic web frameworks (fastify, hapi, express, etc.), this -problem has been solved using the middleware pattern.

This pattern allows developers to isolate these common technical concerns into +error handling, etc.

+

Very often, all this necessary code ends up polluting the pure business logic code in +your handlers, making the code harder to read and to maintain.

+

In other contexts, like generic web frameworks (fastify, hapi, express, etc.), this +problem has been solved using the middleware pattern.

+

This pattern allows developers to isolate these common technical concerns into "steps" that decorate the main business logic code. Middleware functions are generally written as independent modules and then plugged into the application in a configuration step, thus not polluting the main business logic -code that remains clean, readable, and easy to maintain.

Since we couldn't find a similar approach for AWS Lambda handlers, we decided -to create middy, our own middleware framework for serverless in AWS land.

- - +code that remains clean, readable, and easy to maintain.

+

Since we couldn't find a similar approach for AWS Lambda handlers, we decided +to create middy, our own middleware framework for serverless in AWS land.

\ No newline at end of file diff --git a/docs/integrations/RDS/index.html b/docs/integrations/RDS/index.html index b2bf5cbd6..375d30b0a 100644 --- a/docs/integrations/RDS/index.html +++ b/docs/integrations/RDS/index.html @@ -1,17 +1,18 @@ - + - -AWS Relational Database Service (RDS) | Middy.js - - + +AWS Relational Database Service (RDS) | Middy.js + + -
-

AWS Relational Database Service (RDS)

caution

This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.

First, you need to pass in a password. In order from most secure to least: RDS.Signer, SecretsManager, SSM using SecureString. -SSM can be considered equally secure to SecretsManager if you have your own password rotation system.

Additionally, you will want to verify the RDS certificate and the domain of your connection. You can use this sudo code to get you started:

import tls from 'tls'

// https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html
const ca = `-----BEGIN CERTIFICATE----- ...`

connectionOptions = {
...,
ssl: {
rejectUnauthorized: true,
ca,
checkServerIdentity: (host, cert) => {
const error = tls.checkServerIdentity(host, cert)
if (
error &&
!cert.subject.CN.endsWith('.rds.amazonaws.com')
) {
return error
}
}
}
}

Corresponding RDS.ParameterGroups values should be set to enforce TLS connections.

- - +

AWS Relational Database Service (RDS)

caution

This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.

+

First, you need to pass in a password. In order from most secure to least: RDS.Signer, SecretsManager, SSM using SecureString. +SSM can be considered equally secure to SecretsManager if you have your own password rotation system.

+

Additionally, you will want to verify the RDS certificate and the domain of your connection. You can use this sudo code to get you started:

+
import tls from 'tls'

// https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html
const ca = `-----BEGIN CERTIFICATE----- ...`

connectionOptions = {
...,
ssl: {
rejectUnauthorized: true,
ca,
checkServerIdentity: (host, cert) => {
const error = tls.checkServerIdentity(host, cert)
if (
error &&
!cert.subject.CN.endsWith('.rds.amazonaws.com')
) {
return error
}
}
}
}
+

Corresponding RDS.ParameterGroups values should be set to enforce TLS connections.

\ No newline at end of file diff --git a/docs/integrations/apollo-server/index.html b/docs/integrations/apollo-server/index.html index 37f2c97b6..7a5fbff6f 100644 --- a/docs/integrations/apollo-server/index.html +++ b/docs/integrations/apollo-server/index.html @@ -1,16 +1,14 @@ - + - -Apollo Server | Middy.js - - + +Apollo Server | Middy.js + + -
-

Apollo Server

caution

This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.

import middy from '@middy/core'
import { ApolloServer, gql } from 'apollo-server-lambda'
import { buildFederatedSchema } from '@apollo/federation'
import { resolvers } from './graphql/resolvers.js'
import { graphqlFileToStr } from './graphql/schema.js'

const graphQL = new ApolloServer({
schema: buildFederatedSchema({
typeDefs: gql(graphqlFileToStr),
resolvers
})
})

// Do not use: `@middy/http-json-body-parser` it is already handled within apollo
export const handler = middy(graphQL.createHandler())
- - +

Apollo Server

caution

This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.

+
import middy from '@middy/core'
import { ApolloServer, gql } from 'apollo-server-lambda'
import { buildFederatedSchema } from '@apollo/federation'
import { resolvers } from './graphql/resolvers.js'
import { graphqlFileToStr } from './graphql/schema.js'

const graphQL = new ApolloServer({
schema: buildFederatedSchema({
typeDefs: gql(graphqlFileToStr),
resolvers
})
})

// Do not use: `@middy/http-json-body-parser` it is already handled within apollo
export const handler = middy().handler(graphQL.createHandler())
\ No newline at end of file diff --git a/docs/integrations/intro/index.html b/docs/integrations/intro/index.html index 993d1b228..d00979749 100644 --- a/docs/integrations/intro/index.html +++ b/docs/integrations/intro/index.html @@ -1,16 +1,13 @@ - + - -Integrations | Middy.js - - + +Integrations | Middy.js + + - - - + \ No newline at end of file diff --git a/docs/integrations/lambda-powertools/index.html b/docs/integrations/lambda-powertools/index.html index ee3f3a38d..0809d906b 100644 --- a/docs/integrations/lambda-powertools/index.html +++ b/docs/integrations/lambda-powertools/index.html @@ -1,16 +1,152 @@ - + - -Powertools for AWS Lambda | Middy.js - - + +Powertools for AWS Lambda | Middy.js + + -
-

Powertools for AWS Lambda

Powertools for AWS is a developer toolkit to implement Serverless best practices and increase developer velocity.

You can use Powertools for AWS in both TypeScript and JavaScript code bases.

note

Powertools officially supports @middy/core v3.x only. In most cases when using Node.js 16 or higher you can use Powertools with @middy/core v4.x, however support is provided on a best-effort basis and we recommend using @middy/core v3.x.

Intro

Powertools is a collection of utilities that can be used independently or together to help you build production-ready serverless applications. Currently, Powertools provides the following utilities that are compatible with Middy:

  • Logger - Structured logging made easier with a middleware to capture key fields from the Lambda context, cold starts, and more. Compatible with Amazon CloudWatch, Datadog, and more.
  • Tracer - An opinionated wrapper around AWS X-Ray SDK for Node.js with a middleware to automatically capture traces for function invocations, HTTP requests, and AWS SDK calls, and more.
  • Metrics - Create Amazon CloudWatch custom metrics asynchronously with a middleware that takes care of capturing cold starts, and flushes metrics to CloudWatch in EMF-formatted batches.
  • Idempotency - Middleware to make your Lambda functions idempotent and prevent duplicate execution based on payload content.

Logger

Key features:

  • Capturing key fields from the Lambda context, cold starts, and structure logging output as JSON.
  • Logging Lambda invocation events when instructed (disabled by default).
  • Printing all the logs only for a percentage of invocations via log sampling (disabled by default).
  • Appending additional keys to structured logs at any point in time.
  • Providing a custom log formatter (Bring Your Own Formatter) to output logs in a structure compatible with your organization’s Logging RFC.

Install

npm install --save @aws-lambda-powertools/logger

Options

Class constructor accepts the following options, which are all optional:

  • logLevel (string|LogLevel): Log level to use. Defaults to INFO, but you can use any of the following values: SILENT, DEBUG, INFO, WARN, ERROR, CRITICAL.
  • serviceName (string): Service name to use that will be used in all log statements. Defaults to service_undefined.
  • sampleRateValue (number): number between 0.0 and 1 to determine the sample rate for debug logging. Defaults to 0 (no debub logging).

Middleware accepts the following options:

  • logger (Logger) (required): An instance of the Logger class.
  • option (object) (optional): An object with the following keys:
    • logEvent (boolean) (optional): Whether to log the Lambda invocation event. Defaults to false.
    • clearState (boolean) (optional): Whether to clear the logger state after each invocation. Defaults to false.

Sample usage

import middy from '@middy/core';
import { Logger, injectLambdaContext } from '@aws-lambda-powertools/logger';

const logger = new Logger({ serviceName: 'serverlessAirline' });

const lambdaHandler = async (_event, _context) => {
logger.info('This is an INFO log with some context', {
foo: {
bar: 'baz'
}
});
};

export const handler = middy(lambdaHandler)
.use(injectLambdaContext(logger));

The above code will output the following log:

{
"cold_start": true,
"function_arn": "arn:aws:lambda:eu-west-1:123456789012:function:shopping-cart-api-lambda-prod-eu-west-1",
"function_memory_size": 128,
"function_request_id": "c6af9ac6-7b61-11e6-9a41-93e812345678",
"function_name": "shopping-cart-api-lambda-prod-eu-west-1",
"level": "INFO",
"message": "This is an INFO log with some context",
"foo": {
"bar": "baz"
},
"service": "serverlessAirline",
"timestamp": "2021-12-12T21:21:08.921Z",
"xray_trace_id": "abcdef123456abcdef123456abcdef123456"
}

As you can see, the log entry includes several fields that are automatically captured by the Logger utility, and that can help you better understand the context of the log entry. For example, the cold_start field indicates whether the Lambda function was cold started or not, and the xray_trace_id field contains the AWS X-Ray trace ID for the Lambda invocation. This is useful when you're troubleshooting a problem and want to correlate the logs with the traces.

The Logger utility also allows you to append arbitary keys to the log entry at both the global level, at the invocation level, and at the single log level. For example, there might be some keys that you want to include in all log entries, such as the environment key to differentiate between the prod and dev environments, or in other cases you might want to include some keys only for a specific log entry, such as the customer_id key to identify the customer that triggered the Lambda invocation.

Additionally, you can also configure Logger to log the Lambda invocation event, which can be useful when you're troubleshooting a problem and want to see the event that triggered the Lambda invocation. Finally, Logger allows you to define a custom log formatter to output logs in a different JSON structure from the default one. This is useful when you want to output logs in a structure that is compatible with your organization's requirements.

Tracer

Key features:

  • Auto-capturing cold start and service name as annotations, and responses or full exceptions as metadata.
  • Automatically tracing HTTP(S) clients and generating segments for each request.
  • Supporting tracing functions via decorators, middleware, and manual instrumentation.
  • Supporting tracing AWS SDK v2 and v3 via AWS X-Ray SDK for Node.js.
  • Auto-disable tracing when not running in the Lambda environment.

Install

npm install --save @aws-lambda-powertools/tracer

Options

Class constructor accepts the following options, which are all optional:

  • serviceName (string): Service name to use that will be used in all log statements. Defaults to service_undefined.
  • enabled (boolean): Whether to enable tracing. Defaults to true.
  • captureHTTPsRequests (boolean): Whether to capture outgoing HTTP(S) requests as segment metadata. Defaults to true.

Middleware accepts the following options:

  • tracer (Tracer) (required): An instance of the Tracer class.
  • option (object) (optional): An object with the following keys:
    • captureResponse (boolean) (optional): Whether to capture the Lambda invocation result as segment metadata. Defaults to true.

Sample usage

import middy from '@middy/core';
import { Tracer, captureLambdaHandler } from '@aws-lambda-powertools/tracer';
import { SecretsManagerClient } from '@aws-sdk/client-secrets-manager';

const tracer = new Tracer({
serviceName: 'serverlessAirline'
});

const client = tracer.captureAWSv3Client(
new SecretsManagerClient({})
);

const lambdaHandler = async (_event, _context) => {
tracer.putAnnotation('successfulBooking', true);
};

export const handler = middy(lambdaHandler)
.use(captureLambdaHandler(tracer));

The above code instructs the Tracer utility to create a custom segment named ## index.handler and to add an annotation to it with the key successfulBooking and the value true. The segment name is automatically generated based on the handler name, and the ## prefix is used to indicate that this is a custom segment. The Tracer utility also automatically captures the cold start and service name as annotations, and the Lambda invocation result or any error thrown as metadata. The segment data will be automatically sent to AWS X-Ray when the Lambda function completes its execution.

Tracer also automatically captures and traces any outgoing HTTP(S) requests made by the Lambda function. For example, if your function makes a request to a custom API, the Tracer utility will automatically create a segment for that request which will appear in your trace data and service map. Additionally, it will also capture any AWS SDK calls made by the function, and do the same for them.

Metrics

Key features:

  • Aggregating up to 100 metrics using a single CloudWatch EMF object.
  • Validating your metrics against common metric definitions mistakes (for example, metric unit, values, max dimensions, max metrics).
  • Metrics are created asynchronously by the CloudWatch service. You do not need any custom stacks, and there is no impact to Lambda function latency.
  • Creating a one-off metric with different dimensions.

If you're new to Amazon CloudWatch, there are a few terms like Namespace, Dimensions, Unit, etc, that you must be aware of before you start using the Metrics utility. To learn more about these terms, see the documentation on PowerTools Metrics.

Install

npm install --save @aws-lambda-powertools/metrics

Options

Class constructor accepts the following options, which are all optional:

  • serviceName (string): Service name to use that will be used in all log statements. Defaults to service_undefined.
  • defaultNamespace (string): Default namespace to use for all metrics. Defaults to default_namespace.

Middleware accepts the following options:

  • metrics (Metric) (required): An instance of the Metrics class.
  • option (object) (optional): An object with the following keys:
    • throwOnEmptyMetrics (boolean) (optional): Whether to throw an error if no metrics were added. Defaults to false.
    • captureColdStartMetric (boolean) (optional): Whether to capture the cold start metric. Defaults to true.

Sample usage

import middy from '@middy/core';
import { Metrics, MetricUnits, logMetrics } from '@aws-lambda-powertools/metrics';

const metrics = new Metrics({
namespace: 'serverlessAirline',
serviceName: 'orders'
});

const lambdaHandler = async (_event: unknown, _context: unknown): Promise<void> => {
metrics.addMetric('successfulBooking', MetricUnits.Count, 1);
};

export const handler = middy(lambdaHandler)
.use(logMetrics(metrics));

The above code will output a CloudWatch EMF object similar to the following:

{
"successfulBooking": 1.0,
"_aws": {
"Timestamp": 1592234975665,
"CloudWatchMetrics": [{
"Namespace": "successfulBooking",
"Dimensions": [
[ "service" ]
],
"Metrics": [{
"Name": "successfulBooking",
"Unit": "Count"
}]
}],
"service": "orders"
}
}

This EMF object will be sent to CloudWatch asynchronously by the CloudWatch service. You do not need any custom stacks, and there is no impact to Lambda function latency.

The Metrics utility supports high-resolution metrics as well as multi-value metrics. It also allows you to add default dimensions that are used in all the metrics emitted by your application or create a one-off metric with different dimensions.

Idempotency

Key features:

  • Prevent Lambda handler from executing more than once on the same event payload during a time window
  • Ensure Lambda handler returns the same result when called with the same payload
  • Select a subset of the event as the idempotency key using JMESPath expressions
  • Set a time window in which records with the same payload should be considered duplicates
  • Expires in-progress executions if the Lambda function times out halfway through

The property of idempotency means that an operation does not cause additional side effects if it is called more than once with the same input parameters. Idempotent operations will return the same result when they are called multiple times with the same parameters. This makes idempotent operations safe to retry.

Install

npm install --save @aws-lambda-powertools/idempotency @aws-sdk/client-dynamodb @aws-sdk/lib-dynamodb

Options

Middleware accepts the following options:

Sample usage

import middy from '@middy/core';
import { randomUUID } from 'node:crypto';
import { makeHandlerIdempotent } from '@aws-lambda-powertools/idempotency/middleware';
import { DynamoDBPersistenceLayer } from '@aws-lambda-powertools/idempotency/dynamodb';

const persistenceStore = new DynamoDBPersistenceLayer({
tableName: 'idempotencyTableName',
});

const createSubscriptionPayment = async (
event
) => {
// ... create payment
return {
id: randomUUID(),
productId: event.productId,
};
};

export const handler = middy(
async (event, _context) => {
try {
const payment = await createSubscriptionPayment(event);

return {
paymentId: payment.id,
message: 'success',
statusCode: 200,
};
} catch (error) {
throw new Error('Error creating payment');
}
}
).use(
makeHandlerIdempotent({
persistenceStore,
})
);

Best practices

Using multiple utilities

You can use multiple Powertools utilities in your Lambda function by chaining the respective middlewares together. When doing so the Powertools team recommends that you place the Tracer middleware at the top of the middleware chain, followed by the Logger and any other middlewares.

This is because the Tracer middleware will create a new segment for each Lambda invocation, and the Logger might want to log the event that triggered the Lambda invocation. With this placement you will be able to have a segment that closely matches the actual duration of your Lambda function, and you will be able to see the event that triggered the function invocation before it's potentially modified by other middlewares.

export const handler = middy(() => { /* ... */ })
.use(captureLambdaHandler(tracer))
.use(injectLambdaContext(logger, { logEvent: true }))
.use(logMetrics(metrics, { captureColdStartMetric: true }));

Cleaning up on early returns

As discussed in the early return section, some middlewares might need to stop the whole execution flow and return a response immediately. In this case, if you are writing your own middleware that will work with the Powertools utilities, you must make sure to clean up the utilities before returning.

For example, if you are using the Tracer utility, you must make sure to call the close method so that the Tracer can properly close the current segment and send it to X-Ray. Likewise, if you are using the Metrics utility, it's a good practice to call the clearMetrics method so that the Metrics utility can emit the metrics that were stored in the buffer and avoid you losing any data.

Following the example described in the linked section, you can clean up all the utilities by doing the following:

import { cleanupMiddlewares } from '@aws-lambda-powertools/commons';

// some function that calculates the cache id based on the current event
const calculateCacheId = (event) => {
/* ... */
}
const storage = {}

// middleware
const cacheMiddleware = (options) => {
let cacheKey

const cacheMiddlewareBefore = async (request) => {
cacheKey = options.calculateCacheId(request.event)
if (options.storage.hasOwnProperty(cacheKey)) {
// clean up the Powertools utilities before returning
cleanupMiddlewares()

// exits early and returns the value from the cache if it's already there
return options.storage[cacheKey]
}
}

const cacheMiddlewareAfter = async (request) => {
// stores the calculated response in the cache
options.storage[cacheKey] = request.response
}

return {
before: cacheMiddlewareBefore,
after: cacheMiddlewareAfter
}
}

// sample usage
const handler = middy((event, context) => {
/* ... */
})
.use(captureLambdaHandler(tracer))
.use(injectLambdaContext(logger, { logEvent: true }))
.use(logMetrics(metrics, { captureColdStartMetric: true }))
.use(
cacheMiddleware({
calculateCacheId,
storage
})
);
- - +

Powertools for AWS Lambda

Powertools for AWS is a developer toolkit to implement Serverless best practices and increase developer velocity.

+

You can use Powertools for AWS in both TypeScript and JavaScript code bases.

+
note

Powertools officially supports @middy/core v3.x only. In most cases when using Node.js 16 or higher you can use Powertools with @middy/core v4.x, however support is provided on a best-effort basis and we recommend using @middy/core v3.x.

+

Intro

+

Powertools is a collection of utilities that can be used independently or together to help you build production-ready serverless applications. Currently, Powertools provides the following utilities that are compatible with Middy:

+
    +
  • Logger - Structured logging made easier with a middleware to capture key fields from the Lambda context, cold starts, and more. Compatible with Amazon CloudWatch, Datadog, and more.
  • +
  • Tracer - An opinionated wrapper around AWS X-Ray SDK for Node.js with a middleware to automatically capture traces for function invocations, HTTP requests, and AWS SDK calls, and more.
  • +
  • Metrics - Create Amazon CloudWatch custom metrics asynchronously with a middleware that takes care of capturing cold starts, and flushes metrics to CloudWatch in EMF-formatted batches.
  • +
  • Idempotency - Middleware to make your Lambda functions idempotent and prevent duplicate execution based on payload content.
  • +
+

Logger

+

Key features:

+
    +
  • Capturing key fields from the Lambda context, cold starts, and structure logging output as JSON.
  • +
  • Logging Lambda invocation events when instructed (disabled by default).
  • +
  • Printing all the logs only for a percentage of invocations via log sampling (disabled by default).
  • +
  • Appending additional keys to structured logs at any point in time.
  • +
  • Providing a custom log formatter (Bring Your Own Formatter) to output logs in a structure compatible with your organization’s Logging RFC.
  • +
+

Install

+
npm install --save @aws-lambda-powertools/logger
+

Options

+

Class constructor accepts the following options, which are all optional:

+
    +
  • logLevel (string|LogLevel): Log level to use. Defaults to INFO, but you can use any of the following values: SILENT, DEBUG, INFO, WARN, ERROR, CRITICAL.
  • +
  • serviceName (string): Service name to use that will be used in all log statements. Defaults to service_undefined.
  • +
  • sampleRateValue (number): number between 0.0 and 1 to determine the sample rate for debug logging. Defaults to 0 (no debub logging).
  • +
+

Middleware accepts the following options:

+
    +
  • logger (Logger) (required): An instance of the Logger class.
  • +
  • option (object) (optional): An object with the following keys: +
      +
    • logEvent (boolean) (optional): Whether to log the Lambda invocation event. Defaults to false.
    • +
    • clearState (boolean) (optional): Whether to clear the logger state after each invocation. Defaults to false.
    • +
    +
  • +
+

Sample usage

+
import middy from '@middy/core';
import { Logger, injectLambdaContext } from '@aws-lambda-powertools/logger';

const logger = new Logger({ serviceName: 'serverlessAirline' });

const lambdaHandler = async (_event, _context) => {
logger.info('This is an INFO log with some context', {
foo: {
bar: 'baz'
}
});
};

export const handler = middy(lambdaHandler)
.use(injectLambdaContext(logger));
+

The above code will output the following log:

+
{
"cold_start": true,
"function_arn": "arn:aws:lambda:eu-west-1:123456789012:function:shopping-cart-api-lambda-prod-eu-west-1",
"function_memory_size": 128,
"function_request_id": "c6af9ac6-7b61-11e6-9a41-93e812345678",
"function_name": "shopping-cart-api-lambda-prod-eu-west-1",
"level": "INFO",
"message": "This is an INFO log with some context",
"foo": {
"bar": "baz"
},
"service": "serverlessAirline",
"timestamp": "2021-12-12T21:21:08.921Z",
"xray_trace_id": "abcdef123456abcdef123456abcdef123456"
}
+

As you can see, the log entry includes several fields that are automatically captured by the Logger utility, and that can help you better understand the context of the log entry. For example, the cold_start field indicates whether the Lambda function was cold started or not, and the xray_trace_id field contains the AWS X-Ray trace ID for the Lambda invocation. This is useful when you're troubleshooting a problem and want to correlate the logs with the traces.

+

The Logger utility also allows you to append arbitary keys to the log entry at both the global level, at the invocation level, and at the single log level. For example, there might be some keys that you want to include in all log entries, such as the environment key to differentiate between the prod and dev environments, or in other cases you might want to include some keys only for a specific log entry, such as the customer_id key to identify the customer that triggered the Lambda invocation.

+

Additionally, you can also configure Logger to log the Lambda invocation event, which can be useful when you're troubleshooting a problem and want to see the event that triggered the Lambda invocation. Finally, Logger allows you to define a custom log formatter to output logs in a different JSON structure from the default one. This is useful when you want to output logs in a structure that is compatible with your organization's requirements.

+

Tracer

+

Key features:

+
    +
  • Auto-capturing cold start and service name as annotations, and responses or full exceptions as metadata.
  • +
  • Automatically tracing HTTP(S) clients and generating segments for each request.
  • +
  • Supporting tracing functions via decorators, middleware, and manual instrumentation.
  • +
  • Supporting tracing AWS SDK v2 and v3 via AWS X-Ray SDK for Node.js.
  • +
  • Auto-disable tracing when not running in the Lambda environment.
  • +
+

Install

+
npm install --save @aws-lambda-powertools/tracer
+

Options

+

Class constructor accepts the following options, which are all optional:

+
    +
  • serviceName (string): Service name to use that will be used in all log statements. Defaults to service_undefined.
  • +
  • enabled (boolean): Whether to enable tracing. Defaults to true.
  • +
  • captureHTTPsRequests (boolean): Whether to capture outgoing HTTP(S) requests as segment metadata. Defaults to true.
  • +
+

Middleware accepts the following options:

+
    +
  • tracer (Tracer) (required): An instance of the Tracer class.
  • +
  • option (object) (optional): An object with the following keys: +
      +
    • captureResponse (boolean) (optional): Whether to capture the Lambda invocation result as segment metadata. Defaults to true.
    • +
    +
  • +
+

Sample usage

+
import middy from '@middy/core';
import { Tracer, captureLambdaHandler } from '@aws-lambda-powertools/tracer';
import { SecretsManagerClient } from '@aws-sdk/client-secrets-manager';

const tracer = new Tracer({
serviceName: 'serverlessAirline'
});

const client = tracer.captureAWSv3Client(
new SecretsManagerClient({})
);

const lambdaHandler = async (_event, _context) => {
tracer.putAnnotation('successfulBooking', true);
};

export const handler = middy(lambdaHandler)
.use(captureLambdaHandler(tracer));
+

The above code instructs the Tracer utility to create a custom segment named ## index.handler and to add an annotation to it with the key successfulBooking and the value true. The segment name is automatically generated based on the handler name, and the ## prefix is used to indicate that this is a custom segment. The Tracer utility also automatically captures the cold start and service name as annotations, and the Lambda invocation result or any error thrown as metadata. The segment data will be automatically sent to AWS X-Ray when the Lambda function completes its execution.

+

Tracer also automatically captures and traces any outgoing HTTP(S) requests made by the Lambda function. For example, if your function makes a request to a custom API, the Tracer utility will automatically create a segment for that request which will appear in your trace data and service map. Additionally, it will also capture any AWS SDK calls made by the function, and do the same for them.

+

Metrics

+

Key features:

+
    +
  • Aggregating up to 100 metrics using a single CloudWatch EMF object.
  • +
  • Validating your metrics against common metric definitions mistakes (for example, metric unit, values, max dimensions, max metrics).
  • +
  • Metrics are created asynchronously by the CloudWatch service. You do not need any custom stacks, and there is no impact to Lambda function latency.
  • +
  • Creating a one-off metric with different dimensions.
  • +
+

If you're new to Amazon CloudWatch, there are a few terms like Namespace, Dimensions, Unit, etc, that you must be aware of before you start using the Metrics utility. To learn more about these terms, see the documentation on PowerTools Metrics.

+

Install

+
npm install --save @aws-lambda-powertools/metrics
+

Options

+

Class constructor accepts the following options, which are all optional:

+
    +
  • serviceName (string): Service name to use that will be used in all log statements. Defaults to service_undefined.
  • +
  • defaultNamespace (string): Default namespace to use for all metrics. Defaults to default_namespace.
  • +
+

Middleware accepts the following options:

+
    +
  • metrics (Metric) (required): An instance of the Metrics class.
  • +
  • option (object) (optional): An object with the following keys: +
      +
    • throwOnEmptyMetrics (boolean) (optional): Whether to throw an error if no metrics were added. Defaults to false.
    • +
    • captureColdStartMetric (boolean) (optional): Whether to capture the cold start metric. Defaults to true.
    • +
    +
  • +
+

Sample usage

+
import middy from '@middy/core';
import { Metrics, MetricUnits, logMetrics } from '@aws-lambda-powertools/metrics';

const metrics = new Metrics({
namespace: 'serverlessAirline',
serviceName: 'orders'
});

const lambdaHandler = async (_event: unknown, _context: unknown): Promise<void> => {
metrics.addMetric('successfulBooking', MetricUnits.Count, 1);
};

export const handler = middy(lambdaHandler)
.use(logMetrics(metrics));
+

The above code will output a CloudWatch EMF object similar to the following:

+
{
"successfulBooking": 1.0,
"_aws": {
"Timestamp": 1592234975665,
"CloudWatchMetrics": [{
"Namespace": "successfulBooking",
"Dimensions": [
[ "service" ]
],
"Metrics": [{
"Name": "successfulBooking",
"Unit": "Count"
}]
}],
"service": "orders"
}
}
+

This EMF object will be sent to CloudWatch asynchronously by the CloudWatch service. You do not need any custom stacks, and there is no impact to Lambda function latency.

+

The Metrics utility supports high-resolution metrics as well as multi-value metrics. It also allows you to add default dimensions that are used in all the metrics emitted by your application or create a one-off metric with different dimensions.

+

Idempotency

+

Key features:

+
    +
  • Prevent Lambda handler from executing more than once on the same event payload during a time window
  • +
  • Ensure Lambda handler returns the same result when called with the same payload
  • +
  • Select a subset of the event as the idempotency key using JMESPath expressions
  • +
  • Set a time window in which records with the same payload should be considered duplicates
  • +
  • Expires in-progress executions if the Lambda function times out halfway through
  • +
+

The property of idempotency means that an operation does not cause additional side effects if it is called more than once with the same input parameters. Idempotent operations will return the same result when they are called multiple times with the same parameters. This makes idempotent operations safe to retry.

+

Install

+
npm install --save @aws-lambda-powertools/idempotency @aws-sdk/client-dynamodb @aws-sdk/lib-dynamodb
+

Options

+

Middleware accepts the following options:

+ +

Sample usage

+
import middy from '@middy/core';
import { randomUUID } from 'node:crypto';
import { makeHandlerIdempotent } from '@aws-lambda-powertools/idempotency/middleware';
import { DynamoDBPersistenceLayer } from '@aws-lambda-powertools/idempotency/dynamodb';

const persistenceStore = new DynamoDBPersistenceLayer({
tableName: 'idempotencyTableName',
});

const createSubscriptionPayment = async (
event
) => {
// ... create payment
return {
id: randomUUID(),
productId: event.productId,
};
};

export const handler = middy(
async (event, _context) => {
try {
const payment = await createSubscriptionPayment(event);

return {
paymentId: payment.id,
message: 'success',
statusCode: 200,
};
} catch (error) {
throw new Error('Error creating payment');
}
}
).use(
makeHandlerIdempotent({
persistenceStore,
})
);
+

Best practices

+

Using multiple utilities

+

You can use multiple Powertools utilities in your Lambda function by chaining the respective middlewares together. When doing so the Powertools team recommends that you place the Tracer middleware at the top of the middleware chain, followed by the Logger and any other middlewares.

+

This is because the Tracer middleware will create a new segment for each Lambda invocation, and the Logger might want to log the event that triggered the Lambda invocation. With this placement you will be able to have a segment that closely matches the actual duration of your Lambda function, and you will be able to see the event that triggered the function invocation before it's potentially modified by other middlewares.

+
export const handler = middy(() => { /* ... */ })
.use(captureLambdaHandler(tracer))
.use(injectLambdaContext(logger, { logEvent: true }))
.use(logMetrics(metrics, { captureColdStartMetric: true }));
+

Cleaning up on early returns

+

As discussed in the early return section, some middlewares might need to stop the whole execution flow and return a response immediately. In this case, if you are writing your own middleware that will work with the Powertools utilities, you must make sure to clean up the utilities before returning.

+

For example, if you are using the Tracer utility, you must make sure to call the close method so that the Tracer can properly close the current segment and send it to X-Ray. Likewise, if you are using the Metrics utility, it's a good practice to call the clearMetrics method so that the Metrics utility can emit the metrics that were stored in the buffer and avoid you losing any data.

+

Following the example described in the linked section, you can clean up all the utilities by doing the following:

+
import { cleanupMiddlewares } from '@aws-lambda-powertools/commons';

// some function that calculates the cache id based on the current event
const calculateCacheId = (event) => {
/* ... */
}
const storage = {}

// middleware
const cacheMiddleware = (options) => {
let cacheKey

const cacheMiddlewareBefore = async (request) => {
cacheKey = options.calculateCacheId(request.event)
if (options.storage.hasOwnProperty(cacheKey)) {
// clean up the Powertools utilities before returning
cleanupMiddlewares()

// exits early and returns the value from the cache if it's already there
return options.storage[cacheKey]
}
}

const cacheMiddlewareAfter = async (request) => {
// stores the calculated response in the cache
options.storage[cacheKey] = request.response
}

return {
before: cacheMiddlewareBefore,
after: cacheMiddlewareAfter
}
}

// sample usage
const handler = middy((event, context) => {
/* ... */
})
.use(captureLambdaHandler(tracer))
.use(injectLambdaContext(logger, { logEvent: true }))
.use(logMetrics(metrics, { captureColdStartMetric: true }))
.use(
cacheMiddleware({
calculateCacheId,
storage
})
);
\ No newline at end of file diff --git a/docs/integrations/pino/index.html b/docs/integrations/pino/index.html index 75b835197..bcffeda4d 100644 --- a/docs/integrations/pino/index.html +++ b/docs/integrations/pino/index.html @@ -1,16 +1,13 @@ - + - -Pino | Middy.js - - + +Pino | Middy.js + + - - - + \ No newline at end of file diff --git a/docs/integrations/serverless-framework/index.html b/docs/integrations/serverless-framework/index.html index ac01c4146..4600fe0ce 100644 --- a/docs/integrations/serverless-framework/index.html +++ b/docs/integrations/serverless-framework/index.html @@ -1,16 +1,14 @@ - + - -Serverless Framework | Middy.js - - + +Serverless Framework | Middy.js + + -
-

Serverless Framework

caution

This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.

TODO comment about serverless-warmup

- - +

Serverless Framework

caution

This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.

+

TODO comment about serverless-warmup

\ No newline at end of file diff --git a/docs/integrations/serverless-stack/index.html b/docs/integrations/serverless-stack/index.html index ea6e82f81..dac90dd53 100644 --- a/docs/integrations/serverless-stack/index.html +++ b/docs/integrations/serverless-stack/index.html @@ -1,16 +1,13 @@ - + - -Serverless Stack | Middy.js - - + +Serverless Stack | Middy.js + + -
-
- - +
\ No newline at end of file diff --git a/docs/intro/contributing/index.html b/docs/intro/contributing/index.html index af2349fc2..420e71a06 100644 --- a/docs/intro/contributing/index.html +++ b/docs/intro/contributing/index.html @@ -1,16 +1,14 @@ - + - -Contributing | Middy.js - - + +Contributing | Middy.js + + - - - + \ No newline at end of file diff --git a/docs/intro/early-interrupt/index.html b/docs/intro/early-interrupt/index.html index f045e8483..9bb778133 100644 --- a/docs/intro/early-interrupt/index.html +++ b/docs/intro/early-interrupt/index.html @@ -1,18 +1,19 @@ - + - -Early return | Middy.js - - + +Early return | Middy.js + + -
-

Early return

Some middlewares might need to stop the whole execution flow and return a response immediately.

If you want to do this you can invoke return response in your middleware.

Note: this will totally stop the execution of successive middlewares in any phase (before, after, onError) and returns +

Early return

Some middlewares might need to stop the whole execution flow and return a response immediately.

+

If you want to do this you can invoke return response in your middleware.

+

Note: this will totally stop the execution of successive middlewares in any phase (before, after, onError) and returns an early response (or an error) directly at the Lambda level. If your middlewares do a specific task on every request -like output serialization, error handling or clean, these won't be invoked in this case. They will have to be handled before the return.

In this example, we can use this capability for building a sample caching middleware:

// some function that calculates the cache id based on the current event
const calculateCacheId = (event) => {
/* ... */
}
const storage = {}

// middleware
const cacheMiddleware = (options) => {
let cacheKey

const cacheMiddlewareBefore = async (request) => {
cacheKey = options.calculateCacheId(request.event)
if (options.storage.hasOwnProperty(cacheKey)) {
// exits early and returns the value from the cache if it's already there
return options.storage[cacheKey]
}
}

const cacheMiddlewareAfter = async (request) => {
// stores the calculated response in the cache
options.storage[cacheKey] = request.response
}

return {
before: cacheMiddlewareBefore,
after: cacheMiddlewareAfter
}
}

// sample usage
const handler = middy((event, context) => {
/* ... */
}).use(
cacheMiddleware({
calculateCacheId,
storage
})
)
- - +like output serialization, error handling or clean, these won't be invoked in this case. They will have to be handled before the return.

+

In this example, we can use this capability for building a sample caching middleware:

+
// some function that calculates the cache id based on the current event
const calculateCacheId = (event) => {
/* ... */
}
const storage = {}

// middleware
const cacheMiddleware = (options) => {
let cacheKey

const cacheMiddlewareBefore = async (request) => {
cacheKey = options.calculateCacheId(request.event)
if (options.storage.hasOwnProperty(cacheKey)) {
// exits early and returns the value from the cache if it's already there
return options.storage[cacheKey]
}
}

const cacheMiddlewareAfter = async (request) => {
// stores the calculated response in the cache
options.storage[cacheKey] = request.response
}

return {
before: cacheMiddlewareBefore,
after: cacheMiddlewareAfter
}
}

// sample usage
const lambdaHandler = (event, context) => {
/* ... */
}
export const handler = middy()
.use(
cacheMiddleware({
calculateCacheId,
storage
})
)
.handler(lambdaHandler)
\ No newline at end of file diff --git a/docs/intro/getting-started/index.html b/docs/intro/getting-started/index.html index c937c83d3..61898875e 100644 --- a/docs/intro/getting-started/index.html +++ b/docs/intro/getting-started/index.html @@ -1,20 +1,35 @@ - + - -Getting started | Middy.js - - + +Getting started | Middy.js + + -
-

Getting started

Install

To install middy, you can use NPM:

npm install --save @middy/core

If you are using TypeScript, you will also want to make sure that you have installed the @types/aws-lambda peer-dependency:

npm install --save-dev @types/aws-lambda

Usage

As you will see in the next example, using middy is very -simple and requires just few steps:

  1. Write your Lambda handlers as usual, focusing mostly on implementing the bare -business logic for them.
  2. Import middy and all the middlewares you want to use.
  3. Wrap your handler in the middy() factory function. This will return a new +

    Getting started

    Install

    +

    To install middy, you can use NPM:

    +
    npm install --save @middy/core
    +

    If you are using TypeScript, you will also want to make sure that you have installed the @types/aws-lambda peer-dependency:

    +
    npm install --save-dev @types/aws-lambda
    +

    Usage

    +

    As you will see in the next example, using middy is very +simple and requires just few steps:

    +
      +
    1. Write your Lambda handlers as usual, focusing mostly on implementing the bare +business logic for them.
    2. +
    3. Import middy and all the middlewares you want to use.
    4. +
    5. Wrap your handler in the middy() factory function. This will return a new enhanced instance of your original handler, to which you will be able to attach -the middlewares you need.
    6. Attach all the middlewares you need using the function .use(somemiddleware())

    Example

    import middy from '@middy/core'
    import middleware1 from 'sample-middleware1'
    import middleware2 from 'sample-middleware2'
    import middleware3 from 'sample-middleware3'

    const lambdaHandler = (event, context) => {
    /* your business logic */
    }

    export const handler = middy(lambdaHandler)

    handler
    .use(middleware1())
    .use(middleware2())
    .use(middleware3())

    .use() takes a single middleware or an array of middlewares, so you can attach multiple middlewares in a single call:

    import middy from "@middy/core"
    import middleware1 from "sample-middleware1"
    import middleware2 from "sample-middleware2"
    import middleware3 from "sample-middleware3"
    const middlewares = [middleware1(), middleware2(), middleware3()]

    const lambdaHandler = (event, context) => {
    /* your business logic */
    };

    export const handler = middy(lambdaHandler)

    handler.use(middlewares)

    You can also attach inline middlewares by using the functions .before, .after and .onError.

    For a more detailed use case and examples check the Writing a middleware section.

    - - +the middlewares you need.
  4. +
  5. Attach all the middlewares you need using the function .use(somemiddleware())
  6. +
+

Example

+
import middy from '@middy/core'
import middleware1 from 'sample-middleware1'
import middleware2 from 'sample-middleware2'
import middleware3 from 'sample-middleware3'

const lambdaHandler = (event, context) => {
/* your business logic */
}

export const handler = middy()
.use(middleware1())
.use(middleware2())
.use(middleware3())
.handler(lambdaHandler)
+

.use() takes a single middleware or an array of middlewares, so you can attach multiple middlewares in a single call:

+
import middy from '@middy/core'
import middleware1 from 'sample-middleware1'
import middleware2 from 'sample-middleware2'
import middleware3 from 'sample-middleware3'

const lambdaHandler = (event, context) => {
/* your business logic */
}

export const handler = middy()
.use([middleware1(), middleware2(), middleware3()])
.handler(lambdaHandler)
+

You can also attach inline middlewares by using the functions .before, .after and .onError.

+

For a more detailed use case and examples check the Writing a middleware section.

\ No newline at end of file diff --git a/docs/intro/handling-errors/index.html b/docs/intro/handling-errors/index.html index 2b7ff42b2..647f9facc 100644 --- a/docs/intro/handling-errors/index.html +++ b/docs/intro/handling-errors/index.html @@ -1,22 +1,24 @@ - + - -Handling Errors | Middy.js - - + +Handling Errors | Middy.js + + -
-

Handling Errors

But, what happens when there is an error?

When there is an error, the regular control flow is stopped and the execution is +

Handling Errors

But, what happens when there is an error?

+

When there is an error, the regular control flow is stopped and the execution is moved back to all the middlewares that implemented a special phase called onError, following -the same order as after.

Every onError middleware can decide to handle the error and create a proper response or -to delegate the error to the next middleware.

When a middleware handles the error and creates a response, the execution is still propagated to all the other +the same order as after.

+

Every onError middleware can decide to handle the error and create a proper response or +to delegate the error to the next middleware.

+

When a middleware handles the error and creates a response, the execution is still propagated to all the other error middlewares and they have a chance to update or replace the response as needed. At the end of the error middlewares sequence, the response is returned -to the user.

If no middleware manages the error, the Lambda execution fails reporting the unmanaged error.

// Initialize response
request.response = request.response ?? {}

// Add to response
request.response.add = 'more'

// Override an error
request.error = new Error('...')

// handle the error
return request.response
- - +to the user.

+

If no middleware manages the error, the Lambda execution fails reporting the unmanaged error.

+
// Initialize response
request.response = request.response ?? {}

// Add to response
request.response.add = 'more'

// Override an error
request.error = new Error('...')

// handle the error
return request.response
\ No newline at end of file diff --git a/docs/intro/history/index.html b/docs/intro/history/index.html index 22d2a09e9..d6543b72e 100644 --- a/docs/intro/history/index.html +++ b/docs/intro/history/index.html @@ -1,16 +1,30 @@ - + - -History | Middy.js - - + +History | Middy.js + + -
-

History

A brief history of Middy

  • Middy was started in the early days of AWS Lambda (~2016) and it was initially only used to remove duplication in a big serverless project with tons of lambdas. Only in August 2017 Middy's source code was released on GitHub making it an open source project.
  • 2017-08-03: First commit
  • 2017-09-04: v0.2.1 First release
  • 2020-04-25: v1.0.0 Released
  • 2020 Review by @lmammino
  • 2020 Review by @willfarrell
  • 2021: v2.0.0 Coming soon
  • 2021-04-01: v2.0.0 Released
  • 2021-02-02: 2021 Review from @lmammino
  • 2022-05-12: v3.0.0 Released
  • 2022-11-24: v4.0.0 Released

Fun Fact: The adding of the emoji-icon was the 2nd commit to the project.

- - +

History

A brief history of Middy

+ +

Fun Fact: The adding of the emoji-icon was the 2nd commit to the project.

\ No newline at end of file diff --git a/docs/intro/hooks/index.html b/docs/intro/hooks/index.html index db79147e9..5c67a3566 100644 --- a/docs/intro/hooks/index.html +++ b/docs/intro/hooks/index.html @@ -1,16 +1,22 @@ - + - -Hooks | Middy.js - - + +Hooks | Middy.js + + -
-

Hooks

Middy provides hooks into it's core to allow for monitoring, setup, and cleaning that may not be possible within a middleware.

In order of execution

  • beforePrefetch(): Triggered once before middlewares are attached and prefetches are executed.
  • requestStart(): Triggered on every request before the first middleware.
  • beforeMiddleware/afterMiddleware(fctName): Triggered before/after every before, after, and onError middleware function. The function name is passed in, this is why all middlewares use a verbose naming pattern.
  • beforeHandler/afterHandler(): Triggered before/after the handler.
  • requestEnd(request): Triggered right before the response is returned, including thrown errors.

See Profiling for example usage.

- - +

Hooks

Middy provides hooks into it's core to allow for monitoring, setup, and cleaning that may not be possible within a middleware.

+

In order of execution

+
    +
  • beforePrefetch(): Triggered once before middlewares are attached and prefetches are executed.
  • +
  • requestStart(): Triggered on every request before the first middleware.
  • +
  • beforeMiddleware/afterMiddleware(fctName): Triggered before/after every before, after, and onError middleware function. The function name is passed in, this is why all middlewares use a verbose naming pattern.
  • +
  • beforeHandler/afterHandler(): Triggered before/after the handler.
  • +
  • requestEnd(request): Triggered right before the response is returned, including thrown errors.
  • +
+

See Profiling for example usage.

\ No newline at end of file diff --git a/docs/intro/how-it-works/index.html b/docs/intro/how-it-works/index.html index df1a21131..250143f30 100644 --- a/docs/intro/how-it-works/index.html +++ b/docs/intro/how-it-works/index.html @@ -1,27 +1,43 @@ - + - -How it works | Middy.js - - + +How it works | Middy.js + + -
-

How it works

Middy implements the classic onion-like middleware pattern, with some peculiar details.

Middy middleware engine diagram

When you attach a new middleware this will wrap the business logic contained in the handler -in two separate steps.

When another middleware is attached this will wrap the handler again and it will be wrapped by +

How it works

Middy implements the classic onion-like middleware pattern, with some peculiar details.

+

Middy middleware engine diagram

+

When you attach a new middleware this will wrap the business logic contained in the handler +in two separate steps.

+

When another middleware is attached this will wrap the handler again and it will be wrapped by all the previously added middlewares in order, creating multiple layers for interacting with -the request (event) and the response.

This way the request-response cycle flows through all the middlewares, the +the request (event) and the response.

+

This way the request-response cycle flows through all the middlewares, the handler and all the middlewares again, giving the opportunity within every step to -modify or enrich the current request, context, or the response.

Execution order

Middlewares have two phases: before and after.

The before phase, happens before the handler is executed. In this code the -response is not created yet, so you will have access only to the request.

The after phase, happens after the handler is executed. In this code you will -have access to both the request and the response.

If you have three middlewares attached (as in the image above), this is the expected -order of execution:

  • middleware1 (before)
  • middleware2 (before)
  • middleware3 (before)
  • handler
  • middleware3 (after)
  • middleware2 (after)
  • middleware1 (after)

Notice that in the after phase, middlewares are executed in inverted order, +modify or enrich the current request, context, or the response.

+

Execution order

+

Middlewares have two phases: before and after.

+

The before phase, happens before the handler is executed. In this code the +response is not created yet, so you will have access only to the request.

+

The after phase, happens after the handler is executed. In this code you will +have access to both the request and the response.

+

If you have three middlewares attached (as in the image above), this is the expected +order of execution:

+
    +
  • middleware1 (before)
  • +
  • middleware2 (before)
  • +
  • middleware3 (before)
  • +
  • handler
  • +
  • middleware3 (after)
  • +
  • middleware2 (after)
  • +
  • middleware1 (after)
  • +
+

Notice that in the after phase, middlewares are executed in inverted order, this way the first handler attached is the one with the highest priority as it will be the first able to change the request and last able to modify the response before -it gets sent to the user.

- - +it gets sent to the user.

\ No newline at end of file diff --git a/docs/intro/influence/index.html b/docs/intro/influence/index.html index 96ec872b3..8858e313a 100644 --- a/docs/intro/influence/index.html +++ b/docs/intro/influence/index.html @@ -1,16 +1,19 @@ - + - -Influence | Middy.js - - + +Influence | Middy.js + + -
-

Influence

Middy has been one of the first projects to encourage the adoption of middlewares to simplify code reuse and best practices within the context of Lambda.

Since middy started to gain popularity in the Node.js ecosystem, we have seen some independent projects taking the same ideas to other ecosystems:

Do you have a similar project? Let us know.

- - +

Influence

Middy has been one of the first projects to encourage the adoption of middlewares to simplify code reuse and best practices within the context of Lambda.

+

Since middy started to gain popularity in the Node.js ecosystem, we have seen some independent projects taking the same ideas to other ecosystems:

+ +

Do you have a similar project? Let us know.

\ No newline at end of file diff --git a/docs/intro/release-cycle/index.html b/docs/intro/release-cycle/index.html index c28cb47c7..9ec205ace 100644 --- a/docs/intro/release-cycle/index.html +++ b/docs/intro/release-cycle/index.html @@ -1,19 +1,19 @@ - + - -Release Cycle | Middy.js - - + +Release Cycle | Middy.js + + -
-

Release Cycle

Each major release has a two (2) month Alpha period, one (1) month Beta, before a full release and becomes Stable. +

Release Cycle

Each major release has a two (2) month Alpha period, one (1) month Beta, before a full release and becomes Stable. Each release goes into Maintenance after nine (9) months, as the next release enters Alpha. This time period is chosen for alignment with AWS Lambda nodejs runtime releases. -All Node.js Long-Term Support (LTS) releases that have AWS Lambda runtimes are supported.

VersionStatusAlpha ReleaseStable ReleaseEnd-of-Life
v5Scoping2023-06-012023-09-012025-04-30
v4Stable2022-10-172022-11-242023-09-11
v3Deprecated2022-01-042022-05-122022-12-31
v2Deprecated2021-01-242021-04-012022-05-12
v1Deprecated2018-05-202020-04-252021-04-01
v0Deprecated2017-08-032017-09-042020-04-25

Dates are subject to change.

If your organization requires a longer maintenance period of Middy, please reach out.

- - +All Node.js Long-Term Support (LTS) releases that have AWS Lambda runtimes are supported.

+
VersionStatusAlpha ReleaseStable ReleaseEnd-of-Life
v6Scoping2024-??-??2024-10-292026-04-30
v5Stable2023-06-012023-10-242025-04-30
v4Deprecated2022-10-172022-11-242023-09-11
v3Deprecated2022-01-042022-05-122022-12-31
v2Deprecated2021-01-242021-04-012022-05-12
v1Deprecated2018-05-202020-04-252021-04-01
v0Deprecated2017-08-032017-09-042020-04-25
+

Dates are subject to change.

+

If your organization requires a longer maintenance period of Middy, please reach out.

\ No newline at end of file diff --git a/docs/intro/sponsoring/index.html b/docs/intro/sponsoring/index.html index 38ed72560..a87aa76a6 100644 --- a/docs/intro/sponsoring/index.html +++ b/docs/intro/sponsoring/index.html @@ -1,16 +1,14 @@ - + - -Sponsoring | Middy.js - - + +Sponsoring | Middy.js + + - - - + \ No newline at end of file diff --git a/docs/intro/streamify-response/index.html b/docs/intro/streamify-response/index.html index cbbb07a08..e9dfb4194 100644 --- a/docs/intro/streamify-response/index.html +++ b/docs/intro/streamify-response/index.html @@ -1,17 +1,31 @@ - + - -Streamify Response | Middy.js - - + +Streamify Response | Middy.js + + -
-

Streamify Response

Middy also supports streamed responses.

You can progressively stream response payloads through Lambda function URLs, including as an Amazon CloudFront origin, along with using the AWS SDK or using Lambda’s invoke API. You can not use Amazon API Gateway and Application Load Balancer to progressively stream response payloads, but you can use the functionality to return larger payloads. (https://aws.amazon.com/blogs/compute/introducing-aws-lambda-response-streaming/)

  1. Set streamifyResponse: true into middy options
  2. a. For HTTP Events return using an HTTP event response with the body as a string or ReadableStream. -b. For InvokeWithResponseStream Events return a response with a string or ReadableStream.
  • API Gateway: If you're getting a 500 status code. Be sure to set your integration to HTTP_PROXY over LAMBDA_PROXY and enable Function URL on the lambda.
  • Function URLs: If receiving no content and non-200 status code are being converted to 200. Be sure to set Invoke Mode to RESPONSE_STREAM over BUFFERED.

Lambda Function URL Example

import middy from '@middy/core'
import { createReadableStream } from '@datastream/core'

export const handler = middy({ streamifyResponse: true }).handler(
(event, context) => {
return {
statusCode: 200,
headers: {
'Content-Type': 'text/csv'
},
body: createReadableStream('...') // or string
}
}
)

Lambda InvokeWithResponseStream Example

import middy from '@middy/core'
import { createReadableStream } from '@datastream/core'

export const handler = middy({ streamifyResponse: true }).handler(
(event, context) => {
return createReadableStream('...') // or string
}
)

Requesting Lambda

import {
LambdaClient,
InvokeWithResponseStreamCommand
} from '@aws-sdk/client-lambda'

const lambda = new LambdaClient()

const res = await lambda.send(
new InvokeWithResponseStreamCommand({
FunctionName: 'function-name',
Payload: JSON.stringify({...})
})
)

const decoder = new TextDecoder('utf-8')
let body = ''
for await (const chunk of res.EventStream) {
if (chunk?.PayloadChunk?.Payload) {
body += decoder.decode(Buffer.from(chunk.PayloadChunk.Payload))
}
}
- - +

Streamify Response

Middy also supports streamed responses.

+
+

You can progressively stream response payloads through Lambda function URLs, including as an Amazon CloudFront origin, along with using the AWS SDK or using Lambda’s invoke API. You can not use Amazon API Gateway and Application Load Balancer to progressively stream response payloads, but you can use the functionality to return larger payloads. (https://aws.amazon.com/blogs/compute/introducing-aws-lambda-response-streaming/)

+
+
    +
  1. Set streamifyResponse: true into middy options
  2. +
  3. a. For HTTP Events return using an HTTP event response with the body as a string or ReadableStream. +b. For InvokeWithResponseStream Events return a response with a string or ReadableStream.
  4. +
+
    +
  • API Gateway: If you're getting a 500 status code. Be sure to set your integration to HTTP_PROXY over LAMBDA_PROXY and enable Function URL on the lambda.
  • +
  • Function URLs: If receiving no content and non-200 status code are being converted to 200. Be sure to set Invoke Mode to RESPONSE_STREAM over BUFFERED.
  • +
+

Lambda Function URL Example

+
import middy from '@middy/core'
import { createReadableStream } from '@datastream/core'

const lambdaHandler = (event, context) => {
return {
statusCode: 200,
headers: {
'Content-Type': 'text/csv'
},
body: createReadableStream('...') // or string
}
}

export const handler = middy({ streamifyResponse: true }).handler(lambdaHandler)
+

Lambda InvokeWithResponseStream Example

+
import middy from '@middy/core'
import { createReadableStream } from '@datastream/core'

const lambdaHandler = (event, context) => {
return createReadableStream('...') // or string
}
export const handler = middy({ streamifyResponse: true }).handler(lambdaHandler)
+

Requesting Lambda

+
import {
LambdaClient,
InvokeWithResponseStreamCommand
} from '@aws-sdk/client-lambda'

const lambda = new LambdaClient()

const res = await lambda.send(
new InvokeWithResponseStreamCommand({
FunctionName: 'function-name',
Payload: JSON.stringify({...})
})
)

const decoder = new TextDecoder('utf-8')
let body = ''
for await (const chunk of res.EventStream) {
if (chunk?.PayloadChunk?.Payload) {
body += decoder.decode(Buffer.from(chunk.PayloadChunk.Payload))
}
}
\ No newline at end of file diff --git a/docs/intro/testing/index.html b/docs/intro/testing/index.html index c61a3a1cd..f64846ca2 100644 --- a/docs/intro/testing/index.html +++ b/docs/intro/testing/index.html @@ -1,17 +1,25 @@ - + - -Testing | Middy.js - - + +Testing | Middy.js + + -
-

Testing

caution

This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.

As of Middy v3, by default it will trigger an Abort signal shortly before a lambda times out to allow your handler to safely stop up and middleware to clean before the lambda terminates. -When writing tests for lambda handlers wrapped with middy you'll need to account for this. There are a few approaches:

  1. Set middy(handler, { timeoutEarlyInMillis: 0 }) to alternatively disable the creation of the AbortController.
  2. Set middy(handler, { timeoutEarlyResponse: () => {} }) to disable the timeout error from being thrown using a no-op.
  3. Set context.getRemainingTimeInMillis = falsy to disable the creation of the AbortController.

When using Middy cache and cacheExpiry in unit tests for functions in your code, it is important to conditionally disable them for test cases by setting both Middy options fields as follows:

{
cache: false,
cacheExpiry: 0,
...
}

Failing to do so may make the tests end with unfinished worker processes. Although they may still succeed, this can cause issues and timeout errors, namely in CI/CD environments.

An example of a message generated by Jest unit tests and which signals the need for this is as follows:

A worker process has failed to exit gracefully and has been force exited. This is likely caused by tests leaking due to improper teardown. Try running with --detectOpenHandles to find leaks. Active timers can also cause this, ensure that .unref() was called on them.
- - +

Testing

caution

This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.

+

As of Middy v3, by default it will trigger an Abort signal shortly before a lambda times out to allow your handler to safely stop up and middleware to clean before the lambda terminates. +When writing tests for lambda handlers wrapped with middy you'll need to account for this. There are a few approaches:

+
    +
  1. Set middy(handler, { timeoutEarlyInMillis: 0 }) to alternatively disable the creation of the AbortController.
  2. +
  3. Set middy(handler, { timeoutEarlyResponse: () => {} }) to disable the timeout error from being thrown using a no-op.
  4. +
  5. Set context.getRemainingTimeInMillis = falsy to disable the creation of the AbortController.
  6. +
+

When using Middy cache and cacheExpiry in unit tests for functions in your code, it is important to conditionally disable them for test cases by setting both Middy options fields as follows:

+
{
cache: false,
cacheExpiry: 0,
...
}
+

Failing to do so may make the tests end with unfinished worker processes. Although they may still succeed, this can cause issues and timeout errors, namely in CI/CD environments.

+

An example of a message generated by Jest unit tests and which signals the need for this is as follows:

+
A worker process has failed to exit gracefully and has been force exited. This is likely caused by tests leaking due to improper teardown. Try running with --detectOpenHandles to find leaks. Active timers can also cause this, ensure that .unref() was called on them.
\ No newline at end of file diff --git a/docs/intro/typescript/index.html b/docs/intro/typescript/index.html index 83c2b93d0..aef651b48 100644 --- a/docs/intro/typescript/index.html +++ b/docs/intro/typescript/index.html @@ -1,16 +1,18 @@ - + - -Use with TypeScript | Middy.js - - + +Use with TypeScript | Middy.js + + -
-

Use with TypeScript

Middy can be used with TypeScript with typings built in in every official package.

Here's an example of how you might be using Middy with TypeScript for a Lambda receiving events from API Gateway:

import middy from '@middy/core'
import { APIGatewayProxyEvent, APIGatewayProxyResult } from 'aws-lambda'

async function lambdaHandler (event: APIGatewayProxyEvent): Promise<APIGatewayProxyResult> {
// the returned response will be checked against the type `APIGatewayProxyResult`
return {
statusCode: 200,
body: `Hello from ${event.path}`
}
}

let handler = middy(lambdaHandler)
.use(someMiddleware)
.use(someOtherMiddleware)

export default handler

You can also write custom middlewares with TypeScript.

- - +

Use with TypeScript

Middy can be used with TypeScript with typings built in in every official package.

+

Here's an example of how you might be using Middy with TypeScript for a Lambda receiving events from API Gateway and fetching secrets from Secrets Manager:

+
import middy from '@middy/core'
import secretsManager from '@middy/secrets-manager'
import { APIGatewayProxyEvent, APIGatewayProxyResult } from 'aws-lambda'

export const handler = middy<APIGatewayProxyEvent, APIGatewayProxyResult>()
.use(
secretsManager({
fetchData: {
apiToken: 'dev/api_token'
},
awsClientOptions: {
region: 'us-east-1'
},
setToContext: true
})
)
.handler(async (req, context) => {
// The context type gets augmented here by the secretsManager middleware.
// This is just an example, obviously don't ever log your secret in real life!
console.log(context.apiToken)
return {
statusCode: 200,
body: JSON.stringify({
message: `Hello from ${event.path}`,
req
}),
}
})
+

Note that when using TypeScript, you should use what we call the Middleware-first, Handler-last approach, which means that you should always call the handler method last, after you have attached all the middlewares you need.

+

This approach makes sure that, as you attach middlewares, the type system understands how the event and the context arguments are augmented by the various middlewares and inside your handler code you can have a nice type-checking and auto-completion experience.

+

You can also write custom middlewares with TypeScript.

\ No newline at end of file diff --git a/docs/intro/utilities/index.html b/docs/intro/utilities/index.html index 7031d385d..f2682bf30 100644 --- a/docs/intro/utilities/index.html +++ b/docs/intro/utilities/index.html @@ -1,16 +1,13 @@ - + - -Utilities | Middy.js - - + +Utilities | Middy.js + + - - - + \ No newline at end of file diff --git a/docs/middlewares/appconfig/index.html b/docs/middlewares/appconfig/index.html index 0655e86a8..55cf9e441 100644 --- a/docs/middlewares/appconfig/index.html +++ b/docs/middlewares/appconfig/index.html @@ -1,16 +1,43 @@ - + - -appconfig | Middy.js - - + +appconfig | Middy.js + + -
-

appconfig

Fetches AppConfig stored configuration and parses out JSON.

Install

To install this middleware you can use NPM:

npm install --save @middy/appconfig
npm install --save-dev @aws-sdk/client-appconfig

Options

  • AwsClient (object) (default AppConfigClient): AppConfigClient class constructor (i.e. that has been instrumented with AWS XRay). Must be from @aws-sdk/client-appconfig.
  • awsClientOptions (object) (default undefined): Options to pass to AppConfigClient class constructor.
  • awsClientAssumeRole (string) (default undefined): Internal key where secrets are stored. See @middy/sts on to set this.
  • awsClientCapture (function) (default undefined): Enable XRay by passing captureAWSv3Client from aws-xray-sdk in.
  • fetchData (object) (required): Mapping of internal key name to API request parameters.
  • disablePrefetch (boolean) (default false): On cold start requests will trigger early if they can. Setting awsClientAssumeRole disables prefetch.
  • cacheKey (string) (default appconfig): Cache key for the fetched data responses. Must be unique across all middleware.
  • cacheExpiry (number) (default -1): How long fetch data responses should be cached for. -1: cache forever, 0: never cache, n: cache for n ms.
  • setToContext (boolean) (default false): Store credentials to request.context.

NOTES:

  • Lambda is required to have IAM permission for appconfig:GetConfiguration

Sample usage

import middy from '@middy/core'
import appConfig from '@middy/appconfig'

const handler = middy((event, context) => {
const response = {
statusCode: 200,
headers: {},
body: JSON.stringify({ message: 'hello world' })
}

return response
})

handler.use(
appConfig({
fetchData: {
config: {
Application: '...',
ClientId: '...',
Configuration: '...',
Environment: '...'
}
}
})
)

Bundling

To exclude @aws-sdk add @aws-sdk/client-appconfig to the exclude list.

- - +

appconfig

Fetches AppConfig stored configuration and parses out JSON.

+

Install

+

To install this middleware you can use NPM:

+
npm install --save @middy/appconfig
npm install --save-dev @aws-sdk/client-appconfigdata
+

Options

+
    +
  • AwsClient (object) (default AppConfigClient): AppConfigClient class constructor (i.e. that has been instrumented with AWS XRay). Must be from @aws-sdk/client-appconfig.
  • +
  • awsClientOptions (object) (default undefined): Options to pass to AppConfigClient class constructor.
  • +
  • awsClientAssumeRole (string) (default undefined): Internal key where secrets are stored. See @middy/sts on to set this.
  • +
  • awsClientCapture (function) (default undefined): Enable XRay by passing captureAWSv3Client from aws-xray-sdk in.
  • +
  • fetchData (object) (required): Mapping of internal key name to API request parameters.
  • +
  • disablePrefetch (boolean) (default false): On cold start requests will trigger early if they can. Setting awsClientAssumeRole disables prefetch.
  • +
  • cacheKey (string) (default appconfig): Cache key for the fetched data responses. Must be unique across all middleware.
  • +
  • cacheExpiry (number) (default -1): How long fetch data responses should be cached for. -1: cache forever, 0: never cache, n: cache for n ms.
  • +
  • setToContext (boolean) (default false): Store credentials to request.context.
  • +
+

NOTES:

+
    +
  • Lambda is required to have IAM permission for appconfig:StartConfigurationSession and appconfig:GetLatestConfiguration
  • +
+

Sample usage

+
import middy from '@middy/core'
import appConfig from '@middy/appconfig'

const handler = middy()
.use(
appConfig({
fetchData: {
config: {
Application: '...',
ClientId: '...',
Configuration: '...',
Environment: '...'
}
}
})
)
.handler((event, context) => {
const response = {
statusCode: 200,
headers: {},
body: JSON.stringify({ message: 'hello world' })
}

return response
})
+

Bundling

+

To exclude @aws-sdk add @aws-sdk/client-appconfig to the exclude list.

+

Usage with TypeScript

+

Data in AppConfig can be stored as arbitrary structured data. It's not possible to know in advance what shape the fetched data will have, so by default the fetched parameters will have type unknown.

+

You can provide some type hints by leveraging the appConfigReq utility function. This function allows you to specify what's the expected type that will be fetched for every AppConfig request.

+

The idea is that, for every request specified in the fetchData option, rather than just providing the parameter path as a string, you can wrap it in a appConfigReq<ParamType>(config) call. Internally, appConfigReq is a function that will return config as received, but it allows you to use generics to provide type hints for the expected type for that parameter.

+

This way TypeScript can understand how to treat the additional data attached to the context and stored in the internal storage.

+

The following example illustrates how to use appConfigReq:

+
import middy from '@middy/core'
import appConfig, { appConfigReq } from '@middy/appconfig'

const lambdaHandler = (event, context) => {
return {
statusCode: 200,
headers: {},
body: JSON.stringify({ message: 'hello world' })
}
})

export const handler = middy()
.use(
appConfig({
fetchData: {
config: {
Application: '...',
ClientId: '...',
Configuration: '...',
Environment: '...'
}
}
})
)
.before(async (request) => {
const data = await getInternal('config', request)
// data.config.field1 (string)
// data.config.field2 (string)
// data.config.field3 (number)
})
.handler(lambdaHandler)
\ No newline at end of file diff --git a/docs/middlewares/cloudwatch-metrics/index.html b/docs/middlewares/cloudwatch-metrics/index.html index 196742b7a..fbaaa997a 100644 --- a/docs/middlewares/cloudwatch-metrics/index.html +++ b/docs/middlewares/cloudwatch-metrics/index.html @@ -1,16 +1,25 @@ - + - -cloudwatch-metrics | Middy.js - - + +cloudwatch-metrics | Middy.js + + -
-

cloudwatch-metrics

This middleware hydrates lambda's context.metrics property with an instance of MetricLogger. This instance can be used to easily generate custom metrics from Lambda functions without requiring custom batching code, making blocking network requests or relying on 3rd party software.

Metrics collected with this logger are then available for querying within AWS CloudWatch Log Insights

You can explore all the MetricLogger APIs following aws-embedded-metrics documentation.

Install

To install this middleware you can use NPM:

npm install --save @middy/cloudwatch-metrics

Options

  • namespace (string) (optional): Defaults to aws-embedded-metrics. Sets the CloudWatch namespace that extracted metrics should be published to.
  • dimensions (Record<String, String> | Record<String, String>[]) (optional): Explicitly overrides all dimensions. This will remove the default dimensions. You can provide an empty array to record all metrics without dimensions. For dimensions defaults and configuration see the aws-embedded-metrics docs.

Sample usage

const middy = require('@middy/core')
const cloudwatchMetrics = require('@middy/cloudwatch-metrics')

const handler = middy((event, context) => {
context.metrics.putMetric('ProcessingLatency', 100, 'Milliseconds')
context.metrics.setProperty(
'RequestId',
'422b1569-16f6-4a03-b8f0-fe3fd9b100f8'
)
})

handler.use(
cloudwatchMetrics({
namespace: 'myAppliction',
dimensions: [{ Action: 'Buy' }]
})
)
- - +

cloudwatch-metrics

This middleware hydrates lambda's context.metrics property with an instance of MetricLogger. This instance can be used to easily generate custom metrics from Lambda functions without requiring custom batching code, making blocking network requests or relying on 3rd party software.

+

Metrics collected with this logger are then available for querying within AWS CloudWatch Log Insights

+

You can explore all the MetricLogger APIs following aws-embedded-metrics documentation.

+

Install

+

To install this middleware you can use NPM:

+
npm install --save @middy/cloudwatch-metrics
+

Options

+
    +
  • namespace (string) (optional): Defaults to aws-embedded-metrics. Sets the CloudWatch namespace that extracted metrics should be published to.
  • +
  • dimensions (Record<String, String> | Record<String, String>[]) (optional): Explicitly overrides all dimensions. This will remove the default dimensions. You can provide an empty array to record all metrics without dimensions. For dimensions defaults and configuration see the aws-embedded-metrics docs.
  • +
+

Sample usage

+
const middy = require('@middy/core')
const cloudwatchMetrics = require('@middy/cloudwatch-metrics')

const lambdaHandler = (event, context) => {
context.metrics.putMetric('ProcessingLatency', 100, 'Milliseconds')
context.metrics.setProperty(
'RequestId',
'422b1569-16f6-4a03-b8f0-fe3fd9b100f8'
)
}
export const handler = middy()
.use(
cloudwatchMetrics({
namespace: 'myAppliction',
dimensions: [{ Action: 'Buy' }]
})
)
.handler(lambdaHandler)
\ No newline at end of file diff --git a/docs/middlewares/do-not-wait-for-empty-event-loop/index.html b/docs/middlewares/do-not-wait-for-empty-event-loop/index.html index 01cc6789c..43ea42e12 100644 --- a/docs/middlewares/do-not-wait-for-empty-event-loop/index.html +++ b/docs/middlewares/do-not-wait-for-empty-event-loop/index.html @@ -1,18 +1,27 @@ - + - -do-not-wait-for-empty-event-loop | Middy.js - - + +do-not-wait-for-empty-event-loop | Middy.js + + -
-

do-not-wait-for-empty-event-loop

This middleware sets context.callbackWaitsForEmptyEventLoop property to false. -This will prevent Lambda from timing out because of open database connections, etc.

Install

To install this middleware you can use NPM:

npm install --save @middy/do-not-wait-for-empty-event-loop

Options

By default the middleware sets the callbackWaitsForEmptyEventLoop property to false only in the before phase, -meaning you can override it in handler to true if needed. You can set it in all steps with the options:

  • runOnBefore (defaults to true) - sets property before running your handler
  • runOnAfter (defaults to false)
  • runOnError (defaults to false)

Sample usage

import middy from '@middy/core'
import doNotWaitForEmptyEventLoop from '@middy/do-not-wait-for-empty-event-loop'

const handler = middy((event, context) => {
return {}
})

handler.use(doNotWaitForEmptyEventLoop({runOnError: true}))

// When Lambda runs the handler it gets context with
// callbackWaitsForEmptyEventLoop property set to false

handler(event, context, (_, response) => {
t.is(context.callbackWaitsForEmptyEventLoop,false)
})
- - +

do-not-wait-for-empty-event-loop

This middleware sets context.callbackWaitsForEmptyEventLoop property to false. +This will prevent Lambda from timing out because of open database connections, etc.

+

Install

+

To install this middleware you can use NPM:

+
npm install --save @middy/do-not-wait-for-empty-event-loop
+

Options

+

By default the middleware sets the callbackWaitsForEmptyEventLoop property to false only in the before phase, +meaning you can override it in handler to true if needed. You can set it in all steps with the options:

+
    +
  • runOnBefore (defaults to true) - sets property before running your handler
  • +
  • runOnAfter (defaults to false)
  • +
  • runOnError (defaults to false)
  • +
+

Sample usage

+
import middy from '@middy/core'
import doNotWaitForEmptyEventLoop from '@middy/do-not-wait-for-empty-event-loop'

const lambdaHandler = (event, context) => {
return {}
}

export const handler = middy()
.use(doNotWaitForEmptyEventLoop({ runOnError: true }))
.handler(lambdaHandler)
\ No newline at end of file diff --git a/docs/middlewares/dynamodb/index.html b/docs/middlewares/dynamodb/index.html index 16d5c694f..f358d5311 100644 --- a/docs/middlewares/dynamodb/index.html +++ b/docs/middlewares/dynamodb/index.html @@ -1,16 +1,43 @@ - + - -dynamodb | Middy.js - - + +dynamodb | Middy.js + + -
-

dynamodb

Fetches DynamoDB stored configuration and parses out JSON.

Install

To install this middleware you can use NPM:

npm install --save @middy/dynamodb
npm install --save-dev @aws-sdk/client-dynamodb @aws-sdk/util-dynamodb

Options

  • AwsClient (object) (default DynamoDBClient): DynamoDBClient class constructor (i.e. that has been instrumented with AWS XRay). Must be from @aws-sdk/client-dynamodb.
  • awsClientOptions (object) (default undefined): Options to pass to DynamoDBClient class constructor.
  • awsClientAssumeRole (string) (default undefined): Internal key where secrets are stored. See @middy/sts on to set this.
  • awsClientCapture (function) (default undefined): Enable XRay by passing captureAWSv3Client from aws-xray-sdk in.
  • fetchData (object) (required): Mapping of internal key name to API request parameters.
  • disablePrefetch (boolean) (default false): On cold start requests will trigger early if they can. Setting awsClientAssumeRole disables prefetch.
  • cacheKey (string) (default dynamodb): Cache key for the fetched data responses. Must be unique across all middleware.
  • cacheExpiry (number) (default -1): How long fetch data responses should be cached for. -1: cache forever, 0: never cache, n: cache for n ms.
  • setToContext (boolean) (default false): Store credentials to request.context.

NOTES:

  • Lambda is required to have IAM permission for dynamodb:BatchGetItemCommand

Sample usage

import middy from '@middy/core'
import dynamodb from '@middy/dynamodb'

const handler = middy((event, context) => {
const response = {
statusCode: 200,
headers: {},
body: JSON.stringify({ message: 'hello world' })
}

return response
})

handler.use(
dynamodb({
fetchData: {
config: {
TableName: '...'
Key: {
pk: '0000'
}
}
}
})
)

Bundling

To exclude @aws-sdk add @aws-sdk/client-dynamodb to the exclude list.

- - +

dynamodb

Fetches DynamoDB stored configuration and parses out JSON.

+

Install

+

To install this middleware you can use NPM:

+
npm install --save @middy/dynamodb
npm install --save-dev @aws-sdk/client-dynamodb @aws-sdk/util-dynamodb
+

Options

+
    +
  • AwsClient (object) (default DynamoDBClient): DynamoDBClient class constructor (i.e. that has been instrumented with AWS XRay). Must be from @aws-sdk/client-dynamodb.
  • +
  • awsClientOptions (object) (default undefined): Options to pass to DynamoDBClient class constructor.
  • +
  • awsClientAssumeRole (string) (default undefined): Internal key where secrets are stored. See @middy/sts on to set this.
  • +
  • awsClientCapture (function) (default undefined): Enable XRay by passing captureAWSv3Client from aws-xray-sdk in.
  • +
  • fetchData (object) (required): Mapping of internal key name to API request parameters.
  • +
  • disablePrefetch (boolean) (default false): On cold start requests will trigger early if they can. Setting awsClientAssumeRole disables prefetch.
  • +
  • cacheKey (string) (default dynamodb): Cache key for the fetched data responses. Must be unique across all middleware.
  • +
  • cacheExpiry (number) (default -1): How long fetch data responses should be cached for. -1: cache forever, 0: never cache, n: cache for n ms.
  • +
  • setToContext (boolean) (default false): Store credentials to request.context.
  • +
+

NOTES:

+
    +
  • Lambda is required to have IAM permission for dynamodb:BatchGetItemCommand
  • +
+

Sample usage

+
import middy from '@middy/core'
import dynamodb from '@middy/dynamodb'

const lambdaHandler = (event, context) => {
const response = {
statusCode: 200,
headers: {},
body: JSON.stringify({ message: 'hello world' })
}

return response
}

export const handler = middy()
.use(
dynamodb({
fetchData: {
config: {
TableName: '...',
Key: {
pk: '0000'
}
}
}
})
)
.handler(lambdaHandler)
+

Bundling

+

To exclude @aws-sdk add @aws-sdk/client-dynamodb to the exclude list.

+

Usage with TypeScript

+

Data in DynamoDB can be stored as arbitrary structured data. It's not possible to know in advance what shape the fetched data will have, so by default the fetched parameters will have type Record<string, NativeAttributeValue>.

+

You can provide some type hints by leveraging the dynamoDbReq utility function. This function allows you to specify what's the expected type that will be fetched for every DynamoDB request.

+

The idea is that, for every request specified in the fetchData option, rather than just providing the parameter configuration as an object, you can wrap it in a dynamoDbReq<ParamType>(config) call. Internally, dynamoDbReq is a function that will return config as received, but it allows you to use generics to provide type hints for the expected fetched value type for that request.

+

This way TypeScript can understand how to treat the additional data attached to the context and stored in the internal storage.

+

The following example illustrates how to use dynamoDbReq:

+
import middy from '@middy/core'
import dynamodb, { dynamoDbReq } from '@middy/dynamodb'

const handler = middy((event, context) => {
const response = {
statusCode: 200,
headers: {},
body: JSON.stringify({ message: 'hello world' })
}

return response
})

handler.use(
dynamodb({
fetchData: {
config: dynamoDbReq<{field1: string, field2: string, field3: number}>({
TableName: '...'
Key: {
pk: '0000'
}
})
}
})
)
.before(async (request) => {
const data = await getInternal('config', request)
// data.config.field1 (string)
// data.config.field2 (string)
// data.config.field3 (number)
})
\ No newline at end of file diff --git a/docs/middlewares/error-logger/index.html b/docs/middlewares/error-logger/index.html index 3782208a3..6198a0b30 100644 --- a/docs/middlewares/error-logger/index.html +++ b/docs/middlewares/error-logger/index.html @@ -1,16 +1,25 @@ - + - -error-logger | Middy.js - - + +error-logger | Middy.js + + -
-

error-logger

Logs the error and propagates it to the next middleware.

By default AWS Lambda does not print errors in the CloudWatch logs. If you want to make sure that you don't miss error logs, you would have to catch any error and pass it through console.error yourself.

This middleware will take care to intercept any error and log it for you. The middleware is not going to interfere with other error handlers because it will propagate the error to the next error handler middleware without handling it. You just have to make sure to attach this middleware before any other error handling middleware.

By default, the logging operate by using the console.error function. You can pass as a parameter a custom logger with additional logic if you need. It can be useful if you want to process the log by doing a http call or anything else.

Install

To install this middleware you can use NPM:

npm install --save @middy/error-logger

Options

  • logger property: a function (default console.error) that is used to define the logging logic. It receives the Error object as first and only parameter.

Sample usage

import middy from '@middy/core'
import errorLogger from '@middy/error-logger'

const handler = middy((event, context) => {
// your handler logic
})

handler
.use(errorLogger())
- - +

error-logger

Logs the error and propagates it to the next middleware.

+

By default AWS Lambda does not print errors in the CloudWatch logs. If you want to make sure that you don't miss error logs, you would have to catch any error and pass it through console.error yourself.

+

This middleware will take care to intercept any error and log it for you. The middleware is not going to interfere with other error handlers because it will propagate the error to the next error handler middleware without handling it. You just have to make sure to attach this middleware before any other error handling middleware.

+

By default, the logging operate by using the console.error function. You can pass as a parameter a custom logger with additional logic if you need. It can be useful if you want to process the log by doing a http call or anything else.

+

Install

+

To install this middleware you can use NPM:

+
npm install --save @middy/error-logger
+

Options

+
    +
  • logger property: a function (default (request) => console.error(request.error)) that is used to define the logging logic. It receives the Error object as first and only parameter.
  • +
+

Sample usage

+
import middy from '@middy/core'
import errorLogger from '@middy/error-logger'

const lambdaHandler = (event, context) => {
// your handler logic
}

export const handler = middy().use(errorLogger()).handler(lambdaHandler)
\ No newline at end of file diff --git a/docs/middlewares/event-normalizer/index.html b/docs/middlewares/event-normalizer/index.html index d9d41f54e..0579e0c5f 100644 --- a/docs/middlewares/event-normalizer/index.html +++ b/docs/middlewares/event-normalizer/index.html @@ -1,18 +1,29 @@ - + - -event-normalizer | Middy.js - - + +event-normalizer | Middy.js + + -
-

event-normalizer

Middleware for iterating through an AWS event records, parsing and normalizing nested events.

AWS Events Transformations: -https://docs.aws.amazon.com/lambda/latest/dg/lambda-services.html

Event SourceIncludedComments
AlexaNoNormalization not required
API Gateway (HTTP)No *See middleware prefixed with @middy/http-
API Gateway (REST)No *See middleware prefixed with @middy/http-
API Gateway (WS)No *See middleware @middy/ws-json-body-parser
Application LBNo *See middleware prefixed with @middy/http-
CloudFormationNoNormalization not required
CloudFrontNoNormalization not required
CloudTrailNoNormalization not required
CloudWatch LogsYesBase64 decode and JSON parse data
CodeCommitNoNormalization not required
CodePipelineYesJSON parse UserParameters
CognitoNoNormalization not required
ConfigYesJSON parse invokingEvent and ruleParameters
ConnectNoNormalization not required
DocumentDBNoNormalization not required
DynamoDBYesUnmarshall Keys, OldImage, and NewImage
EC2NoNormalization not required
EventBridgeNoNormalization not required
IoTNoNormalization not required
IoT EventNoNormalization not required
KafkaYesBase64 decode and JSON parse value
Kafka (MSK)YesBase64 decode and JSON parse value
Kinesis FirehoseYesBase64 decode and JSON parse data
Kinesis StreamYesBase64 decode and JSON parse data
LexNoNormalization not required
MQYesBase64 decode and JSON parse data
RDSNoNormalization not required
S3YesURI decode key
S3 BatchYesURI decode s3Key
S3 Object LambdaNo *See middleware @middy/s3-object-response
Secrets ManagerNoNormalization not required
SESNoNormalization not required
SNSYesJSON parse Message
SQSYesJSON parse body
VPC LatticeNo *See middleware prefixed with @middy/http-

* Handled in another dedicated middleware(s)

Test Events -Some events send test events after set, you will need to handle these.

// S3 Test Event
{
Service: 'Amazon S3',
Event: 's3:TestEvent',
Time: '2020-01-01T00:00:00.000Z',
Bucket: 'bucket-name',
RequestId: '***********',
HostId: '***/***/***='
}

Install

To install this middleware you can use NPM:

npm install --save @middy/event-normalizer

Options

  • wrapNumbers (boolean) (default undefined): Whether to return numbers as a string instead of converting them to native JavaScript numbers. This allows for the safe round-trip transport of numbers of arbitrary size. For DynamoDB Events only.

Sample usage

import middy from '@middy/core'
import eventNormalizer from '@middy/event-normalizer'

const lambdaHandler = (event, context) => {
const { Records } = event
for (const record of Records) {
// ...
}
}

const handler = middy(lambdaHandler).use(eventNormalizer())
- - +

event-normalizer

Middleware for iterating through an AWS event records, parsing and normalizing nested events.

+

AWS Events Transformations: +https://docs.aws.amazon.com/lambda/latest/dg/lambda-services.html

+
Event SourceIncludedComments
AlexaNoNormalization not required
API Gateway (HTTP)No *See middleware prefixed with @middy/http-
API Gateway (REST)No *See middleware prefixed with @middy/http-
API Gateway (WS)No *See middleware @middy/ws-json-body-parser
Application LBNo *See middleware prefixed with @middy/http-
CloudFormationNoNormalization not required
CloudFrontNoNormalization not required
CloudTrailNoNormalization not required
CloudWatch LogsYesBase64 decode and JSON parse data
CodeCommitNoNormalization not required
CodePipelineYesJSON parse UserParameters
CognitoNoNormalization not required
ConfigYesJSON parse invokingEvent and ruleParameters
ConnectNoNormalization not required
DocumentDBNoNormalization not required
DynamoDBYesUnmarshall Keys, OldImage, and NewImage
EC2NoNormalization not required
EventBridgeNoNormalization not required
IoTNoNormalization not required
IoT EventNoNormalization not required
KafkaYesBase64 decode and JSON parse value
Kafka (MSK)YesBase64 decode and JSON parse value
Kinesis FirehoseYesBase64 decode and JSON parse data
Kinesis StreamYesBase64 decode and JSON parse data
LexNoNormalization not required
MQYesBase64 decode and JSON parse data
RDSNoNormalization not required
S3YesURI decode key
S3 BatchYesURI decode s3Key
S3 Object LambdaNo *See middleware @middy/s3-object-response
Secrets ManagerNoNormalization not required
SESNoNormalization not required
SNSYesJSON parse Message
SQSYesJSON parse body
VPC LatticeNo *See middleware prefixed with @middy/http-
+

* Handled in another dedicated middleware(s)

+

Test Events +Some events send test events after set, you will need to handle these.

+
// S3 Test Event
{
Service: 'Amazon S3',
Event: 's3:TestEvent',
Time: '2020-01-01T00:00:00.000Z',
Bucket: 'bucket-name',
RequestId: '***********',
HostId: '***/***/***='
}
+

Install

+

To install this middleware you can use NPM:

+
npm install --save @middy/event-normalizer
+

Options

+
    +
  • wrapNumbers (boolean) (default undefined): Whether to return numbers as a string instead of converting them to native JavaScript numbers. This allows for the safe round-trip transport of numbers of arbitrary size. For DynamoDB Events only.
  • +
+

Sample usage

+
import middy from '@middy/core'
import eventNormalizer from '@middy/event-normalizer'

const lambdaHandler = (event, context) => {
const { Records } = event
for (const record of Records) {
// ...
}
}

export const handler = middy().use(eventNormalizer()).handler(lambdaHandler)
\ No newline at end of file diff --git a/docs/middlewares/http-content-encoding/index.html b/docs/middlewares/http-content-encoding/index.html index 105284f44..4e6cb3230 100644 --- a/docs/middlewares/http-content-encoding/index.html +++ b/docs/middlewares/http-content-encoding/index.html @@ -1,16 +1,31 @@ - + - -http-content-encoding | Middy.js - - + +http-content-encoding | Middy.js + + -
-

http-content-encoding

This middleware take the preferredEncoding output from @middy/http-content-negotiation and applies the encoding to response.body when a string.

Install

To install this middleware you can use NPM:

npm install --save @middy/http-content-encoding

Options

  • br (object) (default {}): zlib.createBrotliCompress brotliOptions
  • gzip (object) (default {}): zlib.createGzip gzipOptions
  • deflate (object) (default {}): zlib.createDeflate deflateOptions
  • overridePreferredEncoding (array[string]) (optional): Override the preferred encoding order, most browsers prefer gzip over br, even though br has higher compression. Default: []

NOTES:

  • Important For br encoding NodeJS defaults to 11. Levels 10 & 11 have been shown to have lower performance for the level of compression they apply. Testing is recommended to ensure the right balance of compression & performance.

Sample usage

import middy from '@middy/core'
import httpContentNegotiation from '@middy/http-content-negotiation'
import httpContentEncoding from '@middy/http-content-encoding'
import { constants } from 'node:zlib'

export const handler = middy()
.use(httpContentNegotiation())
.use(httpContentEncoding({
br: {
params: {
[constants.BROTLI_PARAM_MODE]: constants.BROTLI_MODE_TEXT, // adjusted for UTF-8 text
[constants.BROTLI_PARAM_QUALITY]: 7
}
},
overridePreferredEncoding: ['br', 'gzip', 'deflate']
})
.handler((event, context) => {
return {
statusCode: 200,
body: '{...}'
}
})

Using streams

import middy from '@middy/core'
import httpContentNegotiation from '@middy/http-content-negotiation'
import httpContentEncoding from '@middy/http-content-encoding'
import { constants } from 'node:zlib'
import { createReadableStream } from '@datastream/core'

export const handler = middy({ streamifyResponse: true })
.use(httpContentNegotiation())
.use(httpContentEncoding({
br: {
params: {
[constants.BROTLI_PARAM_MODE]: constants.BROTLI_MODE_TEXT, // adjusted for UTF-8 text
[constants.BROTLI_PARAM_QUALITY]: 7
}
},
overridePreferredEncoding: ['br', 'gzip', 'deflate']
})
.handler((event, context) => {
return {
statusCode: 200,
body: createReadableStream('{...}')
}
})
- - +

http-content-encoding

This middleware take the preferredEncoding output from @middy/http-content-negotiation and applies the encoding to response.body when a string.

+

Install

+

To install this middleware you can use NPM:

+
npm install --save @middy/http-content-encoding
+

Options

+
    +
  • br (object) (default {}): zlib.createBrotliCompress brotliOptions
  • +
  • gzip (object) (default {}): zlib.createGzip gzipOptions
  • +
  • deflate (object) (default {}): zlib.createDeflate deflateOptions
  • +
  • overridePreferredEncoding (array[string]) (optional): Override the preferred encoding order, most browsers prefer gzip over br, even though br has higher compression. Default: []
  • +
+

NOTES:

+
    +
  • Important For br encoding NodeJS defaults to 11. Levels 10 & 11 have been shown to have lower performance for the level of compression they apply. Testing is recommended to ensure the right balance of compression & performance.
  • +
+

Sample usage

+
import middy from '@middy/core'
import httpContentNegotiation from '@middy/http-content-negotiation'
import httpContentEncoding from '@middy/http-content-encoding'
import { constants } from 'node:zlib'

export const handler = middy()
.use(httpContentNegotiation())
.use(httpContentEncoding({
br: {
params: {
[constants.BROTLI_PARAM_MODE]: constants.BROTLI_MODE_TEXT, // adjusted for UTF-8 text
[constants.BROTLI_PARAM_QUALITY]: 7
}
},
overridePreferredEncoding: ['br', 'gzip', 'deflate']
})
.handler((event, context) => {
return {
statusCode: 200,
body: '{...}'
}
})
+

Using streams

+
import middy from '@middy/core'
import httpContentNegotiation from '@middy/http-content-negotiation'
import httpContentEncoding from '@middy/http-content-encoding'
import { constants } from 'node:zlib'
import { createReadableStream } from '@datastream/core'

const lambdaHandler = (event, context) => {
return {
statusCode: 200,
body: createReadableStream('{...}')
}
}

export const handler = middy({ streamifyResponse: true })
.use(httpContentNegotiation())
.use(httpContentEncoding({
br: {
params: {
[constants.BROTLI_PARAM_MODE]: constants.BROTLI_MODE_TEXT, // adjusted for UTF-8 text
[constants.BROTLI_PARAM_QUALITY]: 7
}
},
overridePreferredEncoding: ['br', 'gzip', 'deflate']
})
.handler(lambdaHandler)
\ No newline at end of file diff --git a/docs/middlewares/http-content-negotiation/index.html b/docs/middlewares/http-content-negotiation/index.html index 5feff2eee..9941b618f 100644 --- a/docs/middlewares/http-content-negotiation/index.html +++ b/docs/middlewares/http-content-negotiation/index.html @@ -1,18 +1,44 @@ - + - -http-content-negotiation | Middy.js - - + +http-content-negotiation | Middy.js + + -
-

http-content-negotiation

This middleware parses Accept-* headers and provides utilities for HTTP content negotiation (charset, encoding, language and media type).

By default the middleware parses charsets (Accept-Charset), languages (Accept-Language), encodings (Accept-Encoding) and media types (Accept) during the -before phase and expands the event object by adding the following properties:

  • preferredCharsets (array) - The list of charsets that can be safely used by the app (as the result of the negotiation)
  • preferredCharset (string) - The preferred charset (as the result of the negotiation)
  • preferredEncodings (array) - The list of encodings that can be safely used by the app (as the result of the negotiation)
  • preferredEncoding (string) - The preferred encoding (as the result of the negotiation)
  • preferredLanguages (array) - The list of languages that can be safely used by the app (as the result of the negotiation)
  • preferredLanguage (string) - The preferred language (as the result of the negotiation)
  • preferredMediaTypes (array) - The list of media types that can be safely used by the app (as the result of the negotiation)
  • preferredMediaType (string) - The preferred media types (as the result of the negotiation)

This middleware expects the headers in canonical format, so it should be attached after the httpHeaderNormalizer middleware. -It also can throw an HTTP exception, so it can be convenient to use it in combination with the httpErrorHandler.

Install

To install this middleware you can use NPM:

npm install --save @middy/http-content-negotiation

Options

  • parseCharsets (defaults to true) - Allows enabling/disabling the charsets parsing
  • availableCharsets (defaults to undefined) - Allows defining the list of charsets supported by the Lambda function
  • parseEncodings (defaults to true) - Allows enabling/disabling the encodings parsing
  • availableEncodings (defaults to undefined) - Allows defining the list of encodings supported by the Lambda function
  • parseLanguages (defaults to true) - Allows enabling/disabling the languages parsing
  • availableLanguages (defaults to undefined) - Allows defining the list of languages supported by the Lambda function
  • parseMediaTypes (defaults to true) - Allows enabling/disabling the media types parsing
  • availableMediaTypes (defaults to undefined) - Allows defining the list of media types supported by the Lambda function
  • failOnMismatch (defaults to true) - If set to true it will throw an HTTP NotAcceptable (406) exception when the negotiation fails for one of the headers (e.g. none of the languages requested are supported by the app)

Sample usage

import middy from '@middy/core'
import httpContentNegotiation from '@middy/http-content-negotiation'
import httpHeaderNormalizer from '@middy/http-header-normalizer'
import httpErrorHandler from '@middy/http-error-handler'

export const handler = middy((event, context) => {
let message, body

switch (event.preferredLanguage) {
case 'it-it':
message = 'Ciao Mondo'
break
case 'fr-fr':
message = 'Bonjour le monde'
break
default:
message = 'Hello world'
}

switch (event.preferredMediaType) {
case 'application/xml':
body = `<message>${message}</message>`
break
case 'application/yaml':
body = `---\nmessage: ${message}`
break
case 'application/json':
body = JSON.stringify({ message })
break
default:
body = message
}

return {
statusCode: 200,
body
}
})

handler
.use(httpHeaderNormalizer())
.use(httpContentNegotiation({
parseCharsets: false,
parseEncodings: false,
availableLanguages: ['it-it', 'fr-fr', 'en'],
availableMediaTypes: ['application/xml', 'application/yaml', 'application/json', 'text/plain']
}))
.use(httpErrorHandler())

- - +

http-content-negotiation

This middleware parses Accept-* headers and provides utilities for HTTP content negotiation (charset, encoding, language and media type).

+

By default the middleware parses charsets (Accept-Charset), languages (Accept-Language), encodings (Accept-Encoding) and media types (Accept) during the +before phase and expands the context object by adding the following properties:

+
    +
  • preferredCharsets (array) - The list of charsets that can be safely used by the app (as the result of the negotiation)
  • +
  • preferredCharset (string) - The preferred charset (as the result of the negotiation)
  • +
  • preferredEncodings (array) - The list of encodings that can be safely used by the app (as the result of the negotiation)
  • +
  • preferredEncoding (string) - The preferred encoding (as the result of the negotiation)
  • +
  • preferredLanguages (array) - The list of languages that can be safely used by the app (as the result of the negotiation)
  • +
  • preferredLanguage (string) - The preferred language (as the result of the negotiation)
  • +
  • preferredMediaTypes (array) - The list of media types that can be safely used by the app (as the result of the negotiation)
  • +
  • preferredMediaType (string) - The preferred media types (as the result of the negotiation)
  • +
+

This middleware expects the headers in canonical format, so it should be attached after the httpHeaderNormalizer middleware. +It also can throw an HTTP exception, so it can be convenient to use it in combination with the httpErrorHandler.

+

Install

+

To install this middleware you can use NPM:

+
npm install --save @middy/http-content-negotiation
+

Options

+
    +
  • parseCharsets (defaults to true) - Allows enabling/disabling the charsets parsing
  • +
  • availableCharsets (defaults to undefined) - Allows defining the list of charsets supported by the Lambda function
  • +
  • parseEncodings (defaults to true) - Allows enabling/disabling the encodings parsing
  • +
  • availableEncodings (defaults to undefined) - Allows defining the list of encodings supported by the Lambda function
  • +
  • parseLanguages (defaults to true) - Allows enabling/disabling the languages parsing
  • +
  • availableLanguages (defaults to undefined) - Allows defining the list of languages supported by the Lambda function
  • +
  • parseMediaTypes (defaults to true) - Allows enabling/disabling the media types parsing
  • +
  • availableMediaTypes (defaults to undefined) - Allows defining the list of media types supported by the Lambda function
  • +
  • failOnMismatch (defaults to true) - If set to true it will throw an HTTP NotAcceptable (406) exception when the negotiation fails for one of the headers (e.g. none of the languages requested are supported by the app)
  • +
+

Sample usage

+
import middy from '@middy/core'
import httpContentNegotiation from '@middy/http-content-negotiation'
import httpHeaderNormalizer from '@middy/http-header-normalizer'
import httpErrorHandler from '@middy/http-error-handler'

const lambdaHandler = (event, context) => {
let message, body

switch (context.preferredLanguage) {
case 'it-it':
message = 'Ciao Mondo'
break
case 'fr-fr':
message = 'Bonjour le monde'
break
default:
message = 'Hello world'
}

switch (context.preferredMediaType) {
case 'application/xml':
body = `<message>${message}</message>`
break
case 'application/yaml':
body = `---\nmessage: ${message}`
break
case 'application/json':
body = JSON.stringify({ message })
break
default:
body = message
}

return {
statusCode: 200,
body
}
}

export const handler = middy()
.use(httpHeaderNormalizer())
.use(
httpContentNegotiation({
parseCharsets: false,
parseEncodings: false,
availableLanguages: ['it-it', 'fr-fr', 'en'],
availableMediaTypes: [
'application/xml',
'application/yaml',
'application/json',
'text/plain'
]
})
)
.use(httpErrorHandler())
.handler(lambdaHandler)
\ No newline at end of file diff --git a/docs/middlewares/http-cors/index.html b/docs/middlewares/http-cors/index.html index 24c8782a0..bc8b74cce 100644 --- a/docs/middlewares/http-cors/index.html +++ b/docs/middlewares/http-cors/index.html @@ -1,16 +1,35 @@ - + - -http-cors | Middy.js - - + +http-cors | Middy.js + + -
-

http-cors

This middleware sets HTTP CORS headers (Access-Control-Allow-Origin, Access-Control-Allow-Headers, Access-Control-Allow-Credentials), necessary for making cross-origin requests, to the response object.

Sets headers in after and onError phases.

Install

To install this middleware you can use NPM:

npm install --save @middy/http-cors

Options

  • credentials (bool) (optional): if true, sets Access-Control-Allow-Credentials (default false)
  • disableBeforePreflightResponse (bool) (optional): if false, replies automatically to cors preflight requests. Set to true if handling the response in a custom way (default true)
  • headers (string) (optional): value to put in Access-Control-Allow-Headers (default: false)
  • methods (string) (optional): value to put in Access-Control-Allow-Methods (default: false)
  • getOrigin (function(incomingOrigin:string, options)) (optional): take full control of the generating the returned origin. Defaults to using the origin or origins option.
  • origin (string) (optional): origin to put in the header (default: "*")
  • origins (array) (optional): An array of allowed origins. The incoming origin is matched against the list and is returned if present.
  • exposeHeaders (string) (optional): value to put in Access-Control-Expose-Headers (default: false)
  • maxAge (string) (optional): value to put in Access-Control-Max-Age header (default: null)
  • requestHeaders (string) (optional): value to put in Access-Control-Request-Headers (default: false)
  • requestMethods (string) (optional): value to put in Access-Control-Request-Methods (default: false)
  • cacheControl (string) (optional): value to put in Cache-Control header on pre-flight (OPTIONS) requests (default: null)
import middy from '@middy/core'
import httpErrorHandler from '@middy/http-error-handler'
import cors from '@middy/http-cors'

const handler = middy((event, context) => {
throw new createError.UnprocessableEntity()
})
handler.use(httpErrorHandler()).use(cors())

// when Lambda runs the handler...
handler({}, {}, (_, response) => {
t.is(response.headers['Access-Control-Allow-Origin'], '*')
t.deepEqual(response, {
statusCode: 422,
body: 'Unprocessable Entity'
})
})

Sample usage

import middy from '@middy/core'
import cors from '@middy/http-cors'

const handler = middy((event, context) => {
return {}
})

handler.use(cors())

// when Lambda runs the handler...
handler({}, {}, (_, response) => {
t.is(response.headers['Access-Control-Allow-Origin'], '*')
})
- - +

http-cors

This middleware sets HTTP CORS headers (Access-Control-Allow-Origin, Access-Control-Allow-Headers, Access-Control-Allow-Credentials), necessary for making cross-origin requests, to the response object.

+

Sets headers in after and onError phases.

+

Install

+

To install this middleware you can use NPM:

+
npm install --save @middy/http-cors
+

Options

+
    +
  • credentials (bool) (optional): if true, sets Access-Control-Allow-Credentials (default false)
  • +
  • disableBeforePreflightResponse (bool) (optional): if false, replies automatically to cors preflight requests. Set to true if handling the response in a custom way (default true)
  • +
  • headers (string) (optional): value to put in Access-Control-Allow-Headers (default: false)
  • +
  • methods (string) (optional): value to put in Access-Control-Allow-Methods (default: false)
  • +
  • getOrigin (function(incomingOrigin:string, options)) (optional): take full control of the generating the returned origin. Defaults to using the origin or origins option.
  • +
  • origin (string) (optional): origin to put in the header (default: "*")
  • +
  • origins (array) (optional): An array of allowed origins. The incoming origin is matched against the list and is returned if present.
  • +
  • exposeHeaders (string) (optional): value to put in Access-Control-Expose-Headers (default: false)
  • +
  • maxAge (string) (optional): value to put in Access-Control-Max-Age header (default: null)
  • +
  • requestHeaders (string) (optional): value to put in Access-Control-Request-Headers (default: false)
  • +
  • requestMethods (string) (optional): value to put in Access-Control-Request-Methods (default: false)
  • +
  • cacheControl (string) (optional): value to put in Cache-Control header on pre-flight (OPTIONS) requests (default: null)
  • +
+
import middy from '@middy/core'
import httpErrorHandler from '@middy/http-error-handler'
import cors from '@middy/http-cors'

const lambdaHandler = (event, context) => {
throw new createError.UnprocessableEntity()
}
export const handler = middy()
.use(httpErrorHandler())
.use(cors())
.handler(lambdaHandler)

// when Lambda runs the handler...
handler({}, {}, (_, response) => {
t.is(response.headers['Access-Control-Allow-Origin'], '*')
t.deepEqual(response, {
statusCode: 422,
body: 'Unprocessable Entity'
})
})
+

Sample usage

+
import middy from '@middy/core'
import cors from '@middy/http-cors'

const lambdaHandler = (event, context) => {
return {}
}
export const handler = middy().use(cors()).handler(lambdaHandler)

// when Lambda runs the handler...
handler({}, {}, (_, response) => {
t.is(response.headers['Access-Control-Allow-Origin'], '*')
})
\ No newline at end of file diff --git a/docs/middlewares/http-error-handler/index.html b/docs/middlewares/http-error-handler/index.html index 089997b1b..3cc2616e3 100644 --- a/docs/middlewares/http-error-handler/index.html +++ b/docs/middlewares/http-error-handler/index.html @@ -1,19 +1,27 @@ - + - -http-error-handler | Middy.js - - + +http-error-handler | Middy.js + + -
-

http-error-handler

Automatically handles uncaught errors that contain the properties statusCode (number) and message (string) and creates a proper HTTP response +

http-error-handler

Automatically handles uncaught errors that contain the properties statusCode (number) and message (string) and creates a proper HTTP response for them (using the message and the status code provided by the error object). Additionally, support for the property expose is included with a default value of statusCode < 500. We recommend generating these HTTP errors with the npm module http-errors. When manually catching and setting errors with statusCode >= 500 setting {expose: true} -is needed for them to be handled.

This middleware should be set as the last error handler attached, first to execute.

Install

To install this middleware you can use NPM:

npm install --save @middy/http-error-handler

Options

  • logger (defaults to console.error) - a logging function that is invoked with the current error as an argument. You can pass false if you don't want the logging to happen.
  • fallbackMessage (default to null) - When non-http errors (those without `statusCode) occur you can catch them by setting a fallback message to be used. These will be returned with a 500 status code.

Sample usage

import middy from '@middy/core'
import httpErrorHandler from '@middy/http-error-handler'

const handler = middy((event, context) => {
throw new createError.UnprocessableEntity()
})

handler
.use(httpErrorHandler())

// when Lambda runs the handler...
handler({}, {}, (_, response) => {
t.deepEqual(response,{
statusCode: 422,
body: 'Unprocessable Entity'
})
})
- - +is needed for them to be handled.

+

This middleware should be set as the last error handler attached, first to execute. When non-http errors (those without statusCode) occur they will be returned with a 500 status code.

+

Install

+

To install this middleware you can use NPM:

+
npm install --save @middy/http-error-handler
+

Options

+
    +
  • logger (defaults to console.error) - a logging function that is invoked with the current error as an argument. You can pass false if you don't want the logging to happen.
  • +
  • fallbackMessage (default undefined) - When non-http errors (those without statusCode) occur you can set a fallback message to be used. These will be returned with a 500 status code.
  • +
+

Sample usage

+
import middy from '@middy/core'
import httpErrorHandler from '@middy/http-error-handler'

const lambdaHandler = (event, context) => {
throw new createError.UnprocessableEntity()
}
export const handler = middy().use(httpErrorHandler()).handler(lambdaHandler)

// when Lambda runs the handler...
handler({}, {}, (_, response) => {
t.deepEqual(response, {
statusCode: 422,
body: 'Unprocessable Entity'
})
})
\ No newline at end of file diff --git a/docs/middlewares/http-event-normalizer/index.html b/docs/middlewares/http-event-normalizer/index.html index 25d7041e8..b3376ca36 100644 --- a/docs/middlewares/http-event-normalizer/index.html +++ b/docs/middlewares/http-event-normalizer/index.html @@ -1,21 +1,28 @@ - + - -http-event-normalizer | Middy.js - - + +http-event-normalizer | Middy.js + + -
-

http-event-normalizer

If you need to access the query string or path parameters in an API Gateway event you +

http-event-normalizer

If you need to access the query string or path parameters in an API Gateway event you can do so by reading the attributes in event.queryStringParameters, event.multiValueQueryStringParameters and event.pathParameters, for example: event.pathParameters.userId. Unfortunately if there are no parameters for these parameter holders, the relevant key queryStringParameters, multiValueQueryStringParameters or pathParameters won't be available in the object, causing an expression like event.pathParameters.userId -to fail with the error: TypeError: Cannot read property 'userId' of undefined.

A simple solution would be to add an if statement to verify if the pathParameters (or queryStringParameters/multiValueQueryStringParameters) -exists before accessing one of its parameters, but this approach is very verbose and error prone.

This middleware normalizes the API Gateway, ALB, Function URLs, and VPC Lattice events, making sure that an object for queryStringParameters, multiValueQueryStringParameters, pathParameters, and isBase64Encoded is always available (resulting in empty objects when no parameter is available), this way you don't have to worry about adding extra if statements before trying to read a property and calling event.pathParameters.userId will result in undefined when no path parameter is available, but not in an error.

Important note : API Gateway HTTP API format 2.0 doesn't have multiValueQueryStringParameters fields. Duplicate query strings are combined with commas and included in the queryStringParameters field.

Install

To install this middleware you can use NPM:

npm install --save @middy/http-event-normalizer

Sample usage

import middy from '@middy/core'
import httpEventNormalizer from '@middy/http-event-normalizer'

const handler = middy((event, context) => {
console.log(`Hello user ${event.pathParameters.userId}`)
// might produce `Hello user undefined`, but not an error

return {}
})

handler.use(httpEventNormalizer())
- - +to fail with the error: TypeError: Cannot read property 'userId' of undefined.

+

A simple solution would be to add an if statement to verify if the pathParameters (or queryStringParameters/multiValueQueryStringParameters) +exists before accessing one of its parameters, but this approach is very verbose and error prone.

+

This middleware normalizes the API Gateway, ALB, Function URLs, and VPC Lattice events, making sure that an object for queryStringParameters, multiValueQueryStringParameters, pathParameters, and isBase64Encoded is always available (resulting in empty objects when no parameter is available), this way you don't have to worry about adding extra if statements before trying to read a property and calling event.pathParameters.userId will result in undefined when no path parameter is available, but not in an error.

+
+

Important note : API Gateway HTTP API format 2.0 doesn't have multiValueQueryStringParameters fields. Duplicate query strings are combined with commas and included in the queryStringParameters field.

+
+

Install

+

To install this middleware you can use NPM:

+
npm install --save @middy/http-event-normalizer
+

Sample usage

+
import middy from '@middy/core'
import httpEventNormalizer from '@middy/http-event-normalizer'

const lambdaHander = (event, context) => {
console.log(`Hello user ${event.pathParameters.userId}`)
// might produce `Hello user undefined`, but not an error

return {}
}
export const handler = middy().use(httpEventNormalizer()).handler(lambdaHander)
\ No newline at end of file diff --git a/docs/middlewares/http-header-normalizer/index.html b/docs/middlewares/http-header-normalizer/index.html index b78c8066d..ccbb2d2c3 100644 --- a/docs/middlewares/http-header-normalizer/index.html +++ b/docs/middlewares/http-header-normalizer/index.html @@ -1,22 +1,33 @@ - + - -http-header-normalizer | Middy.js - - + +http-header-normalizer | Middy.js + + -
-

http-header-normalizer

This middleware normalizes HTTP header names. By default, it normalizes to lowercase. It -can also normalize to canonical form.

API Gateway does not perform any normalization, so without this middleware headers +

http-header-normalizer

This middleware normalizes HTTP header names. By default, it normalizes to lowercase. It +can also normalize to canonical form.

+

API Gateway does not perform any normalization, so without this middleware headers are propagated to Lambda exactly as they were sent by the client. Headers names are -case insensitive, so normalization allows code reading header values to be simplified.

Other middlewares like jsonBodyParser or urlEncodeBodyParser +case insensitive, so normalization allows code reading header values to be simplified.

+

Other middlewares like jsonBodyParser or urlEncodeBodyParser will rely on headers to be one of the normalized formats, so if you want to support non-normalized headers in your -app you have to use this middleware before those ones.

This middleware will copy the original headers in event.rawHeaders.

Install

To install this middleware you can use NPM:

npm install --save @middy/http-header-normalizer

Options

  • canonical (bool) (optional): if true, modifies the headers to canonical format, otherwise the headers are normalized to lowercase (default false)
  • defaultHeaders (object) (optional): Default headers to used if any are missing. i.e. Content-Type (default {})
  • normalizeHeaderKey (function) (optional): a function that accepts an header name as a parameter and returns its -canonical representation.

Sample usage

import middy from '@middy/core'
import httpHeaderNormalizer from '@middy/http-header-normalizer'

const handler = middy()
.use(httpHeaderNormalizer())
.handler((event, context) => {
return {}
})
- - +app you have to use this middleware before those ones.

+

This middleware will copy the original headers in event.rawHeaders.

+

Install

+

To install this middleware you can use NPM:

+
npm install --save @middy/http-header-normalizer
+

Options

+
    +
  • canonical (bool) (optional): if true, modifies the headers to canonical format, otherwise the headers are normalized to lowercase (default false)
  • +
  • defaultHeaders (object) (optional): Default headers to used if any are missing. i.e. Content-Type (default {})
  • +
  • normalizeHeaderKey (function) (optional): a function that accepts an header name as a parameter and returns its +canonical representation.
  • +
+

Sample usage

+
import middy from '@middy/core'
import httpHeaderNormalizer from '@middy/http-header-normalizer'

const lambdaHandler = (event, context) => {
return {}
}

export const handler = middy()
.use(httpHeaderNormalizer())
.handler(lambdaHandler)
\ No newline at end of file diff --git a/docs/middlewares/http-json-body-parser/index.html b/docs/middlewares/http-json-body-parser/index.html index 578b679ff..9905ed6fb 100644 --- a/docs/middlewares/http-json-body-parser/index.html +++ b/docs/middlewares/http-json-body-parser/index.html @@ -1,19 +1,27 @@ - + - -http-json-body-parser | Middy.js - - + +http-json-body-parser | Middy.js + + -
-

http-json-body-parser

This middleware automatically parses HTTP requests with a JSON body and converts the body into an +

http-json-body-parser

This middleware automatically parses HTTP requests with a JSON body and converts the body into an object. Also handles gracefully broken JSON as Unsupported Media Type (415 errors) -if used in combination with httpErrorHandler.

It can also be used in combination with validator as a prior step to normalize the -event body input as an object so that the content can be validated.

Install

To install this middleware you can use NPM:

npm install --save @middy/http-json-body-parser

Options

  • reviver (function) (optional): A reviver parameter may be passed which will be used JSON.parseing the body.
  • disableContentTypeError (boolean) (optional): Skip throwing 415 when Content-Type is invalid. Default: true, will default to false in next major version.

Sample usage

import middy from '@middy/core'
import httpHeaderNormalizer from '@middy/http-header-normalizer'
import httpJsonBodyParser from '@middy/http-json-body-parser'

const handler = middy((event, context) => {
return {}
})

handler.use(httpHeaderNormalizer()).use(httpJsonBodyParser())

// invokes the handler
const event = {
headers: {
'Content-Type': 'application/json'
// It is important that the request has the proper content type.
},
body: JSON.stringify({ foo: 'bar' })
}
handler(event, {}, (_, body) => {
t.is(body, { foo: 'bar' })
})
- - +if used in combination with httpErrorHandler.

+

It can also be used in combination with validator as a prior step to normalize the +event body input as an object so that the content can be validated.

+

Install

+

To install this middleware you can use NPM:

+
npm install --save @middy/http-json-body-parser
+

Options

+
    +
  • reviver (function) (optional): A reviver parameter may be passed which will be used JSON.parseing the body.
  • +
  • disableContentTypeError (boolean) (optional): Skip throwing 415 when Content-Type is invalid. Default: true, will default to false in next major version.
  • +
+

Sample usage

+
import middy from '@middy/core'
import httpHeaderNormalizer from '@middy/http-header-normalizer'
import httpJsonBodyParser from '@middy/http-json-body-parser'

const lambdaHandler = (event, context) => {
return {}
}

export const handler = middy()
.use(httpHeaderNormalizer())
.use(httpJsonBodyParser())
.handler(lambdaHandler)

// invokes the handler
const event = {
headers: {
'Content-Type': 'application/json'
// It is important that the request has the proper content type.
},
body: JSON.stringify({ foo: 'bar' })
}
handler(event, {}, (_, body) => {
t.is(body, { foo: 'bar' })
})
\ No newline at end of file diff --git a/docs/middlewares/http-multipart-body-parser/index.html b/docs/middlewares/http-multipart-body-parser/index.html index 5f0754e54..d65584817 100644 --- a/docs/middlewares/http-multipart-body-parser/index.html +++ b/docs/middlewares/http-multipart-body-parser/index.html @@ -1,19 +1,30 @@ - + - -http-multipart-body-parser | Middy.js - - + +http-multipart-body-parser | Middy.js + + -
-

http-multipart-body-parser

Automatically parses HTTP requests with content type multipart/form-data and converts the body into an +

http-multipart-body-parser

Automatically parses HTTP requests with content type multipart/form-data and converts the body into an object. Also handles gracefully broken JSON as Unsupported Media Type (415 errors) -if used in combination with httpErrorHandler.

It can also be used in combination with validator so that the content can be validated.

Note: by default this is going to parse only events that contain the header Content-Type (or content-type) set to multipart/form-data. If you want to support different casing for the header name (e.g. Content-type) then you should use the httpHeaderNormalizer middleware before this middleware.

Install

To install this middleware you can use NPM:

npm install --save @middy/http-multipart-body-parser

Options

  • busboy (object) (optional): defaults to {} and it can be used to pass extraparameters to the internal busboy instance at creation time. Checkout the official documentation for more information on the supported options.
  • charset (string) (default utf8): it can be used to change default charset.
  • disableContentTypeError (boolean) (optional): Skip throwing 415 when Content-Type is invalid. Default: true, will default to false in next major version.

Note: this middleware will buffer all the data as it is processed internally by busboy, so, if you are using this approach to parse significantly big volumes of data, keep in mind that all the data will be allocated in memory. This is somewhat inevitable with Lambdas (as the data is already encoded into the JSON in memory as Base64), but it's good to keep this in mind and evaluate the impact on you application.
-If you really have to deal with big files, then you might also want to consider to allowing your users to directly upload files to S3

Sample usage

import middy from '@middy/core'
import httpHeaderNormalizer from '@middy/http-header-normalizer'
import httpMultipartBodyParser from '@middy/http-multipart-body-parser'
const handler = middy((event, context) => {
return {}
})
handler.use(httpHeaderNormalizer()).use(httpMultipartBodyParser())

// invokes the handler
const event = {
headers: {
'Content-Type':
'multipart/form-data; boundary=----WebKitFormBoundaryppsQEwf2BVJeCe0M'
},
body: 'LS0tLS0tV2ViS2l0Rm9ybUJvdW5kYXJ5cHBzUUV3ZjJCVkplQ2UwTQ0KQ29udGVudC1EaXNwb3NpdGlvbjogZm9ybS1kYXRhOyBuYW1lPSJmb28iDQoNCmJhcg0KLS0tLS0tV2ViS2l0Rm9ybUJvdW5kYXJ5cHBzUUV3ZjJCVkplQ2UwTS0t',
isBase64Encoded: true
}
handler(event, {}, (_, body) => {
t.is(body, { foo: 'bar' })
})
- - +if used in combination with httpErrorHandler.

+

It can also be used in combination with validator so that the content can be validated.

+

Note: by default this is going to parse only events that contain the header Content-Type (or content-type) set to multipart/form-data. If you want to support different casing for the header name (e.g. Content-type) then you should use the httpHeaderNormalizer middleware before this middleware.

+

Install

+

To install this middleware you can use NPM:

+
npm install --save @middy/http-multipart-body-parser
+

Options

+
    +
  • busboy (object) (optional): defaults to {} and it can be used to pass extraparameters to the internal busboy instance at creation time. Checkout the official documentation for more information on the supported options.
  • +
  • charset (string) (default utf8): it can be used to change default charset.
  • +
  • disableContentTypeError (boolean) (optional): Skip throwing 415 when Content-Type is invalid. Default: true, will default to false in next major version.
  • +
+

Note: this middleware will buffer all the data as it is processed internally by busboy, so, if you are using this approach to parse significantly big volumes of data, keep in mind that all the data will be allocated in memory. This is somewhat inevitable with Lambdas (as the data is already encoded into the JSON in memory as Base64), but it's good to keep this in mind and evaluate the impact on you application.
+If you really have to deal with big files, then you might also want to consider to allowing your users to directly upload files to S3

+

Sample usage

+
import middy from '@middy/core'
import httpHeaderNormalizer from '@middy/http-header-normalizer'
import httpMultipartBodyParser from '@middy/http-multipart-body-parser'

const lambdaHandler = (event, context) => {
return {}
}

export const handler = middy()
.use(httpHeaderNormalizer())
.use(httpMultipartBodyParser())
.handler(lambdaHandler)

// invokes the handler
const event = {
headers: {
'Content-Type':
'multipart/form-data; boundary=----WebKitFormBoundaryppsQEwf2BVJeCe0M'
},
body: 'LS0tLS0tV2ViS2l0Rm9ybUJvdW5kYXJ5cHBzUUV3ZjJCVkplQ2UwTQ0KQ29udGVudC1EaXNwb3NpdGlvbjogZm9ybS1kYXRhOyBuYW1lPSJmb28iDQoNCmJhcg0KLS0tLS0tV2ViS2l0Rm9ybUJvdW5kYXJ5cHBzUUV3ZjJCVkplQ2UwTS0t',
isBase64Encoded: true
}
handler(event, {}, (_, body) => {
t.is(body, { foo: 'bar' })
})
\ No newline at end of file diff --git a/docs/middlewares/http-partial-response/index.html b/docs/middlewares/http-partial-response/index.html index e9ebf3e8d..43bd2dedc 100644 --- a/docs/middlewares/http-partial-response/index.html +++ b/docs/middlewares/http-partial-response/index.html @@ -1,16 +1,23 @@ - + - -http-partial-response | Middy.js - - + +http-partial-response | Middy.js + + -
-

http-partial-response

Filtering the data returned in an object or JSON stringified response has never been so easy. Add the httpPartialResponse middleware to your middleware chain, specify a custom filteringKeyName if you want to and that's it. Any consumer of your API will be able to filter your JSON response by adding a querystring key with the fields to filter such as fields=firstname,lastname.

This middleware is based on the awesome json-mask package written by Yuriy Nemtsov

Install

To install this middleware you can use NPM:

npm install --save @middy/http-partial-response

Options

  • filteringKeyName (string) (optional): defaults to fields the querystring key that will be used to filter the response.

Sample usage

import middy from '@middy/core'
import httpPartialResponse from '@middy/http-partial-response'

const handler = middy((event, context) => {
const response = {
statusCode: 200,
body: {
firstname: 'John',
lastname: 'Doe',
gender: 'male',
age: 30,
address: {
street: 'Avenue des Champs-Élysées',
city: 'Paris'
}
}
}

return response
})

handler.use(httpPartialResponse())

const event = {
queryStringParameters: {
fields: 'firstname,lastname'
}
}

handler(event, {}, (_, response) => {
expect(response.body).toEqual({
firstname: 'John',
lastname: 'Doe'
})
})
- - +

http-partial-response

Filtering the data returned in an object or JSON stringified response has never been so easy. Add the httpPartialResponse middleware to your middleware chain, specify a custom filteringKeyName if you want to and that's it. Any consumer of your API will be able to filter your JSON response by adding a querystring key with the fields to filter such as fields=firstname,lastname.

+

This middleware is based on the awesome json-mask package written by Yuriy Nemtsov

+

Install

+

To install this middleware you can use NPM:

+
npm install --save @middy/http-partial-response
+

Options

+
    +
  • filteringKeyName (string) (optional): defaults to fields the querystring key that will be used to filter the response.
  • +
+

Sample usage

+
import middy from '@middy/core'
import httpPartialResponse from '@middy/http-partial-response'

const lambdaHandler = (event, context) => {
const response = {
statusCode: 200,
body: {
firstname: 'John',
lastname: 'Doe',
gender: 'male',
age: 30,
address: {
street: 'Avenue des Champs-Élysées',
city: 'Paris'
}
}
}

return response
}

export const handler = middy().use(httpPartialResponse()).handler(lambdaHandler)

const event = {
queryStringParameters: {
fields: 'firstname,lastname'
}
}

handler(event, {}, (_, response) => {
expect(response.body).toEqual({
firstname: 'John',
lastname: 'Doe'
})
})
\ No newline at end of file diff --git a/docs/middlewares/http-response-serializer/index.html b/docs/middlewares/http-response-serializer/index.html index b188aae93..068b1d7c3 100644 --- a/docs/middlewares/http-response-serializer/index.html +++ b/docs/middlewares/http-response-serializer/index.html @@ -1,17 +1,41 @@ - + - -http-response-serializer | Middy.js - - + +http-response-serializer | Middy.js + + -
-

http-response-serializer

The Http Serializer middleware lets you define serialization mechanisms based on the current content negotiation.

Install

To install this middleware you can use NPM:

npm install --save @middy/http-response-serializer

Configuration

The middleware is configured by defining some serializers.

{
serializers: [
{
regex: /^application\/xml$/,
serializer: ({ body }) => `<message>${body}</message>`,
},
{
regex: /^application\/json$/,
serializer: ({ body }) => JSON.stringify(body)
},
{
regex: /^text\/plain$/,
serializer: ({ body }) => body
}
],
default: 'application/json'
}

The default (optional) option is used if the request and handler don't specify what type is wanted.

Serializer Functions

When a matching serializer is found, the Content-Type header is set and the serializer function is run.

The function is passed the entire response object, and should return either a string or an object.

If a string is returned, the body attribute of the response is updated.

If an object with a body attribute is returned, the entire response object is replaced. This is useful if you want to manipulate headers or add additional attributes in the Lambda response.

Content Type Negotiation

The header is not the only way the middleware decides which serializer to execute.

The content type is determined in the following order:

  • event.requiredContentType -- allows the handler to override everything else
  • The Accept header via accept
  • event.preferredContentType -- allows the handler to override the default, but lets the request ask first
  • default middleware configuration

All options allow for multiple types to be specified in your order of preference, and the first matching serializer will be executed. -When planning to use Accept, an external input, it is recommended to validate that it is an expected value.

Sample usage

import middy from '@middy/core'
import httpResponseSerializer from '@middy/http-response-serializer'

const handler = middy((event, context) => {
const body = 'Hello World'

return {
statusCode: 200,
body
}
})

handler
.use(httpResponseSerializer({
serializers: [
{
regex: /^application\/xml$/,
serializer: ({ body }) => `<message>${body}</message>`,
},
{
regex: /^application\/json$/,
serializer: ({ body }) => JSON.stringify(body)
},
{
regex: /^text\/plain$/,
serializer: ({ body }) => body
}
],
defaultContentType: 'application/json'
}))

const event = {
headers: {
'Accept': 'application/xml;q=0.9, text/x-dvi; q=0.8, text/x-c'
}
}

handler(event, {}, (_, response) => {
t.is(response.body,'<message>Hello World</message>')
})
- - +

http-response-serializer

The Http Serializer middleware lets you define serialization mechanisms based on the current content negotiation.

+

Install

+

To install this middleware you can use NPM:

+
npm install --save @middy/http-response-serializer
+

Options

+
    +
  • defaultContentType (optional): used if the request and handler don't specify what type is wanted.
  • +
+

Configuration

+

The middleware is configured by defining some serializers.

+
{
serializers: [
{
regex: /^application\/xml$/,
serializer: ({ body }) => `<message>${body}</message>`,
},
{
regex: /^application\/json$/,
serializer: ({ body }) => JSON.stringify(body)
},
{
regex: /^text\/plain$/,
serializer: ({ body }) => body
}
],
defaultContentType: 'application/json'
}
+

Serializer Functions

+

When a matching serializer is found, the Content-Type header is set and the serializer function is run.

+

The function is passed the entire response object, and should return either a string or an object.

+

If a string is returned, the body attribute of the response is updated.

+

If an object with a body attribute is returned, the entire response object is replaced. This is useful if you want to manipulate headers or add additional attributes in the Lambda response.

+

Content Type Negotiation

+

The header is not the only way the middleware decides which serializer to execute.

+

The content type is determined in the following order:

+
    +
  • context.requiredContentType -- allows the handler to override everything else
  • +
  • The Accept header via accept
  • +
  • context.preferredContentType -- allows the handler to override the default, but lets the request ask first
  • +
  • defaultContentType middleware configuration
  • +
+

All options allow for multiple types to be specified in your order of preference, and the first matching serializer will be executed. +When planning to use Accept, an external input, it is recommended to validate that it is an expected value.

+

Sample usage

+
import middy from '@middy/core'
import httpResponseSerializer from '@middy/http-response-serializer'

const lambdaHandler = (event, context) => {
const body = 'Hello World'

return {
statusCode: 200,
body
}
}

export const handler = middy()
.use(
httpResponseSerializer({
serializers: [
{
regex: /^application\/xml$/,
serializer: ({ body }) => `<message>${body}</message>`
},
{
regex: /^application\/json$/,
serializer: ({ body }) => JSON.stringify(body)
},
{
regex: /^text\/plain$/,
serializer: ({ body }) => body
}
],
defaultContentType: 'application/json'
})
)
.handler(lambdaHandler)

const event = {
headers: {
Accept: 'application/xml;q=0.9, text/x-dvi; q=0.8, text/x-c'
}
}

handler(event, {}, (_, response) => {
t.is(response.body, '<message>Hello World</message>')
})
\ No newline at end of file diff --git a/docs/middlewares/http-security-headers/index.html b/docs/middlewares/http-security-headers/index.html index 9b4215494..2cfb66d08 100644 --- a/docs/middlewares/http-security-headers/index.html +++ b/docs/middlewares/http-security-headers/index.html @@ -1,16 +1,30 @@ - + - -http-security-headers | Middy.js - - + +http-security-headers | Middy.js + + -
-

http-security-headers

Applies best practice security headers to responses. It's a simplified port of HelmetJS. See HelmetJS documentation for more details.

Install

To install this middleware you can use NPM:

npm install --save @middy/http-security-headers

Options

  • dnsPrefetchControl controls browser DNS prefetching
  • expectCt for handling Certificate Transparency (Future Feature)
  • frameguard to prevent clickjacking
  • hidePoweredBy to remove the Server/X-Powered-By header
  • hsts for HTTP Strict Transport Security
  • ieNoOpen sets X-Download-Options for IE8+
  • noSniff to keep clients from sniffing the MIME type
  • referrerPolicy to hide the Referer header
  • xssFilter adds some small XSS protections

Sample usage

import middy from '@middy/core'
import httpSecurityHeaders from '@middy/http-security-headers'

const handler = middy((event, context) => {
return {}
})

handler
.use(httpSecurityHeaders())
- - +

http-security-headers

Applies best practice security headers to responses. It's a simplified port of HelmetJS. See HelmetJS documentation for more details.

+

Install

+

To install this middleware you can use NPM:

+
npm install --save @middy/http-security-headers
+

Options

+
    +
  • dnsPrefetchControl controls browser DNS prefetching
  • +
  • expectCt for handling Certificate Transparency (Future Feature)
  • +
  • frameguard to prevent clickjacking
  • +
  • hidePoweredBy to remove the Server/X-Powered-By header
  • +
  • hsts for HTTP Strict Transport Security
  • +
  • ieNoOpen sets X-Download-Options for IE8+
  • +
  • noSniff to keep clients from sniffing the MIME type
  • +
  • referrerPolicy to hide the Referer header
  • +
  • xssFilter adds some small XSS protections
  • +
+

Sample usage

+
import middy from '@middy/core'
import httpSecurityHeaders from '@middy/http-security-headers'

const lambdaHandler = (event, context) => {
return {}
}

export const handler = middy().use(httpSecurityHeaders()).handler(lambdaHandler)
\ No newline at end of file diff --git a/docs/middlewares/http-urlencode-body-parser/index.html b/docs/middlewares/http-urlencode-body-parser/index.html index e1a14a95a..112c2442d 100644 --- a/docs/middlewares/http-urlencode-body-parser/index.html +++ b/docs/middlewares/http-urlencode-body-parser/index.html @@ -1,17 +1,23 @@ - + - -http-urlencode-body-parser | Middy.js - - + +http-urlencode-body-parser | Middy.js + + -
-

http-urlencode-body-parser

This middleware automatically parses HTTP requests with URL-encoded body (typically the result -of a form submit). Also handles gracefully broken URL encoding as Unsupported Media Type (415 errors)

Install

To install this middleware you can use NPM:

npm install --save @middy/http-urlencode-body-parser

Options

  • disableContentTypeError (boolean) (optional): Skip throwing 415 when Content-Type is invalid. Default: true, will default to false in next major version.

Sample usage

import middy from '@middy/core'
import httpHeaderNormalizer from '@middy/http-header-normalizer'
import httpUrlEncodeBodyParser from '@middy/http-urlencode-body-parser'

const handler = middy((event, context) => {
return event.body // propagates the body as response
})

handler.use(httpHeaderNormalizer()).use(httpUrlEncodeBodyParser())

// When Lambda runs the handler with a sample event...
const event = {
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
},
body: 'frappucino=muffin&goat%5B%5D=scone&pond=moose'
}

handler(event, {}, (_, body) => {
t.deepEqual(body, {
frappucino: 'muffin',
'goat[]': 'scone',
pond: 'moose'
})
})
- - +

http-urlencode-body-parser

This middleware automatically parses HTTP requests with URL-encoded body (typically the result +of a form submit). Also handles gracefully broken URL encoding as Unsupported Media Type (415 errors)

+

Install

+

To install this middleware you can use NPM:

+
npm install --save @middy/http-urlencode-body-parser
+

Options

+
    +
  • disableContentTypeError (boolean) (optional): Skip throwing 415 when Content-Type is invalid. Default: true, will default to false in next major version.
  • +
+

Sample usage

+
import middy from '@middy/core'
import httpHeaderNormalizer from '@middy/http-header-normalizer'
import httpUrlEncodeBodyParser from '@middy/http-urlencode-body-parser'

const lambdaHandler = (event, context) => {
return event.body // propagates the body as response
}

export const handler = middy()
.use(httpHeaderNormalizer())
.use(httpUrlEncodeBodyParser())
.handler(lambdaHandler)

// When Lambda runs the handler with a sample event...
const event = {
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
},
body: 'frappucino=muffin&goat%5B%5D=scone&pond=moose'
}

handler(event, {}, (_, body) => {
t.deepEqual(body, {
frappucino: 'muffin',
'goat[]': 'scone',
pond: 'moose'
})
})
\ No newline at end of file diff --git a/docs/middlewares/http-urlencode-path-parser/index.html b/docs/middlewares/http-urlencode-path-parser/index.html index f98ef7e39..302d7230c 100644 --- a/docs/middlewares/http-urlencode-path-parser/index.html +++ b/docs/middlewares/http-urlencode-path-parser/index.html @@ -1,16 +1,20 @@ - + - -http-urlencode-path-parser | Middy.js - - + +http-urlencode-path-parser | Middy.js + + -
-

http-urlencode-path-parser

This middleware automatically parses HTTP requests with URL-encoded paths. This can happen when using path variables (ie /{name}/) for an endpoint and the UI encodeURIComponent the values before making the request.

Install

To install this middleware you can use NPM:

npm install --save @middy/http-urlencode-path-parser

Options

None

Sample usage

import middy from '@middy/core'
import httpUrlEncodePathParser from '@middy/http-urlencode-path-parser'

const handler = middy((event, context) => {
return event.body // propagates the body as response
})

handler.use(httpUrlEncodePathParser())

// When Lambda runs the handler with a sample event...
const event = {

pathParameters: {
name: encodeURIComponent('Mîddy')
}
}

handler(event, {}, (_, body) => {
t.deepEqual(body, {
name: 'Mîddy'
})
})
- - +

http-urlencode-path-parser

This middleware automatically parses HTTP requests with URL-encoded paths. This can happen when using path variables (ie /{name}/) for an endpoint and the UI encodeURIComponent the values before making the request.

+

Install

+

To install this middleware you can use NPM:

+
npm install --save @middy/http-urlencode-path-parser
+

Options

+

None

+

Sample usage

+
import middy from '@middy/core'
import httpUrlEncodePathParser from '@middy/http-urlencode-path-parser'

const handler = middy((event, context) => {
return event.body // propagates the body as response
})

handler.use(httpUrlEncodePathParser())

// When Lambda runs the handler with a sample event...
const event = {

pathParameters: {
name: encodeURIComponent('Mîddy')
}
}

handler(event, {}, (_, body) => {
t.deepEqual(body, {
name: 'Mîddy'
})
})
\ No newline at end of file diff --git a/docs/middlewares/input-output-logger/index.html b/docs/middlewares/input-output-logger/index.html index 403a80846..21bd8ef20 100644 --- a/docs/middlewares/input-output-logger/index.html +++ b/docs/middlewares/input-output-logger/index.html @@ -1,16 +1,28 @@ - + - -input-output-logger | Middy.js - - + +input-output-logger | Middy.js + + -
-

input-output-logger

Logs the incoming request (input) and the response (output).

By default, the logging operate by using the console.log function. You can pass as a parameter a custom logger with additional logic if you need. It can be useful if you want to process the log by doing a http call or anything else.

Install

To install this middleware you can use NPM:

npm install --save @middy/input-output-logger

Options

  • logger function (default console.log): logging function that accepts an object
  • awsContext boolean (default false): Include AWS Lambda context object to the logger
  • omitPaths string[] (default []): property accepts an array of paths that will be used to remove particular fields import the logged objects. This could serve as a simple way to redact sensitive data from logs (default []). Examples: name, user.name, users.[].name
  • mask string: String to replace omitted values with. Example: ***omitted***
  • replacer function: stringify replacer function

Sample usage

import middy from '@middy/core'
import inputOutputLogger from '@middy/input-output-logger'

const handler = middy((event, context) => {
const response = {
statusCode: 200,
headers: {},
body: JSON.stringify({ message: 'hello world' })
}
return response
})

handler.use(inputOutputLogger())
import middy from '@middy/core'
import inputOutputLogger from '@middy/input-output-logger'
import pino from 'pino'

const logger = pino()

const handler = middy((event, context) => {
// ...
return response
})

handler.use(
inputOutputLogger({
logger: (request) => {
const child = logger.child(request.context)
child.info(request.event ?? request.response)
},
awsContext: true
})
)
- - +

input-output-logger

Logs the incoming request (input) and the response (output).

+

By default, the logging operate by using the console.log function. You can pass as a parameter a custom logger with additional logic if you need. It can be useful if you want to process the log by doing a http call or anything else.

+

Install

+

To install this middleware you can use NPM:

+
npm install --save @middy/input-output-logger
+

Options

+
    +
  • logger function (default console.log): logging function that accepts an object
  • +
  • awsContext boolean (default false): Include AWS Lambda context object to the logger
  • +
  • omitPaths string[] (default []): property accepts an array of paths that will be used to remove particular fields import the logged objects. This could serve as a simple way to redact sensitive data from logs (default []). Examples: name, user.name, users.[].name
  • +
  • mask string: String to replace omitted values with. Example: ***omitted***
  • +
  • replacer function: stringify replacer function
  • +
+

Sample usage

+
import middy from '@middy/core'
import inputOutputLogger from '@middy/input-output-logger'

const lambdaHandler = (event, context) => {
const response = {
statusCode: 200,
headers: {},
body: JSON.stringify({ message: 'hello world' })
}
return response
}

export const handler = middy().use(inputOutputLogger()).handler(lambdaHandler)
+
import middy from '@middy/core'
import inputOutputLogger from '@middy/input-output-logger'
import pino from 'pino'

const logger = pino()

const lambdaHandler = (event, context) => {
// ...
return response
}

export const handler = middy()
.use(
inputOutputLogger({
logger: (request) => {
const child = logger.child(request.context)
child.info(request.event ?? request.response)
},
awsContext: true
})
)
.handler(lambdaHandler)
\ No newline at end of file diff --git a/docs/middlewares/intro/index.html b/docs/middlewares/intro/index.html index 5e9b2affb..73827634a 100644 --- a/docs/middlewares/intro/index.html +++ b/docs/middlewares/intro/index.html @@ -1,17 +1,60 @@ - + - -Official middlewares | Middy.js - - + +Official middlewares | Middy.js + + -
-

Official middlewares

Middy comes with a series of additional (opt-in) plugins that are officially maintained by the core team and kept in sync with every release of the core package.

These middleware focus on common use cases when using Lambda with other AWS services.

Each middleware should do a single task. We try to balance each to be as performant as possible while meeting the majority of developer needs.

Misc

Request Transformation

  • event-normalizer: Middleware for iterating through an AWS event records, parsing and normalizing nested events.
  • http-content-negotiation: Parses Accept-* headers and provides utilities for content negotiation (charset, encoding, language and media type) for HTTP requests
  • http-event-normalizer: Normalizes HTTP events by adding an empty object for queryStringParameters, multiValueQueryStringParameters or pathParameters if they are missing.
  • http-header-normalizer: Normalizes HTTP header names to their canonical format
  • http-json-body-parser: Automatically parses HTTP requests with JSON body and converts the body into an object. Also handles gracefully broken JSON if used in combination of -httpErrorHandler.
  • http-multipart-body-parser: Automatically parses HTTP requests with content type multipart/form-data and converts the body into an object.
  • http-urlencode-body-parser: Automatically parses HTTP requests with URL encoded body (typically the result of a form submit).
  • http-urlencode-path-parser: Automatically parses HTTP requests with URL encoded path.
  • validator: Automatically validates incoming events and outgoing responses against custom schemas.
  • ws-json-body-parser: Automatically parses WebSocket requests with JSON message and converts the message into an object.

Response Transformation

Fetch Data

- - +

Official middlewares

Middy comes with a series of additional (opt-in) plugins that are officially maintained by the core team and kept in sync with every release of the core package.

+

These middleware focus on common use cases when using Lambda with other AWS services.

+

Each middleware should do a single task. We try to balance each to be as performant as possible while meeting the majority of developer needs.

+

Misc

+ +

Request Transformation

+
    +
  • event-normalizer: Middleware for iterating through an AWS event records, parsing and normalizing nested events.
  • +
  • http-content-negotiation: Parses Accept-* headers and provides utilities for content negotiation (charset, encoding, language and media type) for HTTP requests
  • +
  • http-event-normalizer: Normalizes HTTP events by adding an empty object for queryStringParameters, multiValueQueryStringParameters or pathParameters if they are missing.
  • +
  • http-header-normalizer: Normalizes HTTP header names to their canonical format
  • +
  • http-json-body-parser: Automatically parses HTTP requests with JSON body and converts the body into an object. Also handles gracefully broken JSON if used in combination of +httpErrorHandler.
  • +
  • http-multipart-body-parser: Automatically parses HTTP requests with content type multipart/form-data and converts the body into an object.
  • +
  • http-urlencode-body-parser: Automatically parses HTTP requests with URL encoded body (typically the result of a form submit).
  • +
  • http-urlencode-path-parser: Automatically parses HTTP requests with URL encoded path.
  • +
  • validator: Automatically validates incoming events and outgoing responses against custom schemas.
  • +
  • ws-json-body-parser: Automatically parses WebSocket requests with JSON message and converts the message into an object.
  • +
+

Response Transformation

+ +

Fetch Data

+
\ No newline at end of file diff --git a/docs/middlewares/rds-signer/index.html b/docs/middlewares/rds-signer/index.html index 441cd91dd..a62fd2f43 100644 --- a/docs/middlewares/rds-signer/index.html +++ b/docs/middlewares/rds-signer/index.html @@ -1,16 +1,34 @@ - + - -rds-signer | Middy.js - - + +rds-signer | Middy.js + + -
-

rds-signer

Fetches RDS credentials to be used when connecting to RDS with IAM roles.

Install

To install this middleware you can use NPM:

npm install --save @middy/rds-signer
npm install --save-dev @aws-sdk/rds-signer

Options

  • AwsClient (object) (default Signer): Signer class constructor (i.e. that has been instrumented with AWS XRay). Must be from @aws-sdk/rds-signer.
  • awsClientOptions (object) (optional): Options to pass to Signer class constructor.
  • fetchData (object) (required): Mapping of internal key name to API request parameters.
  • disablePrefetch (boolean) (default false): On cold start requests will trigger early if they can. Setting awsClientAssumeRole disables prefetch.
  • cacheKey (string) (default rds-signer): Cache key for the fetched data responses. Must be unique across all middleware.
  • cacheExpiry (number) (default -1): How long fetch data responses should be cached for. -1: cache forever, 0: never cache, n: cache for n ms.
  • setToContext (boolean) (default false): Store role tokens to request.context.

NOTES:

  • Lambda is required to have IAM permission for rds-db:connect with a resource like arn:aws:rds-db:#{AWS::Region}:#{AWS::AccountId}:dbuser:${database_resource}/${iam_role}

Sample usage

import middy from '@middy/core'
import rdsSigner from '@middy/rds-signer'

const handler = middy((event, context) => {
const response = {
statusCode: 200,
headers: {},
body: JSON.stringify({ message: 'hello world' })
}

return response
})

handler.use(
rdsSigner({
fetchData: {
rdsToken: {
region: 'ca-central-1',
hostname: '***.rds.amazonaws.com',
username: 'iam_role',
database: 'postgres',
port: 5432
}
}
})
)

Bundling

To exclude @aws-sdk add @aws-sdk/rds-signer to the exclude list.

- - +

rds-signer

Fetches RDS credentials to be used when connecting to RDS with IAM roles.

+

Install

+

To install this middleware you can use NPM:

+
npm install --save @middy/rds-signer
npm install --save-dev @aws-sdk/rds-signer
+

Options

+
    +
  • AwsClient (object) (default Signer): Signer class constructor (i.e. that has been instrumented with AWS XRay). Must be from @aws-sdk/rds-signer.
  • +
  • awsClientOptions (object) (optional): Options to pass to Signer class constructor.
  • +
  • fetchData (object) (required): Mapping of internal key name to API request parameters.
  • +
  • disablePrefetch (boolean) (default false): On cold start requests will trigger early if they can. Setting awsClientAssumeRole disables prefetch.
  • +
  • cacheKey (string) (default rds-signer): Cache key for the fetched data responses. Must be unique across all middleware.
  • +
  • cacheExpiry (number) (default -1): How long fetch data responses should be cached for. -1: cache forever, 0: never cache, n: cache for n ms.
  • +
  • setToContext (boolean) (default false): Store role tokens to request.context.
  • +
+

NOTES:

+
    +
  • Lambda is required to have IAM permission for rds-db:connect with a resource like arn:aws:rds-db:#{AWS::Region}:#{AWS::AccountId}:dbuser:${database_resource}/${iam_role}
  • +
+

Sample usage

+
import middy from '@middy/core'
import rdsSigner from '@middy/rds-signer'

const lambdaHandler = (event, context) => {
const response = {
statusCode: 200,
headers: {},
body: JSON.stringify({ message: 'hello world' })
}

return response
}

export const handler = middy()
.use(
rdsSigner({
fetchData: {
rdsToken: {
region: 'ca-central-1',
hostname: '***.rds.amazonaws.com',
username: 'iam_role',
port: 5432
}
}
})
)
.handler(lambdaHandler)
+

Bundling

+

To exclude @aws-sdk add @aws-sdk/rds-signer to the exclude list.

\ No newline at end of file diff --git a/docs/middlewares/s3-object-response/index.html b/docs/middlewares/s3-object-response/index.html index 57875e0fd..d41955437 100644 --- a/docs/middlewares/s3-object-response/index.html +++ b/docs/middlewares/s3-object-response/index.html @@ -1,16 +1,37 @@ - + - -s3-object-response | Middy.js - - + +s3-object-response | Middy.js + + -
-

s3-object-response

This middleware is a Proof of Concept and requires real world testing before use, not recommended for production

Fetches S3 object as a stream and writes back to s3 object response.

Install

To install this middleware you can use NPM:

npm install --save @middy/s3-object-response
npm install --save-dev @aws-sdk/client-s3

Options

  • bodyType (string) (required): How to pass in the s3 object through the handler. Can be stream or promise.
  • AwsClient (object) (default S3Client): S3Client class constructor (i.e. that has been instrumented with AWS XRay). Must be from @aws-sdk/client-s3.
  • awsClientOptions (object) (optional): Options to pass to S3Client class constructor.
  • awsClientCapture (function) (optional): Enable XRay by passing captureAWSv3Client from aws-xray-sdk in.
  • httpsCapture (function) (optional): Enable XRay by passing captureHTTPsGlobal from aws-xray-sdk in.
  • disablePrefetch (boolean) (default false): On cold start requests will trigger early if they can. Setting awsClientAssumeRole disables prefetch.

NOTES:

  • The response from the handler must match the allowed parameters for S3.writeGetObjectResponse, excluding RequestRoute and RequestToken.
  • Lambda is required to have IAM permission for s3-object-lambda:WriteGetObjectResponse

Sample usage

Stream

import zlib from 'zlib'
import middy from '@middy/core'
import s3ObjectResponse from '@middy/s3-object-response'

const handler = middy((event, context) => {
const readStream = context.s3Object
const transformStream = zlib.createBrotliCompress()
return {
Body: readStream.pipe(transformStream)
}
})

handler.use(
s3ObjectResponse({
bodyType: 'stream'
})
)

Promise

import zlib from 'zlib'
import middy from '@middy/core'
import s3ObjectResponse from '@middy/s3-object-response'

const handler = middy(async (event, context) => {
let body = await context.s3Object
// change body
return {
Body: JSON.stringify(body)
}
})

handler.use(
s3ObjectResponse({
bodyType: 'promise'
})
)

Bundling

To exclude @aws-sdk add @aws-sdk/client-s3 to the exclude list.

- - +

s3-object-response

** This middleware is a Proof of Concept and requires real world testing before use, not recommended for production **

+

Fetches S3 object as a stream and writes back to s3 object response.

+

Install

+

To install this middleware you can use NPM:

+
npm install --save @middy/s3-object-response
npm install --save-dev @aws-sdk/client-s3
+

Options

+
    +
  • AwsClient (object) (default S3Client): S3Client class constructor (i.e. that has been instrumented with AWS XRay). Must be from @aws-sdk/client-s3.
  • +
  • awsClientOptions (object) (optional): Options to pass to S3Client class constructor.
  • +
  • awsClientCapture (function) (optional): Enable XRay by passing captureAWSv3Client from aws-xray-sdk in.
  • +
  • disablePrefetch (boolean) (default false): On cold start requests will trigger early if they can. Setting awsClientAssumeRole disables prefetch.
  • +
+

NOTES:

+ +

Sample usage

+

Stream

+
import zlib from 'zlib'
import middy from '@middy/core'
import s3ObjectResponse from '@middy/s3-object-response'

const lambdaHandler = (event, context) => {
const readStream = await context.s3ObjectFetch.then(res => res.body)
const transformStream = zlib.createBrotliCompress()
return {
Body: readStream.pipe(transformStream)
}
}

export const handler = middy().use(s3ObjectResponse()).handler(lambdaHandler)
+

JSON

+
import zlib from 'zlib'
import middy from '@middy/core'
import s3ObjectResponse from '@middy/s3-object-response'

const lambdaHandler = async (event, context) => {
let body = await context.s3ObjectFetch.then((res) => res.json())
// change body
return {
Body: JSON.stringify(body)
}
}

export const handler = middy().use(s3ObjectResponse()).handler(lambdaHandler)
+

Bundling

+

To exclude @aws-sdk add @aws-sdk/client-s3 to the exclude list.

\ No newline at end of file diff --git a/docs/middlewares/s3/index.html b/docs/middlewares/s3/index.html index a46b7b830..2958b7738 100644 --- a/docs/middlewares/s3/index.html +++ b/docs/middlewares/s3/index.html @@ -1,16 +1,44 @@ - + - -s3 | Middy.js - - + +s3 | Middy.js + + -
-

s3

Fetches S3 stored configuration and parses out JSON.

Install

To install this middleware you can use NPM:

npm install --save @middy/s3
npm install --save-dev @aws-sdk/client-s3

Options

  • AwsClient (object) (default S3Client): S3Client class constructor (i.e. that has been instrumented with AWS XRay). Must be from @aws-sdk/client-appconfig.
  • awsClientOptions (object) (default undefined): Options to pass to S3Client class constructor.
  • awsClientAssumeRole (string) (default undefined): Internal key where secrets are stored. See @middy/sts on to set this.
  • awsClientCapture (function) (default undefined): Enable XRay by passing captureAWSv3Client from aws-xray-sdk in.
  • fetchData (object) (required): Mapping of internal key name to API request parameters.
  • disablePrefetch (boolean) (default false): On cold start requests will trigger early if they can. Setting awsClientAssumeRole disables prefetch.
  • cacheKey (string) (default s3): Cache key for the fetched data responses. Must be unique across all middleware.
  • cacheExpiry (number) (default -1): How long fetch data responses should be cached for. -1: cache forever, 0: never cache, n: cache for n ms.
  • setToContext (boolean) (default false): Store credentials to request.context.

NOTES:

  • Lambda is required to have IAM permission for s3:GetObject
  • If the file is stored without ContentType, you can set it on the response using ResponseContentType as part of the input

Sample usage

import middy from '@middy/core'
import s3 from '@middy/s3'

const handler = middy((event, context) => {
console.log(context.config)
const response = {
statusCode: 200,
headers: {},
body: JSON.stringify({ message: 'hello world' })
}

return response
})

handler.use(
s3({
fetchData: {
config: {
Bucket: '...',
Key: '...'
}
},
setToContext: true
})
)

Bundling

To exclude @aws-sdk add @aws-sdk/client-s3 to the exclude list.

- - +

s3

Fetches S3 stored configuration and parses out JSON.

+

Install

+

To install this middleware you can use NPM:

+
npm install --save @middy/s3
npm install --save-dev @aws-sdk/client-s3
+

Options

+
    +
  • AwsClient (object) (default S3Client): S3Client class constructor (i.e. that has been instrumented with AWS XRay). Must be from @aws-sdk/client-appconfig.
  • +
  • awsClientOptions (object) (default undefined): Options to pass to S3Client class constructor.
  • +
  • awsClientAssumeRole (string) (default undefined): Internal key where secrets are stored. See @middy/sts on to set this.
  • +
  • awsClientCapture (function) (default undefined): Enable XRay by passing captureAWSv3Client from aws-xray-sdk in.
  • +
  • fetchData (object) (required): Mapping of internal key name to API request parameters.
  • +
  • disablePrefetch (boolean) (default false): On cold start requests will trigger early if they can. Setting awsClientAssumeRole disables prefetch.
  • +
  • cacheKey (string) (default s3): Cache key for the fetched data responses. Must be unique across all middleware.
  • +
  • cacheExpiry (number) (default -1): How long fetch data responses should be cached for. -1: cache forever, 0: never cache, n: cache for n ms.
  • +
  • setToContext (boolean) (default false): Store credentials to request.context.
  • +
+

NOTES:

+
    +
  • Lambda is required to have IAM permission for s3:GetObject
  • +
  • If the file is stored without ContentType, you can set it on the response using ResponseContentType as part of the input
  • +
+

Sample usage

+
import middy from '@middy/core'
import s3 from '@middy/s3'

const lambdaHandler = (event, context) => {
console.log(context.config)
const response = {
statusCode: 200,
headers: {},
body: JSON.stringify({ message: 'hello world' })
}

return response
}

export const handler = middy()
.use(
s3({
fetchData: {
config: {
Bucket: '...',
Key: '...'
}
},
setToContext: true
})
)
.handler(lambdaHandler)
+

Bundling

+

To exclude @aws-sdk add @aws-sdk/client-s3 to the exclude list.

+

Usage with TypeScript

+

Data in an S3 object can be stored as arbitrary structured data. It's not possible to know in advance what shape the fetched data will have, so by default the fetched parameters will have type unknown.

+

You can provide some type hints by leveraging the s3Req utility function. This function allows you to specify what's the expected type that will be fetched for every S3 request.

+

The idea is that, for every request specified in the fetchData option, rather than just providing the parameter configuration as an object, you can wrap it in a s3Req<ParamType>(config) call. Internally, s3Req is a function that will return config as received, but it allows you to use generics to provide type hints for the expected fetched value type for that request.

+

This way TypeScript can understand how to treat the additional data attached to the context and stored in the internal storage.

+

The following example illustrates how to use s3Req:

+
import middy from '@middy/core'
import s3, { s3Req } from '@middy/s3'

const handler = middy((event, context) => {
console.log(context.config)
const response = {
statusCode: 200,
headers: {},
body: JSON.stringify({ message: 'hello world' })
}

return response
})

handler.use(
s3({
fetchData: {
config: s3Req<{field1: string, field2: string, field3: number}>({
Bucket: '...',
Key: '...'
}
}),
setToContext: true
})
)
.before(async (request) => {
const data = await getInternal('config', request)
// data.config.field1 (string)
// data.config.field2 (string)
// data.config.field3 (number)
})
\ No newline at end of file diff --git a/docs/middlewares/secrets-manager/index.html b/docs/middlewares/secrets-manager/index.html index f1b3a1040..d093ebc98 100644 --- a/docs/middlewares/secrets-manager/index.html +++ b/docs/middlewares/secrets-manager/index.html @@ -1,16 +1,48 @@ - + - -secrets-manager | Middy.js - - + +secrets-manager | Middy.js + + -
-

secrets-manager

This middleware fetches secrets from AWS Secrets Manager.

Secrets to fetch can be defined by by name. See AWS docs here.

Secrets are assigned to the function handler's context object.

The Middleware makes a single API request for each secret as Secrets Manager does not support batch get.

For each secret, you also provide the name under which its value should be added to context.

Install

To install this middleware you can use NPM:

npm install --save @middy/secrets-manager
npm install --save-dev @aws-sdk/client-secrets-manager

Options

  • AwsClient (object) (default SecretsManagerClient): SecretsManagerClient class constructor (i.e. that has been instrumented with AWS XRay). Must be from @aws-sdk/client-secrets-manager.
  • awsClientOptions (object) (optional): Options to pass to SecretsManagerClient class constructor.
  • awsClientAssumeRole (string) (optional): Internal key where secrets are stored. See @middy/sts on to set this.
  • awsClientCapture (function) (optional): Enable XRay by passing captureAWSv3Client from aws-xray-sdk in.
  • fetchData (object) (required): Mapping of internal key name to API request parameter SecretId.
  • fetchRotationDate (boolean|object) (default false): Boolean to apply to all or mapping of internal key name to boolean. This indicates what secrets should fetch and cached based on NextRotationDate/LastRotationDate/LastChangedDate. cacheExpiry of -1 will use NextRotationDate, while any other value will be added to the LastRotationDate or LastChangedDate, whichever is more recent. If secrets have different rotation schedules, use multiple instances of this middleware.
  • disablePrefetch (boolean) (default false): On cold start requests will trigger early if they can. Setting awsClientAssumeRole disables prefetch.
  • cacheKey (string) (default secrets-manager): Cache key for the fetched data responses. Must be unique across all middleware.
  • cacheExpiry (number) (default -1): How long fetch data responses should be cached for. -1: cache forever, 0: never cache, n: cache for n ms.
  • setToContext (boolean) (default false): Store secrets to request.context.

NOTES:

  • Lambda is required to have IAM permission for secretsmanager:GetSecretValue. If using fetchRotationDate add secretsmanager:DescribeSecret in as well.

Sample usage

import middy from '@middy/core'
import secretsManager from '@middy/secrets-manager'

const handler = middy((event, context) => {
return {}
})

handler.use(
secretsManager({
fetchData: {
apiToken: 'dev/api_token'
},
awsClientOptions: {
region: 'us-east-1'
},
setToContext: true
})
)

// Before running the function handler, the middleware will fetch from Secrets Manager
handler(event, context, (_, response) => {
// assuming the dev/api_token has two keys, 'Username' and 'Password'
t.is(context.apiToken.Username, 'username')
t.is(context.apiToken.Password, 'password')
})

Bundling

To exclude @aws-sdk add @aws-sdk/client-secrets-manager to the exclude list.

- - +

secrets-manager

This middleware fetches secrets from AWS Secrets Manager.

+

Secrets to fetch can be defined by by name. See AWS docs here.

+

Secrets are assigned to the function handler's context object.

+

The Middleware makes a single API request for each secret as Secrets Manager does not support batch get.

+

For each secret, you also provide the name under which its value should be added to context.

+

Install

+

To install this middleware you can use NPM:

+
npm install --save @middy/secrets-manager
npm install --save-dev @aws-sdk/client-secrets-manager
+

Options

+
    +
  • AwsClient (object) (default SecretsManagerClient): SecretsManagerClient class constructor (i.e. that has been instrumented with AWS XRay). Must be from @aws-sdk/client-secrets-manager.
  • +
  • awsClientOptions (object) (optional): Options to pass to SecretsManagerClient class constructor.
  • +
  • awsClientAssumeRole (string) (optional): Internal key where secrets are stored. See @middy/sts on to set this.
  • +
  • awsClientCapture (function) (optional): Enable XRay by passing captureAWSv3Client from aws-xray-sdk in.
  • +
  • fetchData (object) (required): Mapping of internal key name to API request parameter SecretId.
  • +
  • fetchRotationDate (boolean|object) (default false): Boolean to apply to all or mapping of internal key name to boolean. This indicates what secrets should fetch and cached based on NextRotationDate/LastRotationDate/LastChangedDate. cacheExpiry of -1 will use NextRotationDate, while any other value will be added to the LastRotationDate or LastChangedDate, whichever is more recent. If secrets have different rotation schedules, use multiple instances of this middleware.
  • +
  • disablePrefetch (boolean) (default false): On cold start requests will trigger early if they can. Setting awsClientAssumeRole disables prefetch.
  • +
  • cacheKey (string) (default secrets-manager): Cache key for the fetched data responses. Must be unique across all middleware.
  • +
  • cacheExpiry (number) (default -1): How long fetch data responses should be cached for. -1: cache forever, 0: never cache, n: cache for n ms.
  • +
  • setToContext (boolean) (default false): Store secrets to request.context.
  • +
+

NOTES:

+
    +
  • Lambda is required to have IAM permission for secretsmanager:GetSecretValue. If using fetchRotationDate add secretsmanager:DescribeSecret in as well.
  • +
+

Sample usage

+
import middy from '@middy/core'
import secretsManager from '@middy/secrets-manager'

const lambdaHandler = (event, context) => {
return {}
}

export const handler = middy()
.use(
secretsManager({
fetchData: {
apiToken: 'dev/api_token'
},
awsClientOptions: {
region: 'us-east-1'
},
setToContext: true
})
)
.handler(lambdaHandler)

// Before running the function handler, the middleware will fetch from Secrets Manager
handler(event, context, (_, response) => {
// assuming the dev/api_token has two keys, 'Username' and 'Password'
t.is(context.apiToken.Username, 'username')
t.is(context.apiToken.Password, 'password')
})
+

Bundling

+

To exclude @aws-sdk add @aws-sdk/client-secrets-manager to the exclude list.

+

Usage with TypeScript

+

Data stored in SecretsManager can be stored as arbitrary structured data. It's not possible to know in advance what shape the fetched data will have, so by default the fetched secrets will have type unknown.

+

You can provide some type hints by leveraging the secret utility function. This function allows you to specify what's the expected type that will be fetched for every SecretsManager request.

+

The idea is that, for every request specified in the fetchData option, rather than just providing the parameter configuration as an object, you can wrap it in a secret<ParamType>(key) call. Internally, secret is a function that will return key as received, but it allows you to use generics to provide type hints for the expected fetched value type for that request.

+

This way TypeScript can understand how to treat the additional data attached to the context and stored in the internal storage.

+

The following example illustrates how to use secret:

+
import middy from '@middy/core'
import secretsManager, { secret } from '@middy/secrets-manager'

const lambdaHandler = (event, context) => {
console.log(context.config)
const response = {
statusCode: 200,
headers: {},
body: JSON.stringify({ message: 'hello world' })
}

return response
}

export const handler = middy()
.use(
secretsManager({
fetchData: {
someSecret: secret<{User: string, Password: string}>('someHiddenSecret')
}),
setToContext: true
})
)
.before(async (request) => {
const data = await getInternal('someSecret', request)
// data.someSecret.User (string)
// data.someSecret.Password (string)
// or, since we have `setToContext: true`
// request.context.someSecret.User (string)
// request.context.someSecret.Password (string)
})
.handler(lambdaHandler)
\ No newline at end of file diff --git a/docs/middlewares/service-discovery/index.html b/docs/middlewares/service-discovery/index.html index ae874ffca..f3e80bf8c 100644 --- a/docs/middlewares/service-discovery/index.html +++ b/docs/middlewares/service-discovery/index.html @@ -1,16 +1,36 @@ - + - -service-discovery | Middy.js - - + +service-discovery | Middy.js + + -
-

service-discovery

Fetches Service Discovery instances to be used when connecting to other AWS services.

Install

To install this middleware you can use NPM:

npm install --save @middy/service-discovery
npm install --save-dev @aws-sdk/client-servicediscovery

Options

  • AwsClient (object) (default ServiceDiscoveryClient): ServiceDiscoveryClient class constructor (i.e. that has been instrumented with AWS XRay). Must be from @aws-sdk/client-servicediscovery.
  • awsClientOptions (object) (default undefined): Options to pass to ServiceDiscoveryClient class constructor.
  • awsClientAssumeRole (string) (default undefined): Internal key where secrets are stored. See @middy/sts on to set this.
  • awsClientCapture (function) (default undefined): Enable XRay by passing captureAWSv3Client from aws-xray-sdk in.
  • fetchData (object) (required): Mapping of internal key name to API request parameters.
  • disablePrefetch (boolean) (default false): On cold start requests will trigger early if they can. Setting awsClientAssumeRole disables prefetch.
  • cacheKey (string) (default sts): Cache key for the fetched data responses. Must be unique across all middleware.
  • cacheExpiry (number) (default -1): How long fetch data responses should be cached for. -1: cache forever, 0: never cache, n: cache for n ms.
  • setToContext (boolean) (default false): Store credentials to request.context.

NOTES:

  • Lambda is required to have IAM permission for servicediscovery:DiscoverInstances

Sample usage

import middy from '@middy/core'
import serviceDiscovery from '@middy/service-discovery'

const handler = middy((event, context) => {
const response = {
statusCode: 200,
headers: {},
body: JSON.stringify({ message: 'hello world' })
}

return response
})

handler.use(
serviceDiscovery({
fetchData: {
instances: {
NamespaceName: '...',
ServiceName: '...'
}
}
})
)

Bundling

To exclude @aws-sdk add @aws-sdk/client-servicediscovery to the exclude list.

- - +

service-discovery

Fetches Service Discovery instances to be used when connecting to other AWS services.

+

Install

+

To install this middleware you can use NPM:

+
npm install --save @middy/service-discovery
npm install --save-dev @aws-sdk/client-servicediscovery
+

Options

+
    +
  • AwsClient (object) (default ServiceDiscoveryClient): ServiceDiscoveryClient class constructor (i.e. that has been instrumented with AWS XRay). Must be from @aws-sdk/client-servicediscovery.
  • +
  • awsClientOptions (object) (default undefined): Options to pass to ServiceDiscoveryClient class constructor.
  • +
  • awsClientAssumeRole (string) (default undefined): Internal key where secrets are stored. See @middy/sts on to set this.
  • +
  • awsClientCapture (function) (default undefined): Enable XRay by passing captureAWSv3Client from aws-xray-sdk in.
  • +
  • fetchData (object) (required): Mapping of internal key name to API request parameters.
  • +
  • disablePrefetch (boolean) (default false): On cold start requests will trigger early if they can. Setting awsClientAssumeRole disables prefetch.
  • +
  • cacheKey (string) (default sts): Cache key for the fetched data responses. Must be unique across all middleware.
  • +
  • cacheExpiry (number) (default -1): How long fetch data responses should be cached for. -1: cache forever, 0: never cache, n: cache for n ms.
  • +
  • setToContext (boolean) (default false): Store credentials to request.context.
  • +
+

NOTES:

+
    +
  • Lambda is required to have IAM permission for servicediscovery:DiscoverInstances
  • +
+

Sample usage

+
import middy from '@middy/core'
import serviceDiscovery from '@middy/service-discovery'

const lambdaHandler = (event, context) => {
const response = {
statusCode: 200,
headers: {},
body: JSON.stringify({ message: 'hello world' })
}

return response
}

export const handler = middy()
.use(
serviceDiscovery({
fetchData: {
instances: {
NamespaceName: '...',
ServiceName: '...'
}
}
})
)
.handler(lambdaHandler)
+

Bundling

+

To exclude @aws-sdk add @aws-sdk/client-servicediscovery to the exclude list.

\ No newline at end of file diff --git a/docs/middlewares/sqs-partial-batch-failure/index.html b/docs/middlewares/sqs-partial-batch-failure/index.html index 7dd7c7b3d..a025bcdcf 100644 --- a/docs/middlewares/sqs-partial-batch-failure/index.html +++ b/docs/middlewares/sqs-partial-batch-failure/index.html @@ -1,16 +1,24 @@ - + - -sqs-partial-batch-failure | Middy.js - - + +sqs-partial-batch-failure | Middy.js + + -
-

sqs-partial-batch-failure

Middleware for handling partially failed SQS batches.

Install

To install this middleware you can use NPM:

npm install --save @middy/sqs-partial-batch-failure
# Required for types only
npm install --save-dev @aws-sdk/client-sqs

Options

  • logger (function) (optional): A function that will be called when a record fails to be processed. Default: console.error

Sample usage

import middy from '@middy/core'
import sqsBatch from '@middy/sqs-partial-batch-failure'

const lambdaHandler = (event, context) => {
const recordPromises = event.Records.map(async (record, index) => {
/* Custom message processing logic */
return record
})
return Promise.allSettled(recordPromises)
}

export const handler = middy(lambdaHandler).use(sqsBatch())

Important

The value ReportBatchItemFailures must be added to your Lambda's FunctionResponseTypes in the EventSourceMapping. See Reporting batch item failures and Lambda EventSourceMapping

When being used with @middy/validator, ensure errors are caught and handled properly to avoid infinite loops.

- - +

sqs-partial-batch-failure

Middleware for handling partially failed SQS batches.

+

Install

+

To install this middleware you can use NPM:

+
npm install --save @middy/sqs-partial-batch-failure
# Required for types only
npm install --save-dev @aws-sdk/client-sqs
+

Options

+
    +
  • logger (function) (optional): A function that will be called when a record fails to be processed. Default: console.error
  • +
+

Sample usage

+
import middy from '@middy/core'
import sqsBatch from '@middy/sqs-partial-batch-failure'

const lambdaHandler = (event, context) => {
const recordPromises = event.Records.map(async (record, index) => {
/* Custom message processing logic */
return record
})
return Promise.allSettled(recordPromises)
}

export const handler = middy().use(sqsBatch()).handler(lambdaHandler)
+

Important

+

The value ReportBatchItemFailures must be added to your Lambda's FunctionResponseTypes in the EventSourceMapping. See Reporting batch item failures and Lambda EventSourceMapping

\ No newline at end of file diff --git a/docs/middlewares/ssm/index.html b/docs/middlewares/ssm/index.html index 049504606..ed8253b07 100644 --- a/docs/middlewares/ssm/index.html +++ b/docs/middlewares/ssm/index.html @@ -1,16 +1,49 @@ - + - -ssm | Middy.js - - + +ssm | Middy.js + + -
-

ssm

This middleware fetches parameters from AWS Systems Manager Parameter Store.

Parameters to fetch can be defined by path and by name (not mutually exclusive). See AWS docs here.

Parameters can be assigned to the function handler's context object by setting the setToContext flag to true. By default all parameters are added with uppercase names.

The Middleware makes a single API request to fetch all the parameters defined by name, but must make an additional request per specified path. This is because the AWS SDK currently doesn't expose a method to retrieve parameters from multiple paths.

For each parameter defined by name, you also provide the name under which its value should be added to context. For each path, you instead provide a prefix, and by default the value import each parameter returned from that path will be added to context with a name equal to what's left of the parameter's full name after the defined path, with the prefix prepended. If the prefix is an empty string, nothing is prepended. You can override this behaviour by providing your own mapping function with the getParamNameFromPath config option.

Install

To install this middleware you can use NPM:

npm install --save @middy/ssm
npm install --save-dev @aws-sdk/client-ssm

Options

  • AwsClient (object) (default SSMClient): SSMClient class constructor (i.e. that has been instrumented with AWS X-Ray). Must be from @aws-sdk/client-ssm.
  • awsClientOptions (object) (optional): Options to pass to SSMClient class constructor.
  • awsClientAssumeRole (string) (optional): Internal key where role tokens are stored. See @middy/sts on to set this.
  • awsClientCapture (function) (optional): Enable AWS X-Ray by passing captureAWSv3Client from aws-xray-sdk in.
  • fetchData (object) (required): Mapping of internal key name to API request parameter Names/Path. SecureString are automatically decrypted.
  • disablePrefetch (boolean) (default false): On cold start requests will trigger early if they can. Setting awsClientAssumeRole disables prefetch.
  • cacheKey (string) (default ssm): Cache key for the fetched data responses. Must be unique across all middleware.
  • cacheExpiry (number) (default -1): How long fetch data responses should be cached for. -1: cache forever, 0: never cache, n: cache for n ms.
  • setToContext (boolean) (default false): Store role tokens to request.context.

NOTES:

  • Lambda is required to have IAM permission for ssm:GetParameters and/or ssm:GetParametersByPath depending on what you're requesting, along with kms:Decrypt.
  • SSM has throughput limitations. Switching to Advanced Parameter type or increasing maxRetries and retryDelayOptions.base in awsClientOptions may be required.

Sample usage

import middy from '@middy/core'
import ssm from '@middy/ssm'

const handler = middy((event, context) => {
return {}
})

let globalDefaults = {}
handler
.use(
ssm({
fetchData: {
accessToken: '/dev/service_name/access_token', // single value
dbParams: '/dev/service_name/database/', // object of values, key for each path
defaults: '/dev/defaults'
},
setToContext: true
})
)
.before((request) => {
globalDefaults = request.context.defaults.global
})
import middy from '@middy/core'
import { getInternal } from '@middy/util'
import ssm from '@middy/ssm'

const handler = middy((event, context) => {
return {}
})

let globalDefaults = {}
handler
.use(
ssm({
fetchData: {
defaults: '/dev/defaults'
},
cacheKey: 'ssm-defaults'
})
)
.use(
ssm({
fetchData: {
accessToken: '/dev/service_name/access_token', // single value
dbParams: '/dev/service_name/database/' // object of values, key for each path
},
cacheExpiry: 15 * 60 * 1000,
cacheKey: 'ssm-secrets'
})
)
// ... other middleware that fetch
.before(async (request) => {
const data = await getInternal(
['accessToken', 'dbParams', 'defaults'],
request
)
Object.assign(request.context, data)
})

Bundling

To exclude @aws-sdk add @aws-sdk/client-ssm to the exclude list.

- - +

ssm

This middleware fetches parameters from AWS Systems Manager Parameter Store.

+

Parameters to fetch can be defined by path and by name (not mutually exclusive). See AWS docs here.

+

Parameters can be assigned to the function handler's context object by setting the setToContext flag to true. By default all parameters are added with uppercase names.

+

The Middleware makes a single API request to fetch all the parameters defined by name, but must make an additional request per specified path. This is because the AWS SDK currently doesn't expose a method to retrieve parameters from multiple paths.

+

For each parameter defined by name, you also provide the name under which its value should be added to context. For each path, you instead provide a prefix, and by default the value import each parameter returned from that path will be added to context with a name equal to what's left of the parameter's full name after the defined path, with the prefix prepended. If the prefix is an empty string, nothing is prepended. You can override this behaviour by providing your own mapping function with the getParamNameFromPath config option.

+

Install

+

To install this middleware you can use NPM:

+
npm install --save @middy/ssm
npm install --save-dev @aws-sdk/client-ssm
+

Options

+
    +
  • AwsClient (object) (default SSMClient): SSMClient class constructor (i.e. that has been instrumented with AWS X-Ray). Must be from @aws-sdk/client-ssm.
  • +
  • awsClientOptions (object) (optional): Options to pass to SSMClient class constructor.
  • +
  • awsClientAssumeRole (string) (optional): Internal key where role tokens are stored. See @middy/sts on to set this.
  • +
  • awsClientCapture (function) (optional): Enable AWS X-Ray by passing captureAWSv3Client from aws-xray-sdk in.
  • +
  • fetchData (object) (required): Mapping of internal key name to API request parameter Names/Path. SecureString are automatically decrypted.
  • +
  • disablePrefetch (boolean) (default false): On cold start requests will trigger early if they can. Setting awsClientAssumeRole disables prefetch.
  • +
  • cacheKey (string) (default ssm): Cache key for the fetched data responses. Must be unique across all middleware.
  • +
  • cacheExpiry (number) (default -1): How long fetch data responses should be cached for. -1: cache forever, 0: never cache, n: cache for n ms.
  • +
  • setToContext (boolean) (default false): Store role tokens to request.context.
  • +
+

NOTES:

+
    +
  • Lambda is required to have IAM permission for ssm:GetParameters and/or ssm:GetParametersByPath depending on what you're requesting, along with kms:Decrypt.
  • +
  • SSM has throughput limitations. Switching to Advanced Parameter type or increasing maxRetries and retryDelayOptions.base in awsClientOptions may be required.
  • +
+

Sample usage

+
import middy from '@middy/core'
import ssm from '@middy/ssm'

const lambdaHandler = (event, context) => {
return {}
}

let globalDefaults = {}
export const handler = middy()
.use(
ssm({
fetchData: {
accessToken: '/dev/service_name/access_token', // single value
dbParams: '/dev/service_name/database/', // object of values, key for each path
defaults: '/dev/defaults'
},
setToContext: true
})
)
.before((request) => {
globalDefaults = request.context.defaults.global
})
.handler(lambdaHandler)
+
import middy from '@middy/core'
import { getInternal } from '@middy/util'
import ssm from '@middy/ssm'

const lambdaHandler = (event, context) => {
return {}
}

let globalDefaults = {}
export const handler = middy()
.use(
ssm({
fetchData: {
defaults: '/dev/defaults'
},
cacheKey: 'ssm-defaults'
})
)
.use(
ssm({
fetchData: {
accessToken: '/dev/service_name/access_token', // single value
dbParams: '/dev/service_name/database/' // object of values, key for each path
},
cacheExpiry: 15 * 60 * 1000,
cacheKey: 'ssm-secrets'
})
)
// ... other middleware that fetch
.before(async (request) => {
const data = await getInternal(
['accessToken', 'dbParams', 'defaults'],
request
)
Object.assign(request.context, data)
})
.handler(lambdaHandler)
+

Bundling

+

To exclude @aws-sdk add @aws-sdk/client-ssm to the exclude list.

+

Usage with TypeScript

+

Data in SSM can be stored as arbitrary JSON values. It's not possible to know in advance what shape the fetched SSM parameters will have, so by default the fetched parameters will have type unknown.

+

You can provide some type hints by leveraging the ssmParam utility function. This function allows you to specify what's the expected type that will be fetched for every parameter.

+

The idea is that, for every parameter specified in the fetchData option, rather than just providing the parameter path as a string, you can wrap it in a ssmParam<ParamType>(parameterPath) call. Internally, ssmParam is a function that will return parameterPath as received, but it allows you to use generics to provide type hints for the expected type for that parameter.

+

This way TypeScript can understand how to treat the additional data attached to the context and stored in the internal storage.

+

The following example illustrates how to use ssmParam:

+
import middy from '@middy/core'
import { getInternal } from '@middy/util'
import ssm, { ssmParam } from '@middy/ssm'

const lambdaHandler = (event, context) => {
return {}
}

let globalDefaults = {}
export const handler = middy()
.use(
ssm({
fetchData: {
accessToken: ssmParam<string>('/dev/service_name/access_token'), // single value (will be typed as string)
dbParams: ssmParam<{ user: string; pass: string }>(
'/dev/service_name/database/'
) // object of values (typed as {user: string, pass: string})
},
cacheExpiry: 15 * 60 * 1000,
cacheKey: 'ssm-secrets'
})
)
// ... other middleware that fetch
.before(async (request) => {
const data = await getInternal(['accessToken', 'dbParams'], request)
// data.accessToken (string)
// data.dbParams ({user: string, pass: string})
})
.handler(lambdaHandler)
\ No newline at end of file diff --git a/docs/middlewares/sts/index.html b/docs/middlewares/sts/index.html index e2ea47f2b..15fa0a276 100644 --- a/docs/middlewares/sts/index.html +++ b/docs/middlewares/sts/index.html @@ -1,16 +1,36 @@ - + - -sts | Middy.js - - + +sts | Middy.js + + -
-

sts

Fetches STS credentials to be used when connecting to other AWS services.

Install

To install this middleware you can use NPM:

npm install --save @middy/sts
npm install --save-dev @aws-sdk/client-sts

Options

  • AwsClient (object) (default STSClient): STSClient class constructor (i.e. that has been instrumented with AWS XRay). Must be from @aws-sdk/client-sts.
  • awsClientOptions (object) (optional): Options to pass to STSClient class constructor.
  • awsClientCapture (function) (optional): Enable XRay by passing captureAWSv3Client from aws-xray-sdk in.
  • fetchData (object) (required): Mapping of internal key name to API request parameters.
  • disablePrefetch (boolean) (default false): On cold start requests will trigger early if they can. Setting awsClientAssumeRole disables prefetch.
  • cacheKey (string) (default sts): Cache key for the fetched data responses. Must be unique across all middleware.
  • cacheExpiry (number) (default -1): How long fetch data responses should be cached for. -1: cache forever, 0: never cache, n: cache for n ms.
  • setToContext (boolean) (default false): Store credentials to request.context.

NOTES:

  • Lambda is required to have IAM permission for sts:AssumeRole
  • setToContext are included for legacy support and should be avoided for performance and security reasons. See main documentation for best practices.

Sample usage

import middy from '@middy/core'
import sts from '@middy/sts'

const handler = middy((event, context) => {
const response = {
statusCode: 200,
headers: {},
body: JSON.stringify({ message: 'hello world' })
}

return response
})

handler.use(
sts({
fetchData: {
assumeRole: {
RoleArn: '...',
RoleSessionName: '' // optional
}
}
})
)

Bundling

To exclude @aws-sdk add @aws-sdk/client-sts to the exclude list.

- - +

sts

Fetches STS credentials to be used when connecting to other AWS services.

+

Install

+

To install this middleware you can use NPM:

+
npm install --save @middy/sts
npm install --save-dev @aws-sdk/client-sts
+

Options

+
    +
  • AwsClient (object) (default STSClient): STSClient class constructor (i.e. that has been instrumented with AWS XRay). Must be from @aws-sdk/client-sts.
  • +
  • awsClientOptions (object) (optional): Options to pass to STSClient class constructor.
  • +
  • awsClientCapture (function) (optional): Enable XRay by passing captureAWSv3Client from aws-xray-sdk in.
  • +
  • fetchData (object) (required): Mapping of internal key name to API request parameters.
  • +
  • disablePrefetch (boolean) (default false): On cold start requests will trigger early if they can. Setting awsClientAssumeRole disables prefetch.
  • +
  • cacheKey (string) (default sts): Cache key for the fetched data responses. Must be unique across all middleware.
  • +
  • cacheExpiry (number) (default -1): How long fetch data responses should be cached for. -1: cache forever, 0: never cache, n: cache for n ms.
  • +
  • setToContext (boolean) (default false): Store credentials to request.context.
  • +
+

NOTES:

+
    +
  • Lambda is required to have IAM permission for sts:AssumeRole
  • +
  • setToContext are included for legacy support and should be avoided for performance and security reasons. See main documentation for best practices.
  • +
+

Sample usage

+
import middy from '@middy/core'
import sts from '@middy/sts'

const lambdaHandler = (event, context) => {
const response = {
statusCode: 200,
headers: {},
body: JSON.stringify({ message: 'hello world' })
}

return response
}

export const handler = middy()
.use(
sts({
fetchData: {
assumeRole: {
RoleArn: '...',
RoleSessionName: '' // optional
}
}
})
)
.handler(lambdaHandler)
+

Bundling

+

To exclude @aws-sdk add @aws-sdk/client-sts to the exclude list.

\ No newline at end of file diff --git a/docs/middlewares/third-party/index.html b/docs/middlewares/third-party/index.html index abb3aa256..5aa487bc2 100644 --- a/docs/middlewares/third-party/index.html +++ b/docs/middlewares/third-party/index.html @@ -1,17 +1,64 @@ - + - -Third-party middlewares | Middy.js - - + +Third-party middlewares | Middy.js + + -
-

Third-party middlewares

The following middlewares are created and maintained outside this project. We cannot guarantee for its functionality. -If your middleware is missing, feel free to open a Pull Request.

Version 2.x - 4.x

  • dazn-lambda-powertools: A collection of middlewares, AWS clients and helper libraries that make working with lambda easier.
  • middy-ajv: AJV validator optimized for performance
  • middy-console-logger: Middleware for filtering logs printed over console logging methods. If the level of the console logging method is equal or bigger than configured level, the log is printed, Otherwise, it is ignored.
  • middy-event-loop-tracer: Middleware for dumping active tasks with their stacktraces in the event queue just before AWS Lambda function timeouts. So you can understand what was going on in the function when timeout happens.
  • middy-idempotent: idempotency middleware for middy
  • middy-invocation: Middleware for accessing current AWS Lambda invocation event and context from anywhere without need to passing event and context as arguments through your code.- middy-lesslog: Middleware for lesslog, a teeny-tiny and severless-ready logging utility
  • middy-jsonapi: JSONAPI middleware for middy
  • middy-lesslog: Middleware for lesslog, a teeny-tiny and severless-ready logging utility
  • middy-profiler: Middleware for profiling CPU on AWS Lambda during invocation and shows what methods/modules consume what percent of CPU time
  • middy-rds: Creates RDS connection using knex or pg
  • middy-recaptcha: reCAPTCHA validation middleware
  • middy-sparks-joi: Joi validator
  • @iress/middy-http-path-router: Routes AWS API Gateway events to handlers based on static and dynamic paths

Version 2.x - 3.x

  • aws-lambda-powertools-typescript: A suite of utilities for AWS Lambda Functions that makes structured logging, creating custom metrics asynchronously and tracing with AWS X-Ray easier

    • logger: Structured logging made easier, and a middleware to enrich log items with key details of the Lambda context
    • metrics: Custom Metrics created asynchronously via CloudWatch Embedded Metric Format (EMF)
    • parameters: The Parameters utility provides high-level functions to retrieve one or multiple parameter values from AWS Systems Manager Parameter Store, AWS Secrets Manager, AWS AppConfig, Amazon DynamoDB, or your own parameter store.
    • tracer: Utilities to trace Lambda function handlers, and both synchronous and asynchronous functions

Version 1.x

- - +

Third-party middlewares

The following middlewares are created and maintained outside this project. We cannot guarantee for its functionality. +If your middleware is missing, feel free to open a Pull Request.

+

Version 2.x - 4.x

+
    +
  • dazn-lambda-powertools: A collection of middlewares, AWS clients and helper libraries that make working with lambda easier.
  • +
  • middy-ajv: AJV validator optimized for performance
  • +
  • middy-console-logger: Middleware for filtering logs printed over console logging methods. If the level of the console logging method is equal or bigger than configured level, the log is printed, Otherwise, it is ignored.
  • +
  • middy-event-loop-tracer: Middleware for dumping active tasks with their stacktraces in the event queue just before AWS Lambda function timeouts. So you can understand what was going on in the function when timeout happens.
  • +
  • middy-idempotent: idempotency middleware for middy
  • +
  • middy-invocation: Middleware for accessing current AWS Lambda invocation event and context from anywhere without need to passing event and context as arguments through your code.- middy-lesslog: Middleware for lesslog, a teeny-tiny and severless-ready logging utility
  • +
  • middy-jsonapi: JSONAPI middleware for middy
  • +
  • middy-lesslog: Middleware for lesslog, a teeny-tiny and severless-ready logging utility
  • +
  • middy-profiler: Middleware for profiling CPU on AWS Lambda during invocation and shows what methods/modules consume what percent of CPU time
  • +
  • middy-rds: Creates RDS connection using knex or pg
  • +
  • middy-recaptcha: reCAPTCHA validation middleware
  • +
  • middy-sparks-joi: Joi validator
  • +
  • @iress/middy-http-path-router: Routes AWS API Gateway events to handlers based on static and dynamic paths
  • +
+

Version 2.x - 3.x

+
    +
  • +

    aws-lambda-powertools-typescript: A suite of utilities for AWS Lambda Functions that makes structured logging, creating custom metrics asynchronously and tracing with AWS X-Ray easier

    +
      +
    • logger: Structured logging made easier, and a middleware to enrich log items with key details of the Lambda context
    • +
    • metrics: Custom Metrics created asynchronously via CloudWatch Embedded Metric Format (EMF)
    • +
    • parameters: The Parameters utility provides high-level functions to retrieve one or multiple parameter values from AWS Systems Manager Parameter Store, AWS Secrets Manager, AWS AppConfig, Amazon DynamoDB, or your own parameter store.
    • +
    • tracer: Utilities to trace Lambda function handlers, and both synchronous and asynchronous functions
    • +
    +
  • +
+

Version 1.x

+
\ No newline at end of file diff --git a/docs/middlewares/validator/index.html b/docs/middlewares/validator/index.html index e972d8536..d8419409a 100644 --- a/docs/middlewares/validator/index.html +++ b/docs/middlewares/validator/index.html @@ -1,25 +1,75 @@ - + - -validator | Middy.js - - + +validator | Middy.js + + -
-

validator

This middleware automatically validates incoming events and outgoing responses against custom -schemas defined with the JSON schema syntax.

Want to use another validator? Try one of the community validators:

If an incoming event fails validation a BadRequest error is raised. +

validator

This middleware automatically validates incoming events and outgoing responses against custom +schemas defined with the JSON schema syntax.

+

Want to use another validator? Try one of the community validators:

+ +

If an incoming event fails validation a BadRequest error is raised. If an outgoing response fails validation a InternalServerError error is -raised.

This middleware can be used in combination with +raised.

+

This middleware can be used in combination with httpErrorHandler to automatically return the right -response to the user.

It can also be used in combination with http-content-negotiation to load localized translations for the error messages (based on the currently requested language). This feature uses internally ajv-ftl-i18n module, so reference to this module for options and more advanced use cases. By default the language used will be English (en), but you can redefine the default language by passing it in the ajvOptions options with the key defaultLanguage and specifying as value one of the supported locales.

Also, this middleware accepts an object with plugins to be applied to customize the internal ajv instance.

Install

To install this middleware you can use NPM:

npm install --save @middy/validator
npm install --save-dev ajv-cmd # Optional: for pre-transpiling

Options

  • eventSchema (function) (default undefined): The compiled ajv validator that will be used -to validate the input (request.event) of the Lambda handler.
  • contextSchema (function) (default undefined): The compiled ajv validator that will be used -to validate the input (request.context) of the Lambda handler. Has additional support for typeof keyword to allow validation of "typeof":"function".
  • responseSchema (function) (default undefined): The compiled ajv validator that will be used -to validate the output (request.response) of the Lambda handler.
  • i18nEnabled (boolean) (default true): Option to disable i18n default package.
  • defaultLanguage (string) (default en): When language not found, what language to fallback to.
  • languages (object) (default: {}): Localization overrides

NOTES:

  • At least one of eventSchema or responseSchema is required.
  • If you'd like to have the error details as part of the response, it will need to be handled separately. You can access them from request.error.cause, the original response can be found at request.error.response.
  • Important Transpiling schemas & locales on the fly will cause a 50-150ms performance hit during cold start for simple JSON Schemas. Precompiling is highly recommended.

transpileSchema

Transpile JSON-Schema in to JavaScript. Default ajv plugins used: ajv-i18n, ajv-formats, ajv-formats-draft2019, ajv-keywords, ajv-errors.

  • schema (object) (required): JSON-Schema object
  • ajvOptions (object) (default undefined): Options to pass to ajv -class constructor. Defaults are { strict: true, coerceTypes: 'array', allErrors: true, useDefaults: 'empty', messages: true }.

transpileLocale

Transpile Fluent (.ftl) localization file into ajv compatible format. Allows the overriding of the default messages and adds support for multi-language errrorMessages.

  • ftl (string) (required): Contents of an ftl file to be transpiled.

Sample usage

Example for event validation:

import middy from '@middy/core'
import validator from '@middy/validator'
import { transpileSchema } from '@middy/validator/transpile'

const handler = middy((event, context) => {
return {}
})

const schema = {
type: 'object',
required: ['body', 'foo'],
properties: {
// this will pass validation
body: {
type: 'string'
},
// this won't as it won't be in the event
foo: {
type: 'string'
}
}
}

handler.use(
validator({
eventSchema: transpileSchema(schema)
})
)

// invokes the handler, note that property foo is missing
const event = {
body: JSON.stringify({ something: 'somethingelse' })
}
handler(event, {}, (err, res) => {
t.is(err.message, 'Event object failed validation')
})

Example for response validation:

import middy from '@middy/core'
import validator from '@middy/validator'
import { transpileSchema } from '@middy/validator/transpile'

const handler = middy((event, context) => {
return {}
})

const responseSchema = transpileSchema({
type: 'object',
required: ['body', 'statusCode'],
properties: {
body: {
type: 'object'
},
statusCode: {
type: 'number'
}
}
})

handler.use(validator({ responseSchema }))

handler({}, {}, (err, response) => {
t.not(err, null)
t.is(err.message, 'Response object failed validation')
expect(response).not.toBe(null)
// it doesn't destroy the response so it can be used by other middlewares
})

Example for body validation:

import middy from '@middy/core'
import httpJsonBodyParser from '@middy/http-json-body-parser'
import validator from '@middy/validator'
import { transpileSchema } from '@middy/validator/transpile'

const handler = middy((event, context) => {
return {}
})

const schema = {
type: 'object',
required: ['body'],
properties: {
body: {
type: 'object',
required: ['name', 'email'],
properties: {
name: { type: 'string' },
email: { type: 'string', format: 'email' }
// schema options https://ajv.js.org/json-schema.html#json-data-type
}
}
}
}

// to validate the body we need to parse it first
handler.use(httpJsonBodyParser()).use(
validator({
eventSchema: transpileSchema(schema)
})
)

Run a build script to before running tests & deployment.

#!/usr/bin/env bash

# This is an example, should be customize to meet ones needs
# Powered by `ajv-cmd`
# $ ajv --help

bundle () {
ajv validate ${1} --valid \
--strict true --coerce-types array --all-errors true --use-defaults empty
ajv transpile ${1} \
--strict true --coerce-types array --all-errors true --use-defaults empty \
-o ${1%.json}.js
}

for file in handlers/*/schema.*.json; do
bundle $file
done

locale () {
LOCALE=$(basename ${1%.ftl})
ajv ftl ${1} --locale ${LOCALE} -o ${1%.ftl}.js
}

for file in handlers/*/*.ftl; do
locale $file
done
import middy from '@middy/core'
import validator from '@middy/validator'
import eventSchema from './schema.event.js'
import en from './en.js'
import fr from './fr.js'

export const handler = middy()
.use(
validator({
eventSchema,
languages: { en, fr }
})
)
.handler((event, context) => {
return {}
})

Transpile during cold-start

import { readFile } from 'node:fs/promises'
import middy from '@middy/core'
import validator from '@middy/validator'
import { transpileSchema, transpileLocale } from '@middy/validator/transpile'
import eventSchema from './schema.event.json'

const en = transpileLocale(await readFile('./en.ftl'))
const fr = transpileLocale(await readFile('./fr.ftl'))

export const handler = middy()
.use(
validator({
eventSchema: transpileSchema(eventSchema),
languages: { en, fr }
})
)
.handler((event, context) => {
return {}
})

Transpile during cold-start with default messages

import { readFile } from 'node:fs/promises'
import middy from '@middy/core'
import validator from '@middy/validator'
import { transpileSchema, transpileLocale } from '@middy/validator/transpile'
import { en, fr } from 'ajv-ftl-i18n' // `ajv-i18n` can also be used
import eventSchema from './schema.event.json'

export const handler = middy()
.use(
validator({
eventSchema: transpileSchema(eventSchema),
languages: { en, fr }
})
)
.handler((event, context) => {
return {}
})
- - +response to the user.

+

It can also be used in combination with http-content-negotiation to load localized translations for the error messages (based on the currently requested language). This feature uses internally ajv-ftl-i18n module, so reference to this module for options and more advanced use cases. By default the language used will be English (en), but you can redefine the default language by passing it in the ajvOptions options with the key defaultLanguage and specifying as value one of the supported locales.

+

Also, this middleware accepts an object with plugins to be applied to customize the internal ajv instance.

+

Install

+

To install this middleware you can use NPM:

+
npm install --save @middy/validator
npm install --save-dev ajv-cmd # Optional: for pre-transpiling
+

Options

+
    +
  • eventSchema (function) (default undefined): The compiled ajv validator that will be used +to validate the input (request.event) of the Lambda handler.
  • +
  • contextSchema (function) (default undefined): The compiled ajv validator that will be used +to validate the input (request.context) of the Lambda handler. Has additional support for typeof keyword to allow validation of "typeof":"function".
  • +
  • responseSchema (function) (default undefined): The compiled ajv validator that will be used +to validate the output (request.response) of the Lambda handler.
  • +
  • i18nEnabled (boolean) (default true): Option to disable i18n default package.
  • +
  • defaultLanguage (string) (default en): When language not found, what language to fallback to.
  • +
  • languages (object) (default: {}): Localization overrides
  • +
+

NOTES:

+
    +
  • At least one of eventSchema or responseSchema is required.
  • +
  • If you'd like to have the error details as part of the response, it will need to be handled separately. You can access them from request.error.cause.data, the original response can be found at request.error.response.
  • +
  • Important Transpiling schemas & locales on the fly will cause a 50-150ms performance hit during cold start for simple JSON Schemas. Precompiling is highly recommended.
  • +
+

transpileSchema

+

Transpile JSON-Schema in to JavaScript. Default ajv plugins used: ajv-i18n, ajv-formats, ajv-formats-draft2019, ajv-keywords, ajv-errors.

+
    +
  • schema (object) (required): JSON-Schema object
  • +
  • ajvOptions (object) (default undefined): Options to pass to ajv +class constructor. Defaults are { strict: true, coerceTypes: 'array', allErrors: true, useDefaults: 'empty', messages: true }.
  • +
+

transpileLocale

+

Transpile Fluent (.ftl) localization file into ajv compatible format. Allows the overriding of the default messages and adds support for multi-language errrorMessages.

+
    +
  • ftl (string) (required): Contents of an ftl file to be transpiled.
  • +
+

Sample usage

+

Example for event validation:

+
import middy from '@middy/core'
import validator from '@middy/validator'
import { transpileSchema } from '@middy/validator/transpile'

const lambdaHandler = (event, context) => {
return {}
}

const schema = {
type: 'object',
required: ['body', 'foo'],
properties: {
// this will pass validation
body: {
type: 'string'
},
// this won't as it won't be in the event
foo: {
type: 'string'
}
}
}

export const handler = middy()
.use(
validator({
eventSchema: transpileSchema(schema)
})
)
.handler(lambdaHandler)

// invokes the handler, note that property foo is missing
const event = {
body: JSON.stringify({ something: 'somethingelse' })
}
handler(event, {}, (err, res) => {
t.is(err.message, 'Event object failed validation')
})
+

Example for response validation:

+
import middy from '@middy/core'
import validator from '@middy/validator'
import { transpileSchema } from '@middy/validator/transpile'

const lambdaHandler = (event, context) => {
return {}
}

const responseSchema = transpileSchema({
type: 'object',
required: ['body', 'statusCode'],
properties: {
body: {
type: 'object'
},
statusCode: {
type: 'number'
}
}
})

export const handler = middy()
.use(validator({ responseSchema }))
.handler(lambdaHandler)

//
handler({}, {}, (err, response) => {
t.not(err, null)
t.is(err.message, 'Response object failed validation')
expect(response).not.toBe(null)
// it doesn't destroy the response so it can be used by other middlewares
})
+

Example for body validation:

+
import middy from '@middy/core'
import httpJsonBodyParser from '@middy/http-json-body-parser'
import validator from '@middy/validator'
import { transpileSchema } from '@middy/validator/transpile'

const lambdaHandler = (event, context) => {
return {}
}

const eventSchema = {
type: 'object',
required: ['body'],
properties: {
body: {
type: 'object',
required: ['name', 'email'],
properties: {
name: { type: 'string' },
email: { type: 'string', format: 'email' }
// schema options https://ajv.js.org/json-schema.html#json-data-type
}
}
}
}

export const handler = middy()
// to validate the body we need to parse it first
.use(httpJsonBodyParser())
.use(
validator({
eventSchema: transpileSchema(eventSchema)
})
)
.handler(lambdaHandler)
+ +

Run a build script to before running tests & deployment.

+
#!/usr/bin/env bash

# This is an example, should be customize to meet ones needs
# Powered by `ajv-cmd`
# $ ajv --help

bundle () {
ajv validate ${1} --valid \
--strict true --coerce-types array --all-errors true --use-defaults empty
ajv transpile ${1} \
--strict true --coerce-types array --all-errors true --use-defaults empty \
-o ${1%.json}.js
}

for file in handlers/*/schema.*.json; do
bundle $file
done

locale () {
LOCALE=$(basename ${1%.ftl})
ajv ftl ${1} --locale ${LOCALE} -o ${1%.ftl}.js
}

for file in handlers/*/*.ftl; do
locale $file
done
+
import middy from '@middy/core'
import validator from '@middy/validator'
import eventSchema from './schema.event.js'
import en from './en.js'
import fr from './fr.js'

const lambdaHandler = (event, context) => {
return {}
}

export const handler = middy()
.use(
validator({
eventSchema,
languages: { en, fr }
})
)
.handler(lambdaHandler)
+

Transpile during cold-start

+
import { readFile } from 'node:fs/promises'
import middy from '@middy/core'
import validator from '@middy/validator'
import { transpileSchema, transpileLocale } from '@middy/validator/transpile'
import eventSchema from './schema.event.json'

const lambdaHandler = (event, context) => {
return {}
}

const en = transpileLocale(await readFile('./en.ftl'))
const fr = transpileLocale(await readFile('./fr.ftl'))

export const handler = middy()
.use(
validator({
eventSchema: transpileSchema(eventSchema),
languages: { en, fr }
})
)
.handler(lambdaHandler)
+

Transpile during cold-start with default messages

+
import { readFile } from 'node:fs/promises'
import middy from '@middy/core'
import validator from '@middy/validator'
import { transpileSchema, transpileLocale } from '@middy/validator/transpile'
import { en, fr } from 'ajv-ftl-i18n' // `ajv-i18n` can also be used
import eventSchema from './schema.event.json'

const lambdaHandler = (event, context) => {
return {}
}

export const handler = middy()
.use(
validator({
eventSchema: transpileSchema(eventSchema),
languages: { en, fr }
})
)
.handler(lambdaHandler)
\ No newline at end of file diff --git a/docs/middlewares/warmup/index.html b/docs/middlewares/warmup/index.html index d9622dd9a..d9ed22478 100644 --- a/docs/middlewares/warmup/index.html +++ b/docs/middlewares/warmup/index.html @@ -1,17 +1,32 @@ - + - -warmup | Middy.js - - + +warmup | Middy.js + + -
-

warmup

Warmup middleware that helps to reduce the cold-start issue. Compatible by default with serverless-plugin-warmup, but it can be configured to suit your implementation.

This middleware allows you to specify a schedule to keep Lambdas that always need to be very responsive warmed-up. It does this by regularly invoking the Lambda, but will terminate early to avoid the actual handler logic from being run.

If you use serverless-plugin-warmup the scheduling part is done by the plugin and you just have to attach the middleware to your "middyfied" handler. If you don't want to use the plugin you have to create the schedule yourself and define the isWarmingUp function to define whether the current event is a warmup event or an actual business logic execution.

Important: AWS recently announced Lambda Provisioned Concurrency. If you have this enabled, you do not need this middleware.

To update your code to use Provisioned Concurrency see:

Install

To install this middleware you can use NPM:

npm install --save @middy/warmup

Options

  • isWarmingUp: a function that accepts the event object as a parameter -and returns true if the current event is a warmup event and false if it's a regular execution. The default function will check if the event object has a source property set to serverless-plugin-warmup.

Sample usage

const middy = require('@middy/core')
const warmup = require('@middy/warmup')

const isWarmingUp = (event) => event.isWarmingUp === true

const originalHandler = (event, context, cb) => {
/* ... */
}

const handler = middy(originalHandler)
.use(warmup({ isWarmingUp }))
- - +

warmup

Warmup middleware that helps to reduce the cold-start issue. Compatible by default with serverless-plugin-warmup, but it can be configured to suit your implementation.

+

This middleware allows you to specify a schedule to keep Lambdas that always need to be very responsive warmed-up. It does this by regularly invoking the Lambda, but will terminate early to avoid the actual handler logic from being run.

+

If you use serverless-plugin-warmup the scheduling part is done by the plugin and you just have to attach the middleware to your "middyfied" handler. If you don't want to use the plugin you have to create the schedule yourself and define the isWarmingUp function to define whether the current event is a warmup event or an actual business logic execution.

+

Important: AWS recently announced Lambda Provisioned Concurrency. If you have this enabled, you do not need this middleware.

+

To update your code to use Provisioned Concurrency see:

+ +

Install

+

To install this middleware you can use NPM:

+
npm install --save @middy/warmup
+

Options

+
    +
  • isWarmingUp: a function that accepts the event object as a parameter +and returns true if the current event is a warmup event and false if it's a regular execution. The default function will check if the event object has a source property set to serverless-plugin-warmup.
  • +
+

Sample usage

+
const middy = require('@middy/core')
const warmup = require('@middy/warmup')

const lambdaHandler = (event, context, cb) => {
/* ... */
}

const isWarmingUp = (event) => event.isWarmingUp === true

export const handler = middy()
.use(warmup({ isWarmingUp }))
.handler(lambdaHandler)
\ No newline at end of file diff --git a/docs/middlewares/ws-json-body-parser/index.html b/docs/middlewares/ws-json-body-parser/index.html index a7cff563d..269a1c908 100644 --- a/docs/middlewares/ws-json-body-parser/index.html +++ b/docs/middlewares/ws-json-body-parser/index.html @@ -1,18 +1,26 @@ - + - -ws-json-body-parser | Middy.js - - + +ws-json-body-parser | Middy.js + + -
-

ws-json-body-parser

This middleware automatically parses WebSocket requests with a JSON body and converts the body into an -object.

It can also be used in combination with validator as a prior step to normalize the -event body input as an object so that the content can be validated.

If the body has been parsed as JSON, you can access the original body through the request.event.rawBody.

Install

To install this middleware you can use NPM:

npm install --save @middy/ws-json-body-parser

Options

  • reviver (function) (default undefined): A reviver parameter may be passed which will be used JSON.parseing the body.

Sample usage

import middy from '@middy/core'
import wsJsonBodyParserMiddleware from '@middy/ws-json-body-parser'
import wsResponseMiddleware from '@middy/ws-response'

export const handler = middy()
.use(wsJsonBodyParserMiddleware())
.use(wsResponseMiddleware())
.handler((event) => {
return event.body.message
})
- - +

ws-json-body-parser

This middleware automatically parses WebSocket requests with a JSON body and converts the body into an +object.

+

It can also be used in combination with validator as a prior step to normalize the +event body input as an object so that the content can be validated.

+

If the body has been parsed as JSON, you can access the original body through the request.event.rawBody.

+

Install

+

To install this middleware you can use NPM:

+
npm install --save @middy/ws-json-body-parser
+

Options

+
    +
  • reviver (function) (default undefined): A reviver parameter may be passed which will be used JSON.parseing the body.
  • +
+

Sample usage

+
import middy from '@middy/core'
import wsJsonBodyParserMiddleware from '@middy/ws-json-body-parser'
import wsResponseMiddleware from '@middy/ws-response'

const lambdaHandler = (event) => {
return event.body.message
}

export const handler = middy()
.use(wsJsonBodyParserMiddleware())
.use(wsResponseMiddleware())
.handler(lambdaHandler)
\ No newline at end of file diff --git a/docs/middlewares/ws-response/index.html b/docs/middlewares/ws-response/index.html index 1296da732..b7c40b410 100644 --- a/docs/middlewares/ws-response/index.html +++ b/docs/middlewares/ws-response/index.html @@ -1,16 +1,37 @@ - + - -ws-response | Middy.js - - + +ws-response | Middy.js + + -
-

ws-response

Post message to WebSocket connection.

Install

To install this middleware you can use NPM:

npm install --save @middy/ws-response
npm install --save-dev @aws-sdk/client-apigatewaymanagementapi

Options

  • AwsClient (object) (default ApiGatewayManagementApiClient): ApiGatewayManagementApi class constructor (i.e. that has been instrumented with AWS XRay). Must be from @aws-sdk/client-apigatewaymanagementapi.
  • awsClientOptions (object) (default undefined): Options to pass to ApiGatewayManagementApiClient class constructor.
  • awsClientAssumeRole (string) (default undefined): Internal key where secrets are stored. See @middy/sts on to set this.
  • awsClientCapture (function) (default undefined): Enable XRay by passing captureAWSv3Client from aws-xray-sdk in.
  • disablePrefetch (boolean) (default false): On cold start requests will trigger early if they can. Setting awsClientAssumeRole disables prefetch.

NOTES:

  • Lambda is required to have IAM permission for execute-api:ManageConnections
  • If awsClientOptions.endpoint is not set it will be set using event.requestContext.{domainName,stage}
  • If response does not contain ConnectId, it will be set from event.requestContext.connectionId

Sample usage

API Gateway

import middy from '@middy/core'
import wsResponse from '@middy/ws-response'

export const handler = middy((event, context) => {
return 'message'
})

handler.use(wsResponse())

General

import middy from '@middy/core'
import wsResponse from '@middy/ws-response'

export const handler = middy((event, context) => {
return {
ConnectionId: '...',
Data: 'message'
}
})

handler.use(
wsResponse({
awsClientOptions: {
endpoint: '...'
}
})
)

Bundling

To exclude @aws-sdk add @aws-sdk/client-apigatewaymanagementapi to the exclude list.

- - +

ws-response

Post message to WebSocket connection.

+

Install

+

To install this middleware you can use NPM:

+
npm install --save @middy/ws-response
npm install --save-dev @aws-sdk/client-apigatewaymanagementapi
+

Options

+
    +
  • AwsClient (object) (default ApiGatewayManagementApiClient): ApiGatewayManagementApi class constructor (i.e. that has been instrumented with AWS XRay). Must be from @aws-sdk/client-apigatewaymanagementapi.
  • +
  • awsClientOptions (object) (default undefined): Options to pass to ApiGatewayManagementApiClient class constructor.
  • +
  • awsClientAssumeRole (string) (default undefined): Internal key where secrets are stored. See @middy/sts on to set this.
  • +
  • awsClientCapture (function) (default undefined): Enable XRay by passing captureAWSv3Client from aws-xray-sdk in.
  • +
  • disablePrefetch (boolean) (default false): On cold start requests will trigger early if they can. Setting awsClientAssumeRole disables prefetch.
  • +
+

NOTES:

+
    +
  • Lambda is required to have IAM permission for execute-api:ManageConnections
  • +
  • If awsClientOptions.endpoint is not set it will be set using event.requestContext.{domainName,stage}
  • +
  • If response does not contain ConnectId, it will be set from event.requestContext.connectionId
  • +
+

Sample usage

+

API Gateway

+
import middy from '@middy/core'
import wsResponse from '@middy/ws-response'

export const handler = middy((event, context) => {
return 'message'
})

handler.use(wsResponse())
+

General

+
import middy from '@middy/core'
import wsResponse from '@middy/ws-response'

const lambdaHandler = (event, context) => {
return {
ConnectionId: '...',
Data: 'message'
}
}

export const handler = middy()
.use(
wsResponse({
awsClientOptions: {
endpoint: '...'
}
})
)
.handler(lambdaHandler)
+

Bundling

+

To exclude @aws-sdk add @aws-sdk/client-apigatewaymanagementapi to the exclude list.

\ No newline at end of file diff --git a/docs/routers/http-router/index.html b/docs/routers/http-router/index.html index 4982cf077..8ba59cf85 100644 --- a/docs/routers/http-router/index.html +++ b/docs/routers/http-router/index.html @@ -1,16 +1,35 @@ - + - -http-router | Middy.js - - + +http-router | Middy.js + + -
-

http-router

This handler can route to requests to one of a nested handler based on method and path of an http event from API Gateway (REST or HTTP) or Elastic Load Balancer.

Install

To install this middleware you can use NPM:

npm install --save @middy/http-router

Options

  • routes (array[{method, path, handler}]) (required): Array of route objects.
    • method (string) (required): One of GET, POST, PUT, PATCH, DELETE, OPTIONS and ANY that will match to any method passed in
    • path (string) (required): AWS formatted path starting with /. Variable: /{id}/, Wildcard: /{proxy+}
    • handler (function) (required): Any handler(event, context) function

NOTES:

  • When using API Gateway it may be required to prefix routes[].path with /{stage} depending on your use case.
  • Errors should be handled as part of the router middleware stack or the lambdaHandler middleware stack. Handled errors in the later will trigger the after middleware stack of the former.
  • Shared middlewares, connected to the router middleware stack, can only be run before the lambdaHandler middleware stack.
  • pathParameters will automatically be set if not already set

Sample usage

import middy from '@middy/core'
import httpRouterHandler from '@middy/http-router'
import validatorMiddleware from '@middy/validator'

const getHandler = middy()
.use(validatorMiddleware({eventSchema: {...} }))
.handler((event, context) => {
return {
statusCode: 200,
body: '{...}'
}
})

const postHandler = middy()
.use(validatorMiddleware({eventSchema: {...} }))
.handler((event, context) => {
return {
statusCode: 200,
body: '{...}'
}
})

const routes = [
{
method: 'GET',
path: '/user/{id}',
handler: getHandler
},
{
method: 'POST',
path: '/user',
handler: postHandler
}
]

export const handler = middy()
.use(httpHeaderNormalizer())
.handler(httpRouterHandler(routes))

- - +

http-router

This handler can route to requests to one of a nested handler based on method and path of an http event from API Gateway (REST or HTTP) or Elastic Load Balancer.

+

Install

+

To install this middleware you can use NPM:

+
npm install --save @middy/http-router
+

Options

+
    +
  • routes (array[{method, path, handler}]) (required): Array of route objects. +
      +
    • method (string) (required): One of GET, POST, PUT, PATCH, DELETE, OPTIONS and ANY that will match to any method passed in
    • +
    • path (string) (required): AWS formatted path starting with /. Variable: /{id}/, Wildcard: /{proxy+}
    • +
    • handler (function) (required): Any handler(event, context) function
    • +
    +
  • +
+

NOTES:

+
    +
  • When using API Gateway it may be required to prefix routes[].path with /{stage} depending on your use case.
  • +
  • Errors should be handled as part of the router middleware stack or the lambdaHandler middleware stack. Handled errors in the later will trigger the after middleware stack of the former.
  • +
  • Shared middlewares, connected to the router middleware stack, can only be run before the lambdaHandler middleware stack.
  • +
  • pathParameters will automatically be set if not already set
  • +
+

Sample usage

+
import middy from '@middy/core'
import httpRouterHandler from '@middy/http-router'
import validatorMiddleware from '@middy/validator'

const getHandler = middy()
.use(validatorMiddleware({eventSchema: {...} }))
.handler((event, context) => {
return {
statusCode: 200,
body: '{...}'
}
})

const postHandler = middy()
.use(validatorMiddleware({eventSchema: {...} }))
.handler((event, context) => {
return {
statusCode: 200,
body: '{...}'
}
})

const routes = [
{
method: 'GET',
path: '/user/{id}',
handler: getHandler
},
{
method: 'POST',
path: '/user',
handler: postHandler
}
]

export const handler = middy()
.use(httpHeaderNormalizer())
.handler(httpRouterHandler(routes))

\ No newline at end of file diff --git a/docs/routers/ws-router/index.html b/docs/routers/ws-router/index.html index b7c2449eb..6076b89ff 100644 --- a/docs/routers/ws-router/index.html +++ b/docs/routers/ws-router/index.html @@ -1,16 +1,32 @@ - + - -ws-router | Middy.js - - + +ws-router | Middy.js + + -
-

ws-router

This handler can route to requests to one of a nested handler based on routeKey of an WebSocket event from API Gateway (WebSocket).

Install

To install this middleware you can use NPM:

npm install --save @middy/ws-router

Options

  • routes (array[{routeKey, handler}]) (required): Array of route objects.
    • routeKey (string) (required): AWS formatted route key. ie $connect, $disconnect, $default
    • handler (function) (required): Any handler(event, context, {signal}) function

NOTES:

  • Errors should be handled as part of the router middleware stack or the lambdaHandler middleware stack. Handled errors in the later will trigger the after middleware stack of the former.
  • Shared middlewares, connected to the router middleware stack, can only be run before the lambdaHandler middleware stack.

Sample usage

import middy from '@middy/core'
import wsRouterHandler from '@middy/ws-router'
import wsResponseMiddleware from '@middy/ws-response'
import validatorMiddleware from '@middy/validator'

const connectHandler = middy()
.use(validatorMiddleware({eventSchema: {...} }))
.handler((event, context) => {
return 'connected'
})

const disconnectHandler = middy()
.use(validatorMiddleware({eventSchema: {...} }))
.handler((event, context) => {
return 'disconnected'
})

export const handler = middy()
.use(wsResponseMiddleware())
.handler(wsRouterHandler([
{
routeKey: '$connect',
handler: connectHandler
},
{
routeKey: '$disconnect',
handler: disconnectHandler
}
]))
- - +

ws-router

This handler can route to requests to one of a nested handler based on routeKey of an WebSocket event from API Gateway (WebSocket).

+

Install

+

To install this middleware you can use NPM:

+
npm install --save @middy/ws-router
+

Options

+
    +
  • routes (array[{routeKey, handler}]) (required): Array of route objects. +
      +
    • routeKey (string) (required): AWS formatted route key. ie $connect, $disconnect, $default
    • +
    • handler (function) (required): Any handler(event, context, {signal}) function
    • +
    +
  • +
+

NOTES:

+
    +
  • Errors should be handled as part of the router middleware stack or the lambdaHandler middleware stack. Handled errors in the later will trigger the after middleware stack of the former.
  • +
  • Shared middlewares, connected to the router middleware stack, can only be run before the lambdaHandler middleware stack.
  • +
+

Sample usage

+
import middy from '@middy/core'
import wsRouterHandler from '@middy/ws-router'
import wsResponseMiddleware from '@middy/ws-response'
import validatorMiddleware from '@middy/validator'

const connectHandler = middy()
.use(validatorMiddleware({eventSchema: {...} }))
.handler((event, context) => {
return 'connected'
})

const disconnectHandler = middy()
.use(validatorMiddleware({eventSchema: {...} }))
.handler((event, context) => {
return 'disconnected'
})

const routes = [
{
routeKey: '$connect',
handler: connectHandler
},
{
routeKey: '$disconnect',
handler: disconnectHandler
}
]

export const handler = middy()
.use(wsResponseMiddleware())
.handler(wsRouterHandler(routes))
\ No newline at end of file diff --git a/docs/upgrade/0-1/index.html b/docs/upgrade/0-1/index.html index ec3168ed2..bacd4d698 100644 --- a/docs/upgrade/0-1/index.html +++ b/docs/upgrade/0-1/index.html @@ -1,18 +1,40 @@ - + - -Upgrade 0.x -> 1.x | Middy.js - - + +Upgrade 0.x -> 1.x | Middy.js + + -
-

Upgrade 0.x -> 1.x

Independent packages structure

Version 1.x of Middy features decoupled independent packages published on npm under the @middy namespace. The core middleware engine has been moved to @middy/core and all the other middlewares are moved into their own packages as well. This allows to only install the features that are needed and to keep your Lambda dependencies small. See the list below to check which packages you need based on the middlewares you use:

Header normalization in http-header-normalizer

In Middy 0.x the httpHeaderNormalizer middleware normalizes HTTP header names into their own canonical format, for instance Sec-WebSocket-Key (notice the casing). In Middy 1.x this behavior has been changed to provide header names in lowercase format (e.g. sec-webSocket-key). This new behavior is more consistent with what Node.js core http package does and what other famous http frameworks like Express or Fastify do, so this is considered a more intuitive approach. +

Upgrade 0.x -> 1.x

aka "The It's Stable Update"

+

Independent packages structure

+

Version 1.x of Middy features decoupled independent packages published on npm under the @middy namespace. The core middleware engine has been moved to @middy/core and all the other middlewares are moved into their own packages as well. This allows to only install the features that are needed and to keep your Lambda dependencies small. See the list below to check which packages you need based on the middlewares you use:

+ +

Header normalization in http-header-normalizer

+

In Middy 0.x the httpHeaderNormalizer middleware normalizes HTTP header names into their own canonical format, for instance Sec-WebSocket-Key (notice the casing). In Middy 1.x this behavior has been changed to provide header names in lowercase format (e.g. sec-webSocket-key). This new behavior is more consistent with what Node.js core http package does and what other famous http frameworks like Express or Fastify do, so this is considered a more intuitive approach. When updating to Middy 1.x, make sure you double check all your references to HTTP headers and switch to the lowercase version to read them. -All the middy core modules have been already updated to support the new format, so you should worry only about your userland code.

Node.js 10 and 12 now supported / Node.js 6 and 8 now dropped

Version 1.x of Middy no longer supports Node.js versions 6.x and 8.x as these versions have been dropped by the AWS Lambda runtime itself and not supported anymore by the Node.js community. You are highly encouraged to move to Node.js 12 or 10, which are the new supported versions in Middy 1.x.

- - +All the middy core modules have been already updated to support the new format, so you should worry only about your userland code.

+

Node.js 10 and 12 now supported / Node.js 6 and 8 now dropped

+

Version 1.x of Middy no longer supports Node.js versions 6.x and 8.x as these versions have been dropped by the AWS Lambda runtime itself and not supported anymore by the Node.js community. You are highly encouraged to move to Node.js 12 or 10, which are the new supported versions in Middy 1.x.

\ No newline at end of file diff --git a/docs/upgrade/1-2/index.html b/docs/upgrade/1-2/index.html index 907f97798..701214471 100644 --- a/docs/upgrade/1-2/index.html +++ b/docs/upgrade/1-2/index.html @@ -1,20 +1,109 @@ - + - -Upgrade 1.x -> 2.x | Middy.js - - + +Upgrade 1.x -> 2.x | Middy.js + + -
-

Upgrade 1.x -> 2.x

Version 2.x of Middy no longer supports Node.js versions 10.x. You are highly encouraged to move to Node.js 14.x, -which support ES6 modules by default (export), optional chaining (?.) and nullish coalescing operator (??) natively.

Core

  • In handler callback(err, response) have been removed for async/await support
    • return response to trigger after middleware stack
    • throw new Error(...) to trigger onError middleware stack
  • In middleware next(err) has been removed for async/await support
    • throw new Error(...) to trigger onError middleware stack
    • return response to short circuit any middleware stack and respond. v1.x currently throws an error when something is returned

Middleware

cache

Deprecated. Too generic and had low usage.

However, you can use the following if needed:

const { createHash } = require('crypto')

module.exports = (opts) => {
const storage = {}
const defaults = {
calculateCacheId: async (event) => createHash('md5').update(JSON.stringify(event)).digest('hex'),
getValue: async (key) => storage[key],
setValue: async (key, value) => {
storage[key] = value
}
}

const options = { ...defaults, ...opts }
let currentCacheKey

const cacheMiddlewareBefore = async (request) => {
const cacheKey = await options.calculateCacheId(request.event)
const response = await options.getValue(cacheKey)
if (response) {
return response
}
request.internal.cacheKey = cacheKey
}

const cacheMiddlewareAfter = async (request) => {
await options.setValue(request.internal.cacheKey, request.response)
}

return {
before: cacheMiddlewareBefore,
after: cacheMiddlewareAfter
}
}

db-manager

Deprecated. Too generic and had low usage. You can check out middy-rds as a -possible alternative or example on building your own replacement.

do-not-wait-for-empty-event-loop

No change

function-shield

Deprecated. Only supported up to Node v10.

http-content-negotiation

No change

http-cors

Added new options to support more headers

  • methods
  • exposeHeaders
  • requestHeaders
  • requestMethods

http-error-handler

Added in support to honour httpError.expose. Errors with statusCode >= 500 are no longer applied to response by default. -Added new option to catch any non-http and statusCode >= 500 errors

  • fallbackMessage

http-event-normalizer

No change

http-header-normalizer

No change

http-json-body-parser

No change

http-multipart-body-parser

No change

http-partial-response

No change

http-response-serializer

No change

http-security-headers

No longer adds statusCode:500 when there is no response.

http-urlencode-body-parser

Remove extended option. Only uses qs as the parser, formally enabled by options {extended: true}.

http-urlencode-path-parser

No change

input-output-logger

  • Now additionally logs response from the onError middleware stack
  • Support for omiting within nested arrays
  • Add in support for replacer to be passed into JSON.stringify()

rds-signer

New middleware to fetch RDS credential used when connecting with IAM roles. This was built into db-manager.

s3-key-normalizer

No change

s3-object-response

New middleware to fetch and respond to S3 Object Get request event.

secrets-manager

Refactored, see documentation

sqs-json-body-parser

No change

sqs-partial-batch-failure

Replaced option sqs with AwsClient and added in more options for control.

ssm

Refactored, see documentation

sts

New middleware to fetch assume role credentials.

validator

Upgraded ajv and it's plugins to support JSON Schema Draft 2020-12 specification. Defaults were change because of this.

  • Plugin ajv-keywords removed from being included by default because it's quite a large package and usually only one keyword is used.
  • Plugin ajv-errors removed from included by default because it conflicts with ajv-i18n when dealing with custom messages for multiple languages

warmup

Deprecated. This was a work round for a missing feature in AWS Lambda. AWS added in the ability to use provisioned concurrency -on 2019-12-03, removing the need for this work around.

However, you can use the following if needed:

middy(lambdaHandler)
.before((request) => {
if (request.event.source === 'serverless-plugin-warmup') {
console.log('Exiting early via warmup Middleware')
return 'warmup'
}
})
- - +

Upgrade 1.x -> 2.x

aka "The async/await Update"

+

Version 2.x of Middy no longer supports Node.js versions 10.x. You are highly encouraged to move to Node.js 14.x, +which support ES6 modules by default (export), optional chaining (?.) and nullish coalescing operator (??) natively.

+

Core

+
    +
  • In handler callback(err, response) have been removed for async/await support +
      +
    • return response to trigger after middleware stack
    • +
    • throw new Error(...) to trigger onError middleware stack
    • +
    +
  • +
  • In middleware next(err) has been removed for async/await support +
      +
    • throw new Error(...) to trigger onError middleware stack
    • +
    • return response to short circuit any middleware stack and respond. v1.x currently throws an error when something is returned
    • +
    +
  • +
+

Middleware

+

cache

+

Deprecated. Too generic and had low usage.

+

However, you can use the following if needed:

+
const { createHash } = require('crypto')

module.exports = (opts) => {
const storage = {}
const defaults = {
calculateCacheId: async (event) =>
createHash('md5').update(JSON.stringify(event)).digest('hex'),
getValue: async (key) => storage[key],
setValue: async (key, value) => {
storage[key] = value
}
}

const options = { ...defaults, ...opts }
let currentCacheKey

const cacheMiddlewareBefore = async (request) => {
const cacheKey = await options.calculateCacheId(request.event)
const response = await options.getValue(cacheKey)
if (response) {
return response
}
request.internal.cacheKey = cacheKey
}

const cacheMiddlewareAfter = async (request) => {
await options.setValue(request.internal.cacheKey, request.response)
}

return {
before: cacheMiddlewareBefore,
after: cacheMiddlewareAfter
}
}
+

db-manager

+

Deprecated. Too generic and had low usage. You can check out middy-rds as a +possible alternative or example on building your own replacement.

+

do-not-wait-for-empty-event-loop

+

No change

+

function-shield

+

Deprecated. Only supported up to Node v10.

+

http-content-negotiation

+

No change

+

http-cors

+

Added new options to support more headers

+
    +
  • methods
  • +
  • exposeHeaders
  • +
  • requestHeaders
  • +
  • requestMethods
  • +
+

http-error-handler

+

Added in support to honour httpError.expose. Errors with statusCode >= 500 are no longer applied to response by default. +Added new option to catch any non-http and statusCode >= 500 errors

+
    +
  • fallbackMessage
  • +
+

http-event-normalizer

+

No change

+

http-header-normalizer

+

No change

+

http-json-body-parser

+

No change

+

http-multipart-body-parser

+

No change

+

http-partial-response

+

No change

+

http-response-serializer

+

No change

+

http-security-headers

+

No longer adds statusCode:500 when there is no response.

+

http-urlencode-body-parser

+

Remove extended option. Only uses qs as the parser, formally enabled by options {extended: true}.

+

http-urlencode-path-parser

+

No change

+

input-output-logger

+
    +
  • Now additionally logs response from the onError middleware stack
  • +
  • Support for omiting within nested arrays
  • +
  • Add in support for replacer to be passed into JSON.stringify()
  • +
+

rds-signer

+

New middleware to fetch RDS credential used when connecting with IAM roles. This was built into db-manager.

+

s3-key-normalizer

+

No change

+

s3-object-response

+

New middleware to fetch and respond to S3 Object Get request event.

+

secrets-manager

+

Refactored, see documentation

+

sqs-json-body-parser

+

No change

+

sqs-partial-batch-failure

+

Replaced option sqs with AwsClient and added in more options for control.

+

ssm

+

Refactored, see documentation

+

sts

+

New middleware to fetch assume role credentials.

+

validator

+

Upgraded ajv and it's plugins to support JSON Schema Draft 2020-12 specification. Defaults were change because of this.

+
    +
  • Plugin ajv-keywords removed from being included by default because it's quite a large package and usually only one keyword is used.
  • +
  • Plugin ajv-errors removed from included by default because it conflicts with ajv-i18n when dealing with custom messages for multiple languages
  • +
+

warmup

+

Deprecated. This was a work round for a missing feature in AWS Lambda. AWS added in the ability to use provisioned concurrency +on 2019-12-03, removing the need for this work around.

+

However, you can use the following if needed:

+
middy(lambdaHandler).before((request) => {
if (request.event.source === 'serverless-plugin-warmup') {
console.log('Exiting early via warmup Middleware')
return 'warmup'
}
})
\ No newline at end of file diff --git a/docs/upgrade/2-3/index.html b/docs/upgrade/2-3/index.html index 1badcd8ec..14663418d 100644 --- a/docs/upgrade/2-3/index.html +++ b/docs/upgrade/2-3/index.html @@ -1,17 +1,177 @@ - + - -Upgrade 2.x -> 3.x | Middy.js - - + +Upgrade 2.x -> 3.x | Middy.js + + -
-

Upgrade 2.x -> 3.x

Version 3.x of Middy no longer supports Node.js versions 12.x. You are highly encouraged to move to Node.js 16.x. -With the Node.js version change all packages are now ECMAScript Modules along side CommonJS Modules.

Notable changes

  • New WebSocket middlewares
  • HTTP & WebSocket Routers!
  • Better error handling
  • Timeout error handling
  • Errors now use { cause } for better context

Core

  • onError middleware stack order reversed to match after [Breaking Change]
    • If you only use @middy/* middlewares no change should be required
    • This change has trickle down effects on middlewares with onError (see below for details)
    • If you're handling errors yourself here are some things to review:
      • Attach near the end so it is triggered first (likely already done)
      • Remove return response, this will short circuit the response and block later middleware from modifying the response
  • lambdaHandler now passes {signal} from AbortController to allow for ending lambda early to handle timeout errors
  • plugin argument now supports:
    • internal: Allow the use of new Proxy() for smarter triggering in advanced use cases.
    • timeoutEarlyInMillis: When before lambda timeout to trigger early exit. Default 5
    • timeoutEarlyResponse: Function to throw a custom error or return a pre-set value. Default () => { throw new Error('Timeout') }
  • Added .handler() method to allow easier understanding of the execution cycle
  • Deprecate applyMiddleware() and __middlewares [Breaking Change]

Util

  • getInternal error now includes cause set to an array of Errors
  • Catch when X-Ray is applied outside of handler invocation scope
  • normalizeHttpResponse now takes request and mutates response [Breaking Change]
  • getCache will return {} instead of undefined when not found [Breaking Change]

Middleware

cloudwatch-metrics

No change

do-not-wait-for-empty-event-loop

No change

error-logger

No change

event-normalizer

  • Add support for all missing AWS events
  • Refactored for performance improvements

http-content-encoding

  • [New] Applies brotli, gzip, ands deflate compression to response body

http-content-negotiation

  • Add in defaultToFirstLanguage to allow fallback to a safe language to use

http-cors

  • onError will not modify response unless error has been handled
  • Small refactor for performance improvements

http-error-handler

  • No longer returns the response to short circuit the middleware stack to allow for easier use now that onError is called in reverse order.

http-event-normalizer

  • Option payloadFormatVersion no longer needed
  • Will now throw error if not an http event [Breaking Change]

http-header-normalizer

  • Modified so that all headers are set to lowercase when canonical:false [Breaking Change]

http-json-body-parser

No change

http-multipart-body-parser

  • Change default charset from binary/latin1 to utf-8. [Breaking Change]

http-partial-response

No change

http-response-serializer

  • Renamed default option to defaultContentType to improve maintainability [Breaking Change]
  • onError will not modify response unless error has been handled

http-router

  • [New] Allow re-routing of events to different handlers

http-security-headers

  • onError will not modify response unless error has been handled
  • Complete rewrite of options and inclusion of new HTML only headers [Breaking Change]

http-urlencode-body-parser

No change

http-urlencode-path-parser

No change

input-output-logger

  • Add in new option to mask instead of omit a path.

rds-signer

  • Deprecated setToEnv option due to possible security misuse [Breaking Change]

s3-key-normalizer

s3-object-response

No change

secrets-manager

  • Deprecated setToEnv option due to possible security misuse [Breaking Change]

service-discovery

  • [New] Allow easy access to discoveryInstances

sqs-json-body-parser

sqs-partial-batch-failure

ssm

  • Deprecated setToEnv option [Breaking Change]

sts

No change

validator

  • Change where errors are stored, from request.error.details to request.error.cause [Breaking Change]
  • Add new options eventSchema, contextSchema, responseSchema. inputSchema and outputSchema become aliases.

warmup

No change

ws-json-body-parser

  • [New] Parse body from WebSocket event

ws-response

  • [New] Post responses to WebSocket API Gateway

ws-router

  • [New] Allow re-routing of events to different handlers

Notes

If you still need setToEnv you can do something like so:

middy(lambdaHandler)
.use(/*...*/)
.before(async (request) => {
const values = await getInternal(['NODE_ENV'], request)
process.env.NODE_ENV = values.NODE_ENV
})
- - +

Upgrade 2.x -> 3.x

aka "The onError Reversal Update"

+

Version 3.x of Middy no longer supports Node.js versions 12.x. You are highly encouraged to move to Node.js 16.x. +With the Node.js version change all packages are now ECMAScript Modules along side CommonJS Modules.

+

Notable changes

+
    +
  • New WebSocket middlewares
  • +
  • HTTP & WebSocket Routers!
  • +
  • Better error handling
  • +
  • Timeout error handling
  • +
  • Errors now use { cause } for better context
  • +
+

Core

+
    +
  • onError middleware stack order reversed to match after [Breaking Change] +
      +
    • If you only use @middy/* middlewares no change should be required
    • +
    • This change has trickle down effects on middlewares with onError (see below for details)
    • +
    • If you're handling errors yourself here are some things to review: +
        +
      • Attach near the end so it is triggered first (likely already done)
      • +
      • Remove return response, this will short circuit the response and block later middleware from modifying the response
      • +
      +
    • +
    +
  • +
  • lambdaHandler now passes {signal} from AbortController to allow for ending lambda early to handle timeout errors
  • +
  • plugin argument now supports: +
      +
    • internal: Allow the use of new Proxy() for smarter triggering in advanced use cases.
    • +
    • timeoutEarlyInMillis: When before lambda timeout to trigger early exit. Default 5
    • +
    • timeoutEarlyResponse: Function to throw a custom error or return a pre-set value. Default () => { throw new Error('Timeout') }
    • +
    +
  • +
  • Added .handler() method to allow easier understanding of the execution cycle
  • +
  • Deprecate applyMiddleware() and __middlewares [Breaking Change]
  • +
+

Util

+
    +
  • getInternal error now includes cause set to an array of Errors
  • +
  • Catch when X-Ray is applied outside of handler invocation scope
  • +
  • normalizeHttpResponse now takes request and mutates response [Breaking Change]
  • +
  • getCache will return {} instead of undefined when not found [Breaking Change]
  • +
+

Middleware

+

cloudwatch-metrics

+

No change

+

do-not-wait-for-empty-event-loop

+

No change

+

error-logger

+

No change

+

event-normalizer

+
    +
  • Add support for all missing AWS events
  • +
  • Refactored for performance improvements
  • +
+

http-content-encoding

+
    +
  • [New] Applies brotli, gzip, ands deflate compression to response body
  • +
+

http-content-negotiation

+
    +
  • Add in defaultToFirstLanguage to allow fallback to a safe language to use
  • +
+

http-cors

+
    +
  • onError will not modify response unless error has been handled
  • +
  • Small refactor for performance improvements
  • +
+

http-error-handler

+
    +
  • No longer returns the response to short circuit the middleware stack to allow for easier use now that onError is called in reverse order.
  • +
+

http-event-normalizer

+
    +
  • Option payloadFormatVersion no longer needed
  • +
  • Will now throw error if not an http event [Breaking Change]
  • +
+

http-header-normalizer

+
    +
  • Modified so that all headers are set to lowercase when canonical:false [Breaking Change]
  • +
+

http-json-body-parser

+

No change

+

http-multipart-body-parser

+
    +
  • Change default charset from binary/latin1 to utf-8. [Breaking Change]
  • +
+

http-partial-response

+

No change

+

http-response-serializer

+
    +
  • Renamed default option to defaultContentType to improve maintainability [Breaking Change]
  • +
  • onError will not modify response unless error has been handled
  • +
+

http-router

+
    +
  • [New] Allow re-routing of events to different handlers
  • +
+

http-security-headers

+
    +
  • onError will not modify response unless error has been handled
  • +
  • Complete rewrite of options and inclusion of new HTML only headers [Breaking Change]
  • +
+

http-urlencode-body-parser

+

No change

+

http-urlencode-path-parser

+

No change

+

input-output-logger

+
    +
  • Add in new option to mask instead of omit a path.
  • +
+

rds-signer

+
    +
  • Deprecated setToEnv option due to possible security misuse [Breaking Change]
  • +
+

s3-key-normalizer

+ +

s3-object-response

+

No change

+

secrets-manager

+
    +
  • Deprecated setToEnv option due to possible security misuse [Breaking Change]
  • +
+

service-discovery

+
    +
  • [New] Allow easy access to discoveryInstances
  • +
+

sqs-json-body-parser

+ +

sqs-partial-batch-failure

+ +

ssm

+
    +
  • Deprecated setToEnv option [Breaking Change]
  • +
+

sts

+

No change

+

validator

+
    +
  • Change where errors are stored, from request.error.details to request.error.cause [Breaking Change]
  • +
  • Add new options eventSchema, contextSchema, responseSchema. inputSchema and outputSchema become aliases.
  • +
+

warmup

+

No change

+

ws-json-body-parser

+
    +
  • [New] Parse body from WebSocket event
  • +
+

ws-response

+
    +
  • [New] Post responses to WebSocket API Gateway
  • +
+

ws-router

+
    +
  • [New] Allow re-routing of events to different handlers
  • +
+

Notes

+

If you still need setToEnv you can do something like so:

+
middy(lambdaHandler)
.use(/*...*/)
.before(async (request) => {
const values = await getInternal(['NODE_ENV'], request)
process.env.NODE_ENV = values.NODE_ENV
})
\ No newline at end of file diff --git a/docs/upgrade/3-4/index.html b/docs/upgrade/3-4/index.html index 46d12f469..410b8c837 100644 --- a/docs/upgrade/3-4/index.html +++ b/docs/upgrade/3-4/index.html @@ -1,16 +1,128 @@ - + - -Upgrade 3.x -> 4.x | Middy.js - - + +Upgrade 3.x -> 4.x | Middy.js + + -
-

Upgrade 3.x -> 4.x

Version 4.x of Middy no longer supports Node.js versions 14.x. You are highly encouraged to move to Node.js 18.x.

Middy now uses AWS SDK v3 by default.

Notable changes

Core

  • Remove polyfill for AbortControler
  • Remove polyfill for timers/promises

Util

  • normalizeResponse now will set the statusCode to 200 when casting to a new object or 500 when missing Breaking Change

Middleware

cloudwatch-metrics

No change

do-not-wait-for-empty-event-loop

No change

error-logger

No change

event-normalizer

No change

http-content-encoding

  • Removed body as stream support, will be brought back as a new middleware in a future middleware Breaking Change

http-content-negotiation

No change

http-cors

No change

http-error-handler

No change

http-event-normalizer

No change

http-header-normalizer

No change

http-json-body-parser

  • Deprecate event.rawBody Breaking Change

You can add in an inline middleware as a workaround.

  .before((request) => {
request.event.rawBody = request.event.body
})
.use(httpJSONBodyParserMiddleware())

See https://github.com/middyjs/middy/issues/945 for discussion and reasoning.

http-multipart-body-parser

  • Add new option to set charset

http-partial-response

No change

http-response-serializer

No change

http-router

No change

http-security-headers

No change

http-urlencode-body-parser

  • Now throws 422 when unable to parse JSON Breaking Change

http-urlencode-path-parser

No change

input-output-logger

No change

rds-signer

  • Updated to use AWS SDK v3 Breaking Change

s3-object-response

  • Updated to use AWS SDK v3 Breaking Change

secrets-manager

  • Updated to use AWS SDK v3 Breaking Change

service-discovery

  • Updated to use AWS SDK v3 Breaking Change

sqs-partial-batch-failure

No change

ssm

  • Updated to use AWS SDK v3 Breaking Change

sts

  • Updated to use AWS SDK v3 Breaking Change

validator

We've put a lot of work into making this middleware bundle smaller and faster by default, while allowing for opting into more functionality.

  • Deprecate inputSchema and outputSchema options Breaking Change
  • Deprecated i18nEnabled Breaking Change
  • Must now pass in defaultLanguage localizations to languages Breaking Change
  • Added in ajv-error support
  • Pulled transpileSchema out of middleware to allow for tree shaking and pre-compile option Breaking Change
  • Added in transpileLocale to allow for custom internationalization of error messages including errorMessage

How to update use of middleware

import validatorMiddleware from '@middy/validator'
// 1. Import transpileSchema
import { transpileSchema } from '@middy/validator/transpile'

export const handler = middy(...)
.use(validatorMiddleware({
// 2. Wrap schemas with transpileSchema
eventSchema: transpileSchema(eventJsonSchema)
}))
import validatorMiddleware from '@middy/validator'
// 1. Import localizations
import { en, fr } from 'ajv-ftl-i18n'

export const handler = middy(...)
.use(validatorMiddleware({
eventSchema: transpileSchema(eventJsonSchema),
// 2. Add localizations in
langauges: { en, fr }
}))

warmup

No change

ws-json-body-parser

No change

ws-response

  • Updated to use AWS SDK v3 Breaking Change

ws-router

No change

Notes

None

- - +

Upgrade 3.x -> 4.x

aka "The AWS SDK v3 Update"

+

Version 4.x of Middy no longer supports Node.js versions 14.x. You are highly encouraged to move to Node.js 18.x.

+

Notable changes

+
    +
  • Middy now uses AWS SDK v3 by default.
  • +
+

Core

+
    +
  • Remove polyfill for AbortControler
  • +
  • Remove polyfill for timers/promises
  • +
+

Util

+
    +
  • normalizeResponse now will set the statusCode to 200 when casting to a new object or 500 when missing Breaking Change
  • +
+

Middleware

+

cloudwatch-metrics

+

No change

+

do-not-wait-for-empty-event-loop

+

No change

+

error-logger

+

No change

+

event-normalizer

+

No change

+

http-content-encoding

+
    +
  • Removed body as stream support, will be brought back as a new middleware in a future middleware Breaking Change
  • +
+

http-content-negotiation

+

No change

+

http-cors

+

No change

+

http-error-handler

+

No change

+

http-event-normalizer

+

No change

+

http-header-normalizer

+

No change

+

http-json-body-parser

+
    +
  • Deprecate event.rawBody Breaking Change
  • +
+

You can add in an inline middleware as a workaround.

+
  .before((request) => {
request.event.rawBody = request.event.body
})
.use(httpJSONBodyParserMiddleware())
+

See https://github.com/middyjs/middy/issues/945 for discussion and reasoning.

+

http-multipart-body-parser

+
    +
  • Add new option to set charset
  • +
+

http-partial-response

+

No change

+

http-response-serializer

+

No change

+

http-router

+

No change

+

http-security-headers

+

No change

+

http-urlencode-body-parser

+
    +
  • Now throws 422 when unable to parse JSON Breaking Change
  • +
+

http-urlencode-path-parser

+

No change

+

input-output-logger

+

No change

+

rds-signer

+
    +
  • Updated to use AWS SDK v3 Breaking Change
  • +
+

s3-object-response

+
    +
  • Updated to use AWS SDK v3 Breaking Change
  • +
+

secrets-manager

+
    +
  • Updated to use AWS SDK v3 Breaking Change
  • +
+

service-discovery

+
    +
  • Updated to use AWS SDK v3 Breaking Change
  • +
+

sqs-partial-batch-failure

+

No change

+

ssm

+
    +
  • Updated to use AWS SDK v3 Breaking Change
  • +
+

sts

+
    +
  • Updated to use AWS SDK v3 Breaking Change
  • +
+

validator

+

We've put a lot of work into making this middleware bundle smaller and faster by default, while allowing for opting into more functionality.

+
    +
  • Deprecate inputSchema and outputSchema options Breaking Change
  • +
  • Deprecated i18nEnabled Breaking Change
  • +
  • Must now pass in defaultLanguage localizations to languages Breaking Change
  • +
  • Added in ajv-error support
  • +
  • Pulled transpileSchema out of middleware to allow for tree shaking and pre-compile option Breaking Change
  • +
  • Added in transpileLocale to allow for custom internationalization of error messages including errorMessage
  • +
+

How to update use of middleware

+
import validatorMiddleware from '@middy/validator'
// 1. Import transpileSchema
import { transpileSchema } from '@middy/validator/transpile'

export const handler = middy(...)
.use(validatorMiddleware({
// 2. Wrap schemas with transpileSchema
eventSchema: transpileSchema(eventJsonSchema)
}))
+
import validatorMiddleware from '@middy/validator'
// 1. Import localizations
import { en, fr } from 'ajv-ftl-i18n'

export const handler = middy(...)
.use(validatorMiddleware({
eventSchema: transpileSchema(eventJsonSchema),
// 2. Add localizations in
langauges: { en, fr }
}))
+

warmup

+

No change

+

ws-json-body-parser

+

No change

+

ws-response

+
    +
  • Updated to use AWS SDK v3 Breaking Change
  • +
+

ws-router

+

No change

+

Notes

+

None

\ No newline at end of file diff --git a/docs/upgrade/4-5/index.html b/docs/upgrade/4-5/index.html new file mode 100644 index 000000000..281cb9b19 --- /dev/null +++ b/docs/upgrade/4-5/index.html @@ -0,0 +1,123 @@ + + + + + +Upgrade 4.x -> 5.x | Middy.js + + + + +

Upgrade 4.x -> 5.x

aka "The ESM Only Update"

+

Version 5.x of Middy no longer supports Node.js versions 16.x. You are highly encouraged to move to Node.js 20.x.

+

Notable changes

+
    +
  • Middy no longer support Common JS modules.
  • +
  • Update to use TypeScript v5 along with a refactor to most packages
  • +
  • Update all errors to be consistent new Error('message', { cause: { package:'@middy/***', data:*** } })
  • +
  • If using multiple http-*-body-parsers on the same endpoint you'll need to set disableContentTypeError:true
  • +
+

Core

+
    +
  • Updated plugin.timeoutEarlyResponse(...) to throw new error with name TimeoutError to match new AbortSignal.timeout().
  • +
+

Util

+

No change

+

Middleware

+

appconfig

+
    +
  • Update SDK to use newer appconfigdata client Breaking Change
  • +
+

cloudwatch-metrics

+

No change

+

do-not-wait-for-empty-event-loop

+

No change

+

error-logger

+
    +
  • Change logger to have request passed in instead of request.error by default to allow access request.context and request.event Breaking Change
  • +
+

event-normalizer

+

No change

+

http-content-encoding

+
    +
  • Use preferredLanguage from context instead of event (See http-content-negotiation). Breaking Change
  • +
+

http-content-negotiation

+
    +
  • Moved preferred* from event to context Breaking Change
  • +
+

http-cors

+

No change

+

http-error-handler

+
    +
  • Will return 500 for all unhandled errors thrown Breaking Change
  • +
+

http-event-normalizer

+
    +
  • Will no longer throw an error when HTTP type can't be determined Breaking Change
  • +
+

http-header-normalizer

+

No change

+

http-json-body-parser

+
    +
  • Change disableContentTypeError to false by default Breaking Change
  • +
+

http-multipart-body-parser

+
    +
  • Change disableContentTypeError to false by default Breaking Change
  • +
+

http-partial-response

+

No change

+

http-response-serializer

+

No change

+

http-router

+

No change

+

http-security-headers

+

No change

+

http-urlencode-body-parser

+
    +
  • Change disableContentTypeError to false by default Breaking Change
  • +
+

http-urlencode-path-parser

+

No change

+

input-output-logger

+
    +
  • Updated to use structuredClone
  • +
+

rds-signer

+

No change

+

s3-object-response

+
    +
  • Refactored to use fetch over https. context now returns s3ObjectFetch to allow more control over how it's used. Breaking Change
  • +
+

secrets-manager

+

No change

+

service-discovery

+

No change

+

sqs-partial-batch-failure

+
    +
  • Will now catch unhandled errors and set all messages to failed, preventing infinite loops Breaking Change
  • +
+

ssm

+

No change

+

sts

+

No change

+

validator

+
    +
  • Use preferredLanguage from context instead of event (See http-content-negotiation).
  • +
  • ajv-cmd is no longer a required dependency, if you're pre-transpiling you'll need to run npm i ajv-cmd.
  • +
+

warmup

+

No change

+

ws-json-body-parser

+
    +
  • Remove inclusion of rawBody from event Breaking Change
  • +
+

ws-response

+

No change

+

ws-router

+

No change

+

Notes

+

None

+ + \ No newline at end of file diff --git a/docs/writing-middlewares/configurable-middlewares/index.html b/docs/writing-middlewares/configurable-middlewares/index.html index ceefda2a1..0ee51ca89 100644 --- a/docs/writing-middlewares/configurable-middlewares/index.html +++ b/docs/writing-middlewares/configurable-middlewares/index.html @@ -1,18 +1,19 @@ - + - -Configurable Middlewares | Middy.js - - + +Configurable Middlewares | Middy.js + + -
-

Configurable Middlewares

In order to make middlewares configurable, they are generally exported as a function that accepts +

Configurable Middlewares

In order to make middlewares configurable, they are generally exported as a function that accepts a configuration object. This function should then return the middleware object with before, -after, and onError as keys.

E.g.

// customMiddleware.js

const defaults = {}

const customMiddleware = (opts) => {
const options = { ...defaults, ...opts }

const customMiddlewareBefore = async (request) => {
const { event, context } = request
// ...
}

const customMiddlewareAfter = async (request) => {
const { response } = request
// ...
request.response = response
}

const customMiddlewareOnError = async (request) => {
if (request.response === undefined) return
await customMiddlewareAfter(request)
}

return {
before: customMiddlewareBefore,
after: customMiddlewareAfter,
onError: customMiddlewareOnError
}
}

export default customMiddleware

With this convention in mind, using a middleware will always look like the following example:

import middy  from '@middy/core'
import customMiddleware from 'customMiddleware.js'

const lambdaHandler = async (event, context) => {
// do stuff
return {}
}

export const handler = middy(lambdaHandler)
.use(customMiddleware({
option1: 'foo',
option2: 'bar'
}))
- - +after, and onError as keys.

+

E.g.

+
// customMiddleware.js

const defaults = {}

const customMiddleware = (opts) => {
const options = { ...defaults, ...opts }

const customMiddlewareBefore = async (request) => {
const { event, context } = request
// ...
}

const customMiddlewareAfter = async (request) => {
const { response } = request
// ...
request.response = response
}

const customMiddlewareOnError = async (request) => {
if (request.response === undefined) return
await customMiddlewareAfter(request)
}

return {
before: customMiddlewareBefore,
after: customMiddlewareAfter,
onError: customMiddlewareOnError
}
}

export default customMiddleware
+

With this convention in mind, using a middleware will always look like the following example:

+
import middy from '@middy/core'
import customMiddleware from 'customMiddleware.js'

const lambdaHandler = async (event, context) => {
// do stuff
return {}
}

export const handler = middy()
.use(
customMiddleware({
option1: 'foo',
option2: 'bar'
})
)
.handler(lambdaHandler)
\ No newline at end of file diff --git a/docs/writing-middlewares/inline-middlewares/index.html b/docs/writing-middlewares/inline-middlewares/index.html index c08ae798c..39680dbff 100644 --- a/docs/writing-middlewares/inline-middlewares/index.html +++ b/docs/writing-middlewares/inline-middlewares/index.html @@ -1,20 +1,21 @@ - + - -Inline Middlewares | Middy.js - - + +Inline Middlewares | Middy.js + + -
-

Inline Middlewares

Sometimes you want to create handlers that serve a very small need and that are not +

Inline Middlewares

Sometimes you want to create handlers that serve a very small need and that are not necessarily re-usable. In such cases, you probably will need to hook only into one of -the different phases (before, after or onError).

In these cases you can use inline middlewares which are shortcut functions to hook -logic into Middy's control flow.

Let's see how inline middlewares work with a simple example:

import middy from '@middy/core'

export const handler = middy((event, context) => {
// do stuff
})
.before(async (request) => {
// do something in the before phase
})
.after(async (request) => {
// do something in the after phase
})
.onError(async (request) => {
// do something in the on error phase
})

As you can see above, a middy instance also exposes the before, after and onError -methods to allow you to quickly hook in simple inline middlewares.

- - +the different phases (before, after or onError).

+

In these cases you can use inline middlewares which are shortcut functions to hook +logic into Middy's control flow.

+

Let's see how inline middlewares work with a simple example:

+
import middy from '@middy/core'

const lambdaHandler = (event, context) => {
// do stuff
}

export const handler = middy()
.before(async (request) => {
// do something in the before phase
})
.after(async (request) => {
// do something in the after phase
})
.onError(async (request) => {
// do something in the on error phase
})
.handler(lambdaHandler)
+

As you can see above, a middy instance also exposes the before, after and onError +methods to allow you to quickly hook in simple inline middlewares.

\ No newline at end of file diff --git a/docs/writing-middlewares/internal-storage/index.html b/docs/writing-middlewares/internal-storage/index.html index 6f41b854c..ee60a02a0 100644 --- a/docs/writing-middlewares/internal-storage/index.html +++ b/docs/writing-middlewares/internal-storage/index.html @@ -1,20 +1,19 @@ - + - -Internal Storage | Middy.js - - + +Internal Storage | Middy.js + + -
-

Internal Storage

The handler also contains an internal object that can be used to store values securely between middlewares that +

Internal Storage

The handler also contains an internal object that can be used to store values securely between middlewares that expires when the event ends. To compliment this there is also a cache where middleware can store request promises. During before these promises can be stored into internal then resolved only when needed. This pattern is useful to take advantage of the async nature of node especially when you have multiple middleware that require reaching out the -external APIs.

Here is a middleware boilerplate using this pattern:

import { canPrefetch, getInternal, processCache } from '@middy/util'

const defaults = {
fetchData: {}, // { internalKey: params }
disablePrefetch: false,
cacheKey: 'custom',
cacheExpiry: -1,
setToContext: false
}

const customMiddleware = (opts = {}) => {
const options = { ...defaults, ...opts }

const fetch = () => {
const values = {}
// Start your custom fetch
for (const internalKey of Object.keys(options.fetchData)) {
values[internalKey] = fetch('...', options.fetchData[internalKey]).then(
(res) => res.text()
)
}
// End your custom fetch
return values
}

if (canPrefetch(options)) {
processCache(options, fetch)
}

const customMiddlewareBefore = async (request) => {
const { value } = processCache(options, fetch, request)

Object.assign(request.internal, value)
if (options.setToContext) {
const data = await getInternal(Object.keys(options.fetchData), request)
Object.assign(request.context, data)
}
}

return {
before: customMiddlewareBefore
}
}

export default customMiddleware
- - +external APIs.

+

Here is a middleware boilerplate using this pattern:

+
import { canPrefetch, getInternal, processCache } from '@middy/util'

const defaults = {
fetchData: {}, // { internalKey: params }
disablePrefetch: false,
cacheKey: 'custom',
cacheExpiry: -1,
setToContext: false
}

const customMiddleware = (opts = {}) => {
const options = { ...defaults, ...opts }

const fetch = () => {
const values = {}
// Start your custom fetch
for (const internalKey of Object.keys(options.fetchData)) {
values[internalKey] = fetch('...', options.fetchData[internalKey]).then(
(res) => res.text()
)
}
// End your custom fetch
return values
}

if (canPrefetch(options)) {
processCache(options, fetch)
}

const customMiddlewareBefore = async (request) => {
const { value } = processCache(options, fetch, request)

Object.assign(request.internal, value)
if (options.setToContext) {
const data = await getInternal(Object.keys(options.fetchData), request)
Object.assign(request.context, data)
}
}

return {
before: customMiddlewareBefore
}
}

export default customMiddleware
\ No newline at end of file diff --git a/docs/writing-middlewares/intro/index.html b/docs/writing-middlewares/intro/index.html index 047693fb1..f537a3e3e 100644 --- a/docs/writing-middlewares/intro/index.html +++ b/docs/writing-middlewares/intro/index.html @@ -1,18 +1,26 @@ - + - -Custom Middlewares | Middy.js - - + +Custom Middlewares | Middy.js + + -
-

Custom Middlewares

A middleware is an object that should contain at least 1 of 3 possible keys:

  1. before: a function that is executed in the before phase
  2. after: a function that is executed in the after phase
  3. onError: a function that is executed in case of errors

before, after and onError functions need to have the following signature:

const defaults = {
// ...
}

const nameMiddleware = (opts = {}) => {
const options = { ...defaults, ...opts }

const nameMiddlewareBefore = async (request) => {
// ...
}

const nameMiddlewareAfter = async (request) => {
// ...
}

const nameMiddlewareOnError = async (request) => {
// ...
}

return {
before: nameMiddlewareBefore,
after: nameMiddlewareAfter,
onError: nameMiddlewareOnError
}
}

export default nameMiddleware

Where:

\ No newline at end of file diff --git a/docs/writing-middlewares/more-examples/index.html b/docs/writing-middlewares/more-examples/index.html index 8fe27ab72..4b8c25dfa 100644 --- a/docs/writing-middlewares/more-examples/index.html +++ b/docs/writing-middlewares/more-examples/index.html @@ -1,16 +1,13 @@ - + - -More Examples | Middy.js - - + +More Examples | Middy.js + + - - - + \ No newline at end of file diff --git a/docs/writing-middlewares/timeouts/index.html b/docs/writing-middlewares/timeouts/index.html index bc3c05fb1..6f33d43c4 100644 --- a/docs/writing-middlewares/timeouts/index.html +++ b/docs/writing-middlewares/timeouts/index.html @@ -1,16 +1,15 @@ - + - -Handle Timeouts | Middy.js - - + +Handle Timeouts | Middy.js + + -
-

Handle Timeouts

When a lambda times out it throws an error that cannot be caught by middy. To work around this middy maintains an AbortController that can be signalled early to allow time to clean up and log the error properly.

You can set timeoutEarlyInMillis to 0 to disable this functionality. If you want to override during testing, mock the lambda context to set getRemainingTimeInMillis to a function that returns a very large value (e.g. () => 99999).

import middy from '@middy/core'

const lambdaHandler = (event, context, {signal}) => {
signal.onabort = () => {
// cancel events
}
// ...
}

export const handler = middy(lambdaHandler, {
timeoutEarlyInMillis: 50,
timeoutEarlyResponse: () => {
return {
statusCode: 408
}
}
})
- - +

Handle Timeouts

When a lambda times out it throws an error that cannot be caught by middy. To work around this middy maintains an AbortController that can be signalled early to allow time to clean up and log the error properly.

+

You can set timeoutEarlyInMillis to 0 to disable this functionality. If you want to override during testing, mock the lambda context to set getRemainingTimeInMillis to a function that returns a very large value (e.g. () => 99999).

+
import middy from '@middy/core'

const lambdaHandler = (event, context, { signal }) => {
signal.onabort = () => {
// cancel events
}
// ...
}

export const handler = middy({
timeoutEarlyInMillis: 50,
timeoutEarlyResponse: () => {
return {
statusCode: 408
}
}
}).handler(lambdaHandler)
\ No newline at end of file diff --git a/docs/writing-middlewares/with-typescript/index.html b/docs/writing-middlewares/with-typescript/index.html index c8a2e7a23..a8514bb5d 100644 --- a/docs/writing-middlewares/with-typescript/index.html +++ b/docs/writing-middlewares/with-typescript/index.html @@ -1,17 +1,17 @@ - + - -With TypeScript | Middy.js - - + +With TypeScript | Middy.js + + -
-

With TypeScript

here's an example of how you can write a custom middleware for a Lambda receiving events from API Gateway:

import middy from '@middy/core'
import { APIGatewayProxyEvent, APIGatewayProxyResult } from 'aws-lambda'

const middleware = (): middy.MiddlewareObj<APIGatewayProxyEvent, APIGatewayProxyResult> => {
const before: middy.MiddlewareFn<APIGatewayProxyEvent, APIGatewayProxyResult> = async (
request
): Promise<APIGatewayProxyResult> => {
// Your middleware logic
}

const after: middy.MiddlewareFn<APIGatewayProxyEvent, APIGatewayProxyResult> = async (
request
): Promise<void> => {
// Your middleware logic
}

return {
before,
after
}
}

export default middleware

Note: The Middy core team does not use TypeScript often and we can't certainly claim that we are TypeScript experts. We tried our best to come up -with type definitions that should give TypeScript users a good experience. There is certainly room for improvement, so we would be more than happy to receive contributions 😊

See devDependencies for each middleware for list of dependencies that may be required with transpiling TypeScript.

- - +

With TypeScript

here's an example of how you can write a custom middleware for a Lambda receiving events from API Gateway:

+
import middy from '@middy/core'
import { APIGatewayProxyEvent, APIGatewayProxyResult } from 'aws-lambda'

const middleware = (): middy.MiddlewareObj<APIGatewayProxyEvent, APIGatewayProxyResult> => {
const before: middy.MiddlewareFn<APIGatewayProxyEvent, APIGatewayProxyResult> = async (
request
): Promise<APIGatewayProxyResult> => {
// Your middleware logic
}

const after: middy.MiddlewareFn<APIGatewayProxyEvent, APIGatewayProxyResult> = async (
request
): Promise<void> => {
// Your middleware logic
}

return {
before,
after
}
}

export default middleware
+

Note: The Middy core team does not use TypeScript often and we can't certainly claim that we are TypeScript experts. We tried our best to come up +with type definitions that should give TypeScript users a good experience. There is certainly room for improvement, so we would be more than happy to receive contributions 😊

+

See devDependencies for each middleware for list of dependencies that may be required with transpiling TypeScript.

\ No newline at end of file diff --git a/img/logo-square/aporia-ai.png b/img/logo-square/aporia-ai.png deleted file mode 100644 index d2261563355ee2052650a622198ae4e29f8ec55b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20065 zcmV)cK&ZcoP)DMO5bsu(bcR%m`zOw@u%wPr!32*^rk`_q;OeAX|O%fo%lMl(sv6GW1HcfxZpA<`! z9Vt$7q}b=kB4J7*Wr-0*5F|hlI|$4Sc3`%5dzS9X>7}aft$T0v^A5q(nWdkquBuyA zzq(s3U7fr8fnue?Nd;{{K%fEX|CmIAnZ>#0a1PD^4~Ph9KmezwSg~eGTa=Ndk2F(d zG$Quoi=-UET73V$Ohb}KA+>*4jxY@Gt66Nq01Cv_YDjBG5}hOwu^r0p9Y$PCW%asw z4U4+Ml?qoTK6~2r!%x@urEI^}5(mvRqN?u*6nKnpt8lZsN5D1E)2@W{|{Rwhu!DU&6`DkOH( z@y6J1&Ub7}u!j014oOA8N7kOkq!0~rF-yYX!c1uU^l(r!G`Y|U|fCCVwOabZeT zWN?(tpsO?~AEkDTD!@lMpjun2R;8#i8aBjQda$h3RKxWVzMzK zLvHk}l;uqYqQNLsTjLEGaW=}smSB599Z_o;)t?mG#;C=~#}-@r(-vE;zBN!nY>A+J zAqYO-NtWS30Tz3;&|%dNMJoY!520z2HXLPKZ&^>W%2I5`IOWn3EE{(;sLdP^XBm~t zs$ywT%Y_;y@mArHJurQ_ad0qon`?;a%b1E&@!LOEkT5;@NV+T7pV*1yX7^xeRE>1s zQGzw7ib))TZBgco&9&5Ilg=d5#rbBD`@Uo?u@ve5bH-*hLC@}3@jF51F z%W#0S9IG=5GdzRo>F8seYwEpyf+|!0&2j@Bh~8slp~tqWOi5>zBhfSJ#nx!{GQe;$ z8D4MGZ)xeE7Si*)O%g_G&lJ_l#KU59eNYp;42;-uLz^*Xj*k`9z(^j;4CtKbO;g|8 zhnn&#XSL1Qe8j?mq22expn7^T7Nx2`IfDkgC1+Ax(~w@+QCX&G)0W#kH%ZMTYn4v^ zpmg+bubXD?upoR3&_w};sdytWbrr^*Nz^|a<{_U_&N+dq5w5hfw8Ly;bLz;_@tBzd zd6r-ZM@E%YByxs|F~pYlL?x_$*`>CcwbZB=LaRuHY>%z2btncmQ*>Z*?vu2pYQd;- zh`t|@5ywzP7(up*;3u6wW#^(Uqw+BT{N@2()}Vv(O6=FALv}lZ zB_kAo4r}E0E(1f0&kK5)V9Bg;>@Mx{hzf%MXjGC36=B(4CP6xuC?~S7p=p}kgJOF_ z06!HceF0Tc9)=Vb8IS|0Z|*@|`;2Mtk=1Cn-a~5w3I@HiL~L&1nXfpoOiD@0#vg#J z%9VpiSOrBlmx)QXTRVTpV(jungDf@*TE@wQ2`KXOHz) zLlUVF6D~CHsz!AT0NG;U1+S*W210~~BC|d?Y?2W@1&XJRbdMp1miAY%39JTDh2^1O zR9X^H3pS>ei5cgsPFR$%LNkz&Js>PcbJMupecbB!7D`&9d0e$!YY&5SZgI2of+ign zmi*GvRYl8BahJ5&3i)lNAR82Zn^RwnG`00XPZ9%RT4yP3+WQ&3if2*Z_e*u@IveQ@ zV<``MrM4&`5gnxPgqz4dj&7S)-#WnU^=^1rLtHEtgRPs8p>u#QOB6 z!Lm$rD8`%#y5xMr*pLoeyNA%q#8`%74g{<+?QSLDq5;0&OYz!hJ35nJ*sT)82zyh_ z2tG~YMJvc;Zr(&O*LP)cd5DsB^Pt#X_nWs6yw|h;Rq4KlRmlTmtq6^j>#=9FwJoUFA0X^A@buC)!lT;@Ka~#J&R%9$a$!18x z>z%YmR0Im*lP$Rf@k3u(7KV;CFCmqwRo5`7VqB5c8;9&pqP5?N2Tkqv_Ja>1?4?13 zO4wakU*Cg84a1I8g>WyBa^i@Agpzjk!4vGAu>)VGuHu zhGfdo2vY$x!t8U5*a6lxR8>TvoC`=KPAJODCroBRx5=d>{;fV#$VXvuy_J9j9+`ud&=+PX0r$(Fg%9VX!B3v$5l zNQd=UvBKA()J2ml<=5EytX3Vj`AVuZ!qR@wd5q8?w3joH_)8PkFD*NV4$Iz)uDH%#nw9bRaL)(6gyOPdX*4n3Xvqq+?LTy=RsjN%s`7#Ej3@&Ts?Hm z$;zwNl~&HE)S`qBE+c%nye4ntkNsFhX@r5rBeiMoUs}{q;9$C;N&zM&nQSB@pukW^+5O#YV(ot}wVf-?VmVq3)-kHS zAc*9KGl`(MsJzL;vg=GO^cS;afs1aaV(~aL_({U`QZ?vci zGEpavk&X(AgOqd7OlN~z6|7yezK|@xQhUTcf}%7w<0><%$n6@?#9UiB; z$zW2^oFPp1LeIv`RZj$%E!@ha#a7ZleYznE9}^}p8P*fmtNO-1%p1DGXN?l-%nX74 z?atKp&V^yar{1@UoE|E%C+AUY#v#=@Pi9>BVc|fnh55H~LT#L|v?v~;7nGOp#+siy z;p2h>bT)_836v!tPL|7$Ekqv}4Db{FE$sF|99C}LEwdymJAM_03O>g+JTpSWoM@(V z=UrAuS`6l$sN^ytora#w7Rn4^8JxAHZGY`yM7Z&1f2)$389&*C++<7HA=~4h-^j({ z#n#_+9g!rt=>k^~tAZDzZ=gYiRAk=rj&HSAVZSHdB{~WY8z%yn8vfesr#YCC)xgZo zC+(65$f3#}a@9Vv)EaAlRd(KYQ|j1b5AS^a^L+%tmZdTeN#Buc!W#g+QLN*LONVdPbheO}uBs}EcNbhGC!i&_%>X_SM;ZBCrj%p|mW z7&Ppvyo$m>w0+S)iC7fFaK}F}FNPS3Ef1?cwLE#}`G_8pAr34e11gJ$X8$ljmF}O^ zXR`?rV{Za_#3@=;n*q5Bc#{B%`&Z95a5Y zjJ|ag;h5o7?fW~AJ$x)dm0_^1K5!Ryy1Z4IHK-XBW_VZzpa!r2Qk5&VJrToc?Tflq zSM7fGmkgH}$*&TrMs2Y(?Doa2eI_jh(1!dTqDP(hM zib7cT{`S`%KK3=6SBX`l7F!6j=P#>NEsd&iV>=zJEEz^+9g}LKj(tt= zswF}v6MJltaaA^ms0_(UO5;_)30GO{6X8u|RmdbAYV%$u76DKOBk>LQU@1>sxX_C^ z5_)~AfYf=>{%H0N2&&Y+$P9VL*l|bYd?u>=sW-L9!QPO;C14`_T%1^%Q1sZkWI%zb zbds=9X9T%uJr5BOwWq=~v!Pxus+Eal`zI;OOH#(Ud~A8@!bPu=Gpo=$u^7LqcO$Bd zz8Fc$^CYcXP3~f0G_*hz6`8NBsN+=+`Jd{|N03c*gm0<*Sgul!PEO$HQ8vIS=<(*D z4LD3{(WEvfY`%c9#Hx(ErfC0j!7d|0uzxO3-E{$|gO#x-rdc&N58P}X`q3QKtR8JC zL&p138%uQsQQGo=j$&))YY(-06<^UBf)mdP^CG(*S06YJ;N~w}(JER}-%@xIPg3Ju zGI^3)((nib81eJE)wevh&`UWG@@>$uPTzHb`A2E-#3o$a*!QRki6DatEJO9iY*DDO z`dHM`$}iYD$DnKtsQQ4y>iv;#h1xZpMv6J*{V_w2O^?1?2EGWRVs3;mrS{nZs)272 zxg1eUWkM?oAt9c)!TN>F=4Ov7>ete{RnwC)K6gNcm*hQ)mMcpprQN3j?t?{DA6D-_ z-(l;DHb}B}bgewInJh^?P(Ah5LdbK=uwL@ zrGdfWL}bUeimD{ucocu216B}(MGvjQc`@2t-|JC@`r;jCxkyIk%D4k^*p>4*K+Qsr zbzAB7S3Ro8Wh_y9ihIyhI_(|vKDn2P^B1n9J%*|b8rOL8tX)VnnS}|>yqq;r)rZ*v zCS`y26^epbei3Blsk`qc`GN-1@v3Wk4dGQ8ucnO>Q)RYrU^m!wI%v1lWu|`H{+&l3 zI`-JZzCFWD8*vw-+~CD8C1jhh=r%kaR_{OWI&4AG=F}4*_Y4YgW?OB`eVZwFLkVJ* zQ>xgVdVNb`xA(lCx_A!|=j7nMcd)p&>!z~=2g~VCIL50o;!Fpw1wgv_)Y>o zL=)uZUvZ}97Q-MD2W*WHCS70QQBX3LC1pHrM9z-MYef~C&aoYfQ56fyNIDs90nT1y(Q6@a*WNcJpsH95@9uo{p`8v@C`wG*pux*Lm|%yM`_DsF zhPCSD2(W z>Nk#k^AN*TrqrpN|I@p$$wj8e# zOc9qs8_yhIJ#G0`F)1M`@KBz<_uj~>uHJ0Mc~xfc6eM_;W={3CY(S%8l|`dQSVS{J z6#%^{l_=}VO+E_v1iPXGB8vzL+{%YqYVFQ^rd{Z5#j zM}8x=C%Gm^xi!bX#v_r$qXxLNJG7rsCf;`^mQ>$T*i}-tX&Ni|$N&*Rk-rK*NUAtO z&mYcPfjFtk1F9`Om(#QB=d-=rK*EKmE-&bNhFBp4>-tjX-tQ$ zV*b2XPc#`r#V<7Cc7!UWT|)Cv6oHUxBFL=weQt#GY3@ z+@Z?c>Zv`eG0CPr*@JxDdi;IffG$j!e=BW^r3~er5hOCdAPqtwsJO`sO|3L&fpv$m z-NlxTIuJ8*SA|GMT90S3l3HH%B|`$DJ^Bg)k$q#kyA4sjCDA8yLRgh5De-CWK`>n& z>^4G%hgs+`=3$bANo@#vEz1;Do;-6$=4MW9_O`@!pLlU``Q7H) z?%F5rvFJ_-J4z*!d(UE7^m}YFN|I0~B+Fk`Nm6Y_o~j5_Qv$M>4p>PWY%46c?2JZ7 z+Ca4QCz+J@W8rXn$8t8{QG=_S>wnOqs;|1f@@{=~ckRJtv2~=-@~yI1yhzVtaF@Ag zzGkqq7ncxQ9B?)p1H%SX)tCS*jPID^ZTiZ!Jqwo5#LV7=emaWykt-XHJ@#;`R|S7j z|7yDVjvt9~n#v_Yf~x-Co^P%G>abPyd`rk0O`F!{o64&c$w+uori%DD=5%01F^*+8 zpGFvrvGpov=;i!UMimxSJC8lQ^QF(I$>ALlBaFeYZ)Qm8ZlG)iRLQn?*xFlp@NVYw zkTA7O!>oT}a!;pkMQo`(b}Jsi_`{ZHY9yu#zDgJaBIQ`7Qf#PJYQu0W$!hSCcg-(> zs^vpkfoq(Bs-b}`wyxf6u{9)1MIFg68*bVQUf&vYc@jd8c-i zWq}SHE4u*!)G@cW!Nk<%vS4QNWk21E9~`RE&`Q8R{Eo`2s3@;rf46@7+Uh6nl^;-B zB4i9j9CZ0fwMfrmj7z!<3a!*Ua8*=gV407+8IsX-W%U~@ z22`msWf@0$Ua!(oh4f+2<==e2!`404_e6i0FuCUrTwk3Jce^DtEMx1X+(^wL^|qr_ zk(!MmwLE$Htgv7$_~%nIY|lJ%VHgCNJ7LNl@8Z(m#a)nKc-cpDVBc=7c>gK7f~PezhB;HvU4Apz5*SSpv|Jiq@{o;q`f+9X?? zp~eY8!-!=|MoKKjN@J8mGq!&BQ^$sTL0M5mz z`BUBVrG?3TXWeYE_{G~p8QG1U#5$7@L79u+V*?bI8AYDNbKXTTR-V*>rS6{555~|d z9?~4(bf$zBszw%b)<6B>6aVaY%(ZEyG)a$o^+$)QKlsk!k6-i@juOVkuX*cg{r2@+ zo>33(iw74$V#*%m!aS%RbEYAumP zuUx$S)Hfe3s&YAwv@}luY$f2g@~D#WZ0h2mZ*|yW?|mR!Cvfu7yB06J?r!W^ge~Vj z$N>{A2?? z4uSE6bE;G&p-bxYs>i2Ks;JUew3w}^58w4ojAsba=1_Twqn_0Yxcy8 zFk8^UQmwOKc{!WMsH&AdbNDTg%V>2GSo8)2OA5$}Z4ZJD&1{mbaCLVuo&3h5lk;al z=u=69ct4G8oarUtw;n(I@r#)QGZqgM-72wlq>v{UadlFiKQnvcMV71)i~;%DkPES; z&YY392MAk2GXl%_AQqyAm)z-_{hJ0)k;h4sE{}v(El0n)) z4VshqI#LEbAU3hc?{P!P+EU~mu_n@u6 zB)0mblUtehkz0h3KJ$Q1!B_~NR_k|?4Hp%)+Pdpe z#R(YYMxHQ3UF9+edwr|vW#R|wJ1w@>-Mp@U@m7LqWLs>kwv6jf8I_#pvf=?i(J-<9 zw50XrYE{YAAZ*@9mK3E_<0GpRTigFMT@B0|S}6sCc^Hp0yG0XFrJZ(i2@SMtledzQ z@b3)eOrLyt_uqM$2vQv0Vp#i~PZr0wMqd+x0x8WIH&B=x(xf0sqApU7V!CJ|z|uMT z5cC{bPG&Jj4UALnJoYfIPL!8&bch&2T`vKrPrf8j;((h-yebUbh*M$AT;5%?pS-;L zZ~wBDi9tSxi5njX`ja`WPVtp$?MuHtJlh&l{64QF)1?i})FuF@y}{!P<%KjjV;*x2 zL!ifEdzsxuG)&H)S^vlPGb)rvg?ibBh^jyM_TiH+8~5)yL#Z0qAT8+-gl4O6{ky+( zje!_Pv~&tM$KRoU09HPEZ+ZTdsNHGeOp%O)v#LT<@qHxBSW^sQC}<~GTAntK!*Y#M zsGy!^lp`8&$==@XFIiXIre0%!SR}39uPykY@$p6v?&@7Tv z+=Qo=Z?)L6b$KOtwZSD$h#_X}3!fHQMy5f=b&_X(N|wG)kd}*KIu&-g5cO_Dh00v$ zVEL=mqL5xj)rFOdx37Kl0;!Aqal^j|9AX^=ontu$UeKcII}}w4af;Czg{b1H_8)?G zkn%Rm+Ul_NS4YHFGL6{7`+5`E|m~)j2l2lIHz-O5sOIBwL!%@E* zm=7qv1%jKu`>D}v&ME#MOi&08>iW8gs)1P=Mw6UWB)_B1h0MKYY(~w0`tshbV9N}v zzx|IAamFFS*lflCSB0i(j>IH}wscYzS zUeF#@TGgU*$6c*46vwxUI_=M=i4Y=!N3scC2;W z>Pn%&3AQ3sCk0BfqJvaZv6tF_z+)^YLWXylQ+)Hk`UDi1s#73-TF)WQqY6`6GTMW_ zFj^enI`+*+kAL&g;`pZ2`eS~^D$KUee)39-t>BlJvQEf<9d<2q!j;cGU^E15C1;#q zWbSn}K3#sI8^VfFXHr_Uu5W?ClPuwA1FkIBKl1?7!&RL<;MquZ3y&&Y#U2YBRmZ>i zXnA_4JiXICoY>;;jT9{$s@UH5?65WE8S{$2Qc?5PwfdbKlaF7>FPPF| zbp}=xi>H4f$D0hcA{;Hoqty$LdPnKx44(#x1T3>@$lvk0yf|Be)9CVdrCj^i1re>P z8;LCRPHT^eLQ$BEUg;V*A)PA1O|3bLgbY>XxUT);|B~%lm)) zJ*LYm`n#%y#ZcXU4ki_CBbgyu7ENg8)fJ5IOEuJi5SkQNBfKa5t!o#=+A_FB##UIp z|1O+NOdzE;luNW-S2s8Q@bTHxuVloZU{|pMI^Kf>JhkHh93SWYM=@Y)OO~%)`>u1u zK56#TSN8wpuhTs?!u^}VjwIovsy>veG+b=4QV}3wV)OJ{G z!9XXWxj3=C^Nk)`nNJ`k4b_w8PyJ&5Prf(4$HsO;RNY5=Vw`5s5%p0jG)fl7d@F{~ zbSY(hbkXk@SJ%#Lt=u++QkiLKk+hsx#R~78@eo$h>iYV(zGFy0olhkCN=Wpm+5shbAQztGCZ;MupPm&Mloia(z~5j?z#;e@cl_-_egk#uyw=*R9V2)+M;_La;VaNCKg49 ztuM>XcS{o%hibr9(~!19>={Z9+hgO(J5Oo!0+&`qKhOG&iJwBY$R(|a3Qd@$f&}|I zb9-loOQN;*A1wEua>}QLrfAvUtQbCm! zP&||;wzt3W<>JKlPy?x&R;S%NmvYv{Gp`Lk2pOV1NO@S-inAwuY0Qj}DsPV&RcMk< z6V^M@_nDj>^iNVn!K<_+mrHj9i63et-@!N%s?IOEq*~#c=K3GCyh_;i7;QLBHwc7< z$N^O?ucGUwoLfL@`8%nEb#~(Rzx>jmZyAJXlT!v3FJ62bGHy>nr8+k_JmnF}614(PL=&(2Rd7gYO}Z~coe_xhH)PM0H?8}{>`y?Xd(KX6O0 z_7z*}xVFOT0%e97*06jDEW+qZmba`3tuxO7o7#O|LMNz_A97(um8W)`T*i;yY?fi~ zKmEhO-#;fh0xkWC63q0f<69l7mXUzcQR|TX9BdBfT+6rq#g~fXTUMu2k~G3%U9%s( zIDPy{og6I`CpLL$h82%mlFHulx`fd{?;zDRZ1OGJwEm2IlkWQrs-l~|Jhn+j2>8Jo zqE$FJ_~CQ=-~BN}Ju2qOhg7fXT<6Q7Dh-sOsp-Xut*s7Q3_Y?KQ{2S(+4r8B{rDww z%F)6Au=6;Oa#D7PDx}idmk7?}Rei{;6=GmxLfB=_E-Ma!_@p1NXtNbN8zeJB7}aj( zm)^elfBlVtQU7ERMyqa7^^LET$F~j39khmw#dA8!9$Os?329_pt zK6;W(u98+&WCViWH#hco|HI#DJV`GtyuxW@l9ZjfZ|9iW6I#zyDAB zvlxT)cgZW32a&cBr~m0k&GmguoCTs}Eh`)re4pono$G6fsk^(06n1NK8bK)?{MPzwg>9NJB z3^+z9O=82)*E^j}|NI|PTEzLt}y>W0CiIhXy`%SM`p!omZs^I z=l)W+nLaCZ!9TifBd2F!QVWVGuka)gWK|Tx5EuoNlP2F@J)ZXBNcg`LD z=!N>NtGqN72>O1y;@Fmfs-vk&W>8gp)dmP8wb=Rs3SGYcKPi0hBXY*mymNh#Xz?M; z=Co9sZmw^E&fctZ_Zov>@xk-1S8QC_0HZv~Y5*?>1NFU+O3@hWdhb6!!Ao<-2_Mq1 z@Vv3M^ZQ@yB%s_kE*p@QZXaA|>ps4<^*?<9JJ(%Cc~uvA`Y`+c&s<$cg8j}Jw?DJ$ zwIJdQ|9@s3&{{8|45%=6w%F#}m~$a1$6#z63JA^afgIJtCtqr=?(!^|&o=R9mgUYr z|J~}$aY+52!zK@YE0E(acqfOVg~3?NQUOnFZTz#}Ucx&Nq*3I@?T}sHTRizndesqt z+dI@tIU?f$CJ5bVIV5f%wGgii96^C8qG13=-m|oM2+6uoeQi(Z$8P_xeoEWWs|Xpd z7){yy>gOhR->x)X^@2#h`{RD)dbttEUiGjoFpAsBWc88H09`f()6_~r^U@o=ZaVyY=X#PW#~K9Yka}YI ziG#OQ9U7t6lx{t3ePqZ(rw?raX`1Kvt&L zqO0k7E#3pmi5|ouUQw;AU7Cr)s1#@be~4OKem6uN{^S)Kh&fwfQ~#K+xI+@uwVK3! z6gftB+iB&c?c~qB{=fQrp9JkLcd$K1VS0(QCuE9-HfXi_7nbHnUpA@@o5I^%HlOcbpI&0+&4S z(!BPaVkc>&01NUmDBz49a~j}=Qy8aqCjaPO)jUkvn1tra`_0W>8oGweOc`*5%_!yj zs~MEbjK-Ed{C+IK`wXowt4fn{^YI~-VR7-+)n;!B4rb3^?mJ$0ZP-m(`>kJ-BnI9) zDwTLhm=co6;P*1PlesVrn7lv^GEE-(XgUmW5Yja{%3zuo-)PI(pSgFgW7=-=G6r;} zoKFqJW0_Id({jRD9eENu^L;s*Kf#{Gu2f|RbhFOE{N>jH-0b-)#$oH>H565MpMAfh zy5nTRgXq2}7LKMoxn}>ce)oF)?hUs;6{V;;nqGmE2=kHUshyJFzd&#xhcFI6?{w(C zfD*a|lS;cRluL4wmY#Gu6%AM|mDYH5daHXu(J&`-v~fCEm_2`G_2YNXUwMo4vy&me05%xmvA!?4tfr)j>^n$m38wPusuTG_xN* zfB3zplNFM_c6TscJbP*J?B(gVpIG_L2Uk9OKNdw=1gNMAgUlFKh%Y~UC$6u+;Y?MH zyP&60`_ii+AU8AU?f8d|puOi0n6*R3B;nY9vIci8qU8k%ZA6U;nQkEblm(lql4ba95@y zgUhI?-@Ll}zkR29?}j8yC7>kFk1aZB%Ab5^7if{1U5$O;P0t z17h@GF=~-2>`9-BPrzq~zE{ano6?rliuMb@loqZ9wP=Yv!5MPr1M-_Ho8?ui_d>*T@zbOo{I5S6+0nkS$>7L z5#@@^RC8Z#)!hq)x-tWLe&Sm1Io#|=FVvT*nqq$077fDcOYhGA;RV_LJQGN0Zs&=Y z=^62)n*B(~(`P0sEC6*{bd}C0(QgargsESq$cZh#86=4^$_OSb zZ#ypiNQp~4#LyC>?OxZ1-+MYkP9oy1@t*#T-`MGxz;%owEhizYIJ1)xzE>D+N%r8~pMa-o=ce*Q|3#KRPfzS^kCipd^}Do$+E4@;*VWN?wl=|P~&wmzl@O2LSYjNovgD_qz+64Q7 zsEJq4@zmPCo?BP=V$?hjr5%kKf3f1XLF*0Gy^XXj31!R%g`C2n(Jo1a-MN1Z5>LZBf3vg=|tY4stdv zC#8xn@8}EV#(p}^e$-UuBtlo3@ufJYHA!g)EiflZ)lc_kBq+JeD3uPfblN=39Dp2JGlv~sxp1P($Q{0{4XSlwC1&wn?Lt-RaJ~ixml;1EL>!SN>s0j-YcKEbqk>(Io zseVYMTXY}I(4VTrw6~n5osdLoipQY3IrY=MDz}IZF~jOM=Z{Kl!tDu{!l+9qwaBJo z_f1Ow3fYDQkPadEEqdU2X!~zjgv;3z^-*nzs%ysIC%3!r4hsrg(g;Ce|NTDK-8Mk$ z6WX_Rejy=5i&SkrWep9Og0J#-U6=-;Sy;DpXoefDFUd0SbW?D!c+0T24&8z_-fa2unkG;WpAt)$U6rUQ(Xhn{r2aN|;~qR0%U?1CBd- zL{XVP#vTO&GvC; z>nx4FAe}{F2Bubg{r*j`WsOTufl>ZGoXDx}zN0w3qZz-9i}OJhS{FcZ`dD@MZ9)SN zgebK6H{zv7&HKB`I^f8aXrOvKLGyxgOH&QH{X=}~s$6EprG6|?mw6XCQpRHo4jJz? zwS?wauFPd@e;A_bx2{rDq1iL>9Sjm`N*HhJ-Nk-8T2BcKpM#|G+m9;e0mlagS{aBG#S?mhZcB^J}nL z>et_=<)?acKVZ@2la%XvUupG`yQ&9tDW+Y>6O%%yK61Xg{~ReeOScS4mQm5u-YpA=_~3EC8HPXOnNGso8d zyWbpEmYm^0vsoA|y@{u|_$!>pcu=W3=1l!5D+2Vrpa8m@?PnBXs{8e*!mYIe92DE@ zJ+=}WGM5vn49UJ9%VIxCX{eTlkkqA^5%U+WL`GzUM7h_u^=z+i{*S*q`Pf~VW+w5~ zM=q@Y^WVYkb+S(;Y?bM2q6hp(2&>8QFC14!?BY}*RFapF178g&~XZDzr6R z1B|MR>lQ)~BXZE&=-ZFO=33wVRp^NhTj(zW(4jCi*wOYS)YEvWy6LoLBlD6tqG$f} zFIGSM0Li52tapcgpi;s*jv2 z&z>A_UJ{gBcwB$4s_VCfEgIefF713|n`?QGVUmTkU3uRL&6mHRH%&b>=25i@-W^v_ zt+3cyZ=1e*D7na>sil{nNYS7e*kzGIe3fKle*F;UjNkKG>R&g&t&|u;Qx(tN|I1gR0o2+X+LM z{_V3ykML?ag2K=aG0MhH`W<=u({mDM%fYUHYw?5URE?ACRd|p3Og(KFly*+>N^^hoYCwpep zn~Ds==-CU${*^cc4m(JJC<$xTxL4oO(U9_Q(As_k-JFa7^4uBsy>fE8jXKjwK|8&^LA=YGOl=#9g((#pI&jaG(}%D&fOn=_sQXNAdv?T zJO-(5;uzn{j|p{QvN(%DB{!_O^c6>;)={{K7mpuB4Dq%PKQMfYSs548ONcn(n%IA zHI343KuhI9fK%JBzT)Tv=B+9q_O)~L2J;ST<;EIrtR>2jS-(B;xnw-*nVgX1n{QY^ zeHGL1J>A{vp{Ys`0LHXG@Co2j7=X!`az0P{h4d7yyS_L7{?BCJj%*|`B$u`FCfYh4 zl5H?F0Z;9~`U(VNJIu_etalu%570P_kQz9fb5N|W6dNmf>IHP-qzN6QS{zI7kcnJJ zmCHy8TQmp%;Rmj62#cqz62pXNJQtV(nm(zT6V1Mqo}S2F2Te2o^MBx9RwAu6-Ie=vLxu!-M~>4jr4^f03Hm6P2Ze!SM#icTgj zeIDNl<%v?SN=$V(m@&_^0%*qijjPlD{G=T1u_*SK+AsIp9OifK( z5=6tRpSiU7VS0%OXCz6It~{Yh1X#Q9(3nBlgRBTAwqSLFO^2kWSIwCTLSJQB^7nc-Uxo>pYZuh+XjM}5-*BE|G|Kdl*##;5^J87DWxiH?m*tXO0 z5mFry!Y{E*5F_4-k=Ndt|HTt&1LJtBN7Qua&^ML|n)e_QX5;}lz6t&5qjb*nNW|E& zT`A?+d+$rgr;-U1pHbCq3>?<8Fry49bYqH!Bul27#H^FGr0PhYw0Pl4dF~YbSdEm& z;ifuv<18It2SP|vgdOdwZv<#AzdQTWA3$AeZPyisj1S#VxfG9sRtrl~FMVuL)1qoZ z+{mGf0aZYh$G&UIv-f^TZG3z!K|z1)xWkskcr`jt1`&4cRh+hMpm z+o?9-(LZ1z0uz-4b9FQS%cmB9`;1~wsDm0601Y}Ll2K=GR^xOmBH+#jtWM&f5108E z$}?dZEyucJ(6OQksLHcgc&Mbs7ShQlme?&;ZzW|=HBwqeg%9z~Th|sZzTT=_n`;BE z$W}XLQhX3$@EyFrJNwhWYhHdc%V3OK6*T#*GXmRF00xJX2Pop(+v^>w5X6GD%2c}_ zQ7)Ee@4mNN$WmV67t(l(Wf-0X3vdAn4)yUl z9@e9(4~}gcC8E%$M*bNo>#Rc32GsueA{1SqwG$DsX~fXVJJvWu;yoE!YWb^<#K4kA zR+@wQ^1JhAUc-&G^3+aX!Yl_S)FNq9@{J2SI9I>$`usosee=TWAig3)q?{!LGb=Vq z+s7neMrfv0bf~IyP8t7GxD*}GmSe@ZWPh&KFcj1mWzkmBB>I-huw{=R&BYl+Mlz;8 zfCLHwohTK!{^xXFzi?&o!t1y?DNb(p`$CaXiD|Q=F-Xo2sVZ#K)X!g;|HY5%AHNLK zxyq2NwUi9nR2~yvHc(>E0Cg!40XNrRr9!9km(I@){VI)?G|0F1`BT6Bd!gBSE1m4= z*rwo)Xr>F8&kb3Ywlse?LE6?VKrJDwx@{r#pLB(9txX=hSbgk5adLY(<()XVBD^|o zc5Qd@^Go&5UWJ>7)};v=tB!LYwSy9Bq)*D&hPL6Rjw#o3H|l(>v{-<6F4BjvK46 zI>EARHMB(yv$;E%xf=)W+FtYS4foy+Xi^t~+T%;x#YrxcC#mSMx8`LDTVM6OijwG| zp^Fj(vq4Z{S-84J%HAE%>xS>lb?dZ#YYoFfT*GZAx^whSy1NKX@HueR% zIC>maf&h!h_j27eZ(r}fe3apQRy_Y4NCFuhAA%#os5pbX3Z=G8T?%YbwF3RX@j%wN zoK~?*htPSKR8%GDlz z@Wuaf{hE(kG+M*88+yqb`3sVWfQSp#N_WPWl|shDhy+yir(3{{J{QJBTvm>c5f+3s zu1#Q40QY)(8;va9G-2GlB1Fsdd)eFHWeLYO`;v;V2@AK@pe(|xE^Jv2F- z@*vMAw$+r$je&ft024G`70dRNP&)<&s%|984-Y@~sMdmshIAyArVkdgB$2XqRCn8D z75pRUTLY?AJB_6wf{gZ~^RI?M)wcDa2SfW%m9FJg!}o%!{&aUwaIwAC+&sj(X3K&e zTgp-(((PJg#V1*-ZknWX`7DY|kKEspCTWrjw82)`R{A?kSxogXun5bQuLCaYd@{@F zr!dV#CqNcFnVk-zqFxX7Oy3fmqC~|JF+5BvII)REly#MNLUlY4vDjX7HxIhyzh1?6 zv;=-_fa9KkFfQa~&DKCDU`|%Jwf;0Z0%@eW`+2xHXheHc%ujjS9i*7f$X{NC!S;xv zDhV@eJyQ=uXKe1w>TSmIQ&qGQ&_y8^wIvuvlI;?eML2#bV5?Vc01O&f|8EshHGmhf z)wlM$Q!dn89>5Xt-KRA!SP%R*?Ep6Hu+>9zaM?3lM>5`CWnMzd=<=e%z9b&7o@?9dRxSXzfZM^`R+jXBjK`|M6 zJ8@9GH5Jn(9E_ETDSv3ORkoIaGhLeEtS((y}c#2p`X}!tfIBKyoia|50QdY(PJL#Imb;z9%)6Vr#u=Wn%4b zBOmDC>NO@Z&Pz|Bgd?r*3<8m2Nm$yn-TE26P zC$RTz*kn{HT}#7^Fzx=U3Zz;E0vp`Gu_%XTZU|mnYXfdU@MyX?ab3r;90R2XDYm-& zdeFB3((#c!MR+eGeP~s8nm>1xop*%g7Sd3K88?zJ2vi(cK4~4$dTH6_sI?!}x#d&U zEGYDFR+_^i7y=k(n`(tScFRI?#8S&T$kH6}k06l_pLo55o)wFW&qNJ+Bpog-Nkp{^>3 zXev&iO$O31vr%a)fYpgmgfWu$R$AQL(?7iB^H&uf@AN9VeTWn=aI7d^9XE1%@5ol* zTMQG<5owE@n`)PK3`$0CsVGfnl1p|>MmDi=jjcpJJb6iqMx8)&*@rp9qxwM@C0B+Y zXTQ5_48BEln0AHVz0K`0CiOxK;w7$Zt#d$8tF3Pa-7ESsd8L(PpRrM4-&U({wRYlw zK1A1uexk(=W^Sryxn@wEmUiY@@2R{Evq@|`-1sN*EdZ(GYV6<{_?IQQjJ6$-Fv}|j z)Lft&6`7(E{^MdnNXg+xRl@O2v^+qhrphr zQpQn=59z|z?xvThLRp|?6F}N_4M557=)TMFn57~`Ey*xvYuBo9)IFtG50QU_2QQ3h zNiMRz&IZK(m=ghKqAv^_i>n0AaYjR_DYn*{R^MuHU`f2`y$!&)k)s7f8$&MK5HrvU zaxgNBzL+*u%Gr#iX-G-~gp$D^Q0Hlexw2|diyssiL%|n2>3KRv#}qoQrC{(FFa$fM z3-N)R6rBXb;JGB(SVQ_y`LDl+QW`e7>2@e=vE_CT-J;PnHvc>Evr%T8PQ!FuC0Ebs zRcw%$L16hE#x~FBz(GwfCd!jYMdG1MsMVm5fk=KMs6DSZsV*vi$aLX>S`2luq&`ar zfr|L6sLK=;&p;oFA&FiU0^A04VO6@Ld2?8+R)nT{O;pPNAeHEl5avkVsWbzi^b{nR zLzyKbm%)7@ zeIRME7>q%FEJu-pMrmRDgObJ8Y`%{GQ7?a zOG(`p(KWIvUAMm~ZqlMefU)hp+b&bNL|OAi1X+lo7?RMwyt(G~4?Ewf+CeHK$>>k< zg(Dw7*4$>i7QJ^>!#;yiU0qBoQftu}k3|wWW}pwb%;hW-Bh!<4!pZ`UZw$&ny2ZeE zLUOjoJ1-nST8IrTYsJabv(1H{e0zI(iS%CTgh`5JhGNg>gZk)}D8j z;xM1`iv(&bte^;Aa%Cu_I-<)tNRRgEo6&h&7Vg;k@KVzqMNOT+lxZmQbpU_)IN=@uc$@kQ_|%Vg!v^#(c2GNIPda z?ZyPUD9UKMZ7bxIEx%(z7*;)7DGRr=-mTaWeu4?Af_zJ+$I#{~nJ+q!9bI}$7Y$)! z6$WgLa|PK*N{;Rj=OiZccsYTYG9HdLMuU>sI>Bc*Yv^@poDKyZO_+MgxGZ5NTZ%4q zL0Hh93xw^pepd7gaAc>I56vFIGGRZhp?blHpwy0VU zDw`un!T5h*Q9)B8yvCPZ06i0-+7HQ9`i?xr&njcFwu(i;{rJc*%z7cC38md<$w9It zoEO2dDC;$}AfnaF2vZHNR2|W(QV7#89v^(6N`a=60yPeixg>I+xF|fT`U8WG9gmD> zD1tW%92wqmOT}?iP^fzdVQmEuXRb+0plsQgF~HkA!h1-8iYHLM zAA3*RjfoklW=XmrOm*3r$)W^vTG(Ea{5kp~%F`~gK-gLXjGI;g)XV0P7C7)ZuEh6a zQc+hzgb9-J{hAUx$Ko8VEpR+so50~*GQXVNWO!L_L2OwsFCm^7rqN#a&5Nz<=Hnx~ z4L6ipNDaiycV+-_ zZG}Qxun?s?#>U%HNBB#WdRc>34&frHZ(Ws35GAHYnEDtAv$Sv)8C6w-zMhR(Y3F!tIx^rkoN<=^eDJdldBu7A)A(R@rgrSibq=umz z=FV^3FZWNlAI>>zowd)q-yQF>pS{mJLw!vO(nq8K0DwYUOZ^r03IFdRCdA%rE$WH@ z07gx1brqA)g8k*N$j3ADqK7A1Aqp8Z1Mh|BGd8&KRaLEq66jxBHtD(Hxj&}i`(e1P zWB&68m7m*A=(T4d#e%=>?^J*qhJ4Mta=R6?_(x);oe=CJUQ&ArqI$93vH##`jCMW=21 zpowMaVTjfX?@e2cfG@3iLB&Yh7czS9z*54wvTOjwF=!gl>dw&|f&mI~UWXwvMivtK zYQhld6vmwFGNme4m|XY-1F`SIyu5-$?8qpz00@vOZqA}7hV7*bi6-RYy`q;%j zAMYf0MI@x4Rwfkv{BDbD_lN~za{Io(U1p;`gIEHFcEC&FK1MuZKjT3xgQ0k9AL4(} zGA<=14P2Q>g?TcJjO;j?=@a#u$#|Qtd!}J!E^#M6;FpPndJu113Ku8yQc5idG33x~ z?&JL{c%W4qmbl)vOm&0`Mtud1okGq$7+r7}SzMx6&~lp@5FGbhdpDPEk5I(N6a-te z%kN?WPEq!r%=udW;8tONlUoL(_5d07_qr5k-O9sQZ%6)u$Gei)i#>9Lx45*H{6Tsi z@7Cy6A~(^m^zX}QJVe5gs~xJ5uC@`F#n;7_pfBTD9m!L802in>`mgO<<^T!yr{nY~ zfRRD$Vz4*w##uKMAp{>^G#MLR&yI+W4q~k%++s#`3z^6r}x7uH;hT6au!$Ib_;Prn*cY{jLcEAd( zDG%747XOn;j9lK8g}qO=7$X3p!iI_+lan;^ke4Gr6w*mQcO zPf)hNKLY5_KE|qB^XqM{FLo3h*iX~=%-G|2Rh^Mot4APOSoM8|r(4#Ofv$KQ`k-o4 zPq{jkARI6%u@cN3EI9k~?$S`9P%X-qD-}MMboxSj*kz~?qBVx!Ygb|44`#v!cf@yf z&)`Pb5B&>ANzE&(g>z@-6BC`%sB2RIFS|#m(j)4)+U3bDy@kV&BEw%|?+XzP4Q?E0 zxw3RxoGKYo0>J(WY)^}q^*t06U&2K3(JHpm=3PZujSj1{bKB8`7~g+3i8uo!|I>91 znr5?0Z9{k5>#Hw4dHLeFN?_Vp`O|s}fnaV#pV%gux?OgOhykg=S{M$P?9rG=(Ev0} zuSyYnV$JrJC^7UmZ4!*%IkSjWnjA96_jro|i!@xc z)eqo2eX(Ylm6reIAk}=J_pfhd(=$=OIQodVsi~XCM_&aiGb3YZ0V)5fv4x&W`XfN` zE1JDguUdtqBih>0E>&{ut;MB@YY!iv;{P5Wo;(HG%_AuQ)xLR3J-?x8K~>l@Lq;a$ zWo7pqEtjE^qO?lSOgcQ-GWXevw8TGq=OG3yMLk2<>obD@I6eGdHIb5j2+(OO*E&wy zLQe7{daB|i54!$}VyZE~XfWzHzlXwG@EeA3kWi zu~=nYAWDgPFAmRv)(6>2#r-OW=#D!>Rbje$j~<~ODxKL&qvLC41D>O;lAh%oxt`Y- zU8w%8hLp;be!08|)~_7mFiW+JArQ+w5Zl2lbp#yH%9M&_f?jTx7S#z@Z-rQ$<8&ia z8gZ@jd`QrrUzN9mmuz@GiGkk_+;_ zwi=b}Aq|J5omu7j!8my?6H&bWlTYu*!M_TGzL$@tHfI;lC7+mHfQEQlM}_1-fy>`f zW|{Z1)1Zr?w+b`fk89iQE2RI8z8Y_~+`Bs7GOnYB8A!KN;))*tyb z4a^Up(NVPl;ta|n$-7JB$3*AnEj-%<5N53Z`dsK-+C*!@`+TM_oT+a|{|%aC3!6No z>Yv*WdVmY~qd&8wO>sD`p3^6+(051fk5%pL9`9x((Q0A!OuK}u* z`eM7X`QuolW%Lq{ev^$d}n+Edfn&RM4j10l38=h5@ zi?(^zf=qMtjrVVPc-n#;kFH+o@9kY#ErVzgA$ho3zTDk$)wsVIhZWe_?1tSu^xEY= z@47Uvgr@mr(|K=|^cwQ}qe2EsGFSlY^KfFuZ(Fii3%IWYot*%FgX81%OViume(Dc} z1gflCp=L}^Wcccq88gGj9~LYXY7rP(E0c2jQd@jo_PWfE>D$+=NsV345gjGWS&p<^ zw|ZIn1}PEzHK)pUuu6oz3B^iqb!G1zUg`;@yJ^+CC9m;ZXa9r?U zXNRPi%&5=Q>WSB~rRYLR>^eh2x@u|9aaOUN+cL$M!P$A^qs6BwMyASCM%l=~G4;~P z$OT*THechHSO1!3TwCT-ey5COLD(SqXEDxz1j~K7jJ{5Zl4`J6zrG7Z(&78}mfwf_ z^7_N*YF&aIUn;*J{wkAwK9#`+(RTMakQLd6?@^P^I<`1CynCb^v_Ygi&ev>GGnODM zNvgW`?t3CYBZak-&9(!+jRR1;0kIdVY-Y?z!b1Uv@7SIQF3xO!yOgPaB;hPcnmw9h zY5ybt6oe;M1R*ATc3wymOn`4miMW5WgL3I%i`f0A;3P?!yqXDA$f=DCV*O0`S7N1^ z-AOYHA!b=ks-?iH)C*0-PnGcv&YW()xCtaM^~#Oe))^*z+t-jM0OYw1Wu`o-b8Iqs zm`=fRmrM-j2Up{&R3?*w)H=nA1(1yoUiY5q$E1UpGRv#M+@0iM3}S@TN^=XWuWn`B zNDSE0eQ{7G91T5~bz5~(Y__YPE21CutCv#etml|wTA%;YqUFp4;!WzQFt4uLstIC6 zeEs~C1UKo|`s0S|rNT$l-nb=kbYfvTe(PYHbw#>N)fC5_tSDJL@fL%}wdZv}auu5M zG1)v#r;EZyE+oDLie;3frUcwL8(d2Rcm64DA?H;NrN{mur{Yi5=r?RNBZ2X_oRw!R zc=BzC3B@l-z8fY>7t#D+a_g{Ja1z=(6x2NqNi?Z?!v2goBJZDFuz zYdX3pu`#zSqR%yM7q{vDj`lhE5ry5|2ll|5>$jSrXT|Tb|2lASc8TT$qggS0^_|mL z5aot17p%^ za`@zeuvj)(z(==^O3C7^>+-l(dO@f`I=-{w)9+sbwgjdx4 zx5ev>kI&cOSq%uXe$<<1zJh8%mMnn1LP3A=fVs`@71bl_uzXePAQ}sk=b)bFzqTv9 z(wb&l-?9!`xzZSWE7P>>qa)a@qiS=)LbHf95Y-S?-)hJ`f>-k@E8x8OD_0N|)9}zI z7WK#o-3YDVai#uma_kt4#ZPML)sIj%b%h-Yb-VPMySEHf&YB6TTglkn@7SGX-$cMH%DJXYm{L6=V?@}*Re)}uGFGWgeRnC zt)gMKPCOz2F&}Dghv~{4-vET^flWlnSK&qXln0Q_#JS*cDBg$Rl@BQep;9_|V_Xv|MbNhNCo2Udz&&C*N zMGJ7lf^6ZqoXF^^3@MZE(q7iBaO~xuH=WXpA1JF_-gt=1(x%7TqYhvsM(r~U9~-?p z9Zo~r2NqLQcg{^++ptK5!E=zS+I?NBGC3EG`f=bdD_A#H#!_s*0JY@mxtw^3;+Pp- zDAdv?0B(HU=J0hm45?aJ3}?TqLK%oY!G`0RT@Z2p>LgowYlmYNWdbv$^b8D}(paw` zze~aJ(+fuhrL9nBK9y&wiGgIIdS`Pn;{B@8BxY_Zz@oa$)#1&Q8g;7`0*Ow`wjndX*St8>4hvyp=v#v-$w}sPG%(7VpS=VaB z>j-mF12+7q6%wd6rdID-NtXF4&fEF|E#a>AF5rMX|1)Uiz_2?(`&JEIi|3>+fj^z68BI7YfZ zqNlU}v-x9xcJp7<^W{g*z|KE5m$!D6&OPf>v1JkRD>wRb2##mBRu@O2SFuJjUaslY z1rOkRj)^r^?VTw}&{wi!i(xjWIY{GhLTnLCTx7_)WbBq@Vi06-a1fbZZEvermD-j$>(Ha|xfB44ZX7l{{~l7K|s<<2ORh zTjOiwa8sD*+{^1=0Q*fH^c4V1784Y`^Z1Eo-&5XeJ?so1RG2mYRBU)!a?WsdDv#D+ zxNkF3dG0L-Nu8Tw3*ASa<(~u_Kkqs(uI0y1A(h_Q&e*cf1`y6FH)O);4thI(=m)x6 zikVCK%~YRtfTB_gOgp;l>8kQYwHq9BK6KN;kB?%^;1aS0k3(OiS zX9MgDU$hbc^qS}eC2P$hQWxEqZw`O2?@q_eK1!0}D%swWVT}o0{+vA~4-|Q&QlY0j zx4l2J4HdGJcPS42nJ|KQe8<*Pv$!>CGqG9F+%Z+wl~67}Z0HDZ7(0H!Ba+%Y`yc(r zoX9tDF{bwU17qKo<`NIEoQV{+*0|#p=pmQlego6uo$ywaHwSB6$1QLH*+)uhzc3uQ0Z#qtD#37Il~@>j*;4fxj}PhJPR)2gV_gdyak!tH6Rk zxXK$r2+NB$=In48xiIl23hJAI=rnj*>ot)%b{7>=HSFekgW!hA(a;jUY$YsBsaLv< zNnhKhy=Yna`ZA{GNws#$r1T>cLntCwr29*+<5XLk2t=V9jO-Ivyxu3Krd(>?+wQBe zh8h=TW(!p;QF+3~9Q%td|EdQDYya9aO}rIM9BC+v+_DEKPnlbr;(*;Nkuk@g=OxXq zV<)$C3M*PW%LA{bZ6}|slplRMvUYEC$f~@#@=R^NyO0+#;OSHeL-f#!Jm2 zpV_#xe$3MhA^*@geGq_bnyb20tAP#p`0TNep47e2=4YpEU?OlTg{(VLxM7E0FYFjS zc9?F*c4vJ$7a;<46pg%o+{|Q3(<_({Cprl$mWePPKzbm8H)*@Aye)92kmb%B=4m8I znv~T0>~^q+FQi{%4m-@j{_RaNru@oJR`@Iga=_uR8(~KCp|7awA}D5nAtf;s zQ9@6bE`>c5!mZQCj9`r>XJzLEuZayd8{^f5Gd}G16t;0?Yg*4jmKLLq>md~kz18Gl z&BDV%xn;Q27b_5@(7sV>JL?A_(1!Svx$mHxG^Qd9|l;r=yAUF>jPVcey!RQ@ONFbt>^Ai!X`^ z=9pEfI|GFavQRVvL%5kAMnWsoi<0OY-@A)~-b~XAE+TJx48uZQlT4!*_Eh)=crqsdhd);M6 zg>poc4iTsPY{2QJxjA|}`bEn+T+>kb*?)z&C7+xUx1j`BoVo$uy56eu#d57lQ_6Rz z{OruOo^)GF=pXki058{TSx$|Pd##?&vtvpVxTKL2(!`p+2~Kw+%O5psD*pWvR_kQx zuQg6gx05BMhRm7HfB#AEe&jLXEg}!>7szdDm0I%CD A=>Px# diff --git a/img/logo-square/awslabs.png b/img/logo-square/awslabs.png deleted file mode 100644 index 0481a5b76a20f285434f3d017f399ed86af5392e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5503 zcmdUzlhesf(Dudk~?O3X-%gM&k=r3o~=???Y%L3e4ikoHlVBCz*fB&d!z$_DVr`7i!VbO@=eRFBD+ zeTyKo0c;7OD+8R@TR`E zs-JdW(Ex@(U3e+2E2{?>DZA8wbyU;ZK)@QN`3?OGf0cMZP7PDM3mYXQacKa|`GtlW zOEsMfY<>mwqL_ZsHggMJ@E82@O6*cYS{c|G@4|zsNpcC*0upxSpU;R&*-allzr1`% z`FvPW)gVqTen*z`U!Y1VKBug;lftF-3i~x}?1=qdFETJ1s+e67Wy4)$X4o7h|B@2Q zouEfG4P-#l_nz_;kapass-OkDqEQQ3(Y;DYapv3ehC#u69}4!si)I=6gc$7G%QP?S zgohm*sz`0BN>es-%}=S2^)5E`CxNH}sCYqE2dIRyaiL!qIgmhl04&eK-CB}7VwnsK zFX692^ojr(>$Uu^tgP$oBScLPPIMV3W`)~zKJt^TQ|>yQR2yTT#VcQGh;;q7k1sb+ z%tFIAD-+0h<;PaHgS<$4*t~U`qJuB%Kl2Y_*SYjq;wD0Aov5dAQEVs)q)olxEAnHA zUaI`QLF?nAxNA?Wa3QNAvoDPcz;aClYex-Z|FDniOhczB8u{Lhez=>kOi1HCfxI#i zq>0`;uT_^;nEEfzjV?G*hv&PpTa>ZCNTBXQ=qjf96Z6Ft5#`F8RPd4J_aXj=J{FN7 zAN$y(a%#{Sj%=sxUSqDa@ZNpTSLTFI+oM>Adbl7i!3UMu|9Xbzo-y<=_#Rcn_5?t8 zs&{+iN9Tn`YLJPk{xVmC0qVLdueW15f)SqOH-5zn|KP_LSyRhK-~4|2SC$9&)CjhH z`9sD+<~QkZxcF%vqSsoUXnizD7AX+FgE!!fORCKd;gnSc3g_%554`F61{pnBki$i= zON81M7=E-qZolgSo`ySHOZI{dcc?cNM3Jl&8Y{(xH>03BrjDo?yG1q2jm(xoyANfP z*#71u@=VcE0VDS9@t&7Jjm~_qvHki!+i&$VYb1OleauHAXtf$OYaT%{Z7oWd%PKMb z^0*@Teuh-Yd#aVxt7H=1hQvV0{N*s(U-QpR z8rJJksc6PqP>cIaU`sn3vZYXW9vDi=mV{U>FVAc@vGCMsFoe{c+iWY8kjjP!;YA8(c#QXrv*{NvblSA=jzc~mUl`VoI3RV3|rTVF)UBELN}-K zsa=L{wRcqyqnoiC-keNAbhJKc_317Vf9QUFKT7Z8lsRblS7mJ;GP?oq0}~;C*@s=} zC{X z`wH_}?HQhg!HTWw3$eC@XGX!C0u&nCL*^vW<-pf-?$hceeIYp==RsQvss|KF6=LMc z<8eJY;{Jll_Joun=Z1|FuW9P!?VnSWJub$EWo*5;U#0(M`|ej_N@0WT;%>I&;)3&1 zZ!xQ*#@G;hikP`^CP{-TKnQ*23jg6sv8OXLYq`I0vLGo!+0f@vq0BBLc#&yy%6FTB z##jrXRX*(rz>Zgov*K>1XM}bdCN`;1DIVTcr+y^3-_Us)7A?G53-ko&YoyFrT%z6U ztAX-jc5?E!v6Q>^NlyD#CNa1Xn;RQd7p{3ZUCU8PhE0`YQnoRsKi5tXSO}{wRW6I* z#{i~@*#@E!RUh?M79XFlx2cuc!P76yDtA4onJ@S{548-3Kf9KxGA(~+Hf`GTCdE!H z@v#3lI~Z(14;SUI2I z{kdn*Ktk-_H~3*noAYiB_C8;`uMQY8d{M&Gj+4R{nYYFULZ7x)f5eqL?eQ1;^GYLo zjSeEiY&+Ucu?u%fAx^tWPZZtov;y89X*QUrKIV;L#)21Z3K`%ED4ie1pQqjPjStKP zUyV9#qhVw^8S-`aBW8#I@t1F~Uq5Zg1o)Vy+j4n|ux!nZX{zOX*K`&Jn*6vc>EE(z z0R_e84I?)2JA)n2w-m{{8G4D9Lh>x{_}9M~))xzUnSU7s>G}LZgmw$hgh?V-2`Ci{Z(bKop=#g4l^#}z%$snrOoqkCmO`S|77IvrXPzyJKfK2 zbJyr82U@?5Of*Y@+j*QzSr)(Q(j2OCP3WAAOqFjgdl!_D@sBU!56R!+`IpAb9#N^d zgc4eHL-;DKURJpkR#&QknYE9F7`l5_Xb%${+!LdIrqFEIS1=KCS!JI3Fr?wKZ;d3+ zv};^xs!iIcz+rhdh{HVx@1~ZksFGt*R&hZ$VYw@Z!fPV(vw(yFil{I@mzT^#ICz+D z=WY$7YK0a1asKL0zniz|Exi;L)w^$&8KT`&?x*GSAVdwGp8`25nZ-@`{MBVDWcdj*}6{N?Q zaMU0D9S$iPHeZG7Gwfl+~85We#l-hN>was*|KG9ADy*YV2)S+CV ztcbA)1?3rbZT>!HUtk{no9o8bs)xiZqS{=;pg(TS`Nhpl9t&oEZzpFlP^9unZBuTK zJIy}1cp5qPECOv4hrpNP|8$t+ECP26&Y`0SN?z|?e0BLWN}ShbkKt7gWwU~e!^5MM z^}p{-LU{C=`$Cv#52(A^uwEODs>k>C7C|AZOBw`mk6DP@jXTM=aXD}exRvVphUz>; z1p}}fV?I$N;M(b#DzvG3vrYY3^8(cf#@qwmcm?BHjVp*H8g%p~D_U8@Oo&_nd!{&wGR45xh;G5JY~ZwC}+r|wgcl|1{z1r~J^tF@CL#4q|`qN0iT{qab&onwNk z*J$xvk2XjXrk7*H^ojHZ;>s{LjW76agy^Ut-n!CCijtFJEspCAp6y&E7InHrrC`%p z(Y8d%R4QZmnJ7s!Kww}g9dk!dsR&~%@YCIoCK?P7AJai-DCB(G{dcI|be4>e8UGZ2 z9}qV9n;$-B`R(FBCk_km{0;e8YE1Tq0HOb;A_x8g8ohqDx(N_uEpwS;X zn|i;ivwQf#i;SPEN?!#lI;j0BTXOB0a%r9A4DF$ge+(z7A0XhDLqM43rV$rdOXn>% z-Xi-&2K=^oe4DjLuH+vIQ*rx}^ipHh*X2X(beq_&-jVHuc=amG1#+D-kPcBRFiMLm zyWpMas(d`T4vsW%a88hx0p~=|#{i}*=E*+0H;9+$%x9g0Om;33K_{Uy>#t9i#{&bF zC*1W9i7q)3Jx>0Hd(#%+VLw1YN$M<~dbeo)ZG((I=Pa{5xiw*OxJ!fVZ(x7neYhx@ z)5@uRs<(rnfVP>?;EuMJf^Ql$DbEh>Ly~+^|tzU9| zV=#rcc9?a1D&q<~m4yxsJeaA@vI)bZ1VgbZQaNAWCx{!6Jr%X06p(MyZ0(ZM5~StD z??epRIHb}sk{GplCkF=fjVzFV0=Pbunra>4uHxRz|7VFjhA8gv$Xu_0OTAwNHVzjL zZ&hjxZ+7?vad_IKep`h=sI_lJ7(%Eg9fX zCwcvaDQ{xy!!z@neAYzV32c}V1<=~(N6d^T`JwvTSI?g>G-pU)C0E%BgJy}Z&dE)G z{=s|TUEYx##j8Y-x>M)%T#{^Sv$D|9zReK&gf~C8e!Ji9pMm#L-_!3jh;2|u@nwer z+YkZHsO@swGOqqJ3L+fb|0GBJ)CVGd|9l>f~j;12Ja1^rgk zVwr{R)CjV-N@`Drn-e`WhTk$nqM)~k==+N%4Z5InYwAERsj`30IYrM(`QKP*bxcbt zz@WEZB(-xTn`jiX1TIfF9Utfu+{gr{K^4vVT~Kx{lAZ8`cX%DRyU6J!Q~VI1A7M1^ zShU<`4@2ojg=D7%xmrfUFF92p=9U?ga72KULddi#{A@Cf?UC9(dz6L`gJak502_|h z4strF%-Y0+nTu%iL}u4AQS5<8`-($4TR;PcXrdzItA!B+;Kx*mKQH_t>VJ1J+PDItRx%gDNQO6x^UDbdbkc z)DxADYe!Gyrc@I@W->o5wWapq;ninfD?i2S#F%69LL{LjIXvb&y4_Q+<6!faS!=|p z?w8Z<4+MEpF&9+~akUS8^@?H=S1j=P;r>`l;zo z%bXlJ+D9biX2#pPHG{?9VlA7@;k-q0woQrT%RFRR1o`ZdbInmbbrWfUU#XWwH4+qS zC&rxAcP%}&>2(M!Y?J3zxmVbLy`-n1oL^;8LMkVdUUTm2`^cJr5-Ga(2=m<1{nGuo zM&A6m88%+&HhsIKfkz^ZiS(@euwdq{@@@&rn|jGk{+49pPi^?N+qIDS#}cl1aU4pr zB{#!W%wjjplnM{}J`$2}%0<=N{Ajf}s}R+%xclZ@MV@|8Vjzh&ygw6fz7h6%qttr&n-7l6LjBVrGn7*S zA~{8eoZ9KSlc0)|8rJ3DukF&hz>DbbI9ynh)z#!>pKfxUcp6##GLQ8S3}bW?R#K84 zThg{eQrWBlymw5k^zORZu9hz4H2Ym+6~J}rTQR-F%NXj^B)~Yc7$g$8$7*?0|6G%~ ztG)}@u3oG0XtF`toIX=bllx&>pYUN7O|S){X;9NdV+;B%$CYbN}TTJK$Uz7qUV z__Nzio|V+ag5nc=jHQ)7TZtj=H+rMO_EGgBl}wu4AhBAWqKn7Z9?N0Ho0cs>8vD1A z$=GAil(8W@15Jy8GGlNaxzt~xrGnxae1S6(MK?ZU{|JYA{q6yqj|~;#queA^#FE|l z(+6=kF=HDc!h(dN&4c5aBv3f1??Je=xP2Fq5oUv?&xrE?(USEKmKeYGpW7*SjEv& L(*@SPcpLeDhDAI% diff --git a/img/logo-square/datastream.png b/img/logo-square/datastream.png deleted file mode 100644 index a2bef846e824fb5262e0972f436af87a2a0652ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7405 zcmdUU^;;B7)b{SuU6O(V64EIxrG#`hf-F)?NOzY=r*sMe(nxoAOD$6S z@qF(;@xDKtIoF(P>fF~kGjq>`sjJEn;nU#*001Hdd6~D5`uBf=i~U%Z>s4d{0Q5f; zWF)n`G7gsrytKBOcu&zS+vIVnm|d(Cxl=K#ME#gOKHZ#gsjHN>l;sG$>Tn&Ua_!FV zS&C{6lvVYgbPcdhTtw{tw5gTK;R*!I`V^PDvkM^bA*)!wA&Q{XehZ!hu~B6NsA~YC zzmleZbq|XsiSJKC-DV8=PaheqyzQhB;~~a1qk9F8v|dH<6$W5*rC|RbHrN)5jir;B zvFp3^sd31QM;UNPkWm+lmximCaT19)W`Ju5B6^&6gQbR9)JJj|13*P3pt0nt=eNNn z^|IwxA@$Us$3I@9Cub1dM|G51UcE&nufm>u(*s;(tsr?N2gD)kCfoDP5{v)3x+;`W z?%?MW4DkKot44sK7N5sJP>?q4D_9Zy8;d;n)uA*`aOY=IDbjTcz(QBH{YrSf+82Cs z^u)8-DqWiewiq!RLXK`lRcxoM2_tu^ARkerD$ogpaC;Ck0p;lfz81VUXdLPIinuv0 zq&P4e9t|eCHlc|b!rr|4R-Y$-;E3Ekj=b8KHAT$gYQH9bcL}#I6fv_YLZZ^j0X(tWvDfGcvT$7*OJ!qA1!pFcP4NJ=)o zo@m=+5|0j{qYg_dR}#2qHP?e@Y;c{Q^=kVmcM3<^On^0*Uq8buLz^63LNim3l}(7U zFLz0}OKxtJQ5$-=vvhdZ>~%Q4pI%PkL}(C+^uq39rkc=-`SSwmXRy}JcUm4tW3Ie| zM~l!B$*+@dUM>|c&l=UL(R&P|p6LcPj{Y8%WF)F>QY;17MQoLPwGwzhwldk0&ZtC- zg2`KeoP2q0L*ztMSn-}6KUOD{QJY?}%hv~McuIGbfJBRC-aUMhuYT-jEjVZ^x0bWf z0um0UqJ050-I{z}O;C7w@UnLF=GXI0%VuFYu8ZZ*)?IPezm?bIU5@L-_fl@F`gT3O zRZ3=TW${Php9swznHLvc<(w==`S|OUsf0TkyM@S)wE${(8u##Vd?{lQ67RJ>jW@vT zw{(roMtM^>TQXm44LK(oNp|i~m7Y1b!d%(6L%ki(Ila4W;`|2m*xlZ{CT7uB6TJ(A z84!sOzVM?M$Aw!(a{Q3;)jBG-|BH>1j8oVOKG}X0o~2uF|O>ThB%LAvZto%#9^2t|MNR zhP#c(^*L#{mz&d+y#%!850kd%15M|gY&{3#)@Igm+fQUt0XC%Ju7)1oXkPz82tNTQ zWccRNsGf{<9EGNLP;1I#JC0jYWqYn;Hgcmxgsi=bqW})v*s2n4|0oG#KTIT9d|n$X zx$&LQrMc}uGT|st@-`SwAv=6C#W!~(PlU@+Y>Pe1|Ek=+88nff1%e{wt^KnoAB4{t#_`4KLX*8`53_h(^fs`zKdAdy2NyT)k(8uO~ zyG9@~2x9>x;7T>sF1kKLvSEyEy=W(ux}ke}{171Tz^Q2e^Ww={N6xgS&FEpS?Y0uR zHc2y>NJ*TRP+b65w7NoDzC{nlppO9`{Y3*n{sD!O??f*mtK(k?uGQ>8s?2lJ5tFX` z=~{&g0aTr(3_$egE$UtD-PkMeTg&*4fZ9q<=iX*jEWWkQhIg{Eb>zR4ytfj?M87~8 z34bK@gb$iWePTiC&L7;LGfSeQ9$MQil4t8};C;h(69eSr#Kzx%DB;m#VA z!K*`FbUfdB+$-<2O3mMsmhHG)M;|S+xI8uDGHP(&)TI?rL~AAC(Ym+A2>YFnwD@ zg~}P9YUAAJM#JVA@oq{l4+pDLc)$?v+FBO9dvA!-nr1HLIXn3uO3<~GO&~hqDfRTs z8Q1H;TZ2yb`8Uadn}i%;n0_56gcV0g8ZB+@g|+Te%Pq)Ly_?EB&qsX5*+=<|;96f2 zpuejHxwBESKPqkvAiEj>S;LVeTUw2q`-j%CZBA{tY3_s3elEFvf_6(E@7NFD2fsg( zVJn5TZn_gu+Ag;f-EKf2N63iBpL*-=k;26D?cj~z89-Hhu?39BXrVsQ$Ul8~YS&En0rW#4bzSW%d?#hZUus@E2W8vWb zcK*P2go@O_Vv@QOBIj-KPI^krtVx%K4}Vo==4$clRo+|a%9AiCbeWd8OhSadk&lG} zna%?)F#pJYuP6GYz3}(gb*1?v+k5#3uM?Ox&kMg<6p)%yXX&9z(*E0zo8*eGm^L@i zvNt5#1W21j?-;jVIuZ?Zh=e24+;KyLKip{>C5IJ%bO4&>Km6&1TR!r5FB)sv%ohjV zbh!Z))IEmdXzd*iiMNQFs&{1hMOg@|sr@TNxFV;Zg}-L!X8ZAxEulKY|Gqife~j7# zfgm+DL~%8CsxRgzuM;B2ukzv?ZSS+ds_}mu95J05Yo~fMqf2K6hiTJYvTl z-)g(!ixCB+e8W)Jzp@M0N&@pF`a{$)L9ARDpw_U)-)#hlWftR51J$O@FB|u7ixP+! zhZLmyjLyEV)l&N(c`T|>#}p;jI5KV`+PHR(sin{#oo4AqRxd&uP2Yl7j`|CshS{k+;LKP(9UMrFwKOI| z4b=rvBtietF!lz;EKvj!tR}o}*ddZ@(%qLgOC6#n)kv8FN{(JgH8UP_(}->TR(bJq z(4KXd-ZFRx);HSGs^dlmIH{IP;rJl(_eX!t|!O5Dl{|HBfijBsygCkGX9|#VSX=;>m!akEUNqZ z1^5fRXsn_A11`eSswdbnWo<|dM}~^&qW#-ZOdyG&0JTZU&XNt*DNXT3tMTQy6pdNf zdOp*#NHX2L1EVwCTw|=nwWk{-cb{f>?DZtVOI!ohYmfP1HwYIXyWOaWF7?`Gi6?Xr zw*N?oD`%VV&f z*5t*}t2$UBHt=6Jy+Gu4yj$kK%KQ8I=FN`jyqfciGF#25&e+jAkP6o}Z=?`(k?F(k zXGaI#*SD<_Pa-qppbcAmW^m6 zi|XLE!vc;WIwMbQFG#V2C-?qYdI_70LjDI)!1w{x>`6oGMJGC^02AD-^gRs+$v(co z$X@MvKmHVaTJZChmEwGmT_QM6f%Y~d?f>I~JHDgX5mfcivDqs$Od5aWx7-BU-^m-LYkQ zsJ#-L8{e0%=;rUApAsu)UVC zEtsNCrbk9x;iw=!!l>&`9o78Iyb}}qb(0Kam87SBT9pEkpwHS7j-T;{wL_?|{MkoB z`Dw-;ay*M16sO|~_3WwgndHw@Z5Af2wiDx9Mab@q#jA(qj&c>j$`tgymF5Nvkmoab z*z+roHiCL9^0~lft?hp~Mu$m?krow-bU4D*aa0mljqF&z*%bcnV5F3(Q@!}ztSvzY zJ&vwIj0mp|iIIJ1KMMMTaZj#DfFomxWvNOF%0VymgZ%B@iSxQ|mb^bqFtq$}-~qd3 z2R}4hPWff;>YwK0tmyzU2$lY-=fn=*?Iw_Jz&vi}$XCoAEJ;go- z@B~k$vjF{VPFIlw2JF(ie%ti8IMW>!p2PX}{=N>VWqYF;;CkiD1r4yyyy3UNt@;n* z`fb?N)X7%|L0Rg*1U@B6oR0s@PF&Zd+DD^uiDD6G3_sgv28V5-;>6`C*}lBXiL*n( zM-?@SVV5d2q_J(l{>q{utg#&^5+GEs!>hD3K6FfH?>=l;gBe8Nev|>%eIs`5e9p2lx$yY5c*Vk_p}b^xti@)l^(@mO#q$I0do=; z(p~~JK2h7hjc84Wzlx>h=kvxu&5aRWL@o(sgvd54H*wta+Y9D^BLLeYpw%6jtqPKdW{nB$@hB@6P>+A zdW+wZX0ehrgTv^aY6A)eQcW0Z^II|zY=4pKF#qm;aG8o~%LNZd|G8v%MQ9g^1CeFRyg2 zgz9*zUFJX5QIlfhnyC2iMLIuN-}2XxTrVjfbhyV>ifcQQVfp&xvY+uk{z&XOMFog+ zAOkNiwcR`j6F+Ra>B8daUS~7?X?Bl*B*1Q6*hFatCNEFF=LtP*r5rW5Qw_W9dFzA!b}>ig3X;9F>^k|%zMz6{s{G1oi?6MJr1 zSq5ltEU3H1D=KvZ(X)j+jCZ^RBd!Ti&$AwOyZ=;N*T%IpNRT(K?k92A;T24~H4MS- z#;Wtzk4!{4Ti>?3Pq4VP%@x10J2r(`3}YJY<(J_i%@)l=CyXwmdSgpb@T6ju(qjq1 zvb$e<(N8=$27G|-t%nbINa!PN($r<4QZ*2q%{rgUl;d`($zMF@iS@B*tSFTB@QnX_&DnISs6Iw@q{Y9eYfHorA| z;Dg8;vuzKqfwqE;vO~IN=F4_8d~~+z=N0`K#`QosHtuyux6!{)Cj(OI5_T%xU ztc1~;$Ftv>tDqY zh|##UYnhm$u*tp|j=cJ2*zO9WXjO)*uSM23tD(!la79N|Ftl)>5v7mZFEl#%96br8 zSbjN`SLpg{H%V%=n7jP10)e`L?GRfTsgE&c(q!@f%)xRC?)Qtz5GcGxj9$T4@5U=I3ch1^8+8XR)z23a6SlWmfmqvaf ze&$7L>y-zcGn@ljO-5kzjn|p-keiX#w-5q5i6~6pm%S`nrBjGX-M_R=S^bTvzL+v&sF=3J&6#4E|Z<{+SfIGjDD6@ zyOC(Va%qQvC$}7mdC0-gJ9AdMO_nT@Ceqmv%8hS1=!IN#EMKFjWB4+%$*HX44V3N) z8w+`x>G1DOG6&lgJ6Et|gyr`DGGYO5SDs0|=PRIbjVd|`H+5u3ih(<@05`nminb=>H&gPJqJKK{T zvqWH~iIB-z?!{!I+D8g{QcY6FddG0>x-zfTMpV*rOWTbcK+ zy!UCsuYZJ^%A-e`NSKDd#YYyent6Wlnw=$W9bwK$*-2p(aJeG~dVnr*`-w^4eLLCn zpKZ1`1KK6d^hDwZ>F_jiOix<<8uobw)`t)>>4YBS$4hfW-1-F&HT$Ss3+wDAUz@^387P~}1 zv2OiMl09FI2C@9Mpd@mpOA?*-d#ur9I?=cMAbFUhOi|^X9|-_@i%mM|raS8Qwwn*1 zvZW?+B5XeVl;-9gL4PU~3(Pv0@?=>>Yy2IK$Rfw{A?n;!Mk#dPHcgK>hWZZP_*F@f z(39T(0{RxZ5)QIUUlArG1w6d0OQERhz?TkBTIc+Ty8A0?|QDI8NR}}=v%$`LE17l z`ioKIj3BFLMKL=eV`ylvxQzV~70CX0xwf2tx<+%Lz(SVprGtyJa<#I1 zBTSbl zi`ms~Ah=m>I->#Lf!h^#+!XT;O@!AJO3X_Yn#dgsxzeO=lzIi|8Qjx>tAkW<=?KliPA^`IE{+6s;noR5RMBn z2$o`$^EfGyKHo+?=CVrlN3)O!!k|gSlVL+G$sERK*MMisR%c&D*69)8LyX;Q%^O@d z(%jo@iSSqQ)@tH9>tWBq%+7k`_~f_oqg(V=8xzeW^HmnZ9qT>PA++M3oZDIPg@NCT zK;LAT8FK;!6pqz~U7pLZ;0bz6+T$Ltyydodr{1d<^7s9lUO^`~%|s{ggE9tA5I+$; i>HlKG9s2R-5{<_5QGv71CLcUj019tZWh$iJfBApp8eF^p diff --git a/img/logo-square/dazn.png b/img/logo-square/dazn.png deleted file mode 100644 index 3597aab3553e78cd3d2f76652bed9d40799d3dd6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8752 zcmb7qRaBcn*Dl416?Z5EiljgxXenBX6mRk19^BnaD4|Hv;-s`_DFi3Drnnb(hf<&r z+&THyI_Kj5*LQO+-g$5K% zUiD*Pv0bPr$m#m$?85`RnGN8F&C|;l`t`mgb%)uugUuVOD$1Xz?5xdTSY+ZI*8L2u z_$)Y5%R|`=1jgbF1S-m4(jlxzB)*gj(KCGU)-RA8PE{O(+D=Y&1+FTsZgs8CqH)=L z3=I4X>L!oxa&m6h_?NEh{+0%X`5d~*iOw~$V|{R2{Vax6Df*}jn*f`f_BHv3N-QYW zM?7*|0N)1ymgOVdM+C$Gg4bXyIjsMf44@^HIg+EhfpM=v9F-~`G@i%{b7)-2v%$`U z%Da+dyWdHnuiy)Q_9BjE`#1&9HH%B@^6z?OL#LUDs!VzUdZ2&^v-I?A#LS+5HF;v% z5btKak`Fnx_1Zd5S)rO1buUOTp4){9@VQfvMA3Q>U;Oa@&ir4UV~Y>r^S!0UIi8w^JzEjXUw<>*hcItH zecXnR>rCzABN_;w&ahO5kgr<*?-l>odH-in{)fr(dX+XliQIdsRF#avhYT8A(KzD4 z9{EHd^y>8Z!9H-~^Je5J6)o(WXC(7Z&h9&MT$SX`_aJI6T(K8o+R?aF)|66j+__Z9 z*W70hPFy~k-cqGkiZy&l(&h@<{QfNW^3O(QQJi>~w?h*Vt~@d`^Gb1N_EN#gI4G!B zw4!%|EDEpMR}?cU=X!Db4ctY;M>SGt-geF1-@^Vfx9$8a(=aGw_EI*&=93zjNlGo7 zn0QcCjhOhj;hjOL77&=Ktw^q*VY{_#DtQopwYFv)a`$p1r+w8s2$)6LvDprwi@i8l zs>yHcw*Y+uQXU9pK^XsXJicJHcXDHG5oOPjehz@Ay(xTC{>hHQ1P2Nb%GBjZ{yFti zJ*8^aB;)%`i7wI2ZP)7RhrwOX$JoKyw{-3#r9aEY97Xwl8Xb37D3|E!>VGlh%irZM z^A6vFDHJd z_k}u>co-6)DezJ7`7?N07w~XbCBE@gHd^8L??sy-(9qDZY3Pn>B6~oKqNcCDj2P%h9fZM!ZE8yeg~?3KwC^YZimM3l$u6{{;*D+V|e^=Gur&uh!*gXkR(><{;w zSb{6GMR4V;qQP9LHW2!HQPHe8rSl~s-0)J~Qr`ntIZ$nBy+A;=U!AkSa~@R-H^b7Y ze=E&9TT~U-ySmP6$C?s^yj-|);2y5!#>KxEH!BZsaTVREb%4|dGZMx~Hvu8KNqvL2 ztT>dhRat*|>K9P4l|OlSg*1vju_Bm>yR_n^Q;7mxe6~s}zET$Mklv_i8&I6t?nlGi@n_1cMox$k9 zzaeC``3`ah{c$Sg%^wE4wfIC^X51V$KZdf4YkM}9HB~QK2;rmH!hm=BDDSf;RFG+z zi@lXrg$e3G%-Q!z3GowH(UEcl-=ge?KRzEU&?@fnGg=ri3-+@31F0o`Pc2*Nmtd5d zCJk|ww8WGDwZ9+d69~(j)r5O6kBUGzPPAc`_VOVwV3vC?E9qfqf2oOShrx`kX~g&^ zSyDN6YI(=fQfkkDE-`07J-kvmi^%`(87;9&wM#{;$D+N+ue#DkMiMz2PeU*3d@#G& z!*h)ZDjogiCD)qy@(aZf#n%)CZRPq1t>{;W^KL8{ClFEwgO|9Sj7J~yei$J%F9Bfw z6o$`512IA*-P2*JTDrY;nhCvo=)mTtAbW{wKT?#tp^67YAE}hDG8X@N!6XaA2q&$Rw8 zsi~YaT>9$bt~!=lHgT^vx6}d3U&ge5OgWqo6RD~WQONoPNi9i-C;(fkPgqE!j3mqP z~@Y}bZ2A!-a-1U;Ca(>8LB_m%nM-Dtcp|NK}W=sFbo=itDL zj}Je8ANq#8V8#J+;Jr}#y}Ja0e@x}ypPklC%%$6s?>X=_J@`x7PN&ufQcvUv3c4wq zm>9>O{4v#RY(y>sXVI6KYq|<&Q+}SJr>Aej_?bcg3QhxuDm%2m~E>5J+s+~y&% zVr6f>|0wzS<@qMCg5nbt`(rn^+F+VlE{(Ve zXAin1hp$yrpyxM46t`=gN)U?KzQ$asN?w(LH?F4_WMvN*<^R5pqXnU#g6Xm3$m3(l z_7_UEiiaE7$Z2!G0X;2NSV}}3ZBEXX+m`Q{_8z3kiHwSi0&i~e6XIBAYmA?A_CTmG zzA(|p_0hyw)x0u#6Tfm;Z-nsjs@apxbAXJG^N^r0K}}V95$~;3OZcd3{fS^a zgOHGCbxmHOq$Dlv{&_&u1kIIBRD>z`)tn)WBtkb!x4!;Ml4jSsUKjh}l4qim(r`$InzEtJ(i0}DDGcR9?nH>JxjsF+p!h%VaXb-`g{az3W z#XIR2pWj#xh)m7s*5rV);ur#3nc}jl`2_Mn7o!y z){DYQOqN%*Y5tk_CdbVrCd$fY#A_uMSd8z2S~g&=D8*T>1dtrxkbt`%<_O)(V)}bk zm5|ErwN?&)@w`DRdC?bRNI+vux_=b|QhwY~G4l(3Wlmq}Qtma#6bU7MXx znS&Cclwv7zWK0?5=PF>i267zgYdHK$7SrvF-tTLUH@VmYGwcB$Qi2um9q(S1oM^UHm^If1=@ySr`6s47=MSRSjm|Lcm0V;gJd z0-?Djzo*H{VrR6$5~&;Ugz>R^j*jtC?&hnl8p;GvcM_V|ZX*QpXLU6OxaCi;`p3E5 zxf%yK_3H8aeX+_|w!!QSZ6Nh{dBE1BQ?Ge|&k9ygO9}1k*1ViptvPL zS#gjEq{>}Tg)1d3^-G`aZ+jMFAazzo*589>%WU|D&?*tCUg@n;Zyq5r6wqh_;paQO z3ck-Icsrl{Xjx2I(A&W((b7MW1GhAu(i%*n7(2Ah?zPE>&;MRT)QX`7%%`)+l3~JC ziYQmgW8DxpEpMDNT-aav7}sOt>iTc`N2Db?w-+CG06(4IOD zudOStNU%awHQVi!cVT}eE8qm`n;9;H4boFHGdJJ25URy(;00XC-mhIS)r&HoNwmQ< zIL#^^X3ob#43HZblZX(6jla%X(^XTfEv4PS&WKjULId`CjYkh;Tw%I9UUDE z7G)+Gw7hfXF-J!etq{-{5Q!H#I11=e7yz+n6}c@ldx&puh{7QBxhpS0-YJS;p-d5B z-kNWTxhlN!`Ag%Ax2s7gOgDNM7pvZ{9bX(=Im)WbaI&SKqt#F^%W!H`fLVjpt3$$# zldHFU8;3}wdE4)S*1jN>q{fz7@p)kjdM_*I*f+H;u)YY(U7Y)h0nK{xZ)Qm*)lBS=PBsPEg z9-P+z8V*ncC^>kHx3xAWw0a7KqYXZ=DaTlf)`^-w{7q;2>)2go@EQiO=a&pNiBu%t zESVXZ)Yo$oF_O}!Os4N;+S?1gTyhKBEj4FiY}qx_a};Cf>I4L7mHK-OjV6G5LhlF7 z>yXHR78&-hFlwRbhJu104Zy!l_5gDKjo*dufsS=#zEE62yKJV0fSU3qqwk+gf?mAj z=B8Htd5+NLDJ|o9==A$KG&-_13AFIz6!WLvnNzMj8OiPLn&)dv0>yrzq5m3 z2w8uBg7Jg_xJsLzhK3HAQ({kv@TJXI)}siZef|AB0xy!d!JF}fxbpnzPQQeF3lSUj z?GGEQ58k)Gcq>RrpS+T0VIM(yif9}zv>F#r@H}(*+_Z$bxX^ZA!z?W=lk$6!)A~sS zRtj?LCT2!?Q$N;}xg$uUHnxwB&<5`~LHEfC8L3la?=K4T-+f7?-tZryNhFNwH@`dg ztN0p<$iMq3Ky70VYZw8Gp!gb=?m}KF#MuXV>F5P8#N_c6y(Z`A>8_j7XuQe{(0-KI)d8T^AScV|oa$8yhu3Xibb#Upw~%ofLnA{yb;$DYf|78i2*knD8ZTe;Zz#~nD}64r@w>m+>B?gm zAX3-J&~SNi5^Su)8DGc)vs6xIre|#OMbxy1S#%!62M{Z#JT<4ohpSFaP9ANxKeVe` z<0EUidi*YOjbt)= zG>C!y@|Clk1^rvCV0f{jHirs%r@}Rbyk~HC#kH!bUaBtb$xsp-fhT0-zRvAl&Cc#6 zogODUA3fAYyv@mPFg<|6tD>}Ohs$?vC_8DKNhGg4=8x1B9WZ2o>~8JBt@PK3Oy|Mf2KA@T}k8Q-o{E;D@t zQqvJ>6>qoC^_zWqQYWfcm8Ek(wZh2ENb*?z9_YY>&Z0OB!%oTyLi?nXd`7mkoH9M! zrdB7fXYj5Ls6Xtjw44r<=pYaWU;T438zSqDIdQ&|({L##^YIHYod%vONE1NGamO9% z(yBZvX7+rVyQ=x1 zKGWzw3Q}@oBhShP3riKLe6f% zie5ny=<3S-8d&Hh9!Jl(z;L}D~9;W!?h|j8pLh2)!1<5lp@Y$@6XKt$(%m2R@y8Nc50Xox!b=Y zUJ5?V!2K0#R5<2XH%@$bPlHgh<_ChZhY<&ew%6MAg?*wo>*Nt|Jia*Qrd>J@XA*)xKy^lWP(+vO(Feb2`ArD%=!U;+|Z z&&|#oS?@z>zoimg9_ybm1%2@&BZtywxu&K|#IBXpt|V;GjO@&(^i75~{34m^`)+7* zTub`26c_F1Q;c;GcY9#D%YDOtU>=E5Of1pi!14kXm9T$eq1Zd#E&i5&<9RN6WZ9e8`m7RN|3;6zX$^u11r&7~^c z>f`0pxD=Coqwe;*V@G8!@&Z*JW$NBn ztXxm8=LrwJFncCr$p&)f=M%r~7FfRXd(64mby?x-Q(xyNb+S*q{2Fj&U7IsB6fUWo6|>1K(!k4^>hrqUp1~)-7OI4}O#zg$kaO5KH?*|6%aT#(C}j?DFqL>XXMJ zM#D>Ce(yObrSFD>>-nrr*oW51r>o6@)obzagURMEz$ zd{&Ns`wyjU8FE*Tl}VqrY{X+muXFC5@wp|UTC3+bl?g+Cj&*CN+L^g#vWKB@vD-s- zFHDza*v5;q7@6Kri&DS}Cl)8iX5SZ2bdUTq zIxgLhpFWQd@9d0rU=q+sD$sV&)bzCt$Q+{y)>SPWWT+!LV6-66E}7))R>X)A6awGu zF%g^6H8A8xJR8QEl=|FEVn+HmZ>{E}*FY?7Nujk@oRV*O8Wrc!AH1&SOT=PH_x_Pqq+ja|IE7V5)d z^-Gg@wYBI}izohgn*_ZEklP3`8d9Rk>Bsj@b8k+IZM0P;tLsWZe|-3!^w4+)D8a(> zUG~RBgk9nH{a&)tLFgyVC^;|pB}{t#Yq5S3PxCDj^!>cLaPA_HfM>R`-ix zTi|}WYNH|!+|zjbiN05Z%UYdj{isSjG$k0^x15CZ9N$AaO4(wWtr!{>v^-l0o;k zEfbu|otYYE=`6B=t!?FPBXk6Dh6pIqUjr-45~lR_De=kF)Ra<$8A89tAT^%Qjejs_ zX*m>e@^HUUe?ZLN)^aAANTSI7CBHtP;bEDKrEMo-|L~j%Peb?|Z|3F0fvki?^S(;d zZ~ z^fSSdo8bpb<$P_K^FPlh_V~(R9Q`$P{ALaA=ptLbS8DlCYp|yNwmcb&jPL$vN_HL8 z{&GzO|cKlnDdOLxL{s_BNK7G$>=nN@XvcZT8#DN@LhVdD>IxvOUh+dRG^D zLv3wAQxTUWZ^~UFMo2R3;SLPCfm*Kpl&Qdo2)w)lJOirTRbAhIe?eR!mfsd?-`(Yt z)r+`U%SL{4_*q(fcqVM;79UqMgluj0wWPoAm2DS#*^YP8Reu?G*7z>0x~h#IQn1%C zHas($b2oveDydehWj>3gquG}A-fYud7O{0UwCwL*Zi)GYihh?1GgKa(S&V0N99qL8C%Cg z6uQKyO3l)nUvF6rN_6|SU7Z;OjQ^EI9z!UGz##h?!I3`C5TPV5W1-F%xQPMvHWE-#wz9hEw9Cd4-%UPq2C^g zeA(30yz`V$Ut^mT#Wxciw&#-2tES~d=9g|95S_)ir>YwBgt0vQJUbWhjE{ga+M}$t z)@F1htt%KwDm=JVZE80PXQF3bFPU{Efqs8)XOKPxA%5FvYN(=xp(3QEbGzNs6tvhV z3HbI(`_<>IeKX`C4QW)^S$4XFgv5rbiUtu3jRzIDTbos%)UosLMHcnS-nz%^Q+!3# zoV2x8q05^|Q>p2`mkD~y@zmx6wfgK=>oGf*f z=9(S;Lde?I)@E{M>fcfw4hocpVv1pRsSy^)m1zCr%RL>gNAxB&MQ6JF-(In~Y<8d?LN_ktVo5)S!_V0% zO}X+c(^@EV|32t2GqYyHe?DrWptaJ1;J2eFYv|>g>4IM+_Z0<4!0nU{!sV&Q+1+;f z$XAw_BCcYt*w~@Hi&=MO%o9U@MrM+VEt3tvt>8`@NEiEnjvf^io$RA=CX3+cuU`qc zINcS-fa~YAt}m!H7Mz9KZ!1 zfhzhcIOHYFm6YrT8=Gax{nxvXPf2@M$6kaDn5*fiFcJ^`M?IbnUPmWXw&z9>TKy6_ z-;Wg#r-S!Tc5NiNi{IXC^diKJn|4;J6U#>=N#t0AZmX6g{RXxKRXgC#mp#n}^MOr4 zs8f6a=pj`>-}Io%lHb{YO|_NRno{;N0*6=DDq8!?&7=o&bv1cqUrhCM^!KVZ1lmK- z7h%o%P6XP&GQD=pW&J|)pHRe{Ql*igG%|}Gvx+szOz>8oYf;>R`tSDyOFQixqi-?20f7a z1j8OT(v^98d0e*PkC9!U8h;#N*bYsqYBvi;?`RA=-9M3!KrLHr)?W{I4DByggk9Wx zM!q5cJruAqK6%uKBBR~jso^GUTKZSAi{T*ZrXd=^D$v0h2{?cKg7ouS_O0`qz@R_@ zbBCqrNgze>o#2S$Zxt|OVRc!Hx3NyhP@tE1Jku!*b+Me?VVbd(tUfWlTeCAlmSCjJ z<_833oj0`FjhL7H1g3wozPQtThUsjCC~BC+5Oc~C)o6ueIA;I`lT)?L9QFOF9Tt<3 zVf#_3z^(UXNT*lu!l4XIa|)|BmI68jbesaOKrm?->vtO ziUV0l&5P4hGlxCp;REg05`<2~8&6=E91Og68$*jeU1-6wRJ6ABjk`;{O784f9pf$5 zya^6IKc0R4p)#+_qn;%usj( zj-QVY#7s1;L$cx7-1kQj3n%=;#BTg6(qRxrM{5tgcw9P68y9M{N``B?J9Z-uUnW}8 zoH;$MwRJY(N_m6r>tv;zoKtI5TsC1M!8XR;v*nEeG$ndGCA!r;pqK)#G9A>jXC|)9 z1$}6A^vIs{{cC`{TL;Md%ov0Mt$_puUpc@vBfR#!Dbs8n|1Ms|YNnSK6cETq&Jlx; z%jkFVyn?NcyO`WO36bCJ=Y?Kf{jRchF(8hOA)2AzM*Cl1KMuTMFAhe87dfQ&p4_p@ zm>Qc-fz2zX94rWETW73NA@2z`}__G4+R-tkT0y8tR$5_wQup1p*v9o9#j%l}uT@ZZPXLsFqY zzERdz1Aozhcw&T=C5GNj`=oD&*iA7iTjFGPIzL$gxWKq{L>gd*{XNkqFbiO<`#efy zu95le7XYx9gmwGTZyHFZMH%)xkDQKQ%*0s!tpC3YzkGOvh4t`|$ncK%iMo$6rV<28 NMNw0s{EY?l{{W=Q-eUj& diff --git a/img/logo-square/distinction-dev.png b/img/logo-square/distinction-dev.png deleted file mode 100644 index d5e427dc1ffd027886ae1e1860d380c8efc1a8d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13631 zcmV-FHNeV=P)BuA1UxzfV&N^&4|NIo3yXs!B>Ixb=khZs-JQX#@;HhF%^P8I)#Jx6(|!7CJ#%3IT&;L&C=^WZ&M8HBv*p)*unZA&p7v5@h!zF_L-oNX2q~ zBa~)Tw)|wg7dk;&0{)W?#=ak{lKp%CN+^6%r#XxEdQZ|#3L8IJDZBa^RHRk3;B34a zIzc>*pqWNv@7F(){NsPwn5W^Au05m@tcN7uPEz==u}XEPFQ9C1Ie>n3%hS;BgLo3* zvrNVw^Vdnn_(@FV2D zjY$z!ZdDqy!Yf+3_K)lvCZXOFv1~gEWv6mL(IYNTK_`d@fFgd;&D7()y^>G(%}tpO ze?`*_5-|I${bLA-l*3bIDAoCUp!|3?DEb91Pe3P#yXf+V?xyZAdmIuMS zdOX53r43Tp$h)v#=QJq#_8chsn#5h`1aSi>Y%Qh(7neWbgy%{<|G{GMr?CD5TuNS{W#_%M2miYQW+%t$={Q}D3zIh*h zl6lA!491;Md@c`giN^Wr(C>q20E&F6v$4nAUC3bWQ;m=yDAlVcs2Pe+J zxFiizQ3va!rcg&I&&AppphIPKnPbB;~K|A06tQ1;xBPP z>`yp9^@Q$8$j}Mmh&s=4ld;=#n~`LS=30JQ+STw$ou|&%65@%CFG<0PQ*dCn)3{*Q zG2N3mLnlZhLIB17dypyq>77Wb_Z$u2Saae+oJSlH#b>o6<+~D|0hpwa#Cvf-zcaXC z-%nuE7w(SG2~rC~ACS5&xy2YW^$Ubd5%xTu!t>&PbzLpqgjYws7#A6rO&)}T6DEOA z&kMLJGaah*_pTbC6U09Xq`0Li#xD15MaUE;>;>x6&Af-Yo=6@kO(LKxYZk$hiST_K9p^my8Fvca7^JJs- z&m%VgNIvl?*j9W9O0!Ps_es2&Af~<`$1Qlq&}GiM2$=$fl#4|U5NNNVe`-6LSK<*B z81gr7XOJSt+y}uuV{qApZ=f>A23`#HA@mN&As`P(oo5J4TB7={Ixy2NepEqA|BZjK z;M&E-v4{j$^{Z6puC(pG^H*^72nH{O_jwRQ1jyb0F~Ja)@;)Gk`E$Z6yS{Q1N^9)T ztV`=lWK4I-QQrqL1|>r1U=zNw`&+2K0^SHOBS;9Km={JHV;|oF$i8V!9R!pYsb7zE zg&ZOtL3B-{wVZcBfg+RSA3YL<-74Wr+joG)`_?4hMUc*aiZ#W}*@`4nXk#8jp&HWM zr*TRDKvf3>))uTh9=SM#p+0WUHx3B-M~_00BmHo}p&d}2=T+gB_Yfp3Su*unx*ZvU z``LdBT66Au96Yb0)eDGNc-FWi`B~%BWNLnVYDqEzMI;B~yq~s%B^$g2-a!yK3gm7t zKPm^_{G|Q2poQ1;2B2tNjh5f-G2I=jDUFbS#H}dq)^J>M@oOkM;T2oLc?Utd-76V8 z{caVKe8P#=7#Q(7kjp`&T%E7Ay;iHQ$|tUwSn>%F1sNlTLYIM^aN+JRp`zn|3!>xi zlP*Po?03g6kQ~%U#M)w3ybgpsmSWLDFD?Cxl;h_4jdQ>RS!r_shfB*O`5oHI{s~XW zH!b}Sge92>l65F_d=KJ31dQNkOHE6+LMHnj@6$4Z2-^m)9O*i z5%K`6a!z}!T86kJ7p;FDk?U?I-fkGPay@iO2`2Q|uFx9F%^Me{_mr?BcDEFe^;MXl)uDn;;kv!p$E@B<|wG zQ!HM-7H_~(R1t6GKn~%tSR@sh3r$W!d*mNI&T!L9>tWzaK8%^R8+2@f0LPm0!XtHC zcRUNL9!+rx?VY@zE1{YQA$VSp(H;dvkCyw-`Uc`>ML;`;cMzohA6Kzh<-AaXRhQP5 zL_`ibm@<-NVacrZ7-;BM@{Jy881jcr5IfbMQmb8{;}e9o=4gOum_brxQn*HHM;cqy ziy+liDlK6XNhX$ZYdHo2{i5K6Ve+kS>_9ipO$1{gVZgSJj!zJ+yElngWvxoYA{LE! zw05k1B^TzU(TfS!txroK2}9&zZ>PebMFXH6qT>_95w2QVmgiyhL2DzbxTN)l*6@cl z7ZK%Wc^$!HfE0){^#AQ?uXlLl~1R;I7gGvsPQaiR04W-=mRt@Cv1R;3y;TZ_p zn7lcv(}tip`Ic9WAr*o9zv>!3TS%45m7-CUSpF}VO z^>ccmjpapXa+8RzrHzR9bjTBW8?!zi8G~Zvz=>YUN?5DWg=re(3lF(GoY4 ze)HPV+H=T(ZNRqsUxD z%8>KxyISU`X(!(XPht#;l1IF`)n@WbhK%=4f~9SdM8qDoUzn4TG2w6TprEA3MXVn) z?M@yvQ=&3k_Q#JXXBMr6l1#Sz{!xIsKXtR*_nEaw4(jd_(OKnMy#}LS&EMTp*Fj*h zjFv|1C&_LEWKSh`bR!FYEh8~_}J@*tw$H!ifyHt zOr-{n+-mu0^<7wdaBpUk`gNAYD0iFiF1lsWptkf_igyqM1QbhsVp$fL^=(0t0@meU zwVi%@Dn7R0d$4NRpr#Dq)Utfr(HAFRYw0oK7@~6X9MG_95j-U#c?OZN1ejJG z+wyk2f{!me3RX8`>&#`vwhOD~0)lFyEF`(qX*CeVbI|(I^4Ptr-RuAR)C(LQ4at5ZBK1!hSOh2wH}<8f|c?s!t)}PYw$F zdpm9EFHQpqDxKsb$-@i9XmwQ(dYe%VmJGab6@#DL^PW%9jq@jhe-veamPN-W2=4^Z z>eAY<()GXyYOGgw%v4Uj{V%9&fiIy~l>k1sX0P?a%CXp1ewk|kcyhBmVf{a$%}QBg zXvu3%6d$?QBkR$Sr|!ERBGJNl_VEi7L$C- zBcDq5YaRC>~sM@Nn%4K-OF5Y(LJK zgssKtPO=JwPqezs^#<=4@yIFC-ue6(rA|rzPn!DKpIgh5wCuB30o?%P?glA%L?Zac zbp;7zsDjH%Y1&U^~91XICII*o)Fn3WUVT)B7B=+ z=<;>QC-OFz=31ZDd>NNlS40*;FJ1dfiX8Y7OnU#SviZ?}K!ui@uG-Nu1Th5y_>D8l zQFEV>Bgf1^09^q!UIdW1-JAPIY|uVXZBg=IWAdFE|~~F zzkJGFQQgM5)x}nfrpm+rZ<}N?54Y!OGys|&I3%TcWi&ZNQCDA<;wCJEyH?7|re~Ky zd78#f#Nqkn3Ofqxl9oboislJkVb$&)Nqy z*;bFs;v0|T&MA|TZ}i}1`Ml5rRAuxvN0Bvi`Bcb!^#~{ykBjdTiZg0(b;X zDWK{7Z+?s~<~dl$$d#~3BrGG3i;y`!1tPmu;i3zBp{!+$tY-;g>H|{z8@C%{XMKqz zpU(C?O1xX2G$OzFQBtRA$x6xhpFwrDXSJ-BAd&S1X&7G;^c<`h9qj#7S&z)0jL$CH z>-HUTPowZqxl(>%lN3AdUL^a5hCdIkL&hN=a~ImYnA;|3QD{~>(KOA&a0re0`R3yl5qf$DRMB1NQqaj?%CuqlGGBUlLJBA zwPbY)Rbee%GZAMj*bg;rlpM9dmfCQuR0)jTD4F|DL$Ys}=I{n6b=7&I8(hn*zq?YoB_SIV>gW4|xO^BTZVdQhcF z$B}frMamidi#|;(1;^bh-M98b=#u1Cl%&0}VGziDmd`VUjeooTreBkQq{*nuK-@(m z$v0FA9(=n}b!jtHoxNsXcxnMD#NsJ~Lt3dR*ls=YyD4yC^)+n+w_#M~VVt*nGenOL zL%xwinTAbk_{2-IyoJ{Od2MPviLd!a6gR3nzEHRc$}(J9(`qA#DH#m?-ua^;bmS7d zD3k-~^ff&<4lpv9J4=z{?^AHadbqm3Sd+XB1o0y*(plE6Zq0GQdgzgfaA92=zEtHR zD)ImqXY53g14kggE_GjA=NU0Agy2O8ygYS2&2tFo7V?k03H2C!BMz!u2j|i>lSG^# z{)0g7|BpW#f(9*aCX6cWv>+Ee0IW2UeS@XYkrS2bg0*n%koa9W^%_KE%vy3(X8&aQ z>G$IxcUzujuhm{qnr+2JCq9FS!~rNEx^J^Go+7jAk?JCjv1GK@X_Dopxd6a4?&q2rZFEl z-hy>9C>8_B0dZ2~_(@8|)z6_Ujcwv<2@>V724NgnY$-lzJ@)r;aOQ=4uOUYR@(w-aOLICAwPqAqUi() z7!+ve|M8o$U*cRRa)84mB!cj?$)APM?so`FP>QoofA5t!017ZM@p+Vpb>_bZaN>XMHe7WYUF2* zhwh_?K*{-U;c`Z))3I;>c?}YnB$;kX-5~q*dz#8xpa|y5M6_C+T9Wug4mRGr@FXJd-XYz;Djfz)H?t0jGeP{4Wn*N7^f@@<7=#V}Dh!v1*FeZMmTJr7vAk#v)V)aSo zJPX8{V8bMlDM0QtW(GEy)3EjYX{g9=Y8N#vLXLlQ8A9OO(5~UKp{*qCPqrU^@j8^9 z@!aF}9R-#$fb7&v9MJ8M6q)#dT~9n=3`ysow5t}y>J!si>JsvhF`ygjHGVQKx%xTe zJFjV*2x96D#v49fA^GhmFLAKd**@OpEgn{!t*uuYAN1KIXqPh6*j7TpcuyyXD9-K# z+v!gi)qiw@4AODu)De2AVOFbBvbsaVB)-6n&s90CwF@6E&zyV))8uQgPKAf zmarm%i}s~~JPxn;)+i@GS=Hv=A#dwA^2ralrudL1!$>)&+zmc?k%WkmWf)3MKQanW zngQmx#;OtoCj;^g8cv#+=CA6J@_7svDHnCAgf@rC2Of3QDfX50tqp0% ze5X8ByT8-1(hmyhHWJM7jlU(Z03ZbM&4|Ifj7$5+5{%Y|=)^?(Y?uSV zQlX->6A-LEN;ng$rdNuhH@vFwPp2Ru)QNOgI6Bzb6Ksp_M^$T;ZPL=XcgrOmp= zJQv4;7KJ9Y6SWwedQQP|Q@#T3zv=F+s5^2jWmKmLUYywn2_nYQRUHE&SrC*py)|lp zfFQs!T;vYqj({SBbA=oPP~RJD<=U_;ki7G6~jfr?5(Xq7Dt%qbZ4+V3Si6ey$HGBb3aQrBH zniifoqP`CI)_@kv&l{UZUQ#|O`Y6mi1Z7RjR0*I2l+uqk+V{N^b!Q@OR*R4xunJgg zAs8%mdulR8A{{hDjp~7d<8O1ycg1>(cp;ua6d6;bu5+1!tFza@<)*DG?3a0Q>6RR& zG<_-6DwCkqnrrn8tOKP=tHLTPAUKN=uwYlXM*+Yf|qbj!EWjRG{UeZB~ni7 zi&T$9j;1;`rTFA~)-$i(VEJZnFY9*`Vr)5^9tH#!$8nKw^f39xH{PH;+^EA5Mt?vF zv!_bo2{T0^0sD<_+PTMsJW4;B^^KO+pqtoQo}+xX=m9vpv)N^wrf0D#Gi^$F$z~~X z)D$H9MhLk&cU`P2eW9k4;gFAQ7go+y4*urPaDIIuROJCwoWZyv_o&qQ)=|h5(X$yz z{3C|rz}S6oDfKKU?esfWt$|yf?_!9-WdBWy1RT!?&jawzy*tL1))%d;d0*F* z9Un}D)EAug%xnI*d*R0gmY-*jRICO2oCFa`d!n2-8Bn!DP-Dyb_fyJ|`G0qMY#rAI zTxHpW_DJqF<8x{7|4jmu?n#_r3IrJbQi6Qzb6XKW-4+Ur^C@&0my}0?EBZvr7id%K zIc(o791S~uPu$H(^*%@iz~$A2*3)w)VO#MTm&id2i$u!_lW=T@Rj>HkDt0`jWWMtb zZL8(lDo*3p-M9*oyU*AlB`upK^um?5z!(T<_@W_(5exSqIiR;a&(q{!c^7w#EzOwH z+DKqkb}g9*U%z|=YRGS;l3%$k&8Wgk(N<(0)*nd$J($W%Q+VEFNNJJ_C-sHxTM*>g zPHle(ADg=ht{o#z!~V)`Y|3QtBfN532T2M|oC4+>0GFQJ50!b|eH$^LH%Q}_%#?4M z^$7rkHs({#qtk~0wVrSFUw1++UjM2*Y$-pb>|1_6q`rCpZ1h*t>F=bM94b<(F04i7 zaU+nyH=d}xEG6b00A5{a-mjyj!V;9&GC#NjXFRzBsxDHe;6xBIAx%^|NVj-H*iVgQDG=2@iH!{jk=r!Egpo_rDQ4CTY= z!(sQ5a}22(!T)gFwVjpL6Z7s@%F?$Bdj^ieb1eciKN$}73v4Hs+=-9B{1f#{CM<9c ztP~P=za0Pk2IxFp)5pcyHA4Gf35fodFFHFHFHEy*m zBA3HI$s9jX9z1U~bV>HrG){X&WN(nhytYV+9JtW_n{#f6?~d~n9w=T!L^lKsC>1L5 z;Ie{rCHvjskhzf&lRHCv`-97?tF0M}A55&kOe7j1UIX9#scQo+}XqO&@6eliHK| z0=wtPR1W`d0=)NJo~Y+&fVQu@SESjLqRVSgc>f;A6nP^_7_RbjEV=r!Ay&$-*pAG< z3!i-ZJI#9n@)qfgJmlAp&&|5HqToj*b@6!Ex8yQdw0|*E`vyAKR#~k_XFsA;Wqs24p0X=0mWJjNth60_ zaT?BfZzt4T(JU&XUm?#W1@(JI9>4Y-2v2ftqoKBlz$id>t$bLHpYV74Z^kij`c{>w zF{Bwrk>f5BT>znP!d!55@lj>toI7FnTLnQq^2HSvNZw(pR~)<*nB;@HJLJL;4G9=0OfvVIDUV(IF?300ex|ZbBP7WnO<6f# zil4B&@k4MFBSw6yl%?n-uB8A_GtkG$Snq#Xn#e_xaZlzoau5 z{XHXBYawB#QMzaC|D>2Pivc-on+N2us#zJska6>A$Cy-KgggvVG|FFlF962*CZYp(+n>!H%!NudA;V)OUn^$wxb|siR{&|_vyoA)GLlYOMbxvNk}{A8ALlFmotUw6pC zYcCpVsmVf+6<39@$bH&)UB&t07ybGR;`6IL z6jNyc%W6^bkx%4JhS7iB3vpAswxnooAuich8n<+_)Vbe1tT{S-RF7D$*_e2O5TtTa zsMbJ^qO32K?JFLD%$**8xyQ4YFDrI}ZQpPIV!gEPDL_!kwF_C^*2D9L!G(>N zJSq!qTy>thp1Q6&ufdZT&2jQAuWf^bKg73)-0mPM*v~Z8@MA{8yvkZrza_)VqE{$YC*# z0YR=Uchel@hi9LI{M98bvYTw}8YHfM4FVKP1e~-)iFfUu#2krYhTe)xb5_IEj21aT zn$aZ*NmExYlfwExNHq#Ha<~zC3WZlJ642T+`oP6mpDQ0c{VPacEwtaDD=@T3uhufa zM}L3Dn)UHrC_K3*>NaC6LJ$p5E@2c{eZ=!mF6l62=s%cbD>+0F7*$AI}c9#WpCLMg3%)B30-_~oD9 zS62OM7F^V}t+Q6N3_%)jEe-Isv@`hJTW0`nsvj<`MTc|(b}=62)pf{|d?Lr9(eHd` z!)P3w@$f|kQFKX?<-69rkAmYLYRq#*$$522^+odBZR3zuinG?@Pac{Hd52p3-JMo^ zgyKl+lLK5lNkF!`)Gfl0-ILrbk6!jA^qAQl46S)}%O4Y4milesd z!MDMlKOTgVR*1MJzS3Fl{o9?$$DBZvir%DH!zS$(O}$Pf@AkNVqo82sv3kIiHF z6Y=ucclM&7xB<=NQT^4tD={md6qc#WSpAc{1HW8Riqiid{(jzHAbThEaI`eMYmrV% z*Z zg-5J3E6*7f%Arj&@z!}Op``W0Do1pD58_F3xX`aXX$XjxhcDcN20zzNtN4vbm>weE z@lGo8j~q@MleZrSaI8Jg%G2759v_}ZYDi09Qx32EHQw;hbteaS1wk6%3OUs6wS--& zz7U2^(x7?kVDOwynq`kmHpt`Oto0m2NaGSODDV`S^tE+fsKm?DLK=0ux_{VqX2&eN z>De_Ndl$$}cn3jTB?m7=pjkm6TS;UL>MIXjv=5S=A7KALvsUbtImJWU>g})^b)JT?X=cP)!bSctTku6cmw%CX+j9*4TCT zX)2Y|>!w4-sy0gw@CJe?$U*bmRRVYGY6*V`b*Y}i6)zy_0krfl8h#?EP|`n`4BKA& z4hpZ&9dc20c!H?IW?_q`uG13app8Yyb0UY9epzGil-kv~(App&>PuQAxMSIQc_MWgGS-qq+5Priu>Hk$Lk{Th z1TohsShI7bRe6!>wOv;U#cD%n-y+Y2c|v|(T|yp4U{Q{5cmlS+xT`&p13ElGK;=DL zIr$`VxT~bJ@m(bcYaYDzqDF!>K5H(P(tIUt)l=}*!nN&<9N-lM0S#*dbtopPkRtty zdJb3D6EqoHiyVY{*ixFOeDU;XIK1{W)U-cxfY%VD0a}!+CBi38U)*owYLQo~2N4-l zq>p-FOX)@B+t(+xXL5j75X9ZsTg2Lmkc%UqrYlt~z20!uvo?iQ=an;SN5byqIqjJo z(BTPUwV$-+?-02|4mCWqPT_tSLJK)W=b^wIVOFYjDwbXf(cGQp2xnkvMMB*w78d;gUUwzjb~ zN=u;Qdys26pqyR%E=X|2{+nf4!Hw7)=zUQ?VM=Sm3g>tpNR-gLcBHZEfva=(Dx2OJ z3&+>zlWTMwbbJp|i%Qu7o%;o#;J7jN->z6~trnZ+IRx4e>+ndS)r;^5L+IB|^lQ1h z@S%U+4SU|a23`P)jp%@gnj9eCzv(1WAjaJoT-37=$sro{(DGdMaIUmdd&1J(Zo9G7eMZGRqB*@r(FeTVTz#gXf9{{rS(PoP3zwi@~H`5 zn!5>qG-E29N%hzU{p|(bLy%gOmjGNneh{LDRinV@rY(|r7M@f_X-9k_S1S=ob=5M_ z6rLlWD7hNEATG^ak3W6%K{%c2@jb}f1JsAsI}jWP()4|+B){kf+=}UG#GtivfpA3S zcXyq^>$71#*3!euM-PpG;~TwVK~92qd5{KFmjEs}_9cYHc13~l1G(V`C#{JbJkP-+ zq?S-hv|rU<`%S>YlLzp3FHeDkD+|Gk;hhAjMadZ}&e^d6%l?<8sHD0NLu*+NAl3a1 zT02%q#afrRLo(L*BzaVG!6!ES1+V?x49M8hF&@cv1KvvzsPiOnCGQ|~>643s<8N<# zc#}sIQ7i9)H)1L|tG=sVLmet!N_z=^_QXQSKMp#)ogh&E#BYB3AzahtdlcLEK7_#7 zSjJF(;(i=F3lAI*qb}#QXO#=qb-Y)D3)AQ0O@DY5at?uxI_LzcMMZvXTyYNM;A|-( zahhFaD3;o#FOG;Y3;hC)mn>^gV&E}nngTSoBE3j3O;}EuXxoT{shOrYSlf++XHlhIKpxT zaCT}2n7jRqIwjuQ_%LVv$LFZ`I7F;9sD5iDhe!xVBL_6Ei<@M?%7wI7;eWq)0Sb@m zJe(#YW@0xfF~R-S11#%bs10rAz7|AqhD^_)%)Hgtl} zV66tY@WVbZ7>iMt!Q%jdtT~jT)nV1s;vq!GROR7wJ3ho4|NJE6rCCW+*UAS_f} z0Vw+E2dFAOiQ>jgvEL`rYT0RP4q81>^+oERRL&T)*-gMxoBo1VKR!n%hZuB%@K9L- zaQWCV91`*^3hg%q$)*6V!h##&6)&GvuBxMYAEib)vST)^pY71t-q1UjhaVdk*!>TFUtyk3s6(_aU!sZ+X_%pc6zC)ztvU z4qn7I|LrKc-y|fPf;~b69tpJc1w?XG;zOGrg*9{k2YJWD=c~gGogiAElmO&x&I4pj zMLov+5&-;MzA7cMSm)Ix^xNza7zu33;gt`;y2n;Q*+mZ?2=9ST5La;NKt8rvHlx@f z6Od#I74inOJX#%6ea_mX*>hDAT*HS~J_sA;tcA*}T4$)E9y&o>fz1Mty|VxtjN4H6 zG4~^YKp}6SE(6Y*g47qSP4lz`r?0#Z);zgMCx?5`3E~be94N$+&wdm?{BBemZUN`g zEfU!8kQbt<^TA==QJ1zVXLrnj)sL>y$>Bb9g17_40+9FPd0blXgVZPG0p|N84QYvK z`RRE;UX!Sv55vljEB*i*=KT{&JJd(kuN!oNxC?7Fz|~V(xIBL+itKwU@-;`=^LZoy z)o-m=y;QIIVrzK;-naZ2*zxAS;HrL~!&A@+;t5zP0M75v!2z-BP?!F9BZF_K(A6i_ z%+BHe~*X6jh^Lo^?|0HDaZ3?#m|EmgIoc$^4kvtrk0=n7r1g=D}E)T2UNx|0gZ2axwJ7C+3 z>GsRcI$8ueL0SrzGb-`b3+qwuapRG}H=4NqU|p#KRaoV?IG3RSr!Kx7w!fUAlcQy! z6Qm_^Iim_+&HfbiOdgDk0X^+`8n0SmHCb%snfTkqw?pcZ6ZVi!M~gzeB-GIo7&yJN z^y`&rs1joAzqOL1J`YP!jZ^*Ajl6gOrV)Re}6L6X1}a0wTlJPPS+zJr2eWss}CB6~fd6QnI5 zFc6?q5`Y2#SJMGX^t<9Zbm(XYkgm4?I&`#U=mgQBg8`i&I&?7b{{sL3|NlOj7p{d6 RP)7g&002ovPDHLkV1g7C7G(ec diff --git a/img/logo-square/fourthereom.svg b/img/logo-square/fourthereom.svg deleted file mode 100644 index 25632921a..000000000 --- a/img/logo-square/fourthereom.svg +++ /dev/null @@ -1 +0,0 @@ -fourthereom_logo_colour_white \ No newline at end of file diff --git a/img/logo-square/nx-serverless.png b/img/logo-square/nx-serverless.png deleted file mode 100644 index 4a9bfe8fff9c503a14c08b3faad021085867750a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 59049 zcmXt91yEaEw+-%Yf#U8`3KXZfySo)F?jGEWyE_zjDU=jjUxtSz4 zcb~n_S$nN@B9#@T(2$9c0RRA+jI_8a000en2@ODmha7G_=bj-4SQk+lbwtR+7tuTd za*pIEt>Xd!py2%XgaTw{10in`x=LufsySG=dYCwW2Y7gRuv**Ox|o?berI)Xw#+&g zAOZl$0W#v>)IGCLb1c(wH5NddzZ8==O+XX}^t=($_~I&%q++#TSbM^iH0;^m>qZs*97Oxex64H<~F8aM|tF_8zAJO z!InA%pu%*(e1vJLriZ74Qd? zUd8eoCkzmVzQvX$VMz?ohOR9#ejXbNhAp$o%dGh+e_`(Jx2k55p@Cnu8PrGJS3MKtk8@5A)D zfDQa~%8wV>_xW=m2BuGdZ%qAnax4*&Ez3T`{H|Iz5tJ823CjA=cWsYJbw9zdm|~fo zv@r1Js&*cHsMs_9ls;;b^yp@cdNd$~Y9#fBHJbc@cW*#G4tYY~Cp3=k9N(rz=lmK2 zx@0R)P;LDIMGG!rLqZ=L)Rqc)OxHlb#R>9>k_shO7+HF(;KP7E`Eu^8Ec1EqM);E6 zeRiriW%4e2Ppl&Fy{lF><}g?s8{?J4=OQlcl()Li1aSu^?bi*F>EN&oHS{IG1DYb6 z>)pp_HsJ|?{V+>1Rrm4!b@gYG9PF`a@-gof<_ny1wXj5FAMO!w`AzZD8;lWEm4J1m zI6%#De}i5^a`3v6eL)~ zWa;OrUIUS&1}Y(&0cCnVD^df);;?LzI$?F^CSo0x0$(;plX*=V3y-1OMe4n(snH7o z1|WB!j7Tg9H)dna8pzeI1JqO2h%^q_@G$*yNe|}^$YTE-$#ecxd&IV4;t5~$Z&J0h zokix{mo~8UO~scXL^FU%^att^i|7>89E`WwkLcS0={Z5&f9%lmFdKmP*n~h9-up{H z^%!!7V`g|Zs^{KKIw0l#3Re=^w?w*NzF!7mizvU5-lRh2GA_&S-vMJeqgAGL!Wp}! zN#bJ>fg_%{;E~s(k%et{<9V3pTbd+ap#8dTL<2uS<~$E@gIMPUA-Pf;ca*Gi z_^iyC7jG2XUVH#H69c8DF7=L;@cfno40sp_@AWmFMKrKz3NIZ-AJ*5R_lkPL>{(}{ z=87z#VfNVv$fLYlbkqYaBLnUQmPEDeh~tTTf}Oy4c-h+1^Yi?bE%Q<;s#uwZNP#^% z+|T~YV+(yZ;43odhC^09p!f1V4?)u8A5AuVHq~>!EP2jYLR|d9MMp1D07$wZ{!$n? zF`jT~EWhrHM-^xKISj@){AyEfKX*6RWS4_x!la{K?|11-*{`=ZZ#G^+(Qu=my--=Z zAuyK!Xex}>yo(aE#y2+c7g|wPdAb;Lj!2&h1m9>ZzMnjqCLu-LfEE~sNFfl>Ar^`d&BJ_j2egYmj-d-rc_VR1A7OvEcT~abdeVrV$d@$ za-0Gtk%$&ZN*uWg-JKuc2dXa&akKj6IQWEM6w+c!3?P$iQ{GWb1bvu%wYgIK98aN| zU;9m~K{0?-N%GE_yl7P`;_E4fNcl*25=ai@1vGhx)XqxQQF{gd2L3Fj=CF9cm8jbNm5ys^Hqm=aepjpHorY+49w41Hj z6Z?4mJDzvvFICuUWuX*f=sD=k6Y*2)=QCG;V!zcZRR~I$&*AF!)G-~xR$Hp5Vs$NKIJaYSmx<}g#vNPSI@%Ts z-w}=N{_^&mASEJh zW0&DMQdz&%^k-@P-Zq`y(Fkge)FVC{WyP8hfn91Vk^lfE$o2~?^$PZH6@Nq&FK+{4 zM2)ehsI+`!en~nOtB`~a+=Ylk{oBa*DIa|wccTV%t6(Iq(9bv+$2e-8+P8=*A{Bte44H;8d(kw70NyD**VCW zH@Z(ir0)e>mS6sJBt&}`0B`T(@^ZsUv-2M;%V91&5OVUt2c^Dk|_wR%emi^v{ z=1PeZb_`Hnf#&td$i}b}rrbIZbe^wKzXFBX^4xuEt`sZx5_XU2?%k6~AR|wa)buO= zaaQ`shE+?NX`NX*E2JP{7FjxkoI20Uvo>=%KBxmZX#%UmEr0-j#hQr(^bXAVkWb1q zmw%~bu=~XHLJOPu&(+*&3T@6q7m6og?L66r=Y^Npi3~~^S3oBg=?huJ4%Y0OTq0(= zJK*{=o_9;dlUcwFui^1`6ghaS@X&S!O$)*eX4xq&Gn_I%%Tf&E@0Y1}PRg01PaK z+4@qter$EcD0<>g=?AVZXW(s4ERbT1xoW2g?Q^f9Xz+uZK4Y35Y0c26U4hNaiOAGk zY|7Sta)(;c4&OoB8Wlzl=(T?&a_!Grg-(9U8%dE9qIq0BC`8wxmyPe^kfbuMXK(O0 z3;v@Odw>1-!Vwh}>bfL=WtP66kJa;E<^bE>EZ8YvG99PuG9}(Vg`MY<;lrNK3BMb zS7;euGrlkTDz<+h(fbFQt~(F23=uB@M?fR8q2R7`J7Tm0c@o;kWnzfNG(J$%bAJmQ zx3GU?(fs@73w>FH_$^WQN?-udz=XP)P)4`gR^g(A3|UbBoB54s&!+=y-It;|$KTy5 zN}rYd)g!75jMl`99Ro3SER=m2U^CIkEAAY9@A!kgZ{hT-isN(g^kYdG@k$0JMTAv) zsDCOGm=zc^QWQHNq>$zDXuXl3ie=r1{aB+l9|!gyqLI&iYc3qPq}`&%3bNnL=A@1H39;@IjHi*Qcbn7 z*{IU$I`VisdQ_YLlF>2GeJy7XFL55Gv%>2aHJ=Ac{N1ek#30B@@z$sJUpdeTe&l0* z6ioHvojzaFPV=I&QIfoR9>{K)&x$JEvFAs(lea9w3`2!}jNzL4sK>k}*GeF+Mjs-I z03J!GtS4}nkB}=jG2%093@e(m+;nq4VRKwo!S1fD5%36dmt*|siHbsnOf?sk(&w)5 z3$O$CbRB*)fA>Bp+H7>2wd!ni4H_hcqUe4{vJ1Muo=}?p=0;4?BEbzHlCe{wZSOq_ z`&-MqdcPTA>SYBj$C(;bP=Sf2ui2*mlbH4n(qOAkN~p_;l6!aQj~jD$`$j#**F zqCo8vmYx&=T_L1e{0E48Iu)S&z|IrPNhq?1eK=>)BAa-i@n@&w7&9Lz>=khP$@JW}fBCbFL6Z z4!W#EukwPvyk992zyd#hj^k1ckby6P`Ppz&ZPK9hsbzr?O3He6`;M-YjObac-d*TrBz~_fNB5uZ*Q)ovmlH4a1^{Y5PuCt$xdnBkF9@ zPZKd^X{4VrB%4$GbmFm}N!u`wNHTgjrIbd-CK#C+(gOM5vRV7pVyW6*SVV0STI!&KYVCbgI}Ad)og65x zO=+^0c%N);9WyY!G#)X($~7rRR#Tf%4`s;yQ^D1KG6Y#XnYKb1Ju?q*DIr%PVy4Eh zI-`gT9SidUv|{n|vb5>su;z)h;cDeWJhk3W4gysObu!&9N<9KWYAl zMw@OjxeB@nvSR__Hv-fLWxCN!>Z+T*PP%YoeNtNJO>GKoQzklc z@~6p@Ku!c*p6k8LSwYyom`X%rW>E#I;~$|R)RMQF){A`|*i}vDy-1jS%|lS%6tR2C zADT<-^(vSC*09lH>)(fxgg2sb@kY;`H$QxTL;IZ|c&?%9qi?g4@D;b-;1hio1@l1# zV=Xy*hU^agVl?LGrf^vUCox}iN@1<-A5K_dm6-9pbUh$97;ohG-agLiYz1@ncXbnj ze43zr5@{O+LU!!OrPLy871{29plcmAorRr6q(uHWs*3qbqAn?g5o*7!GxML`#7dH4 zwz#u}$-XY#cqz!jlsBH(p{0mKZ~WU|PR=G{cYf&08As?)P!asyYh8eJdQMTG~jU_D&T}m|{-Ny55dvL`@udOa?jZ ze8ySB{lK=Mqf|i*gT39h)O+zc4TNOwy?M5)<=_e))veghCl`zB51$T^%dpyNNW9qYpIa&=MIuW8)G zU__%^*M~)9vP3qE4n8~ZIoez%eNm%R+wQ6mrJZX5A4aR%S}s(*_#+#8qg%cahjNj@ ziql9Fr(BbNAtf+ROOGnl5h0^Uq^7(CB!PT562DgoYD)@bP?5G2XHTfO#%eF)-zqai z@enFW2HQv=i08w}Ej>+_SmE)DN6mATR&=qcmiMXTN`N&L6Ui0=a4~gCJ;Yr}_zbXj zTHQn$GuYraew}5FcL<2eehkFnr;_Nfs3vXgVD;RadQ(|FCWs?)Y+=Q8;*Jik^~**r z-7UL`x6o=6=t%S@<;L;Ua^+S*uf_aZDR$a{^yxL;iHDM+2_1JPVRIa!)s03U8n;~$Q5`N z#2_c&8G!;vTb68+_x-_ivrRF3XIY(K-XCCaJoPyx^edd%!0$`e&l=NIDapQWbOl_S zI$r4^l5wF75TFLj3$(Rlh4~a^I1!Vd~+t>AR3i%gxuQJ}?itL)Goeo3u|0+PrD0^kH z-OwH;4u{(#UrxgBSct12RSBLju^4le>m8cq*sfd9wYS443oc`ZkL>nQe#ZbcpFJmrA$M@Cc=9z+2 z1e}IVzh(M^9yTAs4Yd*veiK7u)=NtW8cMz5l}rJZjK7T@bjtR>>S`SlbB1UtwVF-@ zArwiRn#Tx$`oT9q7rAQ*GI>)JGfYe`c&kNmld5zorkAbx@G1d}G2BorTD z5%AI1cFzR*=v@-FGi`>(o-L+ugg(q6@RT4lRKuOq05X=s*vr|Nc-Xl7t4BoqtIs{+ zbz#d!v9si5<@j_7nkFRK-%_yYVS`(r^8^w~yv8O&)|j zao(A#28{;t1U7?hVg^1_VX7O_VvQI$B*r#mK_c@( zpMyd;58mpLKy|<@=;PF@+CwwPESD9m58Lz#=XvH%MiA#12ZI?UQp72GO3#s#)rm_r zqhV*$Av=!nvv%7D-P8(WUSoi4YtEn1j~~&XNjPH7)-?zn=mm5Ev4DMmXP-&9-T`qpL3N8g>EDP2c>vC<``Mi<0uWWri^&iwh zPB1yk@a0ERCVVfO7r|4!7ayv&SKWS-b&AMUJ<2vY;!a(+cB z9$_e9>%LXbMtzladnJNs5k0xfo;jlto%t0&N3j*{7lvZP7AL;zjm(onbNfCHZ78LD6J-{^0Hk>1 zf?TuG>97AE>n3^{wGUbI8_F`S`kc!!-adCbM_sgObC@(JBa>vpKZvM(p{vSHJ!go- zjY9rS;qD4+Z;1G9XpYWqA9b`w6Ijj4=E9w%!1c|yhu-P~ui;6&=kJ6;)5+qhg3j#s z@BZ+qX4H3FZmJYaQ$-ZAfBx`e#cpF&=wC<9GHNT3pi1588AG_YsUDTso#=BQ34dsO z3jBlq&U^k?9Vz3HX;h+=<^x8hZL9|DSf}vS*OX3q4<8eN_3&jYQ%Hab=>X!SGulDg{FJ^y4>;}W6!A$*HlA;cg z2H{$OodnX!wB%j~=UVsk=4cyE=u$TBuZ&u)^`Z>)49w{2-lE3)l7PKK3uwiLf&Kh=v5HLZ+ zWX-oFZC7_7;SNDH$yiy7f=`PHBcD%d8Wy{Y-O;<2sqRh|Krwd_XWL zz{FMKH-^=}a!J-w=PN1kD15%^Fq#n96hX#!bLE{IFK5^pc1oydc1km09OIG|`A%@Jj zPtsf`#`~*#zV{T>H|}ospCfpiC_;sz=T9G^3JSm?c-`bPhin_ZX%&Tu{NZ3GFr(=r3bjEOq}9LxV^jhcbJs!%df+UO4VU4zL50+?o#xLX zk-{W$y-DTKwuq7OSkqVLc_+Yvi8Jc1^_!slyPmI6{0Qc42V>t%b1BEZoH?*ST#Fqa!f zueUjvg{r58rtFf7bxa|$&2frAnb-r&vOS-TwSnTMPomDNf2mt}vA9Z}Q!;H-iSBBj z(hJKZv00xL(iL_4(M=lGM9eGGCuy5ctmohL`cLR8B#aVuZ)sls@k7WB^_o}fJTc6T zCZMZAgdz7f0_)1nGcr}4MOYEhd~PGhEkW2M%Ejw4!NUNVu_uN`2uyt7w9kHBWl|9@ zKoom^hYRXbgpW(h^OcA!z+3i_amP6(V^`DxF`AdOE&8jxrYcMYbu+0k@XbB=YTnLT zHkXbo{PjfW`z%gxBz`SUQIW9m4~yd-D#f3e>n&qVs9X#=#rS@tEY>D^lK@<*h-{u zHw#0KRKkosV&Hz4ioi~5G39DN+2wFj#M#CVUCrRg52~q73~%ZnQlx^=-opa+dTB&K zVo8kfX-X3)-PPU+B|6M?n+YUoLHjRvHNH~uk_b4g`l3&@MymCfa-yI7BY6&Ni3a?h zf@hk$^ieU?S-Ziz>j9qSmsEFN(bd=ZZrgfaRuybAm%(R?Q@)woXzHfd^C^S0lg zDEz#}hq~`^kn@BHt2^(#a%`O80|yLL)bVIAK_Xl6-@kU07D!PYZVRG|ewAlFRYds4 z#F6(qb#85CV(J~9~QbUJ{+=n?L3ig3Qv`i%~07=@4Frtw-?A*Y(e z6jV{ixALpnq>{`1oIfF--;I|Pq0qrdzkQD@ zEWP|uLF2i(N>Be24Tc%jr3Sckh=9yYQ(8X=Ik@FLks5_d{Cu@^6lEuVZzGy zPRs1Cxt)z;58~5qB!bwID4|nS8pI(HSPD~xSfg6)QIp|pf}si+9-J&pAJ3E0_MB6l zs$AkIsjBU+$a~$siv5WUR)4Wq-OAx+InGy)CVth&;R6*Tr$)#n0w+nYU7Yh^8{fgV za71FX$W8+MX31t`eF>C+Qmqfb8z1dPDAeJm%wDcs=j)Tkc1a*hk+G%RF~s6kB9RT9-u@jv6Ndh3O9_@!rE}`sdtJYKgmiPXT%; z;a|caI+{CjFWr9o*^Xbs88ue-MV@cP?!2LMtY!Hc=cWG+FzB=1gtlXE)-pNSG0ir> zFF-Y<#TDOIe4x*}f;bB4wBFv|tE=U+TE1f1Z)N+8D4LlY@IVlU!5#U}+oOycz~THv z^Su~i6m;$8wwXc!>kcJJ1lewB7p|E=>AX3#hcPu}hqHbK9cNxsu4UrJi~cLx+U94$ z-M%aOK=r5(E+iIp|Gw@!^L@34oirKy-CXo(DHqIN(fBp&)zNh8Ub_M0HqNv@Fe%Y~^QnEXo zS2X!6J8KGW?2CYYt&Gvin};G0H9U1uLM3>sFvSAudh80Ldw%~C>wGn%z2?TYa(|`k*j`GlRgnjUE{!r_gFA1ZX%1KTfa58Sw;MEEUz2aI7O8r-crLy zpD~tX7(Vt5r`%)sV|$W-8*W}Bgom}z_nofP{PCoPvTIW!=nHln9aUN~da(3~AJ%(V z7XYJv{nI-4&T{m$*R5>KfY}YNXc92V^{@65*`H`lmSNdo1|>Kvbvmb_Q6Gj4w2$}c z+nvv7W>{XzE(yJYr@yI;H(NarI0l4)VQ6}8+;)r09b%SJ45#$d4AmhyCC`7lp{(L7 zry8q!E)7Xl?Q{pZYsxOC--N;xQE{+0t>obhdw>Mb#m38JreD2l8U^0Na)yA8aMpqo z;tH}Zx+H3zE}xP-&NqhzZ#a4+y0O;Z`RN(opY39fL;61bXe8^f5K6}>8#6l>vz zyC?iG29}P`rnjq`&2s0Y5B%YU(XmE8Vu(+wiBE!ZYs9_2!6jPM2#L8nqp7L=hG9G( zC@hc-Gu3-K?Q3|b*~{R4(t7yXAZxkI7yJFhEwy@9N3FQgPHVh7>xco1HfQ%cL_ACU zaj3Ki5erdxp4wiqh!8pK|8yt>{W{-Yg7w=LraRGz?t5{d0+YMoowz2mHl$Eh{KArDPon(w1b^$E=tnbAy1ZWKrViOaiu&id|t zhWHV%oADWmV?1QQw2GUB(D-&r!%*?~dt5JZ>|ahY39rL-Aiu1QeX#RqT-`6qR@^OMHgWO*;|qyb{#W)W1J{#6&@BC8;yiI_gE@JGUUGa zKWdmQI1r&|9{$*5*$_KlSNwhrBXoSQw9B#aY?@3bglR~qoDyJ0jj&*0*35dzKHx~V z$jsl>t}t{MKzQ`V>MBu~CeEz;q`0uY(W6eCKk+n~xG^~=|5++hLmhKNRoZ+|Q`Ghk zP1`M}$yowiff?{z55&@(%ze4RyXuWfPv0;8Tdi#)Z(oV)qdtp~%i3xLX=mF%x(Hx6x?^&bCT{oLowQ zpt|C5353eRGfG){?Q#%rzd)Of9#JKahN(F!AO>~JZNRJzW_dgVd8T@`8qIva8thgs z>sI&B7edsXw87eXx^5PtV9s~q{b<5e|G)*)CQpGC^}1d5Ff^T2$?8n{Kjt$p*-HCU zCzpF%kh+UhfYo{v-&Uity)#saO;{6meP9*M;wgX&hA^V#`kyl(Dc5f8W6aGSSVTu= zX?n|2UnO>!Z_j8Xv_oe+E3%BR`BQg#vt-4*xTlVkbb`3t+1Us~n0XH9mKE=hbH*+? zb+N0A4wl{$wut*uS2@zTM^v)U1PZ~t{QD~a-YVX5Qd8tRqU1W!{_oIKKByER;j075 zj>i$OH?*c7F5}I{hC72!UuFPYxkFnZN11wdp;Y`YT+8;B)F@~FOQ)N6EbW&86h6L$ zowE=g0z#G?sub8XKbgJ4xQLVt!{A7A_)fqp;a7Fea7Ey1f9l=x`G)TIm0AB8wJN@z z_vB=;*~Xw#A?NuTyJG5Zo9K+Q`$+Xv1kNHdPX!}@NjUfn!I_nDK9fc9<`|X;i>F_9 zT}Zx$R6n@B*GQ_=e^0<5lf=zumFzm(@C)Y*oa7jJCXTK4aUn_&JXSn5d_{(&Od&kB zv1VDZCUxs4(PAs!gz?eJy9Wr8|7Uc=v2hxPZ@Z6*jGUXS?(5|yqA?X@;_J4Wux5g~ zQ8myfi#*LpLV{9liu%z3q=&`VdRlJ>K1uhCzTVH2ikOV3`8Uj-jXr+d4gxO}+$JLq zrE&e)uq}kS0Uwpm!D74sp6#9ncC6wu#+XJY)^A{pvIngv-!RGg=CfWOXt6*%@F=iE zP!z#_4mThe{ohYNQ0Gl9MTHj`ZY^2~5L>ILoOGrm_8VF;mM#y0AQ9gf8Dp^dbJ_cHewicoHLDc*1mYm=C-jkn0MWgf3h}7LA}KLX&XfN-&WiQH zK8Z4^%7~OS?6oGW>g%|-*`bBa^7I!Xh|)kZH%5wl%;@_TlDELU@O;tVqjF)NPfTTL zwuwagh;#t8dOA0x2=Atr@m$QwG_A1e7Pg6NvHaZU3jK=4p9mRMRsOidFe6Hi;XkjS zLebkLG9>GS@o4(I7ovooqP_P4I*58A?>C~<=xdovaj;IX9qfR;00n}ROoVI&~vjzoM!zP)rywqQn9P1qrvJSDf)})!s-w z71jFFH7I&TRjK9nX>Dd4MQBd{O6a+@%;tPI7AM2bcGviD%7>Zy3A)kA9?hP|b;WiycK%31ZV*9?7;FCnQ3dpXjhiQzlq&|9Gz{ zt^YXC+DxEt>ZVT~deXfxPKJR-(1MchOW(|P6!4FoP*lyU;h5(=_( zK63_hUAG$03O@Pe_Zn)_)YwJ3;H1njHYNlXTycyK6^ZR(M)LM`2G5xjob?t|LDi%D z()ltapOg=w^D@QM8wfvJr8#11H*6-h}7fO^V$|Idd4Y$UX)7 zEg8kXX-U!e=mnuc0k0#wy$}~epl0tBV^rjs{y~0W`2NC8XQyY9LwD|j{Z4T%sq0p_ z(fWfvcO;o-j$jT+CDBVR@GWnbG!B{0RpklNLn|JhijD>#3cYd<&|pX)B3nQGKsQ>) z{}=O=r7}a8Ag!{jE~d-B7W+J_HX(+$81z2PdJW0ROv5T6Hg=Yn_bg6GVM3++E7&n0@yONe~e zfal$$q2E}hj$^?(4|LHAspii?608``Fpukujlmflo$$k!$u5whgypHB(seFxdE@(= zqQ;Q-hOFDpS#9`PZQJPKnQ(-jrvPvPRN4ug*{lrh~97kODly6_5`)T;HJPvUo zkhKA)<;?kQ;jaQ%t?nZpxR?y!9#cDNk3yJFH*zBXt&jCwe8{D*|{p@PE%)jsGU`=qtw==>D z_GeEFOY~dzsxn!T`}hic6iu7#n?=M*?&XX2#k@-j1`?%)w>Ip^K7o!Jwd+~)sLgI- zSD&;@v}@dVueiAPoE?YmO{7AOM~goL;j?DG&%p!ewmE@_@u+?Gd;kU!Li}U^>88qF zl$t=yr$Y*wqr(6;-gL;M)K7&)yDCsJvY9U!d;Y3({{R`Y|T-4r%c-`^sui~HZ$;lKl3TIF1I`pN&2soTtp!z-0;W(q1^u_Jcc zhdJy67)19>2Fmrm1Mrj9Fda)C9x3Bb zX?BB&($qWU`aFF5^)pAz-qNdoWOC}E#*Qq3^w!vvg9luUzwx`Uw#L3SaJ7BH z#DyAy@?{(l$wzIRAtK&=dsz>ev^9@m^-uQtxBq@Rb_U4^|a{Tnvj_j~;wEJqZFZggc5gUR+fHEaZ znV=o1Ssx8KFWp=7D@aR4+jCjBGcRK*{Ke|55u*%ZcoiCoCoQxkbO}oTC(@2ap3s)( zxQ$KW%*UNJuo+8_{O^0zGW;ba7;0!#{pXYW)!w)CKO$zs7ew3i=Ed}`4wX}t)lrit zRrbB!-qPsl4ix(BI|vPmnbeXDk>aLE+Y0+6pjZ7+KAj1nIWDyQ+PU;D^|C6}!HZyS zI7XPCYBGWY2P6N!i*CEmnmTui)aWp{eO6$?ZpFnr5x7-MZtea_(xBy1#D|PCdF{AP zIMF;LuMh<3a)dsH_4THvR(SLKMN)=Eup{-59CS={!;&fk48qfd1V%lG$Y%v5ZNL*Jo$xU5tUohkhlq zrgri^gIe)r7I$eyeR6ufB&t5BA(yY}=5!q6=_8BBotPM%BqajcT@T~hRUD?OAv4If zcl^Y`9g*z?V%)a`kOXg*3W1rb&v=`>H3lknv5Yl&%}1+i!ftPS6gBbj^l_5)N38I( ztgBr2iLb-)0tSch!E1X&el_SWy_^ZU)%yfhb8ReMTxcRZ-l=ZL% zbgG>jP3ik+ryhX!d(GrL{6*iahBk4_9TzNbBRq?HhkJQpSE6q!55#y-ynv(OND?Ue zYEa~)#32vG*el-tALEZlkJGvWmP*2>DumYjkntaCZLb|&HR_K@Z~OpV`TD&l0dv^UINs9wV&RJ; zbzChgK}SKz-$vS^tWe*dy_5g)gy^(NoJMtVo3LWto|BVfh%6!zyjd9jgjA8Dt4D%0 zA)FhYdX@_yK%e?Pqs^ppqAsgv?M_xb!fcxxmZc*}9ehi^EFKN0TCd`~d}e>>Cd6wv z7LMo2%3g-HQp=AgW@n?LBmqSBrC9Cp%a4{{h-fWx;s1!X$xNX3>}fU`Y%!=7ohn>q zBLTrYIweSMBANIbnyxdhpC}V{EmDNFwYaZ>7|zm%g4NdzHmgJgD?@uWkj@>WePdcFU>=2^L{Qh7`gh=h3i5? z4>o@ZI2}q&f&P*pOY94aV9QWaP$H0X&if;5^&|`^qi3#=T}bJ~5C=W&SvY04S*37JRA} zpGGfU$l^e+JLC)1iNk9EY4`NGR)oZ^=YPZ|(S|PT5akUA2H~%pwg7fGpzGYqCgLMa z{^(idU0p26Z`UK4!t*Ys-r{oj6&L+RhO?qdkQOhL>Mi|lUW}|k*6lV)i{PjjaNhYW^?-Jtc_frJdRzkYGf2a8^D_e{R~Dm^O0UCmr3wiVG`4P%8`vgV zIfxzRU$-Tq=i|uJkYO zL)gkY9~4^|wBBh20W?NbJ78-EnNB_p?JgVc*pDt>ist-V~r=Q`jZd z!A+yuCjP6#s)p~(1DnDPE%t9~1*G_0N0ws%g8pX=G53zAENPTfq$zRAgb4Ag0WYl< zD)xrB5w_Z=cH_3@$)&|VF;`3VBr;q@1ilPj&K#JUs-f)(8Jw(5=BrB%|qEJaDYxIfkJIZ@g^aNORc({v% zrkDGO!^tDytaZTES^u8!dXQjVojsbl>jhm7`N&$*snoH3~ar=P^Qj%+G<_P%)#b-`Fqi);@bz+?-LWx_2%2u_y^w}UmnH*~N) z1v-fQd&u?TV$thmB^O1u59`(Sd7fV}vbM}13v^;EWS-R){{ht}25Stl-Ciyj2%UGY z*~;AYoNj)x4;c1~&Ozo-Tw%pq`mQ5EXiNj#N-%Viv`5 zY{xx@K+FwRJ=At#)gnDbz1S(-{;j?jLw3@t%U0?}9>#CuAQ3WaN}RP|E#+ zQxF%{<$y#84-0LRHOIDs93laW1XJx(Qn@4vG9Db{9w7R~_mtB(#+5h@IcdCeS9uy$vJ=ll8L06T@^{zJ6l+rB)wjt4}Sgg8|N0SaPTaylQ z&c7)j;+v%E368P=myumm1fcIX4B$U1>U#?NyHh>)b|xKF_SEtUDeSz7LP2~IBkm61 z$8v?5u8I5~m#FS8JUr6p?h{eAT`9WMD+CTC>RcP@PoXGjszMH*zuyScHn=rE1@ndA zGnecvekfm^1bE4MD*nG0V5?V8+GZtbZdWpC<<7OUJvK-4B3-g_N#ZF;i6QHO10u!u zyLlZOh8sWdOcs@zC#-nkRv0MJwV&nNSU&j7T+5%-57S^7G(s$zVkY$yg0+z^iV!%y z_9B^FR_kKVB(iAIEP`NMt;5iPUde6kYPTnEW&Q-8V=091vzzB16y9x^nQpRK{d+9H zYc5$#2{$UmzUaq-FhkB0>vrL$JlUYzA>ZFkOPp6f?*6>@jN;V6q>Te;i2hBBgKQ@n z7gq6jhw^_konv@h-`9pGwi~BO8#axd#%*KUw%wSGZQHhO+eu^F=Dg?kUf2Ko%sFSD z*?X<^+|Sy3#1G%XMhg^X^60I#R3z#{wc;l|l4esbbAbn5yrrFe)fUap9>dtA>it@Q zjPD9keq3+zYooubeR9q~>%wkgd)p~uq9@re0IGGqEC9sG6+BvW2vEyH@1@1m?>T2w zR``EYGN9z6X;k}th$GxKA~*qsg~9i)YE5*hM3XNgHftk$XNdvp#@9pCF=K0#1flXR zW(SQb=HEFoGn{rnm!3!wn}ldCH@oc3?rHp_OPK1ha?wH!N`*cy#b$@(h%*D$x1(P# z*SK*TuRNc?JzrI9oXBK(8^kTkM|aplfUS;*?M`V?N`!xK%0I=Sqet{aObI7H#6M>u zHRxRvd@TcisrI^z^$bum>ngXWw7h$kA<&t?Nji>6fQL+i!NQe$0Wo15Tht? z-SV>YEhqiQDF7pPDDs*g$lt=p;T$VZy8NM;KNgnhr`MIZiK?KN#tm;J4y!*hC(m9^ zt_?P^W1U`D4@FL0P&Brgc5TuSXGIew2w7krwxz{FlYl2gBD*m=kC9mU zQZL54zx<3G|1N-a1X>0MgqYb5jp@gYXg80D)V)1DdPMmL!wc-sR;}2|m^5~HvTgSk zK-P;BeNXZpI!Kz->wE72tbE_&g=MCYN`;y|3&bpfpW9e{C_&<0k+0LE&b6myRI1=4 zX-oH4bJEqtv)2rUrV_K~u>Nvpt>1BOhzwGgZ3XU2G;%owfeS*@`tC5@+Hl=>SRNnt zQl=w9e_U+D!#5X0UURisd;3-prjHIqE!RtsQleyQ3=wCv3U5WQQil_#{ zjlXvJ{xd9-Q(ksuZ>=*V`AR(Mm3xfzm_vXeC=!Nm z#i9ZiRJe{<7I;Y%x&+3;GJeB`(N5iyaM?xcZ5I)vgU5XzJUASZzgxp=v62s1z94Pv z^ukXgCM1vO61y{926p_wi|7vS^t&tPQ}#$S1xs9QR4X0sPo0H9zE#UEv!%d!TSCM` z(oBe_vrlC*NRlI>b&^@%?gNEC^2vdRGZl9ke&^SBIecCet z_Rl)`$Vs@(et)+2kugOV%U}A7uOyvo)zVW5uG{gfg4r-? z>1hvcM;VM3`52p&vaAMne+D$1Sj(KcXelO8Kuj=Xjx2J}i?0Yi-N_DL4d32va&OdMkCl{jlSGaVfH#46^jdw)u7G8?*@SEewLIK0Pfm6cQvt zpW9k}4sp+zBs|FxA!O3%0)X(FNnyj(l1wKqrT5DQxWw(jV!4h%H*jQgh;|*;<=55; zcm{!wXJ~MdAEfh<-pt`ZioV_wlWQWP!1FAvf+kVQ)H-=#qmzFXl4HL>V&ZXSwL?$v z35FO04+h;V4VAnQUt<$;8D)I)H419V3(>X(|F{7AYDI==5}(w|s6*dxGQLH>GrG^M z6#3HiOcmTR#-?l?-bGH+wJ8%vDP=mFk06!CUhvZoc5i<_CMik8+M1r4TKHI4SQxgn zR9;(K8o-}8VKoLrk)BmntBo~I=jw}9I#ZWj;K{`b`g6*n)3eM6q8zrm68C|$U&8%d zAwXqlWux=^xpyi`b{D3jv3H^yyy3WI1-9t&balZzxMIR_fwJ^wAwVwsNESpsDqZ0S5}!K3HwI+a zHVoj$fL9f;n3$O3`M-pX4)?hh2NN#GBZ1S!itFconT>xn25@0GbowK)6tt?zeC(O@ z`gC&`jlOzwf-9HV^7HNXWPd7vw~N2*B??L_;Zry!#N5XQLlum_v;?9^_K4co#tT;O zguq9|=Szc0WP97c!2T#MvZGdLfvBP1QN+A>?3Q?buqe3}OO;RWlUhj=X&fvDgUE%F zDZTO33d`-Tbq1|xzwe{DAAT~!N!hB$5y*Xa@1E^8})P9o=?TGd2>iVLk2T(tNJ<*`Bd!-B7 z3;4*pt2PN0-MfCxJ@E9w8=UU4a`(3VhV)Kto4P`##W&hF))ai}|DP@O<1usv_x(bR z|DF3Y_cj<1g?9S}7t0C{&mPFcJjuWeWVYWEwYRrVS3ZtDYMty2KzhELlX-sHjrtsg zYWQFOpj{MR+=k|4WmT5pkjdi@F65HzY#%0rK}O?oyjJJS$kNtZF9vGr?Xs#){hPfJ z$rR=Q-RVHC6M`K%z4ai78wac=b@NH)2tJiC>I3gxR1(}w@(aF>bCMab$z^+AS!pfb zTc(qQwHsOf4EJoAJa)-<$cIp<+}yk!&PXmUu0(v1cSk`ZBB4)&%d$Q6%K7l2tObt* z;%*)19^RUE=+t5lts_!fp2Wl^U!Ko1(i|SN-OrU=91DYEIHP12Hg$f?+T7`Hu`R?9 z;gq`$h~>dDqfKn_y9yzq++P;o4q)A{rt-!Mp#RfR>*30oO zo>9lEKM%`BnBB)a-(-(BcbG9+2z`ps-owZ`zFO;Ypcirdd#XeJa4&1c)m`#R6UJ2x z-cy@&>()2S8s--gyS|}<82qSnk_OW!g@w_#2HWip&a^ljs;Bs|78DeWr?Q2C-wyd{ zbvoMzhn(3jg!@8l^4v+sf@?kZ&ph=sE1+K+tk+XdE88NG=$n0#lamQZ_=)~oVkHVi zH={IFvhwn;OW#Tm2-0+_T2dbydZ@zukh`STk+RLIKiG;yRaREPr-w24q($Bg(Wpe6 zcMMVNeTP2RrDW>H-*B@3H2#BQdaeM)Wy){%6BL=1yHB|G=6^gx<;;0YiGZmnD46tm zp(!Pk(G#~yMYm6@x{QIzEXgr z^ZV=L;UJ-n;nh~ppNo1OwVT`96s|wtr+989D~9sl4spT|4(B)f;;e!Q#>HGDz(0ES z8YSj=D7hb2>O0#1Vy0;1IQz;4f%j(`dvPg*@1FH$<4y>hWIxETMDVG`574gWX}u$? zKd!H@*ML*P-rjDf-tMcsE0)su{n@jdHoek-S&`b~2e-7`yrIQkb9$Zgbn7&~oGe17 zsyuu_HB~Y*(PgvQ>G7}vWSSm0WPIlQ4eJkdw<7C~du8QH&5_?|yozO)^ZYvZ3K;k~ zf_gvabaz^qmx!vob1o`BZoS{+)A)&uWcU};ZlR`y^!J)Bn>d?n?rDeU+pvMVfe%}S{k~{=-@KE?`zI(szlBBSjVb;{tY?CnlQmZ$`aNcmG3d5yo zS}6XcY|b)k^8rsrUm-lmov!Q3az)BPu3_Aj5nA zDT?<&wL%kx$2D%CU+#VhNmdneG&y$J#oMjqW#h8S3)y~J%d)f{nX+F$!mp+;x$yTY-_V{={ zl+5625SE|taObFf9f^SsMI!=-1=MsDoTV@q3bTXb<3DA3+=v}aq&fex`9Mc>d>hmG z=&dyxYu<~MFkgGM1513kt&)JgEJEeIj^T0ID9$-(DTX>OF2)h*-3A#Df~ufMlce44 ztt!3S-F%TRJ!$H~A}WRgXi@jqU30R#1d=(xgAs%*?hlsQUe87ZZ04UfdQQ+&3+-lv zaBCcoH`P~tG{K_@O*o3-zE`FFjI3>98LM}x0x%#xNDtT3+L zWPIt?1~6-BroREaJ^qeCT{k>0s~G!u7U2pSDh-aIAF$ z@nz_^D2uq$_k@!;DkzA=D;bCavxQP=)sadyo-jYAv;xnod<*v)CpuNCiYy~UFRSxr z^Tn_>yuqHCUN2@lJMmbtCv+X|kH$TJVb;7}&-F@@UCA@OhNecP{#2E_7#(lQ;f8GK z)QlJpb(VTcv+$!`rE4zm!xy}NzIU{3*Rn&5CS!{elX+IHF1=}+8`^{sVy_FEEC%;@ zTQshOx6X;E;Ymc97#rX8z>!={|3=%s7Br=I^9SNB8t{`2{aMn&Rd%*o`B$~fzbo8t zZbTBWw&Gpna($}zc{h}%Qg_dHoM=mgfWhL@FE7s|z20I5eN{nd6rI1Qn;5=^=^W8m3y-8g``r6XT={j&Ae^}MVq_86$> zK5z>=f4T0h(>W2m+D`Nhd2@%~eEu5_ox0#=r)M9#u;;+O{q-QM6Sz(!>_XaetkGkVKRV~N@Ya|`v@8QFDX?tZ4fNZ_9i0e zysh?>oSz;-luhiPutD(9FLMk9+~PH{xC*gDS>M%~*BwDv^G{u%r84qW*pN;UoptT!H$-3Uc;jK>L4+S15Sst-dM9%e#QzA7!jR{u&w@UR@87 zuvn+t&rOgSte&|a6L|bM?I(wVaUV``b6sW!-%jyoF?2rd>>V%+FV`46@5RXskB=j- z;_>lo+Gkb$!`F_PJn}lx_KCGut-d)rb+FEvsOEpo=K!{a+ow;Ed^Z7s+F?8@Su^@n z8-5txTaNv>LHn4nPmwxL=ewWd3Xo0NEHVx_B&{?WOZ2!Nz`Z-3qoRGGVnz+}qsnyo z8$|5(jaCh^=SCk`&zOJr2S(MMxCYx^*6?g&8E#v-h>VR*>;obvti9YIIKh8^hZtA`|6;9f9LG$RX8+Q&x9{`$9>`W zETm;-QTzh7LlA!n9pJ53!aAzZN86VJ3S>_P=*xT%Nd((wc<604Oy#8O{Y~q~1;Z&( zrc?8C2SgUvZ_ZZg@cF$wRNeYToVlas%L=K@_Bx%>p0oJqS@XbpYB(}{&*Vv3PASce zh)#O=Jrh5mIW7k_IumNz4ex z`57h+WC;~*R|*pEH@oG*X8Yov`c(@`q?|%{*sq?BFt0ZY(ueO{Cmyb>R{Idi7)d-E9#hUYY^zV~}^mZqs16JiP{eM@oB$HTCLlu+irQ{Ug!XV-lC!S!bW5pW2e$y`l8hDbCcI)iW0-*?6!_+L2PUVQjZ>^`gSFH%R5d^BxI|c)nOpGL5}r@FpZG zFhfQ1c-UL-63yF=a6&KF*)n{l4f{Y%YlbDRm+v6v>ErbhAIMv-u0tJ-Wtgorf#ck` zx|B*4stVaI{M;XQrOl_CyVr~k2jjuTM~B`HU-uu!%VTQl<5htnF~Kzsadz=wqB;(ST-8UU!8k=Huw15)yebS$ys9535fe_Hs%e?Vs^xMmPzbE9RGy-kvgD zcp-}B@R_KA=`$X(YJW(2B`j`zSA0b)Ud|)u;sh2Pj!ce%(~pqfn0^mxlWyzx9y)v_Jp%Xaoqo8HD~#_WUH`s z@t+|d>)C$z40BGDGN1c_@-DgD2K^ELE2aSzI<#H9?tVp<(=^%r_~KC*iD zWb7efyTD#AOnp?c%^;SRk|G93Vwcm3CV1#Q9^QRIT=ezbUyhG8gzPX9w=1{fFw5BX z*YJUQjGixd>Rq?|nCk6t?mAz4lvd46AOnn`JD>5vX-GNaK{J$o29yzimLTX0LOVRn z@-{yI*Pw@QaBZHJ#l9MTWVIEX?jY2l+PY!<92hM9$0J1cpH70@%GWNCG!!Yb>*GnC zq+4UfDz(q*<3G)3G?J)E2~ zrwZ{dnq6&; zMUdEhkVs2Aucp+(yNY*bd(|jLYB*%V;kplJD|?5BK}O*n&pB=s6U?mt*elcEn41&~ zM%yp|$d1JbU;MxzqaP#*heN9RT{Xef`P+FeY~_5vtM|`njiM*jE;0{#sjt1U{&1@rz?eo4 zi@oU{0~b2t#jBxRv>6F(^KO?{rVEXLb#mP%vHKa5a3m4_#!u)PByj}V4cXPXC%OQm zr%kZ$)&mq?QG;+@?`=B@Kvf<$y|aMZhaCZnfGHQ#mhJpHt&2hXhATh^tYV1lb9QEV zFrI={vm_CeXF|T??(j7}uqFf8mS4FV0A3$Bq9e%VK$IaX$4hV7H{odLK z4iaSi&eljuy)W&}$rm9E1m<)5K68Qad!hD8Q!9bDU zk9~!}D$TThaxuhd=^|ZxRBxj3i$&AF@(trUN3Cdzvh!-ED{jmrO?!kXzE{hL$P#hg zXPi;`#42H`fDKxdrCpUA4jH7dkC*#XAjqLnP*9M%wQ@(6yC>-h2ALBtZ!kB4J6JwE zQrdKj=0?_99FEso>VmbU@llWoy4%AcrG z?luuftgggNgp60w-zG_@&RrUEo`FyAVsNVqURy~P3N`|1{5?Q(WF?V(*xn-h9yp@8FVD zJ=_J<7Mg&%(09A`vnI8he+PXU&lvZ0zQCOG0(5-Kaba5jojKxW`DJnQX~VzFL8cjQ zj-GpOgPFOVfd-oI-|;wYztAX`qc2r{KOO-F$eLPUkxym8Dv4OJgo62%OpWZT@M}Y@ zw$cbgBlS05C>VC`$AG^T&Syv!E2|Eci4k)zWOONfe=uz|HaB`)*px*JyJj7Gw-8- zQQ6JN>)Y|W)47!)+nuvnEKWDs=!}k%E-!z;NFi0s5vvrRTi3r1(>S#(6;^*j1U7Gb ze>Q?*JWB$HVpJj}t8PjCdi+Ec0=j74Mg4eLGA{@fhTebd@bxaVbW?AxroZsJtvd9j ze|6gjpmv1@hrPYwEa|Rv7cm)Sz}n*l_Donv$Tq-=smOkN8I&SeW@W`zdc%767ka!$ z;c;A0V==a}V<%-Y8zDBWD<9k6P$BS#`8dG4f&>v%@-<`fLJH#s0ocs+y zD2%&(AV}34e2tHuHnflfV!U5~;{mRE(2k_$rqf0SGaZj-1E%=FJeKzm((*=pFvkAB zIW@gn4Yytx&9d?l0kooo$c{q)a=&OG`LTWWWZHtIVR%;cVCLhOQHs75bcu>aOV2u1PSz{|>#o!fD6-3d=X~}S@_(4DxI2I!`ifCsyBdDwG<1nZMU8I z9{2hS`=^(qQyUoRBY|DZ36gm8VK9Vc#`N9!z z9i-V*o|}D>Q&%5N((xKen%mq&QSk-ZdWvslZOqJ+qb?Y`@)# zmX}H6&e2d)=K!p@!Apjagk%bMHDco8r386FR&_v(`YP-VQAle;X$!9+-lY1^}MP5;h#nO>qVO$wcNj+nDOV#gYZyu@me`3rCdjp z$GRoG^zY6Ij{vG%a_fBWc-$BRB))o?LoxmH^K<+CqQ-bKlON!n7$D)E*jiBbx@b9*Z=S7KyFS!*06|AYYV|V zOQy>X0>H@tqFs#HqZ=K?|B?J3airB~EEgWEXU%ZPOJ%06WRaS-s-n9o$Xd3hE_Zzr`jn|zt>7e4^NH&VUS#V^{3-?zYY-b~uc zCQa9FG+Gh%y4C)=tVL4Rt6|eI004r4JL%khBp=oKihPJ@c*||WE1inDW;=sKdM)*$ zT$fE?Ie$DfbuIieHa6orbWe3K(QK-AgATu#u#;&cMo#hhag6Azw4DWhqx$dREsV}i zqO-E5pwM`_kr>(qgoMuL-()y=)`&L~Zh7f?Pta_6?O_grD@oOXAp=&|?VJpM$WewM z0?9PdGUZoFv(OFkV#yrlRvOq<9k|g`p>F_`mP_Pm>^ZXmBf z{%NV~hIVB>qOO@LMrDHNhL>pSu0oH;CH#0m>ISSw03&Lb)Wn_r1mIE%yOnwdBeT`2 z@nATtrnspQfcE?sAs!Fs4U*@@W>=O3Lq|NoSALbJ#6ojJQM9YK;{+K`udfJf%-_8r zSdaE_i4@*Bmnm1coHs0eqeXTon|1Ry=Cox$mT-(J3*kGb99{DMdrp%O%?IOxDvJ}x z45}oXM^#OE>S;n>ux2#YB#Z25qe)Z!M{)hmNd-=1hh0aCnI1{UIDh& z?xV=TrGrVfKZp3@+&}T`5()wo&P#}5zOZk`U+UWlp+ae{zS{#_iIk7eHB*%*#N?*Tcz|DW?&I&IaDe&Qp@ger#E)% z>o8K~IbGgekqosOUr_Br7S=buY%ar&UrT?KE7XOYoSdv=_KVM!Yy4u!M1E4?1df8jeET36C9i4^Cb#G^^rpWT6Y1+qlIDl$<3?;gB<`Sgv)(hIn|6=Srme1 z$K%=9@9SN1H^4N4CGNF1H#ep;xiI_t%msO;NU3B5BE}r)5wBar7oY7PNg%klD4Y)p zpd|zeY|f!-AqsQ?{o%HV1o90P-=g_37M!N#z*;P{L?{}&$Bw8#xkO&t2VWjvm~94) z_$ZKV-F~*cGtM$)*z1n~B;CAP!0#3g$Lj&8w7L6trJb^yj6JvxWLp#4JK`86s%l59 z$Xj(NEhr!7@LI zCBjjmlBh;Y6ZIoo^rd9=9B_r%s5}_6jXA3coVwRvXnA-Cu^diNIMY!2B`rgZiQcsq z9ib+wudKn+`UJ$fELVAG#VRPDZ+eCb|U;{V|J(WqKCCjQjR<(iQ(!ym9acSe*KQb_&!w+}Hqt{*{BHsj*1j zsxsVqq6IA9?7Ww5IMq?s#?_2as4j0C8YwJUjx-=1>RxqGBbJ_s@kjYzg?C zCQ`mrnG*Xb<<`yvE;nF7C)Y-{8S!IIb`ox8vbj8#_cgh*ZSY!LAD)A@-H^qP zV3oxc(j!`T%-2v%@+zVKGC`N(J6gbb>`gW&>y`vRx=~F36cShf9r@?N*hfEoZHjf7 z+$7KU8hCKOK40~>nNs&~U)o)5gYe#vetT}aKC~KoKy-SaWkr@DbyI{Cc4Rh|$1(n8 zd?cg4$lzT&qt(^LvF@a@I_*~_@aq?38oO0*t$F2*s?kb|0~KJG>jTiaffw7zI^=ZR z%1&z!I!{Z```S5JnPK^EUO~nV$Y@BCCr5Al4Bp!pZI`I0cnkYL&@ljvi3VO2BmF;c zm+W{yH6%Ry_=5ka@uxeN2AQoiN&yQsVbf?GTPiQ8>Eoi`(p}>E^KvM^v-^<@@Z7Ge z*Cflr0PO0C<$)}4MUNlbo2JDz{sn8S$tC>jzgI+LMpr{n-)}w*Iq_zt)h1xZRB&46 z9iY~_^G6(qH;?Pw4;hlL>Vl(;0K@nSDZ=5k<0o(p%dy@UdV9X7y+uhgg>)Xp8jR7 z_dMo3wUCe$Ezn^O2#L5KFV4&CjhhnFudg82^=;w0wWABwyJG)o?{z!886^e-tyXI` z-`W$H?bS|s)ONS8jZMw!o8EX1@LGK;NC~jl*WECPn_wEI4u-1h36fug&pi|Ejo-Ai ztai^i!tu#s{lA7!1`NyVC}zN`B}LFrf~h4Vs7uG zjqvf97;GBA0=oyKLzFb9Khz8ihc{ykMa`;vtk`mIvNcH}NQt4xt~zOO1t(LMN%UI7 z!^5(R)EbWwwZc|<6y(_{3tiTKnn-Tj$^y)Dp%yBiEA>Ia{%P)98GZ?Cs=rF5V%w{f|}kosPJpr#Rvqujm?iSGZmn@mE=Q3iCQ$|XQpo2D&2kAry}=L%??B8xy5A+hJ`n>d)+nc zXqO=1cXnSI*pI|^O|#WX?@yDoA#~2Vxs-$ zAwApnddWCWjH2C_MeX(ev$>F=NH_3-cEqP1&paCSp{E83%$*>3+6@8QLx{WZQn=2~ zqdpK&UKOatzn%{UI0?r-^_7~j20@WgCJM;ikCG80MA#ZS4Yd6>Bx!~%wx@UfvvI`f zKl(9|9P?{{{T_J~5SYv?EHK7oztz<6AJ?6AmhX0B3vIRo6+eG8?Z=5pOaP_d)&Yz@+PWWqpo(o+}ME?xZLOvx>s}sQoCxa z;)U0nEb<&F1zB2rIBl+eq)rM09ud&4tSbDqJl z`AXvCJ8axStyMu+)%Uj|TNrJPcWBeYJuFqV3f+xO^vDUW*vvXz#^JmuzVDS~r(F0G z>N73i6jt-~PWd!&&!vQ@m1r3~@3HMaft|R0mQ+9y7UGO3ZXtPmpCkOalX7*gtOGnc z89T9556i*uNeD(6v8D3edTZ+hC!V548h3)H znqN6rZ>A6%w{Ss)2Kd4=H3lL^8CzZ{()NI%f^kW)9TIUEuK*Xj(#{qr?&$1DThaPZ z=o(as*Q-J~h5armC(Bz&S#1pGl<8(7hyc~yW|Cnlmz63!_lGv&UU1H?sltf>yshYJ zQ&|cz4J}(0P-@nn?$%N(sYR)p8pZFOR4ZL1oiTq{>xgB9mHD+{Y=jR3`f|HcI9pRFkjjvYykx%HFq@q^S$%w3!pEs%^1$zk3M@a zcp-SP87Q=FDarRq{(CqJ8_V0se3qSf=y=(69Q$+w@eN-2D$zd&zaHVET24)P2fxm9 z|LI|&V&hAY0Y&NOZ|QVF#C1Ue*rrg5)bdTGu-&TAy*TR?aQX}K5J93nNn~}?5}%9# za4Mj?tv)*G3V+FxrJtm7S?K}POQQ}yg8Pnht)e;;ocfeuq~=W58lh0q>e1&kFUL$; zR652~u7)NSKHks@Jl$I^0!RnEEeXN7e-wG%=nD?{e{H>cJ%9~3zv zNZ3FnQKdTZzV3v^T3p-;kHBJl2EH*$04T7beR&2wx*D8C%GR-nO5LO5N>!qWS8=H# zac!Sco_m6YW&=*lnxcq==#sf7`-Mxly1KfM2qlK|W1Ua-MgNSn+vE7N@5W!Rq%)8P z5-wR&;^O)av&IzJSdrtDwcNw#(?v+zj5K2B0G7S+Nj3c(k)#LvWJEve!Tnr=S z-%}^O!@$sc=%tI?v(S&-UcP}4`zo0Ny{8#CIo6TRzg^1whZqcTKgda^4xg^;$NnJG^=EYzF7%3zJt)@8S;6bn@lB`P zf7T#N{BS&lY|*{Lt}Rkrspn z#BbM@PiV#bmkkjq(bc<(3JA$<>vA*Jm0V)*YLircofIB-aiEq(NzdNPG0Rnh< zc{#>fhPz@?oz}$wcw7FBgdRpg#3n0Zh8?LxjX>R)R6QMTVpos_xikGe=0+2=6Q>|% zt?FPF(W*Cn7C%|8eiva+IGZj&P3ZAlUp@aKv8*v)_YG+A$uGAHJd$PC9nUZ5Kg%C9| z&^+W*7|P2bvLOzY+_{3#*WZ63q;N%b3Gjksb9d4@Ty^$4r%A}0Es=VRG`y-H##gT! zZZuh?^5h6xwi-rvLL#VI^a{s!G&?0$K=4Ecb>*~xOC%^H1Q4x`NF%rz)`)W2dyCjn z0yZaWCf^ns`0;m7uV<5jG{H6SH8o1GOpMu{B6h7t0~v=&lKo8fCC!7p9-QrWoUGcW zGZ-N#f!^tO_`pc$aeqM=C{Q}xWd7bOuE2T}Ct@=yr}e0)Q5C2aDgv7l+J~%zZj$!i zG51BFno~vXx4s@KVmkZM^9_K&__Vi7$qSAA-#5Uf`5ac%xny!p>l@`C+%v3F`Faxa z@|bdRCoyLbzFB5+Es`;xOE&)~)euR`vn+6oBXW1k+fbl98lZoA$`B>`^_SwrLXTW` zkm8#bH9nJ>DvC@@vN)-1$;VCt8^~}C%*&7%U4jcOJ}-X(iqX8>GQOWXP}k|Kh5b^? zsf^o1rJm2{({G}O8?S#@c4#KSLn0;y$%gd?ah7os_C}zSSsTdB6^J+BLx-I&ufBxn zfrEM3+0TMgOa<#>jCVA{Bu+rz0{in&8y#5E#_*&+T_Czx@(prp+ zITaKPmo3QqubuJ8$VQ-}Mxng>QWZPo&@#>+LYCClis~v{Z*_Tp;Digq2Oqa89wqw+ z4`;1lt2HG=5%Fc%cLPwkViuAhV84G=;IH;uhPaQ-WMVp@LI_dJ_Jl;L6Hn2h*32}G zxv9X+3hLjXwR66_E*>%zeWS(9qD~E@LJlY>4ehV%!E-e-1F&Kd4g&;>}iFOsX?D8m@{MQ>U zCHvwflBZDcvPbkd@5ux81^Xz63rVF;8_y2qzgH=b)+Xrb6cSPRt@z_MS=n$tFgjVp z%%64=6RB>Pg>uU%cKPaLjzyVP7kvftl5d!YtWjnVF9ce0;G`T7A7piD{fenjLz1pP zG9eh-F?Ad?c`^j8F;38a-cP!N0{hJd%e>qk|DEv5aGKYsz-g&~CC8xEp%ijH+?il1 zSp?VGAo(R=PO?g@1%caLZ6qSOtY5*!6SDY*Q_WWPeTG02ac-T)j<6Al`}kG2oy-;( z^(Y*?M=sbvLi$y~JNo#IT;5H^p-kh_df+d)kGasAZ($F)d_2_563wwufHM zExH93W-9guRjEhmpii(T>}O|efS!oPe8aTPp;4676A7*iJtc$p%t zZFYywWb#FsqPlVw{c;nI;6V)kroEL9VM`v4*B~G>f$z5g$rQRlSIS$sSE0r7^jGEX zr2WItIew!4nh@f8gMu_*$w=X$iJdZJ>#h2{_uU#}m%{!dIVu#N&79*x(ck&KzwXr` zF~b~MsnHkGtF%`n6JmQk{z6{k;~Ur42GUn^;$oL9kws5W=Pr0BviA8!x*c}z{Qc)W z8G5r2#$$xo?tm$5Y-d+9%$@gRUO|}*QEDh$SpzP8g%lPelBuB;-=t&sRW4`C$IbKJbUoMiYjrXL9;l_|gfPNC&_8LU z0N)T1PZ{QQ;dGNmZ}rnbDZhyn%*GFBWR?&%c&XpcOOmgbsr|B+EY?6U>kn0|EU$&o zwL@$Y0Hj^Szk)9LzWM_~~i`!_L`H&ds_ZEH}BgoN& zHI*KnlTZ(j`2LsGuVbGKcsBT#&mt_KR*2D|G#u~V zZ3{p{3X9WerH?{Wta)aJr5bGkEw9w$*vq!1J(Cd@LXOgZN^#p`Rgl8IOY<+orPq6g-!~9B8a?zZud`U?{lcVtVO?Gh%4F07g(wLI1*Ibs{v*{Gl`0vYlWH7|EpeF{1bAqCd(?+YVb`bXv z%H1gxpV(9L1f`1Hi;CO%;!_C}sQS;TvJpy0NNdi@+yY2KAqt0q?z`dT1KlW>lF`@+ z_LnQmtP{yTbok)-rwq%LS|PPQ$#MC`U`6DC$*9ymfFp?OfA@^MOA>KQbA-MC%Vd5; zMPM*YyE)aha?44C{tQ!!nmam-HLFusR~(K+DHE#y?$^{#ThE9zJsVn-BLK?o@1?CV zlQ0)cXXi~7!VMZXvwLmL5}LjKK6XJzNIi-LpA7YafR~cYl`4Sj1K^jawtn$`2-OrV z7~@|mk+v1ykS>gXoUAqktWnnH zV4)xu88rUtkVfHia)=jhC2SOg)DEVySwI_O>ff9H@sqqPU6Uj7kt4>>5a^z2H43xH zrx)1v^|aJ^tP4&InOu=OnF^Zelq<%}CdIUf?pMbvIRYjHFNmhXuV0afD5q*F#&}Ue zpA~2s!(_h4p;3FMm>e0wK!9d-Ym{9Ko|P09WRqWn=x$tT-g&JqwEVpGR&dkHw#6gk z@Fxe4Lzw1|&1k7o+5F)R5t+^x2~oNa)l>Q38;>y0FZBa<x(o;}`@?NZ?h{)}8}w=d6L@gjE?pV-A8 zlz`NUSu*JK4a-0VV}{AS#3t6OOJ^Rm+-yfSFmUp?FDwIrhG44|K5pU}4G;CJy^Ja;R;1Xl&80{p-Kqyafm)_>26>Zkzj~}b-DsAez zW^!Loy)?)Fk>G5XMW6F-Y{c|`$x$eo(Rfc$Z7|2Cpg7@0LB)iJR;@J*sg0beqc}Rz zuBx0=jIj*+ef`>AuG8tyw#iWb&=73}_j~H3DXY%plyc@7Vhw#2LZO43+wG8&G#~}& z7|$=)D`c&3j_^ShS%3oR7KGq+sCC=SHlRj99^3nOl`&5aj!OGuL7EuDjVgQRaR%n;57Iqu}AKO!)_~^++m|9U(4^nA3tRGhB0wLgRtvNA2FonFZ0PAy-?ReHI z5FmR#I?gs5c+2l$C5Tp#q8bD?kEs!*?xYXTyL}zM?xB&SQ+?O=kB#n0OhC? z%3pXp_=_sG3)QZ>C#+nLF%b0$uuh6hF?aNll}aR3u6w);rV;Ct>Nu!JNDU1YYeXjhdv(V z#Sxw+F>0Q39Kg|1G<_a0IOFI zg_LKwKWbG2&lqIOGS{7?lS&~Mv92|VZaq^zqc?fCadj`s%3IX?rYdl6(^47cyE zqyE_9u{**j#SgqyxqNCQA6IjWdc*rjQ;9^{uM9Gs`&L3iFqe@2CQ*OptnMkwk(aIecQgc7m z8?}`2#$lGN`jenT?E4@-bJiTtXh@aoKo0ck{TBFAF>$m()KMpSk_5{WGoM7Oz&pz| z+sxXEeJJrM=>^7O4PUoZXKFHyLnePNzpcQ2EQQPO!Zw$B@sSaWAWSmgH|k5!r0DZq zRf=@^{MF|BBGp<2Z1B;4oxr4A2i5eZ5qqr;>lm8}KQCV9&iYF5+oPF-C3{eY>?U+$ z?wXa#ltU7N_%MNezWO~rk!Abp0Yk^qg%oI{!d3johP)XlF0$V{{bi@n9O}c9%ohKT zrmGB#>ifDwNGRQ)bW4|XNOz}ngCN~CsDOlkgh(ST(xG&BcS(0jNW;Lqhu`ymKPfYJ zZk&7WK6|gd*19DIG(ty2G%B_SC}ei3zZ@WG8Z0hi?mB*;({(^LR3yHfSkpMP04dU57836%WZ#2GVUjI8Rd!XH$^qeH$a+e?4v! zV0jS{Qg-)#r5D0vo?ol;Re(B<69O^uS$l#@KFsa9D5NQUKy})XFpoKs)2hC(n%Xtt zQ9y^iI$<||OXN4`QKG@^1X`UtfM)&*x71QYUA+x}v9a*buWcgLAN8LMd`u^tP9|lR z3NQOOi}0=ldD)&*GB5u;TfpfBmIgOUH{eFl<Mte;uLZ1oVm-+H_15%SaS-MK<$+k0~ z+zXj999V#sBewxVYS>O5f;yWrKpD`@+Tj?%Ruc2#{@joXKf8j2A6`;2HJQHKq`2ge zos3)=zc9G07LO164aSk$F5zj}AFLQFF@@*MCf*cnWJ}ManDBx?J{|y+el%~sngdx` ziBY|#w32gXm}g1=uaB+VQ`3UzNT1jQ*&jXd;v(~tH@jppjU)Jb?C6}H``U4=IC>jL zB(B_hJ)Y>pYufDdPF+zX5QZ^=2V2Mw;*=T8p}d{}ZpN46qU<>1kK(4gtHG(}S+aby z`!x^T(v@9Az22IQW)$0TeWqRmJo0D<%RgtYKUQ~gi?gvm?ac!y?W6Q9?sv)8?%(eo zrG;Fgy_BDF3kQ2Y(LHxEQ6lfiS{IVbtDGM@IkDO2Jc>My!3~Qf-F{MN;o-=dqob+W z@gM6Vr*W{v(-RYL0$G1aDAO`v4inUm*dxGsAc@0IS-74LCo-S<(yTiPqtVKW-j|h> ze74OB)HRc(E^+u|R)YzQPKd!+@V^)?bd#LW-%oey*aN0rc<(z_`-`v`gf=Yy zoT_wknV+&F*cm9)ISI-sI|D%x4Iu;HQrF~`(Rmy<83Y!n;)M9pX5R*3JTA=KczoDAQyL4_aOR%u)!Nps)S zCS)h3i%c?a?DUDRa1VM=IIRZ=BBP?Z&tFE3?pOjzuZ5p%EK!ck53Irz(%yrj&g6LB z;BCpRwBkq<40rzZv#_0i5|ZT=(`;ie7|MFfKiH*s|IW#gJoNtS#G{@E^EH;Ko`UX3 zz7L+K+C|_@*mo8jNu{~0VUh80b9eXMFDjI-fz%vY8C{vu6?oI7CRf53eIaKPqZ>48 zgJgp{PUhV_f<=_izz6ZWNxSB}66d;m0uQX;j2|CbAmQ&i|2Y6!?sN6-g~^#4VQVDK z9mMh_2)Uxe*9B{KnJQu#S}zpLpC72Rs@Q64^Rze$q!MeQj1R;sRf^)pw0_3B_yfEj zRE8GtC-2;FGa4ed)vw~8bJ2LpSFJ)(g8xlgbj{pLa{P*>-5>yOy-oEL0Rp!i74xC& zj7oOxV?!4aKy8Ex7jYDGvzxnVLT~FQx@$KDmihrX*0;RfAYjr3gV^Vd*+Use5+?=m z5fqLvOz*97*@dqLSZf>wdO8DxgT9+_a+}DWn6pyfB8+2Sc#`mrM7-^=wcq*Y**Olf z)%R1JRv0xk>-8)x!b+1I>*D=LcI4a9lx;5-ag~^MC?zjs9**G;YSM$@O0NR1 zHG{0{)V<7rZ{@?9p88r?j%LUIjf=I%b0MJwg)!sAg`lVJI9|V8iR9Jr9-o{KR?0PW zl?&hpL8KeU`&EjK$FPw=GRjf^#+Y!QZ@<^yKize%8z(m%D>0Y)CHj>g00$~Qo<>XT z%~>61179zE4SQ89RzRGhKP)Y%45KXK-Ke@ZEf`MyRMoh@xl?5UAQM-`=SiYIk~P9# z$b`~m4n$Xy@2xoo7lysXBPq1n2>SQ7VzbFMR_vCEGVnYuTo<-CyWu1%AzeIzhqgMX z#ga$Bx+K@#!$EIzcHMq)42iT4w#Q$g`MG3v!JM%=*TVgKX*x-w((f1BV3mH84;R~; zAB?^*Mf)e#dSVKzg@4^rb-HX(=ZTms63T-E-@7RW8I%mZ6Q>xaQT1LOX9Z;0R0CH! zG+muyZV<)Wl>jG=`lYbbVjWo#Opg==n}St0^dHsxPzUDLO9MyKVQc;us;|ce8K4M; z_c8=enh8*v6X$|hJwzHp<#-fcE%NeN+QXvO)D7+C`=y)xc;0A!PTnpvZrlYdefbDi z75@I)yQf3a7gal+DP}TH=pA&K?XNG(7~o40Kef;ys+ca2t?ynW15NH?F`pAMAoP8A zCs~_;Cu+E**;1eW%@{gI*pYXQuw)-jK=Bu=^t5Zm)|>tsl~f|h@U`9@38P?=g}l>S zeun3?9CY_C41<*B=N=U9Ki~{~@*(cbU6$s}+ZRWA&XS{FqU}ka(w;y|I^1Y0rYTCa7y1&pzKw0xB_kWD5=d1B|Fx?c8$Q!Z31wZT z(N#KG^}BpC9)xg#+xzQdH$N1p^4Mw@@ic%I75qyx`FS5_sJa1Acy2uC{>GMe{~h`KfM|GG7PapFhfU z!|li;J+~l6@H*)dE4M&NHMOq$f#Ka!tCe<;{{UGzlZ{owLV6Il*ddOG78ipw|JV{u zQ3<9r286b(U4g|oxsJzKw%Y2SkGq>&-A0VCbPZq(7lk;A-@?K3s5cHDB{MGX!1#weZs_P&Nl1EEayKTymFf7hMA57?BMzk3tU?{%roZ z(IP02Hp~MXlVp>Qv4yUheI&eJkPvPJvfW@e&1~O^dyW{=tk;fN#a-u*BFR$;HVE5H zG%(ucyvsO5E|LLmK7o8QBsXF^APNA=rMig;dyZ{aKJJ3I2-gxv8{XS>LNw&-PRa+I zqz>urw#&NAMl3d9x^j(9>^EB=-R#BVmm2Uo_vUOTY6d6btuUINdy0+p#gk#}l^-ZRxw&k(8;P^BZW$dQ`Xy*DmM^g`zdogc z!tYjY0I{e0d>s|eJQZuqFHgeYExFL-%Tv3;zM~^Rkn5neSnY&g>}*P0$u2;6RdYZs zyNvUaiOCFheM*A~g^cmy$-;DGiz%{6_fdkWEg^J!!EVdpxU}3U2`|EMGn5a554z5Q z@kIUYesSldK+l+~kvPHC8UDB?O?kVT0N3bV%-yhIClU7PylqxQ($cT^G@J$7!*aNI z!-6l+Xoc^!Uav>3r!b<9PvX0_2GGWwepD@Skc)i=^fzlwSCYI+zoi&M$V80Yhxr^= z*uO0w?D68+TGm(1f{{@#pZs1g-6UQq^!>%ayFO&P^i8xb>=v0C&uu^#eDqf6I>+kW z9sls77XD%;z6@6?5ot%99aE<~>Zw}kdq4u<3WE83X#bvUvkv&%zjKodz#Fb|bDr-5 zDc~qjHLw<3Jy%BRWwYG~0#0yUUxUXhxipTK!vyoR=6Za^rr zj5L5i8l<{-UT~}f_QKK>;|*KGq|`(`lz2K_#Me!K9RVwczIQz+h^7o`LUvhI_A6BI zJGn;nF%HLxJCn7wwGq%|zYzFtLaPPIzw>=rBa)6AQlX~$af&?;5 z9nU~fjO62A!E%cXBB@uDx z+43`~d8P{{`so)F%;!f&%i<-+BLLv6TaRSfJi14qEu%h_dY~)NTN(3s&jKMuqEbao zyuWHNoDUP|uN>pmWPjjKrPkAGs;NnQ^kiW({2gvj5l6y5BHX(QVot8w!AT6EY)zNl zi-Zw|x0mF6@ux0;Q4~e&5-Gfa@`Chl?Cr6x8$MpxgMr5oM=LD;xibb7mjq1roMlkA zW>}7C9vu1QdB2Oi%YW`F8uZo9V1+ggP#KcBEW4U{`*+|lXbIrP5wOxMIYH`g@wgJ*_fIe6QT>)r3N9<9ci}GO|93CZq6f*nf zi|#asgsVGzBySfnF7V)jas+S0%hglj<$=A6EL2XRG12Z-bdvn&IvMLAEtGct-Qxxo zIr1_hy4j-pDH!eh+Y9_j5t@dW@oe0g{6H?Ue4M!o)TfG_!UZ@0a;u|gLf(m{?btUE zlGo6{rIm}Z0=@a124H*;=Q7jZ2e&l8Yr6jDHqATmjM+4Ik+-Z5QihtCGi0IKjL4!; zHaV{l^SRi-SutstfoY6smkJf@#q~6rOJgUcdOm%x1=fDBuZ`S~6Wqn$<+2SeI)u$S zC?L+S2kg2HEwi;#Q~CzdnFLyS~Zbeh@zv*h7LQM+@KcZr@h~=G8Xo`!4 zx9?AM-leXT>GwIuCiuqbS4T^Ou$wbdQ9oW)+hLE9$#@ISQGq811Mf*nc_e$duC^gR9QM^mqFRa8_&66zYr{!tb(GNJkwQ*-fl7E_zwr14d9dLE*=A}k^*Eu|dM z!ZoGyz4JOXiGF|E+e%uYqz&);EokdyV>^0x@$cg4;Np(h_)_zz=$2qmYZfK^x_2m* zev9?y*p<>3!J5CBUDQd4TM7YoF#EKdGhmvx>A`YbJC)B2mFoP~B!wC6nlzQ$vTAD$VKGXreBRzoP%QNfO);{80t`KeqbCj z(~7*%E?Pft^;h-EoaL*x1MJ_ z(tZ5)8$+IW>kpvAcHhhYR^?SXXSjnfe|UboWo7hfQ1ntL!ypc=pX*l|s~+xff8$#!W8$D5#^X!Phzb_UKPZ%%41rYz;2ia=ng~NU~ zrU`qqGiG?;0h>TY`2a&*c5D8YFg7IK+Zc5TUt;o~25(l*GvCiEp&N(X z>=&220q~pA2CFh{%roQB=n6RDX&SPW_m8yjrhTk>ZqhTa6x7@OdEz5;#d2i9cRl?7Nt2+py26dE==zL3jF+XT{Ume90ZmwVc_tbTyk8{VxJDnI+U!Git92d zwd`KPe=+pSS=I)R_&_?q>Omh-%=}70ue|w^3{*P-9kSo3yar6?RmzJ$21)15p#`5P zkn3ve9QJQB?JJEME_WrhC6In>r+PH}dUV(T7K$o!ffJ$jsenMv1AI4xs29pFbzElt zZf1A{N**J85x!M?I(i5GTj{o?s4BEaM*)SMh7c+5{Y0FFotwDKi{~42e9yLB|MfGv_mX?BUNAg7DX}}u>KESX30Wx= z{!;m2B~sB~aW8=f5l7W!P&Z$y>QjbNzgm_|HGNC_01!Go8Um8?JH24h8+iA8;VbgT z*AF+NP;SRL&PO$`Drtikr6+FwES#7wonzTNRkoi{ZJmO8F}g%0$r^+JXBUuW{{t2Z z8&}>d#4(_&<_?sBZX<#_9)Cs++mjooyu?#jPdi8Hq9NBh2ww`^V(Jqoo|`Dn{rr1B z4Ah?ZY9evKk)pxyFA>_OPN4FQGw%#L?G=BB>*?uHt#<|ksc~CPES%rx5I3wk@5%AS zeKAC}K4Wxe!x?(_90-}#`Wds7=ZI>xYk9i?4PmS2jJegE&vBKi%$r#$-S=n)F=KoX>+kPBh^-1>Rz~2?TzynYN;@nVZK?H ze)?}?g=$%On>g42u&Q&Rc5c2Pa&Ea{P*G7)=$CSDU}`>Ut^1Ufm3Zfknw_x_J~NBn zeG+&>*UqOUt>r6;~S#LL*2{A_2`7M$p#6(#dz#E3=!j;M1GxowttziPfz zhp?{t{o&VL%>KY1f4N*%B_89Ns@RQ{Y%GP!Xr`#JDC#8dqus74^q#NUX4nEW=6pml zRYx}@xbMhiK=9sRI=t0lDq^p&Z$2TAm_%)5cta1P@oq**hXgR=b!Tb~y~ZvcaWPhy z9AdQhfs1h_T-o?j0jC0>mQPyi{KVt2tNv&y`~CIDzTvO#bRC3oLkJn;tRZnB4wh8@`sS1rh>gH-!})KIo5UY8H%;5 zhK)~I@Ngr?IrrXTsO8(eB(`g7Z(|sjzo%UJI`*n2GN2vPy(n;x;k>{YjGc;%%%hE8 z*1vylk&%&1?Cb><6<>fqE~Kiux_@XWufCpik{7&shWFL0iLo&WDJdjAK0a-2?Fvw5 zP92-rRci@sm+22KX}>unMjf28hn)nairvc%WRb4B2rzMQ6q>dMogdC8++*qW|34QX zCx_6X|bukaU#SR}WQ?VEm^ z@Xwt>k%p{g4cHlny1Y`{soo)&Jlj?vFnwT3)xtzzNVwaL+B@szm^@m;u1r9_gPBu+ z>`lq*iJ% z&^jz(zWI3%;mbul#j+Inc}x!P`J0E!ik4E7rEaDKP!={l^?PGyL$kygAxDulM>#3JiHV*N5jY$`i|S z7gig6;ZMiy#(!ewP$z1Cw}0F+5MISS;~{$>gz4W9|G7$P*Ykh?3~shz3+95m5=hes z{qFar(wni=yoBsos#i45>(3_jHL~_py@ZxBNzu`JImz;y9QE3~p9G(<2ltinfqfHL zcoS;`+|Zu4SPG@w$AC@kJGa^MK+I%rwM8gvx1|%#$a5$6dKnlb9-9+&q}3QsSGDt1 z!|ejPd)6rUvr_FTSI7F3;AMU4%)VOS_V6h@7I8aDR%CaLZO+{6E>CC|pth4-Bv(Hw=?^G$4N4K+RI78>-90uRx4kS->_m1e2xMkyc0X|hDZidMR7nA!Ko7sC@KUd;da+v zlc$Q`i_Ve?P5 zRVKQnK%n!0x8AO{VjOML zDGCc%>>Oo$(~JvtbHeUJ&XeqSKZ37Vy(V<1{ZF+X7cBUV0e8#VAg9kg`OwHLuv2^e z4QS4G3?vPS8H7tm3g`PM{?UR>;|>9>mR!jAGbsjI@0i1kVqZuz%jH!D;x+n7mAbx4 zE=m^MrgMXZD2n()>$>yoH?av!`F zQwWB6)&P}Bvy;CmUz&RG+)pQX)fIXPEO|Ao-kvM=;82v{N`rV^>>uK^A|IhXL-z35 zDF++^kHns|aeXU0+UbHV9-D5-uCrph*T#EVX2Q;^LRM;^G?{4H*SAgAB8uR%g4ibO z$QV4f9M|#eIQt}hB_c$9;tS~|KFo&UJs%I6Q}TlK8@Yulw?3hB0;5kEs+VKceN3du zhlzd@1 zhcy*DS9Ha2`6`qc8uwLKt4ndBVTPU0KKbq`=Hl7WXK3#XBzy)DB^Q#+WV&|Dtsm#B zh#j&4lH7*SxfM6+XK8mU24Ob(*ED=OA>MjVyHAFiVo#C;bBan(!v5ZLK0ImLXd|Z? z=PQhQh&_^U7m(>-TKY_gj<;O@p>IS-`sWOO>9Tx{4Zh#TNXQ|3MPrl;0j2cg*j`dp zT~W$qkI9nIhZ+>9dd%`mU&6HNQ{|^`=Wx5xUyAX4!k3Fh5E#Uw&vnEZ5$o&&=!+wr z0{+{^91rUD(zG$r;ZxKK<$Y7qPo#L^xM$+44WiIF`1H2J_^vLUe4PcC!ADgb%zO{p z)Jd6{ws9-W7x&HOhJMJo^-r6N@S5$3!)l3m=0202n}szcw+9AMDdShP+4OD?$W8J( z9$6d;cF!%!faSoI;Jim;(ez!$ei&~WlI_h2;F|)?^uqqb!V>dTn6fnq57LU^L?0FGB87i zNm8GOm2y)&RIKm>!H$e1vCnI5*cYPHhCM>#w8tA^pX1GQ58hGi(TOAs z4oC20EUkN{V-M4ivq^_rGo>f!3_j+DKxGYEZiOL{nm=xmuT<$lPRsNgE?%YcC#GQ! z_0~cOoO~OjpWMnsKlAvq&f|#-B^=ok9a)h5VYODsLg@6&c5rii+8j8L-YMX0y?gV06A&-EPO}Y%JRPp#4LzluY+(l8T`?`y?S#S z_4_Gg%^LQwb?lu&D@X{=Nk)5W^8D{S-DwqCKMRDR_MEts5aM|_%P&9y^3AqX(*Hl) zSQ=SqS?tl9n7!h-xB)jaEhXsu8wAMX1>Q{$a(94x!lbBJt&Frp`wB*BbXA$>_y!tQ zs{>I+k?!Gwpp~TH3eOrpUf@LX@)WWzELMeOomP`eO;tlY;v z6|w%AqVfm?s|~9tEA3aEwm&msW4ix4+y#rIPFzk+S0qZrj1#qHJz1w##-T?dul4nQ z_~9F=8b4ZHx@7PHft4(6M=v~V6BAy0bLdq=+t=9E8tfRSoa0G|JQJXJiEAm{!8Bm< zKuEa;Fht4cJLY?F&8FT27u|v9-2~|u4u|#m3Pb99`^r$-;Vk&`l?m^N8OP;2&*5z< zhcWccOczYSUK5lz{>%A^9>k^P_-`NZmzoiq&7(eRD}Nt0_b$z7H$f^RP(*bh4-#s2 zN|-Q_*z3VCCFg@T$E@B8mIjR^?G^ZR;BUq>bAZQA*8Y zmaj6g9_I}uCR)9RF1;O+hjm_Ml0s=%Z6BayE>4D&Z=L6FBlX$2+C8howab!l7554- zoY@*FM5~8Ci3gKjYTf-C=7nBrGg=ko;UB|he*|6rd`0;HS&O9C7V|^#yT4TJQ&!Lk z8>Kxz;cse0cTSiQtTi4zyd;8TA!;U_@{b0|%97*@SF!%gY7Mhnn!z&Gg)e8Jl_gAQ z8SbHgfUSAeQ!ZR%({ERn1DeG@_YC-nipudD#OnO2N<7_E+7d4VDw>}JBZyFX3*DW7 zM5dGRl0$JXGeBvXzGiPQ#?&rls`To~#|(KT zFZ@PJL2Hei1?^o5<<-S-byiYx^n{M|fkS0D^wiYl!m32RF?0U!siVL6TpXeq|H%9Eq zT~85-2_HNatSD%vJlb6*WZo(z{rB@1MDdgKLG63{@a`X9tD0pMEV(I`8*ar8baSGk z_5ENUH$XkkDP(Rpq0XKNHh^g z5kMOEBzm)T4H!I~m#K@ftKtjNw>m>ClOF)$zmoVRI$jl4T%ag8)I0B8_jo1+{vsqn z&Wp2mEdh9&zv!Vz?@MoTKIw}~3;Sc$(l-SPF5gV(O24#cIv7jH@3K#Qs3Uu#-eQ@; zs}d-$$TUms)*|%=Zg9Lwie|;r+*m*KDak92z6{0!uWxJ0K1VK#;zQBKIYwwiuyEGfh>@H-< zmK)_1ONLtHEJm4=@RSr@7bxhj{uQq{r^m>udDo|byz=l`6+t~T?Ze=ysM~v!RvQ zIEvKH;%f36ZYdtw>m{XX!9KxDZsy9wDa$<#nrYXT<}{RL!Pq{d>m8Yn1@S%>NI+X) zyajIQ@(&^8m#9{Q9tk|_7WSv0hSI#bHjwuEb%(5y9~Cv@WIl^;X%P*jbHxe!Lt?Xq)h(Z9rky^SM>Q85NZ^`)ja>otUmZH)v0_5qX{G_IT}N{o-eO-|Z*X z_bwKG1Z-l6xMzNyKvz}JND93=&?^eqwF1Xe#54xTzvc#WQ777U#H*=p?{{aah)O0& zDI-`Cf1cVjmPiDnYeV!DB5YDZezSuzvUto9i<$cCx!EWib(K5e_}d7bUq$%(JRjTk z)m%0&=yE;2OwmXwl&v-xOtpB>f_q`HcRIZB8{E|hf=oDS5!Y7&a|2|SSC)I^LRK6- zyeG=7Aa;93p1v}RC^6#(lOnneZIzR>9Yc*TiGsoZgp|93*`6+U)2zv~S^6;KtuOeZ zh5mTe5cbOEJGx=Pb2%qwJ8sm$#E@!bnycX+Kb<_5x)c9h!ifrry zdPFImUS11PbGBHS!@ZITO_RdggHw+8D}5Nr;d<#oT?L4n=@CWqyPgY=wFv`#dc4?M zQ#j!=2mIT~o!y9Iy7ecpY|0IKSZeh)7trzGbv?Zsd(HwD?+%RamD1AYMY-sF(4xW* zqRc-tXo!LS-LKnzxcKAA+X77+3WcJ$U{Gb7cYEXU_4r~_y_0Iq{mviwaQ#)tO6rDU za-}b(mEz-Clyi`(hP0h3ap18*NN$~Jm6iq`l~Hq={0mWdsoj^JetvV_&7TVW4A&E$HPug#@!nm|8?3=A${AVx@*DT`cHc z#))2IAhL*SY9S~Vx)3Byp3PiUD7=-=&!cFrM_-zp%633xVZhbDjXcyALp(|%_lT7y zfu)2Mki=%$D?u;O3ok|e z(rZ(A*g)(OOTx%kGV$vP|4{yI3iX-Kq>lNtZ$V85!uQ8zow#L<7>(w))&=mXzR%ZpfhLnBxrhi(26 zJ1^qj86fLIKMdl2ltOIj;%9-@Tq0khn1l2j@I2L zuxFVnvO=K}A^K|Mdw3TiB53+gHW`?L(iY`FBL9oyyP$Eu;%fzS07uxRo+7{hmF4Xv zQ=a!!rIT-$?%(JG=Dbu;;-MozEoEu1XG;-8KX{MOhP(<&9rB>*QbkM@3rGn^lt2=D zGNLSTh}C}xWfgVy#rJno0HH)PaalXUdCl;es9C}4+Z)z7a;rov8rw}DH#y_?x!2zx z=i8658PBN}FWT`XO|{kNS(;U3I<+TsIgq+1K0*kt8|zHFs@HsGT@&uZT;>W@` z(8{u;e0rbeOh3nOp3qa^9A2Z#wW1nnkz4-{=gIu3dZP7*pvXw&qFN8Hv{>Hj<=w65 zNySib)wAF{?0d@a?Y_L;klsGgwZeW?nLR~T{AP31@!NMG$r-AkWI5C_M$t;#9_mTj zi@D!m@6ebcmU9*7HMG4D)|zV(!cW;Z}5zkp!6wFtJIKT>VZ1bS9W}JM4 z;MSGkG21Q-!jH8neW-qcYGR(#5annrNc5%X%7DJ=60+>LN^+eWeL@r72~1Hv4!I9}aBjVJ4)apR|0& zwWPh+6Ah5-!lRL!Fi1{OaM>UfC}lXGPet?f;Auk-z3XE8k~G3e_@zrUJTPp1b4sw_ z=J5aR@$6Huix~=8R(l*2ES|%{hl~}itC@`Chp>>9(Ro|sn;o$baHBMMzl`15b9Y`L zL~#SGi@6ce-okr{xWg#xMKRB zsgfQ{+apNud}|Hyn^<1xgL6u)*F9((Q;Tx2=Q zL3^;e(J#2oT@@=JN8Xjk6#ry)xTAKL4Ssv?Bg(JMPWKqfvD2XaMvvf-5NHe>(hP^BX26x zF+hsRoh6_Ab2vB6yMaz7cKu90X=tJLW$uo7qR|BbKr_Anh-!TWWjz0$S3uPA+l$uM zplO=;a4yKLh~j186&ari+H+Ga0X*#&?r-kXfg$a#>vXGjEIw6@C$(q!lC0I$AJwMf zu)8^jehOEWw5;=?Yo4`84l71=%oo^>?~b34GeaVS=i4e`wx)ytizo2mgq~FNw)Wuc zAwQwW_hv_b+-!j|N!ne2`LVSeOSWKtrOX%B`hH2xL?W*$5LI)2G4#B_^XX$h#>FNw zz6AuAxr@zElHtaMi<{3BNV^wlMFLOrT5>&^-%n5e2znqZ`7vdFscV0U;ih&^p7Qa} zEZQuFuU){EZSsTAd{GIKD#F`^v$e~SwH?GPs+%=zb&-ckFL4;cB5lw3-DPa$PSSvC zzDyED_ICGyur;})A~)vS%+`V>Y$ycO3>RH2oK1Y_%E}rO-$>8ZFNQ)Mf1BfJSd{4_ zQ!Co_^3AWzed3@$McB}^;$YZWmfck+Wn0o$xg&e1e3$m#S{pA_t0<+@C{3I4s-=ZL zR{j8(43X?jg`Km4PyIj%fG3&O(siOesCv+*{PE;>_hyEVac$blC3~{;SxHQJE2oqR zn988@fdA!dPF`(K5jLLw{3*GKtUIBXH!is8N)oz7rMLCP;|>d=i0ni2wj|9#rxXJI z!S-IeZ~RR-!cii0m4p{;V@=u=+R`LyeqsN%MP8-0h+Wu+~^eY07QWa#&rTQp*&{CT>()Jg7mx6P9v(fuv5`r23+^QQsX`62=&(EvI ze&lr(%vRR_;Zq!UOUEFl7xxXL5D&_k)ZM?+3j$B30wDlMq`i7q-2QNTA{G}a4asXv zn7S;nW`8{Z*A5Pg$D;_60L`?+8u@Blb;a@f&A;C)xmBh?bpGfL_!`1t6g+{eB<<%xkIrf&rb!~Ud?I|v9eE;1yqAzVO? zocA~kUqVnI;@>h9E^&9de(jbwI~oXrF)&bs-lm_NODfeUdrPhtyd0eB{+R5VrIXFH zln|0dI{4+JdLeYq$QL~_O|72~pSk%m)GOn~0V_Lowf73vN-v)ktHDQ(&y3x_VTnXo zhYm%M>*tlz@CkuCjNJ1E;x~sebXp^>_)MTnIxjUEPq8rXAAX(;B6wu7G|XuPG{6Rq zQ`C-r#ANvH9BL@ay2fIya9nknt{w8^bk6>2#}e`R-YPIQd2L3Qb@EMv`wQsZIO$!` zMS;pl6ne@|uLn1LYrQMRO-+~zc1qJ0s9k)pB-EAkRjFS`ZTyV*xMxY5xmeBA(Vz@# zdG7V{JhW58&By4>tDds3~HXP22|5OqP46|IY;wrURYP zu`9Kx$H=^<56G7QebtiGeY^%`5PN6<7}4SS7$L4kqxwO9Vj*hE``lpbUZ{yeVz7?^ zzWAwvn1TS_jD3g-(n08$E#ho{gJB8zp}#<6KAdt7$3I9-u^i6P?395AS49|>jb+Jl zJZnOH%tQqJVAt?5?yB{MSGm0qzXvyNYw#z)%Liq6^js(;J^#~O!% znx^UHh%NjtTA&D=SWI!QjKe7^qgkyPn(o`6MXe6_z93g7HPltTRz3L%=3|&gMB$>L&oRL-lTvUH@Tf7?eE0=$hJ9(nDtWq0FI)# z2v)XF%dIIhmv-egQ7X7Ajh{bod1qUDxU{rn92&5{@IC#jSiSQt0XniW{^B(H?TfbS zKzPNmj~7wp2(;thXw%ojY)wh}&!Xj@Y09lB7^k1m>USN4;KD%F)W4Lu64i0`Kt)zCDd118dTNcW z5il>M?+4yf>9OzhL=O=nu*=q43}?*WB_f~#W4H@A3Y^8lXt+Q~-|*Xz5B;X|-p5`?THHHeo25 zRwz@J{SD_0KOw;R?OtN7imZMG?K`P~hukorKS5=9X@gl z9jhP4-~~8RI7l?D0$^04K`?BikE8OMNq_PGaAyJ3iuTQ~2Y*xk`)JUIM=QHe?CGyxuuwqlA4|B`9&U~X(?uFJ7Ti76%84z&=-k;kZasD|q zD#(%Xmt^8WUs8$7ovYtD)RcW#g4Yv_HW3RmSI3-jWDFfKa=_X+_I7L>Y5XG2g1P8Jyj^2_uWH8Gh)bsT9KLmz>Be(%W( z+r#@KaN`n7)DC}ydt;<%E%$ExxfdN3vy1{) zDrTDD;S<5L)yd6G#N4&UPY+Dvc8@@Vd0}LjMk22z`AIQ=ugpYYS#>5G4h(4 zPiBUwH0xiMIh5LkZ;xiir^n^wF?=#Z_@dz^@TMS9WKIIq`MQXdN@~MSjQN1q7uX{ElkeE+sIQ z022iE52SV-6SR_C7-|QNC_)Kq(e4hDEnFhgc-$I^Q#OMxIrD!dxwsXv65*FtbHcP7p_n?7771MQk5L$f;Jdl{u;DI`Q8-FF$L%9Uk8%6VPVuD1j^9b zzml6!gK0e$D%!U0HSq5_NaNh@mDUP-dGpSrXu&vguB})ZEqRYUx1~5XDVTx%=m8rw zzM^9n77ETf(>^002R~L2&Z!}YZAlASk__h+2>Cf0hxMX#o8YO=VcJviz@-Wv)?uPf z0GwtQI{%mxst=FfV)`7gM+m&zbT2e}gzQLH`-z6N-9-@bjGnp;@GKWezn)xeIyr zMMw99~8JSG+Rq4IuKc{ytl_E0dN)TA`{~xcp1` zJ6tyE@IjV0E~S8oq%_hkAp(ko zG!iO}OG!5fh;&JJiF68xbV;+cbcgK1_wqTv-<~~Z|JXTq?#$eI?tR|x*E7Qvv`64$ z=i?~3Ftk=CC-dJ4nXV{*gslL{8ZR=>$-*i^HNaY7x}oyVaeQuijgF?d<#WFli^+i1 zJPs+okOq4@vmT}*myJ6)`15gR!`+*Ut}McfmT0?06+=&Go>O_I-vS7sZ&o^dE6=kb zH)EobaTq35Hsend{eFMGQT+PN0?ha!e3}ph2U2hk-kjWy_V#`E08`o8!7p({M%x#R zmsF6N&NWrVeEg}~+rO1D18}C@k774{_x&$jyv&L|JcI<-tZCR4f zKKe405TK`dFj@#A2wASQ+vWTAnJ=Samo)rApKr7akz*a8-z!hFY8qFui}qEUW5W{L z&V#P|rNmJsAAr$&b!8;{3|fw_cPkuTA8$S^W_b@(5wKCn$Ml6_gZ>A2kL$pSa!uT9 zV^d?ZI8r-DfWC&5vl@NDuZ|G~xmIbWwnlG8LN7D$Zn>AiLof-!H#PN*1z__u1YJm^ z@l+A8!6*0D7q~HUwhQK?K15(jbv@$-;_C1Vl*lVL*UUriYfXtj?wEH~?x8Qyt`W>?_e zclnQ0F@}r%Hxz5aUn=5BJAF2wn}8iKTo)D;&SYhAD80c=zM&Dpa;cYA zI0-%Kt$rGFCu52)Hq}7uZ<@t#AIau0HLSfm8a=P71jwx3ab%Xf%e{u3LEBRi$NzSK z4Grm9W}qM%-`Q{$wYpkrIj3rlM1{0e>VTWTUpx$N$KCvf9C2rV9hRN%P&vB!kxI7E zwF~KPd|?ZWLUVI+Xqxp7mK`NT4d5!0Jw3VZ6Qe8P)Cyp@nft5Q%5x|h@4RX>5>v2R zUbmq()QpR>bStz@I^_TuX}369>`>zxM?WYfZo67Ut-62#LAoHq)nvlyYhLzCbzLr_ zvWBGE@>}n6Yl$K?PAh-D7mD^Dx`n5Foq{k(MM$0rz_CHzT{^J71s1IzEK~PEm~~1q zUotu%y8&gm7}e){B@wP;lvXtQy#rh(T%#ukc|@4+&=ng7=NVk>_uZG^`g@yvcBa)WDp5J|?`M8SH58${1Qk}Kuqv7lZCFNq)B zMrx;vd{VZ9o>n$|e$cF%agcNv9m7!ERpz=p_ZaMjBgT1gKG*XQ=5 zoMK*8B?}hS>gKfl-4cJHLAFMBs+iQUhUd1gLyior+d@O5j&nv{6^6em&acj8w{DBu z7ayVAh!C|-IlUDz%Gd>rh}rJffj|~4Ur%5Wt#Jv{+4&i~+}X0Y>3V=1H;qbj+rhn> zpC@t6fdoTb-}xYLRNcQAkP;+%Cc@JT-Uz?#-AW=eT?aTgXd#F4=Wa&jDAPx0{V!Cda`ZHU>tqX5~Ayn0d$K7r*vyD zV(P5%eV>ow+oj1korRYE%VmVEK^U=Iq&E23Ph8HB7J7}4A+7w(gm8ozH~zKyNC-{r z`&++}1BWOdXXk2<(KcQF{N7thj=2XwNIKo?p>@2woBgm;;9M0{n6QX8H2t>nA37DB zoI*x@3pyC^Qanw$W=O~4ab59qqgB6#2~$SbNAZ-eX@fe}kl1uFwTTRJ^FVcu(HBv! ze|5n8pzO9aN!@%-<(K25Z2X`i=t|Xi(7_C)*62}X^SYX+sbIY1$Byae{R!@{@ZGe) zGWDlye`Opft{I>SaxSH4$hpe=>KWx!SrqM=bhRVsH)UGa@u?^mGM; z$>2p>sdtLTRe_ME+dO0W4?^>Wr-`TnwrXdxHZ^d22nF@*jvJnEGa8HT6IZ+*CKTQm z(kR(bJN}t!te@c=aVHv-W%f<3#a1#a5O8aM6uD-H!rGP!ooeB32tKeMHwpfn%0W;>uSdhPh5$6R{nWJ@sc1bHE_3*5J_1$_jfCu) zkJi)yB2L!-l^Y|tqs$6tdG#aIvC9;sq2$x`kR}rat@knc;v^Vkmv`>!_hLoT4($l> zmOQKcYSNOe{lUK^08UlvktJ5hJm;CSs(Ao8eIz!X$b8=xQb>H<6*_Y`0iBGOG{IzT zj9hjH2zt4{TulDjeep$YxL%9b2TY+AvHOwn{N9(W3epY$(`)$7w=WYv7sL}v<;bX*!tygc4-5fzb7bpOi542W^+%l zk>yyMV!p!f?Q;l(biP?tSYE!j4gNR=k*y>4Mezg||7%Xre(kr%?RwSEAlns3#N3M8 z=DRgA>BPswJk5KXL%A0%$2`dIWex|ThLt8!^VNjN3%v6$-lUg)xhRg!u&Q;GuqO#~ z_J2P=r;f@aTl5U5GU;cA=;#bEiNn>OhU%lhE3>fq##}O)^5Jy^!CTU-S`atiKHm!; z6(;o}5JlFe$gR`F$$$%385G&(ywMAqY}0&9S`tyU)*ns6_s1Vq)NNJFGF?vJ^p0Kr z4J*i(jsxj8(l(v8RjnYSA>zjidGX|#)5cI+XeQQO03605JE>zxt=mQrvM$9Gk%;9? z&R@51P1)1sQratk`S9qYGpOZI>?yV-e9o0XW+7VPQod7(TAzwWfzaqwrvgm~c-=zZP3p@;nf2B%4J56t<8>dqd(%ZONdvjVTkTKe6Ge1FbUNCsV-uk6p22q{3VJ|NIATY z%ne8J9J>s(ep99Z7BrB4RHx>U=qcl`c#{t8pGr1|-USc&(5Qt&*3rk$RRzHPxgmZ{KUFPu>3hE0X$O3+eFUmPf*6YO&Q_7 zAZ@W-C`cBj?>~WJ>#BW*ck``3Nm*5h))WZ_)kW~y^WIST;imqL{{9UKl0-@L#0XH~ zT=MpL+Kt)o0Nk}}tm)|5;3LE;QuPp2aR%I(owG*X0qPT2ew+Kl(-iWr>@>Wci}TPb z$n?Xrhr%aoeP~;Wrs3~aBV<>rj4n|VtGT|YGIkdhb!GRIKT1tc&6;a8u8i}bxr;i@-{x#qNRg^fI75yC6M~~!7|7NHrX(_hK3LLKxGOL zpa0{k2KzwbBEX|`A>aY6;BFcrI)AY&J#0u-q4KA`#yt5eq04SmD(4t1vNIX? z)l;->eY1i^K?(WGi1Yf+#9yvit#qwci*Cm7)T8|%J=l{zqk}N(rH3Ym!T|q3GvWTOl?V*s0 z`1MKBWFf7Ud@Kf*+JPlyQ_r){(&sfGLp@((FO}f`=*&NuMm<>r;{7svl;XgKsKuWs z2UIeCSo*_{DtRo`if^yB3+iUJJ=R;;z6HsI9kjSfPt-0)nPLCUx56aIdF-rx;MU$F zLgV*On9pS8W}Nw`KnnZ(w5S*9y94Eo|7|1C=Onav^u1tDUtaCCWDPhGFX4+o>}lO%%#s zHdbpLAnaIl7m3NJPxiQrJ4}N@apHKBBO@6=1-;M!!ZKL zQw^Z7DXiLe+`h0%Ve=OGxgV;*y%BLZ8FI6L{`YD+zgtJ^$gUyqPeE2k$O(lz0seY; zPDN^~e(PvRqmreQwEpe8_~l_s-U z;pdnijr9VQap#-Rc8+!6koB**Sj$t{d!k*UY`ZEyo1Kp!;;gdc8qIhr^JjD3<~Yh3 ztgU6im|amCw?sWGK30pz6@r&l$9v13JRG;l3;vZTr4@IP;RTQ&q%|qp2o94zsnL8`2}N# zE0b|6^OGik!dOzQp0$jg$9#`2C7K%1@9Gg>f8U-vvOn`ITmSexub!}eZ|le22{La` zeBD)I%GjoER8hmNj1=YqYmxW(H5)06#Vuf(5;c3rOV%$g2wwE*!KF0DC%|p%=j7c& zpZ?ani@HpBi2<+nU++9JGm%0Pv=aQg?}n@_$r1mqeR`l=82M*H!=_?vW%rv|pUTgl zN8hGmD@gs;Vr4(AeyIcRRtS#>ddun|a4-!!J*wezBz#1!WW^tQ7iH?#lhC84XeMmJ zG7W|NYL*4uKpmyUs34tFL4~&onr}U6F^?SO(Dz>@FzljR4UJD5%5(?us26NE5UD# z`tZ>?`OP|?G0sSqcynyN<`OO*(^LF%;kQU1-X5NIMhy`?V&xA3Wv60hNK|Mwik-K~o%PO{M z3)U8dt*?)NeB2Xxcs<@Txu%>j{Qh$hA_adYK3hHZO^!Q4PNSl-1ivk7tYfY!* zMp`3}mWCrvv@NP3h+SW@1GUb8Frmk9|1=Io@0@vSG+q1P zk>5FReWt$%{gOpw)UV3)%JafVPdY{L?;B!$Es)pjKYFer7A zaIetQj@&vn+QmW1-qr6G+DKD{Mq;ve#aU$Ghlr4(ADWS=Ae@#&lUgE`qv^a!r@X4d z0%r3i>{i_R8UGl`fQY5z^-m(T8xx}|UJ4IB{3fMbxFddE6c00SeooQS;xn?N5*|+^ z*s3)y70cLMlN9MNK52$Cs^f1>PS7}((ODh zJU@vJM0}pVkn2sjbAPTrINUe8_wM6JK_Tz6mdk64YDgz^e?2`1#H3$m#k|=%)b!ep z&z`6QkMcehLa5wdzbFl>csr)5SXbP>Qe1bUiLdy#D7!(yS3~lDLQI-*4nm$2O&t+E zRI=@Bf~<%c8=-S(QJ+7nuFXtjZFe7f0GqSvG9si|f~)nFB@3{7g`-2AkWQw)$A#m} z(`(!TF^UiUMvrz`JxL<|JP2KaPBYm>rM~8GGG=DkUKmOA(V-OraMd-A?R z`|1lSc&vPMy_={OrgpAP!5Xp;)flPlXv&L`mr(Aw{nS8J6q%M%2|1*{aiW!X+1s2K zA6AgWOpGg!nhihBmRtAn+}2134qU@u=-c)SIUzD#P>wEYaOx2f5-c1$y3RvZOS55b zF%9-T8%2_+^q$>&2d{J_OWoS1C5CFokdgCsq+lD{Ej+)y7AV{o}vf$_0LOqdpg9GCXEi9 zg~88(+Zd02vVAPuAxH0fb;NqOV~c3_sIF7!fFQY^2oB#B%&H_$bW1^As`~Q(nEqr5{|lBsiPRdw}zZv5wix zyB4^heVGD}r~sTE^9M&f*xzwI)5J??l-#Mmi|5MdUf8a@eNTtaOWwRL(x+aljF2m`TAtex zB^>xN^bl74I^1{I{~(jEP4pFc{3aA%jzhAM^a^djQkQw1=F`GzUJ-{f7PEl}R>enD}B#@k!#Um+y_MF9aHB{_B3 J(x=9L{{zA31Tp{s diff --git a/img/logo-square/redwoodjs.png b/img/logo-square/redwoodjs.png deleted file mode 100644 index 7c663040e3d445687dacf4d87d04202e56a968cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16179 zcmW-ob5y2X7sj7#+nC(M$+pdzjLEj`CQi*{+cnv?ZQHiK`~Ci?R<+iR^PIEywXgl# z5lRY@NbvaZAP@*iT1rd>_&N077c4aJz2bXiCI}?(A}uDY=AM3*0ppB0zu0wYElb@l z%wr)$4ySI3$dFA+MEe0%P#jK5BQ66UuA+vjjEM%t!d5avW^g30b%gpmF8J=}Y^_Vj zw^-dyhw+Pvu?cIqS6=F{-x-{CZkriim#vTMqY(5O<>vi#q#ET%LIx*rZLk!Sl*sMIH7lEXQy2I zQ6oyx$SAi+r9>xm_vxFeY!ET5*~e^te!hXKpQ(l(B6G8j0Oa5`xN4Pm>KxslkqwR6 zQFzT_`I1}fDxK?$&g-Z>x9i$Go~>huFV~}&4}&D1Pk4G69!clg(tl)3R)!O(HzR-j zs)Y{0Gw^9KpQ<%eJOq|7<@)*>1FS2y!eQTqJ+9O48)oJb)cy0amR?AJWRk$vtQ%KT z!zGwEfrfDq3YdYDqvOrr#Kc5G4j9{!?@(gmDk>^r;=i!v_imrRfOTb5IMCba2lVW= zX79bR#A#}(bSUhdfPH)^^jFNvA$4{&w&H2G-NYbDR`2c-T4l`F*@(WFmi$2QZ}INDEcx=Tj&H zON9c9vYmEQAE&54150mJa)AH}4lYdaTsU_n8FOKfZ` z^;k*L60VX4L+Ff?WX{!-ZE>5^pJ+0?ZTwj*@IfC~#_5bD!iVJu3~GUs)y7K_rj|H1 z7qIRaLhj#jadFikP)p6V@99l#_R*8=&}t(b=6(Iy*l#FnpSS6lq|LZS;jN{p3d73` zE(h`&yUmVPJvCvAQt-eHO%s#-F4OVUb2F={vHL91i;Jvf{1^=D_EgcnvHdOl)j#zt zqa!2GUheL1B`=2vlr-`xLcq>#o1K{v*uQ9`0c= zGAf%bPt$;_v2oJ~2DL)eDe%x_W&YnemP*yj$OT`H@_Iq2=0igD+_Bk5eYQiNP6#yk zCrfEL@ih*Q(3b+eU4Bnubr7Z?$7Y=mrz*YngG_Fx!V__{#6k+vCE!3mIXF0QG9y|U z4++I~$ch9`C!#iciadq=>dvzg3>t`+DbQbDS{l=MuN_8^R)xbf0*)@CoPvTtjNx}} zDhMfh8DN!3q_||5(hdAVsY0g$`;TFA-eh>f*V?-~#8LAcp1ghKL`8c$oDL`cu+_j= z=dp!whP#|CDZ6j?gmeP`#c9D=^)dvUB%8X*zCTw6_ue#IBMLm>1?0|-0aK6Ifo@e~ zAl&Y>aFB^AHo7cl4YR(!{zr$;>%z5r8>kfLkFH!$>!^Up!N9K=l@(CI zVXW|RKgLi_<0C?jbA}MfQ^iGpQKhDhMN<=#3IsT~=W1FjG+F+wSh+G<)xx?QIzq@F zX&wLI!-y@Nh=msp)D!gx2nqRGtQIT5?;pFL_vHKw;9>BcER>{9O4{aJUha;+q?OwHhrq*nYPnpjHUG#G@Y%@oRMyqQrYS(THCqrPeM3JV z4E!7)ivQA?%JWU%@qNMFGV-MX)kaV0{3~L4Dol2nvSCe5IIW z)M={b;NbXcW{9#SQ4=i1)8KZwQF(hfsd#&HMLFQZsoCl9tCo6NYp}6oEHTkcm3}8fpJ>c4 z0^l%^zBbxzE$39|Alfycc7$GbIZQe3=xnX7IJgj8*BB2{QBqKxHK;j_>afG!a8jTT zPhDMIotH`^rFS(tfgUH?g_fs4f80I~PB=_Mrk0V6Gzvv-KkPt?qOcOk2SFz9NIxm-e^u>ByKDUOL-*YLypx~VX6W(HRrF`52(xp^~ z-s=-py@#m1F`Rzy%6Smw%K0@G+hF=?T=AC!M&I?>@nNT%DHY9hY~_=E}X4btPuOK7Nr zaSGtAQ~V|%0`JX!Pi^lq{?5?xHllCuH9Y61;*u`1Ds;DlMCy2(%l}u7>Q#mUeOwtX zd>J94Ir;l{9UUD5Q`3W3@BjnwjB~Rc+0nOSgrU{jQ9obJ+dbmBpX)GT*|4b1Q}jy{ zjWrOH7ZBMWKRD+0`Ey()h5PY)3JaJ^{}d!jlerywx?i1>cS$>ZvG9P~J6}cQ z>j0@M=0IdkUbdM}=Z4?i-Hmc{bFa;to4`3ukuK$khP5E!G8^E4raURI3eH0$1-}-~ zX>`%sl4{Y2P~)s%l=~)wEq7J~vLf&p>~F9j_Xui1b6nhI-DInYTx{r*QoAtF4OAdZ z5<^U3v#cApf|TsHx&jP?ppjaBPNeqDfd|gd&$~3#*78c2+w$N<+UfWc+#WU41``q2 zI?`X+q@3e!YTd;wXNgd}{fcut@c+D$jvCC?wo10Mf;rc?EOZ`{36e>XThOLJ*ZrnR z#_}g3q~2x~d$q;o^sTzOdK@I=@kNiUB<#&6ZEL!vpN1g~dFIB*-IWxJIRG{N%gW5e z=*`gziZ#E_w5fla#$&=f=91^D@LaCT7SSh9-f2Hx()NdDZ4QkMNyVvsGvNqh24qrk zj5Gbj>do_8+5tjB&s`Y8qRIkm3LZGm z*r7W&DrVtt?oe84&dPI(J-hd^Ia@=>wc$Oh?oa-o;lo?Ac95`V$2h+!#){MD?8uU? zb`jkL`Qnk-NSN`#2fT$=4-=WAp1nWFmye<)J<k%fU zr4OXPe2{E4kW(Pwk#zB2s&eyJ<)SCTG8cVPtI@yw`IWHm(DQcox*Q%xcz@l>{_qw> znMHsH7BbKc(74h@8OZ^DQOqM0fJ*QNRKmgS^P9BujD&qNA{MH9%dVs?b#WvXWXv;& zujR2Q!#99_uNdEWV&O8I>Xy;WNo^OE5KP#(2vDKE#S8?xGLuB&S@heo4sa}uTc19V zV0LYak29eO)QSq1>#dK_s#fTg8P3)RV<|mzb8`uN#CFWraoL_^hB*3J?C3HR#QUzH zbaU!!l$20g)AdXhRxHFQgy16Gt&ga6Pe0YM(#K~jJxJ^HYhehr8-yPVWQUh~?GI~F zre6063()Co(l3eG~ok-f?z1AsGt`Y7Kq#Iw*!ZRgJr?G(J?T31wY?z<@t!K zU@{OQ#8czBhG`Uy|JGQPd#$9Mo%o50$nVpRVG`kXAZ4ZY|@^|ww z;O!@V#m0U{Rc5JryuzY?3%6EgosJghcSx(#S7WNO{9gGzd5EqtrUiT&9~l6 z-0x6qw7U%vU;8)6s`aAoQd-I75`Rsbn_&NU3IVP@Ncb}iEFjMUs}L+i#9?i5ky98; zi7k@KP&LRPK0f|UyV2GL4Hhz}M2~{j1Nu?J7ZFObAIfJ1|wv@)Ac;;xB zx=356*-eE9vU|1^1%57F@_2J|_g`o-$lykU?!ZS;QBm6S@9OKV$c?HSR?a!eyjY79 zxp$YQ@ho-5R1F)xTN?$Ojyop%{WJxH_h?amL_LB!JyKSvspOBbNX5L^hKJhd!FFn{ zEYXg{I9ZdAWtEj5=RF|^5#L;~}vG-ZFu?xA`wpW*g zyNcb&4DMd*5GqQ@G9N+{#TiVt1vF(tsWEe4f)zW_JoV`lhFv4Yavea~8y;I@ z9A=_Hq}$2NhJmY7Iii|JUf1g;-?E?PeD{*IdHQA*y-&$`Vs|!TYSJlj1P=9!+MOU@qfQJD|L_7-7IY<%CWm7UvwBfc(tW#9x&s~%=8d-h9*BQr zb&{=i?!0*9tySgFpm6WF34Bh`Jbt4>S)>wqW`D2wGVi(T-I~Mzw%y;?=REV+(_`#c zZO?m~|FX@{RBsP{QqfI`6w-Y47-d)-lT-rXr*nN~P`a^Lyg+d1;*W$C=l2%-@&0;> z6e}}M$}>UPBmx%e_ZBtl_0v|z5c>zT4mmCD+$%nC7bgY^U?quHa_Z{mTREj4QKKnU zlG27P-f~VZ*e3=!aDpdZoW|8oqi;ZY3 zVQ~>o%5uT*+uPfj*oH|vnad))&(Pe49}^u zi-tEUkks2LOQA0^c5?39*#9mTrVK(n##9N7C9UGZh2?f2-+!TPw@-J-U;+w?;?hW# zkOT&1ViIyw?}_hRTg`bFMicnKAglS(KT@QqPXw&tW{;4lJa!`L@A&XeNa^U0OV7|k zd(`wPHXK`Ak(h$ZckDxD{hx1*(XE_yxNq1qhgr9EYCX_E zJqbt)?k2YrlPNABYMGt~WkN)%K`B5bBRU{T|+p zu)4gQ;`+nR#sHj*XU^_$bf{n(Gjj+V%l@d^l_Wvt0EqO^I$7-C?%}CmW=oY zOTAV!$$WIRp0&mK6C8we3!`K)$!m_W^HQ!{oQ{e`cc~YYcDorUxmh%&pj~r)74TOT zTWHWFtgE161JdeC0H6&zrflaG>S%khf&C;{S& zwFCOv_)<}jNAK~DW$oz+iH6^gFvBeyDn|6*+$l{?R%rkP4tzoPsr>W zh9buy81}{!TyvG(sF*5nYg$*xme^th#3UjcDM(BV%TkRDU{*~Hr=fDHj9tv-%PHT? zS{zxMUWlP}sIML$8^9S`ydzsJS9ukOEW&pnoScmc>U{z8-(hFJG}83@%;ZZ~ygptECXBlD7ntEU)dg5rSjk|x`KAq0ZrLrkc6q- z)TaQr;WtkAyIyoP%?Nd7#QAn4!bh?^;!q^<=eXBF&$_FqX{E!DMW^^ecwBxgtnoq! zL!JTOdLpa|n%2Yt-wZuO(M>Gf*`~W4I2yhe7%loh(@Lozug6>sJ^6ZMI|np*Gb1BI zy74dNB_+$}TU*(;3B^qAk(T<>{h#Wm9S|Er+&}op?rA)SQ+fe6rl>sQmwn8Mzsy~0 zT>-`EXU^7tIRR|u72H$aI{VAT&-tJ<`_Iwk@_Sti>}hP5^V|fvlEl%i zYZTe7<$%r4TV4@W3F^;cx3-m)l`kFe$Vm@QiR!e%&=gaED8;(;7a8}S(b9bw(nFVh?Z*vRsgA8B_@F}2R%7yymf&Sq zUJG~`FBZt1*VDRdiVD@d$WWdp7O$^#q{T>d?H3M&IJfR?2Yst#p(d(A$++QCL4bOU zvUhO6D?1Gde(}9KC(jsmR&l_iBR`xjVA}Wo+K~a#B<3dJAtwXfD#n)sE3)wc$)02Q z4=U1#AR^%&`aMc~|D2w5q6yNqR&4hYJl@$#wsMGNB=+1;0v9_YTe9h;2r{AcdjDZym)mKd|@qMk?>CphU z@Eb*HqZLGA`s^ksta^KtF$=utuT9s$Y|;#cHD6mii7Ie__um-gNFl3;tH@zy^0Wn4 zdX&@NLBxKYxU7CJYiIEF?3nw)+t>U@hQV|KGjbo!@V_LqSDNJD>lH~MG%~I@HW=NUxo(*xj(cY{xBXh;CG7Z4XfAF^F&pnRKkZ-T5hbzo6!w zuJb+y9wlbg!Q&3>1^{0B(GweyCF^DGNUC#5es#N@mDMT>U?JW6BM>3wBJU$uSz3NL z+uKhqf9?)5>G#Z@pW@0#0yTHVq2DXthcH@!T;K~HHsMC7V+u1O1aBwmUidfLa=%;f zwNFcAHcUZd=XUNbR7|k$T{Ci$SU3}$SyJA6?P3pa9CkGFV5*-pd}`LIbipZ!jcyn+ zgJzCRzpey%KJ29~Z8fB&hjo~ks_fLXg0WP8Rr+7?I3I0!?vMP@@maTIQanL$@lZ@w zj2e{W=Ih1~$kA7nEnzFR2jAv0{d_=DTWd2&Yzk$$I_4$pr^c;!fH=saU7?iC1pniP zxJv0{JNw~r=|Z%{rMC>2!&86-sZm|OE_+Dy1!<;8G3&ce4_Vn)PAM)S^|2kFmE`W2O=^BC!%{uO#zeU1E7DB1$oR$b?WJYw- zs8C!$$2sn>`btGrSlfXUVW)2>@C9k)Qy@CGL+48cO#pRgd9XGD)%UY!cb_d8N=vZl zn-wl>Ukh8UuNcTqZ0?2gj$`)R*M z-v7>QZuK>F;gb!v_a^b?Pr7#yXX62z&AChW{Z?i+nORk%UYj%$`8xP{v{;p;0MpLM zgi+vYFFYD?<`;4QJU0=}>9X{I1rlFQF_AnK^_J|+tJEqgeXO=qwK8|ON?C-sGn@0YpD3SASJs-(F=XrNZo@95>#9qYLJF}v^ruT|Ol?iQbz~nWUlFGEJdlNvVX32`d1Z9_{5?w9L*C2CJEnM5A8s0s_A&jqSrw!>+h%x?$0&ej=&YT zWUpb>2D0>{C3W6z+QfuX`Og5 zfe+zX<}vIZyElinQUS5-FZ6*%Dp^c?WkDCJaCKz@_B@H394Fq7#$c{%U+>-9Z9S(i=Xr7(*|E=&^J ziWP;F9H8fyoj7$NG6-hzezFCL1}~U@oS5$+Fk>MXs0Ef52(DlE3U<>*F$p2NZ#ALB z>i8#aDljr( z0`M?B3yx8dHn*@?N@KW`S{r7w0(gVF5#aB^?&u(SI$X4f8i#rK z<=XZ130{o)9mL4wvOrG=DfoUjTLpyPaZ+_1pxuCm?)%-_+k3RGu5K1L^w@cBIT$r6 zuy-}<(!N>;aiv03(Y)4x!BM9~#p95Ubw0c(zxj)^gCu3l5mtL#E^&OnACZ9@qXHw% zpMFk5%*b*A1j4~nASSNg&XuU91lKC84CjUjAO+S*xwq<2JXBt@NRlbhT+u4SF4I&v_W;uM4xQe7YkDpqrbewPc|62okuheC9n24OzzYsrU>|D!FhG^rWQML} z(IxY|hE`bhytEsJ(1%Y;swerX)>ZXcrKOzb-s-nZg?QK{88sa$<(d@IzGJq0gYEjuD3DJX!Tsk@w?UC5RDHapQ7*0F;jpn$QBj>h!Fx*z z4d}G3L+Ec~0f#vZLgvFeD`HjL zuaMBv)2l*4K?wsrMK{w~&467cXGan`8jW;cPzE~(WpI!TY-w9Vs^hju}_6A7TVOw;KNzi-^!xt4a##T6r4 zsF3j@?d$9NM~3;QoT}WM(mbi9)32ngtk}oPO~Ikb$ymJvJ`l~zsiIm_`Nt3B+GYFz zzxI z{fQ%z^E#M3@wXTZ;ov^dEPpre4MlQOEBupqyugS@m&GU%8Ies?ak1VSmdWE{nI%M; zy@$qud6@V02cspWLx`~y#lLf9cC5&u(ta9^o`Yc-dBVUinT;-m%Ix`!ObE6N=^&(# z7FoAcj9@$T2VwaAMG`?@Z>vt<_upzgIUCKaO<3US-{3UY!|h%7{yXx#UJqwRrJS@} zZR@$gLD>hxK677!V(@639feEwoKuIVgpZaG3u30wkbAtFGj1xy;b4S6vb5tQ3P&zG zKReXh1*9V)Bxv=b6MF98|EP@sVHgD)3rpEk4LeJ~{D@CJu&xc)wx|u}_l(HMBC5!Y z;kxiuWYI#-AG(VSy?_`3g(=G#styM*M)|XGtpo*QC%gWyGP>>&E=?A*g|8>|CGlP+ zaX=1xw@NkYbK$G`p8olAT7@#}QJ@mhlB`8%zUljET6a}K+_3`}ytQ0GLPK$%xDs{T zTeJyl&hLg*QTwgm?;WmD@U@Fv#kfv*to_-_SlFP7m(m>Q6ggGtwmt+uwWtZQHh5yq zT%dr1$X#>*2I=(VBxZSe8S1#@YAnvYcBRHhW^6=Fs|GzVsxLyxHN|7Dz5nzxsJdjh zu97TxcOx>^!fZG73;*N#^pDQ+++6bY@o}4fbQ{W5=%}>X@4`nvV@uNNj41{)NQj9y zH3)CDIP$o;S_92F6c4LcjK}e_3?pp8~5|DSu^ii)DsQ;ldH2@|LrTS=R0d z06ehda|J9SZw!f(HOHjkpF7ielAW(t+oCKMhmq6WG&WQ6RTMDD)18-_omt!-H+zfD z=jL#P=}JOVGe9>o*B7Ur8>M@9Um#KC>AAs`=6sX394RqVQ21Dic5{K4+>}vt@OMdW zqV(2wV+4&!5v{@LZY+MwiREXT&1%E_=wAljoEiL+C|&Nf4BKPq*E!A)v&JpJ+WrHB zLadX2O8%&DP3m~fY+Yz7HoTk{S0AAVA^WJ%PU?Ka*ItFe#VtDM0%K7SgBs`sWHx8` z>XNNx24TD7qIbZ7n*Hb0pZf9>9ZB=ja(KQKx;G3(P+vtQcb=gC$vaVM(1nc4_;=$W z4(4i(>OtponQ_j2kyYJa3i9ADJkQkC1vT z?y&*aF14{3g2RqtgO06+0d7}yZ_uLqi*ycpX=)?H6e31+JfXGNKgDZMQwa~h-2j&h zG9<|Dl8m$pJ4j9^RF08%Q%LQD#^?ZNODfMlBflKhcH)&pZL`yG$&2M%`l_=~|GsmL z{dUjZFB~QT(tRD4N}mFR!dT}hwR^~Ob6_JaYpSd3PVfK1%veEr{CjE(YZt)<87vZZ z`2iW#?cpWb^f643*uwY&-|&)JDL#wk@;e*GIRPKUB&rAD_vL8E&a*H;V|P)}5(4ar`%$rR=x&qs@k~K& z#Jz;$2$GD{927xV@TWz*l8(-s^IDUGF+ff^>tqf=FP{zYVVZn})z3cbfioA_Lb{`L z3Q?g8IIWf7AX5E<7%H3=vU!X+q}SqXaj9+BUY}CuM7iI?t!Zqo50;)Uy(bw%IPCFq zS2FP%SI;w@NfrPj0u*Q*rS~(+((nA)USG-yi{GLxD7U*vHiBOQ(??*gRM)mypmJ#)mhH#wsd*f`D&y7p66jCqBg!5 z1L+J9LDfGVR_)U2bp5ZPP&3*x>%aUxfF3w(uz{F;F*-n=96(M*AuPLP?`xr>p(&=! zxHn*@SvqR_j=QUGihb?0)diL@cnYa7LDRB^>0r4WIeSecYM!N93#((?dcxpap{1D) z1w{~4v0?hTGQHAhw^<7u?Tm4eyAoB|z6EMfx_)lbm=w-nH4V`JJG>( zE?G`*e5Mm`SUX1~L5De(AXA_Y0gX6C%wC|Dp{ppr4TbXS1! z9sI$!duqG&eaiBJZbAXw(rEV>AwH{I?6LmQ&LYvvF~TgVgXgx=_h~x}B6?59p_1QU z97%-n!aw)Su{oUy74~AVzrVebfl-9(1PVsA*%!7trfV9HXb%qXI7@Zx%scrDVbhue zFa0^Y1V}Nl3=$HPvQ@JFN&w9mrReg3E(e|eaM0w83|$F2$ie4}KlmKAFf|e*e^&H6 zygf_?V~FYt3lA<=A!8Sm1vYG1A(0if*3D?#oiCyrN?eF`Sg>SDAY~Lt0%v3`lpM|p zOLj*h-Vj3N-NBAv@kek&KxHydS`YF&Y zP#QL*L@m5JC+cop+&UCNTZhXyH$c!Klbo0MId9}Vv9?ggZDkx(Dx@R*0!GvBj80dX zwYVZOp14#G8#-|s3vOQZQc1{eIhPGse;bhgJSs-H%5^aI6r`36Mn&l8t*NQ0|Cx1K zvud}Gwtoq2$?~y4nO-tEG|y zbqFk)kTIF?-8>3%*f=9>}DoGK?)*drf6f8A>4-pX`nuQ9N(5AZQCX4O}r zI4(AdnZdUtu3Pb8b_0w@HHvo`w?STmoeE`s;R1W?>cxxF3x!qN!vk2wM(`=2xqNDY zwH&8pC&d(wk3Sh|5^x6_Cz<-5E=Q|xlS)H+l{KAm4l+0kRg%w?I0HCaKfD7|gqCmG`IC6GdmZSNw5`>wZW>-b* z$6V9Di2jXO&mAcj4_K1Z!|la_p?Z7;zqlD;+R-jPfg8Sn$QeZ9y%r zScJ>hB!=w&$!Mic85`@>hVxby;{opq)(T6cikS(_N=QhxKe*y_s-r9n4CnQF?Vdhm z=eaYtgWC@~k6g(LyRaEL+4pbk0E-%(a7}-y6T&N7NPat@1Z*i_`&+6J{IZ$zIdE$5 zHB0;j0NYhgk;Jz(7BMF{rQD zvYoQv^gw=yabF))?RA z9Vihm;6UPi6p?gU=0Gx;H=^OGAxJS$cdN>IKrQdy%@KHRVS5C~WmBJrWi!9xu`+0t zv)&`HZ;VjE<>FJe8us?~wPRyrR=A-SHeK-mD#XCSL7MqbdHD3$#j^m`Fotjag@2Fa zZ9RY8j->-6vZ)JV(DVD1aDD2S)pedoYc89Llqy~q;<|aZ@ZwdV@&gMWe}$5szD%Tm zo5C79Fb^TgM)Gr(NBAqYaS#j&^5gyeyk3e>j!+0{vdGeDM^#K{+;uJKUIw>$SQG;+ zwRXA#+|9!WIEsc3{Ejvb?R?BWrVapV&%~1me>Ea-W762Hom$57e(eN%_#o@rMG#ie zu%3eGwmVwgTGO%`_1OpTejZtMv!nzOd*|&I;w`>W6uR6O02)^D^Zvv&xTP1mVKcv|v#=aP6&^i$@1> zL-N67l?Uk_d{r6x|7Pt#`nEA+uj|Ms5C=C9a*76e1@eEAT1LS0P$N6`*QPurT;n z{cqkt*^YJ+P5TD@hl^UUHUZFWNa=9gAAz9T%nPk^GWiEeVWDe|pH+lq*kLp1^2h$K zUq^!qi_cG{s(*!9IgY#V)bJ%XY=SY5`sXL7k|}-KP$|7M^2z2IPcc>Cl`5a!MYO;- z0Ju35kV}*)9&V|MEU{i(5zU;kRQ|>3pMV`rl{DI4p;aI0_4ee@EF*LxSHa&U1rDCC zF+;A7p0^GN{g3IT8e_pZSAcaR=HsnH;?Ky(qCA3d^(guFFU+RBj+5XNEHMh<)) zM5$1PMcI+|3MHvj$E>Bn6 zmwy>`Uy}avXqx8mcZn&q9K0)ME^M@W+2LSf>fBymqj`FH!5H8U{D_tZ8iJU_tNrs= z*s?=?%?5|Pwx-N@1uC@7zV9#B1+qz%$%1|#S*$7L0cs_EKk-^ynAH{8h-oEdGm1>A zUU&srS!XXqLVh4@udBF9__xE=Ra>a7-SiGlZ60qO*L^+3{TDYHiS@Btqd6=z*BbkrO=y&lcZ zO5?#81=+t}j~5zjR`mn~1gfeFp5Xy65vJ_0mL;*@Xps-qsB;aPoRdjopw~eMfa0A^ z0r{Y9HkRxV^i#vi6_&{GI_aP}aH#fb-?UEQD z6LZcKkj=V2-rg$!=r}MdN~;7E_P~S(JJ6apJ0Jf6UwPglx>vq$u$xn_=C22|6K|ZH zoGwwRZpPC%nTYw^nafH`Wpc=HWqxm#U_+Nk^sSxM!6YjQ4Lwp9 z$qog6^L=~b_%D5})S69pcnfUC4~u0IJrVu$)qWR&M9IkG5xD|7=SdA2cnkrhrKMvP z+Krh_Kq1mBpT@DifC_n^wMPOqjF$BKbvSvop^~Z)8+B?5)mud-QfPOxP2yvM+5)d5 zC@9Eaq5MbtA@G2`8ylIfsZ5nhLK~UU#cYbILp$@qc88z<<3f?Ha9SGrR4R85kLL=2 z!M4+FuwHgZkt;M8gT?gxV5Alw=DtMkhdv-D6+*`>ujyAr$L99G5}%%jGb(W7oEZkWGP_`4-9?A_hglmx)l$NIe7{iv!r8cr3S4mXJV zw3efp3p8v1H#)J=W8FiM{iZjwl$7(_U)%}F$IIL53j}+w_xJaL>FMe7;{mV#>I{If zjQflIsPI{dp+LY+}uPpH8s)XC`p}8(>gl9RB1w!!8E)WLerdB zHG4G@ZlljaWo#kfJ~QUg#k;t;ER*=XUB3a4{l%Zree~bP6_p9ALMw%TEMY@MdY>C` zb4ZPmsj#t_qdPx~+GvOElu0h%%_QY$FmC{!-}ma~=A>`$ph*OoQ_$zv&9sVB7k4Q{ zU!@e()J&oTNq>KT()-)nhUzoEiVA#-T3&LXNUtyql5jN_aNSCLF`PXnVW&k%yR(P_ zHM;Gq?OwCp-Q8Y(etrv0onCjoM0myun$T40$M1fk*5r=&!PyQZBBQhjxQ*sbz*s?Z z00hhg{nxMMlyH(kq0*F#%ytYKvPV7WP+}P43=;B(sP7&5`C>P>lY%4+^z^NZz-uz| z^73lgxO$KiP*CVyR|VCzL7rp^99$5w^wnyEx7F>LVQ!Kh$R>U>Fw!a(-HNYj{H({4S4SgHI?b${oR4F`2Eon* z#-qaa%;q?aR8n*s7#7*o!2%?_G5<+t0~!hwn45YBWldHA8rCKlFzM!_Aa)VDYD@^O zHN*#-Ry~A4Fa-l?w|09TQN|J#go)Ocr<46FH zoAN!C&D1eoo}vDj5dm?@iBYIU=Vk(jFLKub6Y!9q6Q!4F2{ zw(X&&6kCa(IiLRV9~b=idN-?x0}mN!DrcLYD4nx6My6)m5gyN5C8hNkF#ioWA}0+5ELP3J3`i5{ z+_ipJTiw#);^Oxd-EnbabSd+j=IJ=nL2+axODX`5gG5bikpSQ_zCh^xm;%D$kI8QZ z=p&Vdq7QauIWN;TBT3vL;=*Oz`a$i2x8N9yRr-qBHAel7z@``_w?Hb9xED!Lw=zEz z$3mUjPJ)&0hqH%hwH(?!SQl}g3{7pKW+3vjHm(L87P%S;_Wwsl|%1% zm4SJiyV%D~KR*`@4UOo~1*J6gyVz2+O7V2WI$z%( zH$NG_er*FZH@%&vrlu?J%M>X+{pk%rOPKz*3bFXt?D+V!rxxo4|BRUTYOgJe)};%8 z5ieK`iv${hERtGarjhdg{(ds5ggyKf?UC}LY6gG1)Z@9dE;K>i3OD8+Vm8K<5l1o4 zHi@BxFCLiGyCDJOhPaZFl3*qE-;4~OuY7!Os`D0tDFZ22&?<>*rR<1(mPX2=mkLQL zB@|Zc81Mmp{v{BRsnBe3^}+s9_NKv?0M??KGXnvOLn$%Glj&I>K+Tb%p`o3JBI3<706N1)j6A+f zh_pIMrobpdjJ(6|^P?AV>WcK++^?!a@9N$Ch^AFC*^Y_Q`X#cM@;jBUX8 zD57)9h6~iWxccZw&xG{y;iHXQ;eSh@am>ts;g^WZag^<8IE^@em;Y)z#n$?ipTX22 zF|0O~Bh03a=&#Nk^-Eo-DTpv)(fT8AvTx>VktKVPTrlvrus6J0wwLTUzaj=L6pe0X zA`LJWfz&@I^K2=RM;hhdJ%qD;oaZ9{;6!{PfIy$0LWT3kV_Qp6ze Ee{?pZVE_OC diff --git a/img/logo-square/serverless-stack.png b/img/logo-square/serverless-stack.png deleted file mode 100644 index 861f44b6f6e714878cc188c36b7b5e7a25e2a323..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3970 zcmc&%X*d+#|5cK)t1o4Xvc#7`gtG6;NRy>ulwpL7#8^hwF^naRos6}SJxdx&L}(~$ z8AkR-$U2shefOK+^MC(;`+ITkeR0q8+~+yZ`J8*s3rnym7rPKU6B82`$jr!^ad!Q8 z0nRdZaSiouCMF&b$VmTwP~Hj^?Zf9rU|nA#5SD^hv%68b@DB#?Aj>s?YYrF!$b7%kem$xY_uI<6nKK$td>Dj1je5rqGzJ794 z7nOpUao;~5|3`#F%nyiA%K%Hl*b`?_vL6=eNy(F`gCI&>08u{ zL@5u{fcz9pnI(;25Gj(BIad=qv0fDq^Zi&cc*TZu`KMkb`WXr&0aplDx<1)7Z#?`+ z0v6{zN)s~6ydjIj&OLq72_E87g8VXQjJ6uM2rQ~^3#MCBAd3mWQV;|3K!d)9AF3Kl z+f-IsOcq&5%Gb&h`i$T;zH2V=eQ^h`wUf7xpBNI8BIik3SvkG|;P-cyJ~myNZ7{=Q zsdT6Pq*vyM`W?4V3HOR z6tLrIZJ3D_Lk?Al(?*wt-VQ#N6Ef8Zmommi%l2?g!_|c+61eSlJlk4NQ^x zr}(hlr&Q$fi>0l8sYLd|gn;?5?aaBUwOvZoWi|+kIgTa1^$&O=p|vMCTe6g^whCm7 za$d!{&uJLDJee|BPY-0ETmUTbZq(j<@lC`lpL*@LYiMpH`p4BJ7ig9RaU~#ezNgzr z^eqQ|scvW77-!PMTFnPI7hf~#aEH);@+pM0ZcCQ1!fx{mAM(7KoA;0e1mLoXP;|1}Nax7d?-)afA zB98VJvpUt`aZ^KrR&TO$InkL0IRDgpVsxcL|^{n835qXUdtMJc{q1V zb+23XPk`KR8YESBMR@F_l#eTMMBB8;nE0zVztA}@va+G%>G7`mJ;5b|F6TrB!AG+> zk@?M%2dvIwEFpnWB>4Wk$nw^M#j;sfR3;w1TT%!f%J-F;D0g5)@ z2+6|P7p>C{juc3Ln^sLvb|+tN?it~S552Uxgq0W~l(%trJ+Z)BA1~NsDt2`nI6yjl z!yu{)Z!Ix1&~?4V!7D!gRCv^!!-sQQC;RYKY{+=SG)<(fza`lacBQ|Ws|`A=6IfGr zZ2wKoC9f=D6C81v1`uFysq$NyW$h$*qY7Gb(hG;M9*Nxx zGZgRm8akd2sb>wZR~-w?F*25v`tS;E9{x)($=|m!q*jli;kX%j9;OmiYECIU>RSec zJ<*G{lbV#Mfqq-5$RZ33oEW67;$5UeW~4&^koykoH=)DXn?Db)2uLasJ#S`Xare%g zk5~FDxND3P8BcFqm%hl)Uv!oe|Gr$iT~i;#i8_h3&^Ipc$9~HIqp0-`RMGLng2g6_ z!a{Kfg4DQSYPmh>Xx_11JEu>Qc>}j^38>$G7+5)BNTn}(*14Z~tqldb_xSJJa8Y(& zc^^N`AbOX{+;FU46v*tUlCe;Cx1}iDqhpg5E9RAv?i9E@i3GurU8+>z(7psuIKoK`(+1|zpLf;~P42SpC-I@}+wA_=lT~IjW5hZG|8B<%Ja}KI#|S zFO(bol(^Aef$9%7#dOOAMVIc>E;v0lBOmo~N0r<;^0K)jiXou*$Kb@R9yNbaQ_`cU z0XPx$U3pc3B9&k+{VLGjoXf%DP{G{^fSH?cs;-l%1qxc1YgL2hf#y9$hk4{4w0g$( z4dY~`%_No|f|=d#)lBLdi29v?h;XJwT1;&&*7st{{p_A>o)MHK%E z4X`r)^z~lVGp}Owv0XR-$Ci*LpbMtsBtoK8kNR3oxmT{kSoj&XNb{(fK5p`u?2D%K zg}(L|E~N<#E4)b-z1SZ4<@rMZe~ze{#g(sPJeQtqw|vR2Wlskj^VCCM2mM2x{sjxmiZ=ZFSqU1 zVx;BeYRsvwgMCS5Ic!Y!PO2gG7J7lR_v>^Dr|pwP%KE%rK#hu?go#Uc1s8AGFCVuI ze0iX(&>Sjh$?#T`15t8dw^ywDg+R?&nRX4T+j0xp4&uI-;CzK6r!(9=_x;Cr!J_}aCcyq++$X>6tAp4IJ4P2V~-_XJn zGxE&iNYj5CbA{kU3iH^c*1F9TXxT$-Hgk8d^h@2-+5s55?`B)d=OFG6fgGcq=7$G^ zMaf{L$9I+nF=V�ovo5r%N|aBg%Ueg1LA4FL&wSfu=ij+t&5Qq<0mBy<}Z}=Jt(- zq)#_Z`W9scJB2S52hr_b?>=As{Jb%6d_m3C!P)OhtX`n|2^;2F8UCyYb zw-_Bs61Ud%g6POUr)URUgxC~Vq&*urbQ323TXeNkRP&i7xIH}hteCgi&MVQQecg=e zV@+&pcH#3=|Gm|GtCskVJ$4>P3oe-KY2O_|-Ndj-Hdw?Z=HhPu=Ht^11LCrF|AkKj zl6`~?uLEDJ5?apJ@^{wRrRT06o@Cwj7dcoG;z}{E@tHcVKil+i9Wvw)Eag(8{0F^P z;RS9EX(@Rb$At{9L%8?5hk5+d?^=NSC_#Uu;X8l(tM28FuM-QZ>w>m-J!~S@qQ0#Ur$K~YcFy&tA$uzias+QB zF%p`0sQG|QEOTV?g*Cor{ElcScuckwjcm4#F0wt1chi;| zkvm+eEj}Jl)ZoUKtqN|7ky3foJd`jgwr%KD8tHRafp+)%GL>qhccj|BJY?&kqp{29 zT{8roHCk3YS*{YLR`;(^3Dnhf;oS#ClT6a1|I2Mfe97F%eUAa|TBm*f7Qf~LfJ)-w z%E*#3l)%6I^PveB5`C9*4*)SDc=a{o%Wv`}cE`K7AL@u(C!b*5nwJTjz2w$K+_AG* z0j|r%3mmvC6wq`^9RVG)kJuBTB%8tmiL4!-gTT+AH{!B@AITM%7}J(t=|_Vg1O6p> zs8q5pc|7m*9q1xDH{AOB@;`U$sRg19X=#5`cU42=vr-9Ix5~Hm;M}(e&S$F@1akv(E)rA>1TE{5nilh|>{~j%SQd;dz*?j49*0%f$ zqR$5IGQ#vDf{HP94Z4?dI-{;GC~d{Z#_56z*+Yg6s@3ZsA0Fm>ss8cxxAx+7=y{j< zsEF0N_?5bNm3Og@H7=}0+Myu3f_xpkNMeKnnrQLJ4gO%^X$9%W`y}Y11M@RTX#}pY(T^J`tT^F&0>ygruY&wnIR0}qZX{JOgCl( yG##Plnbn`QRKA&nI`_Y?egAI{J&|T&Iz0_gNNE9e=lV0cH514fY*cLk$NmR^2A?bd diff --git a/img/logo-square/serverless.png b/img/logo-square/serverless.png deleted file mode 100644 index 4da1a7ec8d790a676cd007f82a66bed89134d5c2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6580 zcmcIp_cvT$v>(y?=tS?mcOgoY=z?L0HhQl?h&qT8B{~U)5Ms2^d+(hn(M9i_=)C#9 zf8nk7!@YOiv-es1-m^aY^V$2HXdNvTe4Lj!0001A^{t{V@;UI|h4lh?XOfZ}1OTW$ zsVd6rf6O|}_WejR(|T>!T;O7SWoeWIDqZmfnM5&S=$fra&k?jr%Fzg5v!WbQ>d`v8 zhlGRzV;FlV7t^UTS+@Kq>LI`eXqEf|C@uY(5j zAVJ%}Kx=sIJp)VmxhB1&I(}){m^=*V*;v7?zFG!n&;f;MJwMHb|9O+S z>a|#f65dN1^p$cIahr7Hq>H_v!NaozUUhbtXvrDw*rp9()8&xR1$o$5N_$lECEq6T zKfAa~>}2s(7~*ABh9K;f$;u?m^3|fT*j;UXo86ozC~35?pd)-W2+C_;>!lC_(rfE7 zNwDs~&RtvO^32MztBBuI^Wfg4KW;es4F)#sc?W*}49nWp-WVU#Y@d_;a0auz)E&T7 zX9Pgi$j&!J;i6#iA^Sp?e@AgIttUx@9s6FS`2s$uC@-knD4~fDeUWF_{a2XgRd=$4 z`ooTgbFQVry34PnJJn_}V3~t|J2iBz9VWAL1snl~oVeE*-##aiJh+{Ntf{>EG%>!j z>{`KYY2jy{8GhEF0_RRE;KG6uTwZ=U#5DuI+y0Cdpe|!7ptYCRUzf6}g6rvN^PBY% z9%S%rZAib(P4YQ3#Uogy51%6?iX?iaqyLJ| zMD9pHB25gPfz{UK`}c5R#yuE;ft0FwgoyF>KR?)2_4mhtUI+v2hP8IUv4f z|I)wDViv-gi^f~TrL-m(V*9u9x=J#9OtEZB8Aw=3X^IWZa)18#|V;GQ}#@ zive`uyd>PTKIR|V@qCeh67-{_LcWOI{wpcnzce`Ba<7)lVhye0UN{XB|I6@mdRE?1 zjao`H`J6r4fTki?u4bCP=YCb3;4h`qxw#vU6m8BU03=a~>L(H$CcNHdeUV`*bK~Qp7NAeZuve7+?rEZJ&588Z%zVkm#@fAuL$5KRq$@tf7l#`0lROdnkd zh`uJdRBKOFXNSlfcfZT?l z%HPMF(~S(Sqd7f>F*H-R<+Wvg97;UBjjW74q*b1>!ds~}N5lFO6)rG&FFJ%@DcJdV zcpP6o>lTJ~CIQwB(ZX}^Zgg{)CSGKtL{cc<_jRk)it;ET^z}Q14!dN%;9Y7a*ZVQt_4f+H=))$yMDVfQebGFa@P&?F;m?lkp9Zn6dshEUGHDc1;TlbfAyZh} z*(oH%$Ls9rAG3jMkvkwoAadwSP+i}m38{&Qe|KSpmXWEVvX3C_k7w^sDh@CE^uf}H zhs|De5l(3yO`1fm_<>~A3+pQBMv*s6%J-B6My1#FA0~prP4a{dkSSKGY(&FZR73G) z*gG w8Qva=!g~rr7MlL_oGl(O@)`z*+LP(XRuHpu@r^Y#_c1n1{j=i8j=M>CKRVoqs4IpP>q*!2 z4Ane(I&7d|^xxVY9QpfVbG~y=9UJaHloVjTDk;QwUGVsL|B6COZ?xiuc2?h)VMOrS zte$AaOC0VV{DSMU(VM#}{NYmgmi4q$dl4!#n;>7VqPRSZbp#nFFrX#x&O&wV+!=1a zHZ@orGp-#Z5(=sMVS{a^Vb2$lIvJBcGoj_T&b?cq3BZ#qhr|24O)DPxj1dP>(_& zA51WgGFRW&^&zJoj*d4niuS_3sqom$S+)`$(7E^7UK?Lq?X9##Mj?WdvTh7)GM|-F zj3P-s`_}rlPKbv)TxQjM!sRA#UQuQG>zTvJ*TBxr{DCldqNl6N+j|u4Nm!U8nJlC7 zEfO^nW@YfG_<~Oiq~}}HBluUNJ(&zeM=P9F9kFB*vZ`7EdZ6thVQlJ9{=+HygTvku z7WYJ|l*0+Wv0*&!2-d%z1f&!XLIvrvt=%5#VSPn!sxdEhIW|3+BVK5z_nddUhWw0S zj-UCJ@-DCCLG&O_woEU9n7jy#x2-_MPK*M%RUhCF2BNh}Nu0~6M~;8Z=^e@a2hMq) z9dyT3WW>xP2z$1MxZ3jv8>Bm_cyW8Ql4wk*Gal7T9Rg=7s)Td6hO8_=Z5AlZ1MJCq z%?nLUsOJwo?{UHeYXFc?#PN{vg^2^>a(-@FSYX)ejRI_eA2GN7E%$@?F{B#p+z%k1 zJ}*}E;i>fHBZC7xl5kb|FaoF?<|jojnBO9VvSyn)vMBQ*$192(lGj)F~gWvaz8)y}*R}?34xKapOw2@)_ZgrR_uC zfL@{#fQrg4Oxe7O9LnX3Dqu7GV!WR(K4x&naQ;AYlR*hx6&UpiYQk{iWpkV0p{6-? zpg5!mS#B2d3VvsXc;_JBReB6=z zdVAQ0zEsafl{Lf7&iNn39fm62SDq2#GzAWcQZ94HT3-?6$ZE5qitm#%`ik^X@9Hq!6h4^KV$pNn%k_s)12W@agdF?HeR&tfaS75iR(q`d>Y_&WOcj5 zb6ag@hTAybTzRqHA3+8qapv&e(A;}3p=&Zems{#e@PYT|&qk(?w}JK18UfpR=j)qt z!$0oEBT14MscYGIrb1w(N<(HGyiF_wufALqQ!R^nYwkG5{t8oQM^ybx3S*6sRXeBE zbo7+^ex+QiRWVCV{o&5SrlrC53hre1$<7XskB{=nMdiA4r9)gsf$#eIC%UhVKgCh& zKwfB`dHn||hqxd!yzDMwkH+y-^5c%x`H{IpbB$4ZeC4>#IdMD5dJEjUXJ^$l2$G+n zk25E^qLe3YdpFm3<==C(le)UKrhmcRp%y!)$F!roDrrGPikvmrUnCNNP`UAI!eiGH zPu(oVLwp+tAa3Tz%D+A*(>1M{uCO*nu{&@a7hS)PfMunb>EfKLNb(*OXP0Q!yTq{7 z_#IPkG|S{G8ssX_>%pX)Rc!CbQdmDwwji|K*ekUo8Fp6=V;_5OKfWK=W-D@awHKS% zp?(99>1vV;6wQI}+g<&c5zo$h`jy2=B&(ODJ=rfy16wMe&3IcN7613l%rJG`<;eog z58iwdJ!V$uT&y$UW!QkZ<5(IzR&{HAB=idhnrrIk#5vUJ<7iM{Tb>w;ln^EzGBo+% zU3&klPWTT^@XN5usm)ei371;4psHDVD>gr5&Ff^yu6MSj&0bXgwxIiX&fT4`lTw|SYT3Er*7Q-wraeB4`) z;wdiBXT09UHr_Te!kqd$sdjCm-ntbJ)fKR; zd7s(ajZZBH552JMYOkPPj*UtKu3L*h z8@_mRh)z>3g)R2M(a<@A&l)swrLmDb%%c;3wT(@b~u=%ic+$AK-++o&LDNr z9ZGAAU&vb+ZE7Gg_EDL8Vm+K{WceIw@>aP_l=3}ZA$iz4Cjm=a zvDNoq_23NOcRTkzAAdBa7C5QZ=zJ__vh-4*(V{puJu*e23zZk`NJ18{;R)TFCdLX z1>??C2r$Mr50a;ymO8R}$E$y@JkY#uBneqQYODVlRsin_SfL&gk_KI6?9^pB;<17z zIZGvraFu~0WeKRCn>BXCmnq04^qMEb$8Zh_sjc!)hQ}C$2i_e#)EU?IS>WB^(qJ`7 z3qH-SKLlh6ZPRB-Hk+2Q3I_|5EQCkMeVyMsXJIjRZ(fYs#%=z2L0zbooH>FqAJ(s? z$acC-PqDOn$wELSgz}s{g+QS;|cySBHr-3}L15z7dCo6r!u$}hM{ z5Yxx}w|L#(cjD}LX5^Nh;lerS_DhXbB0hZ7f1_?eIjK+J^PAus!-;5O9CO1ojMF!m zc+Z8k7r;hT*@SMtCXVN)ERB}u;Wkm}CcUXX@{{xsYO7dn};qWiQ`M@ z3iebots(o5lips-w%X=3bB9H9`q!F;xOG6st|sLE#7qgI!W;X>(sBFq9ovXT&QpGD zy!1Q0OsJl_e?SoAeYSC#@Yg-4Qg{j?*Qe;}SZy#A`fg?zfCzJL+G!+>^$F#U#C%CDkcE zAzfwK6-#DbF-MWF_}eF9 z0%{eLIJaxh&gM|Pn4>JyyWBpKqAPdT*$wo@jIk+<$c;jb zQQ3!*l4c>usxG)Ns`UOzxuqs6o9!Y^FD`7;8OM;7y$x&-zEd>eD&oQzNI`mzaPGs| zIa}#1&KGg=m7aQay5He$kw`(;K(kxZ$c~pLxSI zCB|Stw4=RU6y(MUTcKCy#_ex~OM`_t21A%5OEH%q%(tNFg*Ir1FeJORop4fuH^!nr zmi4bY0Vw4G;FRe9qx#yM1s?s8xGfmbRs~?so!)g{S^CB3=hpfH5{dXnzPS{?MVUWI zeSLkIe0!ddOuSOelhC6YyZ{k$V-4&x$wbJ3X9V97ZrSF;7MD+595p*;HXDGKZ{^2w zT53O1#mC3TtrokYV0Ls^gd#rpU~aEIot5X5%jvaog+qNyxCH(fXt$PQ8cV$`M{v`S zV>vCjstl`@38NW2CG@X3tEw&-X4GT!r`{eVPBx1cz(rB#7KxdWk6}b43|yqE#4WIDY|3{&sDzS%G*Swu z(RbaMnT$+2+R$i;Zgolyrx}YjIWsYEAg#9gf>ezax{!I@L1dGBTJ-^JT0Y!fPHp3t z6vWmYuWm2AA1?{*XC9c=DU5o!BsKv#T=sE?z&SqC3X}VDZhA`K0IvLcju?Xk)Glo0@GIF*T_hCN&T_ayLRX~##TeOs<*Jw7yV=OU0p(+kzbGz znrn7{O`Exg8FO)VJ{Tk@>J=DBGN>bfv?_wZ(5SoF6tcdJHWM>XZdW8~&Qq(zAwCg1T97Qbw zxtYt1Zl#s!C>TQnGnZnUv&PXK9m>e@Sz-bekpsdvT?#;JbKmFcRyhzJRJ3a!)@_EP zskOt4|1CjYjCwROJ+&T`*Flq_X*ZOVGl-Pakm8QA&_-`2+0Fg6s+RB>! z^j@&>qDUKXXeI?^codmYr{~wGfDkg248Z^I$;3@N@&M-fxz(yu-sGZZ9QguJRnk%{ ISFnKo4{{%k0RR91 diff --git a/img/logo-square/supertokens.png b/img/logo-square/supertokens.png deleted file mode 100644 index cf0313c0acfe91002bb5a77aaaece89354ada64f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8199 zcmb_>^;cBi_csC#12U2#DMNR6J9J7TEscbvba!`3r}WT6cY}a*cXv0)cix}>;92YW z;hwwhJ$vo*+Oc+=9j5d}3WP?8hJb(ol93iyfxid;dw>A=TA>NeLO>uLlM#ogxn>+^ zzSC7R{r4);W9sYoChmY9d3?ohDzhC^u9NKgUoSPsu%{>U#|Gz?lHz(D zv!EHvCN0+kGr9mRs~lh&n{Ri{Smg50U_*eJ!TM{OG8$GeAIIJ=$FcL)Zv965})NNi2p~WRq3Q(fu&H>~qS$_tJ=Fa;P28vd{;Q|I3 zAz5Og^#P{AxZ$AxH$qo?rcS+LXvvKVEi-y-O5*$31H#QjdMA-WS(0~P6@8V(uSHh- zNMKA~WZ#a2J}!jsh&c(;l=U(_I95#9MtS+uY!k{U-QA)iTU(DKI5@$&K=i~ktw$UW zD)MHUOg{IvuB&^N2fEAnn(0=Yx5nF4g+u&$JwOC+U8^JU1T{jiqCCDkwT0{E#r05v zNf@fwwx8dm1~druttF-aU2=-#ry)Lmjx+Htk_Q^JQv}T6dTNxW_*B;I{l@D2jt-C8 zKP(BsG^I^=y>Jy-$0m3%Y9)Id>ua4>dstdpNi`d0S5Pr>UT-(r=XbPN?M7Cr4n&V# z-KG3R$wQh3XDZRpc$2<7O`+7@`P9o6SxIkd$1udnBH`YRwLR5$2-bK?8RXOjSqXXi z5^nR~-0;V^z=xetBoM86xL7j8Zm8|5D z_G%kD3MnV~+X=Gm`i z_kgo$fiq#aVDjtQ5dwx5Hl`={dx$RjXFE0=Jv_N{MCU03*{fehyM*CZf4~sB?4^Ob z!Ha(%gd(&QyNVvYhYHPhgPm8wgrWNPDvkA!_oPE4DQ&N1KJd+zAra;C zd!5(CxUTy5*o{9(3)=PfJO;`mRr&SA$mg`(QMtaIEOAV)NWzw3fQO|;5Q~yyV`5c# zjB~}VHu6$qA;iICAUf5)}$Wh|OY zH^Sgu1N(n^r+5|b^3pxpKiSTv)htyjMQWPu0@!dNHQ$XO5dZ?n(&Rwi-tGGzi6Zv* zrNyNr$ORd3ArQaWm=1A75fPF5$H&f|9;Ej6Kg}}z)D(Xz%s9EYa!ZDQZCwZzzdt#B zt;~a-qLr3e<*1b?yKRu82TL0HfZ)M(yzD&tRRp(@$)X`zcvpH zI4nJl)7jC=s4QWwlf)4;O5dexNc1*w<_?wK3<%Q;J|#rNej!xRKfhsNQ1r{y@JJ`*JEjX^I{i(?g?mw%+b>R?S@z7~Ign zvpe2G)FQHK_yaF~*Y3+H<7N=1q^nEQJ2-+iS=nK;SVm*%Liq zN~52$>=O<@n}a9zMm{`O8vR(u1Ms~ZEmR|ft^mJ%BYpPjiD0%$YeXa^Wy|u}m6=3B z%c6OQrYeK?nXrLX`d^s8j!b_8ryO~Ak2GEv>czzio71pKo~arwbFA$MRxcAeISU<; z96f9YB;b>^{*<WW{m~Ju_fFikJ8V0-d~y%qkqR#r>@w}dghCS8-T$QhRT`#t zVDh8u<_eWf?ypBi6GNU?{`ebWi56fm89&-8Zk_)g8q{) zl9k#zI%F(#VloGO)3Y;LuS}ejy=fokL8{reVmCv;z?hOv?NA}$IQRp~^6%H&nc1x? zmOJBDKU=$|(&mvf@xYLc=mS-|*XO2F$56%5A$uUHW2_ayEx4RIS$WHE5wVLD-C_ft z#Zx=%2w-RP3l)5fYU*?A33?uOYu!7%w^#NlmXwk=Ll?SoRUZur#Oa7ob6DosGpO$N z6*aG(wWsHfj@$dcb8h;~wfl2){F78mmn-Ju3%5eOCFcx~-_!Q5)m14y-+c7RDJ%@S zs8>)>aJ{W$$%ThKtRKu`pUbL(%wkJ)L6~j_R&)6_xmAfq7dsO zylBWF!;8{a%3_({W4i6SL1!2v8PSfsd&TGJ+H)FW=btw4w=We-5Rfxhjyvbp_@?U) z!&&Zp`ecd6l!#js;84KC0l@Fu`2yizvQ1euCMwJOHj&j&DWO#J0e0vrj+YuxD&7d$ zLNli1$4k>$BYSbdME1Nrxf(w^^t|D=C@a*lJge^pOvww&Xl<*V+Jaw{h6gi6MzOnD zr4OJJ2*_-Qh7rPypHwLDB4kLlK4*m^x!5t~(gYgDz6;rfI}8YbVPvcKA-$S6A7=2| z$q6}TqrP#iWUxKL3e}p`ThN2=U4K!uAroFmpzb%4E}eVZ*tBlx)H<6ui2Y*X(D}`c z6MwWcWp{>_KR(q7K^D#0dIyBQ##}246>3@q@$C>Xdl`CosOEE72}{N2;mb?g8wr6k znbf;;Wb#wc5Uj(Un23(yL6;*Ar}_F4q^^*m@|E+g`v+SoqWd54vy{G%xV{7%%C5D0 zosa3H6Z1Fv{OxqL9`OXddDA<_w1eoAc(QRqDBw-Bt-ZH=Qj_wZXT6;0uvz%OL?Fcn z(-qo}6t(lG<$NGY=l zwcN;fw|42!m@*E~8mmX1gnR4a%ZjB7&*08hD{|X3Z3{a zYHUoQER>;|<;63H&EF#uu&>@;EXbQ~MNnX2Y3cuEz}g3xpv(esuo)+ZQvD3}0r0iF z=(`Mh&EUY|`<$dQTkgcr4=-rPKXunfMxT#^FUw8k+gByOpehrWfav-lnR}mU0j3MN|ja6agdaZvM+}iW&{Z;SFmV*9 zIkfmF?I{KFBq{z7_HKgm+ZLkb7ujgXzknHsZ0?OQ+lEQ01V{}XWNLjun}faCu>uFq zM7^R5=C2_+xRU1s;J1|`gPd#uu^<)o9#8$PQeRMaF-+v{zyY6Y6?tbKM=q z9<<|3zGxRM%KP5F#K5>6Y8jJ5gxCy$^enn{M^ABB8~E(5m~2AUR5LIw zNrrXP*MCa3gCfnO4Q-dq%F05WZ4k6o*Xg*l@|PdmTM}b*Aa@6@(4c=WMir#OIXtmC zdsMfL&M}OmjNhpBY#%~=b{E0R+|`kUZ1fn+Kes2>K$|kqOjGdv-*XUBmte={(Osy0 z_C!vWL8jm?rVU6Xu?hckAVmu7bspQFD-@=m$}tz6L)IACxAwFsfD945t}*m)u7)A(uRY z=n2kM`6&&r^IgK*=y__jE?FpR$|XaYJlMxm)-Q@EC>o-6?nGOB?6CEI@J%=Z?hp5c zUznqFAnZePBbn(@TKW?rLkAS;e-*j$R(Hjt6S)t03M_W&5q8G0f=8`V#c<}ZHzyQT zWXN#4t4H-qUS1)2=Cq1J7@fbZiJZm-B(&tx4sV-m{=ET|d_~ST*&{R;{aIexLlsS0 zVvTV-rV9L3dPtZjcR=y-${M;b!S=yzmJpwdIXl^|4RSdvWNwknkCV5hL(A`54jId2 zp&`u1z|Ev~0T+i9p9H69*5>D5QlEfvO`AO{L#;r0{Dd*_nTmWwzl}lI)NGJV3244| z={b7!yywP%@hcUcfT&TRc}UTpk{ib$qHmJMQ5Zzc$9?qxI@cZ*4_+^S`GJPm5FkFT zyiNSk-j^Ql zGX)0a_gIFnP;!8u1y#w!ZujSscvt;^VMxPUa59Z!>!wAIN zf2N?hHa&CQf!>?keagFN>bB-KzBB)Z$wa|?-cQ)8LLiVN)tQs!yUF-89%Y9;hhHG* zfvnbqQHwRa{5XJVD?lMS1SboKwJvh(+sMdQQqu=(_pb}{%$uHK7dq!>BVJ^r-&=6%r<8J@SdbA*!wz;KXIoGwCgXzX>wY!J%*>fwfP z@G@jhQYWY@AbgL{@JWZMaj`e=WnOWh+Ovw>gNY)LM|>~H5A{A_*zMKFzaLw|p-c-Pca z{a%drY2l;82X6-Eu9EI4T1I~36Dzx}UQN(yy1M^wvz*@%Y>D1ojG5k~nYVA)O?ofC z$FYUVpghyu0685rYSH(jI+K`x3z8T3&cBPDdoWyGjbnVd95ZB-G7;zP?&-lK#s!wB zSqimlkzWL4XRn>1^%=3Xwp!1*CwokLUqh^{h|(ezW+f8c1Kwyy%`T=CSF{*aF#XrT zozLC;(czF~<{A@+_de%PgtfI$;7vkr3;b`spKFgRodb&vI6r#?lN<|My z&@PmOLMm~Q?Z77n-EI{_4@F}dPC$Ax7))7gBSyQ!D}gJ$Wtu8njA9J`7uoMH+itxzUS1_p(Rt zLKM>Gb=@bi)KBS;t`5O}zFr-wx6gAua~>@AOxl;#UOlH7hISB^)#W$Ppb`z`|{%)-~#0n;O@l(I@ef0U41|1JA+rSf1VK z1dXN&+zE221lwgzIyv)FurotrV>K6EV@%BiVCeaR?S|`-c)47|@g;!>3&$tI!v0GW zF3Q#DyMD-%DAeJsRQC~@#EO)01;AZ)kcxdsf6OlVE%jU zF;nu;fHA|M{?ime)quLHBm}5HnvU;?-mxLi}O zv_~tx8+{fdC$L%~(4U^pyA?n3TcRIr8@XRo)Dtq+?fT9{xFH!JGOSd}GV%RZ-r)wz z?w+Soei*#(p+!JO$MzZbro9!~DyH{fz2vpXjrmGs6H(IO&B$3Fs-!~W*E&Xe$&We= zecVuKV<`o#W|(Q9UT~2~E`|oiQllR%g$A|*&@rZZ*22bM4E9|dpNkWqi8o@miR>e_ zn>nmYb#GEQ|Cm!tb5|30nc(HhvcSA8L92i9+mvjt{d4<}qDHg6v%2vMK20u9n(1X8 zpG=^IH4v!SM>ru?##9b1x&RaKH@4iE_%D8klkBG>}-zqPAv-&+c*st#`{t7`OGx{_x$u)(zT!7(Fs zMRRnNBLTQM-*(e`T~C}M#5L%D>^&>Q!-|E28?T1A>1xb^~W+;`A2wv_n<43w7@}Fuq*I+48(cZiO|sBBmAdD~2DD;y`)E9_~=zvBLOzXv2>saM9X&mVT= z8Lid!?m7UC4jT2H4Q84Oldy3jKjFx7bPMDl5{N`YG|`TvJnFeEJk^#qugE>?hJ?^> zEaUFiUwclLV4{pv?0`eUfVwMqh8^^}9yv`DNF!5(zR!wl3Tk{`$oM7%?<5$)R4gpZ zWBwym$TL8;l|qF%3}N&pFeu(Eio9H1hc6FQ1&uQGYS3S7sb$-YtJI8iMQZ-WPI~^b zQ=-_yB|TVdEkB|iR)q_{yJ?&S^*ivC`W7uZUBBa=y94RMWp^R0_9sGJmW($ zx2M_O{e{|>v!-C57ms9@c)1ZL1Y?f0G>WNJP-@+&Lho-5TdO%-$@QPRMv3N?fiePv z5CVnN^n}3FpPNH5ICovAd2@88A7r7Ge!kvEChcR+|48}C zfY^9?DyF5ISZSEtmNkU36tng=#<7sE^B08iTITP1`?uX?gZQ+BA!3UXNbs?;eATBf zSISz%}~Z+lj-Qk)N~HO zW)9*PCta}sdlsf1l|J-5+hfBKv}(0Dzb3vO*7dB46-JUtvWKAoHX$n}Hj+%`VJJz7 z8JkqF^?Of$J~w;&DU^dq6>j_mRd3i>D@#eJsDWSu-9i+hEwMff@57TmIJ2uzt`}m? z%JB3?%G@VYwDPhqNGu^ol@bvMu)`9=^NtWkg$lur+6?#>|BPzd?P?(RbBxdRU_Y}0 z%ky<`>`fjFBRvk33!qCw^~4N23q$aZjSb!ME7waTzTG%OYVr+z!XF|VDSHk6XvSB( z+S?+y;8VJ?8!-^Z4EHPM?Mk1wBP=m~4I;nZj>}t=V{QFelCyJuGG;9vz@(RmxnDRl zUY4^Z_dJ#mH3f!XptC%l7S23^XjzakT7GPuk5yA=a~sD;*{PS*-_>As8ICaHBV z2!T%cWYcdNefK%}L{%@b1Wv5bQ@0j}l)`(I0%G&@H;~paDS9cVkX59`{+nrc3QZ!b p&<6g09diF~Y<~ax1_9yqRSbkIoN|{K10V1s$Vhw)PHfw@lZkEHHYT=h+qUhAo&59ez0ddU>-^`eb@l4%uDYwb zs~5U^Rk*yY7(5I%3=j|yyo9*0;@^Dqp9BT*_gbZ1odW~}b8I0bBrhQ(L@4iIYieO- z0t6%;o}3D)th9y^GShVyjS=RTG@D774Fm$s;}_tBlpGfXNJ3JSucHnmVaHGwmdBdS z3kxU^!h<#JV}n|~@Pnf|XIHPyWBTD1lgkHge{j#bajX6P_0f|7 z5lepn0z^ub)t_k3jBFz|tX3^d1ql?)z@R~#8g*|A^-D4y1o?|$IsjTUafHJp;S7~= zF5U-<3)GL?kzElO$e3)u`Wo{>}QmB}8!|F+T`v`a3Z~3G3D0c&;EGigd>if~PIi<-|aABD` z7HY*dwerPS)*;-phwg|6%p$!}GwS;jn1X|1b}=+A+X$00g}enuAITnN1bTx2dZwMIhPz$0`N4=9hC76hlZa<<3 zi}X@Zi?pf55KbP}p^mtu4}yfH8N(n1e*+ozf_f2xQxd`&19AKY^(6#hA{6+t2Xe?d z{3yD+J^rW%OcWCP%gdS({fv_{i)?dgIE{IVi2;h*IT<6l3t_XDBU&%A&~xDex&{wZ zVz@d;1Dbuq1Um1q$Q`>F>u|`=tcW|7ew#hu!{i4m=SMvS0@Vkh@u#%|tL{Z*5CDP# z-V-N>)<@nY{xl}erU9nz)r>=g=~JymO$ut^#+zDo8u(xS&I1resI?ZWN2@ZcU8@jQT+NVNet3O*cAV@uSwHA- zNBYL>Ut70Yg<6$bbvFsGL34tB4sz{--iEs|`rvhA`Xc$F>_qwo5RjH4PeS1b*@48? zM%4z}`OS*9N@4<{P?o|mgy{`g7^7QL)CDWab4a$yyNTk(hXJnhUI}51AB|-c;XVP;zh-2d3;6QQhAk2k~+PEs9_*<5!Spng|@}VMbJgZMFE-0;$Si@W|;>0`&!e~ zAPV>&qXDk=ovmzIo7t<>``5ki4S=W*28O%Ip4rUmW+?@B-_?2c= zKgwFPZF{!SyO6y>KMB3Vzid94-{|4YA*2IY0`VZo;X~lcLbgMQ2k=5l;Bx1hPH8+K zx`KRCc&!S}(5wm>${Eg?uvwcKVizH~kK{VSpA+KFFouvn-AMr|YS2!%wYSq(Du#GfNH}Axl{xEHsu3o!7vRYUR zZ)lmi&iY*19^xJN^84h0gbzgubw;p8sKKkkYl|_7S;?l5^_Q*4*38o7*kHfUe&*P5 z$!ni2(1X+JSZI@ z$Z5_w%Yo#{ovuq8$aU18_Dik%F;dZAF_U?nefintnj0IBI8riyg1itkW~9oPTU)7a zQ7KfJ+Wpk6xFfpr?1S$^{ki_B@FnmC{-pzq4a^8!1dIq84GQk>>^~qtComDX9?002 z*S8U1Tlcu8?LzCxK1ge9GP)-3V6JR#aazD|!C;}jq3vcfx_RYzGsB!op0k3B(7(2~ zF+d=!E^I9J!A-!$XXvx`F%pjuPfg5KP^u7FfFRlx`4qj4;!QuyB#OL%T!Ed5riJs) zJIz;3QBCjT@-hB00o@LrACw}jZD?hvvOgN&2hQ~aj;sxEM82hMUT1gK9~tTN!-R&j zPTiT&?6%HW+ClrS?{Fr|PL|XR5S(34ZjyE}vNhyAZFJ}IC*(!^#^ z&!sPJR!p77i|7tDIYPGxyd=4#OAb-4MwVbAY{GnW(2UHiIf8ZYY`;MRLPM&-1HhKx zC85_W_B4HIU{TsA2{DE-u6dXdX4jrytL#;9I&(WsIq_Nxa2cyBI+q%fs-bDnZMI)a z-0a;XNGV8lOm(ef(5!P2`IcNBk5HK{Pg23FkWoFU!q-M^EHT?u&Z8^0S*>SOUT5t6{SOL-PD-wL~-|wHvY|W(e zKKY|F=4zCw^wZVaeyiS=+NHwnV#=C#!!lwq(jgL}d1h<7F|fNpe`F&&(p8tng^q4V zWV2{>NexAHzJ9~$d3h^WD!Az9xYq>s)9KY(>&d6?_V%{-r1#^|+fndQZubvw-wxu^ z{IdDZdN)27-|4RrNJB)YuilruX33WF+HoO2$C5e>95=4x!D4|5zLWuU#52pIg+Nj-_Vwt%PgBTR@c8I z%+D;~Ew0S(t$uy1U7wsEh>lFinrE*%B)Bo%9IlpaDv?|zJpCvEFM;I5aNXoW^*w%D zdo}Br4$kSYyd!uth?#6i2-TCLq^=TLDGvhNX zekl)yPw8{*omzz+&YSkT?8E!Bo;%v(={At-?yGJ64lm*{Pcb*0kKs$*LOIXQS8a0>LC-HQWdyVs}C}w&&kT;B@AB%d{<*D6uGh_k`Ea zx9;7*>ClYWsMze>eO?|coja`Ow!_G!)aIHzy_;B*m}m)h#pxh4ej-p=8Sq_a*8Egd zq$@vji~RtJE*^u~!=L?N{@;U%8D9O`z@?@jNDUBv48jGMLLpfF#>V)m5_8f(TpW}m zJ<=)XhwSN*QKd4Ip>=gX-+*@4fnJF5aB#M`*q)An6fg0B)*Hy3zgi9AYjTNU@r0JP zbM%&40(@5wfA;Eme4M}yQ`OTn> zC?g9K2ndA7LRsBOT}GPI$kv+9z}VK%gwD;{?jJos+-{tINox})141`zD;q~nHy+}D zNpSw9|EZ=YCj6I((=Q%kbs2d=AzKF%LN+=EItF517(zlqZU0Mo2>0FuVY#q$#896vO=oy&knV4w*O3*sG+c+7x(b_nY{9DQYqes}p(a6EV z&dI{ohVUP~28OoIPCUfK{}}q8DJ#4(*MJuXQX4G|NnwHS(yI+ z!2aR<8}_e${o5S(Kgu}eE!<43G=wdz|GN5b(|B1JSh)XX=KtdSZ$tl$RB<$M5VE!Y z3v}ZB-?91+_`jL|Z{WX7s{fZsmY@G^^1nF$h5V-roN^8pf2|q(<3nCXZuEi6HX5hT^U0rceUtLiVrh_KzfucwVE+{Te-epF% z;OS}o)w9!fBSYqG%0#=jWxU<#e)E3qdec^t>o_B0X)2WOj07^p4#CqEOH4^Q_DEWK z-u1a+RyXr1yCRZF;$`I9xt{c@n);QQ@|Z;TFl zPf{+K<_KY25@B2nu&g>3>vSFvksP{i^!W-kfXPXxLX*P2135v-azuYLf?h41U+$>i zema)8#EmJjD7Nds{$T#NkTju-{bhgw&d(~*YMV+;J*WlTn&z6zBCI{6_^xu~J$;mM z$qEGxMJYk3yyklRC3I&fwh(t2G-Q;hL_!5#e?_8gHC+FLSpA;4(nO@rpqUfc@5q=B zU;?iXi78o8QyXk1ro{N<%!n-Bbnz*uIKPDWtmBpotyqP{mCZ_@{ExlFM_q#R)TWf5 zw}{*KJ*Z#~xG=&)gTc|lIQBZkC`&{JarQ6lWVab1ZxD+KgjAB}@?M1~DnsxTe44?< z?MVI6%0Br90C(V;8N}Gw!ro`ao}d$tpzV>OL3^QD*LHrH9~(>8sos@!67#|mNqY>$ zNxX}VR%yDD$%icTO!rK2e1xd4p9^!Yb_nwgpyD%46bOCdJ4$El35M6!r+?HrEAQ zLzE|mDSMa_6?V`Jl}K^V7s2g?^kfsZ|a;Fy72X)DN~ zQbh7DWp6A8E{V93pT{ZAN)GKqtVFY6~M>?`#MdYpPFV~a<&iAoBLi3$+i!%(W)I}VVO8W?u z3@)o-VJQm}(lsSkgRlcX@_3Rj2X^h-FuAN5AYv~A7axo>osxp`O}FV8Q=k2+?sACZ z0Qbw{UFQ9BpUG~|*+Q!=OWSa840QB}J6Q)>CED zryHu?;h#^tr%#*^yI$fGhb_AFfzH}?*yzQQ@f4jf?DE+Wy7Jn0i|2W}2T2TNN}k5A>m?u%Jxj-+Na8aQfr^VHQTMIavMZjqr3s z6oj?c$XlFYyV8&`_c{56!7v|~;Thb3NP4`O%MUmb8XdXs`ZdcR8Om*b&_Rm=(sKF6 z6r75Z2qywQdd1dY9{}ujyG%i+ofM;ij6nAG0^Bl|;l1!N99p-0EU-e^@G$`6Jf&g$ zma5*eU!_l3n$wbaR66(Q=3slPhAvBUE7dRGtP}blbpE3;zk5>){|pBBpdi-M3qvqT zn-~RQ$$P#(y4LM2eMbGFIF~sO8*fPdjWS>zE*}9U0YQSH)bo*|rmD9Vv?);5>h*;g z)oF~RqUs}|y0|GlvlIMV4?2)e8K-clF~2b^L7YZ5?+4a)$k(-FZjs(gt<9Ni=j$E5 zS>kNkNehVVrN>tUE4k62;%lD-i_<=2`{_$DwWh`Si0>NgcSP*UZr`o@UV%_rLcqLg zxn(Wm_^t&>h}>!9#7WE$5CmZ~J4F{fHlsX;-(x>?j*0jW8viVATL}bKtg8eh1Q`-! zD!n8I38$lKH+xVvT6%qu-#-knu8xc10i12=+5HFyfY}U#b;pN!7!GOTA>K%Mz;c<+ z6&>#@W7l;ed*Ey*I99F|8dJ`C1|euHzH~MhoRV3LFz14nwCX+aQ6opb{p6Wf0^JP} z2nSEKNE+*eb8~0;iEkS+>H9c^1PGJ}NeqyoY6lS{rNB2D9hgKzl1wF#irI2gn`PDvt7Avj$zq{-x@_xZ@L-IM&cv#BUiZ*7;*hvH_5t9{80U8HTJUo$g> z!|C26K`W$h$oo*#5B}IY6C?nzx-3eRBG|<H~OdC(jN zg_xn%+tY9mP5=sS(KcLtNrHzO*$wJl;HXR}jnq z0Xgj2*kqNB2~v{sRz_JuFq()AgxWeA*^_riDtlWBWL_>oI0HG#F3y`B?lNL6S1Y%U z5HlmD7*h7y$=G0nw7ojMjlT=(s+QYX+JV-h_FoMOBvH^|ctz=rZQUlLCq(a*x7b zr$l?0Ad;!%D4cFi*PSz6KM`oy?4xIxa>n#6e+8ObS`A)mk?GG@#zPfS^+YOexWNIN ze9J-BIub0kJ^Os~%wp3D1 zl%VEY`q3gcbUJdq=+*&)ahuol-J-v@+3zE{b{v-aZhp>ie%GDmya0GOs{twq3mT+f zKh1Bl`fio$E>J@ad+;#zhYHy2*fQ3Vh?Nl#cDSsW_V{r!jVu~MyG1NTfZIYo3|J}+b&l0By6L(GXmh ziPDw@efH#}>0|CA+N>0IMT6dJ2_MHA`RR9gA+W`oMVjL?SQO??t`X_2U37N)5^QKS zG78Z?_0j=J6rxBZUNWQv6~vCMPJ@=Ge;O=Hu}IgcX7w4rVS1;a>6baKgXs{wi&z$d z1pF(!hf8u77qUsV@?42MG>T`4L93Jfwp0LfD)5e^C4L76MG3F3zAYny6(#@K7xuO7 z3Y}=XMxsdXrIL$6jb%peF3~BJ<&?O@69Y6;lt+20+7256s#!EsM+FC)i&|^HP52J> zd%=m%BNK>yJ7vq`Y|r!}1c=K}2Q|c(cFoSCzsF!QNR9*vadUe~;ir%f< zv@^>Hl4QS#@R^UHJ+`AgBWV|9*nsCmo%fax?wanj^dZ!9AvM_fc5|Md|SAS)kpObt*$Hb#yuP663T?!ot+=UyG+ty~WSs zNJ1c3Bltn*IJfgPYI{#|pTM?sUvQ?=xrfRy9!_+PR&x#XDFBJ678FqjLi5mE6-k5j zP$u9fE86~)CC|2zqAaRNOOrP3Qq%U7aOX%FJq4G@8A{tt>}T|57rt6i zW<9kC2VQHKJOwq$mB@CR{GJH%JWc!~In*q9&k@@&)Wl*qQ(_iB;B++|N4T8{2dqa9P z1Myv?(_AC4=t->o=K{nx3LtZbL*m@pm)Of$Z?8XfdmCb_`c^&f70{~9WaX-d@Z6v? z;SMnvI%2mYYrrygiwRiU#7$C1$-)_Q7hL7(syj{;C)91M`lw0(I?g85o&WK=xFxK#vV~k4!&&!YA}zpB4qZvCW5%d-_WoBmr(2O5{l^h*Vxhz<$1RPyNrH1txbM z-}$fpl;eHH_nB>z7CiwKYI9*h=lJP#k)E{>p^kByg1$j$$i*g`&xM&*F$P)Ax*?8H zqVw^KKZiy$27A6X!>1Sb@?AaQx-?_SXr?P{5ma!XhEx}4W_P-uAyFjP=qi(KL{f!WQx7p5&(i#U?#9l^(pTgP={hK$ zsxvsZ2=Jt&f&di03s|uMc(=zg=On<8tcQ3YlA&Ek%KhP)choo+R73OTaupbHHL1?p zNWir7X7JO+O?TMImow_{U{hb~ijl;mXySyzE#7ba-Ld*W@kHhDmH& zec>D2HcSFbuuu><=^Rrm8T!l^-v*$O!7FjQO|O#dgdL5Zn5HdAVT~g%%c^b8dM`^C zZs!Esy?@#`%qwm3l?|rRp@s5wC#8=VKqu3xMB$rlw|~_xozTI|y2$sW)}UcaTsb5J zQHcCZxlEYcl%6z`w;695P|%zDq}VLT-|ZCQ-ab%wiVcu8lHJdFMnc4uJi^Z;L%FZ; z-Rylx;{5xPbN~pTF?0bb)5zqfqdK7c#;W*X(~Fv`>94SING#lf-)bS=%kVp`^rVo| zv?%gPfN9(P3Meo%S{CtY&V-AP;5tfs-7X10Rj=>d+gf(9o=LtJ0sf;PCiEl7{P>k} z&0Rl0B3qYH$pd$i44Rc0lpX5`{7C)j5`q)kTu9+u1Pws6?Bsmm0KH$Dg`hdi*<86D zoV$645;CK&o9wc>lrVF9e}MCf4^7&SU3Z2$Z+AFFrTTOLlQ6hBbE`)F#mNPx*&%)e zf*=;A4fg(UA!_uLeK1x)Tq!$m%sLQLWR%mjQ{5woErJqT14|Ma3WDd;f>MED+q9Lg zTg*hQvi%T2mjuv}B_wt@iwSi}-4#Qm3u+-~a8k;kWE+TbEJdhB;@f`Mwg-3DASSXg zo7zv9BS|#Rh6E(n$=aYdAxc?h5WWnJ^c#k{qaeK~x=>Z8-omSbas>u@!GJvu2hlA-2ec#|?1&^~z_ zjuJ&I%(FK4tH#9by-Wv_{U_=pxWJ3`4G6gv8)T}WOGH(m;gL2<3{|*?DR_q6YxF_e zT*y24C}kGj!UC)d5x1WCjUlO|0@4S$HZShVCUZEsLcDS5w&tfHouuuU?rfL|-|L62 zsw{8{PeX7{6_q8qVIy{FwVnE6I`!fi7;&}&Q0gA7+2*gAssZNMs)5p9ka;l)12qu@ zssk#hoXZcXry`+>#m_PVa}}&<_j!?w7Q^Zt;tGq~y)!Y49VcWf*R2#C| z+Z5&@>Hz~L40#5OQS_P!Kw{DvO$9r2u3w`*p8|l-4&6P{d|HOKR7MO(lkj4NQst7u+g1jjV4+SsqPQvd<{c%uT zGdT$VtZgu>_!ga7y}Mj3`A&R0Pl<%29sTa0lLT)SZl_&lv7#L`VT&JAo-gViG{u&L ze!5(vguk^X%K~FT$ubq6k`u5*-x)bRuNjk@hHfHLCu@~0NC;u9K+nPBievOy?|M7Z zqZLWS%#2h<&KS49)w3Lwr*UfQE%$7QA^)O@N7v=aa{ayWDn9oGBuRqx_p#tXnze-5 z-gory1&5`Q&iEO$Vc7QQ*C~^k6;n3fo_~_DMgm6+q25>%-ey9rwkWae~|!zC{zrI@8NW6 z6fe$X3GQ>g4W(*>5J`-Z`s4Q{B+A56i}bJvGvw-+_LtuR5UvH3vqy^fsa~xnxCQs4 z<&KAHzqZ~eV>mxp{WR7F2Xfd0_j?|G;e%zeqxqU-i* zFrW7kZB%=CP4c9&Y_k8m^1f`4z>PAKN`;W^(%#pInf`LX7=T@EZSZW!EJSX9qdLG( zb?WLVNhduaKH>sX{PHJLW>dt4hPnSvBuD$wRk=V`ksi+uQJ3Q%w^?=6{`D2t`HQi6 z1%Mqj)3zXHNVwVA{b3E4G~u;9g1l}lLGn=Y%T|F@95aQ;Z;>Q&#O&@6bdpvlBC-=Z zrNs!3Ne_KYo6lJl2pe$BDRpl5%5b@M91vrx@f`SgaVAG*yU(t~_$|IjaEw+`&Ax4n z!;5SGGxzE8C9aa8S^XL5zUxP^I!{O7wI-0Th*~MWGfex^o4-zol!yyB%bo{H;qJiS zNW~TXdSS8gG29H0urCSBg}5p>RmCWS^x1rly^o*Hs6s9`r=mJ8Obkgi=Ya5s@%Y4Ce)aIl4&ovm&9TBEiN3;~5EeO>go~4MWriH5S^n8y z40J&$72xd$P@&SkTxMS+uFEl7Mh0rC&>U z!3JyL3_l<4j@wzoEu5m@mw!9-Lz*~WzK4cmMj zV^bvmCdnwRI4*DxK@+$4*(*V%=r#~B$3meq$~@!yo?C>oFXM51dQkQSmEB2f_2BB5 z5VU0kUrvQL!m<2w&7kK?I2DZzHtdgwy9>Jhpf%95weq7FVKYc}L5m-n&e$y3UC4Fb z!WvFMR~{WukS?hmU%`HOzvEq|gom5L2AH^CJAeML?w?LYAhLGr^*WXnnWvD&5C6MA z)ZjipyX+y|X$b@>zmT;UXHbm`+!pZY$W6V!6TZAb`1|up5_rBjxI#nGd{o4p8;d&Z z(Aa~VRw=W>e7hj=_P5jtG1@+#1(j3JZCswIm3Cb&sk#Olz;v|Zq{UnNiWrGhT9XtG zr1Vf8OZOv}brdtj5O)Z|E@Ms0o{4loK{ts2ey>=JPE1dA)y`X?#biVjr=*SV*8axd zPd&{o?dk=Pd^$PI;i@~nzwn^zkZLaJr)3}lU^&0)w;^b^3*Tt7xF}}o*ZpII{A8sN zlua8hLN$1}Axm)8P##4YCbiSgC{SEX8$}2C5hb z?^T*~-c-lyW1xAd$`0d z+X0py6~{hK*bb1UjK~U0=%~6C3m{kAul-W=szF$dfufInoA2cL@fX-fc?G;Z0ZxL0 z>`cvp)~@}VLnB8P@Wz0G2YptT+f&X4M{8+o0x2A5;U*`no!`3T5_P7prnu@VF_VnI z6*_1|;)xwMjnQS$&RRH(E&^o5x@Rs>=YFgzoQy4_7Pit}b6P}5C;gmi@|g$u+>2(H zg?VY-_v*^%EAcdL#~tTDTKL;ob_J1SnB>5CY)J`61I5XqbMiX2b!?HHEebQ1_oF6R z6KT92zu_i)o6|E-5~F{nwNsKI6DV9jUoiWWEGD+Uk!d^cC?7u0G~r^2S+&zn8))vN zx%uky^Or|_U9{LAGmy<-M_a7uOfv7JH;D8Ty{2vNpxz_DtOXp`G>CeqyLN=7;1p{-5AD*!iPn9Wtt$gsyD(TC*eIVj8mK$?Cd(X6v%UpjYCd22ST`#}XnhmrUW} zTy40R7)NLpxa>mWuk9sS{Pfyi;nT8Y6)5razoj&iN0VE2@#eqys}i<5G{HnwS1 zGDdlC_X&k}os_BB1kNmpFrP^UHGHLdz1@dk+dbWrr`WMZtZAB&Z@^gQk}5nX(14!# zSeC`L+TZp9ksY>l z6@3&?3U00C+k5Uy8L!~d#PA?}1qX(b`}bcPKEB$l-%s7m7~JIv8O1(EkqFrh^Koji zP&T(yb5zky227(?WJy{H0V=O-*(_fMFS;I#-xa6yGn{lyfBEOq~}tf zhqUL8x$%jkFXxtx{msbPwTzd~mk|FinoNN7v+Y+e+~(b$hWN~LUVYZNs%C^FQfUjXe;)pX*U>1SLqL{$y%Mi=FiP{zU2_IMxu%xL$TI-omDiJLoc(SyOw1hzw zuwiN3!k*;wq#B8&>1W_)Wr>QSx&`G2UJ4;Gf~G3l9Z9HE?LHURoUJBVzY0x-AnRB+ z-%w}LRashI=%da>44dIYCod+iWvx!SFv)biOGm1EmSIwOY&!~wpw|L18kFgSCWOZh z(W~1|D4kfYe;I{I79cJ|dWHfOHr=Q2S4YOLbLjH)Ba^N9kaAJnH61I$xGkqjprNEJEuEhoj0nHiJnYh4G={YeR9AoS0J`B1#V( zKNJ+-K07g3Qc~PhhMYvbUxM-KiHLfYIh>XiYmMojy=M1LML{a}m>WFkdW$O! ziNQBVRI`((oz}RF9h~q40Wpk$p`b3O%LK4eqpNK*fv@;Ry>Br4Cj@XRgrfT|IQJ6; z|JcWlQix?d!nlm;yBh47L6F_clM}PG>-f`sCE|n|p5C%O;^aj@jvOXxwwY6};4&PN z+`*yTe$1{5FSdUdCG!ON483RtYdHBC7`GFOB!6HHy>Iv1t)|=Zvq;h+GcXtDdRT`I zuEpDmOs*Y!j0Z;`31c~f3Paq)0fpp`;jAcyAnyQg-i5}W8=7A9TZt_x+4};0GY+0# z*Kz6>Uue%c{Dj27q+|}5g@+OQmX+QHhz_FjPv&Sp%t40|1iK#4l76!N-47F@)h|48 z35{`&cqQdM2S>7tnp-3FsG*{~WzQ%#*LA;V@BH4QwmZv;rvXDQ@}BQ4r<{Z$>nI^=-F8UnoAHnf?cVjn)&lV>Q&B`D(u%j}{-kUO#nMn?+1>K-@QLZ|i zt!H}3jNd!gwl_RKjfw`87)0Jd{*ktEXJknadSEA6ql4Uie`_LSr!U6%WJ4>s)~6ZdZtTVs8;DT&R)(!0v(RkAWQUxF466cIa5K!##hY>K zYQ)9={!xs2K0A#PmCiDXaLkch<%8>gip7L(zIqRz*r86T@R}B3F&cU~sAB~vc`NdK z)Xx#l=;L~apQ@`^UBUvPD>W>Rs{dnfXPZBFG5s4s6gsGi)8A zYJ4u$SL2X`#g?A|ax+rGOIW~~(We&{M5SHNWqe^Q~39wZrbImwfcf4GFK}GFBMIr>-w@if+nipv$S<)3RKc_rnIecU` zyaZaDu{u=P72t9#E^iEZbp55EEkC7LpunQc!q`G3+^K}@gaQvO=6TRX(^&O|_AW0V zIAr)Bt+Cv172ppJgpV_@*j@2L$&>^7x(92&~JT@!Y2nIHd04$_yKsrZL&4h)FT(%%i@pi@>rk#_;xrkY; zuoFi1RSkHq*^^VTK$SdeuA(aw5Q&!^0g1IV+LD#b^do+TQBRoLV6)BZ`MbQpx4sJS zMsGF0BkVpIx!WEt3mo8x;V;xJ^CAhxbFrnWr6^I${1eF8d+erjlcaR~sXH&sdd~PK zfxFO*g5R9kbfhZBV>}a;fQ*nI3e$&E+dfL;rIf$~cB1!)5yuJSRf#!HV)LAtVxt#h zPvb@=2_Vx%l%zDSjJC3S>O)3$_j_iX#)T)SkktMQZXeHEB7_CW#cln0_O0Zr#yb3kd;N1 z`s<{1Xy6g0BTQm^tX${GWvI{~!$D&TvE+!kTbA-?i%MbonKXbf3A~qz7d?+=xR7V0 zow*ozmuk~yZbDEL@1$f2_vPwlsc30#eIy6)k7%+3Q)~q-bO=kpacazcYM{>Ru z6Z<6^Qd*$T!w0#MFe!-N_BN<7_*4dut|=h<{#^0mBzKU^vSO|dz}dh9^w&~RDm&*R zjE@)~$SRs6A0FS=B#Q@@jQZv&XV%t3_U=w3m12W>qgO&yDJPNp(y>7UpZu8+|Mh+oHe?w!^985@?yPYvNR`3N;#S!qsv6!eqEatCUOqN$zH2uMh2&APmsuiq|`Cp}J~NkxmosafNIJbnHEbI4!9x z>z=O!3*}|%g>ZCwmS5BL*pVVyDasg=I}p%U?W6b0o5Z;t$-`~`;*_Dn)He|ovTuT? z=b)~z@4V@)Q;2>%4_N1>jbRTAlyS77y|k9)`M+dYI!l97QC0TF|4?VVH7q6yEyQe! z7JM*Y+n@7*&_AV}#R|N|SUK7ECHEmGoJB>lYlhR)aS)TPpT(QB8*IAC3_8#7K#*$c zGzPRD$A6I#=XH$pQgX{j6htqHPd#V07v5|vmbRpiL{e$IsgDyJ&y==7nPz&3YbW{f zw+Il@sXS=C5bS;x@qRK}{E?c+#R(~Z(cL3@M_l;n73R+1^R>W1U`=(gF#n??{|7Am zC7;q$R3i7&`F68*x?7?jzipr&@kOzWz5Y5jzU`nT7UMLM?P2y0XbK?y^mpbNJG3EN*!?Gn33plZ z?iEuZyir~V8P=8ch}BByIE&o?+P(fEveGY4L>KpcQec04KOn{~aD~{lX>6$Ed?P(o zW?{Y7Y8Z<^5R3>u7p3=ME1M=G#d7bTHtrvGse`_1IW zwXPXfSAYk&mg4`N%FiE8CrW6b+Rs&65r;rW7OXIy=D&>~&F4aCM0D8@+^M)MaVz5C*P5d{D%s^ySnF5t|vKu{+P@)U1!o$la&0t0W7)^DoS!go#vQRkb zc>Jk=R%GJ)ySz^;HavV3X1xX?qv4s3l3WxSuz!P4ucC~T#$2A_Ta6n6(ewRXRAvmT zqL3of-__hxFnhn!u^qK_h0!P3wIu)VP{P@KLzU!ZjWYSWva>Oa{lGRMqJt|KG4MQ{ zt$GcRlpzu{6gw2de&0vguxJuqxhbhmiljmETuiAjnSi+Zy75rLAWaiWDk0wab*COd z8};O^^?agLKhR-N*^3-=Bq+Na!4~E|ariPdk$yONbTm=YWtpfZK~byYBWJz7AXvG& z1OSQFTgf_6MqM;UC?&>eo!Y=ZV)_XzmqpN!JS> zkz_zRs86w4x4$Vx$%Hve?u~9MI$o*L8*bamE6gl#p#&Eq%lo5e`*vBptl>=$6FC}wso@i55A8*O(3@?n#Ds!hU zSm^CU)X6RcVgrh8R{s4IIgUaa5^AYTf=ICbG%Y~m?n1rn^R08e_`FLIdG7rowZL$3 zYysxHiO_}wG#|nNMYP|q*lV~@(RHw6SWicHLKii1df9)VJLnUnR?TI7=E9|xoo^}K z4XP=BA;wS;HwM60)2J(+pR^q2HxK+1mz5&X*nLoW!%F$tDoag$j#S)!tj2nc$uPY> z^mn}sgvt8ef7P1GvuB|4H~vh>dhE^Wg*;wcA@2vzSWfG~y+iYx*1fpW> z%~OcLIGb+xZ0t1=vo64k8KGM{S=Pej5GONH@WASqdr%omj1^z$5P$rb5* zGZz#GQxsJ|xm_(Xyh!i0j>ziU1<4Do>cM$WJ0`)`9S9t5&abel1XAMB802tF4pzT* zB(|PzRJARhDdeze0Ys_OGP|aZVj+2Ca)9*ij4AJO1U49!9&mjrK~65kY(IGP5b7yN z>|Q+vzb++aiN-_dlG{-(nCjQqrJ@ zQ9e9y#LCFe3TLR@Ew99b+7WyzWk%@IpLJwuV;n?a$y{2kDhitZf!v68&%+>Anw_wr zx^!Y3){NOiiENzU{%81b5)(|>e3I~he0UKBRdztwDr`QTp}tGDEIn-DPZA>v28yZB z7N1U7v7afs1i3zOV$x=r?IOa*z3Z|7o9y6DZT;$Bl+bP$<)E#{{#Y^m0m|@hQ~_A2 z)qYt90$$VBU$puX0br$isRi+7QOZVt{`j2G`Z_`V79q9@n>AHLebHmI6bsy5o5Bs(Nl(PWOEfeP(rsrOVEC3L+84uKrS_V@%aI%K5rf-X* z_QGYfQx|1*vOqOCOhYnYx%Hd0#0cE3dnKG{-3+agBQS27R^+5qkN(VuGoF+b)g??0 zqxT{bVBkh7R~|9M9?7uc?pyc6(1L55PNpt()2VI85;}SA%TbHfpJTQ?0QF_gUAYrP zCRdwiYB;DLwz8+sxcb5E5KxAPFw@k){i(^=V{!d!m-;y ztnP&;XrCXi5iRw(b$PKU$XcBit8Ell*^5L<(+s77Vcfafhq>JLfVxP%9_HjEk8u0a zBkP&!WC1OxnF{e4ra zZRPGvf6l8tBjh?CrJxYibbe-KYqU7Rim?21@3Dl9$kDF-s+<+XUU)CWvAKHssmqXx zQ&sIjYm6AlvLvm;+lRMPxCxv4kM8bv&nHFBchAb7@n<&uKdanP8Hs^*@JkC2_->MA zjMp)Ft~VZ_VKTdyr6;yD`-%NpRFmzCziOYK1dfkoBk?2 zJ23;cNz5jcewP!>3=YbCl2D>U*!@r{v(qXBLBa0zivm)7)h$omnq^u~>C#+9yK77p zvp#c!23|1$g$-!oUqy9m*tXQeIKFG4TD%-Xvc*gwb3RTwi&(G}kMx2Ce25n8tp#E3 zx-#5yG5yIT>=3I@0r?lzt_PgmzEvdX1}E9Xu9dW9!@p*_19!MPCz*0aCh-PQDjweB z*)w1=e&%qCCjh<4NRRyCcr`x;W>ipJg_}n$Qam<9VcN}*K&plUq31=f zKeM-AUm!KJbfNt}0CYf$zx$)D;z^BCV+o<2C*!KQv7hPY*565e=40h;r>I{+wK%44dGK!TwrP9&!98JV|rl&v2We@}qYFiY+4$C1s&^khXyAbhy>>#pgYgyP2L zY%l@L!xM<2*uG{be*Ne&8ka{f`igw|-;>Z-T~9rjQe$HyM%=G`4~M(|Ba_ zsJ^UUKuJ+SBo#(+!tr_?jvO@Kt^R8B8_vmX^3>d<#u3O@P7t(ZA~vdzm5UZLG3;yN!ImtL#yoHeo@ z8QUR-lzQT$z#B;*vHVx?db(XxniGp83gg{N3=r_m!o;%GLGdwvjzt#r!^B?jLsNGzz(>4w954`cPhtyuh( z%{W?LLWe{SMpJ?|)7Ta~OaM|wubHT?_0ye9(erM=lEA#N+~Txdzn%)(yd31 z?2J7d0ckiyfH+fo{iS#4cdbK)PY395+>FKOpAm?r5r5bjdv5EO>`*BundCV8-Yw)= za7<${?kaB68fb0pu=B1nTZjZ4_pv8YEQe?_y}f)Zp8U)r6z;6U1RCLuJT0|}s)L7z z+t!Q88}AxX#|~ zhp_z58?pGYcc_DhF`Ui_Z%P`PcrS5iAo%q$?EkePTN=%+V071G5>lq>UrZQFi zFx|I2U;B>lU4h#_b`6O=oqlmjl4iOUnW1cX5Ht*Xl;YdCSWdMSVhH+V5B%NK7{s0} z)VrTqhgZJ6jxz~h=rtq^e%(;rM5#eS5)<)?tM$HS3J}#GZ;A&Mly{S^9LBNwXpc}^ zk72nv3yeU-Av{{f|N?A7XW&{!=#`tHQ@>|j(Im?R!(Q=+a zU5=q+NFe0iQL0+v-Cf>@6(+F6pRL3*UwZ?6C#7M;bpudyw1F7_ z6uFcPWoxRDJt+g9{n_1^eZwR}s8A?K_bmYzGsHzGMjYKRmA1gjIT~6GhKs7t;xU-G zY8$31Wh%u}>+#}u-qA^v7%_K%75i)C76sKdlQ+mq;*c8V5UDLA=-z7#i691sC(fl}*avqV#ig^yQ&jWeLag}HJLO5I?!>ZsVy;&UP?0#KdvAGTCw}(%7qD|p z1;$@L0FkON)2gfC%i>;`YNqLLYrwQmj>Lz)xB$b)4ltEW2Af|V5}OpCr}1~g98Nv6 z(|;P5lDa}E+r;q}ZYqhshpN<)Kdr;d|FVJW62<7b{Ye;Jdg$s&7*sv!Y>=l^Myhml zCvSS;L^(fI&??Xd#f3`a8!Dq~}F~9y{^&z`Lc)YtaI5U{2oK0MGFer@Y;DFJMr~ z)LsqFP-bN{Ri}l&TZJb+vl9Jz{O^S8^DP1{TO=htfcjlcs4a`)?jKIa`yad(sadR1 z%+f_(a+((X`&4j0BEz7aBVq@V^<@$Uk)i>GQ8_B zON}E7rb!sSWGIbX` zM^aLw1si(TlukVwN(eFAK#mvXuUBL8T|+Qo%Fx)gXTU2-4l<7bnL)TAgy)}Ffx<1d z7&R{owMWS$Xza&{!rsKX>M{Zm2NE+&=H{0}%StS>R|F#0oSuD#shk=xXZh4D4gx_E z%A&voM14&I-Ikm2KOcCB=f3+eX#qV{N10X=rqsw{JeWjKwt-284~)Wx{_#ePo;ZlN zGx?AU;P)$D9A{T&d3aBK&EaWZyDSAEzM!fRm(eq~>ZOhNnt0?3~4U-L5k34zP}VN{r3ipxw^k`j@pAk0>g{cOu7ausZwnZVcw(DaNl3ufSi7r z%;gC(wxKiL&jYT?Nn3ggahoQ!;dFI*9o~Lz8~*(03hr<$!KhjJ=$Dy`#!|*HINv0l zJWNlIGra}1I5HUot&d*&B99ftx#}DQctm;Wk{Voj*CaAA52h=G`|P z0R{e;V&e0WmBhSMojSmCnA=IWa-oIb(wDt4uUsA7(_7!#gBO3Y5^p`V4@1XiW8#7# zXeet$T|qrDgG?!=LbPm%>qPjUG{#Q-z#*+v-K0no{4A~>Ax>4$miWwH%|vD&1@{P) zGw8yKeR;XAjSY=>>c5tt@^B*tjm|_}2~RT!kUEaz561(h%L#;YK`P4$9o)!W$E;G3 zo|9(!?}8;o|Cf?-;O7!t(q?eWR9X8;_(sgm5QEY*15@)BJC#R-@+bG-GU zDkK)O#Wl@C002EgNkln9M7+lmy;-KV>!R2(r=|Te0 zlZkNrl|0ge!*6mQG7WVRh$budZ+n}m2Ar`LS&Qz7!%cF>`UCjI*I&hk7kA^5`Te-V zFA3EJ@ZALo2wbr1SvV< zkzK`D^hbK8{zy2d))ld zE2%2;G-j4YQM!q>lZb*(#RE=R8;_u+c_qHtwonh3NJ3GJfQx zZKP3_7L?|dD<@T}L7o`h5Q_v;I8)4AYgbH9Xb2i7`azrdP^P+0k9JPVY%m_Yb+Vzc(B z%TO=e$BG7Qa=1uuY>6+}r)PdKPDor16JS!QB!Q}VrpaG^z7jwAhsBsUb1;%q867=X zO@o|8*;qgzkj0d2s#ui=8*u;kug0C9x)v#^$&7DMrBW41HuWn2x06)QJlIb7R`Aik z0F7$3dZvGDeDhuW@!wZs{o+E5pPGY-eFsvHZbTCi!3e$A&Ei}EK`N*8koPK?jPB^F zO3eD?7|gkIIy>ff+TLvp;pFE;xpB=$6)MP-n&16kF%B;&L;ou?(7@z!Z;X4$6jnE9 zYF$qtdOB0V{oH1Aa3{CmHgF3rbDdP$g-PQ4vhAp8#n$MFVc{1XW?#Sf?n_wl^SzjH z{RpO`2T@;IPg{ZpH@So_+k=|zK?EsIKl$`6xZ(E8IS$1)f(VeS#M`O3PyD;?|4n#s z)htVuOhErs@niQU+8IoVc=?CxF(5w&({CDxhVmvi>!N zp7?i{6Nsd~2v*U{0_x2*JPR>7m1)V`xa`QoxhPK@m?Ldn!FPrku%Lzntpd*20B)urvNCII&F*q{DyQl&D>@FlAqS6q?{vvBE)P~G9)*2M8tMfw@*{jiXmvA5`o45PhbM^$Juwh zM!Um`xfS-w@4kpv{(CbnpEr!UBnyU>Hdx@VnW~j+oB)aA;L1u|a_Ra!}kTHGH z#3~nlsVu#bI5m!yqmB`CAMvhPMSf$@Z!g@sg+Odj6oCOskdgyB7NHTD+@WW# z+two{7AaBCan%Ukd2J`YKj&H1L&t<0`lG6_fjuyBg$8PKm>9-jk1suf!z7Lw4~@kq zAG-y82IsM!mC{CBChkekX#Koydas34<~?0foHL1EW8=RH22NKpsqpt7S%q3AZcki5 z>8Ne4#q`kRCZY1p8q{(h$N1ZZu)bIWs&>}U0g+6iB7t3iG@=~}QpLqIj&7>MXa9IJ zrd%L1R^iD+UtLL2anD99eg8_FoY7*;d=u@5cXr>1llL zBhMrIQXfW>lOh(bZ2A)Gt#&A5?Y@X-) zOEZbWmnL6LwV)xdo<>mA;eO)Ic@21D!AZ|U-H;&)Q5VwiBkt?l}=TL?smpg2V!(}O~m zlPNB$z&H+*Dmd8yZ4UaT1%&#FdOZEaa{T-YuVL!7gPBAarMgi^PnAyIpi$3jl^m0t z>*XGkQp|YpA`-{@NgP>596HQKTtojHk#sL{NS%vIEWLNpaOH!!?YcWR?ZeYQdXx6X zCR{Ql2dViiQg$TFW5r0+v@H&;D8kU`dHBd@=i-W+Cn3w~{8GUrCmF;-(33ws2q;CAj@-({azka}nTL2Dx{|uMF$> zV#Y=-xGI?HV{Y0mZif5z>_5Xlq#3E~Bgj*PWveI$t1}p5w-AUXD81RArt_6T&ehAw zS^$tS0Oc8#varK%{{0oa@bB+p%5_65e@aIRs4kU&K?{s(6)UCZF*A5+Ii`PPxOq2p zXi9{D^b(M*0n(GqRoqPmqlX+()k1XE-l|2L@SA&Iqoq-W88@)*7X9+|th<%khgrz4 zRdL6k4>x}4GA#J;42M^JrNPFf*(!*$( zWA<_EYWsE`#tT1PNy6WVp;PkEw_iVI8OsRgjz#WKIrLg3MqZJJ8~=U=X3v|-@<=J1 zGu^o)dLI|NnPN7?_u{C-#tdRYCiB{ANPOJaLVrdpS=lpl?$A@IImi%C;+%Zx9_(LH zh6SIWg8RR46P-7z1>l@40%lwy>$kj{aVN*2-NpFv=blE@hDP+8n_-R(A60anvFViS z4vp-jo4SWUOh#(5J}csIWN!r;SeGgzkj^}#gZRnczl=Q#3t5|rhH4Ryk8bwyz!@Sv z-5Tc7r1a4)vLnmOaPe&e@yNfvAN@rftR(IA6468)1dRDkPnu%ae-I~4(~HTuWN!qS zWxQ_rHvICli1f?kknv&C&c&; znTFIwqLE1uy;B=7lsg3HW}<3cJ+j87m>MBYd_FZ-w2gsL+8ln?G~czN6gPeTQas2l z&sii6l~=NjYscwTQdc!mIdK^8+F6Vr{?*esKs9^leA;E))*xcD{X8;kI}s+`LLgET z=zg+w6m?fI$d|-@;Rm-D;=4Ef9#!1+Hf(+_Yg5s9m#Spfi=e1$(v6pzmx80qD>0fI zUH=qLgGsFMTZvbAZsAj3dJFyfreW+2 zd7NVdH~TOalp4liIu`~_>x++mZ9cBPehQK^<=LWIMh+R^{LSm9Zk3YF=CMigv_~E_ zF!16Wlq{>}HWtE%--$TSkH!_^JalHEkG81nggq;c;?{qd#u7`nAS+*Lm9hooft1D( z*Bm5mI77xVbds<#4IcmWvxH$8hFqV^9h2NjOt`DGlPDtws!jt*w-AW%T_aa*CQViaE|ueYz~*&(@%wKs!J21xVEk1~iJ=uzcQ}Of{>i9WA3|wW4d(vc zM7-~#voU7!Fngv-^C&Q?6nr7Pr5WiP!A-wnv>#wjQNJOSoY?E^GE*zvHNE|nC`{EU z%pjl+iwR-Rsv_L}^-J-=&)v#RbRrHORwHLdyeSw;U?@T^_1Q~icwon2JpP%#;PB!S z3?S2~;}H~=CBg62e^<0_ArKolCmiOfLs^posM=qTA8~_II?oUpa!ocR2PYa!**2U| zgqfTsnO>fXEsa)@z@BMRG1BJ`Ysd#WG6|{QDKS z`%`m~mO-0CYbtM5t7dbSw~FhmxYmJfh4{gzo?%e97Q>}&aF36d4xD4#q+8wGiEq1) zKnNvMov3LwQa{g|kxelhVP$S5pT)48$k0qq8l|L3WyH9FM|d?=G~vsy--}D8jb`E@ z(??|HE1Q#OA{9*N(-X}+XXNZ&5{Hf>d*#VB`1RKqyBV8ph3RU!fGPcw5o(BF=kg*< ze_$}~{@h$lnsKoWH^`WckGW>55U*LBu^EQ(3jR(b2iBkR0NL*|-q>?rYH4UvbIe>X z5=UyE6eeAA)7;iFJoK~caQg?Y;XyUD)kquxy7<*vyUC?;N<;8*ANo$7r~cm`dme=w z%Q5)6JUhHdWq+*yE}mld5r`Sl1R6P?+@A^@h8XM;aTtQ|MLMdEP4H(hv5^2O*;<1y zzIYF&T|LeP5(#XjRtYfiI=fvAA1)f#SeVFW?nCi!o(bZmI;4+xu0M$1e0LGvcxpQ) zTr=3DN_|NK(g&xYe0dcrnN586zg>=-AGnHylgE*(Iy{{Ywxf|fsDJCdZ7<0Tn2J3} zq6l6ZU+-+P2Z-d9vMH3H)my7k$pd#j{kt1+{XJKZv2bG>RW3hm4mD@bxtWOhSWJua z+`e`%zIV@`QGK8ugXiTj<)2Orx&93c9FuT&bp%l%8r(QiT;{_a~h;>rb65#TOLMTMn0_*?d+xOul}HZejF zgHRu2CozB$FuknV5_5&U3=XH#_Byh(l#)MyFTZjJ)Avy&XTi=_SU*>M>{@UAadob>;ddlZr#3tEV0xVOKxr`2Gb!TjXOO3jr-?q>AuM z%W(f=GjP)fujBoWt@$ zOs&sjA|)l?E}ox0>%(K|*S{8Hr;M;Ugz3KZ=+s*opQ845l6lHRBGR9%V(ua1lKZkl_K6Nu1IIaYp_vM-~5f8;ee3>w{poLrUyl_9G#pai7xjc#Bb z=Dwu?tOqJK6{X1co4o++Sic89{n{dIdAR^nbxa#QSGBAvk~u03#fvMrAuI`>{_Tz2 z8hW|yZd5jaVi}r)8P)7hYDBx5E+=9LH`E%L_HJG*Ng~3nSG3raBFraC%TGnPDTJ-B zGq36&F2&uSz7G9| z2Hvaj+nREY=eo%$UdW-Em0L{ykkDEiwjD))PPvbCDh7}~C=FHn>QS<{7N7XhT--_( zIX#OtaFvlu0cWjxRp*K8%|_(%iW!hDO1`Z@ZN|oSMKzlvan}-1p^q7&C4try7pw*sc8f z?UfoQ0F1*Sae892CtTdke@X}_8#k>#>j5mTvY6H9pMO8DzTr|s zZsk=e0^Y(PI2X&1U;r?}Nd&wpJb|nNPyOH}y!@SQ%uCBRRk~4C*X8YW3MGGcFJZ*N z*fRt|F0Iq1XnP~AUkdgzPH^{kX5%Ub&~$ioQj`FtC^o&~9FZ$N(X;&)__Z8Ls+2)4 zwW@}P?mYYR<@oL2zk%VCGU2Cps+xyAru88iaQr)#RpQRCOu=1$JD2uGzU_vTE7-3R zp)DP{j>YZUtzN|jEqz^^U>fTid3Jdfvk{bHW21GQ$FA$1Us@O04|1N+UCo0tlb8;- zZE*o6-!v2-`NoZy$VxJ5DhRGKT9j}Z2Z#i;qT|XO5EDGi)5m_rdIPWh>>$Q*vr~xs z?zOL6C5;?S!~tntcKb_@5Qx?`+C;9?hXom!V|CfRLvhC^t~NtB5@L)&QT1~`sCGe- z@Rv_rdsaZVr0fnmr?9XRPyX9WSor;|xcEvIP~aLja_>g^0I7q`*tf9^fBmER^t8?9 zX;i7)15e*QC+49peVo)|e`*~e4yQtym1cdEk<%8lzOa8ZpTV&z7}w1LmJj5%VIsVU zBduS6$G7p6+&9W`>sKztoe$5$;1T2=gr()C#bQ00yPJz7GlRYSTrk@9<{tdt7n!Ka zw3CZjLbZv-|FkFF-1(YYFKFFPAOcoY1r;*=Xe4k`$PXWS^fsz583Z1Y%z)Q@kcn%= zT5u(aY2((xodx*CH($nEzuJrObI8@|b!Ix#WQL@mY;P6n4@B|zzr7Q4?w)3WE~^et zNID{jQAB4=!6N3a&qF-hqLTSX{ioBb$E*TAu(O`hrhaVgm}DAdp^S{dsVG@g!M*fh zJo2-fG5@a1ke*FOq0B;x2^rnTnsFiKTQL_anL$3T^YWM9!IQVYipFRIM$YSpMjq}X zRkB4DJ9cxAzH2>;ZW)N%B*U-~cYp1Bs~TT>>2?eoH_#&IimHoWb{AW;1);lCetSs> z8P&TsGyVQ^&tv=2qZo5tKLjgSRk)U!w8K(Ryrhbw^Wh7u);Me4WD*pOOznZEx*)E4 zoaE>vXew(!F6OWf;oMZjXV6!c%slZLB4Uf`(n$|HMK@v~ZeDa+P$f>Kx6#X!V0SJm zz=#?B@VDPtfXl8PYcASIgbAli4bd?ZtyM~SsU&#<+!&zKoI8Nn8TCL#3m)(%nxUYbSo9 z!8kHh&`JoXXK#ILFaGyq&!Tu+Eyl1eRXq>hQPqsh;i)KGT#oF?$@rU}+`)4xF5*~Z zj4RPl8MuyX5|cW$In~73A3C~v+oFR=XN)1r{W4Z!({!v(ePpaNA+(!}4nML~d@f$* zpa5#Q1$y5b^?3gmr{K1Sug0*82Ju=2|Fm~p9w*(WF{=-+salp>O4q`XeMR`w<4dvd zKel1`v<#*crLg!m?F|;<=nCe-0i1K|HUbd<#7WZnupIq6m6&i{f84^2`8vD7>SK}X z7?3&{$xa0!Ne)YNqo|iNKpSJpd-V_@43)$+?cJ%K*746|oO1})c5c~g`zHp?%0`q2=ZM*KeM>Tr zqMy4L(^ydA(85xpc``ot%LSNo>!nD~b!WX;RURV_${P;MC6SVaD2`=zi0Uctz;Cz> zV8<&37=2Y9r8d2CRIx=oaboQH`LzED-9sQ;OeJT^w;g4=a~<~%fAH&bk;mhh&7(mg zA%=BJljs+JQ;b84Cl2|>qK)|P1uqlf!|2DfhI;O5ROCA_(2G5bSdi|4L3r?+w_(Jn zftDmFS}<fAOu{1x^wC44VZApFx+te3<6PHoL-~jyd7NwC_@0gXg!oy z<>T>WL;Jl3^b&qB1Ox<)Md!#i{hFw>a~MwL5~_<3hGkEl_wp{Jsm#F5%pPfNlk zs#KG%?T^oV{W?sYeUY83qM~=IO{Q3nMiGaEoG*{)_dX(A4v9k%R_71z+$o*h zn}olXqFE(lw5^xKvGkd>`0-t@Apa5`3`zaEp^PZW@uZVD4lF5R;kHZg&_CbGv65rb z0F}Mb<;0;e>Yor+112GCcykw)|K}Erx;Ecj&0XOJZRUklDU~)?F)OVUvjE$N zzC8oi-+u*T8~r$#V}`ghD;$v~(EuUO;kFNE9&n#V17jJ>{<0Ro|H4W-IT|tiYNicw z-%n7fM4V6WCkalqRqJvB5kP!Q87N?#*#-YR2~%b%S4qYv5!FVFCv%G@ieB_H;FiC2c`D)VDA#9j(qZBeB$f3@$7WQX2>yBZa=Qo zbh^Z7J!g(p`$=TLYTrX?VKsjH=rZIF;mN=ua(7{(>dhMOZhd3N-oEKY6k&w~TbrG6E8^_Qm)qktugsP@xbnJozS;{Obnf z3=UxMwLCDhiuMSdGj>M1jk~qn>G-(2>&`AE5CbGdYExANS%b51%SRY3Cosj4yIQq! zi%5<|wMcOeCCkZWvg#%7Gr0YEdBAv$$R$*ofD~qTgT`{isBqhhAw>sirN`yNk zvYVEJ#394jL*rIse*TGNtQl2~5p%Ox_lc$Dm|@Uq4pHK%&ft)(kvWis`!-jjxFCW% z{$&e`cE<;G*ZJ4FhCmEE2~6f~_<8u^p?6C0iC^AeC)_HSq|;|jjUc?biX#h^w4AD^ z)J(~tGL@@Y-SGRj{2BQ?btsv7c4GxqClZaH72?ZQ*I~l@hvDOo(dM8b8l*a={o>uT z?_B^B(osUtP?8e3^tre3=dZqr;j{Z7SjN3DBn~qbI*4bnB{6twyDmr^>D)6fgL}im z5{#SC7Z3mZ8eDo6rA9g<;;cNP)EjpU1)-^NF)*s}>7W`PRaFlw%ak!CXW{Qw<1b&> zz;QQY#Oz$Up?P>}wQMDu)_MKX1q4F0BxGo^*@;N?g+Yv(*B@82)~q!Kxw^hdxsvOV z%dbKY{$v`BJLt-N9+})9ox*A=ArgmgLzVS}WFT&;lYn22ghX^^99Jc4A1M$s@f|3q$RPL&>N8kO7dx+-Fk%L{(!3W*F zLY$Hjx3SGGUb+mwUjTA3Mz|f`fDR$Nz$Wn}?4n`;0ODAG#1ZC+PnciunKKKr>pu(G8kmL^#PqUOnqB((F$ z8lOBIls~b9;1fx(eyK@mcH!)0vd5Bj_mN%1h9sE6(jw|5;g*9h3O129GfUNfiiZI~ z=z>3ukh=&bbg>F~idWVHIXzgXiLi^i_ZwpLON zXyw8 z{Sr&bgX!GA`jZT&cmPtW$lKuTsSEb}>aDi+pLSd0>1La_q`;L4ZIa`pTwspWbC{t4 z4E9Y@C4mT{Rb)|^t4vs{^M~r~w)>~rg4-3zf(aL!0#F7Wh<}yP7pL+pQF|9WGMW_u z{nL*>Z!dkf!e-txG3*>Zkk}%|09NBsoLk_;3RiGs^tT|%dwyvrzj?;q_0USo8w0Py zk2?G#FV&#S7XMg$YUJ{5P zVRE#tqhPOUYcAPGzQOK+Lz@E<6iQ$;93{vST5za+te0n3Z?-j`-(s^?j<>c33F`nt zjP&l->W~J8b?PGx32Ej~-YzC8XD`BIJ;u;z-ix z!5k%oGk%Y2r=+0*N#y-Y{1z94_iwAjZm`9+ee;MFPQhS_y`$|iepaHy-gy6!_UWY0 zg`Pp<5^iJ>Zb$4+<#XrgDb4=mYxmea?=7WsDnQO5IM1f{fx+D~4y^{r!`6===X;OTRGNRyE}1 zB(F&`?kz7rzu$iO=oSp8r$F9J!Wt2Qz8M06(m?aniw?b?t~KU2>u(7}5SESqDLF}Y zYV#%g@Hcc$yMXUdUk>XW0)zlZx8xpKpHE(}?|ph5Yy=t?#eS7@Tp)-&YZNGd{GfV2 z3$VMI2*^OFnWAM`)_9`Lp8w(j+xG1vR`&2TJOSp|tXn1$FfN~zUj(xoKxqR(&z?SS zl?SRp-YVO(`c*ssN`qxVkjE^|!_bCp!98@L%%bpDEg&`jBq!)-umo^zjj4D8q$2a3 z-`i-_ryA_ehi2HPKe5zGm&_!VuY_yZI(Ap#uWV3`g1VK7=tR>eBu_zurgC7%QCs&P zFI)Lnk2(@ekgUOWBzB69VX2~B$E&~PUlN8O0#XTdZ4K?DnoPH{Lrr zfnu}J(($92YA0yf(;Ub-zT=!tTUB5!wea$e9K8r|3Y}T@IHf46PjV>-AyKVujWQISlln}BqUpn7p7fxR^og=S4 zQfEiE)>+*Pa`+~wHLmo)NIOjzu2XKL!~1$?MBK6b#)9%!_J zxfoMPch||Tq0|I{Jr!17XN*0)zBN815JAwG5DKSuLz9($Xqru)Il*TLFoP0lQm+T3 zgPc%br@;S;MUaH^(z-qNt1s=~Ku$6KRS{b?lzwR(K+>HZ0Ek$MTmUAgD+AXQtnM3| z?99drp6URkAl))&B5)Tml|YfSPTDnF@VafTBG7{jLZm}Thk4H`$*|lpnNVR^9SON` zJAoC8p8Z;5rCluBXcP#?Nmx&^|DJ!P+4feQvW3g1+24NgZd-KsY#TF?Z7EhFmM^fk zp>2Jqtf^sq88#NTdN2`oQ-T}wK(}w#k}w3(E+KHe z3^3e!-*nPx<%%_Cet8*=qV<-#7PXnYf=^bRvmbuq*EVSmk^Ruz2x$`0x63I!LVFYP z0l<<$p2Uo$z)vS0%IsKOeBXYi(^`(m9a1wOB`ZK&K-89!B+Jg$8SXS>Ak@V8EEzIL zFjQY1@HAr)s))cy@|HlIM(p2|j3hh1rNItftOqfsaBP_)z$@q3xbgYyVA_lr1^k!B zt?|Ye?dA#u?y6;)J+Qsfp8e5Q+x+!o^p|X77v_^uI61bf1;P-2|J(6%Vi1JMPEIF- z?Pao!T9!?pKhEc}o5M2_`~odb^z;f8VC$r2WZ|Fr!3H}IpFg3b0Df7#vVgTOfZWIk z1Zx7;cBpSRl-~tfxxnZ1eGz@J%SbQ~P&!bnd-!{?H{G~*5WFL3el#T2y+RRU=xm05 z#2pVw)ChfKdrr3ubeiv-)O(X?n0Nxz^z&6RDBw0IItbMg9 zSw+cEQ$bRsE2||%+;dpMpZ|w_)};LAkoGE zp~fi@1VR3|P~KqE9~@^BCk0PXEza<`wEMEVl~?W$d$u07|NY`#8@mYPXrxbAnBiJs zQD!I10J5y`D!3={qCTU-XRjpEAYju3MI(AGPD+J}U{JWAs3V9SHp}bH^Q5?DUk=!E6-S@S02pT)a)+rA7LLHf*?U;qcjR_NEXvN4uRAT^bs zM)hg$Q#}zE@)?pFNMl2bt^L6!IDDuh9;V%HB}+sP185@#>;4w|9Pa9KaovVoD+QI8 zhA3Sr6i_JDA8)opuu?_r$oGAI5qVPPTgkkM%zyC4JPU<7>c#M|lO4YZ%oTLY1ZCl$Wo2q}PT zxr3yV0k?(hTD2P*>;g87xx}1$;h^TDSHt^-^qQ& z!=L)GzZ5&Vzs8>b$tHXGYex{eiSIQp%ThQ8(?ws>P^n2@Cm)bn7%A~HFk}RA%B2<8 z97DO?p9!mNp>O?s%^FI3G8~S6f{$bjf=Ve|zP7@_CM_GGSw<`e7!B+VE&yBrUGXfz z_?IjeiV4%%iZmkHr{uzSv1`;px?qaC?sKpF z$lTK2LwxkCsDB|2I_Duvy(}r`PF^M;#SZ(`SIh02xGmiU7$N62Rq(UQUd!=bqSMN7tRP zobj1fv#fW^g^^?a(D0G;FacQSlQla@Nc2_fFL(WaJ6VsW2Wb&xgI^t z&kZ(ul}Q%h=zO_=@YN&dB${&&3bv(Qm@^zD4kNGDykM7cdFEMICY{(z$r3ag(Na3? z)CMxVqKBH6TVTuoW{xd-$1J<4bh<}(5diz{A~wlo63G`r6wMzE$FN=&dW}T#hl0B4 zOuvHHwUR1e*GudePi?h*Pn<*mPqD)Jxi$)WiHwRJ1nP6dP;(VDB{DQNj8J+?p-Rc-W( zx2^A87?Q05gy2sB5Zc;XtdWGC7pmG}pIU4>dDHLz{4I9#vJ#tl%Oo3(-6B1c*io?p zS~;g9m8|bT><$`@J74l_ejbGDkm(oVfb1oUU^~Xp-CJL=7k;u8%~Ultaf!K^SotUr z72vwNjiuGR#6Mcp>B#$lXCNR*R6T;N=z4(f5o;lxdsO0Cgy_2)e;3$>q96Ajii6B zEe9!x{FQGx#PKb*Rew3%<}aG==e!Gu1C}A5r?^7X6zvvzCfcSy&7;1Sb;X@$sH8lH zB0!#39mHsEYPNmbUa?;jOs@R#SJ^RAEq7jqdjli&AZKvDv|Bpk5;~!^kuua7=(}n| zZAE~CajqGPu4w2g0xo@u0NTGyz>9cjkE#KJ%w8}Rh3HlUP@MMiyYQ2009Jr$S}ZUB%IhD~+Nb^$>NzV@lS8@8zxy;GOXS~$ka zJ~PAS++Jc+=8UsRB(2QmJb7}6u-2#NsGmSoV!Kl`OFkYDkD2QrdZAnsL%L)RR$Xqe z-7i<#i>vq8zVFuXTf61ooQ=nF*f}-th$Qm939ZFFTb}`pTnuUk5`rLFoaE_Hw<>@J z;3_UPv}*y4G`ScY?)6_NUv7z3_qc9-z}Eypm| zLwJHf5~k%kB5wc(FerHv0NUQtVNLZd)^M=ZE!k}#gjBK9Ru$Q84;I;T3vbdNEieMFO>&kXwk%@8|0-+n!BFY{S#r zZU0l%21;1|JY3dcXT5&RFzTB{=sL6uK83n{h+TLt+wWJEL34xy; z(vYrylk6*E|K+&%!B5_2QwehR^T#&X!58b?29O63XWxw5MHWDhT+oZG0T^WiaJ8_z zv=i74LAT|wWCjq+nJU6?@((9=E9NYF+5OXO%B*78rD7X9xzLJmCC@3yL|q$zp}$*0ydqXfOWfHaoty-g0njFDT9O zbKs*S^NIBWiM3s5H{ySvqRT6F*Qe6R#dT-k#u0>-5S32BP}hw5^7OG`6c+x6&S6R)0T061xl3m!=Xl=+vxC}C;UU1R< zvKnN8NEvfdt!P@FjlL(##!Ss372IeWLqg8+g#XDYNXKm^+j8=A$?AkK-X97zy-vD& zTh|EPuL{Hn=j6STUL2T1b?quKmI$m-a5l}8>=Z{TPT1DxDs0n}m3DUbd13{p+L*FT zkjGmFu_cqJEg`uJ0q8vLLg2E$#D zFYvoM-)Q@`AGXcw57>^coPeF() zL+leO*wJKGusFx|JbA*Z{`9mhSTW0iCjik9+r7qZ+C#boJQ}wYj`ciYT`Sdo08C>h^ig>OLT;Xeu)Ywiky>9yHK|ArY zb4V9v+4E8@k6eCoG?X?=te`Y>y7`*@QDdas_zY>0X$&|~&|Llr*v z;YXt1V(-q6pgW?DcBh~r4d*ffR7$TzT~&{61rZ&AxOU|%*YdrIkjjxvG6H=o=SU=o zT&S%lQRu5y{_K7$|ISfsx!8<5NUG&5P;_-Y5ob==VMcWdU9>gF>?2%_l;N6z2p+Y1 z`plo!lhVUt1%Qew`fr1KQO4Jc-8Nxmq5bC33cLBXT|{%g!&wPu4}cN%8PuDDYx?T7 zK|DPR74+wX))|rjrajR78qym*XY4)hEvnjooIY`}dVy_{hKhb+@jP!hY@2@W?#9iW zf6|I6zlTaweUlw~<+SbCaM*S}Q)$P4UB?kza*^DUW|<|p=J;B$0%D^mepeE~6uiVb zja`kr4c`p-dICQINy2)@5F`drF{~NN5FDWBp^X!1)0Sr2H$SqLh#DET>cLw{OoOa| zk{;y~2y!L+o{6VE+mnC zA#5Tb3)RBn#p9LNzUoV;Nn6BuN@mv>w>Zrn```<9>f}Xx|A+4-Vn!_FCA*1>1l$k? zGw?pH+Ihl$=$$4#e-8lj+3hKkQ+)9FL!p+vRCmd04xhFP0#EPWc+4u-)Uio-qMk*C zyb%AWEMF_By?w{=r`rrlF$>p#2K4v=~1_x@_BExPj-Lit?&7h00wPKX^fD$ipVOZYCDr|8kuXY@JNeeXD;FVy4}>c#zh-QVNu>hty5>tFv$ z*NJH3^=volD;l>}TzVQ-hX8s6;3GEAtR% z)IikW;NGKR?p2fRcm8~tl`bx^;>mefh858dERLjOzvqp6@g0M0 zRF-PV5lxrci2_n*)yHe?@UD|~;OSSbf=KCgOky#L*&L6IC4^7mDT06=X08|DHIMyE ze`M(Y`^fd{IRjzEB%WWyyKmJWk)!fo-)F^BaGC1r1UsO3U09qC@2IvDN6$j)Vro;d z6{3P(w50t%$1ijAn<|Ta@HZ!-vZ|}|QEW>suve|EL>DAO%!1`JZPL_2ujAGKA0SCM z(@y$jqI^{BJz;07&sfW4+}LIGOz*S|ByqwZSU1rTJ0LrHE?G*29NlcmdT>34%XM+j z(^vnY1(4DsLlm$8?qjxOWtMc?;+r*+U8rjV$z4Gm;oVWyQWnq}GJvPr`G9Qz diff --git a/img/logo-square/uniswap.png b/img/logo-square/uniswap.png deleted file mode 100644 index 9f7022ef4e3881ef5209cd92116d5f59dc6c8927..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13016 zcmXYYWmp_d7i7O zPWN>8Y)_p!Rc9iU6r@m*2#`K}_<#zQmQVqX!~gprzyaS?TGiPfKCtJ2B}COcGEcIQ zJydVkAB5rUQd3-$kNPzpZRnOc*VygH9)WCTO{smOU{(jY9~oDTZ6#()XbO8AtF$T&xa z-b~qVc~3Q8+-h({=SZ|o0i9!#e(r}il$^KY- z+O1fnDewa`8{{26?UBaa`J4j0GYIr@Shkt)?Bj*ZU5fyVg!E$_5J;H$MXQ3Numv!! zJ%O3@}R z_r8mF=b8THU}2gCb}BHY=5Ky&Vi);lnT@abmEnzYU@uZfZ!g=TR#*$7zW?Yzy2aGS z!_baqfdwb3L%sg0K%U1`iuUhnN1T&T6Q@7w1kAithO3y?t-u-xGb3--$GsYS&1E+x zI{g(^Y^lK8gBEbvOse%zd9aKzlPY9GR7@b^-g!4MY5$bG{1B9xF#_AltMHBOQqDM zTq9pk_`1}n*hf_#8dX=#&}-W4G+%^c<4>_rPX+eD)ECW6wWvI+U3ThHC^$zYn1w}L zEe2*oSqJ{d70z!p%hJT^ZN5sa$)E9X(^c2;B3Jm#Ol1#>gY9hvk%p?~Bq^_AANnOo zWCtt7sa!EL7wkLx?-fIwizMDwK`0j8E-Jlz;)?TQ@ep}=NmA65C~SNIyeE`dNRMMvFM4XBJK@!%oz|~|EN$l5g%u8!T=;GqlNcY0kh&D$w(@Y`* z*nzU2pfIB5jX$2D+IDNn5Z-|3T75yrxga!3k;_ERvU^S{Z2KGfon7$;0dd6Yt_5W2 zdPBvnT7Ps>80J}p_qmfpG zEPk4&gk2Je1mX9Kof$s=_zwSD5`q*` zP-a1B_thkZ9UcGI=8Fj$<9{`u$krbPQ3?&ti0o1qdbzzPIQ_7hAGe8_erTFH`K6}~ zJ^`3=K`YIxSiCFG^dkjUMPJ^l+iTzM{N=ZwM@{k=3u1~KJ5|Q|im=vLl<9XA!mrYL zuyhA_BP>aDk2PUYgx}Q`Lu3a%2Bk&IuARdhiS*)?Xb!(Mh{$&7SYp8Gh)dZDGx|wGveKubnpepx~+tjbmHqB}Nke5RUA##xEPTtvxvby9yq=;o81^T7C!tf{eg2PRgX+F3Ow*NZDUeh6d4YDKc zorL+E@EUS>v}~pg={MJ}NsI;B>`JeFlh!nbx$z_RKqx^Y0Dm^^(9x%<43wTD=A5~B zQkBys`NugT1Emv8au0ebdUk~=$VPmPlK4Vy5uB^li{^(TJ;H9)Br`YRl!MEcWP%0V zJf-8;MN(mgI)HWIX%w|!9aYA?fi5n$}Lg zh_ddv()t%sG345s2_{W}=hinL%j0YdfBFj0MI=}H1ysYY&%|dP`UuCz(+g1k4otOt zvBA1Ch}?bAkbfEoSb(ZpuJ!u`4ed2Z%uPk0Jn6HtOV7a;fhNEEvh{t+o;@t{al?A{ zUwtfhsEZHO+}YdJ10OxQ?F(2I{`6}%btDt}9nDK4 zB$de;)BQpFf&v$if3f*3PlVt{d~P7B9+?@DB9x%ms3a-3b0hqiDmNXhkeL;LWM+Fw zji?HrjV{gnP?XZ(Lr7_1%rrefTX>u*)7t#c;nOb5e=MSJu@Rx-U%KLgJXp+gsTc|} zFS}>s1(Aark7E~+y34)0PyCWeEWu5q%kNy@C()-5U!{R8?_I_D zz8YM>jJN05N{7Q1dmilae~LYLtgxr_uMU42`AeA`YvHkv$&izSRJ>sE zbidwzb1$j{yJ(>GFfIl~ifB{E)KJZ>k1T~Fp!0zF9DR>@#T)=DG~s0Qy;tk{sZZuw zH2%*r0s8=MjCzLU3+HrOwM8^Nd+SfNgD}aQH-gzINUiM+v|p2)_hZI(JNlDd@f)c| zI@)JdYhfuxElWR5N^?n+u5M(GRuTTtkHT4f_vabII0OLa@#%{Y2cYq!T%}!pjh%{) ziGV${QSovOomt&^WJ7)FjX2~U9b3@sbKbgne{Ut4NSDY6d34ai2Zh$|0qHji@}o@; zeRqX0>bh+|14&nQDsRyTJJwgQ*00+R4GcMA?jPq^%I{o>Z5V%pvy!<1h#1!vTK?NL zc_AUe^^IZ4q&82JJGthouG9jr>~f<}>Jv2q z_b-&LZ_!;@#Vl#M4xQmvaT4nlOhotEn&Oh(_Tp%;lJp0DKmNF}sPex{FS%i}yZj_L z&?A(2Wrfm2U#nrYUeP$WZ2gJQjW^BntZ9yh0ipoak%q$VXr>&q!+Yjb`fyUSmZi4s zp2M1lCiTm=8X6oMgY!)2krHkagfMQv9{!8=F1Rui_R2i_KCy6Jf3oGdz5G}$`=_Zo zr1(oy41acS6vg6tqu-@Ot#u14|OB{w!<>;h3(BS{wE9@tYC&tz%J>!w`y0^I?_`b|DR$| z|0KdIKo@d|f5S26gjE{ASPxAbxFD-wuw-(@`FT3Gyxply^0&nJ;@)RG^E%Ndb-}xu z9P?{hBfpgBjt#wAY#-a%a)$+xa0mWnH%UAp;tF6LmVSGO)#;A1s>mMwbkNZP%yOVd zdPKTwFUETkvs2Fd}~gVH!%s9hneMevvEM$_DM0L z71)e8{i4U<`1xl3uWK^1SMI8Kair~1ga#AFeN`ZDUe&{ba?^d``9gOm{HmX;3Rp3w z0e5+nr^QN)hJtKR2Q9@tY|t6ZOhlw5_5wV0#i<_5yyu47);1z+*&6X{vFaCs}wzx$JwycMU|`}SUSNov`%({#&+*#2y(Pqy80dFz)JCldJc@86VO z8yp(HBD$EgXS6gw7kY1+#MRmo_Q_Ic^Y|(Aa=W%pkkEN`1Zr8n)kF+_uh#6%6|25= zNk$3>;&QshLjiDgR5(c%hi;W|ohdB~B#Zd6ty%sOcAi`12Zzv&3-i&_wt8~A?OZECe+TM>pM@HiWH(-5}Vn%)F< z(#T`uv+i;$96|3kzMFOqYVKhqB~o&jG1IIlGs~KBp5^zJ6=aSxzgyzf?Jys8hv^l_ zSbZ8YzCkXvpq1ZarO9e<`ap#8mBFcv1f~&0^Tcf{c58_Hu=H0IHgHZX16NCR=<{EM<3P zvYznWaNpWSMh;UPE2UaJ__(E|uU);hU3y}5O90S=*xPQ`tQcfp)Toz|aC%A|TEx{Z zqlHL4M#d>-vwns%?^n#GSDEZNZHuRj8Z3LNGK#P4XVpq3N7@T*l7dOb+j8K^+K0r_ ziqnVoR713f)s>_NR{Dk!yRGTN&r;gh z+->9r8;v~Qu6$){RM2(dJ@<(H8NkH)!_)j?wz7(Qq@ri!8PyJH0m@wDLF|0@-JOzs zMyJ$5uL;*-TSfZC{fP(SNo5R~GVGz6p+78E(9fEJq~4ZJ2i!9`X4HL_RvbmaN2t~B z&+FP~9lK+^lH7B|`!0kI=}(Fkz6?&=`4*LF1I-Y>Jq{lw#_f^s?t9Sn+)P zqYB#a^h}W5**k8I0lr!8(t9$7ndcB`lFCQ(Pj$%L_@Nrdr`FrlvC}9$nK)S#@)1*Y z1JTvGtNlg>Hog=fM(>AZ$zKM1i`MY2s*}?sNrgH8)I7Eav6vuc==GW<*LEJOwJDh* zeg?SuSgD_K-!`FuF^*IKh4r#KpT95JqAqpoV}4|*onXT+R@S+y$Fo@moZzPaoR9s^ z?>-BT^^|IgM`ttV6D$l=;UelR&31+mGEB(J;2!Ees+x3Lp7sVH4mA)99V4lPG@d-y z?qnxdR)}02krt43Dw#OUQMBG@!#c`GH?^jPA*3*x^wJB*f0)Wmj92~c^)#ITk24%9u3wG7u zd`i{$wsMlu{1}Cw=^cgf9n3ncPb$Jdms%#i#gUN=nVUgw1(WJ~`albM-+}|>MkLV( zJ#>YrmG5fQFbKjprS-L4|L5yZ6@jp3VpMli-Jk~%WDUbR! z3{Fx3#!$?C2TxiH)vJ7Ttp-S<$9qa`0~$fyEVa3-`l$gBHT2EP$}cOtZGd#c7XRmK zfP)~yM~V0pMeGJY71-6CzvF-S*{QfNUDdtHeNK8@C1o{)smc~3c6UDnHJYGlK=ME2 z`Fj`MiSTI0JZ2Z2c=bJA&>1ZSJ5e**5`sSUhu@y9mi_t_=~$x?7qX_N6y@gHvYJ#o zxv1I*T00HJN`nZ3Q0kpsT$#tt9H&>96eZ&Sl%3-HbNuH=9t0JYc6}`{X#Z3cj-v1} zFNdMIz`@TOJN2g#Jb%%<$`CR=M>GbS=bSZ8VPeNIYShZ~+g?ay0;X$`7d)ftQ#o(|$5)7-utisPL0x9n>9@%NJ(zflL9{&LNy_;L$z|21 zei^7}jiLav_$e+^#)E`#GLCiMl39OTTKCtBOl?1_pR$JdT=qlKmCz_j$2%gs z7IleNe~|88k#tax@h|DI848%8$KJ<&uV3IK%gnD$QFU(G8|edtkKJa@{~=E-8H4Q2 zo)d?&{EYEfp(6TSp)LpMe}y&Djkhf}4X0c=TGaprBNX;fE zbO{~I>$Q$xMCsoZ&WEB3dZdVG+r#_@?!{Hg&+-r}-sM8?$kfgWSQkrJmVtgj%vf%; zbOep-biXOb(I+}XVaR#?Kj+!*avS>7r+ht-tl!ix0$I&Y)v-P+{X71${Hf#{frq&| zK37H`lL2S^;{+Dyojtf*VQ+dS2_qV<>ThlqXRHXLjLSVoLK$}OjXXiMypyS`cKt6QcH@5hqEXO8#PK7rSNmcD63Lr%k-mI7kZh?a0O_p4 z^!u9hUgiZY=wUX+wnHs2`UX=t-sF+PNJx8U!%xkC*p>F{NG4*$+vl`ZR?EM<pwx%aG-`nneJ z$%2WqlP`EcwKHjXqEgs;_yK>I)Iv*OO*6FE!HDvm48wJ}i*-xNPqX)l2IjmHWtT%K zVPmoP^rkz!}s=UeZ#YA%J~D0 z++bVtmS=3`_ilRw#N{plT-jDf=`g2hTof_AEhg6=lv<pM=$5z>HX z#wqLbnCt1sldj|S<#MK7`MEXO+sbT9qvEo48^LO22w!hcDOZTDj$rI<2xe1wR=~85 zBswge5SDeiB@f=@TVmmpOsVHL1kE4^am`WDj9HRs?K?nMjV8eL?`HaB5tvKqS{OgF z8jU@Uwjj@k=M@t8Z@6nsG2S7=!yT#t7HUe=s|k@!6>-=TDa+m$Ox0V1P(!Z&5fn4U zs=)(1QRKq7l_AXab9}Aq&LImayOQ9fOvB>erTD_AqjgMIj=u9Sk{_HVa%BerU&-s3 z4=<7OsTk&S_)D@_KFOuv;<;&C2fTkasM%u@tO!d{RwY#M3=~zIM-oh;=Vv+!>cpNSUzdjz4v4@!VLFiJz-M_^^Xx@H!26 zN?dT$?{s)y>?7K4sfktvv9tyW7$$}i8Pk=y=?fs$4lC<3GVuSyC7?$^Mr~yI+;Tu+&x8j(Yo#E*a4I zTxqGF=y!5Wy>BRG3& zpWhs$*z8f8p_nr~UF%X0${2mrt|cKP6(I8R2$1e^MO0P+;W(!x*B3R#yuj1d=LU<) z?0EuBOwh7@dYG2dWXt=p!Yk1Hdlc=Jreyxv-aqMt2U_V%uP%^b!+yO@b-93w zw5&H4C0iUvXtaw}iz5$xA2q;7p75`8YT@F;y!{*;8NG(9^a~Jpr~Y{u#sx6BuUh^< z&ivKkqgO!Y45>++?fU1)+)Q5nXCUgK-F`0xEo!fbPTmIxXY-syEHXe@T_asXi}%Fc z#bNqs-t5R-qt>=HNxX(u`n3jSGfk=k3{32vR#Nn43p;+Mzd{sRL9SGbH{8*(ISnw zDb1&}O-+vsdh5JLfOULyi}jz;6pHvlzho62qb3O9TlDw6`VMDs>L)IB_wOzY+G8YH zS!q5Qs&e(BU_H+1S6p)BK6$9gX1{K6@b4IdKz&wXPE@M;5CchNc-lL$5H7A+;jK3C zls}(LRk2?TdRQ7u&MWNFT_T?6=wC&7N)1!6a0-})xft5?OZuxhC3ZlvhI|EYh}{`P z_D4h7<9{K|8&2{~D6SsURe8jEQMGQ?$4f_7HhJx*@W`ecIMVrM*luu=*t!x3ACfdHq5UI>8Uo;+H zy^n`2(*ML32KMWFCX=BnA~ID+BRb zZHq&r{$t`oRTC!u5#c3dbU@=UE!<>}5lV>HSdolBWjR8CZowp|{ywY9yCw$Rwy;H` zDGUrRwL_l~!0|wBt&U1BG*)ZI=vut(%=NE5I8s`(-L{iu;vi8@AelyN54Jr=$DMMc zM;a!DTQ;9gUPUYcsp401s?^e_(xf6vIUUfWgzvVnjPuh4XDui}YxQ!)FA0$w&=%Nt z5Mk-c0@NV2oi!#itjO}nFzN~v3%LdNG>L(wV8!^c&^eh-`qHwVTzS#LWa>9F(QmQQa>9EgBa^GmOhw39Be{jlNGG2z z`z>{poc?y}S%X8VOz&N_`HzUUqcQ^zS~iTtx$rKc!s0NZ`0H>~xb=5l1>QXw^++46LrKmsWvSR*?p*o>61=(BG| zK$xc(Ofi4}14!-9Dwrwv1s%t$3|E(pC*BN+8`~NHCR?F@TKR*JC|2#wsoi>tiSs{q zu(fKbhn7VdaSvwC#=BS3H-4TmRjkKCG~#2^W|%Y`;e<=e(*hDGnb^I_W3&;zDrXT}dniiAx~2;a*% z=9ObaTRZ(y9dF#-ujPv{B}@d^NXT49G>Ecm%nO1%d~t%nad99t_WINo{xo=M*uAN<>N{&DwT(1Jbrx@M(gb*GDo zK^aKBh~iliLtWpySdSFnXpdsgCQB%``5mz4wd?EU)=qV4;ZF;(1+JuIa8VuKNwUrt zC)bGi^jnrUe@}nCEC;o(l6+C_Q5f^S*76SvX3~Nlwn$72_;Q-i;uKoBnE0aw{~<3w z7RAFHH>}7iu%9x1RcuedtWJzyBpmjJ4-PM~Jj>0jLK`>k!=KS;lkK1%Ueps_HVF&f zJHQos7ZD$nCokWG-*-B080yPd;&x_acw6pt%b&8qHjg#@i+Y+f!1N{s>(3(`sdzA9 zcp9l8bnZ4h4OpXvWPQi2V2^mF|0P$We`8xz(J|BwC=$BQw(k&8r_6p>3JIE&gS$OY zp_Ei*+^)^`STW|eYLm{>Pv6~Fe|^?wKChrWwPIRcJRBwf{MB(@F%PZf(9t34BLn*V z)9>qP5D&o6Wyf;Y35e{SH`By!ID5u9;n@l9=I<{EG{H+-GfihfmRDRGBSao2;^~yl zr;;@^+TXZ9*(+g$voafE$7$dP?u~>Rx3zMV280jpK_NB$4O5|$rp`PXa6d4c1P!h3 zQGk@tjSX;R)t-q{9bV>Ji&4xo0Ca8HAF6o1p2NPk2J{8c8Xhw*<&j@a$(4Waygq9w zSQyZGp}+9mgl`b3O!iZH4o*LQiCMC=WQQ*OefcNH>9d<_+8iQI8fJ`yg8;}r+GpA| zlvS$*9rnB81lg?undb~-P>~GF3$rx*1s`m3-fo7X!yR_3d;-}q={Gry+nlxwLrcs1 zz76}lM=ZqEk{;26wvP@%YU$rD5BQqpdw>( zM$e2u*iG=27=DK-$168c`88X5vWBzpnN$6cnY?_pw+!USJ>c|Z$Zg+m&-kl#WKZDC zndUFNyFMps2@Ck6#P5BO<4R5`%9QYMna;S&Zu_mJ6zgS8R zN+iNVY&Q`YbG|l=rCr$UQXUm}{>q4?m~TtJ8Kb_e z=Lx3b*st4K&aNa<0FGPI>HRQieDy(J*j8{HxdW%0{=Q9cfTr%0cmHQ=A*nnaDy^+_ zg3LaGU8IMuVaAF6^=5H^S?AcV*@%}vekVtS6|9f~FO~PrXsktpeowq|*W9U6s!|^K z5&z;RuOa%)1Y|@Zuju8?`R1?lOC!(-R6J}`Aro- zblp~gV1l?Es%bHI<0&_-jSZWhyDTDjgnth56Fl6L`$iTE)yn2*&eMD_W z^o{i>2PB68?K{*(r{-Nvq+4!{bL4m}GK`T*zWQTq7&E#=P#wB`MN|lL5IZ)x)(Lu$ zKF9Hl(z>=U8C6_coWy3caUl~gu^eXnz#N_FV(!o%yi)@xWscJXDwMHWwHeFTT!q2} zF-

la3*8heD23pcc8Ja~3m+@p|zz2Z4++_U<}E%lmzX-IbAnC=Z0-ILyT`v}L>8 zCwJN9)((E5<(b0l){Ml$m@_+mzHCJ{C|)v`@ft(8^XN~*CY%R5ls4hQtz{yH2|uiw zL?`3yfSIWQ=}G3g>6;UDT=>Gjb;XGtWpI+v1 zDF!c%7UZu>h=8KS#&Io^pErXZs$X=Kh0PY77IQGkPL5RE-uig2Tx*h4KZZ~vB?gDH zx1>D{M(Db_wM*$?$DySdFQh29cU53&*E6%LT$r$}8~_4O_(51SgtIE9@^{h6ujYm# zh2IV@g`rW%TqaSdji@m5Xtu>dHZ(Vm?`nrVjX(V_)}^KR>zsdEVKSJvKX-c9$7K}b z7WmSKW6wDTgcNtnZzsWTFPBKjE)-Fpxdk_k(U4AGM3HBbgg8FWT?3vSH(Zm%9PC1G zUQvRFsf^|*AlLe&g=I5HGEk*E{Y|%9*Box#60k?$ufAq^>{L3^w(#R$v+GAJ0ARDU z=7$9mT~w#N!YOC1=_sYf_|XvzuClK^D%9$4WjOrrNJ_XXlF0iH8vHK$w>8e|F z4C{CTqAOf5Cg9v>VqBk)O&X_1Tx6h2mxAfwMk z=4axkXMO)2Nc?`MsUfS;Z4|mmlmBK)dubni(zWNNAFK1slm>Zaes1UiGJiuHn@tQm zUQ88H3+L62b~UNwKmK4qJmmxT-W5lLu81fm0ZtUn0E+*I&s@`{`N^z~qrG|WS^c9! zM8DmTz5pqs4^>%Ok0VwLOg2=6>+k??_&G~j0TDrT9AOtNNucc4A~7(YI!F$&ure#z z|IU0SmYhtgmmWZCOOyKM5Ag8vJm1nRw5*E_8-lA=5zoG>;rFO(*Vm{+%5m`pu%A%Q z^-80CckS_Te+t?v&DFF%CH zb4UBK#12wIJe&*WoZwqSLG{=$X7AmlVZCnBpsVJ$QQK{3tFb4q5q=e>Ho$XJv@PBQ zRM;v4<95=?L%$vlcVPwRegd!Z)|U$_MiSRV;uX8bddSxebbwvIAr)ap%%W>v%tk4kB?2yWj`JAem7i6;^@f>G z_=Fl`R_vJbY)wTM$gwiii@2l08vbwV=ewQ+5>g%{wJeJga@@DxfXzB$d=$Ql9SHKg`Y zE}wv1wJFvK})gQ&bVn4-Q&LCSzRi z&agXFdUN8w*PxX~q%8(iASB{ncO0J{TOvZ4uj$e)1#I%S9;AYvSq4!*^XW zeSIu@-@02na-&VVh6@8F(wK{NfE?hhcXEx(YSvf#Ure#T0R?PD0QQOkJCc$B=<2t?kq7;9G95auVcI zy&D?{g*3{HYGYw4YJun(z0~8tsVF_1C+(1^U{b;-^)I^6$~}-y$2t_^Dtso$%CB_~{+`*mJFt2?nU8lkvqL&E77jufr*Awxbv zjd&hVx+X1kSJdN(EI*;~MTfGog6dAI9V#X0+(Zv1Jo8-d!L`Nb(rLei^8$fk4^06c zqRWfb@wq=?LMD4WS`)2L3uAH101`~f5&ewRO3f18MZ&Kc_-S|jcxkZ;qr4{jZ&wVBtOl zc=aHHYXqY(#klBEo@v<_%5&~?e@wt`M`!YnH4d%G;pHcmfhTHI-u||bF`h$XKt~SV zh(CD{a-*rurnxL>-IC2ygaq;6>zr8IGBag;(c5Z64&TnuQ7 r=7dPlVqZiK=JtESJL!iH@9$q(2lY4ie4xM^D<8n$6(p*~eg^&@U - + diff --git a/index.html b/index.html index d790383e0..68d72794a 100644 --- a/index.html +++ b/index.html @@ -2,15 +2,12 @@ - -Middy, the stylish Node.js middleware engine for AWS Lambda - - + +Middy, the stylish Node.js middleware engine for AWS Lambda + + -

-

The stylish Node.js middleware engine for AWS Lambda

Organise your Lambda code, remove code duplication, focus on business logic!

Simple but powerful

A middleware engine makes your code more organised, removes duplication and uniforms the handling of non-functional concerns like authentication, authorization, validation, and serialization.

Focus on what matters

By pushing all the non-functional code to middlewares, you can be productive and focus on what matters the most: the business logic!

Small core

Middy comes with a very small core and an unobtrusive API to add the minimum amount of overhead to your code.

Batteries included

Middy comes with a large set of official middlewares and utilities that can be used out of the box to address the most common non-functional use cases.

Blazing fast

Middy has been engineered to keep your lambda as fast as possible. The minimal core keeps your lambda size small and your cold starts under control. Add only what you need!

Extensible

Do you need to do more? It's really easy to write your own custom middlewares. And, if that's not enough, you can even extend middy itself through its hooks.

Show me the code!

The following abstract example illustrates the difference of style when using Middy:

Without Middy

handler.js
export const handler = (event, context) => {
// BOILERPLATE!
// E.g. decrypt environment variables with KMS
// deserialize the content of the event
// validate input, authentication, authorization

// REAL BUSINESS LOGIC
let response = doSomethingUsefulWith(event)

// MORE BOILERPLATE
// E.g.
// validate output
// serialize response
// handle errors
return response
}

Without Middy all your non-functional code is mixed up with the actual business logic in your handler.

The code is hard to understand and maintain. What if you need to reuse some of the non-functional logic in another handler?

With Middy

handler.js
import middy from '@middy/core'

const lambdaHandler = (event, context) => {
// REAL BUSINESS LOGIC
return doSomethingUsefulWith(event)
}

export const handler = middy(lambdaHandler)
.use(/* Your own behaviour in a reusable fashion */)
.use(/* logging and tracing */)
.use(/* input validation */)
.use(/* authentication */)
.use(/* error handling */)
.use(/* other behaviour */)

Middy helps you to keep all the non-functional code outside from your handler function.

The business logic in your handler remains pure and testable. All the non functional logic is isolated and reusable.

Do you want to see some more realistic examples?

API Gateway (HTTP) API Gateway (REST) API Gateway (WebSockets) Function URL S3 Object Response SQS

Sponsors

fourThereom
Amazon Web Services Free and Open Source Software Fund (AWS FOSS Fund)
Sponsor

Ready to get started?

- - +

The stylish Node.js middleware engine for AWS Lambda

Organise your Lambda code, remove code duplication, focus on business logic!

Simple but powerful

A middleware engine makes your code more organised, removes duplication and uniforms the handling of non-functional concerns like authentication, authorization, validation, and serialization.

Focus on what matters

By pushing all the non-functional code to middlewares, you can be productive and focus on what matters the most: the business logic!

Small core

Middy comes with a very small core and an unobtrusive API to add the minimum amount of overhead to your code.

Batteries included

Middy comes with a large set of official middlewares and utilities that can be used out of the box to address the most common non-functional use cases.

Blazing fast

Middy has been engineered to keep your lambda as fast as possible. The minimal core keeps your lambda size small and your cold starts under control. Add only what you need!

Extensible

Do you need to do more? It's really easy to write your own custom middlewares. And, if that's not enough, you can even extend middy itself through its hooks.

Show me the code!

The following abstract example illustrates the difference of style when using Middy:

Without Middy

handler.js
export const handler = (event, context) => {
// BOILERPLATE!
// E.g. decrypt environment variables with KMS
// deserialize the content of the event
// validate input, authentication, authorization

// REAL BUSINESS LOGIC
let response = doSomethingUsefulWith(event)

// MORE BOILERPLATE
// E.g.
// validate output
// serialize response
// handle errors
return response
}

Without Middy all your non-functional code is mixed up with the actual business logic in your handler.

The code is hard to understand and maintain. What if you need to reuse some of the non-functional logic in another handler?

With Middy

handler.js
import middy from '@middy/core'

const lambdaHandler = (event, context) => {
// REAL BUSINESS LOGIC
return doSomethingUsefulWith(event)
}

export const handler = middy(lambdaHandler)
.use(/* Your own behaviour in a reusable fashion */)
.use(/* logging and tracing */)
.use(/* input validation */)
.use(/* authentication */)
.use(/* error handling */)
.use(/* other behaviour */)

Middy helps you to keep all the non-functional code outside from your handler function.

The business logic in your handler remains pure and testable. All the non functional logic is isolated and reusable.

Do you want to see some more realistic examples?

API Gateway (HTTP) API Gateway (REST) API Gateway (WebSockets) Function URL S3 Object Response SQS

Ready to get started?

\ No newline at end of file diff --git a/lunr-index-1699550506581.json b/lunr-index-1699550506581.json deleted file mode 100644 index 598924d48..000000000 --- a/lunr-index-1699550506581.json +++ /dev/null @@ -1 +0,0 @@ -{"version":"2.3.9","fields":["title","content","keywords"],"fieldVectors":[["title/0",[0,681.627,1,958.472]],["content/0",[0,12.242,1,16.114,2,9.681,3,5.767,4,7.174,5,9.009,6,10.66,7,2.498,8,7.581,9,12.496,10,6.043,11,8.083,12,12.496,13,3.124,14,8.28,15,6.358,16,9.319,17,12.496,18,8.738]],["keywords/0",[]],["title/1",[19,1216.752]],["content/1",[19,12.324,20,12.324,21,12.324,22,10.774,23,14.446,24,14.446,25,11.192,26,11.694,27,13.166,28,10.774,29,8.154,30,12.324,31,10.774,32,10.415,33,12.324]],["keywords/1",[]],["title/2",[34,668.638,35,300.711]],["content/2",[3,3.279,10,1.998,32,2.978,34,7.445,35,3.348,36,2.227,37,3.524,38,2.506,39,3.765,40,2.737,41,2.672,42,1.142,43,3.081,44,3.201,45,3.344,46,3.344,47,4.89,48,1.832,49,1.127,50,3.081,51,3.201,52,1.798,53,2.889,54,4.812,55,3.174,56,3.524,57,4.131,58,9.35,59,3.344,60,3.862,61,2.278,62,4.131,63,4.131,64,8.196,65,3.765,66,1.364,67,2.294,68,4.131,69,1.865,70,1.325,71,1.604,72,4.131,73,2.224,74,2.074,75,3.524,76,4.131,77,5.688,78,4.131,79,3.524,80,3.765,81,4.131,82,4.131,83,4.131,84,4.131,85,3.081,86,4.221,87,4.709,88,3.201,89,3.665,90,7.976,91,5.788,92,4.131,93,4.131,94,4.131,95,3.765,96,3.524,97,3.344,98,1.325,99,1.687]],["keywords/2",[]],["title/3",[100,1426.251]],["content/3",[]],["keywords/3",[]],["title/4",[36,339.698]],["content/4",[7,1.857,10,6.578,13,3.4,18,6.497,22,6.929,36,3.24,42,3.759,101,10.144,102,6.929,103,12.398,104,7.926,105,5.244,106,2.583,107,7.926,108,6.929,109,7.521,110,9.291,111,9.291,112,8.468,113,4.241,114,8.468,115,8.468,116,7.521,117,10.538,118,9.014,119,6.698,120,7.198,121,9.291,122,9.291,123,7.198,124,4.929,125,5.079,126,7.926,127,9.291,128,9.291,129,6.698,130,7.926,131,7.926]],["keywords/4",[]],["title/5",[132,1123.5,133,384.981]],["content/5",[7,0.583,13,0.729,22,3.902,26,2.361,35,0.781,36,1.694,38,1.769,40,1.933,41,1.887,42,2.397,47,1.525,48,3.115,49,0.796,52,2.812,54,4.693,60,0.729,61,1.678,71,2.509,74,1.464,77,1.214,98,1.678,105,1.646,106,0.994,117,2.259,118,1.933,119,2.103,124,3.774,129,2.103,133,0.999,134,1.887,135,2.916,136,2.916,137,6.484,138,2.916,139,2.361,140,2.103,141,3.247,142,1.446,143,3.902,144,4.768,145,2.916,146,2.916,147,4.235,148,2.916,149,2.488,150,2.658,151,2.916,152,2.916,153,2.242,154,3.476,155,1.214,156,2.361,157,2.639,158,1.933,159,2.175,160,2.259,161,2.039,162,2.488,163,2.658,164,1.805,165,5.232,166,2.916,167,7.114,168,5.232,169,5.232,170,5.232,171,5.232,172,5.232,173,2.488,174,2.488,175,1.547,176,1.474,177,2.259,178,2.488,179,1.547,180,2.916,181,1.41,182,1.62,183,2.916,184,2.361,185,1.844,186,1.933,187,2.488,188,1.983,189,6.33,190,2.777,191,4.838,192,3.44,193,5.232,194,3.658,195,5.232,196,2.916,197,4.463,198,3.558,199,5.232,200,5.232,201,1.646,202,5.232,203,2.488,204,2.916,205,2.658,206,2.916,207,1.844,208,2.594,209,2.916,210,2.488,211,2.916,212,2.916,213,2.039,214,2.361,215,2.916,216,1.805,217,2.658,218,1.887,219,2.488,220,1.646,221,0.956,222,2.361,223,2.916]],["keywords/5",[]],["title/6",[]],["content/6",[7,2.268,10,2.605,13,2.222,21,4.595,22,6.628,35,1.442,36,1.283,42,3.135,44,4.173,71,2.561,101,4.017,105,8.222,106,1.023,107,4.595,108,6.628,109,4.361,115,4.909,117,11.285,118,9.653,124,2.858,125,2.945,126,7.581,130,4.595,131,9.678,157,1.998,197,7.581,213,3.767,218,3.484,220,3.04,224,3.268,225,5.386,226,6.043,227,7.581,228,5.386,229,4.909,230,5.386,231,5.386,232,4.595,233,5.386,234,3.663,235,4.173,236,4.595,237,8.887,238,8.887,239,4.909,240,2.9,241,5.386,242,3.484,243,3.767,244,8.887,245,5.386,246,2.9,247,5.386,248,4.909,249,7.581,250,6.043,251,4.909,252,5.386,253,4.909,254,5.386,255,5.386,256,5.386,257,1.998,258,5.386,259,4.173,260,4.361,261,5.386,262,3.767,263,3.268,264,4.361,265,5.386,266,5.386,267,3.884,268,5.386,269,4.909,270,5.386,271,4.595,272,4.595,273,3.268,274,5.386]],["keywords/6",[]],["title/7",[275,870.438,276,1024.007]],["content/7",[7,0.917,22,3.42,25,3.553,46,3.712,54,3.061,106,1.475,123,3.553,140,3.306,141,5.429,143,3.42,188,5.282,189,2.245,275,3.553,276,7.08,277,4.18,278,4.18,279,4.586,280,4.18,281,7.537,282,3.912,283,2.967,284,2.967,285,7.768,286,5.282,287,4.586,288,3.912,289,4.586,290,4.586,291,3.712,292,7.768,293,3.207,294,2.9,295,3.553,296,4.18,297,4.586,298,4.586,299,4.586,300,9.351,301,4.586,302,4.586,303,6.537,304,4.586,305,4.586,306,4.586,307,4.586,308,4.586,309,4.586,310,4.586,311,4.586,312,4.586,313,4.586,314,4.586,315,4.586,316,4.586,317,4.18,318,4.586,319,4.18,320,4.586,321,4.586,322,4.586,323,4.586,324,4.586,325,4.586,326,4.586,327,4.586,328,7.768,329,7.768,330,4.586,331,4.586,332,4.586,333,11.895,334,12.131,335,13.31,336,4.586,337,4.586,338,4.586,339,4.586,340,4.586,341,4.586,342,4.586,343,4.586,344,4.586,345,4.586,346,4.586,347,4.586,348,4.586,349,4.18,350,4.586,351,3.306,352,4.586,353,4.586,354,4.586,355,4.586,356,2.729,357,4.586,358,4.586,359,4.586,360,4.586,361,4.586,362,4.586,363,4.586,364,4.586,365,4.586]],["keywords/7",[]],["title/8",[13,231.678,351,668.192,366,562.273]],["content/8",[]],["keywords/8",[]],["title/9",[367,1154.613]],["content/9",[]],["keywords/9",[]],["title/10",[368,997.361]],["content/10",[54,4.172,69,8.895,198,8.016,349,10.745,368,8.244,369,4.685,370,11.788,371,11.788,372,11.788,373,11.788,374,11.788,375,11.788,376,11.788,377,11.788,378,6.08,379,10.745,380,10.745,381,11.788,382,11.788,383,11.788,384,11.788,385,10.745]],["keywords/10",[]],["title/11",[277,1299.947]],["content/11",[]],["keywords/11",[]],["title/12",[386,1154.613]],["content/12",[10,5.395,54,4.636,198,7.587,208,5.531,366,6.769,369,4.434,386,9.032,387,11.157,388,11.157,389,11.157,390,10.169,391,8.321,392,10.169,393,11.157,394,11.157,395,11.157,396,11.157,397,11.157,398,11.157,399,11.157,400,11.157,401,11.157,402,11.157,403,11.157,404,11.157]],["keywords/12",[]],["title/13",[405,1299.947]],["content/13",[7,3.616,45,7.865,48,2.505,52,1.52,53,4.201,54,4.595,60,1.502,69,2.712,70,1.926,147,7.865,150,12.808,176,2.737,190,2.345,198,4.085,218,6.285,240,3.235,286,4.085,303,3.886,369,2.387,391,4.481,405,5.476,406,14.052,407,6.008,408,6.008,409,9.716,410,7.246,411,6.008,412,2.09,413,6.008,414,9.716,415,6.008,416,4.864,417,2.804,418,8.02,419,4.655,420,3.981,421,3.51,422,4.655,423,3.8,424,2.941,425,3.981,426,4.655,427,5.476,428,3.142,429,4.655,430,4.864,431,4.201,432,3.719,433,4.481,434,3.8,435,3.8]],["keywords/13",[]],["title/14",[436,1426.251]],["content/14",[198,11.405,369,6.665,437,15.287,438,15.287,439,16.772,440,11.405,441,16.772]],["keywords/14",[]],["title/15",[442,1299.947]],["content/15",[7,3.404,48,2.209,49,1.406,52,2.168,54,4.67,69,2.327,70,1.652,98,1.652,153,4.713,176,3.609,190,4.292,198,3.504,221,1.689,227,4.396,240,2.775,260,4.172,369,2.048,391,3.843,412,1.793,416,4.172,417,2.405,418,7.505,419,3.992,420,3.415,421,3.011,422,3.992,423,3.259,424,2.523,425,7.286,426,3.992,427,4.697,428,2.695,429,3.992,430,4.172,431,3.604,432,3.19,433,3.843,434,3.259,435,3.259,442,7.808,443,5.153,444,5.153,445,5.153,446,4.758,447,5.153,448,5.153,449,5.153,450,5.153,451,5.153,452,8.567,453,5.153,454,5.153,455,4.697,456,5.153,457,5.153,458,4.396,459,5.153,460,4.396,461,3.604,462,5.018,463,6.312,464,3.011,465,4.396]],["keywords/15",[]],["title/16",[466,945.114]],["content/16",[]],["keywords/16",[]],["title/17",[467,1426.251]],["content/17",[54,4.819,79,10.057,198,8.016,286,8.016,294,7.455,369,4.685,385,10.745,391,8.792,468,11.788,469,11.788,470,11.788,471,11.788,472,11.788,473,11.788,474,11.788,475,11.788,476,11.788,477,11.788,478,11.788]],["keywords/17",[]],["title/18",[386,1154.613]],["content/18",[198,10.964,369,6.407,386,13.052,390,14.695,391,12.025,392,14.695,479,16.123,480,16.123,481,16.123]],["keywords/18",[]],["title/19",[482,1426.251]],["content/19",[54,4.713,198,8.131,286,8.131,294,7.562,369,4.752,379,10.899,380,10.899,391,8.918,437,10.899,438,10.899,483,11.958,484,11.958,485,11.958,486,11.958,487,11.958,488,11.958,489,11.958,490,11.958,491,11.958,492,11.958]],["keywords/19",[]],["title/20",[493,1216.752]],["content/20",[]],["keywords/20",[]],["title/21",[494,997.361]],["content/21",[3,1.188,6,2.196,11,1.665,13,0.643,15,1.31,32,1.856,36,0.613,41,1.665,42,2.832,52,3.933,54,4.507,60,3.01,61,2.059,69,1.162,70,0.825,71,1.782,73,1.386,89,3.311,91,1.594,105,1.453,106,0.489,113,3.603,124,3.406,133,0.882,140,1.856,184,2.084,188,3.178,227,2.196,257,0.955,264,2.084,282,2.196,283,3.024,288,2.196,294,4.06,300,1.665,367,3.784,412,2.234,458,2.196,494,3.268,495,2.182,496,2.196,497,4.06,498,2.574,499,3.37,500,1.504,501,3.37,502,2.346,503,2.574,504,3.486,505,2.346,506,2.574,507,2.574,508,2.574,509,15.956,510,2.782,511,1.75,512,2.555,513,3.987,514,4.26,515,4.26,516,4.26,517,2.346,518,2.346,519,4.26,520,4.26,521,4.26,522,2.346,523,4.26,524,2.346,525,4.26,526,2.346,527,2.574,528,2.346,529,2.196,530,2.346,531,1.994,532,2.346,533,2.346,534,2.346,535,2.346,536,2.196,537,2.346,538,2.346,539,1.429,540,2.574,541,2.574,542,2.574,543,2.574,544,2.574,545,2.574,546,2.574,547,2.574,548,2.574,549,2.574,550,2.574,551,2.574,552,2.574,553,2.574,554,2.574,555,2.574,556,2.574,557,2.574,558,2.574,559,2.574,560,2.574,561,2.574,562,2.574,563,2.574,564,2.574,565,2.574,566,2.346,567,5.477,568,2.084,569,2.574,570,2.574,571,1.706,572,4.26,573,2.196,574,1.994,575,2.574,576,1.8,577,2.196,578,2.574,579,1.532,580,2.346,581,2.574,582,2.084,583,2.084,584,1.665,585,2.517,586,2.378,587,2.574,588,2.196,589,2.574,590,1.8,591,1.594,592,2.346,593,2.574,594,1.994,595,2.574,596,2.084,597,2.574,598,2.574,599,2.196,600,1.994,601,4.26,602,1.856,603,2.346,604,4.674,605,2.346,606,2.574,607,1.665,608,2.084]],["keywords/21",[]],["title/22",[609,1299.947]],["content/22",[48,1.289,52,4.974,54,4.877,55,2.233,60,4.203,61,1.603,70,1.603,71,1.886,91,3.095,113,3.812,412,2.906,495,3.899,496,4.264,499,6.022,500,2.921,501,6.022,502,4.556,504,6.229,505,4.556,513,7.125,514,4.556,515,7.613,516,4.556,517,4.556,518,4.556,519,7.613,520,7.613,521,7.613,522,4.556,523,7.613,524,4.556,525,7.613,526,4.556,528,4.556,529,4.264,530,4.556,531,3.873,532,4.556,533,4.556,534,4.556,535,4.556,536,4.264,537,4.556,538,4.556,610,8.352,611,4.999,612,4.999,613,4.999,614,4.999,615,4.999]],["keywords/22",[]],["title/23",[123,718.023,142,459.441,616,599.516]],["content/23",[]],["keywords/23",[]],["title/24",[7,224.61,617,463.223]],["content/24",[7,3.103,13,4.816,123,14.924,142,7.695,221,5.086,616,10.041,618,8.911,619,15.522,620,7.599]],["keywords/24",[]],["title/25",[133,488.722]],["content/25",[35,3.737,36,3.325,48,3.599,49,3.809,52,3.533,54,4.812,60,3.49,70,4.477,71,3.152,99,5.703,621,11.302]],["keywords/25",[]],["title/26",[622,1299.947]],["content/26",[]],["keywords/26",[]],["title/27",[7,224.61,617,463.223]],["content/27",[7,3.569,13,4.462,106,3.39,622,16.27]],["keywords/27",[]],["title/28",[133,488.722]],["content/28",[35,3.801,36,4.337,48,3.661,49,3.874,52,3.593,54,4.643,60,3.55,70,4.553,71,3.206,99,5.8,623,5.968]],["keywords/28",[]],["title/29",[142,459.441,616,599.516,624,648.082]],["content/29",[]],["keywords/29",[]],["title/30",[7,224.61,617,463.223]],["content/30",[7,3.287,13,4.11,106,3.122,142,9.893,620,8.049,624,11.497,625,13.31]],["keywords/30",[]],["title/31",[133,488.722]],["content/31",[0,4.651,36,2.805,48,4.919,49,2.091,52,2.98,54,4.696,70,2.458,71,4.308,141,3.499,154,2.668,155,3.191,176,2.16,412,2.668,420,9.501,626,6.987,627,6.54,628,6.987,629,4.563,630,10.733,631,7.666,632,10.733,633,7.666,634,10.733,635,7.666,636,5.361,637,12.232,638,6.54,639,6.987,640,6.54,641,7.666]],["keywords/31",[]],["title/32",[142,459.441,221,303.691,616,599.516]],["content/32",[]],["keywords/32",[]],["title/33",[7,224.61,617,463.223]],["content/33",[7,3.287,13,4.11,106,3.122,142,9.893,221,5.388,620,8.049,625,13.31]],["keywords/33",[]],["title/34",[133,488.722]],["content/34",[29,2.112,35,1.001,36,1.553,48,5.075,49,1.021,52,0.947,54,4.506,60,2.167,61,1.2,70,1.2,71,1.472,98,1.2,99,1.528,106,1.239,113,1.708,124,1.985,125,4.739,141,3.957,153,7.529,154,3.611,155,4.319,157,1.388,176,1.837,181,1.809,189,3.193,216,4.037,240,2.014,242,2.42,412,1.302,446,2.078,462,2.977,463,2.148,495,3.044,623,1.572,642,2.79,643,2.616,644,2.79,645,2.616,646,5.053,647,2.186,648,2.899,649,2.899,650,2.316,651,2.899,652,2.899,653,2.592,654,2.899,655,2.715,656,2.899,657,2.899,658,2.366,659,2.899,660,2.014,661,5.053,662,2.899,663,2.899,664,3.622,665,2.899,666,2.616,667,2.79,668,2.227,669,2.899,670,5.053,671,4.56,672,2.899,673,2.698,674,2.79,675,2.79,676,2.899,677,2.899,678,2.79,679,2.42,680,4.702,681,2.479,682,2.79,683,4.435,684,2.899,685,5.053,686,2.899,687,2.79,688,2.899,689,2.899,690,2.899,691,2.899,692,2.698,693,2.698,694,2.616,695,2.899,696,2.79,697,2.899]],["keywords/34",[]],["title/35",[262,648.082,698,844.701,699,790.642]],["content/35",[]],["keywords/35",[]],["title/36",[7,224.61,617,463.223]],["content/36",[7,3.422,13,4.279,106,3.251,262,11.97,698,15.601,699,14.603]],["keywords/36",[]],["title/37",[133,488.722]],["content/37",[29,2.057,36,1.518,48,5.04,49,0.994,52,1.613,54,4.483,60,1.593,61,1.168,70,1.168,71,2.873,98,1.168,106,1.21,113,1.663,125,4.642,141,1.663,153,7.628,154,3.544,155,4.24,157,1.351,176,1.795,181,1.762,240,1.962,242,2.357,412,1.268,446,4.716,462,2.908,463,2.092,495,2.974,629,2.168,636,2.548,642,2.717,643,2.548,644,2.717,645,2.548,646,4.937,647,2.129,648,2.823,649,2.823,650,2.256,651,2.823,652,2.823,653,2.532,654,2.823,655,2.652,656,2.823,657,2.823,658,2.304,659,2.823,660,1.962,661,4.937,662,2.823,663,2.823,664,3.539,665,2.823,667,2.717,668,2.168,673,2.627,674,2.717,675,2.717,676,2.823,677,2.823,678,2.717,679,2.357,680,4.594,681,2.414,682,2.717,683,4.333,684,2.823,685,4.937,686,2.823,687,2.717,688,2.823,689,2.823,690,2.823,691,2.823,692,2.627,693,2.627,694,2.548,695,2.823,697,2.823,700,3.321,701,5.808,702,6.372,703,6.372,704,5.808,705,4.594,706,3.321,707,2.949,708,2.627,709,3.321]],["keywords/37",[]],["title/38",[710,1299.947]],["content/38",[]],["keywords/38",[]],["title/39",[7,224.61,617,463.223]],["content/39",[7,3.569,13,4.462,106,3.39,710,16.27]],["keywords/39",[]],["title/40",[133,488.722]],["content/40",[35,3.737,36,3.325,48,3.599,49,3.809,52,3.533,54,4.812,60,3.49,70,4.477,71,3.152,99,5.703,621,11.302]],["keywords/40",[]],["title/41",[142,459.441,187,790.642,616,599.516]],["content/41",[]],["keywords/41",[]],["title/42",[7,224.61,617,463.223]],["content/42",[7,3.287,13,4.11,106,3.122,142,9.893,187,14.026,620,8.049,625,13.31]],["keywords/42",[]],["title/43",[133,488.722]],["content/43",[29,2.112,35,1.001,36,1.553,48,5.075,49,1.021,52,0.947,54,4.506,60,2.167,61,1.2,70,1.2,71,1.472,98,1.2,99,1.528,106,1.239,113,1.708,124,1.985,125,4.739,141,3.957,153,7.529,154,3.611,155,4.319,157,1.388,176,1.837,181,1.809,189,3.193,216,4.037,240,2.014,242,2.42,446,2.078,462,2.977,463,2.148,495,3.044,623,1.572,642,2.79,643,2.616,644,2.79,645,2.616,646,5.053,647,2.186,648,2.899,649,2.899,650,2.316,651,2.899,652,2.899,653,2.592,654,2.899,655,2.715,656,2.899,657,2.899,658,2.366,659,2.899,660,2.014,661,5.053,662,2.899,663,2.899,664,3.622,665,2.899,666,2.616,667,2.79,668,2.227,669,2.899,670,5.053,671,4.56,672,2.899,673,2.698,674,2.79,675,2.79,676,2.899,677,2.899,678,2.79,679,2.42,680,4.702,681,2.479,682,2.79,683,4.435,684,2.899,685,5.053,686,2.899,687,2.79,688,2.899,689,2.899,690,2.899,691,2.899,692,2.698,693,2.698,694,2.616,695,2.899,696,2.79,697,2.899,711,3.192]],["keywords/43",[]],["title/44",[712,1024.007,713,1024.007]],["content/44",[]],["keywords/44",[]],["title/45",[7,224.61,617,463.223]],["content/45",[7,3.494,13,4.369,106,3.319,712,15.928,713,15.928]],["keywords/45",[]],["title/46",[133,488.722]],["content/46",[33,11.163,35,3.502,36,4.113,48,3.373,49,3.57,52,3.311,54,4.647,60,3.271,64,6.942,70,4.196,71,2.954,99,5.344,106,2.485,623,5.499,714,13.084]],["keywords/46",[]],["title/47",[715,1299.947]],["content/47",[]],["keywords/47",[]],["title/48",[7,224.61,617,463.223]],["content/48",[7,4.138,13,4.369,106,3.319,715,15.928]],["keywords/48",[]],["title/49",[133,488.722]],["content/49",[35,3.801,36,4.337,48,3.661,49,3.874,52,3.593,54,4.643,60,3.55,70,4.553,71,3.206,99,5.8,623,5.968]],["keywords/49",[]],["title/50",[716,1299.947]],["content/50",[]],["keywords/50",[]],["title/51",[7,224.61,617,463.223]],["content/51",[7,4.138,13,4.369,106,3.319,716,15.928]],["keywords/51",[]],["title/52",[133,488.722]],["content/52",[35,3.801,36,4.337,48,3.661,49,3.874,52,3.593,54,4.643,60,3.55,70,4.553,71,3.206,99,5.8,623,5.968]],["keywords/52",[]],["title/53",[717,1299.947]],["content/53",[]],["keywords/53",[]],["title/54",[7,224.61,617,463.223]],["content/54",[7,4.138,13,4.369,106,3.319,717,15.928]],["keywords/54",[]],["title/55",[133,488.722]],["content/55",[35,3.502,36,4.113,48,4.451,49,3.57,52,3.311,54,4.524,60,3.271,70,4.196,71,2.954,99,5.344,623,5.499,653,5.2,718,7.938,719,7.645,720,7.938]],["keywords/55",[]],["title/56",[721,1216.752]],["content/56",[]],["keywords/56",[]],["title/57",[7,224.61,617,463.223]],["content/57",[7,3.494,13,4.369,106,3.319,620,8.555,721,14.909]],["keywords/57",[]],["title/58",[133,488.722]],["content/58",[35,3.801,36,4.337,48,3.661,49,3.874,52,3.593,54,4.643,60,3.55,70,4.553,71,3.206,99,5.8,623,5.968]],["keywords/58",[]],["title/59",[105,634.177,722,1024.007]],["content/59",[]],["keywords/59",[]],["title/60",[7,224.61,617,463.223]],["content/60",[7,4.138,13,4.369,106,3.319,723,17.476]],["keywords/60",[]],["title/61",[133,488.722]],["content/61",[35,3.801,36,4.337,48,3.661,49,3.874,52,3.593,54,4.643,60,3.55,70,4.553,71,3.206,99,5.8,623,5.968]],["keywords/61",[]],["title/62",[539,514.673,724,926.774,725,926.774]],["content/62",[]],["keywords/62",[]],["title/63",[7,224.61,617,463.223]],["content/63",[13,4.462,106,3.39,539,9.913,726,11.547]],["keywords/63",[]],["title/64",[133,488.722]],["content/64",[35,3.502,36,4.113,48,4.451,49,3.57,52,3.311,54,4.524,60,3.271,70,4.196,71,2.954,99,5.344,623,5.499,653,5.2,718,7.938,719,7.645,720,7.938]],["keywords/64",[]],["title/65",[727,1299.947]],["content/65",[]],["keywords/65",[]],["title/66",[0,865.306]],["content/66",[]],["keywords/66",[]],["title/67",[7,224.61,617,463.223]],["content/67",[0,10.83,13,4.462,106,3.39,620,8.739]],["keywords/67",[]],["title/68",[133,488.722]],["content/68",[35,3.801,36,4.337,48,3.661,49,3.874,52,3.593,54,4.643,60,3.55,70,4.553,71,3.206,99,5.8,623,5.968]],["keywords/68",[]],["title/69",[7,224.61,617,463.223]],["content/69",[7,3.494,13,4.369,106,3.319,620,8.555,727,15.928]],["keywords/69",[]],["title/70",[133,488.722]],["content/70",[35,3.737,36,3.325,48,3.599,49,3.809,52,3.533,54,4.812,60,3.49,70,4.477,71,3.152,99,5.703,621,11.302]],["keywords/70",[]],["title/71",[53,997.361]],["content/71",[]],["keywords/71",[]],["title/72",[7,224.61,617,463.223]],["content/72",[7,4.138,13,4.369,53,12.221,106,3.319]],["keywords/72",[]],["title/73",[133,488.722]],["content/73",[35,3.502,36,4.113,48,4.451,49,3.57,52,3.311,54,4.524,60,3.271,70,4.196,71,2.954,99,5.344,623,5.499,653,5.2,718,7.938,719,7.645,720,7.938]],["keywords/73",[]],["title/74",[728,1299.947]],["content/74",[]],["keywords/74",[]],["title/75",[729,1299.947]],["content/75",[]],["keywords/75",[]],["title/76",[7,224.61,617,463.223]],["content/76",[7,3.494,13,4.369,106,3.319,620,8.555,729,15.928]],["keywords/76",[]],["title/77",[133,488.722]],["content/77",[35,3.801,36,4.337,48,3.661,49,3.874,52,3.593,54,4.643,60,3.55,70,4.553,71,3.206,99,5.8,623,5.968]],["keywords/77",[]],["title/78",[7,224.61,617,463.223]],["content/78",[7,3.353,13,4.193,98,5.378,106,3.185,620,8.211,726,10.85,728,15.287]],["keywords/78",[]],["title/79",[133,488.722]],["content/79",[35,3.737,36,3.325,48,3.599,49,3.809,52,3.533,54,4.812,60,3.49,70,4.477,71,3.152,99,5.703,621,11.302]],["keywords/79",[]],["title/80",[730,922.62]],["content/80",[]],["keywords/80",[]],["title/81",[7,224.61,617,463.223]],["content/81",[7,3.494,13,4.369,106,3.319,620,8.555,730,11.305]],["keywords/81",[]],["title/82",[133,488.722]],["content/82",[35,3.502,36,4.113,48,4.451,49,3.57,52,3.311,54,4.524,60,3.271,70,4.196,71,2.954,99,5.344,623,5.499,653,5.2,718,7.938,719,7.645,720,7.938]],["keywords/82",[]],["title/83",[731,926.774,732,844.701,733,750.264]],["content/83",[]],["keywords/83",[]],["title/84",[7,224.61,617,463.223]],["content/84",[7,4.138,13,4.369,106,3.319,733,14.148]],["keywords/84",[]],["title/85",[133,488.722]],["content/85",[35,3.801,36,4.337,48,3.661,49,3.874,52,3.593,54,4.643,60,3.55,70,4.553,71,3.206,99,5.8,623,5.968]],["keywords/85",[]],["title/86",[98,360.258,733,909.523]],["content/86",[]],["keywords/86",[]],["title/87",[7,224.61,617,463.223]],["content/87",[7,4.087,13,4.279,98,5.489,106,3.251,733,13.857]],["keywords/87",[]],["title/88",[133,488.722]],["content/88",[35,3.801,36,4.337,48,3.661,49,3.874,52,3.593,54,4.643,60,3.55,70,4.553,71,3.206,99,5.8,623,5.968]],["keywords/88",[]],["title/89",[257,416.721,734,958.472]],["content/89",[]],["keywords/89",[]],["title/90",[7,224.61,617,463.223]],["content/90",[7,3.287,13,4.11,106,3.122,142,9.893,221,5.388,620,8.049,625,13.31]],["keywords/90",[]],["title/91",[133,488.722]],["content/91",[29,2.093,35,0.993,36,1.541,48,5.063,49,1.012,52,0.938,54,4.498,60,2.152,61,1.189,69,1.674,70,1.189,71,1.461,98,1.189,99,1.515,106,1.229,113,1.693,124,1.967,125,4.706,141,3.929,153,7.505,154,3.588,155,4.293,157,1.375,176,1.823,181,1.793,189,3.168,216,4.006,240,1.997,242,2.399,412,1.29,446,2.059,462,2.954,463,2.129,495,3.021,623,1.558,642,2.766,643,2.593,644,2.766,645,2.593,646,5.013,647,2.167,648,2.873,649,2.873,650,2.296,651,2.873,652,2.873,653,2.571,654,2.873,655,2.693,656,2.873,657,2.873,658,2.345,659,2.873,660,1.997,661,5.013,662,2.873,663,2.873,664,3.594,665,2.873,666,2.593,667,2.766,668,2.207,669,2.873,670,5.013,671,4.525,672,2.873,673,2.674,674,2.766,675,2.766,676,2.873,677,2.873,678,2.766,679,2.399,680,4.665,681,2.457,682,2.766,683,4.4,684,2.873,685,5.013,686,2.873,687,2.766,688,2.873,689,2.873,690,2.873,691,2.873,692,2.674,693,2.674,694,2.593,695,2.873,696,2.766,697,2.873,735,3.002]],["keywords/91",[]],["title/92",[428,412.471,461,551.512,736,672.828,737,718.833]],["content/92",[]],["keywords/92",[]],["title/93",[7,224.61,617,463.223]],["content/93",[13,4.462,106,3.39,620,8.739,737,16.27]],["keywords/93",[]],["title/94",[133,488.722]],["content/94",[35,3.502,36,4.113,48,4.451,49,3.57,52,3.311,54,4.524,60,3.271,70,4.196,71,2.954,99,5.344,623,5.499,653,5.2,718,7.938,719,7.645,720,7.938]],["keywords/94",[]],["title/95",[428,484.695,736,790.642,738,844.701]],["content/95",[]],["keywords/95",[]],["title/96",[7,224.61,617,463.223]],["content/96",[13,4.279,106,3.251,428,8.952,736,14.603,738,15.601,739,17.117]],["keywords/96",[]],["title/97",[133,488.722]],["content/97",[35,3.502,36,4.113,48,4.451,49,3.57,52,3.311,54,4.524,60,3.271,70,4.196,71,2.954,99,5.344,623,5.499,653,5.2,718,7.938,719,7.645,720,7.938]],["keywords/97",[]],["title/98",[740,909.523,741,1024.007]],["content/98",[]],["keywords/98",[]],["title/99",[7,224.61,617,463.223]],["content/99",[7,3.353,13,4.193,106,3.185,175,8.898,620,8.211,740,13.578,741,15.287]],["keywords/99",[]],["title/100",[133,488.722]],["content/100",[35,3.502,36,4.113,48,4.451,49,3.57,52,3.311,54,4.524,60,3.271,70,4.196,71,2.954,99,5.344,623,5.499,653,5.2,718,7.938,719,7.645,720,7.938]],["keywords/100",[]],["title/101",[7,224.61,98,360.258]],["content/101",[]],["keywords/101",[]],["title/102",[13,231.678,42,256.091,742,926.774]],["content/102",[35,2.151,36,2.907,48,5.153,49,2.192,52,2.034,54,4.555,60,2.009,71,1.814,97,6.506,98,2.577,99,3.282,124,4.263,141,5.572,189,5.976,216,7.557,240,4.327,495,5.698,642,5.993,643,5.62,644,5.993,645,5.62,666,5.62,667,5.993,668,4.783,669,6.226,670,9.458,671,8.536,672,6.226,675,5.993,696,5.993,743,8.036,744,7.324,745,4.783,746,8.036,747,8.036,748,8.036]],["keywords/102",[]],["title/103",[47,484.695,749,506.638,750,844.701]],["content/103",[35,1.51,36,2.199,48,4.133,49,1.539,50,4.208,51,4.371,52,1.428,54,4.873,60,2.308,70,1.809,71,1.274,77,3.843,85,4.208,91,3.493,96,4.813,97,4.567,98,1.809,99,2.304,106,2.571,422,4.371,423,3.568,426,7.152,428,2.951,432,5.715,433,4.208,434,5.838,435,3.568,751,9.231,752,9.231,753,4.567,754,8.414,755,9.231,756,8.758,757,8.414,758,4.813,759,5.642,760,5.142,761,5.642,762,4.813,763,5.142,764,7.152,765,4.567,766,5.642,767,8.414,768,5.142,769,4.068,770,5.642,771,5.642]],["keywords/103",[]],["title/104",[53,648.082,750,844.701,772,750.264]],["content/104",[5,3.934,35,1.461,36,2.139,48,4.068,49,1.489,50,4.07,51,4.228,52,1.381,54,4.979,60,2.245,70,1.75,71,1.232,77,3.739,85,4.07,86,4.055,91,3.378,96,4.655,97,4.418,98,1.75,99,2.229,106,2.52,262,3.816,263,3.311,424,4.397,425,3.616,432,5.561,433,4.07,730,5.811,754,8.187,756,8.584,767,4.974,773,8.983,774,4.655,775,8.983,776,8.983,777,4.655,778,6.281,779,4.974,780,4.974,781,4.655,782,5.457,783,5.457]],["keywords/104",[]],["title/105",[784,1299.947]],["content/105",[]],["keywords/105",[]],["title/106",[7,224.61,617,463.223]],["content/106",[7,3.851,13,4.816,106,2.948,257,5.757,620,9.43,784,14.148,785,15.522,786,13.242]],["keywords/106",[]],["title/107",[133,488.722]],["content/107",[35,3.801,36,4.337,48,3.661,49,3.874,52,3.593,54,4.643,60,3.55,70,4.553,71,3.206,99,5.8,623,5.968]],["keywords/107",[]],["title/108",[787,1299.947]],["content/108",[]],["keywords/108",[]],["title/109",[7,224.61,617,463.223]],["content/109",[13,4.462,106,3.39,620,8.739,787,16.27]],["keywords/109",[]],["title/110",[133,488.722]],["content/110",[35,3.502,36,4.113,48,4.451,49,3.57,52,3.311,54,4.524,60,3.271,70,4.196,71,2.954,99,5.344,623,5.499,653,5.2,718,7.938,719,7.645,720,7.938]],["keywords/110",[]],["title/111",[424,698.222]],["content/111",[]],["keywords/111",[]],["title/112",[7,224.61,617,463.223]],["content/112",[7,3.494,13,4.369,106,3.319,424,8.555,620,8.555]],["keywords/112",[]],["title/113",[133,488.722]],["content/113",[13,2.906,35,3.111,36,3.798,48,4.111,49,3.171,52,2.942,54,4.489,60,4.896,70,3.727,71,2.625,99,4.748,424,5.691,623,4.885,653,4.619,718,7.052,719,6.792,720,7.052,788,9.41,789,7.052]],["keywords/113",[]],["title/114",[421,833.358]],["content/114",[]],["keywords/114",[]],["title/115",[7,224.61,617,463.223]],["content/115",[7,3.494,13,4.369,106,3.319,421,10.211,620,8.555]],["keywords/115",[]],["title/116",[133,488.722]],["content/116",[13,2.989,35,3.201,36,3.872,48,4.191,49,3.262,52,3.026,54,4.527,60,4.617,70,3.834,71,2.7,99,4.884,421,6.987,623,5.026,653,4.752,718,7.255,719,6.987,720,7.255,788,9.68]],["keywords/116",[]],["title/117",[424,550.01,790,710.535]],["content/117",[]],["keywords/117",[]],["title/118",[7,224.61,617,463.223]],["content/118",[7,3.353,13,4.193,106,3.185,424,8.211,620,8.211,790,10.607,791,15.287]],["keywords/118",[]],["title/119",[133,488.722]],["content/119",[35,3.502,36,4.113,48,4.451,49,3.57,52,3.311,54,4.524,60,3.271,70,4.196,71,2.954,99,5.344,623,5.499,653,5.2,718,7.938,719,7.645,720,7.938]],["keywords/119",[]],["title/120",[461,785.651,740,909.523]],["content/120",[]],["keywords/120",[]],["title/121",[7,224.61,617,463.223]],["content/121",[7,3.494,13,4.369,106,3.319,620,8.555,740,14.148]],["keywords/121",[]],["title/122",[133,488.722]],["content/122",[35,3.502,36,4.113,48,4.451,49,3.57,52,3.311,54,4.524,60,3.271,70,4.196,71,2.954,99,5.344,623,5.499,653,5.2,718,7.938,719,7.645,720,7.938]],["keywords/122",[]],["title/123",[428,587.582,749,614.183]],["content/123",[]],["keywords/123",[]],["title/124",[7,224.61,617,463.223]],["content/124",[7,3.494,13,4.369,106,3.319,428,9.14,749,9.554]],["keywords/124",[]],["title/125",[133,488.722]],["content/125",[35,3.801,36,4.337,48,3.661,49,3.874,52,3.593,54,4.643,60,3.55,70,4.553,71,3.206,99,5.8,623,5.968]],["keywords/125",[]],["title/126",[190,438.587,424,550.01]],["content/126",[]],["keywords/126",[]],["title/127",[7,224.61,617,463.223]],["content/127",[13,3.954,190,8.607,424,10.341,792,13.494,793,15.817]],["keywords/127",[]],["title/128",[133,488.722]],["content/128",[7,2.117,35,2.834,36,3.559,41,6.85,43,7.898,48,4.464,49,2.889,52,2.68,54,4.36,60,2.647,70,3.396,71,2.391,99,4.325,176,2.984,190,4.134,417,4.943,425,7.017,623,4.451,794,10.59,795,9.903,796,13.621,797,6.697,798,10.59,799,10.59,800,10.59,801,8.573]],["keywords/128",[]],["title/129",[802,1299.947]],["content/129",[]],["keywords/129",[]],["title/130",[7,224.61,617,463.223]],["content/130",[7,3.494,13,4.369,106,3.319,620,8.555,802,15.928]],["keywords/130",[]],["title/131",[133,488.722]],["content/131",[35,3.801,36,4.337,48,3.661,49,3.874,52,3.593,54,4.643,60,3.55,70,4.553,71,3.206,99,5.8,623,5.968]],["keywords/131",[]],["title/132",[788,1154.613]],["content/132",[]],["keywords/132",[]],["title/133",[7,224.61,617,463.223]],["content/133",[7,3.494,13,4.369,106,3.319,620,8.555,788,14.148]],["keywords/133",[]],["title/134",[133,488.722]],["content/134",[35,3.502,36,4.113,48,4.451,49,3.57,52,3.311,54,4.524,60,3.271,70,4.196,71,2.954,99,5.344,623,5.499,653,5.2,718,7.938,719,7.645,720,7.938]],["keywords/134",[]],["title/135",[803,1426.251]],["content/135",[]],["keywords/135",[]],["title/136",[13,151.89,16,453.144,294,384.264,494,424.887,804,470.741,805,518.35]],["content/136",[0,8.764,98,5.904,133,4.95,235,11.192,571,9.573,764,11.192,806,12.201,807,11.399,808,12.324,809,12.324,810,13.166,811,11.694]],["keywords/136",[]],["title/137",[789,865.306]],["content/137",[]],["keywords/137",[]],["title/138",[7,224.61,617,463.223]],["content/138",[7,3.494,13,4.369,106,3.319,620,8.555,789,10.603]],["keywords/138",[]],["title/139",[133,488.722]],["content/139",[35,3.155,36,3.834,48,4.726,49,3.216,52,2.983,54,4.367,60,2.947,70,3.78,71,2.662,99,4.815,623,4.954,653,4.685,660,6.347,718,7.152,719,6.888,720,7.152,790,7.455,812,11.788,813,10.057,814,8.016,815,11.788]],["keywords/139",[]],["title/140",[816,1299.947]],["content/140",[]],["keywords/140",[]],["title/141",[7,224.61,617,463.223]],["content/141",[7,3.494,13,4.369,263,10.603,620,8.555,816,15.928]],["keywords/141",[]],["title/142",[133,488.722]],["content/142",[35,3.801,36,4.337,48,3.661,49,3.874,52,3.593,54,4.643,60,3.55,70,4.553,71,3.206,99,5.8,623,5.968]],["keywords/142",[]],["title/143",[817,1299.947]],["content/143",[73,7.915,134,9.51,246,7.915,440,9.997,591,9.101,618,8.44,817,13.399,818,13.019,819,9.997,820,9.997,821,9.51,822,9.51,823,9.741]],["keywords/143",[]],["title/144",[824,1024.007,825,1024.007]],["content/144",[]],["keywords/144",[]],["title/145",[7,224.61,617,463.223]],["content/145",[7,3.422,13,4.279,106,3.251,620,8.38,824,15.601,825,15.601]],["keywords/145",[]],["title/146",[133,488.722]],["content/146",[29,2.093,35,0.993,36,1.541,48,5.063,49,1.012,52,0.938,54,4.522,60,2.152,61,1.189,70,1.189,71,1.461,98,1.189,99,1.515,106,1.229,113,1.693,124,1.967,125,4.706,141,3.929,153,7.505,154,3.588,155,4.293,157,1.375,176,1.823,181,1.793,189,3.168,208,1.838,216,4.006,240,1.997,242,2.399,412,1.29,446,2.059,462,2.954,463,2.129,495,3.021,623,1.558,642,2.766,643,2.593,644,2.766,645,2.593,646,5.013,647,2.167,648,2.873,649,2.873,650,2.296,651,2.873,652,2.873,653,2.571,654,2.873,655,2.693,656,2.873,657,2.873,658,2.345,659,2.873,660,1.997,661,5.013,662,2.873,663,2.873,664,3.594,665,2.873,666,2.593,667,2.766,668,2.207,669,2.873,670,5.013,671,4.525,672,2.873,673,2.674,674,2.766,675,2.766,676,2.873,677,2.873,678,2.766,679,2.399,680,4.665,681,2.457,682,2.766,683,4.4,684,2.873,685,5.013,686,2.873,687,2.766,688,2.873,689,2.873,690,2.873,691,2.873,692,2.674,693,2.674,694,2.593,695,2.873,696,2.766,697,2.873]],["keywords/146",[]],["title/147",[826,1216.752]],["content/147",[73,7.915,134,9.51,246,7.915,440,9.997,591,9.101,618,8.44,818,13.019,819,9.997,820,9.997,821,9.51,822,9.51,823,9.741,826,12.541]],["keywords/147",[]],["title/148",[827,1024.007,828,1024.007]],["content/148",[13,1.882,36,1.793,45,9.4,48,4.438,49,2.054,52,2.939,54,4.545,55,3.362,70,2.414,71,1.7,73,4.053,106,1.43,134,4.87,141,3.436,153,3.227,154,2.619,155,3.133,188,5.119,220,4.249,246,4.053,440,5.119,591,4.66,618,4.322,818,8.12,819,5.119,820,5.119,821,4.87,822,4.87,823,4.988,827,12.92,828,10.583,829,11.612,830,7.528,831,11.612,832,7.528,833,7.528,834,7.528,835,7.528,836,7.528,837,7.528,838,7.528,839,5.427,840,6.094,841,7.528]],["keywords/148",[]],["title/149",[108,837.901,226,763.987]],["content/149",[73,7.273,108,10.075,134,8.739,226,11.99,246,7.273,440,9.186,591,8.363,618,7.755,668,8.04,818,12.33,819,9.186,820,9.186,821,8.739,822,8.739,823,8.952,842,13.509,843,13.509]],["keywords/149",[]],["title/150",[226,763.987,844,763.987]],["content/150",[73,7.778,134,9.345,226,9.823,246,7.778,440,9.823,591,8.943,618,8.293,818,12.875,819,9.823,820,9.823,821,9.345,822,9.345,823,9.573,844,9.823]],["keywords/150",[]],["title/151",[7,137.224,8,416.436,421,401.061,764,531.789,845,625.611]],["content/151",[0,5.86,3,2.753,7,1.192,8,3.619,11,3.859,29,5.452,47,3.12,48,1.538,52,2.444,54,4.511,60,1.491,61,1.913,64,3.165,69,2.693,73,5.201,105,3.367,106,1.834,113,2.723,134,3.859,157,4.515,246,3.212,421,5.644,426,7.484,432,3.693,440,4.056,586,3.035,591,3.693,600,4.621,618,3.424,680,6.964,764,4.621,818,6.755,819,4.056,820,4.056,821,6.249,822,3.859,823,3.953,845,5.437,846,8.804,847,3.772,848,5.965,849,5.965,850,5.437,851,5.437,852,5.089,853,5.965,854,8.804,855,5.965,856,5.965,857,12.173,858,5.965,859,5.965,860,5.965,861,5.965,862,5.965,863,5.965,864,5.965,865,9.66,866,5.965,867,5.965,868,5.965,869,5.965,870,5.965,871,5.965]],["keywords/151",[]],["title/152",[822,922.62]],["content/152",[2,9.538,30,10.503,77,5.124,101,9.182,105,6.949,246,6.628,567,10.503,809,10.503,822,12.127,872,12.311,873,9.966,874,12.311,875,12.311,876,12.311,877,12.311,878,12.311,879,12.311,880,12.311,881,12.311,882,12.311,883,6.439,884,9.966,885,12.311]],["keywords/152",[]],["title/153",[61,360.258,886,634.177]],["content/153",[13,1.075,35,1.151,38,4.463,40,2.851,42,3.86,47,2.25,52,3.536,54,4.714,60,3.204,61,5.047,64,2.282,71,0.971,73,2.316,75,3.67,77,4.012,98,2.359,106,1.397,125,2.352,133,1.474,140,3.101,157,2.729,176,3.214,178,3.67,186,2.851,220,4.153,240,2.316,257,1.596,267,3.101,283,2.783,356,6.789,500,2.513,501,3.101,504,5.487,572,3.921,839,3.101,883,5.041,886,5.44,887,3.921,888,4.463,889,3.482,890,3.921,891,5.7,892,2.352,893,3.208,894,2.663,895,3.208,896,3.67,897,3.921,898,3.921,899,3.921,900,3.005,901,6.705,902,3.008,903,6.276,904,5.7,905,6.705,906,1.244,907,5.7,908,6.276,909,3.67,910,3.921,911,3.482,912,6.705,913,6.276,914,3.101,915,1.774,916,2.031]],["keywords/153",[]],["title/154",[113,512.798,917,909.523]],["content/154",[]],["keywords/154",[]],["title/155",[918,444.573]],["content/155",[2,9.399,13,4.104,36,2.889,49,3.31,73,6.532,106,3.118,246,6.532,281,9.048,368,8.484,369,7.394,918,6.215,919,7.256,920,7.108,921,16.417,922,12.132,923,7.36]],["keywords/155",[]],["title/156",[915,588.048]],["content/156",[13,2.431,15,4.948,36,3.934,42,4.564,47,5.086,55,4.344,61,3.118,71,3.729,73,5.236,101,7.252,102,7.252,106,2.67,117,7.534,118,6.444,119,7.011,133,3.332,208,4.821,229,8.863,232,8.296,234,6.613,257,5.216,264,7.872,924,7.252,925,8.296,926,8.863,927,9.725,928,9.725,929,9.725,930,9.725,931,9.725,932,9.725,933,6.291,934,7.872,935,9.725,936,8.863]],["keywords/156",[]],["title/157",[133,488.722]],["content/157",[20,4.913,35,2.513,36,2.236,42,4.473,48,4.589,49,1.571,52,3.82,54,4.258,60,2.347,70,3.01,71,2.683,98,3.01,106,2.257,117,7.273,118,6.221,119,6.768,133,1.973,164,5.812,234,3.916,257,2.136,283,3.725,293,4.027,883,3.012,894,3.565,900,4.854,937,12.492,938,13.706,939,13.706,940,6.384,941,5.759,942,5.759,943,5.759,944,4.152,945,7.6,946,3.916,947,3.916,948,3.916,949,5.759,950,11.884,951,5.759,952,5.759,953,5.759,954,5.759,955,4.662,956,3.494,957,4.913]],["keywords/157",[]],["title/158",[958,1299.947]],["content/158",[]],["keywords/158",[]],["title/159",[36,220.735,958,844.701,959,926.774]],["content/159",[7,1.452,11,7.308,13,2.824,36,1.73,105,4.101,106,1.38,113,3.316,163,6.622,185,4.595,194,5.081,203,6.198,226,4.94,246,3.912,284,4.7,577,6.198,722,6.622,809,6.198,823,4.814,873,9.145,884,9.145,886,4.101,960,7.265,961,6.622,962,6.622,963,7.265,964,7.265,965,6.622,966,9.637,967,7.265,968,6.622,969,6.198,970,7.265,971,6.622,972,12.633,973,7.265,974,7.265,975,6.622,976,7.265,977,7.265,978,12.633,979,7.265,980,7.265,981,11.297,982,6.622,983,7.265,984,6.622,985,7.265,986,11.297,987,6.622,988,7.265,989,6.622,990,7.265,991,7.265,992,6.198,993,6.622,994,7.265,995,7.265,996,7.265,997,7.265,998,7.265,999,7.265]],["keywords/159",[]],["title/160",[157,416.721,220,634.177]],["content/160",[4,3.605,13,1.57,42,4.889,47,3.284,54,4.017,55,2.805,61,3.228,74,3.153,88,4.865,157,7.629,176,4.745,220,8.138,222,5.084,232,5.357,235,4.865,242,4.062,272,5.357,273,6.108,428,3.284,504,4.683,577,5.357,708,4.527,808,5.357,847,3.971,888,7.646,889,5.084,893,4.683,894,6.233,914,9.086,924,4.683,948,4.27,956,3.81,1000,5.723,1001,4.683,1002,5.357,1003,5.723,1004,6.28,1005,6.28,1006,5.357,1007,6.28,1008,4.062,1009,4.683,1010,6.28,1011,4.527,1012,5.723,1013,6.28,1014,6.28,1015,4.391,1016,6.28]],["keywords/160",[]],["title/161",[596,1154.613]],["content/161",[10,4.042,11,5.407,15,4.253,36,1.991,40,5.539,41,5.407,42,4.647,61,2.68,67,10.016,77,3.479,89,6.486,106,1.587,119,6.026,133,2.864,157,3.1,176,2.355,257,4.664,267,6.026,282,7.131,493,7.131,513,7.131,573,7.131,576,5.845,586,4.253,596,10.181,840,6.767,847,5.286,883,8.796,888,5.071,894,5.175,915,3.446,1017,6.026,1018,8.359,1019,6.476,1020,7.618,1021,7.131,1022,8.359,1023,8.359,1024,12.576,1025,8.359,1026,8.359,1027,8.359,1028,6.767]],["keywords/161",[]],["title/162",[618,818.809]],["content/162",[]],["keywords/162",[]],["title/163",[847,710.535,888,681.627]],["content/163",[11,7.897,42,4.079,66,2.653,71,3.333,77,6.144,105,6.891,119,8.801,129,5.794,176,4.159,184,6.506,224,4.876,273,4.876,708,5.794,808,10.414,847,7.72,883,8.622,888,10.002,893,12.295,917,6.506,937,7.324,1029,6.856,1030,9.104,1031,6.506,1032,8.036,1033,8.036,1034,6.226,1035,7.324,1036,8.036,1037,8.036,1038,8.036,1039,8.036,1040,8.036,1041,8.036,1042,8.036,1043,8.036,1044,8.036,1045,5.62,1046,6.856]],["keywords/163",[]],["title/164",[1047,1299.947]],["content/164",[1,8.81,11,6.681,13,2.582,18,7.222,33,8.81,35,2.764,36,3.497,42,2.854,88,8.001,104,8.81,105,5.829,112,9.413,113,4.714,224,6.266,259,8.001,271,8.81,765,11.885,840,8.36,884,13.828,944,7.446,1047,9.413,1048,9.413,1049,8.001,1050,8.001,1051,10.327,1052,10.327,1053,14.681,1054,10.327,1055,10.327,1056,10.327,1057,10.327,1058,10.327,1059,10.327]],["keywords/164",[]],["title/165",[1060,1299.947]],["content/165",[36,3.382,64,7.533,129,10.238,185,8.98,585,7.645,607,9.185,823,9.409,884,11.495,1060,18.323,1061,12.942,1062,12.114,1063,12.942,1064,12.114,1065,14.2]],["keywords/165",[]],["title/166",[966,958.472,1066,1024.007]],["content/166",[7,1.59,13,1.988,18,3.298,36,1.123,66,1.557,194,7.213,201,2.662,203,6.785,208,2.338,224,2.861,242,3.05,294,2.982,460,4.023,494,3.298,585,4.282,602,5.734,607,3.05,786,4.023,820,3.207,883,2.466,924,3.517,966,14.562,968,4.298,969,4.023,971,9.401,972,14.227,975,7.249,984,13.369,987,9.401,989,9.401,992,6.785,993,7.249,1029,4.023,1061,4.298,1062,4.023,1063,7.249,1064,4.023,1066,4.298,1067,3.818,1068,4.298,1069,10.314,1070,10.314,1071,10.314,1072,4.716,1073,4.023,1074,10.314,1075,4.716,1076,4.716,1077,4.716,1078,4.716,1079,4.716,1080,4.716,1081,7.249,1082,4.716,1083,3.125,1084,4.298,1085,4.716,1086,4.716,1087,10.314,1088,4.716,1089,4.716,1090,4.298,1091,4.716,1092,14.668,1093,3.818,1094,4.716,1095,2.982,1096,7.66,1097,4.716,1098,4.716,1099,4.716,1100,4.716,1101,7.249,1102,4.716,1103,4.716,1104,4.716,1105,3.4,1106,4.298]],["keywords/166",[]],["title/167",[1107,1104.996]],["content/167",[3,3.38,4,4.205,5,3.086,10,2.07,13,2.4,21,3.651,25,3.316,30,3.651,36,2.708,42,1.183,44,3.316,47,3.831,48,1.103,54,3.6,60,1.07,67,2.377,71,1.654,73,2.304,89,2.207,99,2.992,105,2.416,106,1.391,133,1.466,134,2.768,143,5.462,157,2.717,179,2.27,234,2.91,235,3.316,242,2.768,243,2.993,246,3.943,250,2.91,257,1.587,267,3.086,283,2.768,294,2.707,296,3.901,356,4.359,378,2.207,412,1.489,440,2.91,494,2.993,504,3.192,510,2.547,591,2.649,601,3.901,608,3.465,618,2.457,673,3.086,818,5.122,819,2.91,820,2.91,821,2.768,822,2.768,823,2.836,883,3.831,906,1.238,911,5.929,925,3.651,948,2.91,1011,5.281,1028,3.465,1031,3.465,1095,2.707,1107,11.537,1108,4.28,1109,4.28,1110,3.465,1111,4.28,1112,3.651,1113,4.28,1114,7.324,1115,3.901,1116,4.738,1117,3.901,1118,6.766,1119,6.676,1120,4.28,1121,5.675,1122,4.28,1123,4.28,1124,4.28,1125,3.651,1126,5.929,1127,6.676,1128,4.28,1129,3.086,1130,4.28,1131,7.324,1132,4.28,1133,4.28,1134,7.438,1135,4.28,1136,3.901,1137,4.28,1138,7.324,1139,3.651,1140,4.28,1141,4.28,1142,3.651,1143,4.28,1144,3.901,1145,4.28,1146,4.28]],["keywords/167",[]],["title/168",[106,213.37,368,785.651]],["content/168",[7,1.561,13,2.986,36,3.454,37,6.663,38,4.738,42,2.158,48,3.079,49,2.131,54,4.195,59,6.323,61,3.83,70,2.504,71,2.697,98,3.83,106,2.755,133,2.676,142,3.872,154,2.718,164,4.835,176,2.2,181,3.777,182,4.337,189,5.847,234,5.311,257,2.897,293,5.462,351,5.631,368,11.359,412,2.718,616,5.052,936,7.118,940,5.311,1147,6.663,1148,7.118,1149,10.887,1150,10.887,1151,7.118,1152,6.323,1153,5.052,1154,7.81,1155,7.81,1156,4.27]],["keywords/168",[]],["title/169",[7,185.28,13,231.678,1157,668.192]],["content/169",[]],["keywords/169",[]],["title/170",[19,1216.752]],["content/170",[4,3.688,7,2.05,13,2.563,14,4.257,18,4.493,35,1.72,36,1.53,42,4.036,46,5.201,77,2.674,86,2.901,106,1.22,113,4.68,140,4.632,186,4.257,221,2.105,226,4.369,246,3.459,257,3.803,259,4.978,262,4.493,273,3.898,303,4.156,417,4.786,462,2.932,464,5.991,495,2.999,512,5.606,539,3.568,582,5.201,591,3.978,620,5.02,726,8.278,745,6.103,888,3.898,902,4.493,944,4.632,948,4.369,956,3.898,961,5.856,1017,4.632,1129,4.632,1156,3.512,1157,7.393,1158,5.481,1159,6.425,1160,7.647,1161,4.978,1162,5.481,1163,5.201,1164,9.226,1165,6.425,1166,6.425,1167,6.425,1168,5.856,1169,5.481,1170,4.257,1171,4.369,1172,4.632,1173,4.632,1174,6.425,1175,5.201,1176,6.425,1177,6.425,1178,5.481,1179,6.425,1180,4.978,1181,5.481,1182,5.481]],["keywords/170",[]],["title/171",[495,665.748]],["content/171",[13,3.457,14,9.163,35,2.543,86,7.36,98,3.047,113,4.337,120,7.362,240,7.445,512,5.195,539,11.379,590,6.645,900,3.881,1118,8.23,1129,6.851,1156,5.195,1160,7.087,1161,12.63,1164,6.851,1183,9.503,1184,8.661,1185,9.503,1186,9.503,1187,7.362,1188,9.503,1189,9.503,1190,9.503,1191,12.603,1192,9.503,1193,9.503,1194,9.503]],["keywords/171",[]],["title/172",[918,444.573]],["content/172",[7,3.353,13,4.193,369,6.665,918,5.228,919,7.413,920,7.262,1195,15.287]],["keywords/172",[]],["title/173",[906,412.531]],["content/173",[4,8.651,8,4.12,13,1.698,14,7.101,42,1.877,64,3.603,86,3.066,89,3.503,98,2.178,106,2.862,157,2.519,190,4.183,192,3.284,201,3.834,207,6.777,208,3.367,378,3.503,412,5.707,495,7.034,539,9.109,579,4.042,602,4.897,895,5.065,900,2.774,906,5.041,933,4.393,1116,4.393,1196,4.12,1197,6.932,1198,6.791,1199,6.791,1200,9.767,1201,6.791,1202,10.716,1203,6.791,1204,6.791,1205,5.794,1206,6.791,1207,5.794,1208,6.791,1209,6.19,1210,6.791,1211,6.791,1212,5.794,1213,5.794,1214,5.951,1215,8.302,1216,6.791,1217,6.791,1218,6.791]],["keywords/173",[]],["title/174",[900,458.894,915,463.223]],["content/174",[4,1.761,5,3.945,7,1.094,10,2.646,13,3.323,14,6.85,15,2.784,35,1.465,36,0.73,38,1.861,48,1.411,49,0.837,52,1.875,54,3.694,55,1.37,60,0.767,67,3.039,69,1.385,70,0.983,71,0.692,73,5.566,86,4.667,98,1.755,105,1.731,106,1.407,113,1.4,133,1.875,134,1.984,141,1.4,142,2.713,161,2.144,164,1.899,194,2.144,208,1.52,224,1.861,240,3.989,253,4.988,257,1.137,263,1.861,283,1.984,412,1.067,455,9.422,464,3.197,495,5.809,501,2.211,512,1.676,539,9.275,574,4.24,576,5.181,591,1.899,592,2.795,600,2.376,895,5.526,896,2.616,923,1.861,940,2.085,945,2.483,1031,2.483,1034,2.376,1129,5.342,1156,2.991,1160,2.287,1161,4.24,1164,2.211,1170,2.032,1171,2.085,1172,2.211,1173,3.945,1191,2.795,1195,2.795,1200,4.988,1207,2.616,1215,2.376,1219,3.067,1220,2.287,1221,2.616,1222,2.616,1223,2.483,1224,3.067,1225,2.376,1226,2.483,1227,3.067,1228,2.616,1229,3.067,1230,3.067,1231,3.067,1232,7.409,1233,3.067,1234,5.472,1235,7.409,1236,5.472,1237,5.472,1238,3.067,1239,3.067,1240,3.067,1241,3.067,1242,3.067,1243,3.067,1244,3.067,1245,3.067,1246,3.067,1247,3.067,1248,3.067,1249,3.067,1250,3.067,1251,3.067,1252,3.067,1253,3.067,1254,3.067,1255,3.067,1256,2.795,1257,3.067,1258,2.795,1259,3.067,1260,3.067,1261,3.067,1262,3.067,1263,3.067,1264,2.616,1265,3.067,1266,2.616,1267,3.067,1268,2.483,1269,5.472,1270,3.067,1271,3.067,1272,3.067,1273,3.067,1274,4.988,1275,3.067,1276,3.067,1277,3.067,1278,2.483,1279,3.067]],["keywords/174",[]],["title/175",[1280,1063.691]],["content/175",[5,7.011,7,2.811,8,5.9,13,2.431,42,2.687,86,4.39,89,5.016,113,4.439,130,8.296,176,2.74,250,6.613,257,3.607,417,6.564,510,5.787,512,5.316,590,6.8,602,7.011,786,8.296,1073,8.296,1095,6.15,1118,5.787,1164,7.011,1170,6.444,1171,6.613,1173,13.048,1187,10.894,1281,9.725,1282,8.863,1283,8.296,1284,9.725,1285,8.296,1286,7.872,1287,7.534,1288,9.725,1289,9.725,1290,9.725,1291,9.725]],["keywords/175",[]],["title/176",[918,444.573]],["content/176",[7,3.353,13,4.193,369,6.665,918,5.228,919,7.413,920,7.262,1292,15.287]],["keywords/176",[]],["title/177",[906,412.531]],["content/177",[4,8.576,8,4.971,13,2.048,14,5.43,42,2.264,69,5.593,77,3.411,86,3.699,89,4.226,106,2.353,177,6.348,190,4.836,192,3.962,208,4.062,412,5.794,497,5.182,539,4.551,579,4.877,906,5.172,933,5.301,1164,8.932,1173,5.908,1196,4.971,1197,8.014,1205,6.991,1212,6.991,1214,8.295,1215,11.573,1220,6.111,1280,11.14,1285,6.991,1287,9.598,1293,8.194,1294,8.194,1295,6.991,1296,11.292,1297,8.194]],["keywords/177",[]],["title/178",[900,458.894,915,463.223]],["content/178",[7,2.353,8,4.648,13,2.942,14,2.989,36,1.074,38,2.737,48,2.574,49,1.231,52,2.978,54,4.04,55,3.422,60,1.128,64,2.393,69,3.459,70,1.447,71,1.73,74,2.265,77,4.156,86,2.037,87,2.989,88,3.495,89,6.07,105,2.547,106,0.857,113,2.059,133,1.546,142,2.236,157,1.673,164,2.793,175,4.064,177,3.495,186,2.989,246,2.429,250,3.068,257,4.365,273,4.648,417,2.106,418,2.082,428,2.359,464,5.834,512,2.466,600,3.495,749,2.466,888,2.737,940,3.068,948,3.068,1028,3.652,1034,3.495,1046,3.849,1156,5.458,1162,6.536,1164,7.199,1170,2.989,1171,3.068,1172,9.505,1173,5.523,1184,4.112,1220,3.365,1221,3.849,1222,3.849,1223,3.652,1266,3.849,1280,11.397,1282,6.983,1285,3.849,1286,3.652,1287,10.214,1292,4.112,1295,3.849,1296,4.112,1298,4.511,1299,6.983,1300,4.511,1301,4.511,1302,3.849,1303,4.511,1304,4.511,1305,4.112,1306,4.112,1307,4.511]],["keywords/178",[]],["title/179",[745,848.816]],["content/179",[8,4.783,13,1.971,15,4.012,22,5.88,47,4.123,55,3.521,64,4.183,86,3.559,106,2.285,113,3.598,126,6.726,133,2.702,161,5.513,224,4.783,243,5.513,257,2.924,273,4.783,464,4.607,574,6.108,590,5.513,617,3.251,620,3.86,726,9.437,745,11.469,844,5.361,883,4.123,925,6.726,945,6.382,956,4.783,1062,10.264,1127,10.965,1152,6.382,1156,4.31,1157,5.684,1175,6.382,1178,6.726,1308,7.884,1309,7.186,1310,7.884,1311,7.186,1312,7.884,1313,10.965,1314,11.81,1315,7.884,1316,6.726,1317,7.884,1318,5.88,1319,7.884,1320,7.884]],["keywords/179",[]],["title/180",[918,444.573]],["content/180",[7,3.353,13,4.193,369,6.665,918,5.228,919,7.413,920,7.262,1321,15.287]],["keywords/180",[]],["title/181",[906,412.531]],["content/181",[4,8.679,8,5.071,42,2.31,69,3.774,86,3.774,89,4.311,106,2.871,113,3.815,157,3.1,185,5.286,190,4.909,192,6.081,208,4.144,412,6.275,512,4.569,539,4.642,579,4.975,745,11.277,906,5.481,933,5.407,1164,6.026,1196,5.071,1197,8.135,1205,7.131,1212,7.131,1214,6.984,1215,9.743,1220,6.234,1318,6.234,1322,8.359,1323,8.359,1324,8.359,1325,5.071,1326,8.359]],["keywords/181",[]],["title/182",[900,458.894,915,463.223]],["content/182",[4,2.995,7,1.043,8,3.166,10,2.523,13,2.164,36,1.243,38,3.166,47,2.729,48,2.231,49,1.423,52,2.807,54,4.504,55,2.331,60,1.304,64,2.768,70,1.673,71,1.178,74,2.62,105,2.945,106,0.991,161,3.649,164,3.23,190,3.379,201,2.945,224,3.166,240,2.809,257,1.935,262,3.649,271,4.451,273,3.166,412,1.816,464,3.049,585,2.809,726,7.176,745,10.185,772,4.224,844,3.548,847,3.3,940,3.548,1034,4.042,1046,4.451,1156,2.852,1175,4.224,1178,7.384,1220,3.891,1221,4.451,1222,4.451,1223,4.224,1256,7.889,1258,4.756,1314,7.007,1316,4.451,1318,3.891,1321,4.756,1327,5.218,1328,5.218,1329,8.656,1330,4.756,1331,5.218,1332,5.218,1333,4.451,1334,11.092,1335,5.218,1336,5.218,1337,5.218,1338,5.218,1339,5.218,1340,5.218,1341,5.218,1342,5.218,1343,5.218,1344,5.218,1345,5.218,1346,5.218,1347,4.756,1348,5.218,1349,4.756,1350,4.756]],["keywords/182",[]],["title/183",[1180,1104.996]],["content/183",[13,3.446,61,3.598,71,2.533,86,5.066,88,14.453,98,3.598,106,1.368,120,5.58,177,8.693,191,4.898,218,4.659,246,3.878,257,2.671,294,4.555,494,10.882,511,4.898,590,5.037,599,6.144,791,12.563,819,4.898,821,4.659,888,6.808,947,4.898,948,9.373,956,6.808,1020,10.227,1110,5.831,1134,5.58,1180,12.056,1181,6.144,1182,9.573,1351,7.202,1352,7.202,1353,7.202,1354,7.202,1355,7.202,1356,7.202,1357,5.372,1358,7.202,1359,7.202,1360,5.831,1361,6.565,1362,7.202,1363,7.258,1364,7.202]],["keywords/183",[]],["title/184",[918,444.573]],["content/184",[7,4.119,13,3.741,369,5.947,418,6.907,730,12.18,918,4.665,919,6.614,920,6.479,1365,14.965,1366,14.965]],["keywords/184",[]],["title/185",[906,412.531]],["content/185",[4,7.632,42,3.673,106,2.525,190,5.189,263,8.065,412,4.625,590,9.296,906,5.047,1156,7.267,1180,10.299,1196,8.065,1197,8.599,1367,12.116,1368,13.293,1369,13.293,1370,13.293,1371,13.293,1372,13.293,1373,12.116]],["keywords/185",[]],["title/186",[900,458.894,915,463.223]],["content/186",[7,1.977,13,2.472,36,2.355,38,6,48,3.669,49,1.675,52,3.602,54,4.85,55,4.417,60,2.472,61,3.171,70,1.969,71,1.386,91,3.802,98,3.171,106,1.166,144,11.315,157,2.278,178,5.239,179,3.258,181,2.969,182,3.41,273,6,501,4.427,781,5.239,1142,5.239,1223,4.971,1325,3.726,1367,9.013,1374,9.889,1375,6.141,1376,9.889,1377,6.141,1378,9.889,1379,6.141,1380,6.141,1381,6.141,1382,6.141,1383,6.141,1384,6.141,1385,6.141,1386,6.141,1387,4.971,1388,6.141]],["keywords/186",[]],["title/187",[1049,870.438,1050,870.438]],["content/187",[]],["keywords/187",[]],["title/188",[106,176.008,464,541.513,947,630.212]],["content/188",[4,3.964,13,3.801,14,8.889,15,3.513,36,1.644,40,4.575,42,4.85,46,5.589,52,1.747,54,4.24,55,3.084,60,1.726,67,6.028,69,4.901,70,2.214,71,1.559,73,3.717,98,3.481,106,1.311,162,5.89,257,4.975,273,4.189,464,4.034,495,5.067,539,3.834,602,4.978,883,3.611,947,4.695,1045,4.828,1157,7.826,1213,5.89,1228,5.89,1280,8.096,1287,8.41,1302,5.89,1333,5.89,1389,10.855,1390,6.904,1391,6.293,1392,5.349,1393,6.293,1394,6.904,1395,6.904,1396,6.293,1397,4.978,1398,6.904,1399,6.904,1400,6.904,1401,6.293]],["keywords/188",[]],["title/189",[61,252.894,243,551.512,267,568.625,886,445.18]],["content/189",[2,4.755,4,3.523,7,0.698,13,0.873,20,5.236,35,0.934,38,3.723,40,4.067,42,2.269,47,1.826,48,0.9,52,3.141,54,4.69,60,2.815,61,4.293,64,1.852,69,2.771,71,0.788,77,2.555,98,1.968,106,1.56,133,2.103,162,2.978,175,1.852,176,1.729,186,2.313,234,2.374,243,5.743,246,3.304,257,1.295,267,5.921,283,2.258,356,4.888,464,7.822,500,3.586,501,2.517,504,2.603,568,2.826,618,2.004,705,4.425,745,4.888,839,2.517,883,4.295,886,3.464,887,3.182,888,2.118,889,2.826,890,3.182,900,1.426,901,5.594,902,4.292,903,5.236,904,4.755,905,5.594,906,1.01,907,4.755,908,5.236,909,2.978,910,3.182,911,2.826,912,5.594,913,5.236,914,2.517,915,1.439,916,1.648,948,4.173,1050,2.704,1157,4.425,1170,2.313,1171,2.374,1213,2.978,1228,2.978,1280,4.577,1287,2.704,1302,2.978,1333,2.978,1350,3.182,1396,5.594,1401,3.182,1402,3.182,1403,2.978,1404,3.491,1405,3.491,1406,3.491,1407,3.182,1408,2.978,1409,3.491,1410,3.491,1411,3.491,1412,6.137,1413,3.491]],["keywords/189",[]],["title/190",[464,833.358]],["content/190",[73,7.915,134,9.51,246,7.915,440,9.997,464,8.59,591,9.101,618,8.44,818,13.019,819,9.997,820,9.997,821,9.51,822,9.51,823,9.741]],["keywords/190",[]],["title/191",[176,316.539,1414,1123.5]],["content/191",[]],["keywords/191",[]],["title/192",[13,197.156,133,270.249,257,292.53,734,672.828]],["content/192",[35,2.799,36,3.528,48,3.818,49,2.853,52,2.646,54,4.757,60,2.614,61,3.353,69,4.721,70,3.353,71,3.344,98,3.353,154,3.639,181,5.057,182,5.807,189,5.119,192,5.057,462,4.773,655,4.353,735,8.465,1415,12.636,1416,8.921,1417,10.457]],["keywords/192",[]],["title/193",[13,231.678,133,317.57,1418,926.774]],["content/193",[35,3.247,36,3.91,48,4.232,49,3.31,52,3.07,54,4.649,60,3.033,61,3.89,69,5.477,70,3.89,71,3.707,98,3.89,192,5.867,735,9.821,1415,14.005,1416,10.35]],["keywords/193",[]],["title/194",[13,280.856,77,467.65]],["content/194",[7,1.837,13,3.373,48,2.369,52,4.459,54,4.774,55,7.141,89,4.739,91,8.353,154,4.695,257,3.408,418,4.241,1182,7.839,1419,13.492,1420,13.492,1421,6.853,1422,9.188,1423,9.188,1424,5.811,1425,9.188,1426,9.188,1427,7.119,1428,9.188,1429,9.188,1430,9.188,1431,9.188]],["keywords/194",[]],["title/195",[778,997.361]],["content/195",[]],["keywords/195",[]],["title/196",[918,444.573]],["content/196",[7,2.839,42,3.924,106,2.697,369,7.989,418,6.553,774,12.114,778,9.93,918,6.267,919,6.276,920,7.885,923,8.615]],["keywords/196",[]],["title/197",[906,412.531]],["content/197",[3,4.261,7,2.342,13,1.41,15,2.871,34,5.494,67,3.133,77,3.843,86,5.29,87,3.739,89,2.91,113,2.575,142,2.797,175,4.898,176,2.601,190,4.574,192,4.464,201,5.211,207,3.568,208,4.576,257,2.093,356,8.887,378,4.761,412,6.144,417,2.633,418,2.604,435,3.568,497,3.568,500,5.394,512,3.084,579,3.358,586,4.697,607,3.65,749,3.084,778,3.945,795,3.739,797,7.41,886,3.185,892,3.084,906,1.632,1116,3.65,1118,3.358,1196,5.601,1214,5.127,1432,3.739,1433,11.716,1434,3.65,1435,3.739,1436,5.142,1437,7.253,1438,4.068,1439,4.068,1440,4.068,1441,4.208,1442,3.739,1443,3.945,1444,5.3,1445,3.945,1446,3.945,1447,3.945,1448,3.945,1449,6.455,1450,3.945,1451,3.836,1452,3.836,1453,3.568,1454,3.65,1455,5.642]],["keywords/197",[]],["title/198",[900,458.894,915,463.223]],["content/198",[5,6.552,35,2.432,36,2.165,48,3.45,49,2.479,52,3.387,53,6.355,54,4.888,60,2.272,61,2.914,71,2.052,154,3.162,176,3.771,179,4.821,181,4.395,182,5.047,262,6.355,263,5.514,655,3.783,756,5.879,774,7.753,778,9.359,779,8.283,916,4.291,1153,5.879,1424,5.748,1456,6.18,1457,5.626]],["keywords/198",[]],["title/199",[366,865.306]],["content/199",[7,3.942,74,8.096,417,7.526,418,7.441,778,11.275,1458,12.756,1459,9.782]],["keywords/199",[]],["title/200",[730,922.62]],["content/200",[]],["keywords/200",[]],["title/201",[918,444.573]],["content/201",[7,3.525,42,3.733,106,2.566,369,7.801,418,6.235,730,11.406,777,11.525,918,6.119,919,5.971,920,7.634,923,8.196,1460,13.509]],["keywords/201",[]],["title/202",[906,412.531]],["content/202",[3,4.261,7,2.342,13,1.41,15,2.871,34,5.494,67,3.133,77,3.843,86,5.29,87,3.739,89,2.91,113,2.575,142,2.797,175,4.898,176,2.601,190,4.574,192,4.464,201,5.211,207,3.568,208,4.576,257,2.093,356,8.887,378,4.761,412,6.144,417,2.633,418,2.604,435,3.568,497,3.568,500,5.394,512,3.084,579,3.358,586,4.697,607,3.65,730,3.65,749,3.084,795,3.739,797,7.41,886,3.185,892,3.084,906,1.632,1116,3.65,1118,3.358,1196,5.601,1214,5.127,1432,3.739,1434,3.65,1435,3.739,1437,7.253,1438,4.068,1439,4.068,1440,4.068,1441,4.208,1442,3.739,1443,3.945,1444,5.3,1445,3.945,1446,3.945,1447,3.945,1448,3.945,1449,6.455,1450,3.945,1451,3.836,1452,3.836,1453,3.568,1454,3.65,1461,11.716,1462,5.642,1463,5.642]],["keywords/202",[]],["title/203",[900,458.894,915,463.223]],["content/203",[35,2.459,36,2.188,48,3.478,49,2.507,52,3.414,53,6.425,54,4.87,60,2.297,61,2.946,71,2.075,86,4.148,154,3.197,176,3.801,179,4.875,181,4.443,182,5.103,655,3.825,730,8.728,756,5.944,777,7.839,781,7.839,916,4.339,1153,5.944,1424,5.811,1456,6.248,1457,5.688,1464,9.188,1465,9.188]],["keywords/203",[]],["title/204",[366,865.306]],["content/204",[7,3.942,74,8.096,417,7.526,418,7.441,730,10.43,1458,12.756,1459,9.782]],["keywords/204",[]],["title/205",[726,726.775,745,668.638]],["content/205",[]],["keywords/205",[]],["title/206",[918,444.573]],["content/206",[42,4.371,106,3.004,369,7.744,744,14.416,745,9.413,918,6.075,919,6.991,920,6.848]],["keywords/206",[]],["title/207",[906,412.531]],["content/207",[3,4.595,7,2.859,15,5.066,54,2.108,192,4.815,263,6.041,284,6.441,412,5.824,726,6.441,745,10.888,804,7.714,807,6.164,906,4.137,946,6.771,1015,6.963,1017,7.179,1314,14.811,1318,10.667,1357,7.426,1466,13.036,1467,9.075,1468,9.075,1469,9.957,1470,14.303,1471,14.303,1472,9.957,1473,9.957]],["keywords/207",[]],["title/208",[900,458.894,915,463.223]],["content/208",[35,2.73,36,2.43,52,4.293,54,4.678,60,2.55,71,2.303,149,8.702,745,6.071,916,4.817,1309,9.297,1314,8.258,1318,7.608,1457,6.315,1474,14.553,1475,10.201,1476,10.201,1477,10.201,1478,10.201,1479,10.201,1480,10.201,1481,10.201,1482,10.201,1483,10.201,1484,10.201,1485,10.201,1486,10.201,1487,10.201]],["keywords/208",[]],["title/209",[98,252.894,571,522.62,806,522.62,807,488.259]],["content/209",[]],["keywords/209",[]],["title/210",[918,444.573]],["content/210",[42,4.135,98,4.799,106,2.842,369,7.482,571,9.916,806,9.916,807,9.264,811,12.115,918,5.869,919,6.614,920,6.479]],["keywords/210",[]],["title/211",[906,412.531]],["content/211",[3,8.462,42,3.257,47,6.165,69,7.268,71,2.662,191,10.948,264,9.543,378,8.304,412,6.855,510,7.016,883,8.42,893,8.792,906,3.41,1015,8.244,1361,10.745,1488,10.057,1489,11.788,1490,11.788,1491,11.788]],["keywords/211",[]],["title/212",[900,458.894,915,463.223]],["content/212",[3,4.595,13,2.489,35,4.48,36,2.371,48,3.687,49,2.716,52,2.52,54,4.503,60,3.575,61,3.193,69,4.495,71,3.229,98,3.193,176,2.805,191,6.771,378,5.135,510,5.926,571,6.598,806,6.598,807,6.164,811,8.061,916,4.702,917,8.061,1488,8.494,1492,9.957,1493,9.957,1494,6.441,1495,6.441,1496,9.957]],["keywords/212",[]],["title/213",[157,416.721,495,524.429]],["content/213",[]],["keywords/213",[]],["title/214",[918,444.573]],["content/214",[42,4.371,106,3.004,369,7.744,495,7.383,643,11.061,918,6.075,919,6.991,920,6.848]],["keywords/214",[]],["title/215",[906,412.531]],["content/215",[11,9.51,59,11.901,106,2.792,118,9.741,157,5.453,190,5.739,191,9.997,257,5.453,412,5.115,495,6.862,539,8.164,1278,11.901,1363,9.51,1497,12.541]],["keywords/215",[]],["title/216",[900,458.894,915,463.223]],["content/216",[35,3.558,36,3.166,48,4.498,49,3.626,52,3.364,54,4.379,60,3.323,71,4.398,118,8.809,495,6.205,529,11.341,643,9.296,916,6.277,1498,13.293]],["keywords/216",[]],["title/217",[221,303.691,462,423.006,463,532.06]],["content/217",[]],["keywords/217",[]],["title/218",[918,444.573]],["content/218",[42,4.289,106,2.948,153,6.653,369,7.655,462,7.085,463,8.911,918,6.005,919,6.86,920,6.721]],["keywords/218",[]],["title/219",[906,412.531]],["content/219",[25,6.348,28,9.239,39,7.469,48,2.112,54,3.526,190,5.831,412,6.222,460,6.991,463,7.112,573,6.991,699,6.991,847,5.182,892,4.48,895,9.239,906,2.37,992,10.569,1015,5.73,1093,6.634,1107,6.348,1392,6.348,1499,14.204,1500,7.469,1501,8.194,1502,8.194,1503,8.194,1504,8.194,1505,8.194,1506,8.194,1507,11.292,1508,7.469,1509,6.634,1510,7.469,1511,8.194,1512,7.469,1513,12.743,1514,10.029,1515,8.194,1516,8.194,1517,6.111]],["keywords/219",[]],["title/220",[900,458.894,915,463.223]],["content/220",[35,2.237,36,2.995,48,4.336,49,2.28,52,2.115,54,4.692,60,2.09,61,2.68,70,2.68,71,1.887,153,5.39,154,2.908,181,4.042,182,4.642,462,5.74,463,4.799,623,3.513,647,4.884,1427,6.476,1499,10.728,1509,6.767,1518,7.131,1519,7.618,1520,7.618,1521,7.618,1522,7.131,1523,7.618,1524,7.131,1525,7.618,1526,7.618,1527,7.618,1528,7.131,1529,7.618,1530,7.618,1531,7.618,1532,7.618,1533,7.131]],["keywords/220",[]],["title/221",[106,213.37,461,785.651]],["content/221",[35,2.071,36,2.825,48,4.494,49,2.111,52,1.958,54,4.704,60,1.934,61,2.481,69,3.493,70,2.481,71,1.747,153,5.083,154,2.692,181,3.742,182,4.297,462,5.413,463,4.442,623,3.252,647,4.521,735,6.264,1415,10.118,1416,6.601,1427,5.995,1499,10.118,1509,6.264,1518,6.601,1519,7.052,1520,7.052,1521,7.052,1522,6.601,1523,7.052,1524,6.601,1525,7.052,1526,7.052,1527,7.052,1528,6.601,1529,7.052,1530,7.052,1531,7.052,1532,7.052,1533,6.601]],["keywords/221",[]],["title/222",[98,360.258,653,446.458]],["content/222",[]],["keywords/222",[]],["title/223",[918,444.573]],["content/223",[42,4.371,106,3.004,369,7.744,653,6.285,719,9.242,918,6.075,919,6.991,920,6.848]],["keywords/223",[]],["title/224",[906,412.531]],["content/224",[10,6.135,61,4.068,98,4.068,192,6.135,207,12.037,214,10.27,334,11.563,412,4.414,730,8.206,1110,10.27,1214,7.045,1215,9.829,1437,7.854,1534,12.686,1535,10.823,1536,10.823,1537,11.563,1538,12.686,1539,11.563,1540,12.686,1541,12.686]],["keywords/224",[]],["title/225",[900,458.894,915,463.223]],["content/225",[35,2.986,36,2.657,48,3.996,49,3.044,52,4.871,54,4.816,60,2.789,71,2.519,98,4.97,164,6.907,653,4.434,719,6.519,1357,13.284,1542,11.157,1543,11.157]],["keywords/225",[]],["title/226",[221,303.691,462,423.006,647,541.513]],["content/226",[]],["keywords/226",[]],["title/227",[918,444.573]],["content/227",[42,4.289,106,2.948,153,6.653,369,7.655,462,7.085,647,9.07,918,6.005,919,6.86,920,6.721]],["keywords/227",[]],["title/228",[906,412.531]],["content/228",[3,3.084,10,9.093,13,3.733,69,7.814,77,2.782,189,5.179,221,2.19,224,4.054,412,6.737,463,6.074,585,8.762,647,3.905,655,2.782,1011,4.818,1278,12.09,1283,5.701,1325,4.054,1437,9.245,1459,9.06,1544,6.091,1545,14.934,1546,8.565,1547,6.683,1548,6.683,1549,6.683,1550,6.683,1551,8.702,1552,6.683,1553,6.683,1554,9.643,1555,6.683,1556,6.683,1557,6.683,1558,6.683,1559,5.41,1560,5.701,1561,6.683]],["keywords/228",[]],["title/229",[900,458.894,915,463.223]],["content/229",[35,1.49,36,1.326,48,3.462,49,1.519,52,1.409,54,4.526,60,1.391,61,1.785,70,1.785,71,2.621,153,4.975,154,5.543,156,4.506,157,2.065,179,8.926,181,2.692,182,3.091,219,4.749,283,9.591,378,4.709,412,3.177,462,2.541,531,4.313,647,3.252,653,2.212,655,2.317,678,4.151,679,3.601,681,8.899,682,4.151,683,6.209,916,2.628,1153,3.601,1424,3.52,1456,3.785,1518,4.749,1522,4.749,1544,5.073,1562,4.151,1563,7.789,1564,5.566,1565,5.566,1566,5.566,1567,7.544,1568,5.566,1569,5.566,1570,5.566,1571,5.566,1572,9.13,1573,5.566,1574,9.13,1575,5.566,1576,5.566,1577,5.566]],["keywords/229",[]],["title/230",[221,368.156,650,695.545]],["content/230",[]],["keywords/230",[]],["title/231",[918,444.573]],["content/231",[42,4.371,106,3.004,153,6.78,369,7.744,650,9.792,918,6.075,919,6.991,920,6.848]],["keywords/231",[]],["title/232",[906,412.531]],["content/232",[3,2.987,10,5.659,13,0.927,35,0.993,36,0.883,48,2.219,49,1.012,52,0.938,54,3.392,55,1.656,60,1.618,61,2.075,64,7.338,69,2.921,71,2.328,77,4.293,106,0.704,129,2.674,153,2.774,154,1.29,156,3.002,157,1.375,176,1.823,181,1.793,192,7.092,220,2.093,250,2.522,291,11.873,356,2.207,378,1.913,412,5.767,510,2.207,588,3.163,650,5.33,655,5.352,705,4.665,906,5.179,916,1.751,934,11.198,944,2.674,946,4.4,1001,11.947,1030,10.316,1073,3.163,1152,3.002,1156,2.027,1172,2.674,1313,3.38,1325,2.25,1397,2.674,1451,4.4,1459,2.25,1495,2.399,1578,5.898,1579,3.708,1580,3.708,1581,3.708,1582,3.708,1583,3.708,1584,3.708,1585,3.708,1586,3.708,1587,3.708,1588,3.38,1589,3.708,1590,3.708,1591,3.38,1592,3.708,1593,3.708,1594,3.708,1595,2.766,1596,3.708,1597,3.163,1598,3.38,1599,3.708,1600,3.38,1601,3.38,1602,3.163,1603,3.38,1604,3.38]],["keywords/232",[]],["title/233",[900,458.894,915,463.223]],["content/233",[10,5.254,13,2.716,35,2.908,36,2.588,48,3.923,49,2.964,52,2.75,54,4.68,60,3.804,61,3.484,71,3.965,153,4.658,176,3.061,510,6.467,650,9.421,916,5.131,934,8.796,1001,8.104,1495,7.029,1600,9.904,1605,10.866]],["keywords/233",[]],["title/234",[98,297.177,221,303.691,653,368.282]],["content/234",[]],["keywords/234",[]],["title/235",[918,444.573]],["content/235",[42,4.289,98,4.977,106,2.948,153,6.653,369,7.655,653,6.168,918,6.005,919,6.86,920,6.721]],["keywords/235",[]],["title/236",[900,458.894,915,463.223]],["content/236",[35,3.155,36,2.808,48,4.15,49,3.216,52,2.983,54,4.367,60,2.947,61,3.78,71,2.662,98,3.78,153,5.053,157,4.373,653,4.685,708,11.607,916,5.567,1153,7.626,1437,7.298,1606,11.788,1607,11.788,1608,11.788,1609,11.788,1610,11.788]],["keywords/236",[]],["title/237",[221,303.691,653,368.282,655,385.763]],["content/237",[]],["keywords/237",[]],["title/238",[918,444.573]],["content/238",[42,4.289,106,2.948,153,6.653,369,7.655,653,6.168,655,6.461,918,6.005,919,6.86,920,6.721]],["keywords/238",[]],["title/239",[906,412.531]],["content/239",[31,7.999,61,3.439,69,4.843,89,5.532,106,2.037,189,5.251,190,4.187,257,5.593,303,6.939,412,6.068,462,4.896,653,4.262,655,7.875,906,5.044,1045,7.501,1197,6.939,1363,6.939,1434,6.939,1578,9.776,1611,14.877,1612,9.776,1613,9.151,1614,10.726,1615,10.726,1616,10.726]],["keywords/239",[]],["title/240",[900,458.894,915,463.223]],["content/240",[35,3.558,36,4.156,48,4.498,49,3.626,52,3.364,54,4.379,60,3.323,61,4.263,71,3.001,153,5.698,531,10.299,623,5.587,653,5.282,655,5.533,1562,9.914]],["keywords/240",[]],["title/241",[71,209.254,157,343.752,221,303.691]],["content/241",[]],["keywords/241",[]],["title/242",[918,444.573]],["content/242",[42,4.289,71,3.505,106,2.948,153,6.653,157,5.757,369,7.655,918,6.005,919,6.86,920,6.721]],["keywords/242",[]],["title/243",[906,412.531]],["content/243",[3,5.081,26,8.913,61,3.53,73,5.928,105,6.215,106,2.091,157,5.696,179,5.841,181,5.324,221,3.608,257,4.084,378,5.678,412,5.344,495,5.139,539,8.529,586,5.602,804,8.53,891,8.53,902,7.699,1084,10.035,1387,8.913,1497,9.392,1597,9.392,1617,9.392,1618,11.01,1619,10.035,1620,11.01,1621,11.01,1622,9.392,1623,9.392]],["keywords/243",[]],["title/244",[900,458.894,915,463.223]],["content/244",[13,2.55,35,2.73,36,2.43,48,3.752,49,2.783,52,2.581,54,4.532,55,4.556,60,3.638,71,4.416,153,4.372,154,3.549,156,8.258,157,3.784,176,2.874,181,4.933,219,8.702,510,6.071,916,4.817,1325,6.189,1495,6.599,1598,9.297,1601,9.297,1602,8.702,1603,9.297,1604,9.297]],["keywords/244",[]],["title/245",[141,359.974,154,274.424,155,328.281,221,258.438]],["content/245",[]],["keywords/245",[]],["title/246",[918,444.573]],["content/246",[42,4.211,106,2.894,141,6.955,153,6.532,154,5.302,155,6.343,369,7.567,918,5.936,919,6.735,920,6.598]],["keywords/246",[]],["title/247",[906,412.531]],["content/247",[69,5.642,106,2.373,189,6.117,257,4.635,378,6.445,412,5.827,462,5.703,586,6.358,906,4.844,924,9.319,1067,10.116,1083,8.28,1214,6.939,1325,7.581,1363,8.083,1624,15.264,1625,11.389,1626,12.496,1627,10.66,1628,10.66,1629,10.66]],["keywords/247",[]],["title/248",[900,458.894,915,463.223]],["content/248",[35,2.13,36,1.896,48,4.229,49,2.171,52,3.067,54,4.761,60,3.029,61,2.552,71,2.736,77,3.313,98,2.552,141,3.633,153,5.194,154,5.106,155,3.313,189,5.933,222,6.443,462,5.531,653,3.163,655,5.044,683,5.412,891,6.167,916,3.758,1225,9.389,1226,9.81,1424,5.034,1494,5.149,1495,5.149,1562,5.936,1630,7.254,1631,7.959,1632,7.254]],["keywords/248",[]],["title/249",[154,274.424,155,328.281,221,258.438,658,498.782]],["content/249",[]],["keywords/249",[]],["title/250",[918,444.573]],["content/250",[42,4.211,106,2.894,153,6.532,154,5.302,155,6.343,369,7.567,658,9.637,918,5.936,919,6.735,920,6.598]],["keywords/250",[]],["title/251",[906,412.531]],["content/251",[10,3.06,13,1.582,16,7.554,34,6.028,40,4.193,42,1.748,44,4.902,54,1.34,66,2.089,69,2.857,73,3.407,75,5.398,95,5.767,106,2.406,141,2.888,143,4.719,175,7.682,189,3.098,190,2.47,192,3.06,213,4.425,236,5.398,262,4.425,286,6.888,378,3.263,412,5.512,424,3.098,462,2.888,463,3.632,494,4.425,568,5.122,585,3.407,586,3.22,609,9.232,617,2.609,708,4.562,810,5.767,821,4.093,839,4.562,892,3.459,906,2.93,924,4.719,933,4.093,956,3.839,962,9.232,1067,5.122,1083,4.193,1119,5.767,1147,5.398,1214,3.514,1316,5.398,1325,3.839,1407,5.767,1627,5.398,1628,5.398,1629,5.398,1633,12.666,1634,6.327,1635,6.327,1636,6.327,1637,6.327,1638,6.327,1639,6.327,1640,6.327,1641,9.232,1642,6.327,1643,6.327,1644,6.327,1645,6.327,1646,6.327,1647,6.327]],["keywords/251",[]],["title/252",[900,458.894,915,463.223]],["content/252",[35,2.215,36,1.971,48,3.874,49,2.258,52,3.159,54,4.724,60,3.12,61,2.654,69,3.736,71,2.818,98,2.654,153,5.35,154,5.229,155,3.445,175,4.39,189,4.051,462,3.777,653,3.289,655,5.195,658,5.234,891,6.412,916,3.908,1225,6.412,1226,6.699,1494,5.353,1495,5.353,1562,6.172,1632,7.543,1648,8.276,1649,8.276,1650,7.543,1651,8.276,1652,8.276,1653,8.276,1654,8.276]],["keywords/252",[]],["title/253",[29,523.131,221,303.691,655,385.763]],["content/253",[]],["keywords/253",[]],["title/254",[918,444.573]],["content/254",[29,8.762,42,4.289,106,2.948,153,6.653,369,7.655,655,6.461,918,6.005,919,6.86,920,6.721]],["keywords/254",[]],["title/255",[906,412.531]],["content/255",[3,4.826,16,7.799,74,5.251,116,8.465,220,5.903,221,3.427,275,8.101,284,6.764,854,9.531,906,3.025,1001,7.799,1170,6.929,1181,8.921,1286,8.465,1508,9.531,1539,9.531,1655,10.457,1656,10.457,1657,10.457,1658,10.457,1659,9.531,1660,10.457,1661,10.457,1662,10.457,1663,8.921,1664,10.457,1665,10.457,1666,10.457,1667,10.457,1668,10.457,1669,10.457,1670,10.457,1671,10.457,1672,8.921,1673,10.457,1674,10.457,1675,10.457]],["keywords/255",[]],["title/256",[900,458.894,915,463.223]],["content/256",[29,7.504,35,3.558,36,3.166,48,4.498,49,3.626,52,3.364,54,4.379,60,3.323,61,4.263,71,3.94,153,5.698,536,11.341,655,5.533,916,6.277,1676,13.293]],["keywords/256",[]],["title/257",[176,261.112,221,303.691,660,498.986]],["content/257",[]],["keywords/257",[]],["title/258",[918,444.573]],["content/258",[42,4.289,106,2.948,153,6.653,176,4.373,369,7.655,660,8.357,918,6.005,919,6.86,920,6.721]],["keywords/258",[]],["title/259",[906,412.531]],["content/259",[86,7.141,106,3.004,176,4.456,192,7.649,412,5.504,906,4.575,1129,11.404,1677,15.817,1678,15.817,1679,13.494]],["keywords/259",[]],["title/260",[900,458.894,915,463.223]],["content/260",[35,1.979,36,1.761,48,2.952,49,2.017,52,3.547,54,4.765,60,2.863,61,2.371,71,1.67,98,2.371,153,3.169,154,2.573,176,4.447,181,3.576,182,4.106,660,3.981,916,3.492,1090,6.739,1129,5.331,1494,4.783,1495,4.783,1591,6.739,1680,7.394,1681,11.452,1682,11.452,1683,11.452,1684,11.452,1685,7.394,1686,7.394,1687,7.394,1688,7.394,1689,7.394,1690,7.394,1691,7.394,1692,7.394,1693,7.394,1694,7.394,1695,7.394,1696,6.739,1697,7.394,1698,7.394]],["keywords/260",[]],["title/261",[125,506.638,176,261.112,221,303.691]],["content/261",[]],["keywords/261",[]],["title/262",[918,444.573]],["content/262",[42,4.289,106,2.948,125,8.486,153,6.653,176,4.373,369,7.655,918,6.005,919,6.86,920,6.721]],["keywords/262",[]],["title/263",[263,865.306]],["content/263",[26,7.2,42,2.458,54,4.817,60,3.922,71,2.008,73,4.789,77,3.702,106,1.689,125,10.122,154,6.035,189,4.354,263,5.396,412,4.583,683,6.048,692,11.31,693,6.412,694,6.219,906,3.81,1278,7.2,1699,8.106,1700,8.106,1701,8.106,1702,8.106]],["keywords/263",[]],["title/264",[125,614.183,257,416.721]],["content/264",[3,4.595,13,2.489,61,5.367,73,5.361,74,5,106,1.891,120,7.714,125,7.819,154,4.977,176,5.155,189,4.874,190,7.142,192,6.916,257,5.305,462,4.545,510,5.926,586,5.066,655,5.953,1008,6.441,1009,7.426,1397,7.179,1703,8.494,1704,14.303,1705,15.256,1706,9.957]],["keywords/264",[]],["title/265",[189,453.702,462,423.006,647,541.513]],["content/265",[4,5.106,10,7.586,11,5.753,42,3.64,64,4.719,71,2.974,77,3.702,106,1.689,124,4.719,125,7.201,129,6.412,189,6.448,218,5.753,263,5.396,272,7.588,412,3.095,416,7.2,462,4.059,566,8.106,655,5.483,847,8.33,888,7.992,906,2.573,947,6.048,1015,9.211,1035,8.106,1187,6.891,1197,8.521,1209,8.106,1392,6.891,1397,6.412,1507,8.106,1702,8.106,1707,8.894,1708,8.894,1709,8.894,1710,8.106,1711,8.894,1712,8.894,1713,8.894]],["keywords/265",[]],["title/266",[900,458.894,915,463.223]],["content/266",[35,1.694,36,1.507,48,2.611,49,1.726,52,3.205,54,4.869,60,3.96,61,2.029,71,2.287,98,2.029,125,8.659,153,2.712,154,5.88,176,2.854,181,3.06,182,3.514,655,2.634,683,4.303,692,9.132,693,4.562,694,4.425,711,5.398,916,2.988,1153,4.093,1197,4.093,1456,4.303,1494,4.093,1495,4.093,1699,5.767,1700,5.767,1701,5.767,1714,6.327,1715,6.327,1716,6.327,1717,10.129,1718,6.327,1719,6.327,1720,6.327,1721,6.327,1722,6.327]],["keywords/266",[]],["title/267",[155,328.281,221,258.438,446,437.982,664,437.982]],["content/267",[]],["keywords/267",[]],["title/268",[918,444.573]],["content/268",[42,4.211,106,2.894,153,6.532,155,6.343,369,7.567,446,8.462,664,8.462,918,5.936,919,6.735,920,6.598]],["keywords/268",[]],["title/269",[906,412.531]],["content/269",[1560,16.274]],["keywords/269",[]],["title/270",[900,458.894,915,463.223]],["content/270",[13,2.2,35,2.355,36,2.096,48,3.369,49,2.401,52,3.307,54,4.775,60,3.267,61,2.822,71,2.951,89,6.74,98,4.191,153,3.772,154,4.547,155,3.663,173,7.507,176,2.479,446,4.887,510,5.237,664,4.887,900,3.594,916,4.155,1006,7.507,1494,5.693,1495,5.693,1723,8.8,1724,8.8,1725,8.021,1726,8.8,1727,8.021,1728,8.8]],["keywords/270",[]],["title/271",[154,274.424,155,328.281,221,258.438,664,437.982]],["content/271",[]],["keywords/271",[]],["title/272",[918,444.573]],["content/272",[42,4.211,106,2.894,153,6.532,154,5.302,155,6.343,369,7.567,664,8.462,918,5.936,919,6.735,920,6.598]],["keywords/272",[]],["title/273",[906,412.531]],["content/273",[69,6.411,189,6.951,378,7.324,412,6.337,462,6.481,906,4.107,924,10.59,1067,11.495,1083,9.409,1214,7.886,1325,8.615,1627,12.114,1628,12.114,1629,12.114,1729,14.2]],["keywords/273",[]],["title/274",[900,458.894,915,463.223]],["content/274",[13,1.899,35,2.033,36,1.809,48,3.675,49,2.072,52,2.959,54,4.649,60,2.923,61,2.436,71,2.64,98,3.749,153,5.012,154,5.571,155,3.162,173,6.481,176,2.14,189,3.719,462,3.467,510,4.521,653,3.019,655,4.867,664,6.494,900,3.103,916,3.587,1006,6.481,1494,4.914,1495,4.914,1562,5.665,1727,6.924,1730,7.596,1731,7.596,1732,7.596,1733,7.596,1734,6.924,1735,7.596,1736,7.596,1737,7.596,1738,7.596,1739,7.596,1740,7.596,1741,7.596]],["keywords/274",[]],["title/275",[218,599.516,240,498.986,495,432.601]],["content/275",[]],["keywords/275",[]],["title/276",[918,444.573]],["content/276",[42,4.289,106,2.948,240,8.357,369,7.655,495,7.246,645,10.855,918,6.005,919,6.86,920,6.721]],["keywords/276",[]],["title/277",[906,412.531]],["content/277",[7,1.705,13,2.132,35,2.283,48,2.199,54,2.704,64,4.525,89,4.399,102,6.361,106,1.62,129,6.15,133,4.375,175,4.525,190,4.984,191,5.8,192,7.4,257,6.302,284,5.518,378,4.399,412,5.912,446,4.737,495,3.982,496,7.277,539,8.498,576,5.965,946,5.8,1009,9.523,1129,6.15,1197,8.26,1214,4.737,1742,8.53,1743,8.53,1744,8.53,1745,7.774,1746,8.53,1747,8.53,1748,8.53,1749,8.53,1750,7.277,1751,8.53,1752,8.53]],["keywords/277",[]],["title/278",[900,458.894,915,463.223]],["content/278",[35,2.887,36,2.569,48,4.245,49,2.942,52,4.167,54,4.734,60,3.335,61,3.458,69,3.091,71,2.435,77,2.85,154,2.383,176,3.759,179,3.633,181,3.311,182,3.803,240,5.807,495,7.066,645,7.542,655,2.85,826,11.383,914,4.937,916,5.093,1153,4.429,1424,4.33,1456,4.656,1457,4.239,1753,13.343,1754,6.847,1755,6.847,1756,6.847,1757,6.847,1758,6.847]],["keywords/278",[]],["title/279",[42,310.452,1147,958.472]],["content/279",[]],["keywords/279",[]],["title/280",[1759,1426.251]],["content/280",[3,5.291,7,2.292,13,2.866,77,4.772,98,3.676,106,2.177,191,10.74,240,6.172,257,4.252,495,7.372,539,8.771,571,7.597,726,7.416,745,6.823,806,7.597,807,7.097,933,7.416,1488,9.78,1595,8.55,1760,11.464,1761,10.449,1762,11.464,1763,11.464,1764,11.464,1765,11.464,1766,11.464,1767,10.449]],["keywords/280",[]],["title/281",[77,467.65,792,958.472]],["content/281",[7,0.982,42,1.357,54,1.04,77,5.761,89,2.533,98,4.438,106,0.933,124,2.605,141,6.317,154,5.806,155,5.761,175,2.605,176,1.383,177,3.804,179,4.365,185,3.105,189,4.028,190,4.146,213,11.124,214,8.598,220,2.772,221,5.212,446,2.727,462,4.848,463,6.098,464,2.869,624,3.434,647,4.808,653,5.951,655,4.421,658,3.105,664,4.57,734,7.02,807,3.04,1017,3.54,1136,4.475,1152,3.975,1156,2.684,1172,10.797,1197,3.176,1295,4.189,1357,3.662,1360,3.975,1546,3.975,1551,3.254,1554,4.475,1588,4.475,1611,4.189,1650,4.475,1696,4.475,1725,4.475,1734,4.475,1768,4.91,1769,4.475,1770,4.91,1771,4.91,1772,4.91,1773,4.91,1774,4.91,1775,4.91,1776,4.91,1777,4.91,1778,4.91,1779,4.91,1780,4.91,1781,4.91,1782,4.91]],["keywords/281",[]],["title/282",[176,316.539,792,958.472]],["content/282",[3,5.179,29,6.334,40,4.773,71,1.626,104,6.144,125,3.937,157,5.113,176,5.71,186,4.773,190,2.812,192,3.483,220,4.066,221,6.113,222,9.084,260,5.831,273,6.808,462,5.121,463,6.442,624,5.037,650,6.947,655,6.477,660,7.422,765,5.831,789,4.37,790,4.555,814,4.898,1011,5.193,1049,5.58,1050,5.58,1513,6.144,1517,5.372,1679,6.144,1705,6.565,1783,7.202,1784,7.202,1785,7.202,1786,7.202,1787,7.202,1788,7.202,1789,7.202,1790,7.202,1791,7.202,1792,7.202,1793,6.565]],["keywords/282",[]],["title/283",[175,596.051,1444,645]],["content/283",[0,9.228,7,3.379,8,7.688,106,1.604,139,6.835,141,5.784,176,2.379,190,4.947,234,5.742,263,9.228,421,4.933,423,5.34,424,4.133,428,6.627,431,8.861,749,4.616,769,6.088,778,5.904,852,7.203,917,6.835,933,5.462,1363,9.839,1444,11.65,1451,5.742,1453,8.014,1794,8.443,1795,8.443,1796,6.835,1797,8.443,1798,8.443,1799,8.443,1800,8.443,1801,8.443,1802,8.443]],["keywords/283",[]],["title/284",[421,656.46,423,710.535]],["content/284",[]],["keywords/284",[]],["title/285",[918,444.573]],["content/285",[7,2.791,42,3.858,106,2.652,369,7.925,422,10.817,423,11.393,918,6.217,919,6.171,920,7.799,923,8.47,1803,11.911]],["keywords/285",[]],["title/286",[906,412.531]],["content/286",[3,2.943,7,2.037,13,1.594,34,3.794,67,3.541,77,4.242,86,4.601,87,4.225,89,3.288,113,2.91,142,3.161,175,5.407,176,2.871,190,4.97,192,3.083,201,5.753,207,4.032,208,5.052,356,9.463,378,5.256,412,5.533,421,5.955,423,9.197,500,3.725,512,3.485,579,3.794,586,3.244,607,4.124,769,4.597,797,4.032,886,3.599,892,3.485,906,2.948,1116,4.124,1118,3.794,1196,6.183,1214,5.66,1432,4.225,1434,4.124,1435,4.225,1441,4.755,1442,4.225,1443,4.458,1444,5.851,1445,4.458,1446,4.458,1447,4.458,1448,4.458,1449,7.127,1450,4.458,1452,4.335,1453,4.032,1454,4.124,1796,5.161,1803,5.439,1804,6.376,1805,6.376,1806,6.376,1807,6.376,1808,6.376,1809,6.376]],["keywords/286",[]],["title/287",[900,458.894,915,463.223]],["content/287",[35,2.307,36,2.053,48,3.317,49,2.351,52,3.256,54,4.719,60,2.154,61,2.763,71,1.946,154,2.999,176,3.625,179,4.572,181,4.167,182,4.786,201,4.865,422,6.677,423,5.45,655,3.587,680,6.213,756,5.575,757,11.728,758,7.352,760,7.855,762,7.352,763,7.855,764,6.677,765,6.977,916,4.069,1153,5.575,1424,5.45,1456,5.86,1457,5.335,1810,8.618,1811,8.618,1812,8.618,1813,8.618,1814,8.618]],["keywords/287",[]],["title/288",[366,865.306]],["content/288",[7,3.942,74,8.096,417,7.526,423,10.197,1458,12.756,1459,9.782,1803,13.755]],["keywords/288",[]],["title/289",[176,261.112,190,361.79,424,453.702]],["content/289",[]],["keywords/289",[]],["title/290",[918,444.573]],["content/290",[7,2.745,42,3.794,106,2.608,176,3.869,190,5.36,369,7.862,418,6.337,424,6.722,425,9.099,918,6.167,919,6.069,920,7.716,923,8.331]],["keywords/290",[]],["title/291",[906,412.531]],["content/291",[3,3.186,7,3.04,10,3.339,67,3.834,71,2.451,77,2.874,113,3.151,176,1.945,190,5.936,192,3.339,208,5.381,257,4.026,378,3.561,412,3.777,417,5.067,418,3.186,424,5.314,461,4.828,497,6.865,512,3.774,579,4.109,586,7.738,795,4.575,796,6.293,797,10.455,801,5.589,886,3.897,892,3.774,906,4.398,1021,5.89,1118,4.109,1196,6.586,1214,3.834,1360,5.589,1363,4.466,1397,4.978,1434,4.466,1435,4.575,1442,4.575,1453,4.366,1454,4.466,1458,4.466,1815,6.904,1816,12.226,1817,6.904,1818,6.293,1819,6.904,1820,6.293,1821,6.904,1822,6.904,1823,6.904,1824,6.904]],["keywords/291",[]],["title/292",[900,458.894,915,463.223]],["content/292",[]],["keywords/292",[]],["title/293",[461,997.361]],["content/293",[35,2.764,36,2.46,48,4.403,49,2.817,52,4.323,54,4.625,60,2.582,61,3.311,71,2.332,154,3.593,176,2.91,190,4.031,425,6.843,461,7.222,465,12.524,801,8.36,916,4.877,1457,6.393,1500,9.413,1825,13.381,1826,10.327,1827,9.413,1828,10.327,1829,10.327]],["keywords/293",[]],["title/294",[43,1063.691]],["content/294",[35,2.764,36,2.46,43,7.702,48,4.403,49,2.817,52,2.613,54,4.625,60,2.582,61,3.311,66,3.409,71,2.332,91,6.393,98,3.311,154,5.943,176,2.91,190,4.031,425,6.843,465,12.524,694,7.222,801,8.36,1457,6.393,1825,13.381,1827,9.413,1830,10.327]],["keywords/294",[]],["title/295",[366,865.306]],["content/295",[7,3.942,74,8.096,417,7.526,418,7.441,424,7.893,1458,12.756,1459,9.782]],["keywords/295",[]],["title/296",[428,587.582,749,614.183]],["content/296",[]],["keywords/296",[]],["title/297",[918,444.573]],["content/297",[7,2.745,42,3.794,106,2.608,369,7.862,418,6.337,428,9.32,749,7.507,753,11.116,918,6.167,919,6.069,920,7.716,923,8.331]],["keywords/297",[]],["title/298",[906,412.531]],["content/298",[3,3.488,7,1.972,13,1.11,15,2.259,34,5.872,64,2.355,67,2.465,74,2.229,77,3.145,86,5.258,87,5.008,89,3.898,106,1.874,113,2.026,142,2.201,161,3.104,175,4.009,176,2.129,185,2.808,186,2.942,190,3.852,192,3.654,201,5.569,207,2.808,208,3.746,257,1.647,356,8.456,378,5.089,412,4.944,417,2.072,418,2.049,428,2.322,435,2.808,497,2.808,500,4.415,512,2.427,579,2.642,586,3.845,607,2.872,749,7.768,772,3.594,795,2.942,797,6.24,851,4.046,886,2.506,892,2.427,906,3.369,933,2.872,947,3.019,956,2.693,1116,2.872,1118,2.642,1126,3.594,1196,4.585,1214,6.468,1266,3.787,1299,8.993,1363,2.872,1432,2.942,1434,2.872,1435,2.942,1438,3.201,1439,3.201,1440,3.201,1442,2.942,1443,3.104,1444,5.664,1445,3.104,1446,3.104,1447,3.104,1448,3.104,1449,5.284,1450,3.104,1452,3.019,1453,2.808,1454,2.872,1517,3.311,1831,4.439,1832,4.439,1833,4.439,1834,4.439,1835,4.439,1836,4.439,1837,4.439,1838,4.439,1839,4.439,1840,4.439,1841,4.439,1842,4.439,1843,4.439,1844,4.439]],["keywords/298",[]],["title/299",[900,458.894,915,463.223]],["content/299",[35,3.267,36,1.914,42,2.221,48,3.147,49,2.192,52,2.034,54,4.657,60,3.052,61,2.577,69,3.628,71,2.756,86,3.628,139,6.506,176,2.264,201,4.536,257,2.981,426,9.458,428,6.384,510,4.783,749,4.393,753,6.506,756,5.198,758,6.856,762,10.414,846,11.126,883,4.203,916,3.795,1029,6.856,1444,4.614,1457,4.975,1494,5.198,1495,5.198,1845,8.036,1846,12.207,1847,6.856,1848,8.036,1849,6.506,1850,8.036,1851,8.036]],["keywords/299",[]],["title/300",[366,865.306]],["content/300",[7,3.896,74,7.943,417,7.383,418,7.3,428,8.272,749,8.647,1458,12.607,1459,9.596]],["keywords/300",[]],["title/301",[424,698.222]],["content/301",[]],["keywords/301",[]],["title/302",[918,444.573]],["content/302",[7,2.839,42,3.924,106,2.697,369,7.989,418,6.553,424,6.951,425,9.409,918,6.267,919,6.276,920,7.885,923,8.615]],["keywords/302",[]],["title/303",[906,412.531]],["content/303",[3,5.165,7,2.237,13,1.321,15,2.689,34,5.206,67,2.934,77,3.641,86,5.053,87,3.501,89,2.725,106,1.003,113,2.412,142,2.619,175,4.64,176,3.153,190,4.369,192,4.23,201,4.937,207,3.342,208,4.336,218,3.418,257,1.96,286,3.593,295,4.094,356,8.579,378,4.511,412,5.986,417,2.466,418,2.439,424,2.587,435,3.342,497,3.342,500,6.539,512,2.889,579,3.145,586,4.451,607,3.418,749,2.889,795,3.501,797,7.078,804,4.094,886,2.983,892,2.889,906,1.528,1116,3.418,1118,3.145,1196,5.307,1214,4.857,1432,3.501,1434,3.418,1435,3.501,1436,4.816,1437,6.929,1438,3.81,1439,3.81,1440,3.81,1441,3.941,1442,3.501,1443,3.695,1444,5.022,1445,3.695,1446,3.695,1447,3.695,1448,3.695,1449,6.117,1450,3.695,1451,3.593,1452,3.593,1453,3.342,1454,3.418,1816,10.201,1852,5.284,1853,5.284,1854,5.284]],["keywords/303",[]],["title/304",[900,458.894,915,463.223]],["content/304",[35,2.459,36,2.188,48,3.478,49,2.507,52,3.414,53,6.425,54,4.841,60,2.297,61,2.946,69,4.148,71,2.075,86,4.148,154,3.197,176,3.801,179,4.875,181,4.443,182,5.103,424,6.605,425,6.089,655,3.825,756,5.944,780,8.375,916,4.339,1153,5.944,1424,5.811,1456,6.248,1457,5.688,1849,7.438,1855,9.188]],["keywords/304",[]],["title/305",[366,865.306]],["content/305",[7,3.942,74,8.096,417,7.526,418,7.441,424,7.893,1458,12.756,1459,9.782]],["keywords/305",[]],["title/306",[8,681.627,431,785.651]],["content/306",[]],["keywords/306",[]],["title/307",[918,444.573]],["content/307",[7,2.791,42,3.858,106,2.652,369,7.925,418,6.444,429,10.817,430,11.302,431,9.763,918,6.217,919,6.171,920,7.799,923,8.47]],["keywords/307",[]],["title/308",[906,412.531]],["content/308",[3,4.261,7,2.342,13,1.41,15,2.871,34,5.494,67,3.133,77,3.843,86,5.29,87,3.739,89,2.91,113,2.575,142,2.797,175,4.898,176,2.601,190,4.574,192,4.464,201,5.211,207,3.568,208,4.576,257,2.093,356,8.887,378,4.761,412,6.144,417,2.633,418,2.604,434,3.568,435,3.568,497,3.568,500,5.394,512,3.084,579,3.358,586,4.697,607,3.65,749,3.084,795,3.739,797,7.41,886,3.185,892,3.084,906,1.632,1116,3.65,1118,3.358,1196,5.601,1214,5.127,1432,3.739,1434,3.65,1435,3.739,1437,7.253,1438,4.068,1439,4.068,1440,4.068,1441,4.208,1442,3.739,1443,3.945,1444,5.3,1445,3.945,1446,3.945,1447,3.945,1448,3.945,1449,6.455,1450,3.945,1451,3.836,1452,3.836,1453,3.568,1454,3.65,1856,11.716,1857,5.642,1858,5.642]],["keywords/308",[]],["title/309",[900,458.894,915,463.223]],["content/309",[35,2.515,36,2.238,48,3.535,49,2.563,52,3.471,54,4.858,60,2.349,61,3.013,71,2.121,154,3.269,176,3.864,179,4.985,181,4.543,182,5.218,429,10.625,430,7.606,431,6.57,655,3.911,756,6.078,916,4.437,933,6.078,1153,6.078,1220,7.007,1424,5.942,1456,6.389,1457,5.817,1859,9.396]],["keywords/309",[]],["title/310",[366,865.306]],["content/310",[7,3.942,74,8.096,417,7.526,418,7.441,429,12.491,1458,12.756,1459,9.782]],["keywords/310",[]],["title/311",[660,424.632,789,478.489,790,498.782,814,536.304]],["content/311",[]],["keywords/311",[]],["title/312",[918,444.573]],["content/312",[7,2.575,42,3.56,54,2.728,106,2.447,189,6.306,208,6.386,369,7.621,418,5.945,660,6.936,789,7.816,790,8.147,813,10.99,814,8.76,918,5.978,919,5.694,920,7.399,923,7.816]],["keywords/312",[]],["title/313",[906,412.531]],["content/313",[143,11.796,257,7.229,412,5.504,495,7.383,906,4.575,948,10.756,1011,11.404,1357,11.796,1497,13.494]],["keywords/313",[]],["title/314",[900,458.894,915,463.223]],["content/314",[35,2.665,36,2.371,48,3.687,49,2.716,52,4.236,54,4.585,60,3.575,61,4.586,70,3.193,71,2.248,98,3.193,118,6.598,143,7.426,164,6.164,179,5.282,660,5.361,790,6.297,813,8.494,814,6.771,1156,5.443,1357,10.667,1860,9.957,1861,9.957,1862,9.957,1863,9.957,1864,9.957,1865,9.957]],["keywords/314",[]],["title/315",[48,367.678]],["content/315",[13,3.124,15,6.358,25,9.681,64,6.629,106,2.373,157,4.635,158,8.28,185,7.903,220,7.053,608,10.116,790,7.903,806,8.28,814,8.497,1012,11.389,1403,10.66,1408,10.66,1761,11.389,1866,12.496,1867,12.496,1868,16.747,1869,11.389,1870,11.389,1871,12.496]],["keywords/315",[]],["title/316",[434,902.004]],["content/316",[]],["keywords/316",[]],["title/317",[918,444.573]],["content/317",[7,2.839,42,3.924,106,2.697,369,7.989,418,6.553,434,8.98,435,8.98,918,6.267,919,6.276,920,7.885,923,8.615]],["keywords/317",[]],["title/318",[906,412.531]],["content/318",[3,2.622,7,2.353,13,1.42,15,2.89,28,4.236,29,3.206,34,3.38,67,3.154,77,3.864,86,4.191,87,3.764,89,2.93,113,2.593,131,4.846,142,2.816,175,4.925,176,2.615,190,4.595,192,2.747,201,5.24,207,3.592,208,4.602,257,2.107,356,8.919,378,4.788,412,5.214,417,2.651,418,2.622,434,3.592,497,3.592,500,3.319,512,3.105,576,3.972,579,3.38,585,3.058,586,4.723,607,3.674,617,2.342,795,3.764,797,7.445,886,3.206,892,3.105,906,3.405,1049,4.401,1050,4.401,1116,3.674,1118,3.38,1196,5.632,1214,5.155,1408,4.846,1432,3.764,1434,3.674,1435,3.764,1440,4.095,1441,4.236,1442,3.764,1443,3.972,1444,5.329,1445,3.972,1446,3.972,1447,3.972,1448,3.972,1449,6.491,1450,3.972,1451,3.863,1452,3.863,1453,3.592,1454,3.674,1818,5.177,1872,11.772,1873,5.68,1874,5.68,1875,5.68,1876,5.177]],["keywords/318",[]],["title/319",[900,458.894,915,463.223]],["content/319",[35,2.487,36,2.213,48,3.507,49,2.535,52,3.442,54,4.878,60,2.323,61,2.979,71,2.098,154,3.233,176,3.832,179,4.929,181,4.493,182,5.16,434,8.602,435,5.876,655,3.867,756,6.01,768,8.468,906,2.687,916,4.387,1153,6.01,1424,5.876,1456,6.318,1457,5.752,1877,9.291,1878,9.291]],["keywords/319",[]],["title/320",[366,865.306]],["content/320",[7,3.942,74,8.096,417,7.526,418,7.441,434,10.197,1458,12.756,1459,9.782]],["keywords/320",[]],["title/321",[42,256.091,1879,926.774,1880,926.774]],["content/321",[]],["keywords/321",[]],["title/322",[1083,614.132,1881,750.264,1882,844.701]],["content/322",[0,2.665,7,2.595,13,3.244,14,6.487,35,2.004,36,1.046,42,4.581,47,2.297,71,0.992,98,4.162,105,2.479,106,0.834,124,3.973,142,2.178,186,2.911,221,1.439,246,2.365,257,2.778,263,2.665,273,2.665,278,4.003,300,4.844,421,4.376,446,4.159,493,6.389,495,2.05,511,2.987,539,7.846,582,6.063,586,2.235,603,4.003,605,6.826,616,2.841,618,2.522,629,2.614,636,3.072,705,5.399,804,3.403,806,2.911,850,4.003,883,2.297,895,5.585,897,4.003,902,3.072,1030,3.276,1121,5.802,1144,4.003,1157,3.167,1158,3.747,1180,5.802,1264,3.747,1280,3.276,1286,3.556,1360,3.556,1510,4.003,1612,4.003,1617,3.747,1679,3.747,1883,4.392,1884,4.392,1885,4.392,1886,4.392,1887,4.392,1888,9.789,1889,4.392,1890,4.392,1891,4.392,1892,4.392,1893,4.392,1894,4.392,1895,4.392,1896,7.489,1897,4.392,1898,10.541,1899,6.826,1900,6.826,1901,6.826,1902,7.489,1903,7.489,1904,7.489,1905,4.392,1906,4.392,1907,4.392,1908,4.392,1909,4.392,1910,4.392,1911,7.489,1912,4.003,1913,4.392,1914,6.826,1915,4.392,1916,4.392,1917,4.392]],["keywords/322",[]],["title/323",[1083,614.132,1881,750.264,1918,790.642]],["content/323",[7,3.509,13,3.801,42,1.908,64,3.663,71,1.559,86,3.117,224,4.189,246,3.717,257,5.64,273,6.586,303,4.466,368,4.828,428,5.677,464,7.838,495,3.223,500,4.034,539,7.449,620,3.38,726,4.466,730,4.466,745,7.983,749,3.774,778,4.828,852,5.89,895,5.149,947,4.695,957,5.89,1017,4.978,1031,5.589,1156,5.934,1157,4.978,1161,8.41,1162,5.89,1163,8.788,1170,4.575,1171,4.695,1173,7.826,1175,10.859,1187,5.349,1347,6.293,1363,9.837,1466,6.293,1869,6.293,1919,6.904,1920,6.904,1921,6.904,1922,6.904,1923,6.904,1924,6.904,1925,6.904]],["keywords/323",[]],["title/324",[1083,744.494,1926,837.901]],["content/324",[0,4.239,5,2.921,7,1.397,13,2.303,16,3.021,36,2.61,42,4.743,43,5.21,54,0.858,56,3.456,61,2.24,71,0.915,77,1.686,79,3.456,98,2.954,102,3.021,106,1.327,107,3.456,108,3.021,109,3.279,123,5.413,124,4.887,125,3.819,141,4.205,154,2.431,155,1.686,157,1.502,175,2.149,176,2.595,182,2.25,186,2.684,189,1.983,190,1.581,213,2.833,214,5.656,221,2.289,257,2.591,273,2.458,280,3.692,286,2.755,410,5.21,424,1.983,428,2.119,464,2.367,495,1.891,511,2.755,539,3.88,582,3.279,591,2.508,618,4.011,620,1.983,668,2.411,721,3.456,769,2.921,789,2.458,797,2.562,847,2.562,899,3.692,1017,2.921,1028,3.279,1112,3.456,1158,3.456,1168,3.692,1170,2.684,1171,2.755,1173,5.037,1283,3.456,1387,3.279,1393,3.692,1444,2.326,1454,4.519,1467,3.692,1512,3.692,1536,3.456,1663,3.456,1710,3.692,1767,3.692,1796,3.279,1898,6.368,1899,3.692,1900,3.692,1901,3.692,1912,6.368,1914,3.692,1927,6.986,1928,4.051,1929,4.051,1930,4.051,1931,4.051,1932,4.051,1933,4.051,1934,4.051,1935,3.456,1936,4.051,1937,4.051,1938,4.051,1939,4.051,1940,4.051,1941,4.051,1942,4.051,1943,6.986,1944,4.051,1945,4.051,1946,4.051,1947,4.051,1948,4.051,1949,4.051,1950,4.051,1951,4.051,1952,4.051,1953,4.051,1954,4.051,1955,4.051,1956,4.051,1957,4.051,1958,4.051,1959,4.051,1960,3.692,1961,4.051,1962,4.051]],["keywords/324",[]],["title/325",[432,882.975]],["content/325",[]],["keywords/325",[]],["title/326",[918,444.573]],["content/326",[7,2.839,42,3.924,106,2.697,369,7.989,418,6.553,432,8.791,433,10.59,918,6.267,919,6.276,920,7.885,923,8.615]],["keywords/326",[]],["title/327",[906,412.531]],["content/327",[3,3.761,7,2.466,13,1.213,15,2.469,34,4.849,67,2.695,77,4.384,86,4.755,87,3.216,89,2.503,113,2.215,142,2.406,175,4.323,176,2.296,189,2.376,190,4.111,192,3.94,201,4.599,207,3.069,208,5.221,257,1.8,281,3.619,356,8.183,378,4.202,412,4.784,417,2.265,418,2.24,432,3.004,435,3.069,497,3.069,500,4.761,512,2.653,574,3.76,579,2.888,586,4.146,607,3.139,769,5.875,795,3.216,797,3.069,886,2.739,892,2.653,906,3.568,1116,3.139,1118,2.888,1170,5.399,1171,5.541,1172,3.499,1196,4.943,1214,4.525,1363,5.271,1432,3.216,1434,3.139,1435,3.216,1438,3.499,1439,3.499,1440,3.499,1442,3.216,1443,3.394,1444,4.678,1445,3.394,1446,3.394,1447,3.394,1448,3.394,1449,5.698,1450,3.394,1452,3.3,1453,3.069,1454,3.139,1563,4.14,1796,6.596,1847,4.14,1963,10.532,1964,4.853,1965,4.853,1966,4.853,1967,4.853,1968,4.853,1969,4.853,1970,4.853,1971,4.853,1972,4.853,1973,4.853,1974,4.853,1975,4.423,1976,4.853,1977,4.853,1978,4.853]],["keywords/327",[]],["title/328",[900,458.894,915,463.223]],["content/328",[35,2.089,36,1.859,42,1.274,48,3.442,49,2.129,50,5.821,51,3.573,52,2.568,54,4.843,60,2.984,61,2.503,64,6.334,69,2.082,71,2.695,77,3.249,85,3.439,86,3.524,90,3.934,91,2.855,106,1.927,175,4.141,190,3.047,412,4.154,432,9.561,433,5.821,446,4.334,602,5.627,749,2.521,756,6.564,907,6.047,916,3.685,945,6.318,1126,3.733,1444,2.647,1849,3.733,1979,10.147,1980,10.147,1981,7.805,1982,10.147,1983,7.805,1984,7.805,1985,3.934,1986,4.611,1987,4.611,1988,4.611,1989,4.611]],["keywords/328",[]],["title/329",[366,865.306]],["content/329",[7,3.942,74,8.096,417,7.526,418,7.441,432,9.982,1458,12.756,1459,9.782]],["keywords/329",[]],["title/330",[668,848.816]],["content/330",[]],["keywords/330",[]],["title/331",[918,444.573]],["content/331",[42,4.455,106,3.062,369,7.836,918,6.147,919,7.126,920,6.981,1990,14.695]],["keywords/331",[]],["title/332",[906,412.531]],["content/332",[3,5.519,40,7.924,61,3.834,69,5.399,98,6.355,190,6.346,191,8.131,226,8.131,257,6.03,293,8.362,378,6.167,410,8.918,412,4.161,668,9.675,873,9.68,888,7.255,902,8.362,1000,10.899,1197,7.735,1363,7.735,1991,10.899]],["keywords/332",[]],["title/333",[900,458.894,915,463.223]],["content/333",[35,2.871,36,2.555,52,5.045,54,4.825,60,3.77,69,4.843,71,2.422,98,4.835,149,9.151,668,6.384,1991,13.744,1992,10.726,1993,10.726,1994,10.726,1995,10.726,1996,10.726,1997,10.726]],["keywords/333",[]],["title/334",[141,359.974,154,274.424,155,328.281,1998,536.304]],["content/334",[]],["keywords/334",[]],["title/335",[918,444.573]],["content/335",[42,4.289,106,2.948,141,7.085,154,5.401,155,6.461,369,7.655,420,10.286,918,6.005,920,6.721]],["keywords/335",[]],["title/336",[906,412.531]],["content/336",[106,3.004,154,5.504,257,5.867,412,5.504,586,8.048,1363,10.232,1437,9.792,1624,17.763,1625,14.416]],["keywords/336",[]],["title/337",[900,458.894,915,463.223]],["content/337",[36,3.91,48,4.797,49,3.31,52,3.07,54,3.94,60,3.033,61,3.89,70,3.89,71,2.739,141,5.537,154,4.221,155,5.05,176,3.418,420,10.879,623,5.099,626,11.057,627,10.35,639,11.057,640,10.35,1999,12.132]],["keywords/337",[]],["title/338",[176,316.539,1998,763.987]],["content/338",[]],["keywords/338",[]],["title/339",[918,444.573]],["content/339",[7,2.791,42,3.858,106,2.652,176,3.934,369,7.925,418,6.444,419,10.817,420,9.252,918,6.217,919,6.171,920,7.799,923,8.47]],["keywords/339",[]],["title/340",[906,412.531]],["content/340",[3,7.784,7,2.756,13,1.8,15,3.665,34,4.286,67,4,77,2.998,86,3.252,106,1.368,113,3.287,176,2.029,190,4.38,192,3.483,208,3.571,257,2.671,378,3.715,412,5.869,417,3.362,418,3.324,419,5.58,435,4.555,497,4.555,500,4.208,512,3.937,579,4.286,586,5.709,749,3.937,795,4.773,797,8.717,886,4.066,888,4.37,892,3.937,906,2.083,1021,6.144,1118,4.286,1196,6.808,1214,4,1268,5.831,1432,4.773,1434,4.659,1435,4.773,1437,8.534,1438,5.193,1439,5.193,1442,4.773,1453,4.555,1454,4.659,1820,6.565,2000,11.221,2001,7.202,2002,7.202,2003,7.202,2004,7.202,2005,7.202,2006,7.202]],["keywords/340",[]],["title/341",[900,458.894,915,463.223]],["content/341",[]],["keywords/341",[]],["title/342",[142,556.967,616,726.775]],["content/342",[35,3.616,36,3.217,48,4.546,49,3.685,52,3.419,54,4.157,60,3.377,61,4.332,70,4.332,71,3.05,176,3.806,179,7.167,420,8.952,916,6.379,2007,12.312,2008,13.509]],["keywords/342",[]],["title/343",[250,969.86]],["content/343",[35,2.986,36,2.657,48,3.996,49,3.044,52,2.823,54,4.816,60,2.789,61,3.578,70,3.578,71,2.519,175,5.919,176,3.143,179,5.919,420,7.393,916,5.268,1457,6.907,1793,10.169,1847,9.518,2007,14.128,2009,11.157]],["keywords/343",[]],["title/344",[366,865.306]],["content/344",[7,3.942,74,8.096,417,7.526,418,7.441,419,12.491,1458,12.756,1459,9.782]],["keywords/344",[]],["title/345",[221,368.156,629,668.638]],["content/345",[]],["keywords/345",[]],["title/346",[918,444.573]],["content/346",[42,4.371,106,3.004,153,6.78,369,7.744,629,9.413,918,6.075,919,6.991,920,6.848]],["keywords/346",[]],["title/347",[906,412.531]],["content/347",[0,4.224,3,5.043,6,5.939,7,1.392,35,1.863,42,4.867,54,1.474,67,3.866,71,1.572,106,2.075,113,3.178,142,3.451,157,2.582,164,6.764,190,2.718,192,5.284,208,8.228,220,6.168,224,4.224,257,4.053,281,5.192,291,5.636,295,5.394,303,4.503,446,6.068,501,5.019,510,4.143,583,5.636,586,3.542,616,4.503,629,6.503,636,7.641,705,7.878,707,5.636,839,5.019,844,10.388,883,3.641,892,3.806,906,2.014,946,4.734,1172,5.019,1305,6.345,1397,5.019,1494,4.503,2010,6.962,2011,6.962,2012,6.962,2013,6.962,2014,6.962,2015,6.962,2016,6.962,2017,6.962,2018,6.962,2019,6.345,2020,6.962]],["keywords/347",[]],["title/348",[900,458.894,915,463.223]],["content/348",[35,2.963,36,3.672,48,3.515,49,1.931,52,3.902,54,4.852,60,2.768,61,3.55,70,2.27,71,3.078,153,3.035,154,3.852,158,4.692,181,5.354,182,6.148,446,6.148,531,5.485,623,4.653,629,4.214,636,4.951,666,4.951,700,6.453,701,10.091,704,10.091,705,7.982,706,6.453,707,5.732,708,5.105,709,6.453,2021,10.091]],["keywords/348",[]],["title/349",[629,668.638,1998,763.987]],["content/349",[]],["keywords/349",[]],["title/350",[918,444.573]],["content/350",[42,4.455,106,3.062,369,7.836,420,10.684,629,9.595,918,6.147,920,6.981]],["keywords/350",[]],["title/351",[906,412.531]],["content/351",[0,7.992,7,1.778,35,2.381,42,5.358,65,8.106,67,4.939,71,2.008,86,4.015,99,3.633,157,4.886,164,8.155,190,3.472,192,4.301,208,7.777,220,7.435,257,4.886,295,6.891,303,5.753,510,5.293,583,7.2,629,7.839,634,8.106,636,10.97,637,7.588,638,7.588,844,12.591,883,4.651,892,4.862,946,6.048,1494,5.753,2019,8.106,2022,8.894]],["keywords/351",[]],["title/352",[900,458.894,915,463.223]],["content/352",[0,7.352,35,3.244,36,3.907,48,4.229,49,2.171,52,3.714,54,4.728,60,3.029,61,3.886,70,2.552,71,3.313,158,5.274,176,2.242,420,8.03,623,5.093,627,6.79,628,7.254,629,4.737,630,11.045,632,11.045,637,10.338,638,10.338,640,6.79,666,5.566,2021,11.045,2023,7.959]],["keywords/352",[]],["title/353",[54,167.008,1926,588.19,2024,611.031,2025,718.833]],["content/353",[]],["keywords/353",[]],["title/354",[259,718.023,351,668.192,1161,718.023]],["content/354",[10,2.785,13,1.44,15,2.93,16,4.295,36,2.236,41,6.073,42,3.787,47,4.91,49,1.571,60,5.285,86,2.6,98,3.01,103,5.249,106,1.094,141,4.285,153,7.891,154,4.135,157,2.136,186,3.816,257,2.136,259,4.462,275,4.462,281,4.295,293,4.027,351,8.568,369,2.288,425,3.816,462,2.628,571,3.816,590,6.565,655,2.397,660,3.101,664,3.198,753,4.662,772,4.662,807,3.565,811,4.662,918,1.795,1002,8.009,1083,3.816,1318,4.295,1459,3.494,1468,5.249,1926,4.295,1990,5.249,2026,5.759,2027,5.759,2028,5.249,2029,5.759,2030,5.759,2031,5.759,2032,5.759,2033,5.759,2034,5.759,2035,5.759,2036,5.759,2037,5.759,2038,5.759,2039,5.759,2040,5.759,2041,5.759,2042,5.759,2043,5.759,2044,5.759]],["keywords/354",[]],["title/355",[221,224.922,653,429.395,655,449.777]],["content/355",[2,5.678,18,5.125,36,3.741,41,7.358,42,2.025,44,5.678,55,5.08,66,2.419,86,5.135,89,5.866,105,4.137,108,5.466,109,5.933,184,5.933,221,5.147,246,3.946,248,6.68,251,6.68,260,5.933,283,4.741,293,5.125,303,9.016,351,5.284,585,3.946,624,7.954,653,2.912,655,5.802,821,4.741,839,5.284,933,4.741,956,6.901,1008,7.358,1017,5.284,1083,4.857,1373,10.367,1559,5.933,1562,5.466,1563,6.253,1611,6.253,1613,9.703,1672,6.253,1926,8.483,2025,6.68,2045,11.374,2046,7.329,2047,7.329,2048,7.329,2049,7.329,2050,7.329,2051,7.329]],["keywords/355",[]],["title/356",[18,468.612,54,81.744,194,269.943,584,433.495,585,207.841,1093,312.504,1427,299.075,2052,386.025,2053,351.84]],["content/356",[7,2.292,13,2.866,18,12.636,36,3.762,55,5.121,194,8.017,585,9.729,1002,9.78,1048,10.449,1081,10.449,1083,12.903,1093,9.281,1105,8.265,1926,11.779,2053,10.449,2054,11.464,2055,11.464,2056,11.464,2057,11.464,2058,11.464,2059,10.449]],["keywords/356",[]],["title/357",[124,756.67]],["content/357",[]],["keywords/357",[]],["title/358",[918,444.573]],["content/358",[42,3.733,54,2.861,106,2.566,158,8.952,300,8.739,369,7.801,466,8.952,906,3.907,918,6.119,919,5.971,920,7.634,923,8.196,1595,10.075,2060,12.312]],["keywords/358",[]],["title/359",[906,412.531]],["content/359",[10,2.766,13,2.957,27,5.213,28,4.265,47,2.991,54,1.211,69,2.582,71,1.291,102,4.265,106,2.246,113,2.61,120,4.431,124,9.03,141,2.61,157,2.121,176,2.63,188,6.348,190,2.233,192,2.766,216,5.779,218,6.039,220,3.228,224,3.47,240,3.079,257,4.387,295,4.431,300,7.651,367,9.575,412,5.923,466,3.79,511,3.889,512,3.126,585,3.079,671,3.999,679,3.7,892,3.126,906,1.654,914,4.123,934,4.63,957,4.879,1015,3.999,1030,4.265,1118,3.404,1134,4.431,1214,3.176,1392,4.431,1437,7.322,1452,3.889,1514,4.63,1551,6.186,1622,4.879,1703,7.964,2059,5.213,2061,5.719,2062,5.719,2063,5.719,2064,4.879,2065,5.719,2066,5.719,2067,4.431,2068,5.719,2069,5.719,2070,7.557,2071,5.719,2072,5.719,2073,5.719,2074,5.213,2075,5.719,2076,5.719,2077,5.213,2078,5.719,2079,5.719]],["keywords/359",[]],["title/360",[159,1063.691]],["content/360",[54,2.928,69,7.36,106,1.805,116,7.693,141,6.312,157,3.525,179,5.041,188,11.085,190,5.398,208,4.711,300,12.842,303,8.945,410,7.087,412,5.672,466,6.297,579,5.655,586,4.835,807,5.883,906,2.749,946,6.462,1437,5.883,1536,8.107,2064,8.107,2067,7.362,2080,9.503,2081,9.503,2082,9.503,2083,9.503,2084,9.503,2085,9.503]],["keywords/360",[]],["title/361",[2086,1154.613]],["content/361",[10,6.043,74,6.275,179,6.629,192,6.043,208,6.195,286,11.388,300,8.083,303,8.083,412,4.348,462,5.703,466,11.097,585,6.728,1015,8.738,1160,9.319,1349,11.389,1551,8.28,2070,10.116,2087,12.496,2088,15.291,2089,12.496]],["keywords/361",[]],["title/362",[900,458.894,915,463.223]],["content/362",[11,1.88,31,2.167,32,2.095,35,1.899,36,1.69,42,0.803,47,1.52,48,3.69,49,1.935,52,3.052,54,4.833,60,2.491,61,2.275,71,2.25,89,2.69,98,2.774,106,0.552,124,8.188,133,2.431,141,1.326,153,1.246,154,4.98,155,1.21,158,4.701,159,6.453,160,5.496,175,1.542,176,2.438,181,2.522,188,4.824,189,7.296,190,4.707,191,6.777,192,4.184,207,1.838,208,4.289,213,2.032,216,3.229,217,4.753,288,2.479,303,1.88,586,1.479,671,3.647,891,2.252,892,1.589,898,4.753,906,0.841,916,3.35,1011,3.76,1225,5.496,1421,2.167,1424,1.838,1457,1.799,1494,1.88,1597,2.479,1630,2.649,2090,2.906,2091,5.215,2092,5.215,2093,2.906,2094,2.906,2095,2.906,2096,2.906,2097,7.094,2098,2.906,2099,2.906,2100,2.906]],["keywords/362",[]],["title/363",[133,270.249,466,522.62,1392,611.031,1595,588.19]],["content/363",[35,1.371,36,2.03,47,2.678,48,3.653,49,1.397,52,1.296,54,4.523,60,1.28,61,1.642,69,5.761,70,1.642,71,1.156,106,2.079,116,6.9,124,6.77,133,1.755,140,3.693,157,3.161,158,3.394,189,4.172,201,6.179,216,5.277,224,3.107,286,8.678,300,9.166,366,5.171,412,2.966,466,3.394,510,5.072,591,3.171,623,2.152,679,5.513,681,5.648,807,5.277,883,2.678,946,5.796,1107,3.968,1156,2.8,1514,4.146,1551,3.394,1663,4.369,2060,4.668,2070,10.331,2088,4.146,2101,5.121,2102,5.121,2103,5.121,2104,5.121,2105,5.121,2106,8.523,2107,8.523,2108,5.121,2109,5.121,2110,8.523,2111,5.121,2112,5.121,2113,5.121,2114,5.121,2115,5.121,2116,5.121,2117,5.121]],["keywords/363",[]],["title/364",[113,359.974,466,522.62,511,536.304,512,431.144]],["content/364",[35,2.331,36,3.088,48,4.731,49,2.376,52,3.921,54,4.728,60,2.177,61,2.792,70,2.792,71,1.966,106,1.654,124,6.879,158,5.77,159,6.494,160,6.747,216,8.028,623,3.66,679,8.388,681,8.593,1551,5.77,2086,7.05,2118,7.937,2119,7.937,2120,7.937,2121,12.967,2122,8.708,2123,8.708,2124,7.937]],["keywords/364",[]],["title/365",[113,277.326,179,322.35,412,211.418,466,402.629,511,413.171,512,332.156]],["content/365",[35,2.283,36,3.041,48,4.922,49,2.327,52,2.159,54,4.749,60,2.132,61,2.735,70,2.735,71,1.926,106,2.425,124,6.774,158,5.652,159,6.361,160,6.608,216,7.905,300,8.26,623,3.585,679,8.26,681,8.461,1551,5.652,2067,9.892,2086,6.905,2088,6.905,2118,7.774,2119,7.774,2120,7.774,2124,7.774]],["keywords/365",[]],["title/366",[54,167.008,1881,638.467,1926,588.19,2024,611.031]],["content/366",[]],["keywords/366",[]],["title/367",[41,922.62]],["content/367",[32,7.179,42,5.354,55,6.388,61,4.586,67,9.295,71,2.248,157,6.208,176,4.716,284,9.252,585,7.701,805,8.494,844,9.726,894,8.855,902,6.963,1325,8.678,2125,9.957,2126,14.303,2127,9.957,2128,9.957,2129,9.957,2130,8.494,2131,8.494,2132,9.957]],["keywords/367",[]],["title/368",[42,394.11]],["content/368",[]],["keywords/368",[]],["title/369",[356,848.816]],["content/369",[4,3.376,38,9.258,47,3.076,52,4.541,54,4.84,60,4.086,61,3.062,64,5.066,77,3.975,86,4.311,91,7.463,98,1.886,106,1.117,176,3.397,250,3.999,412,3.323,499,6.885,883,3.076,903,5.017,904,4.556,906,1.701,907,7.398,908,8.146,909,5.017,913,8.146,914,4.24,915,2.425,1096,3.719,2133,5.36,2134,5.881,2135,5.881,2136,5.881,2137,5.881,2138,5.881,2139,9.549,2140,5.881,2141,5.881,2142,5.881,2143,5.881,2144,5.881]],["keywords/369",[]],["title/370",[428,587.582,2145,1024.007]],["content/370",[36,3.564,133,5.128,140,10.789,250,10.176,293,10.465,294,9.464,421,8.744,915,6.17,1009,11.161,1019,11.594,1096,9.464,1117,13.639,2133,13.639]],["keywords/370",[]],["title/371",[98,252.894,571,522.62,806,522.62,807,488.259]],["content/371",[66,6.297]],["keywords/371",[]],["title/372",[257,416.721,2146,1123.5]],["content/372",[147,14.148,243,12.221,585,9.409,1096,11.052,2147,17.476]],["keywords/372",[]],["title/373",[221,303.691,462,423.006,647,541.513]],["content/373",[66,6.297]],["keywords/373",[]],["title/374",[221,368.156,650,695.545]],["content/374",[55,7.491,185,10.607,585,9.03,655,6.981,906,4.851,956,10.176,2148,16.772]],["keywords/374",[]],["title/375",[71,209.254,157,343.752,221,303.691]],["content/375",[55,5.666,60,4.229,157,6.275,176,3.574,181,8.18,185,10.699,221,4.157,412,4.414,585,6.83,906,3.669,1105,9.146,1387,10.27,1517,9.461,1619,11.563,1623,14.432,2149,12.686,2150,12.686,2151,12.686]],["keywords/375",[]],["title/376",[98,297.177,221,303.691,653,368.282]],["content/376",[66,6.297]],["keywords/376",[]],["title/377",[221,303.691,653,368.282,655,385.763]],["content/377",[66,6.297]],["keywords/377",[]],["title/378",[141,359.974,154,274.424,155,328.281,221,258.438]],["content/378",[66,6.297]],["keywords/378",[]],["title/379",[154,274.424,155,328.281,221,258.438,658,498.782]],["content/379",[66,6.297]],["keywords/379",[]],["title/380",[176,261.112,221,303.691,660,498.986]],["content/380",[66,6.297]],["keywords/380",[]],["title/381",[125,506.638,176,261.112,221,303.691]],["content/381",[66,6.297]],["keywords/381",[]],["title/382",[29,523.131,221,303.691,655,385.763]],["content/382",[74,8.964,176,5.029,1105,12.87,2152,17.85]],["keywords/382",[]],["title/383",[154,274.424,155,328.281,221,258.438,664,437.982]],["content/383",[69,7.008,106,2.948,155,6.461,284,10.041,497,9.817,906,5.572,2153,19.263,2154,15.522,2155,15.522]],["keywords/383",[]],["title/384",[155,328.281,221,258.438,446,437.982,664,437.982]],["content/384",[66,6.297]],["keywords/384",[]],["title/385",[218,599.516,240,498.986,495,432.601]],["content/385",[42,3.992,176,4.07,539,8.022,584,9.345,585,7.778,586,7.35,600,11.192,840,11.694,894,8.943,1009,10.774,1424,9.136,1750,12.324,1769,13.166,2156,14.446,2157,14.446]],["keywords/385",[]],["title/386",[421,656.46,423,710.535]],["content/386",[0,9.245,37,13,42,4.211,55,6.806,106,2.894,421,8.904,428,7.97,769,10.987,1444,8.748,1451,10.362,1453,9.637,2145,13.889]],["keywords/386",[]],["title/387",[86,418.415,424,453.702,653,368.282]],["content/387",[66,6.297]],["keywords/387",[]],["title/388",[176,261.112,190,361.79,424,453.702]],["content/388",[42,4.543,55,7.344,77,6.844,98,5.272,190,6.418,424,8.049,805,14.026,1444,9.439]],["keywords/388",[]],["title/389",[428,587.582,749,614.183]],["content/389",[15,9.282,617,7.521,2158,15.562]],["keywords/389",[]],["title/390",[141,359.974,154,274.424,155,328.281,789,478.489]],["content/390",[66,6.297]],["keywords/390",[]],["title/391",[660,424.632,789,478.489,790,498.782,814,536.304]],["content/391",[185,10.398,789,9.975,906,5.772,956,9.975,1001,12.262,1009,12.262,1432,10.895]],["keywords/391",[]],["title/392",[432,882.975]],["content/392",[15,9.282,617,7.521,2158,15.562]],["keywords/392",[]],["title/393",[434,902.004]],["content/393",[42,4.73,55,7.645,139,13.857,769,12.341,1444,9.827,1451,11.64]],["keywords/393",[]],["title/394",[124,756.67]],["content/394",[40,9.478,66,3.287,141,4.545,157,3.693,179,5.282,188,6.771,194,6.963,224,6.041,236,8.494,284,9.252,300,11.835,351,7.179,410,10.667,412,5.824,576,10.002,585,5.361,608,8.061,896,8.494,926,9.075,947,6.771,1101,9.075,1156,5.443,1551,6.598,2024,7.714,2064,12.202,2067,7.714,2159,9.957,2160,9.957,2161,9.075,2162,9.957,2163,9.957]],["keywords/394",[]],["title/395",[668,848.816]],["content/395",[4,5.649,7,2.835,13,2.46,31,7.338,42,2.719,47,7.417,54,4.084,60,2.46,61,3.155,106,2.693,185,6.223,194,6.881,226,6.691,284,6.365,410,7.338,590,6.881,618,8.141,668,9.895,886,5.554,940,6.691,969,8.394,1096,6.223,1169,8.394,1187,7.623,1537,8.968,1985,8.394,2164,9.839,2165,9.839,2166,9.839,2167,9.839,2168,9.839,2169,9.839]],["keywords/395",[]],["title/396",[54,167.008,1881,638.467,1918,672.828,2024,611.031]],["content/396",[]],["keywords/396",[]],["title/397",[66,370.861,2170,1024.007]],["content/397",[35,3.737,54,3.815,55,6.236,106,2.652,134,9.032,157,6.682,584,9.032,624,12.597,1134,10.817,1514,11.302,2171,13.962,2172,13.962,2173,13.962,2174,13.962]],["keywords/397",[]],["title/398",[41,922.62]],["content/398",[3,2.569,10,5.613,11,3.601,13,2.282,15,2.832,34,3.313,36,1.326,42,3.711,54,2.458,55,4.078,56,4.749,60,1.391,61,2.928,64,2.953,66,4.433,67,6.446,71,1.257,99,2.274,106,2.204,119,4.013,157,3.387,164,3.446,176,3.27,185,3.52,210,4.749,220,5.154,242,5.906,257,2.065,412,3.177,574,4.313,583,4.506,584,5.906,585,2.997,586,2.832,599,4.749,705,4.013,732,5.073,839,4.013,844,3.785,847,3.52,883,2.911,886,5.154,888,3.377,894,5.652,911,4.506,978,5.073,1045,3.892,1121,7.074,1125,4.749,1156,3.043,1163,4.506,1264,4.749,1325,5.539,1397,4.013,1567,4.646,1595,4.151,1617,4.749,1975,5.073,2028,5.073,2130,4.749,2131,4.749,2175,5.073,2176,5.566,2177,5.566,2178,5.566,2179,5.566,2180,5.566,2181,5.566,2182,5.566,2183,5.566,2184,5.566,2185,5.566,2186,5.566,2187,5.566,2188,5.566,2189,5.566,2190,5.566,2191,5.566]],["keywords/398",[]],["title/399",[464,833.358]],["content/399",[3,5.365,14,7.703,50,8.669,54,2.461,61,3.727,66,3.837,71,2.625,77,4.838,157,4.311,176,3.275,239,10.595,576,8.129,584,10.315,944,8.381,946,7.904,1134,9.006,1170,7.703,1171,7.904,1437,7.196,1517,8.669,1535,9.917,1567,8.113,1703,9.917,2192,11.624,2193,11.624,2194,11.624,2195,11.624]],["keywords/399",[]],["title/400",[42,394.11]],["content/400",[]],["keywords/400",[]],["title/401",[726,726.775,745,668.638]],["content/401",[66,6.297]],["keywords/401",[]],["title/402",[98,252.894,571,522.62,806,522.62,807,488.259]],["content/402",[66,6.297]],["keywords/402",[]],["title/403",[157,416.721,495,524.429]],["content/403",[66,6.297]],["keywords/403",[]],["title/404",[98,360.258,653,446.458]],["content/404",[7,3.353,28,12.509,31,12.509,74,8.422,585,9.03,594,12.994,2196,16.772]],["keywords/404",[]],["title/405",[221,303.691,462,423.006,463,532.06]],["content/405",[55,7.202,154,5.61,176,4.543,1509,13.052,1513,13.755,1517,12.025,1533,13.755,2197,16.123,2198,16.123]],["keywords/405",[]],["title/406",[221,303.691,462,423.006,647,541.513]],["content/406",[10,8.111,74,8.422,106,3.185,1110,13.578,1551,11.114,1622,14.309,2199,16.772]],["keywords/406",[]],["title/407",[221,368.156,650,695.545]],["content/407",[28,12.025,157,5.98,176,4.543,594,12.491,894,9.982,1045,11.275,2158,13.755,2200,13.755,2201,16.123]],["keywords/407",[]],["title/408",[71,209.254,157,343.752,221,303.691]],["content/408",[10,6.986,42,3.992,61,4.632,106,2.743,176,4.07,584,9.345,844,9.823,847,9.136,894,8.943,948,9.823,1105,10.415,1163,11.694,2130,12.324,2131,12.324,2175,13.166]],["keywords/408",[]],["title/409",[98,297.177,221,303.691,653,368.282]],["content/409",[66,5.124,98,4.977,157,5.757,221,5.086,584,10.041,906,4.49,1105,11.191,1325,9.417,1567,7.898,2202,15.522,2203,15.522]],["keywords/409",[]],["title/410",[221,303.691,653,368.282,655,385.763]],["content/410",[3,7.741,66,5.536,655,6.981,1045,11.729,1567,8.534,1613,14.309,2204,16.772]],["keywords/410",[]],["title/411",[141,359.974,154,274.424,155,328.281,221,258.438]],["content/411",[66,6.297]],["keywords/411",[]],["title/412",[154,274.424,155,328.281,221,258.438,658,498.782]],["content/412",[66,6.587,412,5.721,1427,12.738,1528,14.026,1546,13.31,1567,8.366,2205,16.441]],["keywords/412",[]],["title/413",[176,261.112,221,303.691,660,498.986]],["content/413",[66,6.297]],["keywords/413",[]],["title/414",[125,506.638,176,261.112,221,303.691]],["content/414",[157,5.551,176,4.216,220,8.447,249,12.767,412,5.207,594,11.594,711,12.767,906,4.328,1045,10.465,1567,7.615,2200,12.767,2206,14.965,2207,14.965]],["keywords/414",[]],["title/415",[221,368.156,629,668.638]],["content/415",[10,8.111,55,7.491,71,3.787,98,5.378,161,11.729,636,11.729,1421,12.509]],["keywords/415",[]],["title/416",[29,523.131,221,303.691,655,385.763]],["content/416",[55,6.566,66,4.853,157,5.453,176,4.142,655,6.119,894,9.101,906,4.252,1045,10.28,1567,7.48,1935,12.541,2200,12.541,2208,14.701,2209,14.701,2210,14.701]],["keywords/416",[]],["title/417",[154,274.424,155,328.281,221,258.438,664,437.982]],["content/417",[66,6.297]],["keywords/417",[]],["title/418",[155,328.281,221,258.438,446,437.982,664,437.982]],["content/418",[66,6.297]],["keywords/418",[]],["title/419",[218,599.516,240,498.986,495,432.601]],["content/419",[55,7.491,74,8.422,446,9.314,906,4.851,1535,14.309,1750,14.309,2211,16.772]],["keywords/419",[]],["title/420",[421,656.46,423,710.535]],["content/420",[29,9.101,66,5.322,906,4.663,1019,12.491,1096,10.197,1139,13.755,1567,8.204,2212,13.052,2213,14.695]],["keywords/420",[]],["title/421",[86,418.415,424,453.702,653,368.282]],["content/421",[98,5.378,653,6.665,1095,10.607,1096,10.607,1160,12.509,2214,15.287,2215,15.287]],["keywords/421",[]],["title/422",[176,261.112,190,361.79,424,453.702]],["content/422",[66,6.297]],["keywords/422",[]],["title/423",[428,587.582,749,614.183]],["content/423",[29,9.101,66,5.322,906,4.663,1019,12.491,1096,10.197,1139,13.755,1567,8.204,2212,13.052,2213,14.695]],["keywords/423",[]],["title/424",[8,681.627,431,785.651]],["content/424",[10,8.451,55,7.806,269,15.928,1030,13.033,2216,17.476]],["keywords/424",[]],["title/425",[141,359.974,154,274.424,155,328.281,789,478.489]],["content/425",[98,5.378,653,6.665,1095,10.607,1096,10.607,1160,12.509,2214,15.287,2215,15.287]],["keywords/425",[]],["title/426",[660,424.632,789,478.489,790,498.782,814,536.304]],["content/426",[13,3.271,66,4.319,98,4.196,157,4.853,176,3.686,179,6.942,660,7.045,789,7.938,790,8.275,873,10.592,944,9.434,1011,9.434,1105,9.434,1306,11.926,1325,7.938,1567,6.658,1935,11.163,2217,11.926,2218,13.084,2219,13.084,2220,13.084]],["keywords/426",[]],["title/427",[432,882.975]],["content/427",[66,5.769,906,5.055,1096,11.052,1567,8.892,2212,14.148]],["keywords/427",[]],["title/428",[434,902.004]],["content/428",[66,6.297]],["keywords/428",[]],["title/429",[124,756.67]],["content/429",[55,6.342,66,4.687,157,5.267,216,8.791,500,8.297,671,9.93,906,4.107,1064,12.114,1567,7.225,2074,12.942,2221,14.2,2222,14.2,2223,14.2,2224,12.942,2225,12.942,2226,14.2]],["keywords/429",[]],["title/430",[668,848.816]],["content/430",[66,6.297]],["keywords/430",[]],["title/431",[141,359.974,154,274.424,155,328.281,1998,536.304]],["content/431",[55,7.806,98,5.604,154,6.081,213,12.221,624,12.221]],["keywords/431",[]],["title/432",[176,316.539,1998,763.987]],["content/432",[55,7.645,142,8.486,176,4.823,616,11.073,624,11.97,707,13.857]],["keywords/432",[]],["title/433",[629,668.638,1998,763.987]],["content/433",[10,8.111,55,7.491,71,3.787,98,5.378,161,11.729,636,11.729,1421,12.509]],["keywords/433",[]],["title/434",[892,779.687]],["content/434",[32,9.584,47,6.952,52,3.364,54,4.379,60,3.323,64,7.052,77,7.263,80,12.116,85,9.914,91,8.23,106,2.525,235,10.299,940,9.039,2212,10.761,2227,13.293,2228,13.293]],["keywords/434",[]],["title/435",[54,167.008,1882,718.833,1918,672.828,2024,611.031]],["content/435",[]],["keywords/435",[]],["title/436",[66,370.861,2170,1024.007]],["content/436",[]],["keywords/436",[]],["title/437",[41,922.62]],["content/437",[284,11.305,2229,20.699,2230,17.476,2231,17.476]],["keywords/437",[]],["title/438",[464,833.358]],["content/438",[3,7.033,31,11.365,55,6.806,66,5.03,181,7.369,182,8.462,190,5.949,584,9.857,1567,7.754,1623,13,1960,13.889,2232,15.238]],["keywords/438",[]],["title/439",[42,394.11]],["content/439",[]],["keywords/439",[]],["title/440",[726,726.775,745,668.638]],["content/440",[66,6.297]],["keywords/440",[]],["title/441",[98,252.894,571,522.62,806,522.62,807,488.259]],["content/441",[66,6.297]],["keywords/441",[]],["title/442",[157,416.721,495,524.429]],["content/442",[66,6.297]],["keywords/442",[]],["title/443",[98,360.258,653,446.458]],["content/443",[66,6.297]],["keywords/443",[]],["title/444",[221,303.691,462,423.006,463,532.06]],["content/444",[42,5.262,55,6.806,66,5.03,154,5.302,284,9.857,461,10.656,585,8.205,1003,13.889,1567,7.754,1659,13.889,2233,15.238]],["keywords/444",[]],["title/445",[221,303.691,462,423.006,647,541.513]],["content/445",[66,6.297]],["keywords/445",[]],["title/446",[221,368.156,650,695.545]],["content/446",[66,6.297]],["keywords/446",[]],["title/447",[71,209.254,157,343.752,221,303.691]],["content/447",[66,6.297]],["keywords/447",[]],["title/448",[98,297.177,221,303.691,653,368.282]],["content/448",[66,6.297]],["keywords/448",[]],["title/449",[221,303.691,653,368.282,655,385.763]],["content/449",[66,6.297]],["keywords/449",[]],["title/450",[141,359.974,154,274.424,155,328.281,221,258.438]],["content/450",[15,6.764,42,3.673,54,4.124,60,3.323,66,4.388,74,6.675,687,9.914,955,10.761,1096,8.407,1402,12.116,1567,6.764,1876,12.116,1985,11.341,2234,13.293,2235,13.293,2236,13.293,2237,13.293,2238,13.293]],["keywords/450",[]],["title/451",[154,274.424,155,328.281,221,258.438,658,498.782]],["content/451",[3,8.066,55,7.806,74,8.776,906,5.055,1546,14.148]],["keywords/451",[]],["title/452",[176,261.112,221,303.691,660,498.986]],["content/452",[66,6.297]],["keywords/452",[]],["title/453",[125,506.638,176,261.112,221,303.691]],["content/453",[66,6.297]],["keywords/453",[]],["title/454",[221,368.156,629,668.638]],["content/454",[66,6.297]],["keywords/454",[]],["title/455",[29,523.131,221,303.691,655,385.763]],["content/455",[66,6.297]],["keywords/455",[]],["title/456",[154,274.424,155,328.281,221,258.438,664,437.982]],["content/456",[66,5.427,141,7.504,213,11.497,584,10.636,1325,9.975,1567,8.366,1602,14.026,2239,16.441]],["keywords/456",[]],["title/457",[155,328.281,221,258.438,446,437.982,664,437.982]],["content/457",[66,6.297]],["keywords/457",[]],["title/458",[218,599.516,240,498.986,495,432.601]],["content/458",[66,6.297]],["keywords/458",[]],["title/459",[421,656.46,423,710.535]],["content/459",[7,3.353,66,5.536,106,3.185,417,7.829,1008,10.85,1095,10.607,1567,8.534]],["keywords/459",[]],["title/460",[176,261.112,190,361.79,424,453.702]],["content/460",[7,3.353,66,5.536,106,3.185,417,7.829,1008,10.85,1095,10.607,1567,8.534]],["keywords/460",[]],["title/461",[428,587.582,749,614.183]],["content/461",[7,3.353,66,5.536,106,3.185,417,7.829,1008,10.85,1095,10.607,1567,8.534]],["keywords/461",[]],["title/462",[8,681.627,431,785.651]],["content/462",[7,3.353,66,5.536,106,3.185,417,7.829,1008,10.85,1095,10.607,1567,8.534]],["keywords/462",[]],["title/463",[660,424.632,789,478.489,790,498.782,814,536.304]],["content/463",[66,6.297]],["keywords/463",[]],["title/464",[432,882.975]],["content/464",[7,3.353,66,5.536,106,3.185,417,7.829,1008,10.85,1095,10.607,1567,8.534]],["keywords/464",[]],["title/465",[434,902.004]],["content/465",[7,3.353,66,5.536,106,3.185,417,7.829,1008,10.85,1095,10.607,1567,8.534]],["keywords/465",[]],["title/466",[124,756.67]],["content/466",[10,5.436,36,2.094,42,3.106,48,4.017,52,2.225,54,4.234,70,2.82,71,1.985,74,2.67,106,1.01,157,3.261,158,5.827,159,9.741,160,4.12,179,2.821,188,3.616,201,4.963,216,5.444,246,2.863,257,1.972,291,4.305,294,3.363,300,5.688,366,3.226,367,4.305,412,1.85,499,3.834,576,3.719,580,4.847,584,3.44,586,2.706,618,3.053,666,6.149,679,5.688,681,5.827,696,6.558,906,2.543,956,3.226,1008,3.44,1068,8.014,1096,3.363,1112,4.537,1156,2.907,1551,3.524,1567,6.646,1595,3.966,2067,4.12,2070,9.101,2086,4.305,2088,4.305,2224,4.847,2225,4.847,2240,5.318,2241,5.318,2242,5.318,2243,5.318,2244,5.318,2245,5.318,2246,5.318,2247,8.793,2248,5.318,2249,5.318,2250,5.318,2251,5.318,2252,5.318,2253,8.793,2254,5.318]],["keywords/466",[]],["title/467",[668,848.816]],["content/467",[66,6.297]],["keywords/467",[]],["title/468",[141,359.974,154,274.424,155,328.281,1998,536.304]],["content/468",[66,6.297]],["keywords/468",[]],["title/469",[176,316.539,1998,763.987]],["content/469",[7,3.353,66,5.536,106,3.185,417,7.829,1008,10.85,1095,10.607,1567,8.534]],["keywords/469",[]],["title/470",[629,668.638,1998,763.987]],["content/470",[66,6.297]],["keywords/470",[]],["title/471",[892,779.687]],["content/471",[1560,16.274]],["keywords/471",[]],["title/472",[42,310.452,263,681.627]],["content/472",[4,2.633,35,2.079,36,1.092,38,7.217,42,3.287,48,2.003,49,1.251,52,4.419,54,4.815,60,3.327,61,3.814,70,3.24,71,1.035,77,5.54,86,2.07,91,2.839,98,2.491,106,0.871,133,1.571,164,2.839,174,3.912,176,2.189,190,3.032,246,2.469,250,3.118,257,2.881,263,6.131,412,3.516,499,5.601,567,3.912,847,2.9,883,2.398,894,4.809,906,1.326,914,5.601,940,3.118,1197,2.967,1225,3.553,1226,3.712,1437,2.839,1559,3.712,1641,4.18,2255,4.586,2256,7.768,2257,9.211,2258,7.08,2259,7.768,2260,7.768,2261,4.586,2262,4.586,2263,4.586,2264,4.586,2265,4.586,2266,4.586]],["keywords/472",[]],["title/473",[42,310.452,955,909.523]],["content/473",[10,2.948,15,5.002,32,8.907,35,1.632,36,2.341,42,3.916,47,5.141,48,1.571,49,1.663,52,1.543,54,4.323,60,3.543,70,1.955,71,2.22,73,3.282,77,5.142,85,4.546,101,4.546,102,7.332,106,1.158,114,5.556,118,4.039,133,2.089,137,5.556,157,2.261,161,4.263,174,5.2,224,3.698,257,2.261,273,3.698,275,4.723,283,6.359,588,5.2,596,10.001,618,3.5,883,6.461,889,4.935,893,10.569,894,3.774,916,2.878,933,3.943,955,11.473,965,5.556,1001,4.546,1034,4.723,1274,5.556,1421,4.546,1745,5.556,2267,6.096,2268,6.096,2269,6.096,2270,6.096,2271,6.096,2272,6.096,2273,6.096,2274,6.096]],["keywords/473",[]],["title/474",[34,668.638,904,870.438]],["content/474",[29,2.243,34,5.403,38,4.169,42,2.988,43,5.125,45,3.217,47,2.078,48,1.024,50,2.963,51,3.078,52,4.018,54,4.764,60,2.703,61,2.203,64,6.481,70,1.274,71,0.897,77,4.502,90,3.39,91,2.46,98,1.274,106,1.724,113,1.814,142,1.97,147,3.217,175,3.645,190,1.551,197,5.862,201,2.243,208,1.97,210,3.39,242,4.445,294,2.513,356,2.365,378,3.544,412,3.159,416,3.217,499,4.954,500,5.304,511,2.702,756,2.57,883,3.594,904,3.078,906,1.149,907,3.078,944,2.865,947,2.702,1106,3.622,1126,3.217,1156,4.963,1207,3.39,1268,3.217,1421,2.963,1444,7.677,1524,3.39,1849,3.217,2217,3.622,2257,6.263,2258,6.263,2275,3.973,2276,3.973,2277,3.973,2278,3.973,2279,3.973,2280,3.973,2281,3.973,2282,6.871,2283,3.973,2284,3.973,2285,3.973,2286,3.973,2287,3.973,2288,3.973,2289,6.871,2290,3.973,2291,3.973,2292,3.973]],["keywords/474",[]],["title/475",[42,310.452,1156,614.183]],["content/475",[4,3.217,10,2.71,35,1.5,38,7.075,42,2.537,47,2.931,52,4.044,54,4.809,60,3.371,61,1.797,70,1.797,77,6.193,86,2.53,98,1.797,157,3.405,176,1.579,190,2.188,201,3.163,205,5.108,257,5.001,283,5.939,412,4.058,499,6.619,883,7.052,888,7.075,893,4.179,894,5.684,902,6.42,906,1.621,1019,4.342,1030,4.179,1156,3.063,1268,4.536,1672,4.781,2293,5.604,2294,5.604,2295,5.604,2296,9.181,2297,9.181,2298,9.181,2299,9.181,2300,5.604,2301,5.604]],["keywords/475",[]],["title/476",[220,634.177,1121,870.438]],["content/476",[3,4.704,10,3.083,13,2.548,35,2.728,36,3.032,48,1.644,49,1.739,52,2.579,54,4.646,60,3.636,61,3.268,64,3.382,70,2.044,71,1.44,73,3.433,98,3.268,99,4.163,101,4.755,157,3.78,164,3.947,181,3.083,220,3.599,243,4.458,249,5.439,257,3.78,267,4.597,294,4.032,319,5.811,494,7.127,511,4.335,539,3.541,618,3.66,673,4.597,674,4.755,886,3.599,940,4.335,1015,4.458,1107,4.94,1115,9.289,1116,4.124,1118,3.794,1121,4.94,1125,5.439,1169,5.439,1325,3.868,1403,5.439,1559,5.161,1870,5.811,2077,5.811,2161,5.811,2302,6.376,2303,6.376,2304,6.376,2305,6.376]],["keywords/476",[]],["title/477",[133,384.981,956,681.627]],["content/477",[15,7.898,42,5.323,105,8.762,133,6.601,234,10.555,293,10.855,956,11.687,2306,15.522]],["keywords/477",[]],["title/478",[368,997.361]],["content/478",[7,1.113,13,2.282,15,2.832,36,2.175,38,5.539,41,3.601,42,4.402,48,2.354,49,1.519,52,2.937,54,4.596,59,7.391,60,2.902,61,1.785,70,1.785,77,3.8,98,1.785,106,1.057,118,6.05,133,1.907,142,2.759,189,2.725,208,2.759,234,3.785,243,3.892,281,4.151,317,5.073,368,10.367,412,1.937,458,4.749,466,3.689,568,4.506,594,4.313,602,4.013,616,3.601,708,4.013,822,3.601,883,4.775,892,3.043,956,3.377,982,5.073,1049,4.313,1142,4.749,1148,5.073,1149,5.073,1150,5.073,1151,5.073,1156,3.043,1311,5.073,1330,5.073,1391,5.073,1459,3.377,2307,5.566,2308,11.608,2309,9.13,2310,5.566,2311,9.13,2312,5.566,2313,5.566,2314,5.566,2315,5.566,2316,5.566]],["keywords/478",[]]],"invertedIndex":[["",{"_index":54,"title":{"353":{"position":[[13,1]]},"356":{"position":[[32,1]]},"366":{"position":[[13,1]]},"396":{"position":[[13,1]]},"435":{"position":[[13,1]]}},"content":{"2":{"position":[[265,1],[267,1],[293,1],[331,1],[333,2],[336,3],[373,2],[406,1],[408,2],[411,3],[465,1],[485,1],[487,2],[490,1],[513,1],[523,2],[611,1],[630,1],[632,1],[660,1],[662,3],[773,1],[775,2],[787,2],[790,1],[805,1],[807,2],[897,2],[914,2],[917,1],[933,2],[1029,2],[1046,2],[1049,1],[1068,2],[1119,2],[1245,2],[1262,2],[1265,1],[1281,2],[1316,1],[1325,2],[1334,1],[1336,2]]},"5":{"position":[[139,2],[186,2],[217,1],[242,2],[264,2],[454,1],[472,1],[508,2],[636,1],[667,1],[669,2],[764,1],[833,1],[835,1],[848,2],[875,2],[878,3],[897,1],[899,1],[959,1],[968,1],[1018,1],[1020,1],[1022,2],[1108,2],[1192,1],[1194,1],[1224,1],[1232,1],[1262,1],[1282,1],[1346,2],[1362,1],[1405,2],[1420,1],[1468,2],[1476,1],[1538,2],[1553,1],[1570,2],[1581,1],[1598,1],[1600,2],[1634,2],[1679,1],[1681,1],[1683,1],[1685,2],[1790,1],[1823,2],[1950,3],[1954,2],[2002,2]]},"7":{"position":[[341,1],[358,1],[735,1],[790,2],[1342,1],[1419,1]]},"10":{"position":[[58,1],[89,1],[447,1],[449,1]]},"12":{"position":[[17,1],[119,1],[184,1],[211,1],[227,1],[257,1],[297,1],[346,1]]},"13":{"position":[[129,1],[143,1],[241,1],[279,3],[324,2],[354,1],[402,2],[413,2],[435,1],[437,2],[491,2],[536,2],[579,2],[642,2],[705,2],[756,2],[792,2],[806,1],[808,2]]},"15":{"position":[[112,1],[128,1],[163,1],[212,1],[254,1],[306,1],[362,2],[378,1],[399,2],[413,1],[415,2],[443,2],[467,2],[506,2],[572,2],[612,2],[644,2],[698,2],[743,2],[786,2],[849,2],[912,2],[963,2],[999,2],[1013,1],[1015,1]]},"17":{"position":[[140,1],[163,1],[165,1],[198,1],[221,1],[256,1],[258,1],[260,1],[262,1],[264,1]]},"19":{"position":[[103,1],[122,1],[144,1],[189,2],[231,2],[254,1],[295,1],[297,1]]},"21":{"position":[[16,1],[18,1],[55,1],[74,1],[82,1],[84,3],[94,1],[102,1],[120,1],[122,1],[124,1],[147,1],[161,1],[163,2],[178,1],[191,1],[203,1],[229,1],[242,1],[255,1],[355,1],[372,1],[374,2],[425,1],[427,2],[470,1],[472,2],[481,1],[500,1],[513,1],[540,1],[547,1],[564,1],[566,1],[591,1],[621,1],[648,1],[650,2],[695,1],[697,2],[739,1],[741,2],[771,1],[878,1],[880,1],[903,1]]},"22":{"position":[[60,1],[62,1],[84,1],[105,1],[113,1],[115,3],[125,1],[133,1],[142,1],[144,1],[146,1],[169,1],[183,1],[185,2],[200,1],[213,1],[225,1],[251,1],[264,1],[277,1],[307,1],[330,1],[332,2],[375,1],[377,2],[386,1],[399,1],[426,1],[451,1],[481,1],[508,1],[510,2],[555,1],[557,2],[599,1],[601,2],[631,1],[738,1],[740,1],[763,1]]},"25":{"position":[[53,1],[88,1],[97,2],[106,1],[108,2],[111,3],[115,2]]},"28":{"position":[[53,1],[105,1],[107,2],[110,3],[114,2]]},"31":{"position":[[208,1],[236,1],[274,1],[305,1],[346,1],[374,1],[418,1],[420,1],[422,1],[470,2],[473,1],[527,2],[530,1],[577,1],[579,1],[602,1]]},"34":{"position":[[1261,1],[1276,1],[1336,1],[1351,1],[1374,1],[1406,2],[1415,1],[1424,1],[1442,1],[1444,1],[1446,2],[1674,2],[1677,1],[1731,2],[1867,2],[2037,1],[2039,1],[2083,2],[2091,2],[2121,1],[2123,2],[2154,2],[2157,1],[2252,3],[2317,1],[2326,2],[2335,1],[2337,2],[2340,3],[2344,2]]},"37":{"position":[[1223,1],[1247,1],[1286,1],[1311,1],[1356,1],[1358,1],[1360,1],[1417,2],[1420,1],[1474,1],[1476,1],[1499,1],[1531,2],[1540,1],[1549,1],[1567,1],[1569,1],[1571,2],[1799,2],[1802,1],[1856,2],[1992,2],[2162,1],[2164,1],[2208,2],[2216,2],[2246,1],[2248,2],[2279,2],[2282,1]]},"40":{"position":[[53,1],[88,1],[97,2],[106,1],[108,2],[111,3],[115,2]]},"43":{"position":[[1261,1],[1276,1],[1336,1],[1351,1],[1374,1],[1406,2],[1415,1],[1424,1],[1442,1],[1444,1],[1446,2],[1674,2],[1677,1],[1731,2],[1867,2],[2037,1],[2039,1],[2083,2],[2091,2],[2121,1],[2123,2],[2165,2],[2168,1],[2263,3],[2328,1],[2337,2],[2346,1],[2348,2],[2351,3],[2355,2]]},"46":{"position":[[53,1],[92,2],[175,1],[177,2],[180,3],[184,2]]},"49":{"position":[[53,1],[105,1],[107,2],[110,3],[114,2]]},"52":{"position":[[53,1],[105,1],[107,2],[110,3],[114,2]]},"55":{"position":[[117,1],[203,1],[205,2],[208,3],[212,2]]},"58":{"position":[[53,1],[105,1],[107,2],[110,3],[114,2]]},"61":{"position":[[53,1],[105,1],[107,2],[110,3],[114,2]]},"64":{"position":[[117,1],[203,1],[205,2],[208,3],[212,2]]},"68":{"position":[[53,1],[105,1],[107,2],[110,3],[114,2]]},"70":{"position":[[53,1],[88,1],[97,2],[106,1],[108,2],[111,3],[115,2]]},"73":{"position":[[117,1],[203,1],[205,2],[208,3],[212,2]]},"77":{"position":[[53,1],[105,1],[107,2],[110,3],[114,2]]},"79":{"position":[[53,1],[88,1],[97,2],[106,1],[108,2],[111,3],[115,2]]},"82":{"position":[[117,1],[203,1],[205,2],[208,3],[212,2]]},"85":{"position":[[53,1],[105,1],[107,2],[110,3],[114,2]]},"88":{"position":[[53,1],[105,1],[107,2],[110,3],[114,2]]},"91":{"position":[[1261,1],[1276,1],[1336,1],[1351,1],[1374,1],[1406,2],[1415,1],[1424,1],[1442,1],[1444,2],[1471,2],[1699,2],[1702,1],[1756,2],[1892,2],[2062,1],[2064,1],[2108,2],[2116,2],[2146,1],[2148,2],[2179,2],[2182,1],[2277,3],[2342,1],[2351,2],[2360,1],[2362,2],[2365,3],[2369,2]]},"94":{"position":[[117,1],[203,1],[205,2],[208,3],[212,2]]},"97":{"position":[[117,1],[203,1],[205,2],[208,3],[212,2]]},"100":{"position":[[117,1],[203,1],[205,2],[208,3],[212,2]]},"102":{"position":[[359,1],[374,1],[434,1],[449,1],[465,1],[657,3],[693,1],[702,2],[711,1],[713,2],[716,3],[720,2]]},"103":{"position":[[39,1],[53,1],[287,1],[336,1],[349,1],[474,1],[476,1],[478,2],[481,1],[527,1],[574,1],[576,2],[579,1],[614,1],[650,1],[652,2],[655,1],[690,1],[697,1],[719,1],[721,1],[723,2],[726,1],[758,1],[784,1],[819,2],[854,1],[863,2],[872,1],[874,2],[893,1],[895,1],[933,1],[935,2]]},"104":{"position":[[39,1],[53,1],[271,1],[320,1],[333,1],[348,6],[365,6],[387,6],[407,5],[413,1],[415,1],[417,2],[420,1],[454,1],[460,1],[470,6],[482,5],[488,1],[490,1],[492,2],[495,1],[535,1],[547,1],[560,6],[572,1],[574,5],[580,1],[582,1],[584,1],[586,2],[589,1],[624,1],[660,1],[662,2],[665,1],[697,1],[723,1],[758,2],[793,1],[802,2],[811,1],[813,2],[832,1],[834,1],[865,1],[867,2]]},"107":{"position":[[53,1],[105,1],[107,2],[110,3],[114,2]]},"110":{"position":[[117,1],[203,1],[205,2],[208,3],[212,2]]},"113":{"position":[[117,1],[161,2],[242,1],[244,2],[247,3],[251,2]]},"116":{"position":[[117,1],[161,2],[233,1],[235,2],[238,3],[242,2]]},"119":{"position":[[117,1],[203,1],[205,2],[208,3],[212,2]]},"122":{"position":[[117,1],[203,1],[205,2],[208,3],[212,2]]},"125":{"position":[[53,1],[105,1],[107,2],[110,3],[114,2]]},"128":{"position":[[193,1],[329,3],[375,1],[377,2],[380,3],[384,2]]},"131":{"position":[[53,1],[105,1],[107,2],[110,3],[114,2]]},"134":{"position":[[117,1],[203,1],[205,2],[208,3],[212,2]]},"139":{"position":[[187,1],[304,1],[306,2],[309,3],[313,2]]},"142":{"position":[[53,1],[105,1],[107,2],[110,3],[114,2]]},"146":{"position":[[499,2],[1273,1],[1288,1],[1348,1],[1363,1],[1386,1],[1418,2],[1427,1],[1436,1],[1454,1],[1456,1],[1458,2],[1686,2],[1689,1],[1743,2],[1879,2],[2049,1],[2051,1],[2095,2],[2103,2],[2133,1],[2135,2],[2166,2],[2169,1],[2264,3],[2329,1],[2338,2],[2347,1],[2349,2],[2352,3],[2356,2]]},"148":{"position":[[183,1],[203,1],[240,1],[263,1],[298,1],[310,1],[349,1],[368,1],[411,1],[506,2],[509,2],[512,2],[615,1]]},"151":{"position":[[558,2],[647,1],[649,1],[678,4],[701,1],[703,1],[705,4],[715,1],[787,1],[801,1],[842,1],[909,1],[911,1],[926,1],[928,1],[930,1],[932,1]]},"153":{"position":[[643,2],[739,1],[755,1],[757,2],[760,3],[764,2],[767,1],[783,1],[785,2],[788,2],[824,1],[842,1],[885,1],[909,1],[920,1],[1008,1],[1010,2],[1117,1],[1119,1],[1148,1],[1172,1],[1174,2],[1247,1],[1266,1],[1275,1],[1336,1],[1338,1],[1340,2],[1370,1],[1401,1],[1403,2],[1406,3],[1410,2],[1465,2],[1468,1]]},"157":{"position":[[187,1],[212,1],[214,2],[237,2],[240,1],[263,1],[698,1],[766,1],[791,1],[793,2],[816,2],[819,2],[843,1]]},"160":{"position":[[766,2],[806,1],[825,2],[828,2],[831,2],[871,1],[880,2],[915,1],[934,2]]},"167":{"position":[[463,1],[489,2],[572,1],[596,2],[605,2],[608,2],[709,1],[956,1],[988,3],[992,1]]},"168":{"position":[[256,1],[302,1],[419,1],[421,2],[510,1],[562,1],[564,1],[578,1]]},"174":{"position":[[40,1],[70,1],[123,1],[171,3],[195,1],[228,1],[283,1],[290,1],[303,1],[305,3],[309,2],[333,1],[438,1],[924,1],[959,2],[1151,1]]},"178":{"position":[[40,1],[71,1],[118,1],[141,1],[196,1],[244,3],[261,1],[319,2],[342,1],[375,1],[426,2],[450,1],[587,2],[765,2]]},"182":{"position":[[40,1],[75,1],[130,1],[200,3],[224,1],[296,1],[360,2],[384,1],[512,1],[568,1],[639,2],[720,1],[722,1],[744,1],[746,2],[770,2],[858,2],[861,3],[905,1],[907,1]]},"186":{"position":[[40,1],[53,1],[82,1],[106,1],[169,1],[196,1],[273,1],[341,3],[377,1],[385,1],[393,1],[401,1],[403,2],[406,3],[432,1],[480,2],[483,2],[507,1],[546,1],[552,1],[568,1],[617,1],[679,2],[682,1],[698,1],[743,1],[745,1],[796,2],[799,2]]},"188":{"position":[[730,1],[747,1],[749,2],[752,3],[756,2],[759,2],[830,1],[847,3],[876,1],[907,4]]},"189":{"position":[[807,1],[828,1],[869,2],[965,1],[981,1],[983,2],[986,3],[990,2],[993,1],[1009,1],[1011,2],[1014,2],[1050,1],[1068,1],[1111,1],[1135,1],[1146,1],[1234,1],[1236,2],[1311,2],[1418,1],[1420,1],[1449,1],[1473,1],[1475,2],[1548,1],[1567,1],[1576,1],[1637,1],[1639,1],[1641,2],[1671,1],[1702,1],[1704,2],[1707,3],[1711,2],[1714,2],[1785,1],[1802,3],[1831,1],[1862,3],[1916,2],[1919,2]]},"192":{"position":[[39,1],[62,1],[109,1],[178,1],[187,1],[215,1],[244,2],[281,2],[294,1],[296,1],[298,1]]},"193":{"position":[[39,1],[62,1],[109,1],[178,1],[215,2],[228,1],[230,1]]},"194":{"position":[[7,1],[55,1],[100,1],[131,1],[252,2],[255,1],[271,1],[307,1],[309,2],[355,1],[391,1],[398,2],[457,1],[459,1]]},"198":{"position":[[87,1],[118,1],[135,1],[137,1],[165,3],[215,2],[218,1],[236,2],[275,1],[285,1],[300,6],[317,6],[339,6],[359,5],[365,1],[367,1],[369,2],[372,1]]},"203":{"position":[[85,1],[116,1],[133,1],[135,1],[163,3],[213,2],[216,1],[234,2],[272,1],[282,1],[295,5],[306,1],[319,1],[321,1],[323,1],[325,2],[328,1]]},"207":{"position":[[182,1]]},"208":{"position":[[12,1],[61,1],[114,1],[145,1],[296,1],[298,2],[373,2],[390,2],[393,2],[396,1]]},"212":{"position":[[127,1],[158,1],[167,2],[170,2],[233,2],[286,2],[386,1],[439,2]]},"216":{"position":[[92,1],[123,1],[125,2],[147,2]]},"219":{"position":[[21,4],[88,4],[146,4],[360,2]]},"220":{"position":[[171,1],[183,1],[223,1],[295,1],[305,1],[366,2],[429,1],[431,2],[487,2],[522,1],[531,1],[556,7],[564,1],[566,2]]},"221":{"position":[[171,1],[183,1],[209,1],[232,1],[279,1],[313,2],[378,1],[388,1],[449,2],[512,1],[514,2],[570,2],[605,1],[614,1],[669,1],[671,2]]},"225":{"position":[[106,1],[131,1],[139,1],[149,1],[151,1],[189,1],[191,2],[194,3],[198,1],[200,1],[216,1]]},"229":{"position":[[244,1],[275,1],[328,1],[352,1],[395,1],[439,1],[455,1],[491,1],[522,1],[604,1],[606,1],[669,1],[696,2],[719,1],[729,1],[738,1],[762,1],[764,2],[1020,3]]},"232":{"position":[[1474,1],[1505,1],[1551,2],[1598,2],[1645,3],[1669,1],[1725,4],[1752,1],[1800,2],[1803,2]]},"233":{"position":[[82,1],[113,1],[122,2],[125,2],[148,2],[195,3],[219,1],[275,4],[280,2]]},"236":{"position":[[109,1],[140,1],[199,2],[264,2],[267,2]]},"240":{"position":[[111,1],[182,1],[191,2],[194,2]]},"244":{"position":[[103,1],[134,1],[180,2],[216,2],[263,3],[287,1],[358,2],[361,2]]},"248":{"position":[[173,1],[204,1],[213,2],[216,2],[281,2],[316,1],[318,1],[329,1],[366,2],[431,2],[468,2],[471,1],[488,3],[508,1],[521,1],[534,2],[537,2]]},"251":{"position":[[40,2]]},"252":{"position":[[183,1],[214,1],[223,2],[226,2],[296,2],[331,1],[333,1],[344,1],[433,2],[648,1],[665,3],[685,1],[698,1],[711,2],[714,2]]},"256":{"position":[[109,1],[140,1],[149,2],[152,2]]},"260":{"position":[[109,1],[140,1],[157,1],[159,1],[184,1],[256,1],[309,1],[311,1],[313,1],[331,2],[381,1],[383,1],[408,1],[439,1],[441,1],[458,3],[482,1],[551,2],[554,2]]},"263":{"position":[[59,1],[74,1],[76,1],[119,2],[127,2],[178,2],[181,1],[225,2],[233,2],[263,2],[266,1],[304,2],[312,2],[326,1],[328,2],[359,1]]},"266":{"position":[[115,1],[146,1],[159,1],[182,1],[206,1],[208,2],[262,1],[264,1],[307,2],[315,2],[366,2],[369,1],[413,2],[421,2],[451,2],[454,1],[492,2],[500,2],[514,1],[516,2],[558,3],[574,1],[576,1],[587,1],[652,1],[654,1],[671,3],[695,1],[762,2]]},"270":{"position":[[118,1],[149,1],[169,2],[204,2],[246,2],[313,1],[315,1],[333,1],[369,1],[371,1],[388,3],[408,1],[428,1],[444,2],[447,2]]},"274":{"position":[[183,1],[214,1],[234,2],[269,2],[339,2],[406,1],[408,1],[419,1],[473,2],[538,1],[555,3],[575,1],[595,1],[652,2],[655,2]]},"277":{"position":[[189,4],[379,4]]},"278":{"position":[[105,1],[136,1],[153,1],[155,1],[183,3],[233,2],[236,1],[254,2],[419,1],[442,1],[473,1],[475,2],[478,3],[498,2],[558,1],[572,1],[629,2],[650,2],[670,2],[673,1]]},"281":{"position":[[151,1]]},"287":{"position":[[88,1],[119,1],[136,1],[138,1],[166,3],[216,2],[219,1],[237,2],[276,1],[288,1],[404,1],[406,1],[408,2],[411,1]]},"293":{"position":[[127,1],[158,1],[177,1],[218,1],[255,1],[296,1],[298,2],[352,2],[355,1]]},"294":{"position":[[127,1],[164,1],[175,1],[200,2],[222,1],[251,1],[253,2],[308,2],[311,1]]},"299":{"position":[[98,1],[129,1],[138,2],[141,2],[185,1],[213,2],[234,1],[256,2],[278,2],[281,1],[283,2],[414,1],[416,2],[574,2]]},"304":{"position":[[73,1],[104,1],[149,1],[151,1],[179,3],[229,2],[232,1],[250,2],[282,1],[292,1],[302,6],[314,5],[320,1],[322,2],[344,2],[347,1]]},"309":{"position":[[102,1],[133,1],[150,1],[152,1],[180,3],[230,2],[233,1],[251,2],[297,1],[310,1],[327,6],[347,5],[353,1],[355,1],[357,2],[360,1]]},"312":{"position":[[108,1]]},"314":{"position":[[108,1],[133,1],[156,1],[204,1],[206,2],[241,2],[258,2],[303,1],[326,1]]},"319":{"position":[[75,1],[106,1],[123,1],[125,1],[153,3],[203,2],[206,1],[224,2],[257,1],[271,1],[282,6],[306,2],[309,2],[321,1],[323,1],[325,2],[328,1]]},"324":{"position":[[587,1]]},"328":{"position":[[75,1],[106,1],[115,2],[118,2],[140,1],[142,2],[176,1],[225,2],[282,2],[347,2],[369,2],[372,1],[398,1],[415,1],[449,2],[492,1],[506,1],[570,1],[601,1],[610,2],[613,2],[635,1],[637,2],[671,1],[699,2],[727,2],[730,1],[755,1],[804,2],[860,2],[899,2],[918,1],[923,1],[955,2],[958,1],[960,2],[963,3],[1025,1],[1038,1],[1108,1],[1147,2]]},"333":{"position":[[12,1],[50,1],[95,1],[129,3],[160,1],[189,1],[191,2],[194,3],[198,2],[201,1],[217,1],[268,3]]},"337":{"position":[[175,1],[272,1],[300,2]]},"342":{"position":[[97,1],[128,1],[147,2]]},"343":{"position":[[97,1],[128,1],[137,1],[153,6],[176,1],[178,2],[225,1],[237,5],[243,1],[245,2],[248,1]]},"347":{"position":[[256,2]]},"348":{"position":[[151,1],[200,5],[206,3],[242,1],[251,1],[276,7],[284,1],[286,2],[307,1],[356,5],[362,3],[398,1],[407,1],[432,7],[440,1],[442,2],[458,1],[460,1],[462,1],[519,2],[522,1],[576,1],[578,1],[601,1]]},"352":{"position":[[205,1],[254,5],[260,3],[296,1],[317,2],[344,1],[393,5],[399,3],[435,1],[459,2],[483,1],[549,1],[597,2],[600,1],[654,1],[656,3]]},"358":{"position":[[123,1]]},"359":{"position":[[763,4]]},"360":{"position":[[279,1],[371,2]]},"362":{"position":[[110,1],[128,1],[178,1],[209,1],[218,2],[221,2],[237,1],[239,1],[296,1],[298,2],[333,1],[350,2],[353,2],[400,1],[417,1],[419,1],[421,1],[485,2],[488,1],[490,2],[560,1],[562,1],[614,2],[617,1],[634,3],[655,1],[709,2],[826,1],[844,1],[894,1],[925,1],[934,2],[937,2],[961,1],[1043,1],[1051,1],[1068,2],[1083,1],[1100,1],[1102,1],[1104,2],[1146,3],[1162,3],[1188,1],[1294,2],[1368,2],[1543,1],[1561,1],[1611,1],[1642,1],[1651,2],[1654,2],[1670,1],[1672,1],[1722,1],[1730,1],[1789,1],[1797,1],[1814,2],[1824,1],[1858,1],[1860,2],[1929,1],[1931,1],[1933,1],[1935,1],[1937,2],[2075,2],[2078,1]]},"363":{"position":[[81,1],[142,1],[165,1],[167,1],[187,2],[190,1],[218,1],[313,1],[389,1],[408,1],[476,2],[479,1],[558,1],[800,1],[852,1],[861,1],[863,2],[866,1],[900,1],[909,2],[912,2]]},"364":{"position":[[7,1],[18,1],[124,1],[159,1],[250,1],[305,1],[372,1],[454,1],[463,1],[465,2],[468,1],[502,1],[511,2],[514,2]]},"365":{"position":[[7,1],[18,1],[124,1],[159,1],[202,1],[211,1],[233,2],[331,1],[413,1],[422,1],[424,2],[427,1],[461,1],[470,2],[473,2]]},"369":{"position":[[95,1],[108,1],[110,1],[145,1],[160,1],[176,1],[178,2],[196,1],[198,1],[378,1],[393,1],[401,1],[403,1],[419,1],[421,1],[444,1],[494,1],[518,1],[535,1],[598,1],[647,1],[665,1],[693,1],[704,1],[733,1],[757,1],[827,1],[836,1],[897,1],[899,1]]},"395":{"position":[[272,1],[299,3],[331,1],[400,1],[402,2]]},"397":{"position":[[112,1],[120,1]]},"398":{"position":[[872,2],[881,1],[910,1]]},"399":{"position":[[224,2]]},"434":{"position":[[122,1],[137,1],[201,1],[219,2]]},"450":{"position":[[118,1],[142,1],[163,2]]},"466":{"position":[[637,2],[673,1],[691,1],[748,1],[788,2],[874,3],[930,2],[964,1],[973,1],[1016,1],[1103,2],[1141,1],[1150,1],[1152,3]]},"472":{"position":[[247,2],[285,1],[287,2],[313,1],[328,1],[344,1],[346,1],[369,1],[400,1],[424,1],[432,1],[449,1],[451,1],[461,2],[464,3],[468,1],[498,1],[522,1],[530,1],[541,1],[543,1],[553,2],[556,3],[577,1],[588,1],[620,1],[644,1],[667,3],[726,1],[735,1],[832,1],[834,1],[1065,1],[1096,1],[1098,2],[1117,2],[1120,1],[1143,1],[1221,3]]},"473":{"position":[[468,1],[499,1],[501,2],[513,2],[546,1],[548,2],[584,2],[616,1],[618,2],[653,2],[687,1],[689,2],[727,2]]},"474":{"position":[[552,1],[593,1],[629,1],[631,1],[644,3],[648,2],[651,1],[673,1],[756,1],[781,1],[789,1],[791,3],[801,1],[817,1],[819,1],[842,1],[856,1],[858,2],[867,1],[882,1],[884,2],[887,2],[972,1],[994,1],[1070,1],[1072,1],[1074,2],[1113,1],[1141,1],[1172,1],[1203,1],[1227,1],[1235,1],[1243,1],[1245,1],[1350,1],[1363,1],[1461,1],[1463,1],[1472,1],[1505,1],[1507,1]]},"475":{"position":[[348,1],[350,1],[352,2],[355,3],[359,1],[382,1],[390,1],[392,3],[402,1],[418,1],[420,1],[443,1],[472,1],[496,1],[498,2],[501,3],[505,1],[533,1],[557,1],[559,2],[562,3],[566,1],[596,1],[620,1],[622,2],[625,3],[629,1],[638,1],[729,1],[731,1]]},"476":{"position":[[445,2],[514,1],[549,1],[566,1],[568,2],[577,1],[579,2],[596,1],[598,2],[601,3],[605,1],[628,1],[651,1],[701,2],[710,1],[719,1],[737,1],[739,1],[741,2]]},"478":{"position":[[162,1],[208,1],[245,1],[247,3],[328,1],[414,1],[422,1],[432,2],[478,1],[480,2],[505,1],[590,1],[598,1],[608,2],[637,1],[639,2],[664,1],[673,1],[689,1],[691,1],[1037,2]]}},"keywords":{}}],["0",{"_index":1116,"title":{},"content":{"167":{"position":[[487,1],[985,2]]},"173":{"position":[[449,1]]},"197":{"position":[[953,2]]},"202":{"position":[[948,2]]},"286":{"position":[[681,2]]},"298":{"position":[[1432,2]]},"303":{"position":[[925,2]]},"308":{"position":[[975,2]]},"318":{"position":[[786,2]]},"327":{"position":[[958,2]]},"476":{"position":[[264,1]]}},"keywords":{}}],["0.0",{"_index":1208,"title":{},"content":{"173":{"position":[[379,3]]}},"keywords":{}}],["0.036255",{"_index":547,"title":{},"content":{"21":{"position":[[1453,8]]}},"keywords":{}}],["0.038809",{"_index":549,"title":{},"content":{"21":{"position":[[1505,8]]}},"keywords":{}}],["0.042311",{"_index":553,"title":{},"content":{"21":{"position":[[1603,8]]}},"keywords":{}}],["0.048383",{"_index":551,"title":{},"content":{"21":{"position":[[1552,8]]}},"keywords":{}}],["0.066886",{"_index":564,"title":{},"content":{"21":{"position":[[1825,8]]}},"keywords":{}}],["0.073921",{"_index":543,"title":{},"content":{"21":{"position":[[1352,8]]}},"keywords":{}}],["0.080532",{"_index":562,"title":{},"content":{"21":{"position":[[1780,8]]}},"keywords":{}}],["0.083366",{"_index":555,"title":{},"content":{"21":{"position":[[1641,8]]}},"keywords":{}}],["0.083601",{"_index":558,"title":{},"content":{"21":{"position":[[1698,8]]}},"keywords":{}}],["0.094875",{"_index":556,"title":{},"content":{"21":{"position":[[1661,8]]}},"keywords":{}}],["0.095098",{"_index":545,"title":{},"content":{"21":{"position":[[1401,8]]}},"keywords":{}}],["0.156033",{"_index":541,"title":{},"content":{"21":{"position":[[1304,8]]}},"keywords":{}}],["0.19702",{"_index":560,"title":{},"content":{"21":{"position":[[1745,7]]}},"keywords":{}}],["0.x",{"_index":2025,"title":{"353":{"position":[[8,3]]}},"content":{"355":{"position":[[9,3]]}},"keywords":{}}],["0000",{"_index":1465,"title":{},"content":{"203":{"position":[[312,6]]}},"keywords":{}}],["01",{"_index":984,"title":{},"content":{"159":{"position":[[423,3]]},"166":{"position":[[467,2],[478,2],[554,2],[601,2],[615,2],[673,2]]}},"keywords":{}}],["02",{"_index":986,"title":{},"content":{"159":{"position":[[447,2],[450,3]]}},"keywords":{}}],["03",{"_index":969,"title":{},"content":{"159":{"position":[[265,3]]},"166":{"position":[[698,2]]},"395":{"position":[[137,3]]}},"keywords":{}}],["04",{"_index":972,"title":{},"content":{"159":{"position":[[289,3],[318,2],[420,2]]},"166":{"position":[[486,2],[557,2],[612,2],[659,2],[670,2],[709,2],[717,2]]}},"keywords":{}}],["05",{"_index":989,"title":{},"content":{"159":{"position":[[485,2]]},"166":{"position":[[565,2],[623,2],[648,2]]}},"keywords":{}}],["06",{"_index":1088,"title":{},"content":{"166":{"position":[[464,2]]}},"keywords":{}}],["08",{"_index":968,"title":{},"content":{"159":{"position":[[262,2]]},"166":{"position":[[695,2]]}},"keywords":{}}],["09",{"_index":971,"title":{},"content":{"159":{"position":[[286,2]]},"166":{"position":[[475,2],[529,2],[706,2]]}},"keywords":{}}],["1",{"_index":201,"title":{},"content":{"5":{"position":[[1390,2]]},"166":{"position":[[71,3]]},"173":{"position":[[387,1]]},"182":{"position":[[356,3]]},"197":{"position":[[878,3],[935,2]]},"202":{"position":[[873,3],[930,2]]},"286":{"position":[[606,3],[663,2]]},"287":{"position":[[310,3]]},"298":{"position":[[835,1],[1357,3],[1414,2]]},"299":{"position":[[253,2]]},"303":{"position":[[850,3],[907,2]]},"308":{"position":[[900,3],[957,2]]},"318":{"position":[[711,3],[768,2]]},"327":{"position":[[883,3],[940,2]]},"363":{"position":[[205,4],[308,4],[518,4]]},"466":{"position":[[640,2],[933,2]]},"474":{"position":[[733,2]]},"475":{"position":[[74,1]]}},"keywords":{}}],["1%.ftl",{"_index":2112,"title":{},"content":{"363":{"position":[[499,10]]}},"keywords":{}}],["1%.ftl}.j",{"_index":2113,"title":{},"content":{"363":{"position":[[545,12]]}},"keywords":{}}],["1%.json}.j",{"_index":2108,"title":{},"content":{"363":{"position":[[394,13]]}},"keywords":{}}],["1"",{"_index":1237,"title":{},"content":{"174":{"position":[[587,8],[789,8]]}},"keywords":{}}],["1.0",{"_index":1335,"title":{},"content":{"182":{"position":[[545,4]]}},"keywords":{}}],["1.x",{"_index":1926,"title":{"324":{"position":[[8,4]]},"353":{"position":[[15,3]]},"366":{"position":[[8,3]]}},"content":{"354":{"position":[[8,3]]},"355":{"position":[[172,3],[493,4]]},"356":{"position":[[8,3],[291,4]]}},"keywords":{}}],["10",{"_index":1093,"title":{"356":{"position":[[8,2]]}},"content":{"166":{"position":[[507,2]]},"219":{"position":[[426,2]]},"356":{"position":[[241,3]]}},"keywords":{}}],["10,000",{"_index":135,"title":{},"content":{"5":{"position":[[20,6]]}},"keywords":{}}],["100",{"_index":1309,"title":{},"content":{"179":{"position":[[32,3]]},"208":{"position":[[194,4]]}},"keywords":{}}],["1000",{"_index":1989,"title":{},"content":{"328":{"position":[[925,5]]}},"keywords":{}}],["1000000",{"_index":508,"title":{},"content":{"21":{"position":[[357,8]]}},"keywords":{}}],["11",{"_index":992,"title":{},"content":{"159":{"position":[[512,2]]},"166":{"position":[[518,2],[532,2]]},"219":{"position":[[415,3],[435,2]]}},"keywords":{}}],["11e6",{"_index":1243,"title":{},"content":{"174":{"position":[[688,4]]}},"keywords":{}}],["12",{"_index":194,"title":{"356":{"position":[[15,2]]}},"content":{"5":{"position":[[1311,3],[1402,2]]},"159":{"position":[[488,3]]},"166":{"position":[[568,2],[576,2],[626,2]]},"174":{"position":[[1048,2]]},"356":{"position":[[235,2]]},"394":{"position":[[64,2]]},"395":{"position":[[134,2]]}},"keywords":{}}],["128",{"_index":1239,"title":{},"content":{"174":{"position":[[630,4]]}},"keywords":{}}],["12t21:21:08.921z"",{"_index":1260,"title":{},"content":{"174":{"position":[[1051,23]]}},"keywords":{}}],["15",{"_index":1987,"title":{},"content":{"328":{"position":[[915,2]]}},"keywords":{}}],["150m",{"_index":2078,"title":{},"content":{"359":{"position":[[1138,5]]}},"keywords":{}}],["1592234975665",{"_index":1337,"title":{},"content":{"182":{"position":[[593,14]]}},"keywords":{}}],["16f6",{"_index":1481,"title":{},"content":{"208":{"position":[[267,4]]}},"keywords":{}}],["17",{"_index":1094,"title":{},"content":{"166":{"position":[[510,2]]}},"keywords":{}}],["19",{"_index":196,"title":{},"content":{"5":{"position":[[1326,3]]}},"keywords":{}}],["1:123456789012:function:shop",{"_index":1233,"title":{},"content":{"174":{"position":[[525,32]]}},"keywords":{}}],["1m",{"_index":570,"title":{},"content":{"21":{"position":[[1895,3]]}},"keywords":{}}],["2",{"_index":1068,"title":{},"content":{"166":{"position":[[43,3]]},"466":{"position":[[791,2],[1106,2]]}},"keywords":{}}],["2.x",{"_index":1881,"title":{"322":{"position":[[8,3]]},"323":{"position":[[8,3]]},"366":{"position":[[15,3]]},"396":{"position":[[8,3]]}},"content":{},"keywords":{}}],["20",{"_index":1100,"title":{},"content":{"166":{"position":[[651,2]]}},"keywords":{}}],["200",{"_index":182,"title":{},"content":{"5":{"position":[[982,4]]},"168":{"position":[[524,4]]},"186":{"position":[[674,4]]},"192":{"position":[[201,4]]},"198":{"position":[[151,4]]},"203":{"position":[[149,4]]},"220":{"position":[[545,4]]},"221":{"position":[[628,4]]},"229":{"position":[[752,4]]},"260":{"position":[[173,4]]},"266":{"position":[[196,4]]},"278":{"position":[[169,4]]},"287":{"position":[[152,4]]},"304":{"position":[[165,4]]},"309":{"position":[[166,4]]},"319":{"position":[[139,4]]},"324":{"position":[[858,3]]},"348":{"position":[[265,4],[421,4]]},"438":{"position":[[49,3]]}},"keywords":{}}],["2016",{"_index":960,"title":{},"content":{"159":{"position":[[50,7]]}},"keywords":{}}],["2017",{"_index":203,"title":{},"content":{"5":{"position":[[1448,5]]},"159":{"position":[[176,4]]},"166":{"position":[[690,4],[701,4]]}},"keywords":{}}],["2018",{"_index":1099,"title":{},"content":{"166":{"position":[[643,4]]}},"keywords":{}}],["2019",{"_index":2167,"title":{},"content":{"395":{"position":[[129,4]]}},"keywords":{}}],["2020",{"_index":1101,"title":{},"content":{"166":{"position":[[654,4],[712,4]]},"394":{"position":[[59,4]]}},"keywords":{}}],["2021",{"_index":987,"title":{},"content":{"159":{"position":[[454,4]]},"166":{"position":[[596,4],[607,4],[665,4]]}},"keywords":{}}],["2022",{"_index":1092,"title":{},"content":{"166":{"position":[[502,4],[513,4],[549,4],[560,4],[571,4],[618,4]]}},"keywords":{}}],["2023",{"_index":1087,"title":{},"content":{"166":{"position":[[459,4],[470,4],[524,4]]}},"keywords":{}}],["2025",{"_index":1089,"title":{},"content":{"166":{"position":[[481,4]]}},"keywords":{}}],["2027",{"_index":204,"title":{},"content":{"5":{"position":[[1463,4]]}},"keywords":{}}],["24",{"_index":993,"title":{},"content":{"159":{"position":[[515,3]]},"166":{"position":[[521,2],[604,2]]}},"keywords":{}}],["25",{"_index":975,"title":{},"content":{"159":{"position":[[321,3]]},"166":{"position":[[662,2],[720,2]]}},"keywords":{}}],["2nd",{"_index":999,"title":{},"content":{"159":{"position":[[582,3]]}},"keywords":{}}],["3",{"_index":205,"title":{},"content":{"5":{"position":[[1505,2]]},"475":{"position":[[79,1]]}},"keywords":{}}],["3.x",{"_index":1918,"title":{"323":{"position":[[14,4]]},"396":{"position":[[15,3]]},"435":{"position":[[8,3]]}},"content":{},"keywords":{}}],["30",{"_index":1090,"title":{},"content":{"166":{"position":[[489,2]]},"260":{"position":[[243,3]]}},"keywords":{}}],["31",{"_index":1097,"title":{},"content":{"166":{"position":[[579,2]]}},"keywords":{}}],["4",{"_index":206,"title":{},"content":{"5":{"position":[[1519,2]]}},"keywords":{}}],["4.x",{"_index":1882,"title":{"322":{"position":[[14,4]]},"435":{"position":[[15,3]]}},"content":{},"keywords":{}}],["406",{"_index":1558,"title":{},"content":{"228":{"position":[[881,5]]}},"keywords":{}}],["408",{"_index":674,"title":{},"content":{"34":{"position":[[1438,3]]},"37":{"position":[[1563,3]]},"43":{"position":[[1438,3]]},"91":{"position":[[1438,3]]},"146":{"position":[[1450,3]]},"476":{"position":[[733,3]]}},"keywords":{}}],["415",{"_index":1628,"title":{},"content":{"247":{"position":[[167,3]]},"251":{"position":[[352,3]]},"273":{"position":[[60,3]]}},"keywords":{}}],["422",{"_index":1602,"title":{},"content":{"232":{"position":[[1766,4]]},"244":{"position":[[324,4]]},"456":{"position":[[11,3]]}},"keywords":{}}],["422b1569",{"_index":1480,"title":{},"content":{"208":{"position":[[257,9]]}},"keywords":{}}],["4a03",{"_index":1482,"title":{},"content":{"208":{"position":[[272,4]]}},"keywords":{}}],["50",{"_index":2077,"title":{},"content":{"359":{"position":[[1135,2]]},"476":{"position":[[675,3]]}},"keywords":{}}],["500",{"_index":1623,"title":{},"content":{"243":{"position":[[352,3]]},"375":{"position":[[74,3],[184,3]]},"438":{"position":[[85,3]]}},"keywords":{}}],["5432",{"_index":1814,"title":{},"content":{"287":{"position":[[399,4]]}},"keywords":{}}],["5555",{"_index":766,"title":{},"content":{"103":{"position":[[469,4]]}},"keywords":{}}],["5timeoutearlyrespons",{"_index":2187,"title":{},"content":{"398":{"position":[[781,22]]}},"keywords":{}}],["6",{"_index":2052,"title":{"356":{"position":[[42,1]]}},"content":{},"keywords":{}}],["6.x",{"_index":2054,"title":{},"content":{"356":{"position":[[57,3]]}},"keywords":{}}],["60",{"_index":1988,"title":{},"content":{"328":{"position":[[920,2]]}},"keywords":{}}],["66.141835",{"_index":565,"title":{},"content":{"21":{"position":[[1844,9]]}},"keywords":{}}],["7",{"_index":1531,"title":{},"content":{"220":{"position":[[427,1]]},"221":{"position":[[510,1]]}},"keywords":{}}],["7b61",{"_index":1242,"title":{},"content":{"174":{"position":[[683,4]]}},"keywords":{}}],["8",{"_index":1427,"title":{"356":{"position":[[48,1]]}},"content":{"194":{"position":[[294,3]]},"220":{"position":[[386,1]]},"221":{"position":[[469,1]]},"412":{"position":[[49,2]]}},"keywords":{}}],["8.x",{"_index":2055,"title":{},"content":{"356":{"position":[[65,3]]}},"keywords":{}}],["9",{"_index":1077,"title":{},"content":{"166":{"position":[[175,3]]}},"keywords":{}}],["93e812345678"",{"_index":1245,"title":{},"content":{"174":{"position":[[698,19]]}},"keywords":{}}],["99999",{"_index":2303,"title":{},"content":{"476":{"position":[[454,7]]}},"keywords":{}}],["9a41",{"_index":1244,"title":{},"content":{"174":{"position":[[693,4]]}},"keywords":{}}],["_",{"_index":1495,"title":{},"content":{"212":{"position":[[366,3]]},"232":{"position":[[1649,3]]},"233":{"position":[[199,3]]},"244":{"position":[[267,3]]},"248":{"position":[[492,3]]},"252":{"position":[[669,3]]},"260":{"position":[[462,3]]},"266":{"position":[[675,3]]},"270":{"position":[[392,3]]},"274":{"position":[[559,3]]},"299":{"position":[[394,3]]}},"keywords":{}}],["__dirnam",{"_index":452,"title":{},"content":{"15":{"position":[[202,9],[352,9]]}},"keywords":{}}],["__filenam",{"_index":450,"title":{},"content":{"15":{"position":[[152,10]]}},"keywords":{}}],["__middlewar",{"_index":2191,"title":{},"content":{"398":{"position":[[1020,13]]}},"keywords":{}}],["_context",{"_index":1223,"title":{},"content":{"174":{"position":[[212,9]]},"178":{"position":[[359,9]]},"182":{"position":[[250,9]]},"186":{"position":[[530,9]]}},"keywords":{}}],["_event",{"_index":1222,"title":{},"content":{"174":{"position":[[203,8]]},"178":{"position":[[350,8]]},"182":{"position":[[232,8]]}},"keywords":{}}],["abil",{"_index":2164,"title":{},"content":{"395":{"position":[[88,7]]}},"keywords":{}}],["abort",{"_index":1108,"title":{},"content":{"167":{"position":[[184,5]]}},"keywords":{}}],["abortcontrol",{"_index":1125,"title":{},"content":{"167":{"position":[[748,16]]},"398":{"position":[[514,15]]},"476":{"position":[[130,15]]}},"keywords":{}}],["abortcontrolerremov",{"_index":2230,"title":{},"content":{"437":{"position":[[20,20]]}},"keywords":{}}],["abortcontroller.set",{"_index":1120,"title":{},"content":{"167":{"position":[[537,19]]}},"keywords":{}}],["abov",{"_index":1034,"title":{},"content":{"163":{"position":[[380,7]]},"174":{"position":[[396,5]]},"178":{"position":[[514,5]]},"182":{"position":[[439,5]]},"473":{"position":[[745,6]]}},"keywords":{}}],["accept",{"_index":1197,"title":{},"content":{"173":{"position":[[18,7],[482,7]]},"177":{"position":[[18,7],[376,7]]},"181":{"position":[[18,7],[297,7]]},"185":{"position":[[11,7]]},"239":{"position":[[313,7]]},"265":{"position":[[217,6],[533,7]]},"266":{"position":[[589,9]]},"277":{"position":[[61,7],[203,7]]},"281":{"position":[[144,6]]},"332":{"position":[[29,7]]},"472":{"position":[[115,7]]}},"keywords":{}}],["acceptevent.preferredcontenttyp",{"_index":1709,"title":{},"content":{"265":{"position":[[235,32]]}},"keywords":{}}],["access",{"_index":1030,"title":{},"content":{"163":{"position":[[168,6],[279,6]]},"232":{"position":[[45,6],[315,6],[405,6],[882,6],[972,6],[1069,6],[1168,6]]},"322":{"position":[[698,9]]},"359":{"position":[[968,6]]},"424":{"position":[[17,6]]},"475":{"position":[[828,6]]}},"keywords":{}}],["accesstoken",{"_index":1980,"title":{},"content":{"328":{"position":[[178,12],[757,12],[1059,15]]}},"keywords":{}}],["account",{"_index":1113,"title":{},"content":{"167":{"position":[[398,7]]}},"keywords":{}}],["action",{"_index":1486,"title":{},"content":{"208":{"position":[[376,7]]}},"keywords":{}}],["activ",{"_index":1144,"title":{},"content":{"167":{"position":[[1468,6]]},"322":{"position":[[441,6]]}},"keywords":{}}],["actual",{"_index":1398,"title":{},"content":{"188":{"position":[[536,6]]}},"keywords":{}}],["ad",{"_index":185,"title":{},"content":{"5":{"position":[[1061,5]]},"159":{"position":[[549,6]]},"165":{"position":[[23,6]]},"181":{"position":[[540,6]]},"281":{"position":[[319,6]]},"298":{"position":[[894,5]]},"315":{"position":[[42,5]]},"374":{"position":[[0,5]]},"375":{"position":[[0,5],[124,5]]},"391":{"position":[[39,5]]},"395":{"position":[[75,5]]},"398":{"position":[[912,5]]}},"keywords":{}}],["add",{"_index":74,"title":{},"content":{"2":{"position":[[545,3]]},"5":{"position":[[1149,3]]},"160":{"position":[[834,3]]},"178":{"position":[[611,3]]},"182":{"position":[[1188,3]]},"199":{"position":[[20,3]]},"204":{"position":[[20,3]]},"255":{"position":[[384,4]]},"264":{"position":[[415,3]]},"288":{"position":[[20,3]]},"295":{"position":[[20,3]]},"298":{"position":[[1651,3]]},"300":{"position":[[20,3]]},"305":{"position":[[20,3]]},"310":{"position":[[20,3]]},"320":{"position":[[20,3]]},"329":{"position":[[20,3]]},"344":{"position":[[20,3]]},"361":{"position":[[120,4]]},"382":{"position":[[10,4]]},"404":{"position":[[0,3]]},"406":{"position":[[0,3]]},"419":{"position":[[0,3]]},"450":{"position":[[48,3]]},"451":{"position":[[0,3]]},"466":{"position":[[1109,3]]}},"keywords":{}}],["addit",{"_index":120,"title":{},"content":{"4":{"position":[[367,10]]},"171":{"position":[[289,10]]},"183":{"position":[[505,10]]},"264":{"position":[[419,10]]},"359":{"position":[[307,10]]}},"keywords":{}}],["addition",{"_index":600,"title":{},"content":{"21":{"position":[[2582,13]]},"151":{"position":[[396,13]]},"174":{"position":[[2117,13]]},"178":{"position":[[1388,13]]},"385":{"position":[[4,12]]}},"keywords":{}}],["address",{"_index":1687,"title":{},"content":{"260":{"position":[[247,8]]}},"keywords":{}}],["adjust",{"_index":1527,"title":{},"content":{"220":{"position":[[369,8]]},"221":{"position":[[452,8]]}},"keywords":{}}],["adopt",{"_index":112,"title":{},"content":{"4":{"position":[[200,7]]},"164":{"position":[[68,8]]}},"keywords":{}}],["advanc",{"_index":1975,"title":{},"content":{"327":{"position":[[1277,8]]},"398":{"position":[[682,8]]}},"keywords":{}}],["advantag",{"_index":2217,"title":{},"content":{"426":{"position":[[25,9]]},"474":{"position":[[364,9]]}},"keywords":{}}],["after(async",{"_index":2272,"title":{},"content":{"473":{"position":[[587,12]]}},"keywords":{}}],["after)middleware1",{"_index":1040,"title":{},"content":{"163":{"position":[[527,18]]}},"keywords":{}}],["after)middleware2",{"_index":1039,"title":{},"content":{"163":{"position":[[508,18]]}},"keywords":{}}],["afterhandl",{"_index":523,"title":{},"content":{"21":{"position":[[682,12],[853,13]]},"22":{"position":[[542,12],[713,13]]}},"keywords":{}}],["aftermiddlewar",{"_index":520,"title":{},"content":{"21":{"position":[[605,15],[821,16]]},"22":{"position":[[465,15],[681,16]]}},"keywords":{}}],["ag",{"_index":1591,"title":{},"content":{"232":{"position":[[991,3]]},"260":{"position":[[238,4]]}},"keywords":{}}],["against",{"_index":1152,"title":{},"content":{"168":{"position":[[462,7]]},"179":{"position":[[105,7]]},"232":{"position":[[787,7]]},"281":{"position":[[1128,7]]}},"keywords":{}}],["aggreg",{"_index":1308,"title":{},"content":{"179":{"position":[[14,11]]}},"keywords":{}}],["airbnb/nod",{"_index":611,"title":{},"content":{"22":{"position":[[21,13]]}},"keywords":{}}],["ajv",{"_index":300,"title":{},"content":{"7":{"position":[[411,6],[429,6],[448,6],[481,6],[521,6],[560,6]]},"21":{"position":[[2117,3]]},"322":{"position":[[129,4],[134,3]]},"358":{"position":[[115,3]]},"359":{"position":[[57,3],[208,3],[468,3]]},"360":{"position":[[48,3],[66,3],[76,3],[89,3],[112,3],[126,3]]},"361":{"position":[[47,3]]},"363":{"position":[[155,4],[169,3],[192,3],[294,3],[510,3]]},"365":{"position":[[218,4],[236,4]]},"394":{"position":[[9,3],[127,3],[258,3],[328,3]]},"466":{"position":[[325,3],[980,4]]}},"keywords":{}}],["ajv/.runkit_examples.j",{"_index":299,"title":{},"content":{"7":{"position":[[384,26]]}},"keywords":{}}],["ajv/lib",{"_index":298,"title":{},"content":{"7":{"position":[[373,10]]}},"keywords":{}}],["ajvclass",{"_index":2082,"title":{},"content":{"360":{"position":[[244,8]]}},"keywords":{}}],["alexa",{"_index":622,"title":{"26":{"position":[[0,5]]}},"content":{"27":{"position":[[22,5]]}},"keywords":{}}],["alias",{"_index":2226,"title":{},"content":{"429":{"position":[[195,8]]}},"keywords":{}}],["align",{"_index":1080,"title":{},"content":{"166":{"position":[[252,9]]}},"keywords":{}}],["aliv",{"_index":17,"title":{},"content":{"0":{"position":[[257,5]]}},"keywords":{}}],["allerror",{"_index":2084,"title":{},"content":{"360":{"position":[[317,10]]}},"keywords":{}}],["alloc",{"_index":1642,"title":{},"content":{"251":{"position":[[652,9]]}},"keywords":{}}],["allow",{"_index":10,"title":{},"content":{"0":{"position":[[143,6]]},"2":{"position":[[119,6]]},"4":{"position":[[46,6],[287,6]]},"6":{"position":[[660,6]]},"12":{"position":[[350,5]]},"161":{"position":[[45,5]]},"167":{"position":[[234,5]]},"174":{"position":[[1642,6],[2335,6]]},"182":{"position":[[1174,6]]},"224":{"position":[[143,6]]},"228":{"position":[[35,6],[125,6],[230,6],[322,6],[428,6],[520,6],[627,6],[722,6]]},"232":{"position":[[60,5],[330,5],[420,5],[739,7],[1709,5]]},"233":{"position":[[259,5]]},"251":{"position":[[944,8]]},"265":{"position":[[167,6],[271,6],[390,5]]},"291":{"position":[[735,7]]},"354":{"position":[[241,6]]},"359":{"position":[[348,5]]},"361":{"position":[[70,6]]},"398":{"position":[[533,5],[627,5],[939,5]]},"406":{"position":[[33,5]]},"408":{"position":[[72,5]]},"415":{"position":[[6,5]]},"424":{"position":[[6,5]]},"433":{"position":[[6,5]]},"466":{"position":[[96,8],[386,5],[475,5]]},"473":{"position":[[822,5]]},"475":{"position":[[821,6]]},"476":{"position":[[177,5]]}},"keywords":{}}],["along",{"_index":1971,"title":{},"content":{"327":{"position":[[1209,5]]}},"keywords":{}}],["alpha",{"_index":1070,"title":{},"content":{"166":{"position":[[53,5],[214,6],[408,5]]}},"keywords":{}}],["alreadi",{"_index":839,"title":{},"content":{"148":{"position":[[564,7]]},"153":{"position":[[1070,7]]},"189":{"position":[[1371,7]]},"251":{"position":[[730,7]]},"347":{"position":[[831,7]]},"355":{"position":[[648,7]]},"398":{"position":[[346,7]]}},"keywords":{}}],["altern",{"_index":1117,"title":{},"content":{"167":{"position":[[495,13]]},"370":{"position":[[85,11]]}},"keywords":{}}],["although",{"_index":1132,"title":{},"content":{"167":{"position":[[1068,8]]}},"keywords":{}}],["alway",{"_index":2263,"title":{},"content":{"472":{"position":[[922,6]]}},"keywords":{}}],["amazon",{"_index":620,"title":{},"content":{"24":{"position":[[61,6]]},"30":{"position":[[22,6]]},"33":{"position":[[22,6]]},"42":{"position":[[22,6]]},"57":{"position":[[22,6]]},"67":{"position":[[18,6]]},"69":{"position":[[22,6]]},"76":{"position":[[22,6]]},"78":{"position":[[22,6]]},"81":{"position":[[22,6]]},"90":{"position":[[22,6]]},"93":{"position":[[18,6]]},"99":{"position":[[22,6]]},"106":{"position":[[22,6],[66,6]]},"109":{"position":[[18,6]]},"112":{"position":[[22,6]]},"115":{"position":[[22,6]]},"118":{"position":[[22,6]]},"121":{"position":[[22,6]]},"130":{"position":[[22,6]]},"133":{"position":[[22,6]]},"138":{"position":[[22,6]]},"141":{"position":[[27,6]]},"145":{"position":[[22,6]]},"170":{"position":[[374,6],[612,6]]},"179":{"position":[[429,6]]},"323":{"position":[[577,6]]},"324":{"position":[[1461,6]]}},"keywords":{}}],["amount",{"_index":172,"title":{},"content":{"5":{"position":[[826,6],[1573,7]]}},"keywords":{}}],["amp",{"_index":1514,"title":{},"content":{"219":{"position":[[429,5],[587,5]]},"359":{"position":[[1097,5]]},"363":{"position":[[43,5]]},"397":{"position":[[30,5]]}},"keywords":{}}],["amp;&",{"_index":867,"title":{},"content":{"151":{"position":[[850,10]]}},"keywords":{}}],["and",{"_index":2198,"title":{},"content":{"405":{"position":[[28,4]]}},"keywords":{}}],["and/or",{"_index":1969,"title":{},"content":{"327":{"position":[[1141,6]]}},"keywords":{}}],["annot",{"_index":1282,"title":{},"content":{"175":{"position":[[60,12]]},"178":{"position":[[618,10],[908,12]]}},"keywords":{}}],["anymor",{"_index":2057,"title":{},"content":{"356":{"position":[[156,7]]}},"keywords":{}}],["anyth",{"_index":289,"title":{},"content":{"7":{"position":[[207,8]]}},"keywords":{}}],["anyway",{"_index":233,"title":{},"content":{"6":{"position":[[159,7]]}},"keywords":{}}],["anywher",{"_index":1897,"title":{},"content":{"322":{"position":[[761,8]]}},"keywords":{}}],["apach",{"_index":739,"title":{},"content":{"96":{"position":[[31,6]]}},"keywords":{}}],["api",{"_index":142,"title":{"23":{"position":[[0,3]]},"29":{"position":[[0,3]]},"32":{"position":[[0,3]]},"41":{"position":[[0,3]]},"342":{"position":[[0,3]]}},"content":{"5":{"position":[[102,3]]},"24":{"position":[[68,3]]},"30":{"position":[[29,3],[63,4]]},"33":{"position":[[29,3],[58,4]]},"42":{"position":[[29,3],[58,4]]},"90":{"position":[[29,3],[58,4]]},"168":{"position":[[204,3]]},"174":{"position":[[563,3],[765,3]]},"178":{"position":[[1257,4]]},"197":{"position":[[562,3]]},"202":{"position":[[558,3]]},"286":{"position":[[289,3]]},"298":{"position":[[556,3]]},"303":{"position":[[541,3]]},"308":{"position":[[590,3]]},"318":{"position":[[401,3]]},"322":{"position":[[1373,3]]},"327":{"position":[[521,3]]},"347":{"position":[[382,3]]},"432":{"position":[[34,3]]},"474":{"position":[[486,5]]},"478":{"position":[[110,3]]}},"keywords":{}}],["api:manageconnectionsif",{"_index":2002,"title":{},"content":{"340":{"position":[[755,23]]}},"keywords":{}}],["apigatewaymanagementapi",{"_index":419,"title":{},"content":{"13":{"position":[[465,25]]},"15":{"position":[[672,25]]},"339":{"position":[[133,23]]},"340":{"position":[[60,23]]},"344":{"position":[[40,23]]}},"keywords":{}}],["apigatewaymanagementapi.awsclientopt",{"_index":2001,"title":{},"content":{"340":{"position":[[180,40]]}},"keywords":{}}],["apigatewaymanagementapicli",{"_index":2000,"title":{},"content":{"340":{"position":[[28,31],[270,29]]}},"keywords":{}}],["apigatewayproxyev",{"_index":1149,"title":{},"content":{"168":{"position":[[258,21],[359,22]]},"478":{"position":[[164,21]]}},"keywords":{}}],["apigatewayproxyresult",{"_index":1150,"title":{},"content":{"168":{"position":[[280,21],[479,23]]},"478":{"position":[[186,21]]}},"keywords":{}}],["apigatewayproxyresult>",{"_index":2308,"title":{},"content":{"478":{"position":[[296,25],[388,25],[564,25]]}},"keywords":{}}],["apisinput",{"_index":619,"title":{},"content":{"24":{"position":[[45,9]]}},"keywords":{}}],["apitoken",{"_index":1845,"title":{},"content":{"299":{"position":[[187,9]]}},"keywords":{}}],["apollo",{"_index":827,"title":{"148":{"position":[[0,6]]}},"content":{"148":{"position":[[0,6],[210,7],[587,6]]}},"keywords":{}}],["apollo/feder",{"_index":832,"title":{},"content":{"148":{"position":[[270,20]]}},"keywords":{}}],["apolloserv",{"_index":829,"title":{},"content":{"148":{"position":[[185,13],[417,14]]}},"keywords":{}}],["app",{"_index":1561,"title":{},"content":{"228":{"position":[[1006,4]]}},"keywords":{}}],["appconfig",{"_index":778,"title":{"195":{"position":[[0,9]]}},"content":{"104":{"position":[[322,10],[836,10]]},"196":{"position":[[131,9]]},"197":{"position":[[756,11]]},"198":{"position":[[39,9],[252,11]]},"199":{"position":[[40,9]]},"283":{"position":[[0,10]]},"323":{"position":[[566,10]]}},"keywords":{}}],["appconfig.awsclientopt",{"_index":1436,"title":{},"content":{"197":{"position":[[158,26]]},"303":{"position":[[144,26]]}},"keywords":{}}],["appconfig.dynamodb",{"_index":1794,"title":{},"content":{"283":{"position":[[42,19]]}},"keywords":{}}],["appconfig:getconfigur",{"_index":1455,"title":{},"content":{"197":{"position":[[1118,26]]}},"keywords":{}}],["appconfigcli",{"_index":1433,"title":{},"content":{"197":{"position":[[28,17],[46,15],[234,15]]}},"keywords":{}}],["appconfigmiddlewar",{"_index":773,"title":{},"content":{"104":{"position":[[81,19],[287,21]]}},"keywords":{}}],["appear",{"_index":1307,"title":{},"content":{"178":{"position":[[1345,6]]}},"keywords":{}}],["append",{"_index":1271,"title":{},"content":{"174":{"position":[[1656,6]]}},"keywords":{}}],["appli",{"_index":1517,"title":{},"content":{"219":{"position":[[514,6]]},"282":{"position":[[306,7]]},"298":{"position":[[650,5]]},"375":{"position":[[92,7]]},"399":{"position":[[82,7]]},"405":{"position":[[6,7]]}},"keywords":{}}],["applic",{"_index":262,"title":{"35":{"position":[[0,11]]}},"content":{"6":{"position":[[879,11]]},"36":{"position":[[25,11]]},"104":{"position":[[335,12]]},"170":{"position":[[129,13]]},"182":{"position":[[1260,11]]},"198":{"position":[[287,12]]},"251":{"position":[[848,12]]}},"keywords":{}}],["application/json",{"_index":683,"title":{},"content":{"34":{"position":[[1653,20],[2135,18]]},"37":{"position":[[1778,20],[2260,18]]},"43":{"position":[[1653,20],[2146,18]]},"91":{"position":[[1678,20],[2160,18]]},"146":{"position":[[1665,20],[2147,18]]},"229":{"position":[[644,19],[986,19]]},"248":{"position":[[347,18]]},"263":{"position":[[340,18]]},"266":{"position":[[539,18]]}},"keywords":{}}],["application/x",{"_index":1732,"title":{},"content":{"274":{"position":[[437,14]]}},"keywords":{}}],["application/xml",{"_index":1572,"title":{},"content":{"229":{"position":[[498,18],[946,19]]}},"keywords":{}}],["application/xml;q=0.9",{"_index":1716,"title":{},"content":{"266":{"position":[[599,23]]}},"keywords":{}}],["application/yaml",{"_index":1574,"title":{},"content":{"229":{"position":[[579,19],[966,19]]}},"keywords":{}}],["application\\/json",{"_index":693,"title":{},"content":{"34":{"position":[[2048,22]]},"37":{"position":[[2173,22]]},"43":{"position":[[2048,22]]},"91":{"position":[[2073,22]]},"146":{"position":[[2060,22]]},"263":{"position":[[190,22]]},"266":{"position":[[378,22]]}},"keywords":{}}],["application\\/xml",{"_index":1699,"title":{},"content":{"263":{"position":[[85,21]]},"266":{"position":[[273,21]]}},"keywords":{}}],["applymiddlewar",{"_index":2190,"title":{},"content":{"398":{"position":[[998,17]]}},"keywords":{}}],["approach",{"_index":44,"title":{},"content":{"2":{"position":[[110,8]]},"6":{"position":[[1049,8]]},"167":{"position":[[432,11]]},"251":{"position":[[560,8]]},"355":{"position":[[460,9]]}},"keywords":{}}],["appsync",{"_index":710,"title":{"38":{"position":[[0,7]]}},"content":{"39":{"position":[[22,7]]}},"keywords":{}}],["arbitari",{"_index":1272,"title":{},"content":{"174":{"position":[[1663,8]]}},"keywords":{}}],["arbitrari",{"_index":1540,"title":{},"content":{"224":{"position":[[198,9]]}},"keywords":{}}],["argument",{"_index":1617,"title":{},"content":{"243":{"position":[[101,9]]},"322":{"position":[[815,9]]},"398":{"position":[[594,8]]}},"keywords":{}}],["arn:aws:rd",{"_index":1808,"title":{},"content":{"286":{"position":[[882,11]]}},"keywords":{}}],["around",{"_index":1169,"title":{},"content":{"170":{"position":[[443,6]]},"395":{"position":[[173,7]]},"476":{"position":[[99,6]]}},"keywords":{}}],["array",{"_index":946,"title":{},"content":{"157":{"position":[[394,5]]},"207":{"position":[[331,5]]},"232":{"position":[[707,7],[730,5]]},"277":{"position":[[214,5]]},"347":{"position":[[52,5]]},"351":{"position":[[48,5]]},"360":{"position":[[308,8]]},"363":{"position":[[249,5],[344,5]]},"399":{"position":[[47,5]]}},"keywords":{}}],["array[str",{"_index":1506,"title":{},"content":{"219":{"position":[[210,15]]}},"keywords":{}}],["array[{method",{"_index":2010,"title":{},"content":{"347":{"position":[[7,15]]}},"keywords":{}}],["array[{routekey",{"_index":2022,"title":{},"content":{"351":{"position":[[7,17]]}},"keywords":{}}],["arraysadd",{"_index":2157,"title":{},"content":{"385":{"position":[[98,9]]}},"keywords":{}}],["ask",{"_index":1711,"title":{},"content":{"265":{"position":[[336,3]]}},"keywords":{}}],["assert",{"_index":670,"title":{},"content":{"34":{"position":[[1254,6],[1329,6]]},"43":{"position":[[1254,6],[1329,6]]},"91":{"position":[[1254,6],[1329,6]]},"102":{"position":[[352,6],[427,6]]},"146":{"position":[[1266,6],[1341,6]]}},"keywords":{}}],["assum",{"_index":139,"title":{},"content":{"5":{"position":[[71,6]]},"283":{"position":[[510,7]]},"299":{"position":[[419,8]]},"393":{"position":[[24,6]]}},"keywords":{}}],["assumerol",{"_index":1877,"title":{},"content":{"319":{"position":[[259,11]]}},"keywords":{}}],["async",{"_index":38,"title":{},"content":{"2":{"position":[[38,5]]},"5":{"position":[[638,5]]},"153":{"position":[[887,5],[1150,5]]},"168":{"position":[[322,5]]},"174":{"position":[[197,5]]},"178":{"position":[[344,5]]},"182":{"position":[[226,5]]},"186":{"position":[[379,5],[516,5]]},"189":{"position":[[1113,5],[1451,5]]},"369":{"position":[[218,5],[311,5],[353,5],[496,5],[735,5]]},"472":{"position":[[402,5],[500,5],[622,5],[1067,5]]},"474":{"position":[[381,5],[1205,5]]},"475":{"position":[[474,5],[535,5],[598,5]]},"478":{"position":[[416,5],[592,5]]}},"keywords":{}}],["async/await",{"_index":2126,"title":{},"content":{"367":{"position":[[57,11],[228,11]]}},"keywords":{}}],["asynchron",{"_index":1175,"title":{},"content":{"170":{"position":[[645,14]]},"179":{"position":[[232,14]]},"182":{"position":[[953,14]]},"323":{"position":[[135,14],[331,14],[700,12]]}},"keywords":{}}],["asyncmiddi",{"_index":1941,"title":{},"content":{"324":{"position":[[589,10]]}},"keywords":{}}],["attach",{"_index":119,"title":{},"content":{"4":{"position":[[360,6]]},"5":{"position":[[1751,6]]},"156":{"position":[[395,6]]},"157":{"position":[[427,6],[905,6]]},"161":{"position":[[211,8]]},"163":{"position":[[354,8],[657,8]]},"398":{"position":[[293,6]]}},"keywords":{}}],["attribut",{"_index":1705,"title":{},"content":{"264":{"position":[[237,9],[300,9],[430,10]]},"282":{"position":[[441,10]]}},"keywords":{}}],["august",{"_index":964,"title":{},"content":{"159":{"position":[[169,6]]}},"keywords":{}}],["auth",{"_index":1950,"title":{},"content":{"324":{"position":[[1099,5]]}},"keywords":{}}],["authent",{"_index":122,"title":{},"content":{"4":{"position":[[399,15]]}},"keywords":{}}],["author",{"_index":123,"title":{"23":{"position":[[12,10]]}},"content":{"4":{"position":[[415,14]]},"7":{"position":[[1518,7]]},"24":{"position":[[24,11],[87,10]]},"324":{"position":[[1120,13],[1375,13]]}},"keywords":{}}],["auto",{"_index":1281,"title":{},"content":{"175":{"position":[[14,4]]}},"keywords":{}}],["automat",{"_index":1172,"title":{},"content":{"170":{"position":[[497,13]]},"174":{"position":[[1217,13]]},"178":{"position":[[706,13],[850,13],[1012,13],[1106,13],[1286,13]]},"232":{"position":[[161,13]]},"281":{"position":[[540,13],[734,13],[872,13],[997,13],[1065,13],[1172,13]]},"327":{"position":[[572,13]]},"347":{"position":[[803,13]]}},"keywords":{}}],["autoproxyrespons",{"_index":1947,"title":{},"content":{"324":{"position":[[941,18]]}},"keywords":{}}],["availablelanguag",{"_index":678,"title":{},"content":{"34":{"position":[[1592,19]]},"37":{"position":[[1717,19]]},"43":{"position":[[1592,19]]},"91":{"position":[[1617,19]]},"146":{"position":[[1604,19]]},"229":{"position":[[879,19]]}},"keywords":{}}],["availablemediatyp",{"_index":682,"title":{},"content":{"34":{"position":[[1632,20]]},"37":{"position":[[1757,20]]},"43":{"position":[[1632,20]]},"91":{"position":[[1657,20]]},"146":{"position":[[1644,20]]},"229":{"position":[[925,20]]}},"keywords":{}}],["avenu",{"_index":1689,"title":{},"content":{"260":{"position":[[266,7]]}},"keywords":{}}],["avoid",{"_index":1408,"title":{},"content":{"189":{"position":[[659,5]]},"315":{"position":[[266,5]]},"318":{"position":[[1024,7]]}},"keywords":{}}],["aw",{"_index":7,"title":{"24":{"position":[[0,3]]},"27":{"position":[[0,3]]},"30":{"position":[[0,3]]},"33":{"position":[[0,3]]},"36":{"position":[[0,3]]},"39":{"position":[[0,3]]},"42":{"position":[[0,3]]},"45":{"position":[[0,3]]},"48":{"position":[[0,3]]},"51":{"position":[[0,3]]},"54":{"position":[[0,3]]},"57":{"position":[[0,3]]},"60":{"position":[[0,3]]},"63":{"position":[[0,3]]},"67":{"position":[[0,3]]},"69":{"position":[[0,3]]},"72":{"position":[[0,3]]},"76":{"position":[[0,3]]},"78":{"position":[[0,3]]},"81":{"position":[[0,3]]},"84":{"position":[[0,3]]},"87":{"position":[[0,3]]},"90":{"position":[[0,3]]},"93":{"position":[[0,3]]},"96":{"position":[[0,3]]},"99":{"position":[[0,3]]},"101":{"position":[[4,3]]},"106":{"position":[[0,3]]},"109":{"position":[[0,3]]},"112":{"position":[[0,3]]},"115":{"position":[[0,3]]},"118":{"position":[[0,3]]},"121":{"position":[[0,3]]},"124":{"position":[[0,3]]},"127":{"position":[[0,3]]},"130":{"position":[[0,3]]},"133":{"position":[[0,3]]},"138":{"position":[[0,3]]},"141":{"position":[[0,3]]},"145":{"position":[[0,3]]},"151":{"position":[[0,3]]},"169":{"position":[[15,3]]}},"content":{"0":{"position":[[86,3]]},"4":{"position":[[74,3]]},"5":{"position":[[605,3]]},"6":{"position":[[44,3],[1062,3],[1158,3]]},"7":{"position":[[234,4]]},"13":{"position":[[440,3],[448,5],[513,5],[557,5],[608,5],[669,5],[733,5],[770,5]]},"15":{"position":[[647,3],[655,5],[720,5],[764,5],[815,5],[876,5],[940,5],[977,5]]},"24":{"position":[[13,3]]},"27":{"position":[[6,3]]},"30":{"position":[[6,3]]},"33":{"position":[[6,3]]},"36":{"position":[[6,3]]},"39":{"position":[[6,3]]},"42":{"position":[[6,3]]},"45":{"position":[[6,3]]},"48":{"position":[[6,3],[22,3]]},"51":{"position":[[6,3],[22,3]]},"54":{"position":[[6,3],[22,3]]},"57":{"position":[[6,3]]},"60":{"position":[[6,3],[22,3]]},"69":{"position":[[6,3]]},"72":{"position":[[6,3],[22,3]]},"76":{"position":[[6,3]]},"78":{"position":[[6,3]]},"81":{"position":[[6,3]]},"84":{"position":[[6,3],[22,3]]},"87":{"position":[[6,3],[22,3]]},"90":{"position":[[6,3]]},"99":{"position":[[6,3]]},"106":{"position":[[6,3],[41,3]]},"112":{"position":[[6,3]]},"115":{"position":[[6,3]]},"118":{"position":[[6,3]]},"121":{"position":[[6,3]]},"124":{"position":[[6,3]]},"128":{"position":[[152,4]]},"130":{"position":[[6,3]]},"133":{"position":[[6,3]]},"138":{"position":[[6,3]]},"141":{"position":[[12,3]]},"145":{"position":[[6,3]]},"151":{"position":[[0,3]]},"159":{"position":[[39,3]]},"166":{"position":[[267,3],[358,3]]},"168":{"position":[[309,4]]},"170":{"position":[[450,3],[571,3]]},"172":{"position":[[31,4]]},"174":{"position":[[77,5],[1471,3]]},"175":{"position":[[300,3],[322,3]]},"176":{"position":[[31,4]]},"178":{"position":[[78,5],[148,5],[1034,3],[1427,3]]},"180":{"position":[[31,4]]},"182":{"position":[[82,5]]},"184":{"position":[[31,4],[66,4],[91,4]]},"186":{"position":[[113,5],[203,5]]},"189":{"position":[[835,5]]},"194":{"position":[[62,5]]},"196":{"position":[[115,4]]},"197":{"position":[[118,3],[142,4],[483,3]]},"199":{"position":[[11,4],[24,4]]},"201":{"position":[[114,4],[139,4]]},"202":{"position":[[116,3],[140,4],[479,3]]},"204":{"position":[[11,4],[24,4]]},"207":{"position":[[43,3],[429,3]]},"277":{"position":[[122,3]]},"280":{"position":[[83,3]]},"281":{"position":[[54,3]]},"283":{"position":[[293,3],[404,3],[446,3],[552,3]]},"285":{"position":[[116,4]]},"286":{"position":[[100,3],[124,4]]},"288":{"position":[[11,4],[24,4]]},"290":{"position":[[124,4]]},"291":{"position":[[209,3],[233,4],[423,3],[522,3]]},"295":{"position":[[11,4],[24,4]]},"297":{"position":[[121,4]]},"298":{"position":[[128,3],[152,4],[477,3]]},"300":{"position":[[11,4],[24,4]]},"302":{"position":[[108,4]]},"303":{"position":[[104,3],[128,4],[462,3]]},"305":{"position":[[11,4],[24,4]]},"307":{"position":[[123,4]]},"308":{"position":[[132,3],[156,4],[511,3]]},"310":{"position":[[11,4],[24,4]]},"312":{"position":[[157,4]]},"317":{"position":[[109,4]]},"318":{"position":[[106,3],[130,4],[322,3]]},"320":{"position":[[11,4],[24,4]]},"322":{"position":[[53,3],[508,3],[716,3],[1110,3],[1369,3]]},"323":{"position":[[0,3],[59,3],[167,3],[504,3],[541,3],[562,3]]},"324":{"position":[[699,3],[717,3]]},"326":{"position":[[109,4]]},"327":{"position":[[106,3],[131,4],[397,3],[442,3]]},"329":{"position":[[11,4],[24,4]]},"339":{"position":[[117,4]]},"340":{"position":[[140,3],[164,4],[533,3]]},"344":{"position":[[11,4],[24,4]]},"347":{"position":[[223,3]]},"351":{"position":[[102,3]]},"356":{"position":[[112,3]]},"395":{"position":[[59,3],[71,3]]},"404":{"position":[[28,3]]},"459":{"position":[[15,3]]},"460":{"position":[[15,3]]},"461":{"position":[[15,3]]},"462":{"position":[[15,3]]},"464":{"position":[[15,3]]},"465":{"position":[[15,3]]},"469":{"position":[[15,3]]},"478":{"position":[[215,4]]}},"keywords":{}}],["await",{"_index":91,"title":{},"content":{"2":{"position":[[860,5],[983,5],[1211,5]]},"21":{"position":[[1219,5]]},"22":{"position":[[1081,5]]},"103":{"position":[[786,5]]},"104":{"position":[[725,5]]},"186":{"position":[[570,5]]},"194":{"position":[[133,5],[316,5]]},"294":{"position":[[177,5]]},"328":{"position":[[1040,5]]},"369":{"position":[[537,5],[600,5],[759,5]]},"434":{"position":[[139,5]]},"472":{"position":[[689,5]]},"474":{"position":[[1365,5]]}},"keywords":{}}],["awar",{"_index":1319,"title":{},"content":{"179":{"position":[[526,5]]}},"keywords":{}}],["aws/what",{"_index":2219,"title":{},"content":{"426":{"position":[[67,9]]}},"keywords":{}}],["aws_nodejs_connection_reuse_enabled=1",{"_index":9,"title":{},"content":{"0":{"position":[[100,37]]}},"keywords":{}}],["awsclient",{"_index":1432,"title":{},"content":{"197":{"position":[[0,9]]},"202":{"position":[[0,9]]},"286":{"position":[[0,9]]},"298":{"position":[[0,9]]},"303":{"position":[[0,9]]},"308":{"position":[[0,9]]},"318":{"position":[[0,9]]},"327":{"position":[[0,9]]},"340":{"position":[[0,9]]},"391":{"position":[[25,9]]}},"keywords":{}}],["awsclientassumerol",{"_index":1442,"title":{},"content":{"197":{"position":[[691,19]]},"202":{"position":[[687,19]]},"286":{"position":[[418,19]]},"291":{"position":[[644,19]]},"298":{"position":[[1164,19]]},"303":{"position":[[670,19]]},"308":{"position":[[719,19]]},"318":{"position":[[530,19]]},"327":{"position":[[702,19]]},"340":{"position":[[655,19]]}},"keywords":{}}],["awsclientcaptur",{"_index":799,"title":{},"content":{"128":{"position":[[237,17]]}},"keywords":{}}],["awsclientopt",{"_index":1847,"title":{},"content":{"299":{"position":[[216,17]]},"327":{"position":[[1356,16]]},"343":{"position":[[207,17]]}},"keywords":{}}],["awsclientoptions.endpoint",{"_index":2003,"title":{},"content":{"340":{"position":[[779,25]]}},"keywords":{}}],["awscontext",{"_index":1758,"title":{},"content":{"278":{"position":[[653,11]]}},"keywords":{}}],["b8f0",{"_index":1483,"title":{},"content":{"208":{"position":[[277,4]]}},"keywords":{}}],["babel",{"_index":467,"title":{"17":{"position":[[0,6]]}},"content":{},"keywords":{}}],["babel.config.json",{"_index":473,"title":{},"content":{"17":{"position":[[121,18]]}},"keywords":{}}],["babel/cli",{"_index":468,"title":{},"content":{"17":{"position":[[9,10]]}},"keywords":{}}],["babel/cor",{"_index":469,"title":{},"content":{"17":{"position":[[20,11]]}},"keywords":{}}],["babel/preset",{"_index":470,"title":{},"content":{"17":{"position":[[32,13]]}},"keywords":{}}],["back",{"_index":1003,"title":{},"content":{"160":{"position":[[145,4]]},"444":{"position":[[48,4]]}},"keywords":{}}],["balanc",{"_index":699,"title":{"35":{"position":[[17,8]]}},"content":{"36":{"position":[[42,8]]},"219":{"position":[[564,7]]}},"keywords":{}}],["banner:j",{"_index":387,"title":{},"content":{"12":{"position":[[21,9]]}},"keywords":{}}],["banner:js="import",{"_index":396,"title":{},"content":{"12":{"position":[[188,22]]}},"keywords":{}}],["bar",{"_index":1226,"title":{},"content":{"174":{"position":[[292,4]]},"248":{"position":[[462,5],[528,5]]},"252":{"position":[[705,5]]},"472":{"position":[[1215,5]]}},"keywords":{}}],["bare",{"_index":928,"title":{},"content":{"156":{"position":[[166,4]]}},"keywords":{}}],["base",{"_index":186,"title":{},"content":{"5":{"position":[[1067,4]]},"153":{"position":[[689,5]]},"170":{"position":[[877,5]]},"178":{"position":[[730,5]]},"189":{"position":[[915,5]]},"282":{"position":[[452,5]]},"298":{"position":[[759,5]]},"322":{"position":[[1404,5]]},"324":{"position":[[1145,5]]},"354":{"position":[[389,5]]}},"keywords":{}}],["base64",{"_index":1645,"title":{},"content":{"251":{"position":[[773,8]]}},"keywords":{}}],["basepersistencelay",{"_index":1368,"title":{},"content":{"185":{"position":[[59,23]]}},"keywords":{}}],["bash",{"_index":2104,"title":{},"content":{"363":{"position":[[76,4]]}},"keywords":{}}],["batch",{"_index":790,"title":{"117":{"position":[[3,5]]},"311":{"position":[[12,5]]},"391":{"position":[[12,5]]},"426":{"position":[[12,5]]},"463":{"position":[[12,5]]}},"content":{"118":{"position":[[32,5]]},"139":{"position":[[151,5]]},"282":{"position":[[548,5]]},"312":{"position":[[94,5]]},"314":{"position":[[73,5]]},"315":{"position":[[128,5]]},"426":{"position":[[108,5]]}},"keywords":{}}],["batches.idempot",{"_index":1179,"title":{},"content":{"170":{"position":[[771,19]]}},"keywords":{}}],["batches.w",{"_index":1791,"title":{},"content":{"282":{"position":[[592,10]]}},"keywords":{}}],["baz",{"_index":1227,"title":{},"content":{"174":{"position":[[297,5]]}},"keywords":{}}],["be",{"_index":608,"title":{},"content":{"21":{"position":[[2834,5]]},"167":{"position":[[645,5]]},"315":{"position":[[183,5]]},"394":{"position":[[153,5]]}},"keywords":{}}],["becom",{"_index":1064,"title":{},"content":{"165":{"position":[[125,8]]},"166":{"position":[[113,7]]},"429":{"position":[[188,6]]}},"keywords":{}}],["befor",{"_index":883,"title":{},"content":{"152":{"position":[[165,6]]},"153":{"position":[[265,8],[538,6],[1277,7]]},"157":{"position":[[954,8]]},"161":{"position":[[188,6],[291,6],[391,7],[630,6]]},"163":{"position":[[29,6],[51,6],[73,6],[791,6]]},"166":{"position":[[87,6]]},"167":{"position":[[205,6],[295,6]]},"179":{"position":[[535,6]]},"188":{"position":[[654,6]]},"189":{"position":[[282,6],[1273,6],[1578,7]]},"211":{"position":[[96,6],[261,6]]},"299":{"position":[[286,6]]},"322":{"position":[[501,6]]},"347":{"position":[[741,6]]},"351":{"position":[[509,6]]},"363":{"position":[[22,6]]},"369":{"position":[[838,7]]},"398":{"position":[[728,6]]},"472":{"position":[[737,7]]},"473":{"position":[[210,8],[571,6],[786,7]]},"474":{"position":[[251,6],[1474,7]]},"475":{"position":[[96,7],[139,6],[259,7],[640,7]]},"478":{"position":[[336,7],[675,7]]}},"keywords":{}}],["before((async",{"_index":76,"title":{},"content":{"2":{"position":[[580,14]]}},"keywords":{}}],["before((request",{"_index":1985,"title":{},"content":{"328":{"position":[[374,17]]},"395":{"position":[[248,17]]},"450":{"position":[[94,17]]}},"keywords":{}}],["before(async",{"_index":85,"title":{},"content":{"2":{"position":[[743,13]]},"103":{"position":[[728,13]]},"104":{"position":[[667,13]]},"328":{"position":[[995,13]]},"434":{"position":[[92,13]]},"473":{"position":[[516,13]]}},"keywords":{}}],["before)handlermiddleware3",{"_index":1038,"title":{},"content":{"163":{"position":[[481,26]]}},"keywords":{}}],["before)middleware2",{"_index":1036,"title":{},"content":{"163":{"position":[[441,19]]}},"keywords":{}}],["before)middleware3",{"_index":1037,"title":{},"content":{"163":{"position":[[461,19]]}},"keywords":{}}],["before,aft",{"_index":2255,"title":{},"content":{"472":{"position":[[207,13]]}},"keywords":{}}],["before/aft",{"_index":1024,"title":{},"content":{"161":{"position":[[372,12],[568,12]]}},"keywords":{}}],["beforehandl",{"_index":521,"title":{},"content":{"21":{"position":[[634,13],[838,14]]},"22":{"position":[[494,13],[698,14]]}},"keywords":{}}],["beforemiddlewar",{"_index":519,"title":{},"content":{"21":{"position":[[574,16],[803,17]]},"22":{"position":[[434,16],[663,17]]}},"keywords":{}}],["beforeprefetch",{"_index":513,"title":{},"content":{"21":{"position":[[410,14],[773,15]]},"22":{"position":[[315,14],[633,15]]},"161":{"position":[[155,17]]}},"keywords":{}}],["beforerequest",{"_index":595,"title":{},"content":{"21":{"position":[[2509,13]]}},"keywords":{}}],["begin",{"_index":859,"title":{},"content":{"151":{"position":[[655,5]]}},"keywords":{}}],["behavior",{"_index":1373,"title":{},"content":{"185":{"position":[[216,8]]},"355":{"position":[[181,8],[286,8]]}},"keywords":{}}],["below",{"_index":2028,"title":{},"content":{"354":{"position":[[350,5]]},"398":{"position":[[208,5]]}},"keywords":{}}],["benefit",{"_index":742,"title":{"102":{"position":[[21,7]]}},"content":{},"keywords":{}}],["best",{"_index":1049,"title":{"187":{"position":[[0,4]]}},"content":{"164":{"position":[[119,4]]},"282":{"position":[[314,4]]},"318":{"position":[[1097,4]]},"478":{"position":[[849,4]]}},"keywords":{}}],["beta",{"_index":1072,"title":{},"content":{"166":{"position":[[81,5]]}},"keywords":{}}],["better",{"_index":134,"title":{},"content":{"5":{"position":[[8,6]]},"143":{"position":[[95,7]]},"147":{"position":[[87,7]]},"148":{"position":[[96,7]]},"149":{"position":[[103,7]]},"150":{"position":[[99,7]]},"151":{"position":[[120,7]]},"167":{"position":[[90,7]]},"174":{"position":[[1285,6]]},"190":{"position":[[92,7]]},"397":{"position":[[126,6]]}},"keywords":{}}],["between",{"_index":1207,"title":{},"content":{"173":{"position":[[371,7]]},"174":{"position":[[1902,7]]},"474":{"position":[[104,7]]}},"keywords":{}}],["big",{"_index":962,"title":{},"content":{"159":{"position":[[116,3]]},"251":{"position":[[592,3],[893,3]]}},"keywords":{}}],["bigger",{"_index":1889,"title":{},"content":{"322":{"position":[[318,6]]}},"keywords":{}}],["bin",{"_index":355,"title":{},"content":{"7":{"position":[[1428,4]]}},"keywords":{}}],["binary/latin1",{"_index":2205,"title":{},"content":{"412":{"position":[[28,13]]}},"keywords":{}}],["block",{"_index":2183,"title":{},"content":{"398":{"position":[[424,5]]}},"keywords":{}}],["bodi",{"_index":154,"title":{"245":{"position":[[10,4]]},"249":{"position":[[15,4]]},"271":{"position":[[15,4]]},"334":{"position":[[8,4]]},"378":{"position":[[10,4]]},"379":{"position":[[15,4]]},"383":{"position":[[15,4]]},"390":{"position":[[9,4]]},"411":{"position":[[10,4]]},"412":{"position":[[15,4]]},"417":{"position":[[15,4]]},"425":{"position":[[9,4]]},"431":{"position":[[8,4]]},"450":{"position":[[10,4]]},"451":{"position":[[15,4]]},"456":{"position":[[15,4]]},"468":{"position":[[8,4]]}},"content":{"5":{"position":[[336,4],[705,4],[987,5],[1226,5],[1845,4]]},"31":{"position":[[87,4]]},"34":{"position":[[633,4],[715,4],[1022,4],[2086,4]]},"37":{"position":[[684,4],[766,4],[1073,4],[2211,4]]},"43":{"position":[[633,4],[715,4],[1022,4],[2086,4]]},"91":{"position":[[633,4],[715,4],[1022,4],[2111,4]]},"146":{"position":[[645,4],[727,4],[1034,4],[2098,4]]},"148":{"position":[[545,4]]},"168":{"position":[[529,5]]},"192":{"position":[[247,5]]},"194":{"position":[[302,4],[393,4]]},"198":{"position":[[169,5]]},"203":{"position":[[167,5]]},"220":{"position":[[550,5]]},"221":{"position":[[633,5]]},"229":{"position":[[290,4],[517,4],[599,4],[664,4],[714,4],[757,4]]},"232":{"position":[[1771,5]]},"244":{"position":[[329,5]]},"246":{"position":[[92,4]]},"248":{"position":[[146,4],[434,5],[496,5]]},"250":{"position":[[97,4]]},"252":{"position":[[156,4],[436,5],[673,5]]},"260":{"position":[[178,5]]},"263":{"position":[[122,4],[228,4],[307,4],[321,4]]},"264":{"position":[[232,4],[295,4]]},"266":{"position":[[154,4],[201,4],[310,4],[416,4],[495,4],[509,4]]},"270":{"position":[[187,4],[396,5]]},"272":{"position":[[97,4]]},"274":{"position":[[156,4],[252,4],[476,5],[563,5]]},"278":{"position":[[187,5]]},"281":{"position":[[527,4],[585,4],[607,4],[721,4],[824,4],[859,4],[924,4],[1159,4]]},"287":{"position":[[170,5]]},"293":{"position":[[257,5]]},"294":{"position":[[170,4],[210,4],[224,5]]},"304":{"position":[[183,5]]},"309":{"position":[[184,5]]},"319":{"position":[[157,5]]},"324":{"position":[[1546,4],[1573,4]]},"335":{"position":[[78,4]]},"336":{"position":[[111,5]]},"337":{"position":[[87,4]]},"348":{"position":[[270,5],[426,5]]},"354":{"position":[[858,4],[961,4],[1161,4]]},"362":{"position":[[267,8],[327,5],[564,5],[1007,8],[1045,5],[1384,4],[1482,4],[1700,9],[1724,5],[1956,4]]},"405":{"position":[[65,4]]},"431":{"position":[[12,4]]},"444":{"position":[[8,4]]}},"keywords":{}}],["body.disablecontenttypeerror",{"_index":1626,"title":{},"content":{"247":{"position":[[102,28]]}},"keywords":{}}],["bodyhttp",{"_index":1783,"title":{},"content":{"282":{"position":[[93,8]]}},"keywords":{}}],["bodytyp",{"_index":801,"title":{},"content":{"128":{"position":[[309,9]]},"291":{"position":[[0,8]]},"293":{"position":[[333,9]]},"294":{"position":[[288,9]]}},"keywords":{}}],["boilerpl",{"_index":2279,"title":{},"content":{"474":{"position":[[513,11]]}},"keywords":{}}],["bonjour",{"_index":1568,"title":{},"content":{"229":{"position":[[397,8]]}},"keywords":{}}],["bool",{"_index":1578,"title":{},"content":{"232":{"position":[[12,6],[124,6]]},"239":{"position":[[10,6]]}},"keywords":{}}],["boolean",{"_index":1214,"title":{},"content":{"173":{"position":[[645,9],[740,9]]},"177":{"position":[[194,10],[270,10],[546,9]]},"181":{"position":[[473,9],[588,9]]},"197":{"position":[[601,9],[1000,9]]},"202":{"position":[[597,9],[995,9]]},"224":{"position":[[12,9]]},"247":{"position":[[131,9]]},"251":{"position":[[316,9]]},"273":{"position":[[24,9]]},"277":{"position":[[89,7]]},"286":{"position":[[328,9],[728,9]]},"291":{"position":[[554,9]]},"298":{"position":[[639,7],[698,8],[1074,9],[1479,9]]},"303":{"position":[[580,9],[972,9]]},"308":{"position":[[629,9],[1022,9]]},"318":{"position":[[440,9],[833,9]]},"327":{"position":[[612,9],[1005,9]]},"340":{"position":[[565,9]]},"359":{"position":[[576,9]]}},"keywords":{}}],["boolean|object",{"_index":1833,"title":{},"content":{"298":{"position":[[605,16]]}},"keywords":{}}],["both",{"_index":1031,"title":{},"content":{"163":{"position":[[289,4]]},"167":{"position":[[918,4]]},"174":{"position":[[1697,4]]},"323":{"position":[[679,4]]}},"keywords":{}}],["boundari",{"_index":1651,"title":{},"content":{"252":{"position":[[384,9]]}},"keywords":{}}],["bowser/bundled.j",{"_index":322,"title":{},"content":{"7":{"position":[[830,20]]}},"keywords":{}}],["bowser/src",{"_index":321,"title":{},"content":{"7":{"position":[[816,13]]}},"keywords":{}}],["br",{"_index":1499,"title":{},"content":{"219":{"position":[[0,2],[308,3],[324,2],[384,2]]},"220":{"position":[[291,3],[461,6]]},"221":{"position":[[374,3],[544,6]]}},"keywords":{}}],["break",{"_index":1567,"title":{},"content":{"229":{"position":[[367,5],[416,5],[568,5],[633,5],[699,5]]},"398":{"position":[[55,9],[1034,9]]},"399":{"position":[[186,9],[263,9]]},"409":{"position":[[86,9]]},"410":{"position":[[71,9]]},"412":{"position":[[52,9]]},"414":{"position":[[72,9]]},"416":{"position":[[129,9]]},"420":{"position":[[59,9]]},"423":{"position":[[59,9]]},"426":{"position":[[193,9]]},"427":{"position":[[27,9]]},"429":{"position":[[82,9]]},"438":{"position":[[102,8]]},"444":{"position":[[96,8]]},"450":{"position":[[24,8]]},"456":{"position":[[41,8]]},"459":{"position":[[26,8]]},"460":{"position":[[26,8]]},"461":{"position":[[26,8]]},"462":{"position":[[26,8]]},"464":{"position":[[26,8]]},"465":{"position":[[26,8]]},"466":{"position":[[188,8],[226,8],[301,8],[432,8]]},"469":{"position":[[26,8]]}},"keywords":{}}],["brief",{"_index":959,"title":{"159":{"position":[[2,5]]}},"content":{},"keywords":{}}],["bring",{"_index":1192,"title":{},"content":{"171":{"position":[[378,6]]}},"keywords":{}}],["broken",{"_index":1775,"title":{},"content":{"281":{"position":[[652,6]]}},"keywords":{}}],["brotli",{"_index":2197,"title":{},"content":{"405":{"position":[[14,7]]}},"keywords":{}}],["brotlioptionsgzip",{"_index":1501,"title":{},"content":{"219":{"position":[[52,17]]}},"keywords":{}}],["brought",{"_index":2233,"title":{},"content":{"444":{"position":[[40,7]]}},"keywords":{}}],["browser",{"_index":1508,"title":{},"content":{"219":{"position":[[282,8]]},"255":{"position":[[28,7]]}},"keywords":{}}],["bucket",{"_index":780,"title":{},"content":{"104":{"position":[[462,7]]},"304":{"position":[[294,7]]}},"keywords":{}}],["bucketmiddytohof",{"_index":1938,"title":{},"content":{"324":{"position":[[427,17]]}},"keywords":{}}],["buffer",{"_index":1407,"title":{},"content":{"189":{"position":[[648,6]]},"251":{"position":[[473,6]]}},"keywords":{}}],["build",{"_index":140,"title":{},"content":{"5":{"position":[[86,8]]},"7":{"position":[[1344,6]]},"21":{"position":[[2373,5]]},"153":{"position":[[605,8]]},"170":{"position":[[95,5]]},"363":{"position":[[6,5]]},"370":{"position":[[111,8]]}},"keywords":{}}],["buildfederatedschema",{"_index":831,"title":{},"content":{"148":{"position":[[242,20],[440,22]]}},"keywords":{}}],["built",{"_index":37,"title":{},"content":{"2":{"position":[[26,5]]},"168":{"position":[[67,5]]},"386":{"position":[[85,5]]}},"keywords":{}}],["bundl",{"_index":366,"title":{"8":{"position":[[0,8]]},"199":{"position":[[0,9]]},"204":{"position":[[0,9]]},"288":{"position":[[0,9]]},"295":{"position":[[0,9]]},"300":{"position":[[0,9]]},"305":{"position":[[0,9]]},"310":{"position":[[0,9]]},"320":{"position":[[0,9]]},"329":{"position":[[0,9]]},"344":{"position":[[0,9]]}},"content":{"12":{"position":[[168,6]]},"363":{"position":[[180,6],[451,6]]},"466":{"position":[[52,6]]}},"keywords":{}}],["bundler",{"_index":277,"title":{"11":{"position":[[0,9]]}},"content":{"7":{"position":[[27,7]]}},"keywords":{}}],["busboy",{"_index":1633,"title":{},"content":{"251":{"position":[[0,6],[102,6],[526,7]]}},"keywords":{}}],["busi",{"_index":117,"title":{},"content":{"4":{"position":[[321,8],[515,8]]},"5":{"position":[[1072,8]]},"6":{"position":[[143,8],[266,8],[423,8],[766,8],[944,8]]},"156":{"position":[[171,8]]},"157":{"position":[[222,8],[801,8]]}},"keywords":{}}],["buy",{"_index":1487,"title":{},"content":{"208":{"position":[[384,5]]}},"keywords":{}}],["c",{"_index":1720,"title":{},"content":{"266":{"position":[[649,2]]}},"keywords":{}}],["ca",{"_index":680,"title":{},"content":{"34":{"position":[[1617,4],[1626,5]]},"37":{"position":[[1742,4],[1751,5]]},"43":{"position":[[1617,4],[1626,5]]},"91":{"position":[[1642,4],[1651,5]]},"146":{"position":[[1629,4],[1638,5]]},"151":{"position":[[644,2],[743,3]]},"287":{"position":[[298,3]]}},"keywords":{}}],["cach",{"_index":356,"title":{"369":{"position":[[0,6]]}},"content":{"7":{"position":[[1433,6]]},"153":{"position":[[623,7],[680,5],[1056,5],[1215,5]]},"167":{"position":[[782,5],[958,6]]},"189":{"position":[[906,5],[1357,5],[1516,5]]},"197":{"position":[[768,5],[922,6],[938,5],[962,6],[972,5]]},"202":{"position":[[763,5],[917,6],[933,5],[957,6],[967,5]]},"232":{"position":[[1265,5]]},"286":{"position":[[496,5],[650,6],[666,5],[690,6],[700,5]]},"298":{"position":[[752,6],[1247,5],[1401,6],[1417,5],[1441,6],[1451,5]]},"303":{"position":[[740,5],[894,6],[910,5],[934,6],[944,5]]},"308":{"position":[[790,5],[944,6],[960,5],[984,6],[994,5]]},"318":{"position":[[601,5],[755,6],[771,5],[795,6],[805,5]]},"327":{"position":[[773,5],[927,6],[943,5],[967,6],[977,5]]},"474":{"position":[[193,5]]}},"keywords":{}}],["cacheexpiri",{"_index":1126,"title":{},"content":{"167":{"position":[[792,11],[972,12]]},"298":{"position":[[819,11]]},"328":{"position":[[902,12]]},"474":{"position":[[719,12]]}},"keywords":{}}],["cachekey",{"_index":907,"title":{},"content":{"153":{"position":[[848,8],[911,8]]},"189":{"position":[[1074,8],[1137,8]]},"328":{"position":[[702,9],[931,9]]},"369":{"position":[[526,8],[695,8]]},"474":{"position":[[699,9]]}},"keywords":{}}],["cachemiddlewar",{"_index":905,"title":{},"content":{"153":{"position":[[808,15],[1421,17]]},"189":{"position":[[1034,15],[1872,17]]}},"keywords":{}}],["cachemiddlewareaft",{"_index":913,"title":{},"content":{"153":{"position":[[1127,20],[1315,20]]},"189":{"position":[[1428,20],[1616,20]]},"369":{"position":[[712,20],[876,20]]}},"keywords":{}}],["cachemiddlewarebefor",{"_index":908,"title":{},"content":{"153":{"position":[[863,21],[1285,22]]},"189":{"position":[[1089,21],[1586,22]]},"369":{"position":[[472,21],[846,22]]}},"keywords":{}}],["calcul",{"_index":901,"title":{},"content":{"153":{"position":[[665,10],[1188,10]]},"189":{"position":[[891,10],[1489,10]]}},"keywords":{}}],["calculatecacheid",{"_index":903,"title":{},"content":{"153":{"position":[[722,16],[1439,17]]},"189":{"position":[[948,16],[1890,17]]},"369":{"position":[[200,17]]}},"keywords":{}}],["call",{"_index":948,"title":{},"content":{"157":{"position":[[467,5]]},"160":{"position":[[206,6]]},"167":{"position":[[1528,6]]},"170":{"position":[[579,6]]},"178":{"position":[[1435,5]]},"183":{"position":[[164,6],[538,6],[656,6]]},"189":{"position":[[372,4],[546,4]]},"313":{"position":[[54,6]]},"408":{"position":[[113,6]]}},"keywords":{}}],["callback(err",{"_index":2125,"title":{},"content":{"367":{"position":[[11,13]]}},"keywords":{}}],["callbackwaitsforemptyeventloop",{"_index":1488,"title":{},"content":{"211":{"position":[[35,30]]},"212":{"position":[[289,30]]},"280":{"position":[[138,30]]}},"keywords":{}}],["can't",{"_index":2310,"title":{},"content":{"478":{"position":[[782,5]]}},"keywords":{}}],["cancel",{"_index":2305,"title":{},"content":{"476":{"position":[[582,6]]}},"keywords":{}}],["canon",{"_index":1611,"title":{},"content":{"239":{"position":[[0,9],[62,9],[367,9]]},"281":{"position":[[501,9]]},"355":{"position":[[93,9]]}},"keywords":{}}],["canonical:fals",{"_index":2204,"title":{},"content":{"410":{"position":[[55,15]]}},"keywords":{}}],["canprefetch",{"_index":2280,"title":{},"content":{"474":{"position":[[554,12]]}},"keywords":{}}],["canprefetch(opt",{"_index":2288,"title":{},"content":{"474":{"position":[[1118,22]]}},"keywords":{}}],["capabl",{"_index":899,"title":{},"content":{"153":{"position":[[590,10]]},"324":{"position":[[370,12]]}},"keywords":{}}],["captur",{"_index":1164,"title":{},"content":{"170":{"position":[[291,7],[511,7],[697,9]]},"171":{"position":[[14,9]]},"174":{"position":[[1231,8]]},"175":{"position":[[19,9]]},"177":{"position":[[292,7],[579,7]]},"178":{"position":[[864,8],[1120,8],[1415,7]]},"181":{"position":[[621,7]]}},"keywords":{}}],["captureawsv3cli",{"_index":795,"title":{},"content":{"128":{"position":[[106,20],[255,19]]},"197":{"position":[[459,18]]},"202":{"position":[[455,18]]},"291":{"position":[[399,18]]},"298":{"position":[[453,18]]},"303":{"position":[[438,18]]},"308":{"position":[[487,18]]},"318":{"position":[[298,18]]},"327":{"position":[[418,18]]},"340":{"position":[[509,18]]}},"keywords":{}}],["capturecoldstartmetr",{"_index":1401,"title":{},"content":{"188":{"position":[[878,23]]},"189":{"position":[[1833,23]]}},"keywords":{}}],["capturehttpsglob",{"_index":796,"title":{},"content":{"128":{"position":[[127,19],[289,19]]},"291":{"position":[[498,18]]}},"keywords":{}}],["capturelambdahandl",{"_index":1298,"title":{},"content":{"178":{"position":[[50,20]]}},"keywords":{}}],["capturerespons",{"_index":1297,"title":{},"content":{"177":{"position":[[530,15]]}},"keywords":{}}],["care",{"_index":1176,"title":{},"content":{"170":{"position":[[689,4]]}},"keywords":{}}],["cart",{"_index":1234,"title":{},"content":{"174":{"position":[[558,4],[760,4]]}},"keywords":{}}],["case",{"_index":283,"title":{},"content":{"7":{"position":[[112,4]]},"21":{"position":[[2082,4],[2344,4]]},"153":{"position":[[503,5]]},"157":{"position":[[1008,4]]},"167":{"position":[[901,5]]},"174":{"position":[[1953,5]]},"189":{"position":[[146,5]]},"229":{"position":[[330,4],[373,4],[493,4],[574,4],[639,4]]},"355":{"position":[[154,8]]},"473":{"position":[[134,6],[247,5]]},"475":{"position":[[244,4],[937,4]]}},"keywords":{}}],["case.error",{"_index":2018,"title":{},"content":{"347":{"position":[[473,11]]}},"keywords":{}}],["cases.timeoutearlyinmilli",{"_index":2186,"title":{},"content":{"398":{"position":[[695,27]]}},"keywords":{}}],["cast",{"_index":1960,"title":{},"content":{"324":{"position":[[1511,4]]},"438":{"position":[[58,7]]}},"keywords":{}}],["catch",{"_index":1387,"title":{},"content":{"186":{"position":[[684,5]]},"243":{"position":[[269,5]]},"324":{"position":[[145,7]]},"375":{"position":[[144,5]]}},"keywords":{}}],["caught",{"_index":1870,"title":{},"content":{"315":{"position":[[235,6]]},"476":{"position":[[74,6]]}},"keywords":{}}],["caus",{"_index":1134,"title":{},"content":{"167":{"position":[[1110,5],[1366,6],[1491,5]]},"183":{"position":[[499,5]]},"359":{"position":[[1127,5]]},"397":{"position":[[114,5]]},"399":{"position":[[31,5]]}},"keywords":{}}],["caution",{"_index":440,"title":{},"content":{"14":{"position":[[53,7]]},"143":{"position":[[13,7]]},"147":{"position":[[5,7]]},"148":{"position":[[14,7]]},"149":{"position":[[21,7]]},"150":{"position":[[17,7]]},"151":{"position":[[38,7]]},"167":{"position":[[8,7]]},"190":{"position":[[10,7]]}},"keywords":{}}],["cb",{"_index":1995,"title":{},"content":{"333":{"position":[[179,3]]}},"keywords":{}}],["central",{"_index":1811,"title":{},"content":{"287":{"position":[[302,7]]}},"keywords":{}}],["cert",{"_index":865,"title":{},"content":{"151":{"position":[[775,5],[833,5]]}},"keywords":{}}],["cert.subject.cn.endswith('.rds.amazonaws.com",{"_index":868,"title":{},"content":{"151":{"position":[[861,47]]}},"keywords":{}}],["certainli",{"_index":2311,"title":{},"content":{"478":{"position":[[788,9],[949,9]]}},"keywords":{}}],["certif",{"_index":854,"title":{},"content":{"151":{"position":[[442,11],[661,11]]},"255":{"position":[[73,11]]}},"keywords":{}}],["chain",{"_index":1389,"title":{},"content":{"188":{"position":[[69,8],[226,6]]}},"keywords":{}}],["champ",{"_index":1691,"title":{},"content":{"260":{"position":[[278,6]]}},"keywords":{}}],["chanc",{"_index":1007,"title":{},"content":{"160":{"position":[[536,6]]}},"keywords":{}}],["chang",{"_index":66,"title":{"397":{"position":[[8,8]]},"436":{"position":[[8,8]]}},"content":{"2":{"position":[[428,8]]},"163":{"position":[[735,6]]},"166":{"position":[[744,7]]},"251":{"position":[[269,6]]},"294":{"position":[[203,6]]},"355":{"position":[[199,7]]},"371":{"position":[[3,6]]},"373":{"position":[[3,6]]},"376":{"position":[[3,6]]},"377":{"position":[[3,6]]},"378":{"position":[[3,6]]},"379":{"position":[[3,6]]},"380":{"position":[[3,6]]},"381":{"position":[[3,6]]},"384":{"position":[[3,6]]},"387":{"position":[[3,6]]},"390":{"position":[[3,6]]},"394":{"position":[[96,6]]},"398":{"position":[[65,7],[113,6],[143,6],[1044,7]]},"399":{"position":[[273,7]]},"401":{"position":[[3,6]]},"402":{"position":[[3,6]]},"403":{"position":[[3,6]]},"409":{"position":[[96,7]]},"410":{"position":[[81,7]]},"411":{"position":[[3,6]]},"412":{"position":[[0,6],[62,7]]},"413":{"position":[[3,6]]},"416":{"position":[[139,7]]},"417":{"position":[[3,6]]},"418":{"position":[[3,6]]},"420":{"position":[[69,7]]},"422":{"position":[[3,6]]},"423":{"position":[[69,7]]},"426":{"position":[[203,7]]},"427":{"position":[[37,7]]},"428":{"position":[[3,6]]},"429":{"position":[[0,6]]},"430":{"position":[[3,6]]},"438":{"position":[[111,6]]},"440":{"position":[[3,6]]},"441":{"position":[[3,6]]},"442":{"position":[[3,6]]},"443":{"position":[[3,6]]},"444":{"position":[[105,6]]},"445":{"position":[[3,6]]},"446":{"position":[[3,6]]},"447":{"position":[[3,6]]},"448":{"position":[[3,6]]},"449":{"position":[[3,6]]},"450":{"position":[[33,6]]},"452":{"position":[[3,6]]},"453":{"position":[[3,6]]},"454":{"position":[[3,6]]},"455":{"position":[[3,6]]},"456":{"position":[[50,6]]},"457":{"position":[[3,6]]},"458":{"position":[[3,6]]},"459":{"position":[[35,6]]},"460":{"position":[[35,6]]},"461":{"position":[[35,6]]},"462":{"position":[[35,6]]},"463":{"position":[[3,6]]},"464":{"position":[[35,6]]},"465":{"position":[[35,6]]},"467":{"position":[[3,6]]},"468":{"position":[[3,6]]},"469":{"position":[[35,6]]},"470":{"position":[[3,6]]}},"keywords":{}}],["change]add",{"_index":2222,"title":{},"content":{"429":{"position":[[92,10]]}},"keywords":{}}],["change]getcach",{"_index":2195,"title":{},"content":{"399":{"position":[[196,15]]}},"keywords":{}}],["change]onerror",{"_index":2207,"title":{},"content":{"414":{"position":[[82,14]]}},"keywords":{}}],["changead",{"_index":2247,"title":{},"content":{"466":{"position":[[310,11],[441,11]]}},"keywords":{}}],["changedeprec",{"_index":2243,"title":{},"content":{"466":{"position":[[197,16]]}},"keywords":{}}],["changemust",{"_index":2245,"title":{},"content":{"466":{"position":[[235,10]]}},"keywords":{}}],["charset",{"_index":1546,"title":{},"content":{"228":{"position":[[65,8],[153,8]]},"281":{"position":[[208,9]]},"412":{"position":[[15,7]]},"451":{"position":[[22,7]]}},"keywords":{}}],["charset.disablecontenttypeerror",{"_index":1638,"title":{},"content":{"251":{"position":[[284,31]]}},"keywords":{}}],["check",{"_index":293,"title":{},"content":{"7":{"position":[[281,5]]},"157":{"position":[[1026,5]]},"168":{"position":[[454,7]]},"332":{"position":[[190,5]]},"354":{"position":[[359,5]]},"355":{"position":[[519,5]]},"370":{"position":[[51,5]]},"477":{"position":[[14,5]]}},"keywords":{}}],["checkout",{"_index":810,"title":{},"content":{"136":{"position":[[107,8]]},"251":{"position":[[136,8]]}},"keywords":{}}],["checkserverident",{"_index":863,"title":{},"content":{"151":{"position":[[747,20]]}},"keywords":{}}],["child",{"_index":1755,"title":{},"content":{"278":{"position":[[566,5]]}},"keywords":{}}],["child.info(request.ev",{"_index":1757,"title":{},"content":{"278":{"position":[[604,24]]}},"keywords":{}}],["chosen",{"_index":1079,"title":{},"content":{"166":{"position":[[241,6]]}},"keywords":{}}],["chunk",{"_index":1428,"title":{},"content":{"194":{"position":[[329,5]]}},"keywords":{}}],["chunk?.payloadchunk?.payload",{"_index":1430,"title":{},"content":{"194":{"position":[[360,30]]}},"keywords":{}}],["ci/cd",{"_index":296,"title":{},"content":{"7":{"position":[[315,5]]},"167":{"position":[[1153,5]]}},"keywords":{}}],["ciao",{"_index":1565,"title":{},"content":{"229":{"position":[[354,5]]}},"keywords":{}}],["circuit",{"_index":2131,"title":{},"content":{"367":{"position":[[329,7]]},"398":{"position":[[399,7]]},"408":{"position":[[40,7]]}},"keywords":{}}],["citi",{"_index":1693,"title":{},"content":{"260":{"position":[[295,5]]}},"keywords":{}}],["cj",{"_index":415,"title":{},"content":{"13":{"position":[[405,4]]}},"keywords":{}}],["claim",{"_index":2312,"title":{},"content":{"478":{"position":[[798,5]]}},"keywords":{}}],["class",{"_index":1196,"title":{},"content":{"173":{"position":[[0,5]]},"177":{"position":[[0,5]]},"181":{"position":[[0,5]]},"185":{"position":[[83,5]]},"197":{"position":[[62,5],[250,5]]},"202":{"position":[[60,5],[246,5]]},"286":{"position":[[44,5],[208,5]]},"291":{"position":[[153,5],[318,5]]},"298":{"position":[[72,5],[262,5]]},"303":{"position":[[48,5],[229,5]]},"308":{"position":[[76,5],[278,5]]},"318":{"position":[[50,5],[217,5]]},"327":{"position":[[50,5],[218,5]]},"340":{"position":[[84,5],[300,5]]}},"keywords":{}}],["class.opt",{"_index":1212,"title":{},"content":{"173":{"position":[[567,12]]},"177":{"position":[[461,12]]},"181":{"position":[[384,12]]}},"keywords":{}}],["clean",{"_index":267,"title":{"189":{"position":[[0,8]]}},"content":{"6":{"position":[[977,6]]},"153":{"position":[[465,6]]},"161":{"position":[[78,8]]},"167":{"position":[[289,5]]},"189":{"position":[[259,5],[749,5],[1239,5]]},"476":{"position":[[191,5]]}},"keywords":{}}],["cleanupmiddlewar",{"_index":1412,"title":{},"content":{"189":{"position":[[809,18],[1290,20]]}},"keywords":{}}],["clear",{"_index":1217,"title":{},"content":{"173":{"position":[[773,5]]}},"keywords":{}}],["clearmetr",{"_index":1406,"title":{},"content":{"189":{"position":[[555,12]]}},"keywords":{}}],["cli",{"_index":443,"title":{},"content":{"15":{"position":[[17,3]]}},"keywords":{}}],["clickjackinghidepoweredbi",{"_index":1661,"title":{},"content":{"255":{"position":[[136,25]]}},"keywords":{}}],["client",{"_index":1286,"title":{},"content":{"175":{"position":[[148,7]]},"178":{"position":[[254,6]]},"255":{"position":[[298,7]]},"322":{"position":[[57,7]]}},"keywords":{}}],["clientid",{"_index":779,"title":{},"content":{"104":{"position":[[355,9]]},"198":{"position":[[307,9]]}},"keywords":{}}],["close",{"_index":1396,"title":{},"content":{"188":{"position":[[516,7]]},"189":{"position":[[381,5],[426,5]]}},"keywords":{}}],["cloud",{"_index":724,"title":{"62":{"position":[[0,5]]}},"content":{},"keywords":{}}],["cloudform",{"_index":715,"title":{"47":{"position":[[0,14]]}},"content":{"48":{"position":[[26,14]]}},"keywords":{}}],["cloudfront",{"_index":712,"title":{"44":{"position":[[0,10]]}},"content":{"45":{"position":[[22,10]]}},"keywords":{}}],["cloudtrail",{"_index":716,"title":{"50":{"position":[[0,10]]}},"content":{"51":{"position":[[26,10]]}},"keywords":{}}],["cloudwatch",{"_index":726,"title":{"205":{"position":[[0,10]]},"401":{"position":[[0,10]]},"440":{"position":[[0,10]]}},"content":{"63":{"position":[[18,10]]},"78":{"position":[[41,11]]},"170":{"position":[[381,11],[619,10],[743,10]]},"179":{"position":[[59,10],[254,10],[436,11]]},"182":{"position":[[464,10],[942,10],[975,10]]},"207":{"position":[[74,10]]},"280":{"position":[[0,10]]},"323":{"position":[[350,10]]}},"keywords":{}}],["cloudwatchmetr",{"_index":1474,"title":{},"content":{"208":{"position":[[43,17],[314,19]]}},"keywords":{}}],["cloudwatchmetricsmiddlewar",{"_index":743,"title":{},"content":{"102":{"position":[[39,27]]}},"keywords":{}}],["cmd",{"_index":2060,"title":{},"content":{"358":{"position":[[119,3]]},"363":{"position":[[160,4]]}},"keywords":{}}],["co/middi",{"_index":1943,"title":{},"content":{"324":{"position":[[690,8],[757,8]]}},"keywords":{}}],["code",{"_index":105,"title":{"59":{"position":[[0,4]]}},"content":{"4":{"position":[[85,4]]},"5":{"position":[[0,4]]},"6":{"position":[[391,4],[438,4],[472,4],[781,5],[959,4]]},"21":{"position":[[2744,4]]},"151":{"position":[[511,4]]},"152":{"position":[[233,4]]},"159":{"position":[[196,4]]},"163":{"position":[[113,4],[260,4]]},"164":{"position":[[104,4]]},"167":{"position":[[840,5]]},"174":{"position":[[402,4]]},"178":{"position":[[520,4]]},"182":{"position":[[445,4]]},"243":{"position":[[363,5]]},"322":{"position":[[838,5]]},"355":{"position":[[736,5]]},"477":{"position":[[24,4]]}},"keywords":{}}],["codecommit",{"_index":723,"title":{},"content":{"60":{"position":[[26,10]]}},"keywords":{}}],["codepipelin",{"_index":717,"title":{"53":{"position":[[0,12]]}},"content":{"54":{"position":[[26,12]]}},"keywords":{}}],["coerc",{"_index":2106,"title":{},"content":{"363":{"position":[[236,6],[331,6]]}},"keywords":{}}],["coercetyp",{"_index":2083,"title":{},"content":{"360":{"position":[[295,12]]}},"keywords":{}}],["cognito",{"_index":721,"title":{"56":{"position":[[0,7]]}},"content":{"57":{"position":[[29,7]]},"324":{"position":[[1355,7]]}},"keywords":{}}],["cognitomiddi",{"_index":1959,"title":{},"content":{"324":{"position":[[1468,12]]}},"keywords":{}}],["cold",{"_index":512,"title":{"364":{"position":[[17,4]]},"365":{"position":[[17,4]]}},"content":{"21":{"position":[[393,4],[2036,4]]},"170":{"position":[[335,4],[707,4]]},"171":{"position":[[60,4]]},"174":{"position":[[1409,4]]},"175":{"position":[[29,4]]},"178":{"position":[[877,4]]},"181":{"position":[[633,4]]},"197":{"position":[[631,4]]},"202":{"position":[[627,4]]},"286":{"position":[[358,4]]},"291":{"position":[[584,4]]},"298":{"position":[[1104,4]]},"303":{"position":[[610,4]]},"308":{"position":[[659,4]]},"318":{"position":[[470,4]]},"327":{"position":[[642,4]]},"340":{"position":[[595,4]]},"359":{"position":[[1167,4]]}},"keywords":{}}],["cold_start",{"_index":1265,"title":{},"content":{"174":{"position":[[1350,10]]}},"keywords":{}}],["collect",{"_index":1158,"title":{},"content":{"170":{"position":[[16,10]]},"322":{"position":[[26,10]]},"324":{"position":[[903,10]]}},"keywords":{}}],["combin",{"_index":1776,"title":{},"content":{"281":{"position":[[675,11]]}},"keywords":{}}],["come",{"_index":982,"title":{},"content":{"159":{"position":[[404,6]]},"478":{"position":[[857,4]]}},"keywords":{}}],["comment",{"_index":843,"title":{},"content":{"149":{"position":[[156,7]]}},"keywords":{}}],["comments=extern",{"_index":401,"title":{},"content":{"12":{"position":[[307,17]]}},"keywords":{}}],["commit",{"_index":722,"title":{"59":{"position":[[5,6]]}},"content":{"159":{"position":[[586,6]]}},"keywords":{}}],["commit2017",{"_index":970,"title":{},"content":{"159":{"position":[[275,10]]}},"keywords":{}}],["common",{"_index":22,"title":{},"content":{"1":{"position":[[41,6]]},"4":{"position":[[378,6]]},"5":{"position":[[524,6],[2013,6]]},"6":{"position":[[232,6],[695,6]]},"7":{"position":[[1421,6]]},"179":{"position":[[113,6]]}},"keywords":{}}],["commonj",{"_index":150,"title":{},"content":{"5":{"position":[[245,8]]},"13":{"position":[[59,8],[187,8],[217,9],[283,11]]}},"keywords":{}}],["commun",{"_index":2058,"title":{},"content":{"356":{"position":[[179,10]]}},"keywords":{}}],["compat",{"_index":1160,"title":{},"content":{"170":{"position":[[207,10],[358,10]]},"171":{"position":[[435,10]]},"174":{"position":[[2513,10]]},"361":{"position":[[51,10]]},"421":{"position":[[47,10]]},"425":{"position":[[47,10]]}},"keywords":{}}],["compil",{"_index":367,"title":{"9":{"position":[[0,10]]}},"content":{"21":{"position":[[2137,8],[2332,8]]},"359":{"position":[[48,8],[199,8],[459,8]]},"466":{"position":[[417,7]]}},"keywords":{}}],["complet",{"_index":1306,"title":{},"content":{"178":{"position":[[1069,9]]},"426":{"position":[[0,8]]}},"keywords":{}}],["complex",{"_index":280,"title":{},"content":{"7":{"position":[[71,7]]},"324":{"position":[[331,7]]}},"keywords":{}}],["compli",{"_index":587,"title":{},"content":{"21":{"position":[[2293,8]]}},"keywords":{}}],["compliment",{"_index":2276,"title":{},"content":{"474":{"position":[[161,10]]}},"keywords":{}}],["comprehens",{"_index":1931,"title":{},"content":{"324":{"position":[[207,14]]}},"keywords":{}}],["compress",{"_index":1513,"title":{},"content":{"219":{"position":[[338,12],[497,11],[575,11]]},"282":{"position":[[73,10]]},"405":{"position":[[41,11]]}},"keywords":{}}],["concept",{"_index":111,"title":{},"content":{"4":{"position":[[191,8]]}},"keywords":{}}],["concern",{"_index":238,"title":{},"content":{"6":{"position":[[249,8],[712,8]]}},"keywords":{}}],["concurrencyon",{"_index":2166,"title":{},"content":{"395":{"position":[[115,13]]}},"keywords":{}}],["condition",{"_index":1128,"title":{},"content":{"167":{"position":[[865,13]]}},"keywords":{}}],["conduct",{"_index":885,"title":{},"content":{"152":{"position":[[241,8]]}},"keywords":{}}],["config",{"_index":53,"title":{"71":{"position":[[0,6]]},"104":{"position":[[10,8]]}},"content":{"2":{"position":[[258,6]]},"13":{"position":[[95,6]]},"72":{"position":[[26,6]]},"198":{"position":[[277,7]]},"203":{"position":[[274,7]]},"304":{"position":[[284,7]]}},"keywords":{}}],["configur",{"_index":263,"title":{"263":{"position":[[0,14]]},"472":{"position":[[0,12]]}},"content":{"6":{"position":[[896,13]]},"104":{"position":[[372,14]]},"141":{"position":[[0,11]]},"174":{"position":[[2144,9]]},"185":{"position":[[170,13]]},"198":{"position":[[324,14]]},"207":{"position":[[407,13]]},"263":{"position":[[18,10]]},"265":{"position":[[364,13]]},"283":{"position":[[22,14],[68,14],[175,14]]},"322":{"position":[[330,10]]},"472":{"position":[[0,12],[54,13],[125,13]]}},"keywords":{}}],["conflict",{"_index":2163,"title":{},"content":{"394":{"position":[[313,9]]}},"keywords":{}}],["connect",{"_index":0,"title":{"0":{"position":[[0,10]]},"66":{"position":[[0,7]]}},"content":{"0":{"position":[[0,10],[72,10],[173,10],[235,11]]},"31":{"position":[[434,11]]},"67":{"position":[[25,7]]},"136":{"position":[[75,7]]},"151":{"position":[[477,11],[1004,12]]},"283":{"position":[[127,10],[384,10],[532,10]]},"322":{"position":[[1225,10]]},"324":{"position":[[19,10],[1199,10]]},"347":{"position":[[683,9]]},"351":{"position":[[130,9],[451,9]]},"352":{"position":[[305,11],[561,11]]},"386":{"position":[[49,10]]}},"keywords":{}}],["connecthandl",{"_index":630,"title":{},"content":{"31":{"position":[[221,14],[455,14]]},"352":{"position":[[190,14],[582,14]]}},"keywords":{}}],["connectid",{"_index":2005,"title":{},"content":{"340":{"position":[[905,10]]}},"keywords":{}}],["connectionid",{"_index":2009,"title":{},"content":{"343":{"position":[[139,13]]}},"keywords":{}}],["connectionopt",{"_index":860,"title":{},"content":{"151":{"position":[[683,17]]}},"keywords":{}}],["connector",{"_index":1953,"title":{},"content":{"324":{"position":[[1180,10]]}},"keywords":{}}],["consid",{"_index":821,"title":{},"content":{"143":{"position":[[110,8]]},"147":{"position":[[102,8]]},"148":{"position":[[111,8]]},"149":{"position":[[118,8]]},"150":{"position":[[114,8]]},"151":{"position":[[135,8],[305,10]]},"167":{"position":[[105,8]]},"183":{"position":[[337,10]]},"190":{"position":[[107,8]]},"251":{"position":[[932,8]]},"355":{"position":[[432,10]]}},"keywords":{}}],["consist",{"_index":2046,"title":{},"content":{"355":{"position":[[303,10]]}},"keywords":{}}],["consol",{"_index":1888,"title":{},"content":{"322":{"position":[[179,7],[238,7],[283,7]]}},"keywords":{}}],["console.error",{"_index":1497,"title":{},"content":{"215":{"position":[[37,14]]},"243":{"position":[[20,14]]},"313":{"position":[[107,13]]}},"keywords":{}}],["console.log",{"_index":496,"title":{},"content":{"21":{"position":[[28,12]]},"22":{"position":[[72,11]]},"277":{"position":[[25,13]]}},"keywords":{}}],["console.log('exit",{"_index":2169,"title":{},"content":{"395":{"position":[[333,20]]}},"keywords":{}}],["console.log(`hello",{"_index":1607,"title":{},"content":{"236":{"position":[[142,18]]}},"keywords":{}}],["console.log(context.config",{"_index":1855,"title":{},"content":{"304":{"position":[[106,27]]}},"keywords":{}}],["console@keboola/middi",{"_index":1932,"title":{},"content":{"324":{"position":[[229,21]]}},"keywords":{}}],["const",{"_index":52,"title":{},"content":{"2":{"position":[[252,5],[499,5]]},"5":{"position":[[203,7],[616,5],[758,5],[882,5],[1179,5],[1776,5]]},"13":{"position":[[227,5]]},"15":{"position":[[146,5],[196,5]]},"21":{"position":[[1,5],[57,5],[96,5],[149,5],[166,5],[231,5],[404,5],[451,5],[568,5],[599,5],[628,5],[676,5],[722,5],[889,5]]},"22":{"position":[[45,5],[86,5],[127,5],[171,5],[188,5],[253,5],[309,5],[356,5],[428,5],[459,5],[488,5],[536,5],[582,5],[749,5]]},"25":{"position":[[39,5]]},"28":{"position":[[39,5]]},"31":{"position":[[405,5],[588,5]]},"34":{"position":[[1360,5]]},"37":{"position":[[1343,5],[1485,5]]},"40":{"position":[[39,5]]},"43":{"position":[[1360,5]]},"46":{"position":[[39,5]]},"49":{"position":[[39,5]]},"52":{"position":[[39,5]]},"55":{"position":[[103,5]]},"58":{"position":[[39,5]]},"61":{"position":[[39,5]]},"64":{"position":[[103,5]]},"68":{"position":[[39,5]]},"70":{"position":[[39,5]]},"73":{"position":[[103,5]]},"77":{"position":[[39,5]]},"79":{"position":[[39,5]]},"82":{"position":[[103,5]]},"85":{"position":[[39,5]]},"88":{"position":[[39,5]]},"91":{"position":[[1360,5]]},"94":{"position":[[103,5]]},"97":{"position":[[103,5]]},"100":{"position":[[103,5]]},"102":{"position":[[451,5]]},"103":{"position":[[273,5]]},"104":{"position":[[257,5]]},"107":{"position":[[39,5]]},"110":{"position":[[103,5]]},"113":{"position":[[103,5]]},"116":{"position":[[103,5]]},"119":{"position":[[103,5]]},"122":{"position":[[103,5]]},"125":{"position":[[39,5]]},"128":{"position":[[179,5]]},"131":{"position":[[39,5]]},"134":{"position":[[103,5]]},"139":{"position":[[173,5]]},"142":{"position":[[39,5]]},"146":{"position":[[1372,5]]},"148":{"position":[[397,5],[601,5]]},"151":{"position":[[638,5],[789,5]]},"153":{"position":[[716,5],[769,5],[802,5],[857,5],[1121,5],[1356,5]]},"157":{"position":[[167,5],[249,5],[680,5],[746,5],[829,5]]},"174":{"position":[[110,5],[175,5],[319,5]]},"178":{"position":[[183,5],[248,5],[322,5],[436,5]]},"182":{"position":[[116,5],[204,5],[370,5]]},"186":{"position":[[250,5],[345,5],[493,5],[554,5]]},"188":{"position":[[716,5]]},"189":{"position":[[942,5],[995,5],[1028,5],[1083,5],[1422,5],[1657,5]]},"192":{"position":[[95,5]]},"193":{"position":[[95,5]]},"194":{"position":[[87,5],[121,5],[257,5],[322,6]]},"198":{"position":[[73,5],[120,5]]},"203":{"position":[[71,5],[118,5]]},"208":{"position":[[0,5],[37,5],[100,5]]},"212":{"position":[[113,5]]},"216":{"position":[[78,5]]},"220":{"position":[[209,5]]},"221":{"position":[[265,5]]},"225":{"position":[[86,5],[133,5],[163,6],[202,5]]},"229":{"position":[[230,5]]},"232":{"position":[[1460,5]]},"233":{"position":[[68,5]]},"236":{"position":[[95,5]]},"240":{"position":[[97,5]]},"244":{"position":[[89,5]]},"248":{"position":[[159,5],[304,5]]},"252":{"position":[[169,5],[319,5]]},"256":{"position":[[95,5]]},"260":{"position":[[95,5],[142,5],[369,5]]},"266":{"position":[[101,5],[148,5],[562,5]]},"270":{"position":[[104,5],[301,5]]},"274":{"position":[[169,5],[394,5]]},"278":{"position":[[91,5],[138,5],[406,5],[428,5],[560,5]]},"287":{"position":[[74,5],[121,5]]},"293":{"position":[[113,5],[160,5],[196,5]]},"294":{"position":[[113,5]]},"299":{"position":[[84,5]]},"304":{"position":[[59,5],[134,5]]},"309":{"position":[[88,5],[135,5]]},"314":{"position":[[88,5],[135,5],[312,5]]},"319":{"position":[[61,5],[108,5]]},"328":{"position":[[61,5],[556,5],[1027,5]]},"333":{"position":[[0,5],[37,5],[77,5],[138,5],[203,5]]},"337":{"position":[[161,5]]},"342":{"position":[[83,5]]},"343":{"position":[[83,5]]},"348":{"position":[[134,5],[289,5],[445,5],[587,5]]},"352":{"position":[[184,5],[320,5],[469,5]]},"362":{"position":[[164,5],[224,5],[548,5],[880,5],[940,5],[1597,5],[1657,5]]},"363":{"position":[[786,5]]},"364":{"position":[[241,5],[296,5],[358,5]]},"365":{"position":[[317,5]]},"369":{"position":[[89,5],[162,5],[181,5],[405,5],[466,5],[520,5],[583,5],[706,5]]},"434":{"position":[[124,5]]},"466":{"position":[[734,5],[1002,5]]},"472":{"position":[[270,5],[290,5],[330,5],[371,5],[426,5],[470,5],[524,5],[590,5],[1045,5],[1129,5]]},"473":{"position":[[454,5]]},"474":{"position":[[614,5],[758,5],[803,5],[844,5],[869,5],[918,6],[1174,5],[1229,5],[1352,5]]},"475":{"position":[[333,5],[361,5],[404,5],[445,5],[507,5],[568,5]]},"476":{"position":[[494,5],[614,5]]},"478":{"position":[[228,5],[330,5],[507,5]]}},"keywords":{}}],["constant",{"_index":1520,"title":{},"content":{"220":{"position":[[173,9]]},"221":{"position":[[173,9]]}},"keywords":{}}],["constants.brotli_mode_text",{"_index":1526,"title":{},"content":{"220":{"position":[[338,27]]},"221":{"position":[[421,27]]}},"keywords":{}}],["constants.brotli_param_mod",{"_index":1525,"title":{},"content":{"220":{"position":[[307,30]]},"221":{"position":[[390,30]]}},"keywords":{}}],["constants.brotli_param_qu",{"_index":1530,"title":{},"content":{"220":{"position":[[393,33]]},"221":{"position":[[476,33]]}},"keywords":{}}],["constructor",{"_index":579,"title":{},"content":{"21":{"position":[[2121,11]]},"173":{"position":[[6,11]]},"177":{"position":[[6,11]]},"181":{"position":[[6,11]]},"197":{"position":[[68,11]]},"202":{"position":[[66,11]]},"286":{"position":[[50,11]]},"291":{"position":[[159,11]]},"298":{"position":[[78,11]]},"303":{"position":[[54,11]]},"308":{"position":[[82,11]]},"318":{"position":[[56,11]]},"327":{"position":[[56,11]]},"340":{"position":[[90,11]]},"360":{"position":[[253,12]]}},"keywords":{}}],["constructor.awsclientassumerol",{"_index":1438,"title":{},"content":{"197":{"position":[[256,31]]},"202":{"position":[[252,31]]},"298":{"position":[[268,31]]},"303":{"position":[[235,31]]},"308":{"position":[[284,31]]},"327":{"position":[[224,31]]},"340":{"position":[[306,31]]}},"keywords":{}}],["constructor.awsclientcaptur",{"_index":1818,"title":{},"content":{"291":{"position":[[324,28]]},"318":{"position":[[223,28]]}},"keywords":{}}],["constructor.fetchdata",{"_index":1805,"title":{},"content":{"286":{"position":[[214,21]]}},"keywords":{}}],["consum",{"_index":1906,"title":{},"content":{"322":{"position":[[1170,7]]}},"keywords":{}}],["contain",{"_index":1268,"title":{},"content":{"174":{"position":[[1458,8]]},"340":{"position":[[897,7]]},"474":{"position":[[34,8]]},"475":{"position":[[57,7]]}},"keywords":{}}],["content",{"_index":462,"title":{"217":{"position":[[5,7]]},"226":{"position":[[5,7]]},"265":{"position":[[0,7]]},"373":{"position":[[5,7]]},"405":{"position":[[5,7]]},"406":{"position":[[5,7]]},"444":{"position":[[5,7]]},"445":{"position":[[5,7]]}},"content":{"15":{"position":[[521,7],[587,7],[627,7]]},"34":{"position":[[215,7],[291,7]]},"37":{"position":[[266,7],[342,7]]},"43":{"position":[[215,7],[291,7]]},"91":{"position":[[215,7],[291,7]]},"146":{"position":[[215,7],[291,7]]},"170":{"position":[[894,8]]},"192":{"position":[[217,8]]},"218":{"position":[[87,7]]},"220":{"position":[[80,7],[146,7]]},"221":{"position":[[80,7],[146,7]]},"227":{"position":[[87,7]]},"229":{"position":[[80,7]]},"239":{"position":[[230,7]]},"247":{"position":[[176,7]]},"248":{"position":[[331,8],[417,7]]},"251":{"position":[[361,7]]},"252":{"position":[[346,8]]},"264":{"position":[[41,7]]},"265":{"position":[[87,7]]},"273":{"position":[[69,7]]},"274":{"position":[[421,8]]},"281":{"position":[[116,7],[188,7],[774,7]]},"282":{"position":[[5,7],[33,7]]},"354":{"position":[[634,7]]},"361":{"position":[[193,8]]}},"keywords":{}}],["contenttyp",{"_index":1853,"title":{},"content":{"303":{"position":[[1132,12]]}},"keywords":{}}],["context",{"_index":35,"title":{"2":{"position":[[9,7]]}},"content":{"2":{"position":[[9,7],[906,7],[1038,7],[1254,7],[1307,8]]},"5":{"position":[[652,8]]},"6":{"position":[[518,9]]},"25":{"position":[[79,8]]},"28":{"position":[[80,8]]},"34":{"position":[[2308,8]]},"40":{"position":[[79,8]]},"43":{"position":[[2319,8]]},"46":{"position":[[150,8]]},"49":{"position":[[80,8]]},"52":{"position":[[80,8]]},"55":{"position":[[178,8]]},"58":{"position":[[80,8]]},"61":{"position":[[80,8]]},"64":{"position":[[178,8]]},"68":{"position":[[80,8]]},"70":{"position":[[79,8]]},"73":{"position":[[178,8]]},"77":{"position":[[80,8]]},"79":{"position":[[79,8]]},"82":{"position":[[178,8]]},"85":{"position":[[80,8]]},"88":{"position":[[80,8]]},"91":{"position":[[2333,8]]},"94":{"position":[[178,8]]},"97":{"position":[[178,8]]},"100":{"position":[[178,8]]},"102":{"position":[[684,8]]},"103":{"position":[[845,8]]},"104":{"position":[[784,8]]},"107":{"position":[[80,8]]},"110":{"position":[[178,8]]},"113":{"position":[[217,8]]},"116":{"position":[[208,8]]},"119":{"position":[[178,8]]},"122":{"position":[[178,8]]},"125":{"position":[[80,8]]},"128":{"position":[[350,8]]},"131":{"position":[[80,8]]},"134":{"position":[[178,8]]},"139":{"position":[[279,8]]},"142":{"position":[[80,8]]},"146":{"position":[[2320,8]]},"153":{"position":[[1386,8]]},"157":{"position":[[197,8],[776,8]]},"164":{"position":[[145,7]]},"170":{"position":[[326,8]]},"171":{"position":[[51,8]]},"174":{"position":[[273,9],[1307,7]]},"189":{"position":[[1687,8]]},"192":{"position":[[163,8]]},"193":{"position":[[163,8]]},"198":{"position":[[103,8]]},"203":{"position":[[101,8]]},"208":{"position":[[130,8]]},"212":{"position":[[143,8],[273,7],[357,8]]},"216":{"position":[[108,8]]},"220":{"position":[[507,8]]},"221":{"position":[[590,8]]},"225":{"position":[[116,8]]},"229":{"position":[[260,8]]},"232":{"position":[[1490,8]]},"233":{"position":[[98,8]]},"236":{"position":[[125,8]]},"240":{"position":[[167,8]]},"244":{"position":[[119,8]]},"248":{"position":[[189,8]]},"252":{"position":[[199,8]]},"256":{"position":[[125,8]]},"260":{"position":[[125,8]]},"266":{"position":[[131,8]]},"270":{"position":[[134,8]]},"274":{"position":[[199,8]]},"277":{"position":[[133,7]]},"278":{"position":[[121,8],[458,8]]},"287":{"position":[[104,8]]},"293":{"position":[[143,8]]},"294":{"position":[[149,8]]},"299":{"position":[[114,8],[385,8]]},"304":{"position":[[89,8]]},"309":{"position":[[118,8]]},"314":{"position":[[118,8]]},"319":{"position":[[91,8]]},"322":{"position":[[748,7],[804,7]]},"328":{"position":[[91,8],[586,8]]},"333":{"position":[[170,8]]},"342":{"position":[[113,8]]},"343":{"position":[[113,8]]},"347":{"position":[[346,8]]},"348":{"position":[[227,8],[383,8]]},"351":{"position":[[211,8]]},"352":{"position":[[281,8],[420,8]]},"362":{"position":[[194,8],[910,8],[1627,8]]},"363":{"position":[[885,8]]},"364":{"position":[[487,8]]},"365":{"position":[[446,8]]},"397":{"position":[[133,7]]},"472":{"position":[[441,7],[1081,8]]},"473":{"position":[[484,8]]},"475":{"position":[[809,7]]},"476":{"position":[[353,7],[524,8]]}},"keywords":{}}],["context"",{"_index":1252,"title":{},"content":{"174":{"position":[[892,14]]}},"keywords":{}}],["context.config",{"_index":783,"title":{},"content":{"104":{"position":[[816,15]]}},"keywords":{}}],["context.getremainingtimeinmilli",{"_index":1123,"title":{},"content":{"167":{"position":[[676,32]]}},"keywords":{}}],["context.metr",{"_index":1762,"title":{},"content":{"280":{"position":[[38,15]]}},"keywords":{}}],["context.metrics.putmetric('processinglat",{"_index":1476,"title":{},"content":{"208":{"position":[[147,46]]}},"keywords":{}}],["context.metrics.setproperti",{"_index":1478,"title":{},"content":{"208":{"position":[[215,28]]}},"keywords":{}}],["context.s3object",{"_index":1827,"title":{},"content":{"293":{"position":[[179,16]]},"294":{"position":[[183,16]]}},"keywords":{}}],["context.secret",{"_index":771,"title":{},"content":{"103":{"position":[[877,15]]}},"keywords":{}}],["contextmetr",{"_index":1921,"title":{},"content":{"323":{"position":[[292,15]]}},"keywords":{}}],["contextschema",{"_index":2223,"title":{},"content":{"429":{"position":[[128,14]]}},"keywords":{}}],["contribut",{"_index":822,"title":{"152":{"position":[[0,12]]}},"content":{"143":{"position":[[119,12]]},"147":{"position":[[111,12]]},"148":{"position":[[120,12]]},"149":{"position":[[127,12]]},"150":{"position":[[123,12]]},"151":{"position":[[144,12]]},"152":{"position":[[0,12],[80,10],[172,12]]},"167":{"position":[[114,12]]},"190":{"position":[[116,12]]},"478":{"position":[[1023,13]]}},"keywords":{}}],["control",{"_index":1001,"title":{},"content":{"160":{"position":[[94,7]]},"232":{"position":[[52,7],[322,7],[412,7],[525,7],[889,7],[979,7],[1076,7],[1175,7],[1271,7],[1701,7]]},"233":{"position":[[251,7]]},"255":{"position":[[19,8]]},"391":{"position":[[65,8]]},"473":{"position":[[340,7]]}},"keywords":{}}],["convent",{"_index":2262,"title":{},"content":{"472":{"position":[[878,10]]}},"keywords":{}}],["convert",{"_index":214,"title":{},"content":{"5":{"position":[[1871,8]]},"224":{"position":[[92,10]]},"281":{"position":[[594,8],[811,8],[1234,8]]},"324":{"position":[[445,7],[1054,8]]}},"keywords":{}}],["cor",{"_index":650,"title":{"230":{"position":[[5,4]]},"374":{"position":[[5,5]]},"407":{"position":[[5,5]]},"446":{"position":[[5,5]]}},"content":{"34":{"position":[[353,5]]},"37":{"position":[[404,5]]},"43":{"position":[[353,5]]},"91":{"position":[[353,5]]},"146":{"position":[[353,5]]},"231":{"position":[[87,4]]},"232":{"position":[[178,4],[1431,4],[1454,5]]},"233":{"position":[[39,4],[62,5]]},"282":{"position":[[102,5],[118,4]]}},"keywords":{}}],["core",{"_index":41,"title":{"367":{"position":[[0,5]]},"398":{"position":[[0,5]]},"437":{"position":[[0,5]]}},"content":{"2":{"position":[[57,5]]},"5":{"position":[[149,4]]},"21":{"position":[[2714,5]]},"128":{"position":[[166,5]]},"161":{"position":[[37,4]]},"354":{"position":[[110,4],[423,4]]},"355":{"position":[[332,4],[625,4]]},"478":{"position":[[735,4]]}},"keywords":{}}],["correct",{"_index":575,"title":{},"content":{"21":{"position":[[1985,8]]}},"keywords":{}}],["correctli",{"_index":180,"title":{},"content":{"5":{"position":[[948,10]]}},"keywords":{}}],["correl",{"_index":1270,"title":{},"content":{"174":{"position":[[1582,9]]}},"keywords":{}}],["correspond",{"_index":869,"title":{},"content":{"151":{"position":[[934,13]]}},"keywords":{}}],["corsdonotwaitforemptyeventloop",{"_index":2031,"title":{},"content":{"354":{"position":[[517,30]]}},"keywords":{}}],["couldn't",{"_index":270,"title":{},"content":{"6":{"position":[[1025,8]]}},"keywords":{}}],["cover",{"_index":750,"title":{"103":{"position":[[26,7]]},"104":{"position":[[31,7]]}},"content":{},"keywords":{}}],["cpu",{"_index":1904,"title":{},"content":{"322":{"position":[[1103,3],[1194,3]]}},"keywords":{}}],["creat",{"_index":273,"title":{},"content":{"6":{"position":[[1097,6]]},"160":{"position":[[317,6],[431,7]]},"163":{"position":[[138,7]]},"170":{"position":[[605,6]]},"178":{"position":[[557,6],[1300,6]]},"179":{"position":[[224,7]]},"182":{"position":[[1275,6]]},"186":{"position":[[410,6],[723,8]]},"188":{"position":[[326,6]]},"282":{"position":[[162,7],[213,7]]},"322":{"position":[[1213,7]]},"323":{"position":[[111,8],[323,7]]},"324":{"position":[[1289,7]]},"473":{"position":[[41,6]]}},"keywords":{}}],["createerror.unprocessableent",{"_index":1598,"title":{},"content":{"232":{"position":[[1517,33]]},"244":{"position":[[146,33]]}},"keywords":{}}],["createhash",{"_index":2134,"title":{},"content":{"369":{"position":[[97,10]]}},"keywords":{}}],["createhash('md5').update(json.stringify(event)).digest('hex",{"_index":2137,"title":{},"content":{"369":{"position":[[238,62]]}},"keywords":{}}],["createreadablestream",{"_index":1415,"title":{},"content":{"192":{"position":[[41,20],[253,27]]},"193":{"position":[[41,20],[187,27]]},"221":{"position":[[211,20],[639,29]]}},"keywords":{}}],["createrequir",{"_index":397,"title":{},"content":{"12":{"position":[[213,13]]}},"keywords":{}}],["createrequire(import.meta.url);"",{"_index":399,"title":{},"content":{"12":{"position":[[259,37]]}},"keywords":{}}],["createsubscriptionpay",{"_index":1381,"title":{},"content":{"186":{"position":[[351,25]]}},"keywords":{}}],["createsubscriptionpayment(ev",{"_index":1384,"title":{},"content":{"186":{"position":[[576,33]]}},"keywords":{}}],["creation",{"_index":1119,"title":{},"content":{"167":{"position":[[521,8],[732,8]]},"251":{"position":[[121,8]]}},"keywords":{}}],["credenti",{"_index":1451,"title":{},"content":{"197":{"position":[[1033,11]]},"202":{"position":[[1028,11]]},"232":{"position":[[0,11],[66,11]]},"283":{"position":[[495,11]]},"303":{"position":[[1005,11]]},"308":{"position":[[1055,11]]},"318":{"position":[[866,11]]},"386":{"position":[[28,10]]},"393":{"position":[[36,12]]}},"keywords":{}}],["creditcardnumb",{"_index":167,"title":{},"content":{"5":{"position":[[766,17],[1264,17],[1613,20]]}},"keywords":{}}],["critical.servicenam",{"_index":1204,"title":{},"content":{"173":{"position":[[216,20]]}},"keywords":{}}],["culprit",{"_index":578,"title":{},"content":{"21":{"position":[[2104,8]]}},"keywords":{}}],["current",{"_index":902,"title":{},"content":{"153":{"position":[[702,7]]},"170":{"position":[[143,10]]},"189":{"position":[[436,7],[928,7]]},"243":{"position":[[81,7]]},"322":{"position":[[708,7]]},"332":{"position":[[93,7]]},"367":{"position":[[376,9]]},"475":{"position":[[801,7],[864,7]]}},"keywords":{}}],["currentcachekey",{"_index":2141,"title":{},"content":{"369":{"position":[[450,15]]}},"keywords":{}}],["custom",{"_index":1156,"title":{"475":{"position":[[0,6]]}},"content":{"168":{"position":[[690,6]]},"170":{"position":[[630,6]]},"171":{"position":[[357,6]]},"174":{"position":[[2070,8],[2358,6]]},"178":{"position":[[566,6],[810,6],[1250,6]]},"179":{"position":[[294,6]]},"182":{"position":[[1015,6]]},"185":{"position":[[194,9]]},"232":{"position":[[245,6]]},"281":{"position":[[1136,6]]},"314":{"position":[[209,6]]},"323":{"position":[[120,6],[308,6]]},"363":{"position":[[113,9]]},"394":{"position":[[355,6]]},"398":{"position":[[824,6]]},"466":{"position":[[485,6]]},"474":{"position":[[709,9],[901,6],[1086,6]]},"475":{"position":[[0,6]]},"478":{"position":[[57,6]]}},"keywords":{}}],["customer_id",{"_index":1276,"title":{},"content":{"174":{"position":[[2038,11]]}},"keywords":{}}],["custommiddlewar",{"_index":2257,"title":{},"content":{"472":{"position":[[296,16],[851,16],[1001,16]]},"474":{"position":[[764,16],[1524,16]]}},"keywords":{}}],["custommiddleware.j",{"_index":2256,"title":{},"content":{"472":{"position":[[250,19],[1023,21]]}},"keywords":{}}],["custommiddlewareaft",{"_index":2259,"title":{},"content":{"472":{"position":[[476,21],[776,22]]}},"keywords":{}}],["custommiddlewareafter(request",{"_index":2261,"title":{},"content":{"472":{"position":[[695,30]]}},"keywords":{}}],["custommiddlewarebefor",{"_index":2258,"title":{},"content":{"472":{"position":[[377,22],[745,23]]},"474":{"position":[[1180,22],[1482,22]]}},"keywords":{}}],["custommiddlewareonerror",{"_index":2260,"title":{},"content":{"472":{"position":[[596,23],[808,23]]}},"keywords":{}}],["cvc",{"_index":170,"title":{},"content":{"5":{"position":[[809,4],[1471,4]]}},"keywords":{}}],["cycl",{"_index":1066,"title":{"166":{"position":[[8,5]]}},"content":{"166":{"position":[[8,5]]}},"keywords":{}}],["cycledeprec",{"_index":2189,"title":{},"content":{"398":{"position":[[983,14]]}},"keywords":{}}],["d",{"_index":198,"title":{},"content":{"5":{"position":[[1339,6],[1531,6]]},"10":{"position":[[7,1]]},"12":{"position":[[7,1]]},"13":{"position":[[7,1]]},"14":{"position":[[7,1]]},"15":{"position":[[7,1]]},"17":{"position":[[7,1]]},"18":{"position":[[7,1]]},"19":{"position":[[7,1]]}},"keywords":{}}],["data",{"_index":175,"title":{"283":{"position":[[6,5]]}},"content":{"5":{"position":[[870,4]]},"99":{"position":[[37,4]]},"178":{"position":[[999,4],[1366,4]]},"189":{"position":[[680,5]]},"197":{"position":[[794,4],[897,4]]},"202":{"position":[[789,4],[892,4]]},"251":{"position":[[488,4],[607,5],[639,4],[722,4]]},"252":{"position":[[378,5]]},"277":{"position":[[355,4]]},"281":{"position":[[802,4]]},"286":{"position":[[522,4],[625,4]]},"298":{"position":[[1273,4],[1376,4]]},"303":{"position":[[766,4],[869,4]]},"308":{"position":[[816,4],[919,4]]},"318":{"position":[[627,4],[730,4]]},"324":{"position":[[66,4]]},"327":{"position":[[799,4],[902,4]]},"328":{"position":[[1033,4],[1141,5]]},"343":{"position":[[160,5]]},"362":{"position":[[1919,4]]},"474":{"position":[[1358,4],[1455,5]]}},"keywords":{}}],["databas",{"_index":764,"title":{"151":{"position":[[15,8]]}},"content":{"103":{"position":[[441,9],[451,11]]},"136":{"position":[[66,8]]},"151":{"position":[[15,8]]},"287":{"position":[[371,9]]}},"keywords":{}}],["datadog",{"_index":1165,"title":{},"content":{"170":{"position":[[393,8]]}},"keywords":{}}],["datastream/cor",{"_index":1416,"title":{},"content":{"192":{"position":[[69,18]]},"193":{"position":[[69,18]]},"221":{"position":[[239,18]]}},"keywords":{}}],["date",{"_index":1103,"title":{},"content":{"166":{"position":[[723,5]]}},"keywords":{}}],["day",{"_index":163,"title":{},"content":{"5":{"position":[[598,3]]},"159":{"position":[[31,4]]}},"keywords":{}}],["dazn",{"_index":1883,"title":{},"content":{"322":{"position":[[0,4]]}},"keywords":{}}],["db",{"_index":2145,"title":{"370":{"position":[[0,2]]}},"content":{"386":{"position":[[96,2]]}},"keywords":{}}],["db:#{aws::region}:#{aws::accountid}:dbuser:${database_resource}/${iam_rol",{"_index":1809,"title":{},"content":{"286":{"position":[[894,75]]}},"keywords":{}}],["db:connect",{"_index":1806,"title":{},"content":{"286":{"position":[[850,10]]}},"keywords":{}}],["dbparam",{"_index":1982,"title":{},"content":{"328":{"position":[[241,9],[820,9],[1075,11]]}},"keywords":{}}],["de",{"_index":1690,"title":{},"content":{"260":{"position":[[274,3]]}},"keywords":{}}],["deal",{"_index":236,"title":{},"content":{"6":{"position":[[217,4]]},"251":{"position":[[883,4]]},"394":{"position":[[342,7]]}},"keywords":{}}],["debub",{"_index":1211,"title":{},"content":{"173":{"position":[[455,5]]}},"keywords":{}}],["debug",{"_index":1202,"title":{},"content":{"173":{"position":[[190,6],[422,5]]}},"keywords":{}}],["decid",{"_index":272,"title":{},"content":{"6":{"position":[[1086,7]]},"160":{"position":[[286,6]]},"265":{"position":[[46,7]]}},"keywords":{}}],["decod",{"_index":1425,"title":{},"content":{"194":{"position":[[263,7]]}},"keywords":{}}],["decoder.decode(buffer.from(chunk.payloadchunk.payload",{"_index":1431,"title":{},"content":{"194":{"position":[[401,55]]}},"keywords":{}}],["decor",{"_index":130,"title":{},"content":{"4":{"position":[[495,10]]},"6":{"position":[[748,8]]},"175":{"position":[[230,11]]}},"keywords":{}}],["decoupl",{"_index":2026,"title":{},"content":{"354":{"position":[[30,9]]}},"keywords":{}}],["decrypted.disableprefetch",{"_index":1967,"title":{},"content":{"327":{"position":[[586,25]]}},"keywords":{}}],["deep",{"_index":329,"title":{},"content":{"7":{"position":[[981,4],[1004,4]]}},"keywords":{}}],["default",{"_index":412,"title":{"365":{"position":[[33,7]]}},"content":{"13":{"position":[[302,7]]},"15":{"position":[[246,7]]},"21":{"position":[[7,8],[126,12],[2324,7]]},"22":{"position":[[51,8],[148,12]]},"31":{"position":[[542,10]]},"34":{"position":[[2126,8]]},"37":{"position":[[2251,8]]},"91":{"position":[[2151,8]]},"146":{"position":[[2138,8]]},"167":{"position":[[157,7]]},"168":{"position":[[655,7]]},"173":{"position":[[119,8],[308,8],[437,8],[711,8],[819,8]]},"174":{"position":[[2433,7]]},"177":{"position":[[156,8],[232,8],[347,8],[637,8]]},"181":{"position":[[156,8],[213,7],[255,8],[547,8],[652,8]]},"182":{"position":[[1192,7]]},"185":{"position":[[208,7]]},"197":{"position":[[19,8],[194,8],[297,8],[415,8],[611,8],[747,8],[868,8],[1010,8]]},"202":{"position":[[19,8],[191,8],[293,8],[411,8],[607,8],[743,8],[863,8],[1005,8]]},"207":{"position":[[31,8],[286,7],[394,8]]},"211":{"position":[[3,7],[226,9],[299,9],[329,9]]},"215":{"position":[[28,8]]},"219":{"position":[[12,8],[79,8],[137,8],[351,8],[403,8]]},"224":{"position":[[22,8]]},"228":{"position":[[14,9],[99,9],[209,9],[296,9],[407,9],[494,9],[606,9],[696,9],[809,9]]},"229":{"position":[[422,8],[705,8]]},"232":{"position":[[78,8],[256,8],[344,9],[434,9],[572,8],[675,9],[912,9],[1002,9],[1100,9],[1199,9],[1319,9]]},"239":{"position":[[130,8],[181,7],[243,8]]},"243":{"position":[[7,9],[186,8]]},"247":{"position":[[201,8],[221,7]]},"251":{"position":[[28,8],[235,8],[276,7],[386,8],[406,7]]},"259":{"position":[[38,8]]},"263":{"position":[[331,8],[366,7]]},"265":{"position":[[306,8]]},"273":{"position":[[94,8],[114,7]]},"277":{"position":[[16,8],[97,8],[180,8],[370,8]]},"286":{"position":[[19,8],[338,8],[474,8],[596,8],[738,8]]},"291":{"position":[[124,8],[564,8]]},"298":{"position":[[19,8],[622,8],[1084,8],[1220,8],[1347,8],[1489,8]]},"303":{"position":[[19,8],[180,8],[276,8],[394,8],[590,8],[726,8],[840,8],[982,8]]},"308":{"position":[[19,8],[215,8],[325,8],[443,8],[639,8],[775,8],[890,8],[1032,8]]},"313":{"position":[[98,8]]},"318":{"position":[[19,8],[450,8],[586,8],[701,8],[843,8]]},"327":{"position":[[19,8],[622,8],[758,8],[873,8],[1015,8]]},"328":{"position":[[321,9],[673,9],[717,9],[1087,12]]},"332":{"position":[[168,7]]},"336":{"position":[[19,8]]},"340":{"position":[[19,8],[230,8],[347,8],[465,8],[575,8]]},"359":{"position":[[23,8],[174,8],[434,8],[586,8],[625,7],[666,8],[753,9]]},"360":{"position":[[40,7],[204,8],[266,8]]},"361":{"position":[[99,7]]},"363":{"position":[[279,8],[374,8]]},"369":{"position":[[187,8],[423,12]]},"375":{"position":[[115,8]]},"394":{"position":[[82,8],[171,7],[294,7]]},"398":{"position":[[773,7],[864,7]]},"412":{"position":[[7,7]]},"414":{"position":[[8,7]]},"466":{"position":[[81,8]]},"472":{"position":[[276,8],[348,12],[843,7]]},"474":{"position":[[620,8],[821,12],[1516,7]]},"475":{"position":[[339,8],[422,12],[740,7]]},"478":{"position":[[700,7]]}},"keywords":{}}],["default).append",{"_index":1188,"title":{},"content":{"171":{"position":[[270,18]]}},"keywords":{}}],["default).print",{"_index":1185,"title":{},"content":{"171":{"position":[[172,17]]}},"keywords":{}}],["default_namespac",{"_index":1323,"title":{},"content":{"181":{"position":[[267,18]]}},"keywords":{}}],["defaultcontenttyp",{"_index":711,"title":{},"content":{"43":{"position":[[2126,19]]},"266":{"position":[[519,19]]},"414":{"position":[[26,18]]}},"keywords":{}}],["defaulthandl",{"_index":634,"title":{},"content":{"31":{"position":[[359,14],[562,14]]},"351":{"position":[[153,15]]}},"keywords":{}}],["defaultlanguag",{"_index":2246,"title":{},"content":{"466":{"position":[[258,15]]}},"keywords":{}}],["defaulttofirstlanguag",{"_index":2199,"title":{},"content":{"406":{"position":[[7,22]]}},"keywords":{}}],["defin",{"_index":1278,"title":{},"content":{"174":{"position":[[2349,6]]},"215":{"position":[[68,6]]},"228":{"position":[[132,8],[329,8],[527,8],[729,8]]},"263":{"position":[[32,8]]}},"keywords":{}}],["definit",{"_index":1311,"title":{},"content":{"179":{"position":[[127,11]]},"478":{"position":[[875,11]]}},"keywords":{}}],["deflat",{"_index":1533,"title":{},"content":{"220":{"position":[[476,10]]},"221":{"position":[[559,10]]},"405":{"position":[[33,7]]}},"keywords":{}}],["deflateoptionsoverridepreferredencod",{"_index":1505,"title":{},"content":{"219":{"position":[[170,39]]}},"keywords":{}}],["deleg",{"_index":1005,"title":{},"content":{"160":{"position":[[348,8]]}},"keywords":{}}],["delet",{"_index":2012,"title":{},"content":{"347":{"position":[[134,7]]}},"keywords":{}}],["depend",{"_index":281,"title":{},"content":{"7":{"position":[[79,9],[360,12],[803,12]]},"155":{"position":[[191,11]]},"327":{"position":[[1172,9]]},"347":{"position":[[451,9]]},"354":{"position":[[317,12]]},"478":{"position":[[1092,12]]}},"keywords":{}}],["deploy",{"_index":2102,"title":{},"content":{"363":{"position":[[49,11]]}},"keywords":{}}],["deprec",{"_index":1096,"title":{},"content":{"166":{"position":[[538,10],[585,10],[632,10],[679,10]]},"369":{"position":[[0,11]]},"370":{"position":[[0,11]]},"372":{"position":[[0,11]]},"395":{"position":[[0,11]]},"420":{"position":[[0,10]]},"421":{"position":[[0,10]]},"423":{"position":[[0,10]]},"425":{"position":[[0,10]]},"427":{"position":[[0,10]]},"450":{"position":[[0,9]]},"466":{"position":[[141,9]]}},"keywords":{}}],["describ",{"_index":1410,"title":{},"content":{"189":{"position":[[708,9]]}},"keywords":{}}],["descript",{"_index":604,"title":{},"content":{"21":{"position":[[2639,11],[2807,11]]}},"keywords":{}}],["deseri",{"_index":165,"title":{},"content":{"5":{"position":[[689,11],[1091,16]]}},"keywords":{}}],["destroy",{"_index":2096,"title":{},"content":{"362":{"position":[[1308,7]]}},"keywords":{}}],["detail",{"_index":957,"title":{},"content":{"157":{"position":[[995,8]]},"323":{"position":[[270,7]]},"359":{"position":[[888,7]]}},"keywords":{}}],["details)if",{"_index":2179,"title":{},"content":{"398":{"position":[[218,10]]}},"keywords":{}}],["detectopenhandl",{"_index":1143,"title":{},"content":{"167":{"position":[[1435,17]]}},"keywords":{}}],["determin",{"_index":1209,"title":{},"content":{"173":{"position":[[392,9]]},"265":{"position":[[103,10]]}},"keywords":{}}],["dev",{"_index":923,"title":{},"content":{"155":{"position":[[234,3]]},"174":{"position":[[1923,3]]},"196":{"position":[[111,3]]},"201":{"position":[[110,3]]},"285":{"position":[[112,3]]},"290":{"position":[[120,3]]},"297":{"position":[[117,3]]},"302":{"position":[[104,3]]},"307":{"position":[[119,3]]},"312":{"position":[[153,3]]},"317":{"position":[[105,3]]},"326":{"position":[[105,3]]},"339":{"position":[[113,3]]},"358":{"position":[[111,3]]}},"keywords":{}}],["dev/api_token",{"_index":1846,"title":{},"content":{"299":{"position":[[197,15],[432,13]]}},"keywords":{}}],["dev/default",{"_index":1984,"title":{},"content":{"328":{"position":[[331,15],[683,15]]}},"keywords":{}}],["dev/service_name/access_token",{"_index":1981,"title":{},"content":{"328":{"position":[[191,33],[770,33]]}},"keywords":{}}],["dev/service_name/databas",{"_index":1983,"title":{},"content":{"328":{"position":[[251,30],[830,29]]}},"keywords":{}}],["dev/service_name/key_nam",{"_index":767,"title":{},"content":{"103":{"position":[[545,28],[621,28]]},"104":{"position":[[631,28]]}},"keywords":{}}],["devdepend",{"_index":317,"title":{},"content":{"7":{"position":[[737,15]]},"478":{"position":[[1044,15]]}},"keywords":{}}],["develop",{"_index":227,"title":{},"content":{"6":{"position":[[71,9],[667,10]]},"15":{"position":[[262,14]]},"21":{"position":[[2469,11]]}},"keywords":{}}],["dicer/bench",{"_index":323,"title":{},"content":{"7":{"position":[[851,14]]}},"keywords":{}}],["dicer/test",{"_index":324,"title":{},"content":{"7":{"position":[[866,13]]}},"keywords":{}}],["differ",{"_index":161,"title":{},"content":{"5":{"position":[[550,9]]},"174":{"position":[[2399,9]]},"179":{"position":[[390,9]]},"182":{"position":[[1304,9]]},"298":{"position":[[986,9]]},"415":{"position":[[36,9]]},"433":{"position":[[36,9]]},"473":{"position":[[193,9]]}},"keywords":{}}],["differenti",{"_index":1275,"title":{},"content":{"174":{"position":[[1888,13]]}},"keywords":{}}],["dimens",{"_index":1314,"title":{},"content":{"179":{"position":[[187,11],[400,11],[486,11]]},"182":{"position":[[1200,10],[1314,11]]},"207":{"position":[[253,11],[294,11],[367,11],[383,10]]},"208":{"position":[[361,11]]}},"keywords":{}}],["directli",{"_index":75,"title":{},"content":{"2":{"position":[[571,8]]},"153":{"position":[[334,8]]},"251":{"position":[[967,8]]}},"keywords":{}}],["directori",{"_index":287,"title":{},"content":{"7":{"position":[[171,9]]}},"keywords":{}}],["disabl",{"_index":1118,"title":{},"content":{"167":{"position":[[509,7],[614,7],[720,7],[879,7]]},"171":{"position":[[159,9],[257,9]]},"175":{"position":[[353,7]]},"197":{"position":[[711,8]]},"202":{"position":[[707,8]]},"286":{"position":[[438,8]]},"291":{"position":[[664,8]]},"298":{"position":[[1184,8]]},"303":{"position":[[690,8]]},"308":{"position":[[739,8]]},"318":{"position":[[550,8]]},"327":{"position":[[722,8]]},"340":{"position":[[675,8]]},"359":{"position":[[612,7]]},"476":{"position":[[269,7]]}},"keywords":{}}],["disablecontenttypeerror",{"_index":1729,"title":{},"content":{"273":{"position":[[0,23]]}},"keywords":{}}],["disableprefetch",{"_index":2283,"title":{},"content":{"474":{"position":[[675,16]]}},"keywords":{}}],["disconnect",{"_index":638,"title":{},"content":{"31":{"position":[[485,14]]},"351":{"position":[[140,12]]},"352":{"position":[[444,14],[612,14]]}},"keywords":{}}],["disconnecthandl",{"_index":632,"title":{},"content":{"31":{"position":[[287,17],[509,17]]},"352":{"position":[[326,17],[636,17]]}},"keywords":{}}],["discoveri",{"_index":431,"title":{"306":{"position":[[8,9]]},"424":{"position":[[8,10]]},"462":{"position":[[8,10]]}},"content":{"13":{"position":[[723,9]]},"15":{"position":[[930,9]]},"283":{"position":[[321,10],[348,9]]},"307":{"position":[[90,9]]},"309":{"position":[[77,10]]}},"keywords":{}}],["discoveryinst",{"_index":2216,"title":{},"content":{"424":{"position":[[27,18]]}},"keywords":{}}],["discuss",{"_index":1402,"title":{},"content":{"189":{"position":[[3,9]]},"450":{"position":[[256,10]]}},"keywords":{}}],["dn",{"_index":1656,"title":{},"content":{"255":{"position":[[36,3]]}},"keywords":{}}],["dnsprefetchcontrol",{"_index":1655,"title":{},"content":{"255":{"position":[[0,18]]}},"keywords":{}}],["do",{"_index":162,"title":{},"content":{"5":{"position":[[586,5]]},"188":{"position":[[120,5]]},"189":{"position":[[779,5]]}},"keywords":{}}],["doc",{"_index":1473,"title":{},"content":{"207":{"position":[[450,5]]}},"keywords":{}}],["document",{"_index":617,"title":{"24":{"position":[[4,14]]},"27":{"position":[[4,14]]},"30":{"position":[[4,14]]},"33":{"position":[[4,14]]},"36":{"position":[[4,14]]},"39":{"position":[[4,14]]},"42":{"position":[[4,14]]},"45":{"position":[[4,14]]},"48":{"position":[[4,14]]},"51":{"position":[[4,14]]},"54":{"position":[[4,14]]},"57":{"position":[[4,14]]},"60":{"position":[[4,14]]},"63":{"position":[[4,14]]},"67":{"position":[[4,14]]},"69":{"position":[[4,14]]},"72":{"position":[[4,14]]},"76":{"position":[[4,14]]},"78":{"position":[[4,14]]},"81":{"position":[[4,14]]},"84":{"position":[[4,14]]},"87":{"position":[[4,14]]},"90":{"position":[[4,14]]},"93":{"position":[[4,14]]},"96":{"position":[[4,14]]},"99":{"position":[[4,14]]},"106":{"position":[[4,14]]},"109":{"position":[[4,14]]},"112":{"position":[[4,14]]},"115":{"position":[[4,14]]},"118":{"position":[[4,14]]},"121":{"position":[[4,14]]},"124":{"position":[[4,14]]},"127":{"position":[[4,14]]},"130":{"position":[[4,14]]},"133":{"position":[[4,14]]},"138":{"position":[[4,14]]},"141":{"position":[[4,14]]},"145":{"position":[[4,14]]}},"content":{"179":{"position":[[620,13]]},"251":{"position":[[158,13]]},"318":{"position":[[1079,13]]},"389":{"position":[[16,13]]},"392":{"position":[[16,13]]}},"keywords":{}}],["documentdb",{"_index":727,"title":{"65":{"position":[[0,10]]}},"content":{"69":{"position":[[29,10]]}},"keywords":{}}],["doe",{"_index":1684,"title":{},"content":{"260":{"position":[[215,6],[545,5]]}},"keywords":{}}],["doesn't",{"_index":288,"title":{},"content":{"7":{"position":[[194,7]]},"21":{"position":[[1958,7]]},"362":{"position":[[1300,7]]}},"keywords":{}}],["domain",{"_index":855,"title":{},"content":{"151":{"position":[[462,6]]}},"keywords":{}}],["don't",{"_index":26,"title":{},"content":{"1":{"position":[[78,5]]},"5":{"position":[[675,5]]},"243":{"position":[[137,5]]},"263":{"position":[[427,5]]}},"keywords":{}}],["done",{"_index":2110,"title":{},"content":{"363":{"position":[[464,4],[606,4]]}},"keywords":{}}],["done)remov",{"_index":2182,"title":{},"content":{"398":{"position":[[354,11]]}},"keywords":{}}],["donotwaitforemptyeventloop",{"_index":1492,"title":{},"content":{"212":{"position":[[39,26]]}},"keywords":{}}],["doubl",{"_index":2049,"title":{},"content":{"355":{"position":[[512,6]]}},"keywords":{}}],["down",{"_index":2178,"title":{},"content":{"398":{"position":[[162,4]]}},"keywords":{}}],["download",{"_index":1666,"title":{},"content":{"255":{"position":[[257,8]]}},"keywords":{}}],["draft",{"_index":2159,"title":{},"content":{"394":{"position":[[53,5]]}},"keywords":{}}],["draft2019",{"_index":2080,"title":{},"content":{"360":{"position":[[101,10]]}},"keywords":{}}],["draft2019/.github",{"_index":304,"title":{},"content":{"7":{"position":[[463,17]]}},"keywords":{}}],["draft2019/.prettierrc.j",{"_index":305,"title":{},"content":{"7":{"position":[[496,24]]}},"keywords":{}}],["draft2019/index.test.j",{"_index":306,"title":{},"content":{"7":{"position":[[536,23]]}},"keywords":{}}],["dramat",{"_index":598,"title":{},"content":{"21":{"position":[[2565,8]]}},"keywords":{}}],["drop",{"_index":2053,"title":{"356":{"position":[[54,8]]}},"content":{"356":{"position":[[97,7]]}},"keywords":{}}],["due",{"_index":1139,"title":{},"content":{"167":{"position":[[1390,3]]},"420":{"position":[[27,3]]},"423":{"position":[[27,3]]}},"keywords":{}}],["dump",{"_index":1891,"title":{},"content":{"322":{"position":[[433,7]]}},"keywords":{}}],["duplic",{"_index":961,"title":{},"content":{"159":{"position":[[99,11]]},"170":{"position":[[857,9]]}},"keywords":{}}],["duplicatesexpir",{"_index":1358,"title":{},"content":{"183":{"position":[[348,17]]}},"keywords":{}}],["durat",{"_index":1399,"title":{},"content":{"188":{"position":[[543,8]]}},"keywords":{}}],["dure",{"_index":511,"title":{"364":{"position":[[10,6]]},"365":{"position":[[10,6]]}},"content":{"21":{"position":[[386,6]]},"183":{"position":[[93,6]]},"322":{"position":[[1121,6]]},"324":{"position":[[665,6]]},"359":{"position":[[1160,6]]},"474":{"position":[[244,6]]},"476":{"position":[[321,6]]}},"keywords":{}}],["dvi",{"_index":1718,"title":{},"content":{"266":{"position":[[630,4]]}},"keywords":{}}],["dynam",{"_index":1917,"title":{},"content":{"322":{"position":[[1424,7]]}},"keywords":{}}],["dynamodb",{"_index":730,"title":{"80":{"position":[[0,8]]},"200":{"position":[[0,8]]}},"content":{"81":{"position":[[29,8]]},"104":{"position":[[537,9],[847,9]]},"184":{"position":[[82,8],[104,8]]},"201":{"position":[[130,8],[153,8]]},"202":{"position":[[752,10]]},"203":{"position":[[39,8],[250,10]]},"204":{"position":[[40,8]]},"224":{"position":[[218,8]]},"323":{"position":[[584,9]]}},"keywords":{}}],["dynamodb.awsclientopt",{"_index":1462,"title":{},"content":{"202":{"position":[[156,25]]}},"keywords":{}}],["dynamodb.rd",{"_index":1795,"title":{},"content":{"283":{"position":[[88,12]]}},"keywords":{}}],["dynamodb:batchgetitemcommand",{"_index":1463,"title":{},"content":{"202":{"position":[[1113,28]]}},"keywords":{}}],["dynamodbcli",{"_index":1461,"title":{},"content":{"202":{"position":[[28,16],[45,14],[231,14]]}},"keywords":{}}],["dynamodbmiddlewar",{"_index":776,"title":{},"content":{"104":{"position":[[169,18],[503,20]]}},"keywords":{}}],["dynamodbpersistencelay",{"_index":1378,"title":{},"content":{"186":{"position":[[171,24],[279,26]]}},"keywords":{}}],["e.g",{"_index":1559,"title":{},"content":{"228":{"position":[[947,5]]},"355":{"position":[[251,5]]},"472":{"position":[[242,4]]},"476":{"position":[[439,5]]}},"keywords":{}}],["each",{"_index":602,"title":{},"content":{"21":{"position":[[2615,4]]},"166":{"position":[[14,4],[129,4]]},"173":{"position":[[802,4]]},"175":{"position":[[184,4]]},"188":{"position":[[351,4]]},"328":{"position":[[311,4],[889,4]]},"478":{"position":[[1064,4]]}},"keywords":{}}],["earli",{"_index":886,"title":{"153":{"position":[[0,5]]},"189":{"position":[[15,5]]}},"content":{"153":{"position":[[0,5],[305,5],[1019,5]]},"159":{"position":[[25,5]]},"189":{"position":[[20,5],[1320,5]]},"197":{"position":[[664,5]]},"202":{"position":[[660,5]]},"286":{"position":[[391,5]]},"291":{"position":[[617,5]]},"298":{"position":[[1137,5]]},"303":{"position":[[643,5]]},"308":{"position":[[692,5]]},"318":{"position":[[503,5]]},"327":{"position":[[675,5]]},"340":{"position":[[628,5]]},"395":{"position":[[354,5]]},"398":{"position":[[557,5],[761,5]]},"476":{"position":[[168,5]]}},"keywords":{}}],["easi",{"_index":269,"title":{},"content":{"6":{"position":[[998,4]]},"424":{"position":[[12,4]]}},"keywords":{}}],["easier",{"_index":1163,"title":{},"content":{"170":{"position":[[263,6]]},"323":{"position":[[177,6],[216,7]]},"398":{"position":[[945,6]]},"408":{"position":[[82,6]]}},"keywords":{}}],["easier.middi",{"_index":1886,"title":{},"content":{"322":{"position":[[116,12]]}},"keywords":{}}],["east",{"_index":1848,"title":{},"content":{"299":{"position":[[248,4]]}},"keywords":{}}],["ec2",{"_index":729,"title":{"75":{"position":[[0,3]]}},"content":{"76":{"position":[[29,3]]}},"keywords":{}}],["ecosystem",{"_index":1053,"title":{},"content":{"164":{"position":[[218,10],[299,11]]}},"keywords":{}}],["editorconfig",{"_index":357,"title":{},"content":{"7":{"position":[[1440,13]]}},"keywords":{}}],["effect",{"_index":599,"title":{},"content":{"21":{"position":[[2574,7]]},"183":{"position":[[521,7]]},"398":{"position":[[167,7]]}},"keywords":{}}],["element",{"_index":121,"title":{},"content":{"4":{"position":[[385,8]]}},"keywords":{}}],["elseth",{"_index":1708,"title":{},"content":{"265":{"position":[[209,7]]}},"keywords":{}}],["email",{"_index":2097,"title":{},"content":{"362":{"position":[[1767,9],[1817,6],[1850,7]]}},"keywords":{}}],["embed",{"_index":1466,"title":{},"content":{"207":{"position":[[47,8],[433,8]]},"323":{"position":[[361,8]]}},"keywords":{}}],["emf",{"_index":1178,"title":{},"content":{"170":{"position":[[757,3]]},"179":{"position":[[70,3]]},"182":{"position":[[475,3],[915,3]]}},"keywords":{}}],["emf)paramet",{"_index":1922,"title":{},"content":{"323":{"position":[[384,16]]}},"keywords":{}}],["emit",{"_index":1350,"title":{},"content":{"182":{"position":[[1244,7]]},"189":{"position":[[607,4]]}},"keywords":{}}],["emoji",{"_index":997,"title":{},"content":{"159":{"position":[[563,5]]}},"keywords":{}}],["empti",{"_index":807,"title":{"209":{"position":[[16,5]]},"371":{"position":[[16,5]]},"402":{"position":[[16,5]]},"441":{"position":[[16,5]]}},"content":{"136":{"position":[[30,6],[139,5]]},"207":{"position":[[325,5]]},"210":{"position":[[98,5]]},"212":{"position":[[95,5]]},"280":{"position":[[115,5]]},"281":{"position":[[329,5]]},"354":{"position":[[577,5]]},"360":{"position":[[347,8]]},"363":{"position":[[288,5],[383,5]]}},"keywords":{}}],["en",{"_index":679,"title":{},"content":{"34":{"position":[[1612,4]]},"37":{"position":[[1737,4]]},"43":{"position":[[1612,4]]},"91":{"position":[[1637,4]]},"146":{"position":[[1624,4]]},"229":{"position":[[918,6]]},"359":{"position":[[675,4]]},"363":{"position":[[736,2],[854,3]]},"364":{"position":[[247,2],[456,3]]},"365":{"position":[[204,3],[415,3]]},"466":{"position":[[966,3],[1143,3]]}},"keywords":{}}],["en.j",{"_index":2116,"title":{},"content":{"363":{"position":[[744,9]]}},"keywords":{}}],["enabl",{"_index":497,"title":{},"content":{"21":{"position":[[41,8],[112,7],[260,10]]},"177":{"position":[[216,6]]},"197":{"position":[[436,6]]},"202":{"position":[[432,6]]},"291":{"position":[[376,6],[475,6]]},"298":{"position":[[430,6]]},"303":{"position":[[415,6]]},"308":{"position":[[464,6]]},"318":{"position":[[275,6]]},"327":{"position":[[390,6]]},"340":{"position":[[486,6]]},"383":{"position":[[61,7]]}},"keywords":{}}],["enabling/dis",{"_index":1545,"title":{},"content":{"228":{"position":[[42,18],[237,18],[435,18],[634,18]]}},"keywords":{}}],["encod",{"_index":463,"title":{"217":{"position":[[13,8]]},"405":{"position":[[13,9]]},"444":{"position":[[13,9]]}},"content":{"15":{"position":[[529,8],[595,8],[635,8]]},"34":{"position":[[299,9]]},"37":{"position":[[350,9]]},"43":{"position":[[299,9]]},"91":{"position":[[299,9]]},"146":{"position":[[299,9]]},"218":{"position":[[95,8]]},"219":{"position":[[261,8],[387,8]]},"220":{"position":[[154,9]]},"221":{"position":[[154,9]]},"228":{"position":[[260,9],[350,9]]},"251":{"position":[[738,7]]},"281":{"position":[[218,9],[916,7],[1041,7]]},"282":{"position":[[13,9],[41,8]]}},"keywords":{}}],["encodeuricomponent('mîddi",{"_index":1726,"title":{},"content":{"270":{"position":[[341,27]]}},"keywords":{}}],["encourag",{"_index":1048,"title":{},"content":{"164":{"position":[[54,9]]},"356":{"position":[[205,10]]}},"keywords":{}}],["end",{"_index":242,"title":{},"content":{"6":{"position":[[396,4]]},"34":{"position":[[1870,3]]},"37":{"position":[[1995,3]]},"43":{"position":[[1870,3]]},"91":{"position":[[1895,3]]},"146":{"position":[[1882,3]]},"160":{"position":[[595,3]]},"166":{"position":[[437,3]]},"167":{"position":[[1030,3]]},"398":{"position":[[309,3],[543,6]]},"474":{"position":[[152,5],[1077,3]]}},"keywords":{}}],["endpoint",{"_index":1793,"title":{},"content":{"282":{"position":[[644,9]]},"343":{"position":[[227,9]]}},"keywords":{}}],["enforc",{"_index":871,"title":{},"content":{"151":{"position":[[992,7]]}},"keywords":{}}],["engin",{"_index":103,"title":{},"content":{"4":{"position":[[34,6],[280,6]]},"354":{"position":[[126,6]]}},"keywords":{}}],["enhanc",{"_index":932,"title":{},"content":{"156":{"position":[[322,8]]}},"keywords":{}}],["enrich",{"_index":1920,"title":{},"content":{"323":{"position":[[244,6]]}},"keywords":{}}],["ensur",{"_index":25,"title":{},"content":{"1":{"position":[[67,6]]},"7":{"position":[[184,6]]},"167":{"position":[[1503,6]]},"219":{"position":[[547,6]]},"315":{"position":[[217,6]]}},"keywords":{}}],["enter",{"_index":1078,"title":{},"content":{"166":{"position":[[207,6]]}},"keywords":{}}],["entir",{"_index":1704,"title":{},"content":{"264":{"position":[[131,6],[327,6]]}},"keywords":{}}],["entiti",{"_index":1604,"title":{},"content":{"232":{"position":[[1792,7]]},"244":{"position":[[350,7]]}},"keywords":{}}],["entri",{"_index":455,"title":{},"content":{"15":{"position":[[277,6]]},"174":{"position":[[1178,5],[1326,6],[1688,5],[1848,8],[2019,6]]}},"keywords":{}}],["env",{"_index":79,"title":{},"content":{"2":{"position":[[634,4]]},"17":{"position":[[46,3]]},"324":{"position":[[1481,4]]}},"keywords":{}}],["env"",{"_index":476,"title":{},"content":{"17":{"position":[[187,10]]}},"keywords":{}}],["environ",{"_index":5,"title":{},"content":{"0":{"position":[[46,11]]},"104":{"position":[[394,12]]},"167":{"position":[[1159,13]]},"174":{"position":[[1869,11],[1927,13]]},"175":{"position":[[400,12]]},"198":{"position":[[346,12]]},"324":{"position":[[1516,11]]}},"keywords":{}}],["equal",{"_index":850,"title":{},"content":{"151":{"position":[[316,7]]},"322":{"position":[[309,5]]}},"keywords":{}}],["equal/es6",{"_index":330,"title":{},"content":{"7":{"position":[[986,9]]}},"keywords":{}}],["equal/react.j",{"_index":331,"title":{},"content":{"7":{"position":[[1009,14]]}},"keywords":{}}],["err",{"_index":2091,"title":{},"content":{"362":{"position":[[638,5],[1166,5]]}},"keywords":{}}],["error",{"_index":157,"title":{"160":{"position":[[9,6]]},"213":{"position":[[0,5]]},"241":{"position":[[5,5]]},"375":{"position":[[5,5]]},"403":{"position":[[0,5]]},"408":{"position":[[5,5]]},"442":{"position":[[0,5]]},"447":{"position":[[5,5]]}},"content":{"5":{"position":[[391,5],[1125,5],[2025,6]]},"6":{"position":[[339,5]]},"34":{"position":[[411,5]]},"37":{"position":[[462,5]]},"43":{"position":[[411,5]]},"91":{"position":[[411,5]]},"146":{"position":[[411,5]]},"151":{"position":[[795,5],[844,5],[920,5]]},"153":{"position":[[327,6],[447,5]]},"160":{"position":[[9,6],[51,6],[75,6],[307,5],[361,5],[421,5],[502,5],[606,5],[701,6],[759,6],[895,5],[921,12],[948,5]]},"161":{"position":[[680,7]]},"167":{"position":[[634,5],[1135,7]]},"173":{"position":[[209,6]]},"178":{"position":[[961,5]]},"181":{"position":[[515,5]]},"186":{"position":[[690,7]]},"215":{"position":[[110,5]]},"229":{"position":[[208,5]]},"232":{"position":[[1409,5]]},"236":{"position":[[251,5]]},"242":{"position":[[87,5]]},"243":{"position":[[89,5],[220,6]]},"244":{"position":[[74,5]]},"282":{"position":[[147,5],[197,6],[235,6]]},"315":{"position":[[224,6]]},"324":{"position":[[115,5]]},"347":{"position":[[589,6]]},"351":{"position":[[246,6],[357,6]]},"354":{"position":[[688,5]]},"359":{"position":[[882,5]]},"360":{"position":[[130,7]]},"363":{"position":[[261,6],[356,6]]},"367":{"position":[[136,10],[258,10],[396,5]]},"375":{"position":[[45,6],[188,6]]},"394":{"position":[[262,6]]},"397":{"position":[[61,5],[83,5]]},"398":{"position":[[245,6],[831,5]]},"399":{"position":[[12,5]]},"407":{"position":[[40,5]]},"409":{"position":[[59,5]]},"414":{"position":[[129,5]]},"416":{"position":[[40,5]]},"426":{"position":[[166,5]]},"429":{"position":[[13,6]]},"466":{"position":[[329,5],[516,5]]},"473":{"position":[[715,5]]},"475":{"position":[[252,6],[948,7]]},"476":{"position":[[53,5],[212,5]]}},"keywords":{}}],["error('error",{"_index":1388,"title":{},"content":{"186":{"position":[[710,12]]}},"keywords":{}}],["error('timeout",{"_index":2188,"title":{},"content":{"398":{"position":[[893,16]]}},"keywords":{}}],["error(in",{"_index":2301,"title":{},"content":{"475":{"position":[[928,8]]}},"keywords":{}}],["errorlogg",{"_index":1498,"title":{},"content":{"216":{"position":[[39,11]]}},"keywords":{}}],["errorloggermiddlewar",{"_index":642,"title":{},"content":{"34":{"position":[[39,21]]},"37":{"position":[[90,21]]},"43":{"position":[[39,21]]},"91":{"position":[[39,21]]},"102":{"position":[[107,21]]},"146":{"position":[[39,21]]}},"keywords":{}}],["errormessag",{"_index":2252,"title":{},"content":{"466":{"position":[[541,12]]}},"keywords":{}}],["errors.http",{"_index":1786,"title":{},"content":{"282":{"position":[[276,11]]}},"keywords":{}}],["errors/src",{"_index":301,"title":{},"content":{"7":{"position":[[418,10]]}},"keywords":{}}],["errorscatch",{"_index":2192,"title":{},"content":{"399":{"position":[[56,11]]}},"keywords":{}}],["errorsinput",{"_index":1765,"title":{},"content":{"280":{"position":[[205,11]]}},"keywords":{}}],["errorsplugin",{"_index":2184,"title":{},"content":{"398":{"position":[[581,12]]}},"keywords":{}}],["errrormessag",{"_index":2089,"title":{},"content":{"361":{"position":[[152,15]]}},"keywords":{}}],["es",{"_index":414,"title":{},"content":{"13":{"position":[[397,4],[410,2]]}},"keywords":{}}],["esbuild",{"_index":386,"title":{"12":{"position":[[0,8]]},"18":{"position":[[0,8]]}},"content":{"12":{"position":[[9,7]]},"18":{"position":[[9,7]]}},"keywords":{}}],["eslintignor",{"_index":358,"title":{},"content":{"7":{"position":[[1454,13]]}},"keywords":{}}],["eslintrc",{"_index":359,"title":{},"content":{"7":{"position":[[1468,9]]}},"keywords":{}}],["eslintrc.yml",{"_index":360,"title":{},"content":{"7":{"position":[[1478,13]]}},"keywords":{}}],["esm",{"_index":146,"title":{},"content":{"5":{"position":[[189,3]]}},"keywords":{}}],["especi",{"_index":2278,"title":{},"content":{"474":{"position":[[402,10]]}},"keywords":{}}],["establish",{"_index":12,"title":{},"content":{"0":{"position":[[184,11]]}},"keywords":{}}],["etc",{"_index":126,"title":{},"content":{"4":{"position":[[457,4]]},"6":{"position":[[355,4],[581,6]]},"179":{"position":[[504,4]]}},"keywords":{}}],["eu",{"_index":1236,"title":{},"content":{"174":{"position":[[579,2],[781,2]]}},"keywords":{}}],["evalu",{"_index":1646,"title":{},"content":{"251":{"position":[[821,8]]}},"keywords":{}}],["even",{"_index":39,"title":{},"content":{"2":{"position":[[44,4]]},"219":{"position":[[312,4]]}},"keywords":{}}],["event",{"_index":98,"title":{"86":{"position":[[4,6]]},"101":{"position":[[8,6]]},"209":{"position":[[22,5]]},"222":{"position":[[0,5]]},"234":{"position":[[5,5]]},"371":{"position":[[22,5]]},"376":{"position":[[5,5]]},"402":{"position":[[22,5]]},"404":{"position":[[0,5]]},"409":{"position":[[5,5]]},"441":{"position":[[22,5]]},"443":{"position":[[0,5]]},"448":{"position":[[5,5]]}},"content":{"2":{"position":[[1299,7]]},"5":{"position":[[644,7],[1662,5]]},"15":{"position":[[433,9]]},"34":{"position":[[481,5]]},"37":{"position":[[532,5]]},"43":{"position":[[481,5]]},"78":{"position":[[53,7]]},"87":{"position":[[30,6]]},"91":{"position":[[481,5]]},"102":{"position":[[676,7]]},"103":{"position":[[837,7]]},"104":{"position":[[776,7]]},"136":{"position":[[12,5],[145,5]]},"146":{"position":[[481,5]]},"153":{"position":[[710,5],[741,7]]},"157":{"position":[[189,7],[768,7]]},"168":{"position":[[192,6],[351,7]]},"171":{"position":[[136,6]]},"173":{"position":[[704,6]]},"174":{"position":[[2190,6],[2275,5]]},"183":{"position":[[79,5],[215,5]]},"186":{"position":[[387,5],[522,7]]},"188":{"position":[[412,5],[609,5]]},"189":{"position":[[936,5],[967,7]]},"192":{"position":[[155,7]]},"193":{"position":[[155,7]]},"210":{"position":[[104,5]]},"212":{"position":[[101,5]]},"224":{"position":[[227,6]]},"225":{"position":[[108,7],[153,5]]},"235":{"position":[[87,5]]},"236":{"position":[[77,5]]},"248":{"position":[[310,5]]},"252":{"position":[[325,5]]},"260":{"position":[[375,5]]},"266":{"position":[[568,5]]},"270":{"position":[[292,8],[307,5]]},"274":{"position":[[385,8],[400,5]]},"280":{"position":[[121,5]]},"281":{"position":[[0,5],[58,5],[275,5],[309,6],[1098,6]]},"294":{"position":[[141,7]]},"314":{"position":[[110,7]]},"322":{"position":[[399,5],[484,5],[738,5],[794,5],[1385,6]]},"324":{"position":[[76,6],[251,5],[280,5]]},"332":{"position":[[41,5],[101,5],[119,5],[203,5]]},"333":{"position":[[97,7],[162,7]]},"354":{"position":[[583,5],[739,5]]},"362":{"position":[[12,5],[389,5],[554,5],[675,6]]},"369":{"position":[[224,7]]},"388":{"position":[[61,6]]},"409":{"position":[[80,5]]},"415":{"position":[[26,6]]},"421":{"position":[[24,5]]},"425":{"position":[[24,5]]},"426":{"position":[[127,5]]},"431":{"position":[[32,5]]},"433":{"position":[[26,6]]},"472":{"position":[[434,6],[1073,7]]},"474":{"position":[[146,5]]},"475":{"position":[[872,5]]},"476":{"position":[[516,7],[589,6]]},"478":{"position":[[98,6]]}},"keywords":{}}],["event.bodi",{"_index":173,"title":{},"content":{"5":{"position":[[837,10]]},"270":{"position":[[158,10]]},"274":{"position":[[223,10]]}},"keywords":{}}],["event.body.messag",{"_index":1999,"title":{},"content":{"337":{"position":[[281,18]]}},"keywords":{}}],["event.iswarmingup",{"_index":1993,"title":{},"content":{"333":{"position":[[111,17]]}},"keywords":{}}],["event.path",{"_index":1154,"title":{},"content":{"168":{"position":[[547,14]]}},"keywords":{}}],["event.pathparameters.userid",{"_index":1608,"title":{},"content":{"236":{"position":[[166,32]]}},"keywords":{}}],["event.preferredlanguag",{"_index":1564,"title":{},"content":{"229":{"position":[[302,25]]}},"keywords":{}}],["event.preferredmediatyp",{"_index":1571,"title":{},"content":{"229":{"position":[[464,26]]}},"keywords":{}}],["event.productid",{"_index":1383,"title":{},"content":{"186":{"position":[[463,16]]}},"keywords":{}}],["event.rawbodi",{"_index":2234,"title":{},"content":{"450":{"position":[[10,13]]}},"keywords":{}}],["event.records.map(async",{"_index":1862,"title":{},"content":{"314":{"position":[[158,23]]}},"keywords":{}}],["event.requestcontext.connectionid",{"_index":2006,"title":{},"content":{"340":{"position":[[936,33]]}},"keywords":{}}],["event.requestcontext.{domainname,stage}if",{"_index":2004,"title":{},"content":{"340":{"position":[[837,41]]}},"keywords":{}}],["event.requiredcontenttyp",{"_index":1707,"title":{},"content":{"265":{"position":[[138,25]]}},"keywords":{}}],["eventbridg",{"_index":728,"title":{"74":{"position":[[0,11]]}},"content":{"78":{"position":[[29,11]]}},"keywords":{}}],["eventnorm",{"_index":1542,"title":{},"content":{"225":{"position":[[39,15]]}},"keywords":{}}],["eventnormalizermiddlewar",{"_index":718,"title":{},"content":{"55":{"position":[[39,25]]},"64":{"position":[[39,25]]},"73":{"position":[[39,25]]},"82":{"position":[[39,25]]},"94":{"position":[[39,25]]},"97":{"position":[[39,25]]},"100":{"position":[[39,25]]},"110":{"position":[[39,25]]},"113":{"position":[[39,25]]},"116":{"position":[[39,25]]},"119":{"position":[[39,25]]},"122":{"position":[[39,25]]},"134":{"position":[[39,25]]},"139":{"position":[[39,25]]}},"keywords":{}}],["events.http",{"_index":1770,"title":{},"content":{"281":{"position":[[104,11]]}},"keywords":{}}],["eventschema",{"_index":216,"title":{},"content":{"5":{"position":[[1913,12]]},"34":{"position":[[1216,11],[2224,12]]},"43":{"position":[[1216,11],[2235,12]]},"91":{"position":[[1216,11],[2249,12]]},"102":{"position":[[314,11],[629,12]]},"146":{"position":[[1228,11],[2236,12]]},"359":{"position":[[0,11],[814,11]]},"362":{"position":[[448,12],[2038,12]]},"363":{"position":[[692,11],[828,12]]},"364":{"position":[[202,11],[400,12]]},"365":{"position":[[271,11],[359,12]]},"429":{"position":[[115,12]]},"466":{"position":[[828,12],[1056,12]]}},"keywords":{}}],["eventschema.json",{"_index":669,"title":{},"content":{"34":{"position":[[1233,20]]},"43":{"position":[[1233,20]]},"91":{"position":[[1233,20]]},"102":{"position":[[331,20]]},"146":{"position":[[1245,20]]}},"keywords":{}}],["eventsourcemap",{"_index":1868,"title":{},"content":{"315":{"position":[[94,19],[159,18]]}},"keywords":{}}],["eventsrefactor",{"_index":2196,"title":{},"content":{"404":{"position":[[32,16]]}},"keywords":{}}],["everyon",{"_index":875,"title":{},"content":{"152":{"position":[[52,8]]}},"keywords":{}}],["everyth",{"_index":566,"title":{},"content":{"21":{"position":[[1868,10]]},"265":{"position":[[198,10]]}},"keywords":{}}],["exampl",{"_index":133,"title":{"5":{"position":[[8,8]]},"25":{"position":[[0,8]]},"28":{"position":[[0,8]]},"31":{"position":[[0,8]]},"34":{"position":[[0,8]]},"37":{"position":[[0,8]]},"40":{"position":[[0,8]]},"43":{"position":[[0,8]]},"46":{"position":[[0,8]]},"49":{"position":[[0,8]]},"52":{"position":[[0,8]]},"55":{"position":[[0,8]]},"58":{"position":[[0,8]]},"61":{"position":[[0,8]]},"64":{"position":[[0,8]]},"68":{"position":[[0,8]]},"70":{"position":[[0,8]]},"73":{"position":[[0,8]]},"77":{"position":[[0,8]]},"79":{"position":[[0,8]]},"82":{"position":[[0,8]]},"85":{"position":[[0,8]]},"88":{"position":[[0,8]]},"91":{"position":[[0,8]]},"94":{"position":[[0,8]]},"97":{"position":[[0,8]]},"100":{"position":[[0,8]]},"107":{"position":[[0,8]]},"110":{"position":[[0,8]]},"113":{"position":[[0,8]]},"116":{"position":[[0,8]]},"119":{"position":[[0,8]]},"122":{"position":[[0,8]]},"125":{"position":[[0,8]]},"128":{"position":[[0,8]]},"131":{"position":[[0,8]]},"134":{"position":[[0,8]]},"139":{"position":[[0,8]]},"142":{"position":[[0,8]]},"146":{"position":[[0,8]]},"157":{"position":[[0,8]]},"192":{"position":[[20,8]]},"193":{"position":[[32,8]]},"363":{"position":[[16,7]]},"477":{"position":[[5,8]]}},"content":{"5":{"position":[[56,8]]},"21":{"position":[[2553,7]]},"136":{"position":[[98,8]]},"153":{"position":[[565,8]]},"156":{"position":[[28,8]]},"157":{"position":[[1017,8]]},"161":{"position":[[706,7]]},"167":{"position":[[1176,7]]},"168":{"position":[[113,7]]},"174":{"position":[[1337,8],[1778,8]]},"178":{"position":[[1203,8]]},"179":{"position":[[153,8]]},"189":{"position":[[304,8],[700,7]]},"277":{"position":[[384,9],[476,8]]},"362":{"position":[[0,7],[713,7],[1372,7]]},"363":{"position":[[94,8]]},"370":{"position":[[100,7]]},"472":{"position":[[953,8]]},"473":{"position":[[406,8]]},"477":{"position":[[5,8],[66,8]]},"478":{"position":[[26,7]]}},"keywords":{}}],["except",{"_index":1283,"title":{},"content":{"175":{"position":[[95,10]]},"228":{"position":[[887,9]]},"324":{"position":[[160,10]]}},"keywords":{}}],["excess",{"_index":285,"title":{},"content":{"7":{"position":[[135,6],[216,6]]}},"keywords":{}}],["exclud",{"_index":1458,"title":{},"content":{"199":{"position":[[3,7],[57,7]]},"204":{"position":[[3,7],[56,7]]},"288":{"position":[[3,7],[51,7]]},"291":{"position":[[785,9]]},"295":{"position":[[3,7],[50,7]]},"300":{"position":[[3,7],[63,7]]},"305":{"position":[[3,7],[50,7]]},"310":{"position":[[3,7],[64,7]]},"320":{"position":[[3,7],[51,7]]},"329":{"position":[[3,7],[51,7]]},"344":{"position":[[3,7],[71,7]]}},"keywords":{}}],["execut",{"_index":888,"title":{"163":{"position":[[0,9]]}},"content":{"153":{"position":[[59,9],[216,9]]},"160":{"position":[[126,9],[455,9],[719,9]]},"161":{"position":[[145,9]]},"163":{"position":[[95,9],[242,9],[418,10],[602,8]]},"170":{"position":[[867,9]]},"178":{"position":[[1083,10]]},"183":{"position":[[42,9],[378,10]]},"189":{"position":[[88,9]]},"265":{"position":[[74,8],[502,9]]},"332":{"position":[[153,10]]},"340":{"position":[[747,7]]},"398":{"position":[[973,9]]},"475":{"position":[[123,8],[177,8],[232,8]]}},"keywords":{}}],["executed.requeststart",{"_index":1022,"title":{},"content":{"161":{"position":[[239,24]]}},"keywords":{}}],["exist",{"_index":2306,"title":{},"content":{"477":{"position":[[33,8]]}},"keywords":{}}],["exit",{"_index":911,"title":{},"content":{"153":{"position":[[1013,5]]},"167":{"position":[[1308,4],[1343,7]]},"189":{"position":[[1314,5]]},"398":{"position":[[767,5]]}},"keywords":{}}],["expect",{"_index":1035,"title":{},"content":{"163":{"position":[[400,8]]},"265":{"position":[[604,8]]}},"keywords":{}}],["expect(response).not.tobe(nul",{"_index":2095,"title":{},"content":{"362":{"position":[[1262,31]]}},"keywords":{}}],["expect(response.body).toequ",{"_index":1698,"title":{},"content":{"260":{"position":[[484,31]]}},"keywords":{}}],["experi",{"_index":458,"title":{},"content":{"15":{"position":[[365,12]]},"21":{"position":[[2481,11]]},"478":{"position":[[928,11]]}},"keywords":{}}],["expert",{"_index":2313,"title":{},"content":{"478":{"position":[[827,8]]}},"keywords":{}}],["expir",{"_index":2275,"title":{},"content":{"474":{"position":[[129,7]]}},"keywords":{}}],["expirymonth",{"_index":168,"title":{},"content":{"5":{"position":[[784,12],[1349,12]]}},"keywords":{}}],["expiryyear",{"_index":169,"title":{},"content":{"5":{"position":[[797,11],[1408,11]]}},"keywords":{}}],["explicitli",{"_index":1472,"title":{},"content":{"207":{"position":[[228,10]]}},"keywords":{}}],["export",{"_index":70,"title":{},"content":{"2":{"position":[[492,6]]},"13":{"position":[[295,6]]},"15":{"position":[[239,6]]},"21":{"position":[[882,6]]},"22":{"position":[[742,6]]},"25":{"position":[[32,6]]},"28":{"position":[[32,6]]},"31":{"position":[[581,6]]},"34":{"position":[[1353,6]]},"37":{"position":[[1478,6]]},"40":{"position":[[32,6]]},"43":{"position":[[1353,6]]},"46":{"position":[[32,6]]},"49":{"position":[[32,6]]},"52":{"position":[[32,6]]},"55":{"position":[[96,6]]},"58":{"position":[[32,6]]},"61":{"position":[[32,6]]},"64":{"position":[[96,6]]},"68":{"position":[[32,6]]},"70":{"position":[[32,6]]},"73":{"position":[[96,6]]},"77":{"position":[[32,6]]},"79":{"position":[[32,6]]},"82":{"position":[[96,6]]},"85":{"position":[[32,6]]},"88":{"position":[[32,6]]},"91":{"position":[[1353,6]]},"94":{"position":[[96,6]]},"97":{"position":[[96,6]]},"100":{"position":[[96,6]]},"103":{"position":[[266,6]]},"104":{"position":[[250,6]]},"107":{"position":[[32,6]]},"110":{"position":[[96,6]]},"113":{"position":[[96,6]]},"116":{"position":[[96,6]]},"119":{"position":[[96,6]]},"122":{"position":[[96,6]]},"125":{"position":[[32,6]]},"128":{"position":[[172,6]]},"131":{"position":[[32,6]]},"134":{"position":[[96,6]]},"139":{"position":[[166,6]]},"142":{"position":[[32,6]]},"146":{"position":[[1365,6]]},"148":{"position":[[594,6]]},"157":{"position":[[242,6],[822,6]]},"168":{"position":[[648,6]]},"174":{"position":[[312,6]]},"178":{"position":[[429,6]]},"182":{"position":[[363,6]]},"186":{"position":[[486,6]]},"188":{"position":[[709,6]]},"192":{"position":[[88,6]]},"193":{"position":[[88,6]]},"220":{"position":[[202,6]]},"221":{"position":[[258,6]]},"229":{"position":[[223,6]]},"314":{"position":[[305,6]]},"337":{"position":[[154,6]]},"342":{"position":[[76,6]]},"343":{"position":[[76,6]]},"348":{"position":[[580,6]]},"352":{"position":[[462,6]]},"363":{"position":[[779,6]]},"364":{"position":[[351,6]]},"365":{"position":[[310,6]]},"466":{"position":[[727,6],[995,6]]},"472":{"position":[[87,8],[836,6],[1122,6]]},"473":{"position":[[447,6]]},"474":{"position":[[1509,6]]},"475":{"position":[[733,6]]},"476":{"position":[[607,6]]},"478":{"position":[[693,6]]}},"keywords":{}}],["expos",{"_index":588,"title":{},"content":{"21":{"position":[[2313,6]]},"232":{"position":[[897,6]]},"473":{"position":[[774,7]]}},"keywords":{}}],["express",{"_index":109,"title":{},"content":{"4":{"position":[[147,8]]},"6":{"position":[[572,8]]},"324":{"position":[[1154,7]]},"355":{"position":[[398,7]]}},"keywords":{}}],["expressions@keboola/middi",{"_index":1929,"title":{},"content":{"324":{"position":[[89,25]]}},"keywords":{}}],["expressionsset",{"_index":1355,"title":{},"content":{"183":{"position":[[259,14]]}},"keywords":{}}],["extend",{"_index":2153,"title":{},"content":{"383":{"position":[[7,8],[80,10]]}},"keywords":{}}],["extern",{"_index":416,"title":{},"content":{"13":{"position":[[425,9]]},"15":{"position":[[402,10]]},"265":{"position":[[544,8]]},"474":{"position":[[477,8]]}},"keywords":{}}],["extract",{"_index":1467,"title":{},"content":{"207":{"position":[[100,9]]},"324":{"position":[[57,8]]}},"keywords":{}}],["extractor",{"_index":1928,"title":{},"content":{"324":{"position":[[46,10]]}},"keywords":{}}],["extraparamet",{"_index":1634,"title":{},"content":{"251":{"position":[[70,15]]}},"keywords":{}}],["fact",{"_index":996,"title":{},"content":{"159":{"position":[[539,5]]}},"keywords":{}}],["factori",{"_index":931,"title":{},"content":{"156":{"position":[[281,7]]}},"keywords":{}}],["fail",{"_index":1011,"title":{},"content":{"160":{"position":[[729,5]]},"167":{"position":[[994,7],[1298,6]]},"228":{"position":[[918,5]]},"282":{"position":[[581,6]]},"313":{"position":[[75,5]]},"362":{"position":[[689,6],[1242,6]]},"426":{"position":[[187,5]]}},"keywords":{}}],["failur",{"_index":814,"title":{"311":{"position":[[18,7]]},"391":{"position":[[18,8]]},"426":{"position":[[18,8]]},"463":{"position":[[18,8]]}},"content":{"139":{"position":[[157,8]]},"282":{"position":[[554,8]]},"312":{"position":[[100,7]]},"314":{"position":[[79,8]]},"315":{"position":[[139,8]]}},"keywords":{}}],["fallback",{"_index":1622,"title":{},"content":{"243":{"position":[[293,8]]},"359":{"position":[[722,8]]},"406":{"position":[[39,8]]}},"keywords":{}}],["fallbackmessag",{"_index":2151,"title":{},"content":{"375":{"position":[[195,15]]}},"keywords":{}}],["fals",{"_index":378,"title":{},"content":{"10":{"position":[[258,6]]},"167":{"position":[[965,6]]},"173":{"position":[[831,6]]},"197":{"position":[[620,7],[1019,7]]},"202":{"position":[[616,7],[1014,7]]},"211":{"position":[[78,5],[342,6]]},"212":{"position":[[336,5]]},"229":{"position":[[849,6],[872,6]]},"232":{"position":[[146,6]]},"243":{"position":[[124,5]]},"247":{"position":[[232,5]]},"251":{"position":[[417,5]]},"273":{"position":[[125,5]]},"277":{"position":[[106,7]]},"286":{"position":[[347,7],[747,7]]},"291":{"position":[[573,7]]},"298":{"position":[[631,7],[1093,7],[1498,7]]},"303":{"position":[[599,7],[991,7]]},"308":{"position":[[648,7],[1041,7]]},"318":{"position":[[459,7],[852,7]]},"327":{"position":[[631,7],[1024,7]]},"332":{"position":[[129,5]]},"340":{"position":[[584,7]]},"474":{"position":[[692,6],[750,5]]}},"keywords":{}}],["false)cachecontrol",{"_index":1594,"title":{},"content":{"232":{"position":[[1209,18]]}},"keywords":{}}],["false)defaulthead",{"_index":1614,"title":{},"content":{"239":{"position":[[139,20]]}},"keywords":{}}],["false)disablebeforepreflightrespons",{"_index":1579,"title":{},"content":{"232":{"position":[[87,36]]}},"keywords":{}}],["false)getorigin",{"_index":1584,"title":{},"content":{"232":{"position":[[444,15]]}},"keywords":{}}],["false)maxag",{"_index":1590,"title":{},"content":{"232":{"position":[[922,12]]}},"keywords":{}}],["false)method",{"_index":1583,"title":{},"content":{"232":{"position":[[354,13]]}},"keywords":{}}],["false)requestmethod",{"_index":1593,"title":{},"content":{"232":{"position":[[1110,20]]}},"keywords":{}}],["false)runonerror",{"_index":1491,"title":{},"content":{"211":{"position":[[312,16]]}},"keywords":{}}],["false.capturecoldstartmetr",{"_index":1326,"title":{},"content":{"181":{"position":[[559,28]]}},"keywords":{}}],["false.clearst",{"_index":1216,"title":{},"content":{"173":{"position":[[723,16]]}},"keywords":{}}],["falseerror",{"_index":1764,"title":{},"content":{"280":{"position":[[181,10]]}},"keywords":{}}],["falsi",{"_index":1124,"title":{},"content":{"167":{"position":[[711,5]]}},"keywords":{}}],["familiar",{"_index":110,"title":{},"content":{"4":{"position":[[173,8]]}},"keywords":{}}],["famou",{"_index":2047,"title":{},"content":{"355":{"position":[[370,6]]}},"keywords":{}}],["faq",{"_index":803,"title":{"135":{"position":[[0,3]]}},"content":{},"keywords":{}}],["fast",{"_index":328,"title":{},"content":{"7":{"position":[[973,7],[996,7]]}},"keywords":{}}],["faster",{"_index":2242,"title":{},"content":{"466":{"position":[[71,6]]}},"keywords":{}}],["fastifi",{"_index":251,"title":{},"content":{"6":{"position":[[556,9]]},"355":{"position":[[409,7]]}},"keywords":{}}],["favour",{"_index":2214,"title":{},"content":{"421":{"position":[[14,6]]},"425":{"position":[[14,6]]}},"keywords":{}}],["fe3fd9b100f8",{"_index":1484,"title":{},"content":{"208":{"position":[[282,13]]}},"keywords":{}}],["featur",{"_index":590,"title":{},"content":{"21":{"position":[[2398,7]]},"171":{"position":[[4,9]]},"175":{"position":[[4,9]]},"179":{"position":[[4,9]]},"183":{"position":[[4,9]]},"185":{"position":[[244,8]]},"354":{"position":[[21,8],[268,8]]},"395":{"position":[[48,7]]}},"keywords":{}}],["feature)frameguard",{"_index":1660,"title":{},"content":{"255":{"position":[[106,18]]}},"keywords":{}}],["feel",{"_index":878,"title":{},"content":{"152":{"position":[[111,4]]}},"keywords":{}}],["fetch",{"_index":1444,"title":{"283":{"position":[[0,5]]}},"content":{"197":{"position":[[786,7],[891,5]]},"202":{"position":[[781,7],[886,5]]},"283":{"position":[[11,5],[62,5],[109,7],[164,5],[269,7],[332,7],[422,7],[487,7]]},"286":{"position":[[514,7],[619,5]]},"298":{"position":[[742,5],[1265,7],[1370,5]]},"299":{"position":[[343,5]]},"303":{"position":[[758,7],[863,5]]},"308":{"position":[[808,7],[913,5]]},"318":{"position":[[619,7],[724,5]]},"324":{"position":[[1486,6]]},"327":{"position":[[791,7],[896,5]]},"328":{"position":[[989,5]]},"386":{"position":[[18,5]]},"388":{"position":[[18,5]]},"393":{"position":[[18,5]]},"474":{"position":[[850,5],[908,5],[996,12],[1093,5],[1165,6],[1269,6]]}},"keywords":{}}],["fetchdata",{"_index":756,"title":{},"content":{"103":{"position":[[325,10],[516,10],[603,10],[679,10]]},"104":{"position":[[309,10],[443,10],[524,10],[613,10]]},"198":{"position":[[264,10]]},"203":{"position":[[261,10]]},"287":{"position":[[265,10]]},"299":{"position":[[174,10]]},"304":{"position":[[271,10]]},"309":{"position":[[286,10]]},"319":{"position":[[246,10]]},"328":{"position":[[165,10],[660,10],[744,10]]},"474":{"position":[[633,10]]}},"keywords":{}}],["fetchrotationd",{"_index":1843,"title":{},"content":{"298":{"position":[[1633,17]]}},"keywords":{}}],["few",{"_index":925,"title":{},"content":{"156":{"position":[[82,3]]},"167":{"position":[[428,3]]},"179":{"position":[[460,3]]}},"keywords":{}}],["field",{"_index":1129,"title":{},"content":{"167":{"position":[[937,6]]},"170":{"position":[[303,6]]},"171":{"position":[[28,6]]},"174":{"position":[[1201,6],[1361,5],[1452,5]]},"259":{"position":[[50,6]]},"260":{"position":[[410,7]]},"277":{"position":[[268,6]]}},"keywords":{}}],["file",{"_index":286,"title":{},"content":{"7":{"position":[[142,5],[268,4]]},"13":{"position":[[356,5]]},"17":{"position":[[89,4]]},"19":{"position":[[65,4]]},"251":{"position":[[897,6],[983,5]]},"303":{"position":[[1109,4]]},"324":{"position":[[409,4]]},"361":{"position":[[37,4],[212,4]]},"363":{"position":[[414,4],[458,5],[564,4],[600,5]]}},"keywords":{}}],["filenam",{"_index":456,"title":{},"content":{"15":{"position":[[308,9]]}},"keywords":{}}],["fileurltopath",{"_index":448,"title":{},"content":{"15":{"position":[[114,13]]}},"keywords":{}}],["fileurltopath(import.meta.url",{"_index":451,"title":{},"content":{"15":{"position":[[165,30]]}},"keywords":{}}],["filter",{"_index":1679,"title":{},"content":{"259":{"position":[[98,6]]},"282":{"position":[[417,6]]},"322":{"position":[[210,9]]}},"keywords":{}}],["filteringkeynam",{"_index":1677,"title":{},"content":{"259":{"position":[[0,16]]}},"keywords":{}}],["final",{"_index":1277,"title":{},"content":{"174":{"position":[[2319,8]]}},"keywords":{}}],["find",{"_index":21,"title":{},"content":{"1":{"position":[[31,4]]},"6":{"position":[[1034,4]]},"167":{"position":[[1456,4]]}},"keywords":{}}],["firehos",{"_index":741,"title":{"98":{"position":[[8,8]]}},"content":{"99":{"position":[[42,8]]}},"keywords":{}}],["first",{"_index":11,"title":{},"content":{"0":{"position":[[167,5]]},"21":{"position":[[2174,5]]},"151":{"position":[[168,6]]},"159":{"position":[[269,5],[300,5]]},"161":{"position":[[302,5]]},"163":{"position":[[643,5],[721,5]]},"164":{"position":[[36,5]]},"215":{"position":[[126,5]]},"265":{"position":[[468,5]]},"362":{"position":[[1981,5]]},"398":{"position":[[332,5]]}},"keywords":{}}],["firstdefault",{"_index":1712,"title":{},"content":{"265":{"position":[[340,12]]}},"keywords":{}}],["firstnam",{"_index":1681,"title":{},"content":{"260":{"position":[[186,10],[516,10]]}},"keywords":{}}],["firstname,lastnam",{"_index":1697,"title":{},"content":{"260":{"position":[[418,20]]}},"keywords":{}}],["fli",{"_index":2076,"title":{},"content":{"359":{"position":[[1118,3]]}},"keywords":{}}],["flight",{"_index":1596,"title":{},"content":{"232":{"position":[[1293,6]]}},"keywords":{}}],["flow",{"_index":889,"title":{},"content":{"153":{"position":[[69,4]]},"160":{"position":[[102,4]]},"189":{"position":[[98,4]]},"473":{"position":[[348,5]]}},"keywords":{}}],["fluent",{"_index":2087,"title":{},"content":{"361":{"position":[[10,6]]}},"keywords":{}}],["flush",{"_index":1177,"title":{},"content":{"170":{"position":[[724,7]]}},"keywords":{}}],["focu",{"_index":115,"title":{},"content":{"4":{"position":[[301,5]]},"6":{"position":[[99,5]]}},"keywords":{}}],["focus",{"_index":927,"title":{},"content":{"156":{"position":[[130,8]]}},"keywords":{}}],["follow",{"_index":4,"title":{},"content":{"0":{"position":[[36,9]]},"160":{"position":[[222,9]]},"167":{"position":[[947,8],[1268,8]]},"170":{"position":[[178,9]]},"173":{"position":[[30,9],[164,9],[494,9],[620,9]]},"174":{"position":[[423,9]]},"177":{"position":[[30,9],[388,9],[514,9]]},"181":{"position":[[30,9],[309,9],[437,9]]},"182":{"position":[[501,10]]},"185":{"position":[[23,9]]},"188":{"position":[[233,8]]},"189":{"position":[[686,9],[789,10]]},"265":{"position":[[121,9]]},"369":{"position":[[68,9]]},"395":{"position":[[206,9]]},"472":{"position":[[943,9]]},"475":{"position":[[312,9]]}},"keywords":{}}],["foo",{"_index":1225,"title":{},"content":{"174":{"position":[[285,4]]},"248":{"position":[[457,4],[523,4]]},"252":{"position":[[700,4]]},"362":{"position":[[276,7],[395,4],[533,3]]},"472":{"position":[[1199,6]]}},"keywords":{}}],["forc",{"_index":1137,"title":{},"content":{"167":{"position":[[1337,5]]}},"keywords":{}}],["forev",{"_index":1447,"title":{},"content":{"197":{"position":[[944,8]]},"202":{"position":[[939,8]]},"286":{"position":[[672,8]]},"298":{"position":[[1423,8]]},"303":{"position":[[916,8]]},"308":{"position":[[966,8]]},"318":{"position":[[777,8]]},"327":{"position":[[949,8]]}},"keywords":{}}],["form",{"_index":1734,"title":{},"content":{"274":{"position":[[456,4]]},"281":{"position":[[956,4]]}},"keywords":{}}],["formal",{"_index":2155,"title":{},"content":{"383":{"position":[[52,8]]}},"keywords":{}}],["format",{"_index":303,"title":{},"content":{"7":{"position":[[455,7],[488,7],[528,7]]},"13":{"position":[[389,7]]},"170":{"position":[[761,9]]},"239":{"position":[[72,7]]},"323":{"position":[[377,6]]},"347":{"position":[[227,9]]},"351":{"position":[[106,9]]},"355":{"position":[[103,7],[244,6],[683,7]]},"360":{"position":[[80,8],[93,7]]},"361":{"position":[[62,7]]},"362":{"position":[[1842,7]]}},"keywords":{}}],["format=cj",{"_index":480,"title":{},"content":{"18":{"position":[[77,10]]}},"keywords":{}}],["format=esm",{"_index":393,"title":{},"content":{"12":{"position":[[139,10]]}},"keywords":{}}],["formathttp",{"_index":1774,"title":{},"content":{"281":{"position":[[511,10]]}},"keywords":{}}],["formats/src",{"_index":302,"title":{},"content":{"7":{"position":[[436,11]]}},"keywords":{}}],["formatt",{"_index":1191,"title":{},"content":{"171":{"position":[[368,9],[394,10]]},"174":{"position":[[2369,9]]}},"keywords":{}}],["former.shar",{"_index":2019,"title":{},"content":{"347":{"position":[[656,13]]},"351":{"position":[[424,13]]}},"keywords":{}}],["forward",{"_index":1792,"title":{},"content":{"282":{"position":[[613,8]]}},"keywords":{}}],["found",{"_index":1703,"title":{},"content":{"264":{"position":[[30,6]]},"359":{"position":[[698,6],[1035,5]]},"399":{"position":[[257,5]]}},"keywords":{}}],["fr",{"_index":681,"title":{},"content":{"34":{"position":[[1622,3]]},"37":{"position":[[1747,3]]},"43":{"position":[[1622,3]]},"91":{"position":[[1647,3]]},"146":{"position":[[1634,3]]},"229":{"position":[[378,3],[382,4],[909,3],[913,4]]},"363":{"position":[[761,2],[858,2]]},"364":{"position":[[302,2],[460,2]]},"365":{"position":[[208,2],[419,2]]},"466":{"position":[[970,2],[1147,2]]}},"keywords":{}}],["fr.j",{"_index":2117,"title":{},"content":{"363":{"position":[[769,9]]}},"keywords":{}}],["framework",{"_index":108,"title":{"149":{"position":[[11,9]]}},"content":{"4":{"position":[[131,10]]},"6":{"position":[[545,10],[1130,9]]},"149":{"position":[[11,9]]},"324":{"position":[[1435,9]]},"355":{"position":[[382,10]]}},"keywords":{}}],["frappucino",{"_index":1736,"title":{},"content":{"274":{"position":[[597,11]]}},"keywords":{}}],["frappucino=muffin&goat%5b%5d=scone&pond=moos",{"_index":1735,"title":{},"content":{"274":{"position":[[482,55]]}},"keywords":{}}],["free",{"_index":879,"title":{},"content":{"152":{"position":[[116,4]]}},"keywords":{}}],["ftl",{"_index":2088,"title":{},"content":{"361":{"position":[[17,6],[168,3],[208,3]]},"363":{"position":[[514,3]]},"365":{"position":[[223,3]]},"466":{"position":[[985,3]]}},"keywords":{}}],["full",{"_index":1073,"title":{},"content":{"166":{"position":[[96,4]]},"175":{"position":[[90,4]]},"232":{"position":[[520,4]]}},"keywords":{}}],["fun",{"_index":995,"title":{},"content":{"159":{"position":[[535,3]]}},"keywords":{}}],["function",{"_index":257,"title":{"89":{"position":[[0,8]]},"192":{"position":[[7,8]]},"264":{"position":[[11,10]]},"372":{"position":[[0,8]]}},"content":{"6":{"position":[[798,9]]},"21":{"position":[[2682,8]]},"106":{"position":[[52,8]]},"153":{"position":[[651,8]]},"156":{"position":[[289,9],[473,8]]},"157":{"position":[[944,9]]},"161":{"position":[[429,9],[443,8]]},"167":{"position":[[822,9]]},"168":{"position":[[328,8]]},"170":{"position":[[530,8],[824,9]]},"174":{"position":[[1396,8]]},"175":{"position":[[216,9]]},"178":{"position":[[1060,8],[1189,9],[1220,8],[1453,9]]},"179":{"position":[[342,8]]},"182":{"position":[[1063,8]]},"183":{"position":[[403,8]]},"188":{"position":[[57,8],[567,9],[634,8]]},"189":{"position":[[877,8]]},"194":{"position":[[204,9]]},"197":{"position":[[404,10]]},"202":{"position":[[400,10]]},"215":{"position":[[19,8]]},"239":{"position":[[274,10],[299,8]]},"243":{"position":[[47,8]]},"247":{"position":[[8,10]]},"264":{"position":[[87,8],[108,8]]},"277":{"position":[[7,8],[47,8],[507,9],[536,8]]},"280":{"position":[[291,8]]},"291":{"position":[[353,10],[452,10]]},"298":{"position":[[407,10]]},"299":{"position":[[305,8]]},"303":{"position":[[383,10]]},"308":{"position":[[432,10]]},"313":{"position":[[7,10],[32,8]]},"318":{"position":[[252,10]]},"322":{"position":[[519,8],[585,8]]},"323":{"position":[[70,9],[444,9],[656,8],[713,9]]},"324":{"position":[[494,9],[1032,8]]},"327":{"position":[[367,10]]},"332":{"position":[[15,8],[176,8]]},"336":{"position":[[8,10]]},"340":{"position":[[454,10]]},"347":{"position":[[304,10],[355,8]]},"351":{"position":[[169,10],[230,8]]},"354":{"position":[[439,13]]},"359":{"position":[[12,10],[163,10],[423,10]]},"398":{"position":[[804,8]]},"466":{"position":[[126,14]]},"472":{"position":[[101,8],[152,8]]},"473":{"position":[[303,9]]},"475":{"position":[[106,8],[160,8],[215,8],[285,9]]},"476":{"position":[[282,14],[398,8]]}},"keywords":{}}],["function(incomingorigin:str",{"_index":1585,"title":{},"content":{"232":{"position":[[460,32]]}},"keywords":{}}],["functionfailonmismatch",{"_index":1556,"title":{},"content":{"228":{"position":[[786,22]]}},"keywords":{}}],["functionnam",{"_index":1423,"title":{},"content":{"194":{"position":[[190,13]]}},"keywords":{}}],["functionparseencod",{"_index":1548,"title":{},"content":{"228":{"position":[[186,22]]}},"keywords":{}}],["functionparselanguag",{"_index":1550,"title":{},"content":{"228":{"position":[[384,22]]}},"keywords":{}}],["functionparsemediatyp",{"_index":1553,"title":{},"content":{"228":{"position":[[582,23]]}},"keywords":{}}],["functionresponsetyp",{"_index":1867,"title":{},"content":{"315":{"position":[[65,21]]}},"keywords":{}}],["futur",{"_index":1659,"title":{},"content":{"255":{"position":[[98,7]]},"444":{"position":[[78,6]]}},"keywords":{}}],["gain",{"_index":1051,"title":{},"content":{"164":{"position":[[187,4]]}},"keywords":{}}],["gateway",{"_index":616,"title":{"23":{"position":[[4,7]]},"29":{"position":[[4,7]]},"32":{"position":[[4,7]]},"41":{"position":[[4,7]]},"342":{"position":[[4,8]]}},"content":{"24":{"position":[[72,7]]},"168":{"position":[[208,8]]},"322":{"position":[[1377,7]]},"347":{"position":[[386,7]]},"432":{"position":[[38,7]]},"478":{"position":[[114,8]]}},"keywords":{}}],["gatewaywork",{"_index":625,"title":{},"content":{"30":{"position":[[33,14]]},"33":{"position":[[33,14]]},"42":{"position":[[33,14]]},"90":{"position":[[33,14]]}},"keywords":{}}],["gender",{"_index":1685,"title":{},"content":{"260":{"position":[[222,7]]}},"keywords":{}}],["gener",{"_index":250,"title":{"343":{"position":[[0,8]]}},"content":{"6":{"position":[[533,7],[812,9]]},"167":{"position":[[1197,9]]},"175":{"position":[[160,10]]},"178":{"position":[[720,9]]},"232":{"position":[[540,10]]},"369":{"position":[[16,7]]},"370":{"position":[[16,7]]},"472":{"position":[[77,9]]}},"keywords":{}}],["get",{"_index":917,"title":{"154":{"position":[[0,7]]}},"content":{"163":{"position":[[801,4]]},"212":{"position":[[268,4]]},"283":{"position":[[218,4]]}},"keywords":{}}],["gethandl",{"_index":701,"title":{},"content":{"37":{"position":[[1236,10],[1406,10]]},"348":{"position":[[140,10],[508,10]]}},"keywords":{}}],["getintern",{"_index":50,"title":{},"content":{"2":{"position":[[219,13]]},"103":{"position":[[41,11]]},"104":{"position":[[41,11]]},"328":{"position":[[494,11],[1046,12]]},"399":{"position":[[0,11]]},"474":{"position":[[567,12]]}},"keywords":{}}],["getinternal(['key",{"_index":92,"title":{},"content":{"2":{"position":[[866,20]]}},"keywords":{}}],["getinternal(['node_env",{"_index":2227,"title":{},"content":{"434":{"position":[[145,25]]}},"keywords":{}}],["getinternal(object.keys(options.fetchdata",{"_index":2292,"title":{},"content":{"474":{"position":[[1371,43]]}},"keywords":{}}],["getinternal(tru",{"_index":96,"title":{},"content":{"2":{"position":[[1217,17]]},"103":{"position":[[792,17]]},"104":{"position":[[731,17]]}},"keywords":{}}],["getinternal({'newkey':'key",{"_index":93,"title":{},"content":{"2":{"position":[[989,29]]}},"keywords":{}}],["getremainingtimeinmilli",{"_index":2302,"title":{},"content":{"476":{"position":[[368,24]]}},"keywords":{}}],["getvalu",{"_index":2138,"title":{},"content":{"369":{"position":[[301,9]]}},"keywords":{}}],["gitattribut",{"_index":361,"title":{},"content":{"7":{"position":[[1492,14]]}},"keywords":{}}],["github",{"_index":823,"title":{},"content":{"143":{"position":[[135,7]]},"147":{"position":[[127,7]]},"148":{"position":[[136,7]]},"149":{"position":[[143,7]]},"150":{"position":[[139,7]]},"151":{"position":[[160,7]]},"159":{"position":[[217,6]]},"165":{"position":[[171,6]]},"167":{"position":[[130,7]]},"190":{"position":[[132,7]]}},"keywords":{}}],["give",{"_index":2314,"title":{},"content":{"478":{"position":[[899,4]]}},"keywords":{}}],["global",{"_index":1273,"title":{},"content":{"174":{"position":[[1706,6]]}},"keywords":{}}],["globaldefault",{"_index":1979,"title":{},"content":{"328":{"position":[[125,14],[400,14],[620,14]]}},"keywords":{}}],["go",{"_index":1894,"title":{},"content":{"322":{"position":[[569,5]]}},"keywords":{}}],["goat",{"_index":1738,"title":{},"content":{"274":{"position":[[619,9]]}},"keywords":{}}],["goe",{"_index":1075,"title":{},"content":{"166":{"position":[[142,4]]}},"keywords":{}}],["good",{"_index":568,"title":{},"content":{"21":{"position":[[1885,5]]},"189":{"position":[[529,4]]},"251":{"position":[[791,4]]},"478":{"position":[[923,4]]}},"keywords":{}}],["gql",{"_index":830,"title":{},"content":{"148":{"position":[[199,3]]}},"keywords":{}}],["gql(graphqlfiletostr",{"_index":838,"title":{},"content":{"148":{"position":[[473,22]]}},"keywords":{}}],["gracefulli",{"_index":1136,"title":{},"content":{"167":{"position":[[1313,10]]},"281":{"position":[[641,10]]}},"keywords":{}}],["graphql",{"_index":836,"title":{},"content":{"148":{"position":[[403,7]]}},"keywords":{}}],["graphql/resolvers.j",{"_index":833,"title":{},"content":{"148":{"position":[[317,24]]}},"keywords":{}}],["graphql/schema.j",{"_index":835,"title":{},"content":{"148":{"position":[[375,21]]}},"keywords":{}}],["graphqlfiletostr",{"_index":834,"title":{},"content":{"148":{"position":[[351,16]]}},"keywords":{}}],["great",{"_index":1065,"title":{},"content":{"165":{"position":[[149,5]]}},"keywords":{}}],["gt",{"_index":60,"title":{},"content":{"2":{"position":[[325,5],[400,5],[605,5],[767,5],[901,4],[1033,4],[1249,4],[1328,5]]},"5":{"position":[[661,5]]},"13":{"position":[[318,5]]},"21":{"position":[[88,5],[185,5],[249,5],[430,5],[475,5],[653,5],[700,5],[744,5]]},"22":{"position":[[119,5],[207,5],[271,5],[335,5],[380,5],[513,5],[560,5],[604,5]]},"25":{"position":[[100,5]]},"28":{"position":[[99,5]]},"34":{"position":[[1409,5],[2094,5],[2329,5]]},"37":{"position":[[1534,5],[2219,5]]},"40":{"position":[[100,5]]},"43":{"position":[[1409,5],[2094,5],[2340,5]]},"46":{"position":[[169,5]]},"49":{"position":[[99,5]]},"52":{"position":[[99,5]]},"55":{"position":[[197,5]]},"58":{"position":[[99,5]]},"61":{"position":[[99,5]]},"64":{"position":[[197,5]]},"68":{"position":[[99,5]]},"70":{"position":[[100,5]]},"73":{"position":[[197,5]]},"77":{"position":[[99,5]]},"79":{"position":[[100,5]]},"82":{"position":[[197,5]]},"85":{"position":[[99,5]]},"88":{"position":[[99,5]]},"91":{"position":[[1409,5],[2119,5],[2354,5]]},"94":{"position":[[197,5]]},"97":{"position":[[197,5]]},"100":{"position":[[197,5]]},"102":{"position":[[705,5]]},"103":{"position":[[752,5],[866,5]]},"104":{"position":[[691,5],[805,5]]},"107":{"position":[[99,5]]},"110":{"position":[[197,5]]},"113":{"position":[[168,4],[178,4],[188,4],[236,5]]},"116":{"position":[[169,4],[179,4],[227,5]]},"119":{"position":[[197,5]]},"122":{"position":[[197,5]]},"125":{"position":[[99,5]]},"128":{"position":[[369,5]]},"131":{"position":[[99,5]]},"134":{"position":[[197,5]]},"139":{"position":[[298,5]]},"142":{"position":[[99,5]]},"146":{"position":[[1421,5],[2106,5],[2341,5]]},"151":{"position":[[781,5]]},"153":{"position":[[749,5],[836,5],[903,5],[1166,5],[1395,5]]},"157":{"position":[[206,5],[785,5]]},"167":{"position":[[599,5]]},"174":{"position":[[222,5]]},"178":{"position":[[369,5]]},"182":{"position":[[290,5]]},"186":{"position":[[395,5],[540,5]]},"188":{"position":[[741,5]]},"189":{"position":[[975,5],[1062,5],[1129,5],[1467,5],[1696,5]]},"192":{"position":[[172,5]]},"193":{"position":[[172,5]]},"198":{"position":[[112,5]]},"203":{"position":[[110,5]]},"208":{"position":[[139,5]]},"212":{"position":[[152,5],[380,5]]},"216":{"position":[[117,5]]},"220":{"position":[[516,5]]},"221":{"position":[[599,5]]},"225":{"position":[[125,5]]},"229":{"position":[[269,5]]},"232":{"position":[[1499,5],[1663,5]]},"233":{"position":[[107,5],[213,5]]},"236":{"position":[[134,5]]},"240":{"position":[[176,5]]},"244":{"position":[[128,5],[281,5]]},"248":{"position":[[198,5],[502,5]]},"252":{"position":[[208,5],[679,5]]},"256":{"position":[[134,5]]},"260":{"position":[[134,5],[476,5]]},"263":{"position":[[130,5],[236,5],[315,5]]},"266":{"position":[[140,5],[318,5],[424,5],[503,5],[689,5]]},"270":{"position":[[143,5],[402,5]]},"274":{"position":[[208,5],[569,5]]},"278":{"position":[[130,5],[467,5],[552,5]]},"287":{"position":[[113,5]]},"293":{"position":[[152,5]]},"294":{"position":[[158,5]]},"299":{"position":[[123,5],[408,5]]},"304":{"position":[[98,5]]},"309":{"position":[[127,5]]},"314":{"position":[[127,5],[198,5]]},"319":{"position":[[100,5]]},"328":{"position":[[100,5],[392,5],[595,5],[1019,5]]},"333":{"position":[[105,5],[183,5]]},"337":{"position":[[266,5]]},"342":{"position":[[122,5]]},"343":{"position":[[122,5]]},"348":{"position":[[236,5],[392,5]]},"352":{"position":[[290,5],[429,5]]},"354":{"position":[[454,4],[477,4],[500,4],[549,4],[617,4],[671,4],[722,4],[777,4],[836,4],[890,4],[939,4],[989,4],[1034,4],[1066,4],[1092,4],[1134,4],[1180,4]]},"362":{"position":[[203,5],[649,5],[919,5],[1182,5],[1636,5]]},"363":{"position":[[894,5]]},"364":{"position":[[496,5]]},"365":{"position":[[455,5]]},"369":{"position":[[154,5],[232,5],[323,5],[372,5],[512,5],[751,5]]},"375":{"position":[[68,5],[178,5]]},"395":{"position":[[266,5]]},"398":{"position":[[875,5]]},"434":{"position":[[116,5]]},"450":{"position":[[112,5]]},"472":{"position":[[322,5],[418,5],[516,5],[638,5],[1090,5]]},"473":{"position":[[493,5],[540,5],[610,5],[681,5]]},"474":{"position":[[795,5],[861,5],[1053,5],[1221,5]]},"475":{"position":[[396,5],[490,5],[551,5],[614,5]]},"476":{"position":[[448,5],[543,5],[571,5],[704,5]]},"478":{"position":[[322,5],[472,5],[631,5]]}},"keywords":{}}],["gzip",{"_index":1509,"title":{},"content":{"219":{"position":[[298,4]]},"220":{"position":[[468,7]]},"221":{"position":[[551,7]]},"405":{"position":[[22,5]]}},"keywords":{}}],["gzipoptionsdefl",{"_index":1503,"title":{},"content":{"219":{"position":[[109,18]]}},"keywords":{}}],["hack",{"_index":388,"title":{},"content":{"12":{"position":[[31,4]]}},"keywords":{}}],["halfway",{"_index":1359,"title":{},"content":{"183":{"position":[[422,7]]}},"keywords":{}}],["handl",{"_index":220,"title":{"160":{"position":[[0,8]]},"476":{"position":[[0,6]]}},"content":{"5":{"position":[[2005,7]]},"6":{"position":[[345,9]]},"148":{"position":[[572,7]]},"153":{"position":[[453,8],[530,7]]},"160":{"position":[[0,8],[296,6],[409,7],[937,6]]},"232":{"position":[[218,8]]},"255":{"position":[[64,8]]},"281":{"position":[[633,7]]},"282":{"position":[[563,7]]},"315":{"position":[[246,7]]},"347":{"position":[[495,7],[581,7]]},"351":{"position":[[263,7],[349,7]]},"359":{"position":[[940,7]]},"398":{"position":[[236,8],[566,6]]},"414":{"position":[[144,7]]},"476":{"position":[[0,6]]}},"keywords":{}}],["handledcomplet",{"_index":2208,"title":{},"content":{"416":{"position":[[55,15]]}},"keywords":{}}],["handledsmal",{"_index":2201,"title":{},"content":{"407":{"position":[[55,12]]}},"keywords":{}}],["handler",{"_index":71,"title":{"241":{"position":[[11,7]]},"375":{"position":[[11,8]]},"408":{"position":[[11,8]]},"447":{"position":[[11,8]]}},"content":{"2":{"position":[[505,7],[1172,7]]},"5":{"position":[[397,8],[531,8],[1044,7],[1131,9],[1718,8],[1782,7]]},"6":{"position":[[190,8],[451,9],[1073,9]]},"21":{"position":[[895,7],[1225,9],[1653,7],[1928,8]]},"22":{"position":[[755,7],[1087,9]]},"25":{"position":[[45,7]]},"28":{"position":[[45,7]]},"31":{"position":[[210,7],[276,7],[348,7],[446,8],[500,8],[553,8],[594,7]]},"34":{"position":[[417,8],[1366,7]]},"37":{"position":[[468,8],[1225,7],[1288,7],[1397,8],[1453,8],[1491,7]]},"40":{"position":[[45,7]]},"43":{"position":[[417,8],[1366,7]]},"46":{"position":[[45,7]]},"49":{"position":[[45,7]]},"52":{"position":[[45,7]]},"55":{"position":[[109,7]]},"58":{"position":[[45,7]]},"61":{"position":[[45,7]]},"64":{"position":[[109,7]]},"68":{"position":[[45,7]]},"70":{"position":[[45,7]]},"73":{"position":[[109,7]]},"77":{"position":[[45,7]]},"79":{"position":[[45,7]]},"82":{"position":[[109,7]]},"85":{"position":[[45,7]]},"88":{"position":[[45,7]]},"91":{"position":[[417,8],[1366,7]]},"94":{"position":[[109,7]]},"97":{"position":[[109,7]]},"100":{"position":[[109,7]]},"102":{"position":[[457,7]]},"103":{"position":[[279,7]]},"104":{"position":[[263,7]]},"107":{"position":[[45,7]]},"110":{"position":[[109,7]]},"113":{"position":[[109,7]]},"116":{"position":[[109,7]]},"119":{"position":[[109,7]]},"122":{"position":[[109,7]]},"125":{"position":[[45,7]]},"128":{"position":[[185,7]]},"131":{"position":[[45,7]]},"134":{"position":[[109,7]]},"139":{"position":[[179,7]]},"142":{"position":[[45,7]]},"146":{"position":[[417,8],[1378,7]]},"148":{"position":[[607,7]]},"153":{"position":[[1362,7]]},"156":{"position":[[111,8],[258,7],[357,8]]},"157":{"position":[[255,7],[286,7],[835,7]]},"163":{"position":[[84,7],[231,7],[649,7]]},"167":{"position":[[245,7],[355,8]]},"168":{"position":[[570,7],[663,7]]},"174":{"position":[[325,7]]},"178":{"position":[[442,7],[743,7]]},"182":{"position":[[376,7]]},"183":{"position":[[29,7],[127,7]]},"186":{"position":[[499,7]]},"188":{"position":[[722,7]]},"189":{"position":[[1663,7]]},"192":{"position":[[101,7],[143,11]]},"193":{"position":[[101,7],[143,11]]},"198":{"position":[[79,7]]},"203":{"position":[[77,7]]},"208":{"position":[[106,7]]},"211":{"position":[[141,7]]},"212":{"position":[[119,7],[257,7]]},"216":{"position":[[84,7],[133,7],[150,7]]},"220":{"position":[[215,7]]},"221":{"position":[[271,7]]},"225":{"position":[[208,7]]},"229":{"position":[[214,8],[236,7],[767,7]]},"232":{"position":[[1415,8],[1466,7],[1622,10],[1633,11]]},"233":{"position":[[74,7],[172,10],[183,11]]},"236":{"position":[[101,7]]},"240":{"position":[[103,7]]},"242":{"position":[[93,7]]},"244":{"position":[[80,8],[95,7],[183,7],[240,10],[251,11]]},"248":{"position":[[165,7],[296,7]]},"252":{"position":[[175,7],[311,7]]},"256":{"position":[[101,7],[155,7]]},"260":{"position":[[101,7]]},"263":{"position":[[419,7]]},"265":{"position":[[178,7],[282,7]]},"266":{"position":[[107,7],[211,7]]},"270":{"position":[[110,7],[270,7]]},"274":{"position":[[175,7],[363,7]]},"278":{"position":[[97,7],[434,7]]},"282":{"position":[[153,8]]},"287":{"position":[[80,7]]},"291":{"position":[[71,8],[712,7]]},"293":{"position":[[119,7]]},"294":{"position":[[119,7]]},"299":{"position":[[90,7],[314,8]]},"304":{"position":[[65,7]]},"309":{"position":[[94,7]]},"314":{"position":[[318,7]]},"319":{"position":[[67,7]]},"322":{"position":[[1395,8]]},"323":{"position":[[665,9]]},"324":{"position":[[1041,8]]},"328":{"position":[[67,7],[145,7],[562,7],[640,7]]},"333":{"position":[[209,7]]},"337":{"position":[[167,7]]},"342":{"position":[[89,7]]},"343":{"position":[[89,7]]},"347":{"position":[[29,10]]},"348":{"position":[[499,8],[555,8],[593,7]]},"351":{"position":[[25,10]]},"352":{"position":[[475,7],[573,8],[627,8]]},"359":{"position":[[294,8]]},"362":{"position":[[170,7],[505,8],[886,7],[1150,11],[1603,7]]},"363":{"position":[[792,7]]},"364":{"position":[[364,7]]},"365":{"position":[[323,7]]},"367":{"position":[[3,7]]},"398":{"position":[[918,10]]},"399":{"position":[[101,7]]},"415":{"position":[[46,8]]},"433":{"position":[[46,8]]},"466":{"position":[[740,7],[1008,7]]},"472":{"position":[[1135,7]]},"473":{"position":[[48,8],[460,7]]},"474":{"position":[[21,7]]},"476":{"position":[[620,7]]}},"keywords":{}}],["handler(()=>",{"_index":538,"title":{},"content":{"21":{"position":[[1199,19]]},"22":{"position":[[1061,19]]}},"keywords":{}}],["handler((ev",{"_index":623,"title":{},"content":{"28":{"position":[[63,16]]},"34":{"position":[[2291,16]]},"43":{"position":[[2302,16]]},"46":{"position":[[133,16]]},"49":{"position":[[63,16]]},"52":{"position":[[63,16]]},"55":{"position":[[161,16]]},"58":{"position":[[63,16]]},"61":{"position":[[63,16]]},"64":{"position":[[161,16]]},"68":{"position":[[63,16]]},"73":{"position":[[161,16]]},"77":{"position":[[63,16]]},"82":{"position":[[161,16]]},"85":{"position":[[63,16]]},"88":{"position":[[63,16]]},"91":{"position":[[2316,16]]},"94":{"position":[[161,16]]},"97":{"position":[[161,16]]},"100":{"position":[[161,16]]},"107":{"position":[[63,16]]},"110":{"position":[[161,16]]},"113":{"position":[[200,16]]},"116":{"position":[[191,16]]},"119":{"position":[[161,16]]},"122":{"position":[[161,16]]},"125":{"position":[[63,16]]},"128":{"position":[[333,16]]},"131":{"position":[[63,16]]},"134":{"position":[[161,16]]},"139":{"position":[[262,16]]},"142":{"position":[[63,16]]},"146":{"position":[[2303,16]]},"220":{"position":[[490,16]]},"221":{"position":[[573,16]]},"240":{"position":[[150,16]]},"337":{"position":[[249,16]]},"348":{"position":[[210,16],[366,16]]},"352":{"position":[[264,16],[403,16]]},"363":{"position":[[868,16]]},"364":{"position":[[470,16]]},"365":{"position":[[429,16]]}},"keywords":{}}],["handler(async",{"_index":97,"title":{},"content":{"2":{"position":[[1284,14]]},"102":{"position":[[661,14]]},"103":{"position":[[822,14]]},"104":{"position":[[761,14]]}},"keywords":{}}],["handler(ev",{"_index":1494,"title":{},"content":{"212":{"position":[[342,14]]},"248":{"position":[[473,14]]},"252":{"position":[[650,14]]},"260":{"position":[[443,14]]},"266":{"position":[[656,14]]},"270":{"position":[[373,14]]},"274":{"position":[[540,14]]},"299":{"position":[[370,14]]},"347":{"position":[[331,14]]},"351":{"position":[[196,14]]},"362":{"position":[[619,14]]}},"keywords":{}}],["handler(httprouterhandler(rout",{"_index":709,"title":{},"content":{"37":{"position":[[2357,35]]},"348":{"position":[[640,35]]}},"keywords":{}}],["handler(lambdahandl",{"_index":223,"title":{},"content":{"5":{"position":[[2061,23]]}},"keywords":{}}],["handler(wsrouterhandl",{"_index":2023,"title":{},"content":{"352":{"position":[[522,26]]}},"keywords":{}}],["handler(wsrouterhandler(rout",{"_index":641,"title":{},"content":{"31":{"position":[[676,33]]}},"keywords":{}}],["handler.contextschema",{"_index":2062,"title":{},"content":{"359":{"position":[[141,21]]}},"keywords":{}}],["handler.i18nen",{"_index":2066,"title":{},"content":{"359":{"position":[[556,19]]}},"keywords":{}}],["handler.j",{"_index":145,"title":{},"content":{"5":{"position":[[128,10]]}},"keywords":{}}],["handler.requestend(request",{"_index":1027,"title":{},"content":{"161":{"position":[[585,28]]}},"keywords":{}}],["handler.us",{"_index":1457,"title":{},"content":{"198":{"position":[[239,12]]},"203":{"position":[[237,12]]},"208":{"position":[[301,12]]},"278":{"position":[[501,12]]},"287":{"position":[[240,12]]},"293":{"position":[[301,12]]},"294":{"position":[[256,12]]},"299":{"position":[[144,12]]},"304":{"position":[[253,12]]},"309":{"position":[[254,12]]},"319":{"position":[[227,12]]},"343":{"position":[[181,12]]},"362":{"position":[[423,12]]}},"keywords":{}}],["handler.use(cor",{"_index":1605,"title":{},"content":{"233":{"position":[[128,19]]}},"keywords":{}}],["handler.use(donotwaitforemptyeventloop({runonerror",{"_index":1493,"title":{},"content":{"212":{"position":[[173,51]]}},"keywords":{}}],["handler.use(httperrorhandler()).use(cor",{"_index":1599,"title":{},"content":{"232":{"position":[[1554,43]]}},"keywords":{}}],["handler.use(httpeventnorm",{"_index":1610,"title":{},"content":{"236":{"position":[[270,34]]}},"keywords":{}}],["handler.use(httpheadernormalizer()).use(httpjsonbodypars",{"_index":1631,"title":{},"content":{"248":{"position":[[219,61]]}},"keywords":{}}],["handler.use(httpheadernormalizer()).use(httpmultipartbodypars",{"_index":1649,"title":{},"content":{"252":{"position":[[229,66]]}},"keywords":{}}],["handler.use(httpheadernormalizer()).use(httpurlencodebodypars",{"_index":1731,"title":{},"content":{"274":{"position":[[272,66]]}},"keywords":{}}],["handler.use(httpjsonbodyparser()).us",{"_index":2100,"title":{},"content":{"362":{"position":[[1987,38]]}},"keywords":{}}],["handler.use(httppartialrespons",{"_index":1695,"title":{},"content":{"260":{"position":[[334,34]]}},"keywords":{}}],["handler.use(httpurlencodepathpars",{"_index":1724,"title":{},"content":{"270":{"position":[[207,38]]}},"keywords":{}}],["handler.use(inputoutputlogg",{"_index":1754,"title":{},"content":{"278":{"position":[[257,32]]}},"keywords":{}}],["handler.use(middlewar",{"_index":954,"title":{},"content":{"157":{"position":[[866,24]]}},"keywords":{}}],["handler.use(valid",{"_index":2093,"title":{},"content":{"362":{"position":[[1107,23]]}},"keywords":{}}],["handler.use(wsrespons",{"_index":2008,"title":{},"content":{"342":{"position":[[150,25]]}},"keywords":{}}],["handlerhttpeventnorm",{"_index":2034,"title":{},"content":{"354":{"position":[[694,26]]}},"keywords":{}}],["handlerrunonaft",{"_index":1490,"title":{},"content":{"211":{"position":[[281,17]]}},"keywords":{}}],["handlers/*/*.ftl",{"_index":2114,"title":{},"content":{"363":{"position":[[572,17]]}},"keywords":{}}],["handlers/*/schema.*.json",{"_index":2109,"title":{},"content":{"363":{"position":[[422,25]]}},"keywords":{}}],["handlers/connect.j",{"_index":631,"title":{},"content":{"31":{"position":[[243,23]]}},"keywords":{}}],["handlers/default.j",{"_index":635,"title":{},"content":{"31":{"position":[[381,23]]}},"keywords":{}}],["handlers/disconnect.j",{"_index":633,"title":{},"content":{"31":{"position":[[312,26]]}},"keywords":{}}],["handlers/get",{"_index":702,"title":{},"content":{"37":{"position":[[1254,15],[1318,15]]}},"keywords":{}}],["handlerswrap",{"_index":1939,"title":{},"content":{"324":{"position":[[521,12]]}},"keywords":{}}],["handlingerror",{"_index":2174,"title":{},"content":{"397":{"position":[[89,14]]}},"keywords":{}}],["handlingtimeout",{"_index":2173,"title":{},"content":{"397":{"position":[[67,15]]}},"keywords":{}}],["hapi",{"_index":252,"title":{},"content":{"6":{"position":[[566,5]]}},"keywords":{}}],["happen",{"_index":808,"title":{},"content":{"136":{"position":[[42,7]]},"160":{"position":[[26,7]]},"163":{"position":[[65,7],[213,7]]}},"keywords":{}}],["happen.fallbackmessag",{"_index":1618,"title":{},"content":{"243":{"position":[[163,22]]}},"keywords":{}}],["happens.middi",{"_index":1895,"title":{},"content":{"322":{"position":[[607,13]]}},"keywords":{}}],["happi",{"_index":2316,"title":{},"content":{"478":{"position":[[1006,5]]}},"keywords":{}}],["harder",{"_index":247,"title":{},"content":{"6":{"position":[[477,6]]}},"keywords":{}}],["header",{"_index":655,"title":{"237":{"position":[[5,6]]},"253":{"position":[[14,7]]},"355":{"position":[[0,6],[29,6]]},"377":{"position":[[5,6]]},"382":{"position":[[14,8]]},"410":{"position":[[5,6]]},"416":{"position":[[14,8]]},"449":{"position":[[5,6]]},"455":{"position":[[14,8]]}},"content":{"34":{"position":[[555,6],[944,8]]},"37":{"position":[[606,6],[995,8]]},"43":{"position":[[555,6],[944,8]]},"91":{"position":[[555,6],[944,8]]},"146":{"position":[[567,6],[956,8]]},"192":{"position":[[206,8]]},"198":{"position":[[156,8]]},"203":{"position":[[154,8]]},"228":{"position":[[939,7]]},"229":{"position":[[147,6]]},"232":{"position":[[336,7],[668,6],[904,7],[995,6],[1092,7],[1279,6]]},"238":{"position":[[87,6]]},"239":{"position":[[51,7],[94,7],[189,7],[324,6]]},"240":{"position":[[78,6]]},"248":{"position":[[78,6],[320,8]]},"252":{"position":[[78,6],[335,8]]},"254":{"position":[[96,7]]},"256":{"position":[[86,8]]},"264":{"position":[[54,6],[404,7]]},"265":{"position":[[4,6],[224,6]]},"266":{"position":[[578,8]]},"274":{"position":[[78,6],[410,8]]},"278":{"position":[[174,8]]},"281":{"position":[[153,7],[444,6],[479,6]]},"282":{"position":[[50,6],[123,7],[297,8],[337,7]]},"287":{"position":[[157,8]]},"304":{"position":[[170,8]]},"309":{"position":[[171,8]]},"319":{"position":[[144,8]]},"354":{"position":[[794,6]]},"355":{"position":[[65,6],[218,6],[553,7]]},"374":{"position":[[34,7]]},"410":{"position":[[21,7]]},"416":{"position":[[121,7]]}},"keywords":{}}],["headerhst",{"_index":1664,"title":{},"content":{"255":{"position":[[196,10]]}},"keywords":{}}],["headerxssfilt",{"_index":1673,"title":{},"content":{"255":{"position":[[368,15]]}},"keywords":{}}],["hello",{"_index":1153,"title":{},"content":{"168":{"position":[[535,6]]},"198":{"position":[[201,6]]},"203":{"position":[[199,6]]},"229":{"position":[[441,6]]},"236":{"position":[[216,6]]},"266":{"position":[[161,6]]},"278":{"position":[[219,6]]},"287":{"position":[[202,6]]},"304":{"position":[[215,6]]},"309":{"position":[[216,6]]},"319":{"position":[[189,6]]}},"keywords":{}}],["helmetjs.http",{"_index":1787,"title":{},"content":{"282":{"position":[[385,13]]}},"keywords":{}}],["help",{"_index":591,"title":{},"content":{"21":{"position":[[2411,4]]},"143":{"position":[[69,4]]},"147":{"position":[[61,4]]},"148":{"position":[[70,4]]},"149":{"position":[[77,4]]},"150":{"position":[[73,4]]},"151":{"position":[[94,4]]},"167":{"position":[[64,4]]},"170":{"position":[[86,4]]},"174":{"position":[[1276,4]]},"190":{"position":[[66,4]]},"324":{"position":[[637,4]]},"363":{"position":[[175,4]]}},"keywords":{}}],["helper",{"_index":1884,"title":{},"content":{"322":{"position":[[69,6]]}},"keywords":{}}],["here",{"_index":210,"title":{},"content":{"5":{"position":[[1644,4]]},"398":{"position":[[261,4]]},"474":{"position":[[492,4]]}},"keywords":{}}],["here'",{"_index":1148,"title":{},"content":{"168":{"position":[[103,6]]},"478":{"position":[[16,6]]}},"keywords":{}}],["hide",{"_index":1671,"title":{},"content":{"255":{"position":[[351,4]]}},"keywords":{}}],["high",{"_index":1347,"title":{},"content":{"182":{"position":[[1110,4]]},"323":{"position":[[433,4]]}},"keywords":{}}],["higher",{"_index":1512,"title":{},"content":{"219":{"position":[[331,6]]},"324":{"position":[[481,6]]}},"keywords":{}}],["highest",{"_index":1042,"title":{},"content":{"163":{"position":[[686,7]]}},"keywords":{}}],["highli",{"_index":2059,"title":{},"content":{"356":{"position":[[198,6]]},"359":{"position":[[1219,6]]}},"keywords":{}}],["histori",{"_index":958,"title":{"158":{"position":[[0,7]]},"159":{"position":[[8,7]]}},"content":{},"keywords":{}}],["hit",{"_index":27,"title":{},"content":{"1":{"position":[[84,3]]},"359":{"position":[[1156,3]]}},"keywords":{}}],["honour",{"_index":2149,"title":{},"content":{"375":{"position":[[20,6]]}},"keywords":{}}],["hook",{"_index":596,"title":{"161":{"position":[[0,5]]}},"content":{"21":{"position":[[2523,5]]},"161":{"position":[[0,5],[21,5]]},"473":{"position":[[167,4],[316,4],[843,4]]}},"keywords":{}}],["hope",{"_index":589,"title":{},"content":{"21":{"position":[[2388,4]]}},"keywords":{}}],["host",{"_index":864,"title":{},"content":{"151":{"position":[[768,6]]}},"keywords":{}}],["hostnam",{"_index":760,"title":{},"content":{"103":{"position":[[383,9]]},"287":{"position":[[314,9]]}},"keywords":{}}],["html",{"_index":2210,"title":{},"content":{"416":{"position":[[111,4]]}},"keywords":{}}],["http",{"_index":221,"title":{"32":{"position":[[12,6]]},"217":{"position":[[0,4]]},"226":{"position":[[0,4]]},"230":{"position":[[0,4]]},"234":{"position":[[0,4]]},"237":{"position":[[0,4]]},"241":{"position":[[0,4]]},"245":{"position":[[0,4]]},"249":{"position":[[0,4]]},"253":{"position":[[0,4]]},"257":{"position":[[0,4]]},"261":{"position":[[0,4]]},"267":{"position":[[0,4]]},"271":{"position":[[0,4]]},"345":{"position":[[0,4]]},"355":{"position":[[24,4]]},"373":{"position":[[0,4]]},"374":{"position":[[0,4]]},"375":{"position":[[0,4]]},"376":{"position":[[0,4]]},"377":{"position":[[0,4]]},"378":{"position":[[0,4]]},"379":{"position":[[0,4]]},"380":{"position":[[0,4]]},"381":{"position":[[0,4]]},"382":{"position":[[0,4]]},"383":{"position":[[0,4]]},"384":{"position":[[0,4]]},"405":{"position":[[0,4]]},"406":{"position":[[0,4]]},"407":{"position":[[0,4]]},"408":{"position":[[0,4]]},"409":{"position":[[0,4]]},"410":{"position":[[0,4]]},"411":{"position":[[0,4]]},"412":{"position":[[0,4]]},"413":{"position":[[0,4]]},"414":{"position":[[0,4]]},"415":{"position":[[0,4]]},"416":{"position":[[0,4]]},"417":{"position":[[0,4]]},"418":{"position":[[0,4]]},"444":{"position":[[0,4]]},"445":{"position":[[0,4]]},"446":{"position":[[0,4]]},"447":{"position":[[0,4]]},"448":{"position":[[0,4]]},"449":{"position":[[0,4]]},"450":{"position":[[0,4]]},"451":{"position":[[0,4]]},"452":{"position":[[0,4]]},"453":{"position":[[0,4]]},"454":{"position":[[0,4]]},"455":{"position":[[0,4]]},"456":{"position":[[0,4]]},"457":{"position":[[0,4]]}},"content":{"5":{"position":[[2020,4]]},"15":{"position":[[458,8]]},"24":{"position":[[40,4]]},"33":{"position":[[53,4]]},"90":{"position":[[53,4]]},"170":{"position":[[552,4]]},"228":{"position":[[862,4]]},"243":{"position":[[215,4]]},"255":{"position":[[211,4]]},"281":{"position":[[257,4],[304,4],[474,4],[561,4],[755,4],[893,4],[1018,4]]},"282":{"position":[[0,4],[28,4],[113,4],[179,4],[230,4],[271,4],[511,4]]},"322":{"position":[[1344,4]]},"324":{"position":[[766,4],[862,4]]},"355":{"position":[[60,4],[337,4],[377,4],[548,4]]},"375":{"position":[[158,4]]},"409":{"position":[[75,4]]}},"keywords":{}}],["http(",{"_index":1285,"title":{},"content":{"175":{"position":[[140,7]]},"177":{"position":[[309,7]]},"178":{"position":[[1153,7]]}},"keywords":{}}],["httpcontentencod",{"_index":1519,"title":{},"content":{"220":{"position":[[108,19]]},"221":{"position":[[108,19]]}},"keywords":{}}],["httpcontentencodingmiddlewar",{"_index":648,"title":{},"content":{"34":{"position":[[243,29]]},"37":{"position":[[294,29]]},"43":{"position":[[243,29]]},"91":{"position":[[243,29]]},"146":{"position":[[243,29]]}},"keywords":{}}],["httpcontentnegoti",{"_index":1518,"title":{},"content":{"220":{"position":[[39,22]]},"221":{"position":[[39,22]]},"229":{"position":[[39,22]]}},"keywords":{}}],["httpcontentnegotiationmiddlewar",{"_index":646,"title":{},"content":{"34":{"position":[[164,32],[1557,34]]},"37":{"position":[[215,32],[1682,34]]},"43":{"position":[[164,32],[1557,34]]},"91":{"position":[[164,32],[1582,34]]},"146":{"position":[[164,32],[1569,34]]}},"keywords":{}}],["httpcontentnegotiationmiddlewarebefor",{"_index":552,"title":{},"content":{"21":{"position":[[1564,38]]}},"keywords":{}}],["httpcorsmiddlewar",{"_index":649,"title":{},"content":{"34":{"position":[[316,18]]},"37":{"position":[[367,18]]},"43":{"position":[[316,18]]},"91":{"position":[[316,18]]},"146":{"position":[[316,18]]}},"keywords":{}}],["httpcorsmiddlewareaft",{"_index":561,"title":{},"content":{"21":{"position":[[1756,23]]}},"keywords":{}}],["httperror.expos",{"_index":2150,"title":{},"content":{"375":{"position":[[27,17]]}},"keywords":{}}],["httperrorhandl",{"_index":156,"title":{},"content":{"5":{"position":[[356,16]]},"229":{"position":[[173,16]]},"232":{"position":[[1374,16]]},"244":{"position":[[39,16]]}},"keywords":{}}],["httperrorhandlermiddlewar",{"_index":651,"title":{},"content":{"34":{"position":[[366,26]]},"37":{"position":[[417,26]]},"43":{"position":[[366,26]]},"91":{"position":[[366,26]]},"146":{"position":[[366,26]]}},"keywords":{}}],["httpeventnorm",{"_index":1606,"title":{},"content":{"236":{"position":[[39,19]]}},"keywords":{}}],["httpeventnormalizermiddlewar",{"_index":652,"title":{},"content":{"34":{"position":[[433,29]]},"37":{"position":[[484,29]]},"43":{"position":[[433,29]]},"91":{"position":[[433,29]]},"146":{"position":[[433,29]]}},"keywords":{}}],["httpeventnormalizermiddlewarebefor",{"_index":542,"title":{},"content":{"21":{"position":[[1316,35]]}},"keywords":{}}],["httpheadernorm",{"_index":1562,"title":{},"content":{"229":{"position":[[108,20]]},"240":{"position":[[39,20]]},"248":{"position":[[39,20]]},"252":{"position":[[39,20]]},"274":{"position":[[39,20]]},"355":{"position":[[17,20]]}},"keywords":{}}],["httpheadernormalizermiddlewar",{"_index":654,"title":{},"content":{"34":{"position":[[506,30]]},"37":{"position":[[557,30]]},"43":{"position":[[506,30]]},"91":{"position":[[506,30]]},"146":{"position":[[518,30]]}},"keywords":{}}],["httpheadernormalizermiddlewarebefor",{"_index":544,"title":{},"content":{"21":{"position":[[1364,36]]}},"keywords":{}}],["httpjsonbodypars",{"_index":1630,"title":{},"content":{"248":{"position":[[104,18]]},"362":{"position":[[1440,18]]}},"keywords":{}}],["httpjsonbodyparsermiddlewar",{"_index":656,"title":{},"content":{"34":{"position":[[581,28]]},"37":{"position":[[632,28]]},"43":{"position":[[581,28]]},"91":{"position":[[581,28]]},"146":{"position":[[593,28]]}},"keywords":{}}],["httpjsonbodyparsermiddlewarebefor",{"_index":550,"title":{},"content":{"21":{"position":[[1517,34]]}},"keywords":{}}],["httpmultipartbodypars",{"_index":1648,"title":{},"content":{"252":{"position":[[104,23]]}},"keywords":{}}],["httpmultipartbodyparsermiddlewar",{"_index":657,"title":{},"content":{"34":{"position":[[653,33]]},"37":{"position":[[704,33]]},"43":{"position":[[653,33]]},"91":{"position":[[653,33]]},"146":{"position":[[665,33]]}},"keywords":{}}],["httppartialrespons",{"_index":1680,"title":{},"content":{"260":{"position":[[39,19]]}},"keywords":{}}],["httppartialresponsemiddlewar",{"_index":659,"title":{},"content":{"34":{"position":[[735,29]]},"37":{"position":[[786,29]]},"43":{"position":[[735,29]]},"91":{"position":[[735,29]]},"146":{"position":[[747,29]]}},"keywords":{}}],["httpresponseseri",{"_index":1714,"title":{},"content":{"266":{"position":[[39,22]]}},"keywords":{}}],["httpresponseserializermiddlewar",{"_index":661,"title":{},"content":{"34":{"position":[[808,32],[1989,34]]},"37":{"position":[[859,32],[2114,34]]},"43":{"position":[[808,32],[1989,34]]},"91":{"position":[[808,32],[2014,34]]},"146":{"position":[[820,32],[2001,34]]}},"keywords":{}}],["httprouterhandl",{"_index":700,"title":{},"content":{"37":{"position":[[39,17]]},"348":{"position":[[39,17]]}},"keywords":{}}],["https://ajv.js.org/json",{"_index":2098,"title":{},"content":{"362":{"position":[[1878,23]]}},"keywords":{}}],["https://aws.amazon.com/about",{"_index":2218,"title":{},"content":{"426":{"position":[[38,28]]}},"keywords":{}}],["https://docs.aws.amazon.com/amazonrds/latest/userguide/usingwithrds.ssl.html",{"_index":858,"title":{},"content":{"151":{"position":[[561,76]]}},"keywords":{}}],["https://github.com/evanw/esbuild/pull/2067",{"_index":389,"title":{},"content":{"12":{"position":[[41,42]]}},"keywords":{}}],["https://github.com/middyjs/middy/issues/945",{"_index":2238,"title":{},"content":{"450":{"position":[[208,43]]}},"keywords":{}}],["httpscaptur",{"_index":800,"title":{},"content":{"128":{"position":[[275,13]]}},"keywords":{}}],["httpsecurityhead",{"_index":1676,"title":{},"content":{"256":{"position":[[39,19]]}},"keywords":{}}],["httpsecurityheadersmiddlewar",{"_index":662,"title":{},"content":{"34":{"position":[[887,29]]},"37":{"position":[[938,29]]},"43":{"position":[[887,29]]},"91":{"position":[[887,29]]},"146":{"position":[[899,29]]}},"keywords":{}}],["httpsecurityheadersmiddlewareaft",{"_index":559,"title":{},"content":{"21":{"position":[[1710,34]]}},"keywords":{}}],["httpurlencodebodypars",{"_index":1730,"title":{},"content":{"274":{"position":[[104,23]]}},"keywords":{}}],["httpurlencodebodyparsermiddlewar",{"_index":663,"title":{},"content":{"34":{"position":[[960,33]]},"37":{"position":[[1011,33]]},"43":{"position":[[960,33]]},"91":{"position":[[960,33]]},"146":{"position":[[972,33]]}},"keywords":{}}],["httpurlencodebodyparsermiddlewarebefor",{"_index":548,"title":{},"content":{"21":{"position":[[1465,39]]}},"keywords":{}}],["httpurlencodepathparametersparsermiddlewar",{"_index":665,"title":{},"content":{"34":{"position":[[1042,43]]},"37":{"position":[[1093,43]]},"43":{"position":[[1042,43]]},"91":{"position":[[1042,43]]},"146":{"position":[[1054,43]]}},"keywords":{}}],["httpurlencodepathpars",{"_index":1723,"title":{},"content":{"270":{"position":[[39,23]]}},"keywords":{}}],["httpurlencodepathparsermiddlewarebefor",{"_index":546,"title":{},"content":{"21":{"position":[[1413,39]]}},"keywords":{}}],["hydrat",{"_index":1760,"title":{},"content":{"280":{"position":[[20,8]]}},"keywords":{}}],["i.",{"_index":1434,"title":{},"content":{"197":{"position":[[80,5]]},"202":{"position":[[78,5]]},"239":{"position":[[225,4]]},"286":{"position":[[62,5]]},"291":{"position":[[171,5]]},"298":{"position":[[90,5]]},"303":{"position":[[66,5]]},"308":{"position":[[94,5]]},"318":{"position":[[68,5]]},"327":{"position":[[68,5]]},"340":{"position":[[102,5]]}},"keywords":{}}],["i18n",{"_index":2067,"title":{},"content":{"359":{"position":[[620,4]]},"360":{"position":[[70,5]]},"365":{"position":[[227,5],[241,5]]},"394":{"position":[[332,4]]},"466":{"position":[[989,5]]}},"keywords":{}}],["i18n/localize/.eslintrc.yml",{"_index":307,"title":{},"content":{"7":{"position":[[567,27]]}},"keywords":{}}],["i18nen",{"_index":2244,"title":{},"content":{"466":{"position":[[214,11]]}},"keywords":{}}],["iam",{"_index":1453,"title":{},"content":{"197":{"position":[[1099,3]]},"202":{"position":[[1094,3]]},"283":{"position":[[150,3],[518,3]]},"286":{"position":[[827,3]]},"291":{"position":[[852,3]]},"298":{"position":[[1574,3]]},"303":{"position":[[1071,3]]},"308":{"position":[[1121,3]]},"318":{"position":[[932,3]]},"327":{"position":[[1104,3]]},"340":{"position":[[728,3]]},"386":{"position":[[65,3]]}},"keywords":{}}],["iam_rol",{"_index":763,"title":{},"content":{"103":{"position":[[429,11]]},"287":{"position":[[359,11]]}},"keywords":{}}],["icon",{"_index":998,"title":{},"content":{"159":{"position":[[569,4]]}},"keywords":{}}],["id",{"_index":501,"title":{},"content":{"21":{"position":[[180,4],[244,4]]},"22":{"position":[[202,4],[266,4]]},"153":{"position":[[686,2]]},"174":{"position":[[1487,2]]},"186":{"position":[[434,3]]},"189":{"position":[[912,2]]},"347":{"position":[[269,7]]}},"keywords":{}}],["idea",{"_index":1055,"title":{},"content":{"164":{"position":[[284,5]]}},"keywords":{}}],["idempot",{"_index":1180,"title":{"183":{"position":[[0,12]]}},"content":{"170":{"position":[[834,10]]},"183":{"position":[[228,11],[454,11],[592,10],[715,10]]},"185":{"position":[[232,11]]},"322":{"position":[[621,11],[633,11]]}},"keywords":{}}],["idempotencyconfig",{"_index":1372,"title":{},"content":{"185":{"position":[[138,19]]}},"keywords":{}}],["idempotencytablenam",{"_index":1380,"title":{},"content":{"186":{"position":[[317,23]]}},"keywords":{}}],["identifi",{"_index":592,"title":{},"content":{"21":{"position":[[2426,8]]},"174":{"position":[[2057,8]]}},"keywords":{}}],["ie",{"_index":65,"title":{},"content":{"2":{"position":[[415,2]]},"351":{"position":[[127,2]]}},"keywords":{}}],["ie8+nosniff",{"_index":1667,"title":{},"content":{"255":{"position":[[278,11]]}},"keywords":{}}],["ignored.middi",{"_index":1890,"title":{},"content":{"322":{"position":[[385,13]]}},"keywords":{}}],["imag",{"_index":1033,"title":{},"content":{"163":{"position":[[374,5]]}},"keywords":{}}],["immedi",{"_index":890,"title":{},"content":{"153":{"position":[[96,12]]},"189":{"position":[[125,12]]}},"keywords":{}}],["impact",{"_index":1316,"title":{},"content":{"179":{"position":[[325,6]]},"182":{"position":[[1046,6]]},"251":{"position":[[834,6]]}},"keywords":{}}],["implement",{"_index":232,"title":{},"content":{"6":{"position":[[130,12]]},"156":{"position":[[149,12]]},"160":{"position":[[178,11]]}},"keywords":{}}],["import",{"_index":48,"title":{"315":{"position":[[0,10]]}},"content":{"2":{"position":[[180,6],[212,6]]},"5":{"position":[[142,6],[154,6],[267,6],[291,6],[349,6],[406,6],[447,6]]},"13":{"position":[[122,6],[180,6]]},"15":{"position":[[76,6],[105,6]]},"22":{"position":[[0,6]]},"25":{"position":[[0,6]]},"28":{"position":[[0,6]]},"31":{"position":[[0,6],[32,6],[100,6],[154,6],[201,6],[267,6],[339,6]]},"34":{"position":[[0,6],[32,6],[88,6],[157,6],[236,6],[309,6],[359,6],[426,6],[499,6],[574,6],[646,6],[728,6],[801,6],[880,6],[953,6],[1035,6],[1127,6],[1171,6],[1209,6],[1278,6]]},"37":{"position":[[0,6],[32,6],[83,6],[139,6],[208,6],[287,6],[360,6],[410,6],[477,6],[550,6],[625,6],[697,6],[779,6],[852,6],[931,6],[1004,6],[1086,6],[1178,6],[1216,6],[1279,6]]},"40":{"position":[[0,6]]},"43":{"position":[[0,6],[32,6],[88,6],[157,6],[236,6],[309,6],[359,6],[426,6],[499,6],[574,6],[646,6],[728,6],[801,6],[880,6],[953,6],[1035,6],[1127,6],[1171,6],[1209,6],[1278,6]]},"46":{"position":[[0,6]]},"49":{"position":[[0,6]]},"52":{"position":[[0,6]]},"55":{"position":[[0,6],[32,6]]},"58":{"position":[[0,6]]},"61":{"position":[[0,6]]},"64":{"position":[[0,6],[32,6]]},"68":{"position":[[0,6]]},"70":{"position":[[0,6]]},"73":{"position":[[0,6],[32,6]]},"77":{"position":[[0,6]]},"79":{"position":[[0,6]]},"82":{"position":[[0,6],[32,6]]},"85":{"position":[[0,6]]},"88":{"position":[[0,6]]},"91":{"position":[[0,6],[32,6],[88,6],[157,6],[236,6],[309,6],[359,6],[426,6],[499,6],[574,6],[646,6],[728,6],[801,6],[880,6],[953,6],[1035,6],[1127,6],[1171,6],[1209,6],[1278,6]]},"94":{"position":[[0,6],[32,6]]},"97":{"position":[[0,6],[32,6]]},"100":{"position":[[0,6],[32,6]]},"102":{"position":[[0,6],[32,6],[100,6],[156,6],[225,6],[269,6],[307,6],[376,6]]},"103":{"position":[[0,6],[32,6],[74,6],[126,6],[188,6],[227,6]]},"104":{"position":[[0,6],[32,6],[74,6],[125,6],[162,6],[211,6]]},"107":{"position":[[0,6]]},"110":{"position":[[0,6],[32,6]]},"113":{"position":[[0,6],[32,6]]},"116":{"position":[[0,6],[32,6]]},"119":{"position":[[0,6],[32,6]]},"122":{"position":[[0,6],[32,6]]},"125":{"position":[[0,6]]},"128":{"position":[[0,6],[32,6],[99,6]]},"131":{"position":[[0,6]]},"134":{"position":[[0,6],[32,6]]},"139":{"position":[[0,6],[32,6],[96,6]]},"142":{"position":[[0,6]]},"146":{"position":[[0,6],[32,6],[88,6],[157,6],[236,6],[309,6],[359,6],[426,6],[511,6],[586,6],[658,6],[740,6],[813,6],[892,6],[965,6],[1047,6],[1139,6],[1183,6],[1221,6],[1290,6]]},"148":{"position":[[144,6],[176,6],[233,6],[291,6],[342,6]]},"151":{"position":[[536,6]]},"157":{"position":[[0,6],[32,6],[77,6],[122,6],[473,6],[515,6],[570,6],[625,6]]},"167":{"position":[[852,9]]},"168":{"position":[[217,6],[249,6]]},"174":{"position":[[0,6],[33,6]]},"178":{"position":[[0,6],[33,6],[111,6]]},"182":{"position":[[0,6],[33,6]]},"186":{"position":[[0,6],[33,6],[75,6],[162,6]]},"189":{"position":[[800,6]]},"192":{"position":[[0,6],[32,6]]},"193":{"position":[[0,6],[32,6]]},"194":{"position":[[0,6]]},"198":{"position":[[0,6],[32,6]]},"203":{"position":[[0,6],[32,6]]},"212":{"position":[[0,6],[32,6]]},"216":{"position":[[0,6],[32,6]]},"219":{"position":[[370,9]]},"220":{"position":[[0,6],[32,6],[101,6],[164,6]]},"221":{"position":[[0,6],[32,6],[101,6],[164,6],[202,6]]},"225":{"position":[[0,6],[32,6]]},"229":{"position":[[0,6],[32,6],[101,6],[166,6]]},"232":{"position":[[1335,6],[1367,6],[1424,6]]},"233":{"position":[[0,6],[32,6]]},"236":{"position":[[0,6],[32,6]]},"240":{"position":[[0,6],[32,6]]},"244":{"position":[[0,6],[32,6]]},"248":{"position":[[0,6],[32,6],[97,6],[375,9]]},"252":{"position":[[0,6],[32,6],[97,6]]},"256":{"position":[[0,6],[32,6]]},"260":{"position":[[0,6],[32,6]]},"266":{"position":[[0,6],[32,6]]},"270":{"position":[[0,6],[32,6]]},"274":{"position":[[0,6],[32,6],[97,6]]},"277":{"position":[[275,6]]},"278":{"position":[[0,6],[32,6],[291,6],[323,6],[382,6]]},"287":{"position":[[0,6],[32,6]]},"293":{"position":[[0,6],[24,6],[56,6]]},"294":{"position":[[0,6],[24,6],[56,6]]},"299":{"position":[[0,6],[32,6]]},"304":{"position":[[0,6],[32,6]]},"309":{"position":[[0,6],[32,6]]},"314":{"position":[[0,6],[32,6]]},"319":{"position":[[0,6],[32,6]]},"328":{"position":[[0,6],[32,6],[453,6],[485,6],[527,6]]},"337":{"position":[[0,6],[32,6],[100,6]]},"342":{"position":[[0,6],[32,6]]},"343":{"position":[[0,6],[32,6]]},"348":{"position":[[0,6],[32,6],[83,6]]},"352":{"position":[[0,6],[32,6],[79,6],[133,6]]},"362":{"position":[[30,6],[62,6],[103,6],[746,6],[778,6],[819,6],[1401,6],[1433,6],[1495,6],[1536,6]]},"363":{"position":[[612,6],[644,6],[685,6],[729,6],[754,6]]},"364":{"position":[[0,6],[44,6],[76,6],[117,6],[195,6]]},"365":{"position":[[0,6],[44,6],[76,6],[117,6],[195,6],[264,6]]},"466":{"position":[[586,6],[643,6],[666,6],[879,6],[936,6],[957,6]]},"472":{"position":[[962,6],[994,6]]},"473":{"position":[[415,6]]},"474":{"position":[[545,6]]},"476":{"position":[[462,6]]},"478":{"position":[[123,6],[155,6]]}},"keywords":{}}],["improp",{"_index":1140,"title":{},"content":{"167":{"position":[[1397,8]]}},"keywords":{}}],["improv",{"_index":594,"title":{},"content":{"21":{"position":[[2456,7]]},"404":{"position":[[65,12]]},"407":{"position":[[93,12]]},"414":{"position":[[48,7]]},"478":{"position":[[968,12]]}},"keywords":{}}],["in.disableprefetch",{"_index":1820,"title":{},"content":{"291":{"position":[[535,18]]},"340":{"position":[[546,18]]}},"keywords":{}}],["in.fetchdata",{"_index":1440,"title":{},"content":{"197":{"position":[[496,12]]},"202":{"position":[[492,12]]},"298":{"position":[[490,12]]},"303":{"position":[[475,12]]},"308":{"position":[[524,12]]},"318":{"position":[[335,12]]},"327":{"position":[[455,12]]}},"keywords":{}}],["in.httpscaptur",{"_index":1819,"title":{},"content":{"291":{"position":[[436,15]]}},"keywords":{}}],["incas",{"_index":72,"title":{},"content":{"2":{"position":[[526,6]]}},"keywords":{}}],["includ",{"_index":576,"title":{},"content":{"21":{"position":[[2000,8]]},"161":{"position":[[663,9]]},"174":{"position":[[1184,8],[1829,7],[1977,7]]},"277":{"position":[[114,7]]},"318":{"position":[[982,8]]},"394":{"position":[[159,8],[282,8]]},"399":{"position":[[22,8]]},"466":{"position":[[531,9]]}},"keywords":{}}],["inclus",{"_index":2209,"title":{},"content":{"416":{"position":[[94,9]]}},"keywords":{}}],["incom",{"_index":1588,"title":{},"content":{"232":{"position":[[760,8]]},"281":{"position":[[1089,8]]}},"keywords":{}}],["incomplet",{"_index":441,"title":{},"content":{"14":{"position":[[61,10]]}},"keywords":{}}],["increas",{"_index":1976,"title":{},"content":{"327":{"position":[[1304,10]]}},"keywords":{}}],["independ",{"_index":259,"title":{"354":{"position":[[0,11]]}},"content":{"6":{"position":[[833,11]]},"164":{"position":[[247,11]]},"170":{"position":[[57,13]]},"354":{"position":[[40,11]]}},"keywords":{}}],["index",{"_index":1863,"title":{},"content":{"314":{"position":[[191,6]]}},"keywords":{}}],["index.bundle.rollup.mj",{"_index":413,"title":{},"content":{"13":{"position":[[362,26]]}},"keywords":{}}],["index.bundle.webpack.mj",{"_index":457,"title":{},"content":{"15":{"position":[[318,27]]}},"keywords":{}}],["index.handl",{"_index":1303,"title":{},"content":{"178":{"position":[[590,13]]}},"keywords":{}}],["index.j",{"_index":391,"title":{},"content":{"12":{"position":[[110,8]]},"13":{"position":[[334,11]]},"15":{"position":[[284,13]]},"17":{"position":[[74,8]]},"18":{"position":[[88,8]]},"19":{"position":[[50,8]]}},"keywords":{}}],["index.transpile.babel.cj",{"_index":472,"title":{},"content":{"17":{"position":[[94,25]]}},"keywords":{}}],["index.transpile.swc.cj",{"_index":484,"title":{},"content":{"19":{"position":[[70,23]]}},"keywords":{}}],["indic",{"_index":1266,"title":{},"content":{"174":{"position":[[1367,9]]},"178":{"position":[[786,8]]},"298":{"position":[[712,9]]}},"keywords":{}}],["inevit",{"_index":1644,"title":{},"content":{"251":{"position":[[690,10]]}},"keywords":{}}],["infinit",{"_index":1871,"title":{},"content":{"315":{"position":[[272,8]]}},"keywords":{}}],["influenc",{"_index":1047,"title":{"164":{"position":[[0,9]]}},"content":{"164":{"position":[[0,9]]}},"keywords":{}}],["info",{"_index":1200,"title":{},"content":{"173":{"position":[[131,5],[197,5]]},"174":{"position":[[254,4],[873,4]]}},"keywords":{}}],["inform",{"_index":1635,"title":{},"content":{"251":{"position":[[181,11]]}},"keywords":{}}],["inherits/inherits_browser.j",{"_index":325,"title":{},"content":{"7":{"position":[[880,31]]}},"keywords":{}}],["initi",{"_index":577,"title":{},"content":{"21":{"position":[[2013,7]]},"159":{"position":[[69,9]]},"160":{"position":[[769,10]]}},"keywords":{}}],["injectlambdacontext",{"_index":1219,"title":{},"content":{"174":{"position":[[50,19]]}},"keywords":{}}],["inlin",{"_index":955,"title":{"473":{"position":[[0,6]]}},"content":{"157":{"position":[[912,6]]},"450":{"position":[[58,6]]},"473":{"position":[[0,6],[265,6],[368,6],[858,6]]}},"keywords":{}}],["inpath",{"_index":2013,"title":{},"content":{"347":{"position":[[195,6]]}},"keywords":{}}],["input",{"_index":218,"title":{"275":{"position":[[0,5]]},"385":{"position":[[0,5]]},"419":{"position":[[0,5]]},"458":{"position":[[0,5]]}},"content":{"5":{"position":[[1971,5]]},"6":{"position":[[287,5]]},"13":{"position":[[310,7],[327,6]]},"183":{"position":[[574,5]]},"265":{"position":[[553,6]]},"303":{"position":[[1217,5]]},"359":{"position":[[105,5],[256,5]]}},"keywords":{}}],["inputoutputlogg",{"_index":1753,"title":{},"content":{"278":{"position":[[39,17],[330,17],[514,19]]}},"keywords":{}}],["inputoutputloggermiddlewar",{"_index":644,"title":{},"content":{"34":{"position":[[95,27]]},"37":{"position":[[146,27]]},"43":{"position":[[95,27]]},"91":{"position":[[95,27]]},"102":{"position":[[163,27]]},"146":{"position":[[95,27]]}},"keywords":{}}],["inputoutputloggermiddlewareaft",{"_index":563,"title":{},"content":{"21":{"position":[[1792,32]]}},"keywords":{}}],["inputoutputloggermiddlewarebefor",{"_index":540,"title":{},"content":{"21":{"position":[[1270,33]]}},"keywords":{}}],["inputschema",{"_index":2224,"title":{},"content":{"429":{"position":[[159,11]]},"466":{"position":[[151,11]]}},"keywords":{}}],["insert",{"_index":209,"title":{},"content":{"5":{"position":[[1637,6]]}},"keywords":{}}],["instal",{"_index":918,"title":{"155":{"position":[[0,8]]},"172":{"position":[[0,8]]},"176":{"position":[[0,8]]},"180":{"position":[[0,8]]},"184":{"position":[[0,8]]},"196":{"position":[[0,8]]},"201":{"position":[[0,8]]},"206":{"position":[[0,8]]},"210":{"position":[[0,8]]},"214":{"position":[[0,8]]},"218":{"position":[[0,8]]},"223":{"position":[[0,8]]},"227":{"position":[[0,8]]},"231":{"position":[[0,8]]},"235":{"position":[[0,8]]},"238":{"position":[[0,8]]},"242":{"position":[[0,8]]},"246":{"position":[[0,8]]},"250":{"position":[[0,8]]},"254":{"position":[[0,8]]},"258":{"position":[[0,8]]},"262":{"position":[[0,8]]},"268":{"position":[[0,8]]},"272":{"position":[[0,8]]},"276":{"position":[[0,8]]},"285":{"position":[[0,8]]},"290":{"position":[[0,8]]},"297":{"position":[[0,8]]},"302":{"position":[[0,8]]},"307":{"position":[[0,8]]},"312":{"position":[[0,8]]},"317":{"position":[[0,8]]},"326":{"position":[[0,8]]},"331":{"position":[[0,8]]},"335":{"position":[[0,8]]},"339":{"position":[[0,8]]},"346":{"position":[[0,8]]},"350":{"position":[[0,8]]},"358":{"position":[[0,8]]}},"content":{"155":{"position":[[3,7],[51,7],[154,9],[219,7]]},"172":{"position":[[16,7]]},"176":{"position":[[16,7]]},"180":{"position":[[16,7]]},"184":{"position":[[16,7]]},"196":{"position":[[3,7],[60,7],[96,7]]},"201":{"position":[[3,7],[60,7],[95,7]]},"206":{"position":[[3,7],[60,7]]},"210":{"position":[[3,7],[60,7]]},"214":{"position":[[3,7],[60,7]]},"218":{"position":[[3,7],[60,7]]},"223":{"position":[[3,7],[60,7]]},"227":{"position":[[3,7],[60,7]]},"231":{"position":[[3,7],[60,7]]},"235":{"position":[[3,7],[60,7]]},"238":{"position":[[3,7],[60,7]]},"242":{"position":[[3,7],[60,7]]},"246":{"position":[[3,7],[60,7]]},"250":{"position":[[3,7],[60,7]]},"254":{"position":[[3,7],[60,7]]},"258":{"position":[[3,7],[60,7]]},"262":{"position":[[3,7],[60,7]]},"268":{"position":[[3,7],[60,7]]},"272":{"position":[[3,7],[60,7]]},"276":{"position":[[3,7],[60,7]]},"285":{"position":[[3,7],[60,7],[97,7]]},"290":{"position":[[3,7],[60,7],[105,7]]},"297":{"position":[[3,7],[60,7],[102,7]]},"302":{"position":[[3,7],[60,7],[89,7]]},"307":{"position":[[3,7],[60,7],[104,7]]},"312":{"position":[[3,7],[60,7],[138,7]]},"317":{"position":[[3,7],[60,7],[90,7]]},"326":{"position":[[3,7],[60,7],[90,7]]},"331":{"position":[[3,7],[60,7]]},"335":{"position":[[3,7],[48,7]]},"339":{"position":[[3,7],[60,7],[98,7]]},"346":{"position":[[3,7],[60,7]]},"350":{"position":[[3,7],[48,7]]},"354":{"position":[[256,7]]},"358":{"position":[[3,7],[60,7],[96,7]]}},"keywords":{}}],["instanc",{"_index":933,"title":{},"content":{"156":{"position":[[331,8]]},"173":{"position":[[544,8]]},"177":{"position":[[438,8]]},"181":{"position":[[360,8]]},"251":{"position":[[109,8]]},"280":{"position":[[71,8]]},"283":{"position":[[358,9]]},"298":{"position":[[1029,9]]},"309":{"position":[[299,10]]},"355":{"position":[[115,8]]},"473":{"position":[[760,8]]}},"keywords":{}}],["instead",{"_index":1535,"title":{},"content":{"224":{"position":[[81,7]]},"399":{"position":[[227,7]]},"419":{"position":[[26,7]]}},"keywords":{}}],["instruct",{"_index":1184,"title":{},"content":{"171":{"position":[[148,10]]},"178":{"position":[[525,9]]}},"keywords":{}}],["instrument",{"_index":1435,"title":{},"content":{"197":{"position":[[100,12]]},"202":{"position":[[98,12]]},"286":{"position":[[82,12]]},"291":{"position":[[191,12]]},"298":{"position":[[110,12]]},"303":{"position":[[86,12]]},"308":{"position":[[114,12]]},"318":{"position":[[88,12]]},"327":{"position":[[88,12]]},"340":{"position":[[122,12]]}},"keywords":{}}],["instrumentation.support",{"_index":1290,"title":{},"content":{"175":{"position":[[265,26]]}},"keywords":{}}],["integ",{"_index":199,"title":{},"content":{"5":{"position":[[1370,10],[1428,10]]}},"keywords":{}}],["integr",{"_index":817,"title":{"143":{"position":[[0,12]]}},"content":{"143":{"position":[[0,12]]}},"keywords":{}}],["interact",{"_index":1369,"title":{},"content":{"185":{"position":[[97,8]]}},"keywords":{}}],["intern",{"_index":34,"title":{"2":{"position":[[0,8]]},"474":{"position":[[0,8]]}},"content":{"2":{"position":[[0,8],[95,9],[269,9],[562,8],[778,8]]},"197":{"position":[[318,8],[541,8]]},"202":{"position":[[314,8],[537,8]]},"251":{"position":[[93,8],[512,10]]},"286":{"position":[[268,8]]},"298":{"position":[[321,8],[535,8],[677,8]]},"303":{"position":[[297,8],[520,8]]},"308":{"position":[[346,8],[569,8]]},"318":{"position":[[380,8]]},"327":{"position":[[277,8],[500,8]]},"340":{"position":[[368,8]]},"398":{"position":[[617,9]]},"474":{"position":[[0,8],[46,8],[292,8]]}},"keywords":{}}],["internalkey",{"_index":2282,"title":{},"content":{"474":{"position":[[653,12],[925,11]]}},"keywords":{}}],["internation",{"_index":2251,"title":{},"content":{"466":{"position":[[492,20]]}},"keywords":{}}],["internet",{"_index":731,"title":{"83":{"position":[[0,8]]}},"content":{},"keywords":{}}],["into"steps"",{"_index":256,"title":{},"content":{"6":{"position":[[721,21]]}},"keywords":{}}],["intro",{"_index":19,"title":{"1":{"position":[[0,5]]},"170":{"position":[[0,6]]}},"content":{"1":{"position":[[0,5]]}},"keywords":{}}],["introduct",{"_index":100,"title":{"3":{"position":[[0,12]]}},"content":{},"keywords":{}}],["intuit",{"_index":2048,"title":{},"content":{"355":{"position":[[450,9]]}},"keywords":{}}],["invalid",{"_index":1629,"title":{},"content":{"247":{"position":[[192,8]]},"251":{"position":[[377,8]]},"273":{"position":[[85,8]]}},"keywords":{}}],["invert",{"_index":1041,"title":{},"content":{"163":{"position":[[614,8]]}},"keywords":{}}],["invoc",{"_index":14,"title":{},"content":{"0":{"position":[[210,12]]},"170":{"position":[[539,12]]},"171":{"position":[[125,10],[228,11]]},"173":{"position":[[693,10],[807,11]]},"174":{"position":[[1505,11],[1727,10],[2105,11],[2179,10],[2307,11]]},"177":{"position":[[598,10]]},"178":{"position":[[936,10]]},"188":{"position":[[363,11],[444,11],[643,10]]},"322":{"position":[[671,11],[727,10],[1128,10]]},"399":{"position":[[109,10]]}},"keywords":{}}],["invok",{"_index":891,"title":{},"content":{"153":{"position":[[140,6],[487,7]]},"243":{"position":[[64,7]]},"248":{"position":[[284,7]]},"252":{"position":[[299,7]]},"362":{"position":[[493,7]]}},"keywords":{}}],["invokewithresponsestream",{"_index":1418,"title":{"193":{"position":[[7,24]]}},"content":{},"keywords":{}}],["invokewithresponsestreamcommand",{"_index":1420,"title":{},"content":{"194":{"position":[[23,31],[156,33]]}},"keywords":{}}],["iot",{"_index":733,"title":{"83":{"position":[[19,5]]},"86":{"position":[[0,3]]}},"content":{"84":{"position":[[26,3]]},"87":{"position":[[26,3]]}},"keywords":{}}],["isbase64encod",{"_index":1654,"title":{},"content":{"252":{"position":[[626,16]]}},"keywords":{}}],["isol",{"_index":255,"title":{},"content":{"6":{"position":[[681,7]]}},"keywords":{}}],["issu",{"_index":30,"title":{},"content":{"1":{"position":[[116,7]]},"152":{"position":[[130,6]]},"167":{"position":[[1116,6]]}},"keywords":{}}],["iswarmingup",{"_index":1991,"title":{},"content":{"332":{"position":[[0,12]]},"333":{"position":[[83,11],[256,11]]}},"keywords":{}}],["it'",{"_index":40,"title":{},"content":{"2":{"position":[[52,4]]},"5":{"position":[[1855,4]]},"153":{"position":[[1065,4]]},"161":{"position":[[32,4]]},"188":{"position":[[661,4]]},"189":{"position":[[522,4],[1366,4]]},"251":{"position":[[786,4]]},"282":{"position":[[359,4]]},"332":{"position":[[138,4]]},"394":{"position":[[17,4],[187,4]]}},"keywords":{}}],["item",{"_index":1869,"title":{},"content":{"315":{"position":[[134,4]]},"323":{"position":[[255,5]]}},"keywords":{}}],["iter",{"_index":1768,"title":{},"content":{"281":{"position":[[33,9]]}},"keywords":{}}],["itself",{"_index":2056,"title":{},"content":{"356":{"position":[[131,6]]}},"keywords":{}}],["javascript",{"_index":1536,"title":{},"content":{"224":{"position":[[118,10]]},"324":{"position":[[1001,10]]},"360":{"position":[[28,11]]}},"keywords":{}}],["jest",{"_index":1135,"title":{},"content":{"167":{"position":[[1210,4]]}},"keywords":{}}],["jmespath",{"_index":1354,"title":{},"content":{"183":{"position":[[250,8]]}},"keywords":{}}],["john",{"_index":1682,"title":{},"content":{"260":{"position":[[197,7],[527,7]]}},"keywords":{}}],["joi",{"_index":1914,"title":{},"content":{"322":{"position":[[1313,4],[1318,3]]},"324":{"position":[[268,3]]}},"keywords":{}}],["js.map",{"_index":350,"title":{},"content":{"7":{"position":[[1370,8]]}},"keywords":{}}],["js/dist/esnext",{"_index":344,"title":{},"content":{"7":{"position":[[1283,14]]}},"keywords":{}}],["json",{"_index":141,"title":{"245":{"position":[[5,4]]},"334":{"position":[[3,4]]},"378":{"position":[[5,4]]},"390":{"position":[[4,4]]},"411":{"position":[[5,4]]},"425":{"position":[[4,4]]},"431":{"position":[[3,4]]},"450":{"position":[[5,4]]},"468":{"position":[[3,4]]}},"content":{"5":{"position":[[97,4],[331,4],[1862,4]]},"7":{"position":[[595,7],[612,7],[912,7],[944,7]]},"31":{"position":[[82,4]]},"34":{"position":[[628,4],[1269,6],[1344,6]]},"37":{"position":[[679,4]]},"43":{"position":[[628,4],[1269,6],[1344,6]]},"91":{"position":[[628,4],[1269,6],[1344,6]]},"102":{"position":[[367,6],[442,6]]},"146":{"position":[[640,4],[1281,6],[1356,6]]},"148":{"position":[[540,4]]},"174":{"position":[[2409,4]]},"246":{"position":[[87,4]]},"248":{"position":[[141,4]]},"251":{"position":[[755,4]]},"281":{"position":[[522,4],[580,4],[659,4],[1154,4],[1217,4]]},"283":{"position":[[17,4],[170,4]]},"324":{"position":[[835,4],[1105,4],[1541,4]]},"335":{"position":[[73,4]]},"337":{"position":[[82,4]]},"354":{"position":[[853,4],[956,4]]},"359":{"position":[[1189,4]]},"360":{"position":[[10,4],[166,4]]},"362":{"position":[[1477,4]]},"394":{"position":[[41,4]]},"456":{"position":[[36,4]]}},"keywords":{}}],["json.log",{"_index":1183,"title":{},"content":{"171":{"position":[[105,12]]}},"keywords":{}}],["json.pars",{"_index":1625,"title":{},"content":{"247":{"position":[[84,13]]},"336":{"position":[[93,13]]}},"keywords":{}}],["json.stringifi",{"_index":1424,"title":{},"content":{"194":{"position":[[230,21]]},"198":{"position":[[175,16]]},"203":{"position":[[173,16]]},"229":{"position":[[671,16]]},"248":{"position":[[440,16]]},"278":{"position":[[193,16]]},"287":{"position":[[176,16]]},"304":{"position":[[189,16]]},"309":{"position":[[190,16]]},"319":{"position":[[163,16]]},"362":{"position":[[570,16]]},"385":{"position":[[150,16]]}},"keywords":{}}],["json.stringify(bodi",{"_index":694,"title":{},"content":{"34":{"position":[[2100,20]]},"37":{"position":[[2225,20]]},"43":{"position":[[2100,20]]},"91":{"position":[[2125,20]]},"146":{"position":[[2112,20]]},"263":{"position":[[242,20]]},"266":{"position":[[430,20]]},"294":{"position":[[230,20]]}},"keywords":{}}],["json.stringify(respons",{"_index":183,"title":{},"content":{"5":{"position":[[993,24]]}},"keywords":{}}],["jsonapi",{"_index":1903,"title":{},"content":{"322":{"position":[[938,8],[947,7]]}},"keywords":{}}],["jsonbodypars",{"_index":152,"title":{},"content":{"5":{"position":[[298,14]]}},"keywords":{}}],["jsonmiddi",{"_index":1962,"title":{},"content":{"324":{"position":[[1581,9]]}},"keywords":{}}],["jump",{"_index":138,"title":{},"content":{"5":{"position":[[43,4]]}},"keywords":{}}],["jwtmiddi",{"_index":1951,"title":{},"content":{"324":{"position":[[1162,8]]}},"keywords":{}}],["kafka",{"_index":736,"title":{"92":{"position":[[0,6]]},"95":{"position":[[0,6]]}},"content":{"96":{"position":[[38,5]]}},"keywords":{}}],["keep",{"_index":16,"title":{"136":{"position":[[10,4]]}},"content":{"0":{"position":[[252,4]]},"251":{"position":[[613,4],[799,4]]},"255":{"position":[[293,4]]},"324":{"position":[[642,4]]},"354":{"position":[[300,4]]}},"keywords":{}}],["key",{"_index":86,"title":{"387":{"position":[[3,3]]},"421":{"position":[[3,3]]}},"content":{"2":{"position":[[792,4],[919,4],[1267,4]]},"104":{"position":[[477,4],[567,4]]},"170":{"position":[[299,3]]},"171":{"position":[[0,3],[24,3],[300,4]]},"173":{"position":[[630,5]]},"174":{"position":[[1672,4],[1807,4],[1881,3],[1990,4],[2050,3]]},"175":{"position":[[0,3]]},"177":{"position":[[524,5]]},"178":{"position":[[644,3]]},"179":{"position":[[0,3]]},"181":{"position":[[447,5]]},"183":{"position":[[0,3],[240,3]]},"197":{"position":[[327,3],[550,3],[774,3]]},"202":{"position":[[323,3],[546,3],[769,3]]},"203":{"position":[[301,4]]},"259":{"position":[[73,3]]},"286":{"position":[[277,3],[502,3]]},"298":{"position":[[330,3],[544,3],[686,3],[1253,3]]},"299":{"position":[[454,5]]},"303":{"position":[[306,3],[529,3],[746,3]]},"304":{"position":[[309,4]]},"308":{"position":[[355,3],[578,3],[796,3]]},"318":{"position":[[389,3],[607,3]]},"323":{"position":[[266,3]]},"327":{"position":[[286,3],[509,3],[779,3]]},"328":{"position":[[303,3],[881,3]]},"340":{"position":[[377,3]]},"351":{"position":[[122,4]]},"354":{"position":[[1004,3]]},"355":{"position":[[138,3],[271,5]]},"369":{"position":[[317,5],[359,5]]},"472":{"position":[[236,5]]},"475":{"position":[[90,5]]}},"keywords":{}}],["keyword",{"_index":2064,"title":{},"content":{"359":{"position":[[337,7]]},"360":{"position":[[116,9]]},"394":{"position":[[131,8],[235,7]]}},"keywords":{}}],["kinesi",{"_index":740,"title":{"98":{"position":[[0,7]]},"120":{"position":[[0,7]]}},"content":{"99":{"position":[[29,7]]},"121":{"position":[[29,7]]}},"keywords":{}}],["kms:decrypt.ssm",{"_index":1972,"title":{},"content":{"327":{"position":[[1220,15]]}},"keywords":{}}],["knex",{"_index":1909,"title":{},"content":{"322":{"position":[[1242,4]]}},"keywords":{}}],["know",{"_index":33,"title":{},"content":{"1":{"position":[[154,5]]},"46":{"position":[[103,4]]},"164":{"position":[[401,5]]}},"keywords":{}}],["lambda",{"_index":13,"title":{"8":{"position":[[9,6]]},"102":{"position":[[33,7]]},"136":{"position":[[3,6]]},"169":{"position":[[19,6]]},"192":{"position":[[0,6]]},"193":{"position":[[0,6]]},"194":{"position":[[11,7]]}},"content":{"0":{"position":[[203,6]]},"4":{"position":[[78,6],[344,6]]},"5":{"position":[[609,6]]},"6":{"position":[[48,6],[1066,6]]},"21":{"position":[[1837,6]]},"24":{"position":[[17,6],[80,6]]},"27":{"position":[[10,6]]},"30":{"position":[[10,6]]},"33":{"position":[[10,6]]},"36":{"position":[[10,6]]},"39":{"position":[[10,6]]},"42":{"position":[[10,6]]},"45":{"position":[[10,6]]},"48":{"position":[[10,6]]},"51":{"position":[[10,6]]},"54":{"position":[[10,6]]},"57":{"position":[[10,6]]},"60":{"position":[[10,6]]},"63":{"position":[[6,6]]},"67":{"position":[[6,6]]},"69":{"position":[[10,6]]},"72":{"position":[[10,6]]},"76":{"position":[[10,6]]},"78":{"position":[[10,6]]},"81":{"position":[[10,6]]},"84":{"position":[[10,6]]},"87":{"position":[[10,6]]},"90":{"position":[[10,6]]},"93":{"position":[[6,6]]},"96":{"position":[[6,6]]},"99":{"position":[[10,6]]},"106":{"position":[[10,6],[45,6]]},"109":{"position":[[6,6]]},"112":{"position":[[10,6]]},"113":{"position":[[193,6]]},"115":{"position":[[10,6]]},"116":{"position":[[184,6]]},"118":{"position":[[10,6]]},"121":{"position":[[10,6]]},"124":{"position":[[10,6]]},"127":{"position":[[81,6]]},"130":{"position":[[10,6]]},"133":{"position":[[10,6]]},"138":{"position":[[10,6]]},"141":{"position":[[16,6]]},"145":{"position":[[10,6]]},"148":{"position":[[225,7]]},"153":{"position":[[350,6]]},"155":{"position":[[179,6],[249,6]]},"156":{"position":[[104,6]]},"159":{"position":[[43,6],[152,8]]},"160":{"position":[[712,6]]},"164":{"position":[[156,7]]},"166":{"position":[[271,6],[362,6]]},"167":{"position":[[214,6],[306,6],[348,6]]},"168":{"position":[[175,6],[314,7]]},"170":{"position":[[319,6],[817,6]]},"171":{"position":[[44,6],[118,6]]},"172":{"position":[[36,6]]},"173":{"position":[[686,6]]},"174":{"position":[[83,6],[567,6],[769,6],[1389,6],[1498,6],[2098,6],[2172,6],[2300,6]]},"175":{"position":[[393,6]]},"176":{"position":[[36,6]]},"177":{"position":[[591,6]]},"178":{"position":[[84,6],[929,6],[1053,6],[1182,6]]},"179":{"position":[[335,6]]},"180":{"position":[[36,6]]},"182":{"position":[[88,6],[1056,6]]},"183":{"position":[[22,6],[120,6],[396,6]]},"184":{"position":[[36,6]]},"186":{"position":[[119,6],[209,6]]},"188":{"position":[[50,6],[356,6],[437,6],[560,6]]},"189":{"position":[[841,6]]},"194":{"position":[[79,7],[93,6]]},"197":{"position":[[1072,6]]},"202":{"position":[[1067,6]]},"212":{"position":[[241,6]]},"228":{"position":[[179,6],[377,6],[575,6],[779,6]]},"232":{"position":[[1606,6]]},"233":{"position":[[156,6]]},"244":{"position":[[224,6]]},"251":{"position":[[706,7]]},"264":{"position":[[448,6]]},"270":{"position":[[254,6]]},"274":{"position":[[347,6]]},"277":{"position":[[126,6]]},"280":{"position":[[284,6]]},"286":{"position":[[800,6]]},"298":{"position":[[1547,6]]},"303":{"position":[[1044,6]]},"308":{"position":[[1094,6]]},"315":{"position":[[152,6]]},"318":{"position":[[905,6]]},"322":{"position":[[5,6],[109,6],[512,6],[720,6],[1114,6]]},"323":{"position":[[4,6],[63,6],[285,6],[649,6]]},"324":{"position":[[514,6],[652,7],[1025,6]]},"327":{"position":[[1077,6]]},"340":{"position":[[701,6]]},"354":{"position":[[310,6]]},"356":{"position":[[116,6]]},"359":{"position":[[134,6],[287,6],[549,6]]},"395":{"position":[[63,7]]},"398":{"position":[[550,6],[735,6]]},"426":{"position":[[93,6]]},"476":{"position":[[23,6],[346,6]]},"478":{"position":[[81,6],[220,7]]}},"keywords":{}}],["lambda'",{"_index":1761,"title":{},"content":{"280":{"position":[[29,8]]},"315":{"position":[[56,8]]}},"keywords":{}}],["lambda.send",{"_index":1422,"title":{},"content":{"194":{"position":[[139,12]]}},"keywords":{}}],["lambda:writegetobjectrespons",{"_index":1824,"title":{},"content":{"291":{"position":[[881,29]]}},"keywords":{}}],["lambda@edg",{"_index":713,"title":{"44":{"position":[[11,11]]}},"content":{"45":{"position":[[33,11]]}},"keywords":{}}],["lambda_proxi",{"_index":1948,"title":{},"content":{"324":{"position":[[1073,12]]}},"keywords":{}}],["lambdacli",{"_index":1419,"title":{},"content":{"194":{"position":[[9,13],[106,14]]}},"keywords":{}}],["lambdahandl",{"_index":164,"title":{},"content":{"5":{"position":[[622,13]]},"157":{"position":[[173,13],[752,13]]},"168":{"position":[[337,13]]},"174":{"position":[[181,13]]},"178":{"position":[[328,13]]},"182":{"position":[[210,13]]},"225":{"position":[[92,13]]},"314":{"position":[[94,13]]},"347":{"position":[[549,13],[752,13]]},"351":{"position":[[317,13],[520,13]]},"398":{"position":[[475,13]]},"472":{"position":[[1051,13]]},"476":{"position":[[500,13]]}},"keywords":{}}],["lambdatransform",{"_index":793,"title":{},"content":{"127":{"position":[[39,18]]}},"keywords":{}}],["land",{"_index":274,"title":{},"content":{"6":{"position":[[1162,5]]}},"keywords":{}}],["langaug",{"_index":2254,"title":{},"content":{"466":{"position":[[1130,10]]}},"keywords":{}}],["languag",{"_index":1551,"title":{},"content":{"228":{"position":[[458,9],[548,9],[965,9]]},"281":{"position":[[228,8]]},"359":{"position":[[685,8],[710,8]]},"361":{"position":[[143,8]]},"363":{"position":[[841,10]]},"364":{"position":[[443,10]]},"365":{"position":[[402,10]]},"394":{"position":[[384,9]]},"406":{"position":[[58,8]]},"466":{"position":[[291,9]]}},"keywords":{}}],["larg",{"_index":2161,"title":{},"content":{"394":{"position":[[200,5]]},"476":{"position":[[427,5]]}},"keywords":{}}],["last",{"_index":1044,"title":{},"content":{"163":{"position":[[758,4]]}},"keywords":{}}],["lastchangedd",{"_index":1837,"title":{},"content":{"298":{"position":[[927,16]]}},"keywords":{}}],["lastnam",{"_index":1683,"title":{},"content":{"260":{"position":[[205,9],[535,9]]}},"keywords":{}}],["lastrotationd",{"_index":1836,"title":{},"content":{"298":{"position":[[907,16]]}},"keywords":{}}],["latenc",{"_index":1346,"title":{},"content":{"182":{"position":[[1072,8]]}},"keywords":{}}],["latency.cr",{"_index":1317,"title":{},"content":{"179":{"position":[[351,16]]}},"keywords":{}}],["later",{"_index":583,"title":{},"content":{"21":{"position":[[2201,5]]},"347":{"position":[[603,5]]},"351":{"position":[[371,5]]},"398":{"position":[[430,5]]}},"keywords":{}}],["lattic",{"_index":825,"title":{"144":{"position":[[4,7]]}},"content":{"145":{"position":[[33,7]]}},"keywords":{}}],["le",{"_index":1569,"title":{},"content":{"229":{"position":[[406,2]]}},"keywords":{}}],["leak",{"_index":1138,"title":{},"content":{"167":{"position":[[1382,7],[1461,6]]}},"keywords":{}}],["learn",{"_index":1320,"title":{},"content":{"179":{"position":[[582,5]]}},"keywords":{}}],["left",{"_index":597,"title":{},"content":{"21":{"position":[[2537,4]]}},"keywords":{}}],["legaci",{"_index":1875,"title":{},"content":{"318":{"position":[[995,6]]}},"keywords":{}}],["legal",{"_index":400,"title":{},"content":{"12":{"position":[[301,5]]}},"keywords":{}}],["lesslog",{"_index":1898,"title":{},"content":{"322":{"position":[[851,8],[875,8],[981,8],[1005,8]]},"324":{"position":[[1591,8],[1615,8]]}},"keywords":{}}],["let",{"_index":1710,"title":{},"content":{"265":{"position":[[319,4]]},"324":{"position":[[978,4]]}},"keywords":{}}],["let'",{"_index":137,"title":{},"content":{"5":{"position":[[37,5],[65,5],[1688,5]]},"473":{"position":[[354,5]]}},"keywords":{}}],["level",{"_index":895,"title":{},"content":{"153":{"position":[[357,6]]},"173":{"position":[[105,5]]},"174":{"position":[[1713,6],[1738,6],[1767,6]]},"219":{"position":[[419,6],[488,5]]},"322":{"position":[[270,5],[341,6]]},"323":{"position":[[438,5]]}},"keywords":{}}],["lex",{"_index":784,"title":{"105":{"position":[[0,3]]}},"content":{"106":{"position":[[73,3]]}},"keywords":{}}],["lexus",{"_index":785,"title":{},"content":{"106":{"position":[[29,8]]}},"keywords":{}}],["librari",{"_index":1885,"title":{},"content":{"322":{"position":[[76,9]]}},"keywords":{}}],["licens",{"_index":363,"title":{},"content":{"7":{"position":[[1526,7]]}},"keywords":{}}],["lifev5",{"_index":1085,"title":{},"content":{"166":{"position":[[444,6]]}},"keywords":{}}],["likewis",{"_index":1405,"title":{},"content":{"189":{"position":[[474,9]]}},"keywords":{}}],["limit",{"_index":1974,"title":{},"content":{"327":{"position":[[1251,12]]}},"keywords":{}}],["link",{"_index":1411,"title":{},"content":{"189":{"position":[[725,6]]}},"keywords":{}}],["list",{"_index":1459,"title":{},"content":{"199":{"position":[[65,5]]},"204":{"position":[[64,5]]},"228":{"position":[[145,4],[342,4],[540,4],[742,4]]},"232":{"position":[[799,4]]},"288":{"position":[[59,5]]},"295":{"position":[[58,5]]},"300":{"position":[[71,5]]},"305":{"position":[[58,5]]},"310":{"position":[[72,5]]},"320":{"position":[[59,5]]},"329":{"position":[[59,5]]},"344":{"position":[[79,5]]},"354":{"position":[[345,4]]},"478":{"position":[[1084,4]]}},"keywords":{}}],["lmammino2020",{"_index":979,"title":{},"content":{"159":{"position":[[355,13]]}},"keywords":{}}],["lmammino2022",{"_index":988,"title":{},"content":{"159":{"position":[[471,13]]}},"keywords":{}}],["load",{"_index":698,"title":{"35":{"position":[[12,4]]}},"content":{"36":{"position":[[37,4]]}},"keywords":{}}],["local",{"_index":2070,"title":{},"content":{"359":{"position":[[768,12],[1103,7]]},"361":{"position":[[24,12]]},"363":{"position":[[469,6],[525,6],[532,9],[593,6]]},"466":{"position":[[274,13],[943,13],[1113,13]]}},"keywords":{}}],["locale=$(basenam",{"_index":2111,"title":{},"content":{"363":{"position":[[481,17]]}},"keywords":{}}],["lock.json",{"_index":352,"title":{},"content":{"7":{"position":[[1387,9]]}},"keywords":{}}],["log",{"_index":539,"title":{"62":{"position":[[12,4]]}},"content":{"21":{"position":[[1246,3]]},"63":{"position":[[29,4]]},"170":{"position":[[250,7]]},"171":{"position":[[87,7],[198,4],[244,3],[319,4],[364,3],[415,4],[471,7]]},"173":{"position":[[101,3],[292,3],[428,8],[461,9],[678,3]]},"174":{"position":[[259,3],[433,4],[878,3],[1174,3],[1322,3],[1596,4],[1684,3],[1763,3],[1844,3],[2015,3],[2164,3],[2365,3],[2389,4],[2485,4]]},"177":{"position":[[140,3]]},"181":{"position":[[140,3]]},"188":{"position":[[404,3]]},"215":{"position":[[79,7]]},"243":{"position":[[39,7],[152,7]]},"277":{"position":[[39,7],[286,6],[365,4]]},"280":{"position":[[200,4],[232,4]]},"322":{"position":[[220,4],[246,7],[291,7],[352,3],[917,7],[1047,7]]},"323":{"position":[[102,8],[203,7],[251,3]]},"324":{"position":[[197,4],[1657,7]]},"385":{"position":[[17,4]]},"476":{"position":[[204,3]]}},"keywords":{}}],["logev",{"_index":1213,"title":{},"content":{"173":{"position":[[636,8]]},"188":{"position":[[832,9]]},"189":{"position":[[1787,9]]}},"keywords":{}}],["logger",{"_index":495,"title":{"171":{"position":[[0,7]]},"213":{"position":[[6,6]]},"275":{"position":[[13,6]]},"385":{"position":[[13,7]]},"403":{"position":[[6,7]]},"419":{"position":[[13,7]]},"442":{"position":[[6,7]]},"458":{"position":[[13,7]]}},"content":{"21":{"position":[[20,7],[104,7]]},"22":{"position":[[64,7],[135,6]]},"34":{"position":[[80,7],[149,7]]},"37":{"position":[[131,7],[200,7]]},"43":{"position":[[80,7],[149,7]]},"91":{"position":[[80,7],[149,7]]},"102":{"position":[[148,7],[217,7]]},"146":{"position":[[80,7],[149,7]]},"170":{"position":[[230,6]]},"173":{"position":[[513,6],[520,8],[560,6],[783,6]]},"174":{"position":[[42,7],[116,6],[129,8],[1247,6],[1622,6],[2154,6],[2328,6]]},"188":{"position":[[249,6],[383,6]]},"214":{"position":[[88,6]]},"215":{"position":[[0,6]]},"216":{"position":[[70,7]]},"243":{"position":[[0,6]]},"276":{"position":[[95,6]]},"277":{"position":[[0,6]]},"278":{"position":[[83,7],[374,7],[412,6],[534,7]]},"280":{"position":[[192,7],[224,7]]},"313":{"position":[[0,6]]},"322":{"position":[[187,7]]},"323":{"position":[[184,7]]},"324":{"position":[[121,7]]}},"keywords":{}}],["logger(id",{"_index":505,"title":{},"content":{"21":{"position":[[278,10]]},"22":{"position":[[279,10]]}},"keywords":{}}],["logger.child(request.context",{"_index":1756,"title":{},"content":{"278":{"position":[[574,29]]}},"keywords":{}}],["logger.info('thi",{"_index":1224,"title":{},"content":{"174":{"position":[[230,17]]}},"keywords":{}}],["loggeromitpath",{"_index":1743,"title":{},"content":{"277":{"position":[[155,15]]}},"keywords":{}}],["logic",{"_index":118,"title":{},"content":{"4":{"position":[[330,5],[524,6]]},"5":{"position":[[1081,5]]},"6":{"position":[[152,6],[275,6],[432,5],[775,5],[953,5]]},"156":{"position":[[180,5]]},"157":{"position":[[231,5],[810,5]]},"215":{"position":[[87,6]]},"216":{"position":[[141,5]]},"314":{"position":[[235,5]]},"473":{"position":[[321,5]]},"478":{"position":[[499,5],[658,5]]}},"keywords":{}}],["loglevel",{"_index":1198,"title":{},"content":{"173":{"position":[[73,8]]}},"keywords":{}}],["logmetr",{"_index":1328,"title":{},"content":{"182":{"position":[[64,10]]}},"keywords":{}}],["long",{"_index":607,"title":{},"content":{"21":{"position":[[2802,4]]},"165":{"position":[[102,4]]},"166":{"position":[[315,4]]},"197":{"position":[[886,4]]},"202":{"position":[[881,4]]},"286":{"position":[[614,4]]},"298":{"position":[[1365,4]]},"303":{"position":[[858,4]]},"308":{"position":[[908,4]]},"318":{"position":[[719,4]]},"327":{"position":[[891,4]]}},"keywords":{}}],["longer",{"_index":1105,"title":{},"content":{"166":{"position":[[784,6]]},"356":{"position":[[24,6]]},"375":{"position":[[85,6]]},"382":{"position":[[3,6]]},"408":{"position":[[3,6]]},"409":{"position":[[31,6]]},"426":{"position":[[150,6]]}},"keywords":{}}],["look",{"_index":567,"title":{},"content":{"21":{"position":[[1879,5],[1966,4],[2730,6]]},"152":{"position":[[221,4]]},"472":{"position":[[929,4]]}},"keywords":{}}],["loop",{"_index":806,"title":{"209":{"position":[[28,4]]},"371":{"position":[[28,5]]},"402":{"position":[[28,5]]},"441":{"position":[[28,5]]}},"content":{"136":{"position":[[18,4],[151,5]]},"210":{"position":[[110,4]]},"212":{"position":[[107,5]]},"280":{"position":[[127,5]]},"315":{"position":[[281,6]]},"322":{"position":[[405,4]]}},"keywords":{}}],["loophttpcontentnegoti",{"_index":2032,"title":{},"content":{"354":{"position":[[589,26]]}},"keywords":{}}],["lose",{"_index":1409,"title":{},"content":{"189":{"position":[[669,6]]}},"keywords":{}}],["lot",{"_index":580,"title":{},"content":{"21":{"position":[[2151,3]]},"466":{"position":[[12,3]]}},"keywords":{}}],["low",{"_index":2133,"title":{},"content":{"369":{"position":[[32,3]]},"370":{"position":[[32,3]]}},"keywords":{}}],["lower",{"_index":1516,"title":{},"content":{"219":{"position":[[462,5]]}},"keywords":{}}],["lowercas",{"_index":1613,"title":{},"content":{"239":{"position":[[120,9]]},"355":{"position":[[234,9],[579,9]]},"410":{"position":[[40,9]]}},"keywords":{}}],["ls0tls0tv2vis2l0rm9ybujvdw5kyxj5chbzuuv3zjjcvkplq2uwtq0kq29udgvudc1eaxnwb3npdglvbjogzm9ybs1kyxrhoybuyw1lpsjmb28idqoncmjhcg0kls0tls0tv2vis2l0rm9ybujvdw5kyxj5chbzuuv3zjjcvkplq2uwts0t",{"_index":1653,"title":{},"content":{"252":{"position":[[442,183]]}},"keywords":{}}],["lt",{"_index":1082,"title":{},"content":{"166":{"position":[[333,5]]}},"keywords":{}}],["lt;message>${body}</message>",{"_index":1700,"title":{},"content":{"263":{"position":[[136,41]]},"266":{"position":[[324,41]]}},"keywords":{}}],["lt;message>${message}</message>",{"_index":1573,"title":{},"content":{"229":{"position":[[524,43]]}},"keywords":{}}],["lysé",{"_index":1692,"title":{},"content":{"260":{"position":[[285,9]]}},"keywords":{}}],["made",{"_index":1162,"title":{},"content":{"170":{"position":[[258,4]]},"178":{"position":[[1170,4],[1441,4]]},"323":{"position":[[211,4]]}},"keywords":{}}],["magic",{"_index":581,"title":{},"content":{"21":{"position":[[2158,5]]}},"keywords":{}}],["main",{"_index":131,"title":{},"content":{"4":{"position":[[510,4]]},"6":{"position":[[11,4],[761,4],[939,4]]},"318":{"position":[[1074,4]]}},"keywords":{}}],["maintain",{"_index":249,"title":{},"content":{"6":{"position":[[499,9],[1006,9]]},"414":{"position":[[56,15]]},"476":{"position":[[117,9]]}},"keywords":{}}],["mainten",{"_index":1063,"title":{},"content":{"165":{"position":[[112,12]]},"166":{"position":[[152,11],[791,11]]}},"keywords":{}}],["major",{"_index":1067,"title":{},"content":{"166":{"position":[[19,5]]},"247":{"position":[[246,5]]},"251":{"position":[[431,5]]},"273":{"position":[[139,5]]}},"keywords":{}}],["make",{"_index":246,"title":{},"content":{"6":{"position":[[461,6]]},"143":{"position":[[80,4]]},"147":{"position":[[72,4]]},"148":{"position":[[81,4]]},"149":{"position":[[88,4]]},"150":{"position":[[84,4]]},"151":{"position":[[105,4]]},"152":{"position":[[201,4]]},"155":{"position":[[130,4]]},"159":{"position":[[224,6]]},"167":{"position":[[75,4],[1015,4]]},"170":{"position":[[807,4]]},"178":{"position":[[1229,5]]},"183":{"position":[[709,5]]},"189":{"position":[[246,4],[359,4]]},"190":{"position":[[77,4]]},"322":{"position":[[91,4]]},"323":{"position":[[85,5]]},"355":{"position":[[498,4]]},"466":{"position":[[29,6]]},"472":{"position":[[37,4]]}},"keywords":{}}],["makehandleridempot",{"_index":1376,"title":{},"content":{"186":{"position":[[84,21],[754,23]]}},"keywords":{}}],["male",{"_index":1686,"title":{},"content":{"260":{"position":[[230,7]]}},"keywords":{}}],["manag",{"_index":428,"title":{"92":{"position":[[7,7]]},"95":{"position":[[12,7]]},"123":{"position":[[8,7]]},"296":{"position":[[8,7]]},"370":{"position":[[3,8]]},"389":{"position":[[8,8]]},"423":{"position":[[8,8]]},"461":{"position":[[8,8]]}},"content":{"13":{"position":[[661,7]]},"15":{"position":[[868,7]]},"96":{"position":[[23,7]]},"103":{"position":[[179,8]]},"124":{"position":[[30,7]]},"160":{"position":[[689,7]]},"178":{"position":[[173,9]]},"283":{"position":[[260,8],[458,7]]},"297":{"position":[[90,7],[145,7]]},"298":{"position":[[1237,9]]},"299":{"position":[[75,8],[362,7]]},"300":{"position":[[48,7]]},"323":{"position":[[516,7],[553,8]]},"324":{"position":[[1410,10]]},"386":{"position":[[99,8]]}},"keywords":{}}],["manager.awsclientopt",{"_index":1831,"title":{},"content":{"298":{"position":[[176,24]]}},"keywords":{}}],["manager.servic",{"_index":1800,"title":{},"content":{"283":{"position":[[305,15]]}},"keywords":{}}],["managerssm",{"_index":2041,"title":{},"content":{"354":{"position":[[1054,10]]}},"keywords":{}}],["manipul",{"_index":1706,"title":{},"content":{"264":{"position":[[393,10]]}},"keywords":{}}],["manual",{"_index":1289,"title":{},"content":{"175":{"position":[[258,6]]}},"keywords":{}}],["map",{"_index":87,"title":{},"content":{"2":{"position":[[810,3],[936,3]]},"178":{"position":[[1383,4]]},"197":{"position":[[530,7]]},"202":{"position":[[526,7]]},"286":{"position":[[257,7]]},"298":{"position":[[524,7],[666,7]]},"303":{"position":[[509,7]]},"308":{"position":[[558,7]]},"318":{"position":[[369,7]]},"327":{"position":[[489,7]]}},"keywords":{}}],["mask",{"_index":2211,"title":{},"content":{"419":{"position":[[21,4]]}},"keywords":{}}],["mask/bin",{"_index":308,"title":{},"content":{"7":{"position":[[603,8]]}},"keywords":{}}],["mask/build",{"_index":309,"title":{},"content":{"7":{"position":[[620,10]]}},"keywords":{}}],["match",{"_index":1397,"title":{},"content":{"188":{"position":[[524,7]]},"232":{"position":[[779,7]]},"264":{"position":[[7,8]]},"265":{"position":[[474,8]]},"291":{"position":[[725,5]]},"347":{"position":[[168,5]]},"398":{"position":[[43,5]]}},"keywords":{}}],["max",{"_index":1313,"title":{},"content":{"179":{"position":[[183,3],[199,3]]},"232":{"position":[[987,3]]}},"keywords":{}}],["maximum",{"_index":202,"title":{},"content":{"5":{"position":[[1393,8],[1454,8]]}},"keywords":{}}],["maxlength",{"_index":195,"title":{},"content":{"5":{"position":[[1315,10],[1508,10]]}},"keywords":{}}],["maxretri",{"_index":1977,"title":{},"content":{"327":{"position":[[1315,10]]}},"keywords":{}}],["md",{"_index":364,"title":{},"content":{"7":{"position":[[1534,4]]}},"keywords":{}}],["mean",{"_index":1361,"title":{},"content":{"183":{"position":[[466,5]]},"211":{"position":[[110,7]]}},"keywords":{}}],["media",{"_index":1554,"title":{},"content":{"228":{"position":[[657,5],[750,5]]},"281":{"position":[[241,5]]}},"keywords":{}}],["meet",{"_index":2105,"title":{},"content":{"363":{"position":[[126,4]]}},"keywords":{}}],["memori",{"_index":609,"title":{"22":{"position":[[0,7]]}},"content":{"251":{"position":[[665,7],[763,6]]}},"keywords":{}}],["memoryplugin",{"_index":612,"title":{},"content":{"22":{"position":[[92,12]]}},"keywords":{}}],["memwatch",{"_index":610,"title":{},"content":{"22":{"position":[[7,8],[35,9]]}},"keywords":{}}],["memwatch.heapdiff",{"_index":613,"title":{},"content":{"22":{"position":[[231,19]]}},"keywords":{}}],["messag",{"_index":179,"title":{"365":{"position":[[41,9]]}},"content":{"5":{"position":[[920,8]]},"167":{"position":[[1189,7]]},"186":{"position":[[642,8]]},"198":{"position":[[192,8]]},"203":{"position":[[190,8]]},"229":{"position":[[281,8],[344,7],[387,7],[431,7],[621,11],[688,7],[721,7]]},"243":{"position":[[302,7]]},"278":{"position":[[210,8]]},"281":{"position":[[1222,7],[1247,7]]},"287":{"position":[[193,8]]},"304":{"position":[[206,8]]},"309":{"position":[[207,8]]},"314":{"position":[[216,7]]},"319":{"position":[[180,8]]},"342":{"position":[[137,9]]},"343":{"position":[[166,9]]},"360":{"position":[[356,9]]},"361":{"position":[[107,8]]},"394":{"position":[[362,8]]},"426":{"position":[[179,7]]},"466":{"position":[[522,8]]}},"keywords":{}}],["metadata",{"_index":1296,"title":{},"content":{"177":{"position":[[337,9],[627,9]]},"178":{"position":[[977,9]]}},"keywords":{}}],["metadata.automat",{"_index":1284,"title":{},"content":{"175":{"position":[[109,22]]}},"keywords":{}}],["method",{"_index":705,"title":{},"content":{"37":{"position":[[1362,7],[1422,7]]},"189":{"position":[[387,6],[568,6]]},"232":{"position":[[426,7],[1191,7]]},"322":{"position":[[254,8],[299,6]]},"347":{"position":[[76,6],[181,6]]},"348":{"position":[[464,7],[524,7]]},"398":{"position":[[929,6]]}},"keywords":{}}],["methods/modul",{"_index":1905,"title":{},"content":{"322":{"position":[[1154,15]]}},"keywords":{}}],["methodsexposeheadersrequestheadersrequestmethod",{"_index":2148,"title":{},"content":{"374":{"position":[[42,48]]}},"keywords":{}}],["metric",{"_index":745,"title":{"179":{"position":[[0,8]]},"205":{"position":[[11,7]]},"401":{"position":[[11,8]]},"440":{"position":[[11,8]]}},"content":{"102":{"position":[[91,8]]},"170":{"position":[[637,7],[732,7]]},"179":{"position":[[36,7],[97,7],[120,6],[162,6],[378,6],[562,7],[648,8]]},"181":{"position":[[246,8],[328,7],[336,8],[376,7],[527,7],[644,7]]},"182":{"position":[[42,8],[122,7],[136,9],[1085,7],[1126,7],[1157,8],[1236,7],[1292,6]]},"189":{"position":[[505,7],[587,7],[616,7]]},"206":{"position":[[93,7]]},"207":{"position":[[56,8],[110,7],[351,7],[442,7]]},"208":{"position":[[90,9]]},"280":{"position":[[11,8]]},"323":{"position":[[127,7],[315,7],[370,6]]}},"keywords":{}}],["metricloggerdo",{"_index":1763,"title":{},"content":{"280":{"position":[[87,14]]}},"keywords":{}}],["metrics).metr",{"_index":1315,"title":{},"content":{"179":{"position":[[203,16]]}},"keywords":{}}],["metrics.addmetric('successfulbook",{"_index":1331,"title":{},"content":{"182":{"position":[[298,38]]}},"keywords":{}}],["metricunit",{"_index":1327,"title":{},"content":{"182":{"position":[[51,12]]}},"keywords":{}}],["metricunits.count",{"_index":1332,"title":{},"content":{"182":{"position":[[337,18]]}},"keywords":{}}],["middi",{"_index":36,"title":{"4":{"position":[[8,6]]},"159":{"position":[[19,6]]}},"content":{"2":{"position":[[17,5],[187,5],[515,7]]},"4":{"position":[[0,5],[211,5]]},"5":{"position":[[161,5],[211,5],[1792,7]]},"6":{"position":[[1104,6]]},"21":{"position":[[2708,5]]},"25":{"position":[[7,5]]},"28":{"position":[[7,5],[55,7]]},"31":{"position":[[7,5],[604,7]]},"34":{"position":[[7,5],[1376,7]]},"37":{"position":[[7,5],[1501,7]]},"40":{"position":[[7,5]]},"43":{"position":[[7,5],[1376,7]]},"46":{"position":[[7,5],[55,7]]},"49":{"position":[[7,5],[55,7]]},"52":{"position":[[7,5],[55,7]]},"55":{"position":[[7,5],[119,7]]},"58":{"position":[[7,5],[55,7]]},"61":{"position":[[7,5],[55,7]]},"64":{"position":[[7,5],[119,7]]},"68":{"position":[[7,5],[55,7]]},"70":{"position":[[7,5]]},"73":{"position":[[7,5],[119,7]]},"77":{"position":[[7,5],[55,7]]},"79":{"position":[[7,5]]},"82":{"position":[[7,5],[119,7]]},"85":{"position":[[7,5],[55,7]]},"88":{"position":[[7,5],[55,7]]},"91":{"position":[[7,5],[1376,7]]},"94":{"position":[[7,5],[119,7]]},"97":{"position":[[7,5],[119,7]]},"100":{"position":[[7,5],[119,7]]},"102":{"position":[[7,5],[467,7]]},"103":{"position":[[7,5],[289,7]]},"104":{"position":[[7,5],[273,7]]},"107":{"position":[[7,5],[55,7]]},"110":{"position":[[7,5],[119,7]]},"113":{"position":[[7,5],[119,7]]},"116":{"position":[[7,5],[119,7]]},"119":{"position":[[7,5],[119,7]]},"122":{"position":[[7,5],[119,7]]},"125":{"position":[[7,5],[55,7]]},"128":{"position":[[7,5],[195,7]]},"131":{"position":[[7,5],[55,7]]},"134":{"position":[[7,5],[119,7]]},"139":{"position":[[7,5],[189,7]]},"142":{"position":[[7,5],[55,7]]},"146":{"position":[[7,5],[1388,7]]},"148":{"position":[[151,5]]},"155":{"position":[[11,6]]},"156":{"position":[[43,5],[202,5],[273,7]]},"157":{"position":[[7,5],[480,5]]},"159":{"position":[[0,5]]},"161":{"position":[[6,5]]},"164":{"position":[[10,5],[170,5]]},"165":{"position":[[14,5]]},"166":{"position":[[813,6]]},"167":{"position":[[144,5],[377,5],[776,5],[923,5]]},"168":{"position":[[20,5],[147,5],[224,5]]},"170":{"position":[[223,6]]},"174":{"position":[[7,5]]},"178":{"position":[[7,5]]},"182":{"position":[[7,5]]},"186":{"position":[[7,5],[509,6]]},"188":{"position":[[732,8]]},"192":{"position":[[7,5],[111,7]]},"193":{"position":[[7,5],[111,7]]},"198":{"position":[[7,5]]},"203":{"position":[[7,5]]},"208":{"position":[[6,5]]},"212":{"position":[[7,5]]},"216":{"position":[[7,5]]},"220":{"position":[[7,5],[225,7]]},"221":{"position":[[7,5],[281,7]]},"225":{"position":[[7,5]]},"229":{"position":[[7,5]]},"232":{"position":[[1342,5]]},"233":{"position":[[7,5]]},"236":{"position":[[7,5]]},"240":{"position":[[7,5],[113,7]]},"244":{"position":[[7,5]]},"248":{"position":[[7,5]]},"252":{"position":[[7,5]]},"256":{"position":[[7,5]]},"260":{"position":[[7,5]]},"266":{"position":[[7,5]]},"270":{"position":[[7,5]]},"274":{"position":[[7,5]]},"278":{"position":[[7,5],[298,5]]},"287":{"position":[[7,5]]},"293":{"position":[[31,5]]},"294":{"position":[[31,5]]},"299":{"position":[[7,5]]},"304":{"position":[[7,5]]},"309":{"position":[[7,5]]},"314":{"position":[[7,5]]},"319":{"position":[[7,5]]},"322":{"position":[[845,5]]},"324":{"position":[[0,5],[453,5],[621,5],[1429,5]]},"328":{"position":[[7,5],[460,5]]},"333":{"position":[[6,5]]},"337":{"position":[[7,5],[177,7]]},"342":{"position":[[7,5]]},"343":{"position":[[7,5]]},"348":{"position":[[7,5],[153,7],[309,7],[603,7]]},"352":{"position":[[7,5],[207,7],[346,7],[485,7]]},"354":{"position":[[15,5],[88,6]]},"355":{"position":[[3,5],[166,5],[487,5],[619,5]]},"356":{"position":[[15,5],[285,5]]},"362":{"position":[[37,5],[753,5],[1408,5]]},"363":{"position":[[619,5],[802,7]]},"364":{"position":[[51,5],[374,7]]},"365":{"position":[[51,5],[333,7]]},"370":{"position":[[61,5]]},"398":{"position":[[89,8]]},"466":{"position":[[750,10],[1018,10]]},"472":{"position":[[969,5]]},"473":{"position":[[422,5],[754,5]]},"476":{"position":[[84,6],[111,5],[469,5]]},"478":{"position":[[130,5],[729,5]]}},"keywords":{}}],["middlewar",{"_index":42,"title":{"102":{"position":[[0,11]]},"279":{"position":[[9,11]]},"321":{"position":[[12,11]]},"368":{"position":[[0,11]]},"400":{"position":[[0,11]]},"439":{"position":[[0,11]]},"472":{"position":[[13,11]]},"473":{"position":[[7,11]]},"475":{"position":[[7,11]]}},"content":{"2":{"position":[[63,11]]},"4":{"position":[[23,10],[269,10]]},"5":{"position":[[279,11],[723,10],[1167,11],[1758,11]]},"6":{"position":[[627,10],[787,10],[1119,10]]},"21":{"position":[[1909,10],[2061,12],[2256,10],[2440,11],[2620,10],[2772,12]]},"153":{"position":[[18,11],[171,11],[240,11],[372,11],[631,11],[791,10]]},"156":{"position":[[220,11],[406,11],[442,11]]},"157":{"position":[[377,10],[403,12],[443,11],[686,11],[919,11],[1046,10]]},"160":{"position":[[161,11],[271,10],[379,11],[398,10],[508,11],[612,11],[678,10]]},"161":{"position":[[121,11],[195,11],[418,10],[487,11]]},"163":{"position":[[0,11],[342,11],[586,11]]},"164":{"position":[[80,11]]},"167":{"position":[[275,10]]},"168":{"position":[[697,11]]},"170":{"position":[[277,10],[483,10],[667,10],[793,10]]},"173":{"position":[[471,10]]},"175":{"position":[[242,11]]},"177":{"position":[[365,10]]},"181":{"position":[[286,10]]},"185":{"position":[[0,10]]},"188":{"position":[[93,11],[186,10],[215,10],[270,12],[310,10],[696,12]]},"189":{"position":[[47,11],[180,10],[1017,10]]},"196":{"position":[[16,10]]},"201":{"position":[[16,10]]},"206":{"position":[[16,10]]},"210":{"position":[[16,10]]},"211":{"position":[[15,10]]},"214":{"position":[[16,10]]},"218":{"position":[[16,10]]},"223":{"position":[[16,10]]},"227":{"position":[[16,10]]},"231":{"position":[[16,10]]},"235":{"position":[[16,10]]},"238":{"position":[[16,10]]},"242":{"position":[[16,10]]},"246":{"position":[[16,10]]},"250":{"position":[[16,10]]},"251":{"position":[[457,10]]},"254":{"position":[[16,10]]},"258":{"position":[[16,10]]},"262":{"position":[[16,10]]},"263":{"position":[[4,10]]},"265":{"position":[[35,10],[353,10]]},"268":{"position":[[16,10]]},"272":{"position":[[16,10]]},"276":{"position":[[16,10]]},"281":{"position":[[18,10]]},"285":{"position":[[16,10]]},"290":{"position":[[16,10]]},"297":{"position":[[16,10]]},"299":{"position":[[327,10]]},"302":{"position":[[16,10]]},"307":{"position":[[16,10]]},"312":{"position":[[16,10]]},"317":{"position":[[16,10]]},"322":{"position":[[40,12],[195,10],[418,10],[645,10],[683,10],[860,10],[955,10],[990,10],[1078,10]]},"323":{"position":[[230,10]]},"324":{"position":[[129,10],[459,10],[542,10],[600,10],[797,10],[891,11],[962,10],[1134,10],[1210,10],[1273,10],[1600,10]]},"326":{"position":[[16,10]]},"328":{"position":[[973,10]]},"331":{"position":[[16,10]]},"335":{"position":[[16,10]]},"339":{"position":[[16,10]]},"346":{"position":[[16,10]]},"347":{"position":[[525,10],[563,10],[632,10],[670,12],[707,10],[766,10]]},"350":{"position":[[16,10]]},"351":{"position":[[293,10],[331,10],[400,10],[438,12],[475,10],[534,10]]},"354":{"position":[[115,10],[181,11],[402,11],[428,10]]},"355":{"position":[[38,10]]},"358":{"position":[[16,10]]},"362":{"position":[[1356,11]]},"367":{"position":[[110,10],[166,10],[186,10],[288,10],[341,10]]},"385":{"position":[[48,10]]},"386":{"position":[[4,10]]},"388":{"position":[[4,10]]},"393":{"position":[[4,10]]},"395":{"position":[[371,12]]},"398":{"position":[[8,10],[98,11],[178,11],[436,10]]},"408":{"position":[[52,10]]},"444":{"position":[[62,10],[85,10]]},"450":{"position":[[65,10]]},"466":{"position":[[41,10],[372,10],[575,10]]},"472":{"position":[[13,11],[42,11],[184,10],[906,10]]},"473":{"position":[[7,11],[272,11],[375,11],[865,12]]},"474":{"position":[[112,11],[205,10],[436,10],[502,10]]},"475":{"position":[[7,11],[21,10]]},"477":{"position":[[42,11],[93,11]]},"478":{"position":[[64,10],[234,10],[488,10],[647,10],[708,10],[1069,10]]}},"keywords":{}}],["middleware.beforemiddleware/aftermiddleware(fctnam",{"_index":1023,"title":{},"content":{"161":{"position":[[308,53]]}},"keywords":{}}],["middleware.cacheexpiri",{"_index":1446,"title":{},"content":{"197":{"position":[[836,22]]},"202":{"position":[[831,22]]},"286":{"position":[[564,22]]},"298":{"position":[[1315,22]]},"303":{"position":[[808,22]]},"308":{"position":[[858,22]]},"318":{"position":[[669,22]]},"327":{"position":[[841,22]]}},"keywords":{}}],["middleware.disableprefetch",{"_index":1841,"title":{},"content":{"298":{"position":[[1047,26]]}},"keywords":{}}],["middleware1",{"_index":937,"title":{},"content":{"157":{"position":[[39,11],[64,12],[522,11],[700,15]]},"163":{"position":[[429,11]]}},"keywords":{}}],["middleware1"",{"_index":951,"title":{},"content":{"157":{"position":[[552,17]]}},"keywords":{}}],["middleware2",{"_index":938,"title":{},"content":{"157":{"position":[[84,11],[109,12],[577,11],[716,14]]}},"keywords":{}}],["middleware2"",{"_index":952,"title":{},"content":{"157":{"position":[[607,17]]}},"keywords":{}}],["middleware3",{"_index":939,"title":{},"content":{"157":{"position":[[129,11],[154,12],[632,11],[731,14]]}},"keywords":{}}],["middleware3"",{"_index":953,"title":{},"content":{"157":{"position":[[662,17]]}},"keywords":{}}],["middleware@sharecov",{"_index":1944,"title":{},"content":{"324":{"position":[[735,21]]}},"keywords":{}}],["middlewaremiddi",{"_index":1912,"title":{},"content":{"322":{"position":[[1290,15]]},"324":{"position":[[30,15],[297,15]]}},"keywords":{}}],["middlewareshttp",{"_index":2171,"title":{},"content":{"397":{"position":[[14,15]]}},"keywords":{}}],["middlewaresmiddi",{"_index":1946,"title":{},"content":{"324":{"position":[[924,16]]}},"keywords":{}}],["middy'",{"_index":965,"title":{},"content":{"159":{"position":[[181,7]]},"473":{"position":[[332,7]]}},"keywords":{}}],["middy((ev",{"_index":916,"title":{},"content":{"153":{"position":[[1372,13]]},"189":{"position":[[1673,13]]},"198":{"position":[[89,13]]},"203":{"position":[[87,13]]},"208":{"position":[[116,13]]},"212":{"position":[[129,13]]},"216":{"position":[[94,13]]},"229":{"position":[[246,13]]},"232":{"position":[[1476,13]]},"233":{"position":[[84,13]]},"236":{"position":[[111,13]]},"244":{"position":[[105,13]]},"248":{"position":[[175,13]]},"252":{"position":[[185,13]]},"256":{"position":[[111,13]]},"260":{"position":[[111,13]]},"266":{"position":[[117,13]]},"270":{"position":[[120,13]]},"274":{"position":[[185,13]]},"278":{"position":[[107,13],[444,13]]},"287":{"position":[[90,13]]},"293":{"position":[[129,13]]},"299":{"position":[[100,13]]},"304":{"position":[[75,13]]},"309":{"position":[[104,13]]},"319":{"position":[[77,13]]},"328":{"position":[[77,13],[572,13]]},"342":{"position":[[99,13]]},"343":{"position":[[99,13]]},"362":{"position":[[180,13],[896,13],[1613,13]]},"473":{"position":[[470,13]]}},"keywords":{}}],["middy().handler((ev",{"_index":621,"title":{},"content":{"25":{"position":[[55,23]]},"40":{"position":[[55,23]]},"70":{"position":[[55,23]]},"79":{"position":[[55,23]]}},"keywords":{}}],["middy(async",{"_index":1830,"title":{},"content":{"294":{"position":[[129,11]]}},"keywords":{}}],["middy(graphql.createhandl",{"_index":841,"title":{},"content":{"148":{"position":[[617,30]]}},"keywords":{}}],["middy(handl",{"_index":1114,"title":{},"content":{"167":{"position":[[448,14],[557,14]]}},"keywords":{}}],["middy(lambdahandl",{"_index":940,"title":{},"content":{"157":{"position":[[265,20],[845,20]]},"168":{"position":[[580,20]]},"174":{"position":[[335,20]]},"178":{"position":[[452,20]]},"182":{"position":[[386,20]]},"395":{"position":[[227,20]]},"434":{"position":[[57,20]]},"472":{"position":[[1145,20]]},"476":{"position":[[630,20]]}},"keywords":{}}],["middy(lambdahandler).use(eventnorm",{"_index":1543,"title":{},"content":{"225":{"position":[[218,43]]}},"keywords":{}}],["middy(lambdahandler).use(sqsbatch",{"_index":1865,"title":{},"content":{"314":{"position":[[328,36]]}},"keywords":{}}],["middy(memoryplugin",{"_index":615,"title":{},"content":{"22":{"position":[[765,21]]}},"keywords":{}}],["middy(originalhandl",{"_index":1996,"title":{},"content":{"333":{"position":[[219,22]]}},"keywords":{}}],["middy(timeplugin",{"_index":527,"title":{},"content":{"21":{"position":[[905,19]]}},"keywords":{}}],["middy.j",{"_index":297,"title":{},"content":{"7":{"position":[[346,8]]}},"keywords":{}}],["middy.middlewarefn<apigatewayproxyev",{"_index":2309,"title":{},"content":{"478":{"position":[[344,43],[520,43]]}},"keywords":{}}],["middy.middlewareobj<apigatewayproxyev",{"_index":2307,"title":{},"content":{"478":{"position":[[251,44]]}},"keywords":{}}],["middy/appconfig",{"_index":774,"title":{},"content":{"104":{"position":[[106,18]]},"196":{"position":[[75,16]]},"198":{"position":[[54,18]]}},"keywords":{}}],["middy/cachecor",{"_index":2030,"title":{},"content":{"354":{"position":[[482,16]]}},"keywords":{}}],["middy/cloudwatch",{"_index":744,"title":{},"content":{"102":{"position":[[72,18]]},"206":{"position":[[75,17]]}},"keywords":{}}],["middy/cor",{"_index":49,"title":{},"content":{"2":{"position":[[198,13]]},"5":{"position":[[172,13]]},"15":{"position":[[446,11]]},"25":{"position":[[18,13]]},"28":{"position":[[18,13]]},"31":{"position":[[18,13]]},"34":{"position":[[18,13]]},"37":{"position":[[18,13]]},"40":{"position":[[18,13]]},"43":{"position":[[18,13]]},"46":{"position":[[18,13]]},"49":{"position":[[18,13]]},"52":{"position":[[18,13]]},"55":{"position":[[18,13]]},"58":{"position":[[18,13]]},"61":{"position":[[18,13]]},"64":{"position":[[18,13]]},"68":{"position":[[18,13]]},"70":{"position":[[18,13]]},"73":{"position":[[18,13]]},"77":{"position":[[18,13]]},"79":{"position":[[18,13]]},"82":{"position":[[18,13]]},"85":{"position":[[18,13]]},"88":{"position":[[18,13]]},"91":{"position":[[18,13]]},"94":{"position":[[18,13]]},"97":{"position":[[18,13]]},"100":{"position":[[18,13]]},"102":{"position":[[18,13]]},"103":{"position":[[18,13]]},"104":{"position":[[18,13]]},"107":{"position":[[18,13]]},"110":{"position":[[18,13]]},"113":{"position":[[18,13]]},"116":{"position":[[18,13]]},"119":{"position":[[18,13]]},"122":{"position":[[18,13]]},"125":{"position":[[18,13]]},"128":{"position":[[18,13]]},"131":{"position":[[18,13]]},"134":{"position":[[18,13]]},"139":{"position":[[18,13]]},"142":{"position":[[18,13]]},"146":{"position":[[18,13]]},"148":{"position":[[162,13]]},"155":{"position":[[66,11]]},"157":{"position":[[18,13]]},"168":{"position":[[235,13]]},"174":{"position":[[18,14]]},"178":{"position":[[18,14]]},"182":{"position":[[18,14]]},"186":{"position":[[18,14]]},"192":{"position":[[18,13]]},"193":{"position":[[18,13]]},"198":{"position":[[18,13]]},"203":{"position":[[18,13]]},"212":{"position":[[18,13]]},"216":{"position":[[18,13]]},"220":{"position":[[18,13]]},"221":{"position":[[18,13]]},"225":{"position":[[18,13]]},"229":{"position":[[18,13]]},"232":{"position":[[1353,13]]},"233":{"position":[[18,13]]},"236":{"position":[[18,13]]},"240":{"position":[[18,13]]},"244":{"position":[[18,13]]},"248":{"position":[[18,13]]},"252":{"position":[[18,13]]},"256":{"position":[[18,13]]},"260":{"position":[[18,13]]},"266":{"position":[[18,13]]},"270":{"position":[[18,13]]},"274":{"position":[[18,13]]},"278":{"position":[[18,13],[309,13]]},"287":{"position":[[18,13]]},"293":{"position":[[42,13]]},"294":{"position":[[42,13]]},"299":{"position":[[18,13]]},"304":{"position":[[18,13]]},"309":{"position":[[18,13]]},"314":{"position":[[18,13]]},"319":{"position":[[18,13]]},"328":{"position":[[18,13],[471,13]]},"337":{"position":[[18,13]]},"342":{"position":[[18,13]]},"343":{"position":[[18,13]]},"348":{"position":[[18,13]]},"352":{"position":[[18,13]]},"354":{"position":[[151,11]]},"362":{"position":[[48,13],[764,13],[1419,13]]},"363":{"position":[[630,13]]},"364":{"position":[[62,13]]},"365":{"position":[[62,13]]},"472":{"position":[[980,13]]},"473":{"position":[[433,13]]},"476":{"position":[[480,13]]},"478":{"position":[[141,13]]}},"keywords":{}}],["middy/corecach",{"_index":2029,"title":{},"content":{"354":{"position":[[459,16]]}},"keywords":{}}],["middy/do",{"_index":811,"title":{},"content":{"136":{"position":[[116,9]]},"210":{"position":[[75,9]]},"212":{"position":[[71,10]]},"354":{"position":[[554,9]]}},"keywords":{}}],["middy/dynamodb",{"_index":777,"title":{},"content":{"104":{"position":[[193,17]]},"201":{"position":[[75,15]]},"203":{"position":[[53,17]]}},"keywords":{}}],["middy/error",{"_index":643,"title":{},"content":{"34":{"position":[[66,13]]},"37":{"position":[[117,13]]},"43":{"position":[[66,13]]},"91":{"position":[[66,13]]},"102":{"position":[[134,13]]},"146":{"position":[[66,13]]},"214":{"position":[[75,12]]},"216":{"position":[[56,13]]}},"keywords":{}}],["middy/ev",{"_index":719,"title":{},"content":{"55":{"position":[[70,13]]},"64":{"position":[[70,13]]},"73":{"position":[[70,13]]},"82":{"position":[[70,13]]},"94":{"position":[[70,13]]},"97":{"position":[[70,13]]},"100":{"position":[[70,13]]},"110":{"position":[[70,13]]},"113":{"position":[[70,13]]},"116":{"position":[[70,13]]},"119":{"position":[[70,13]]},"122":{"position":[[70,13]]},"134":{"position":[[70,13]]},"139":{"position":[[70,13]]},"223":{"position":[[75,12]]},"225":{"position":[[60,13]]}},"keywords":{}}],["middy/http",{"_index":153,"title":{},"content":{"5":{"position":[[318,12],[378,12]]},"15":{"position":[[509,11],[575,11],[615,11]]},"34":{"position":[[202,12],[278,12],[340,12],[398,12],[468,12],[542,12],[615,12],[692,12],[770,12],[846,12],[922,12],[999,12],[1091,12]]},"37":{"position":[[62,12],[253,12],[329,12],[391,12],[449,12],[519,12],[593,12],[666,12],[743,12],[821,12],[897,12],[973,12],[1050,12],[1142,12]]},"43":{"position":[[202,12],[278,12],[340,12],[398,12],[468,12],[542,12],[615,12],[692,12],[770,12],[846,12],[922,12],[999,12],[1091,12]]},"91":{"position":[[202,12],[278,12],[340,12],[398,12],[468,12],[542,12],[615,12],[692,12],[770,12],[846,12],[922,12],[999,12],[1091,12]]},"146":{"position":[[202,12],[278,12],[340,12],[398,12],[468,12],[554,12],[627,12],[704,12],[782,12],[858,12],[934,12],[1011,12],[1103,12]]},"148":{"position":[[527,12]]},"218":{"position":[[75,11]]},"220":{"position":[[67,12],[133,12]]},"221":{"position":[[67,12],[133,12]]},"227":{"position":[[75,11]]},"229":{"position":[[67,12],[134,12],[195,12]]},"231":{"position":[[75,11]]},"232":{"position":[[1396,12],[1441,12]]},"233":{"position":[[49,12]]},"235":{"position":[[75,11]]},"236":{"position":[[64,12]]},"238":{"position":[[75,11]]},"240":{"position":[[65,12]]},"242":{"position":[[75,11]]},"244":{"position":[[61,12]]},"246":{"position":[[75,11]]},"248":{"position":[[65,12],[128,12]]},"250":{"position":[[75,11]]},"252":{"position":[[65,12],[133,12]]},"254":{"position":[[75,11]]},"256":{"position":[[64,12]]},"258":{"position":[[75,11]]},"260":{"position":[[64,12]]},"262":{"position":[[75,11]]},"266":{"position":[[67,12]]},"268":{"position":[[75,11]]},"270":{"position":[[68,12]]},"272":{"position":[[75,11]]},"274":{"position":[[65,12],[133,12]]},"346":{"position":[[75,11]]},"348":{"position":[[62,12]]},"354":{"position":[[505,11],[622,11],[676,11],[727,11],[782,11],[841,11],[895,11],[944,11],[1139,11]]},"362":{"position":[[1464,12]]}},"keywords":{}}],["middy/input",{"_index":645,"title":{},"content":{"34":{"position":[[128,13]]},"37":{"position":[[179,13]]},"43":{"position":[[128,13]]},"91":{"position":[[128,13]]},"102":{"position":[[196,13]]},"146":{"position":[[128,13]]},"276":{"position":[[75,12]]},"278":{"position":[[62,13],[353,13]]}},"keywords":{}}],["middy/rd",{"_index":422,"title":{},"content":{"13":{"position":[[539,10]]},"15":{"position":[[746,10]]},"103":{"position":[[106,11]]},"285":{"position":[[75,10]]},"287":{"position":[[54,11]]}},"keywords":{}}],["middy/s3",{"_index":425,"title":{},"content":{"13":{"position":[[582,9]]},"15":{"position":[[470,9],[538,9],[789,9]]},"104":{"position":[[150,11]]},"128":{"position":[[71,10]]},"290":{"position":[[75,9]]},"293":{"position":[[85,10]]},"294":{"position":[[85,10]]},"302":{"position":[[75,9]]},"304":{"position":[[47,11]]},"354":{"position":[[994,9]]}},"keywords":{}}],["middy/secret",{"_index":753,"title":{},"content":{"103":{"position":[[163,15]]},"297":{"position":[[75,14]]},"299":{"position":[[59,15]]},"354":{"position":[[1039,14]]}},"keywords":{}}],["middy/sercret",{"_index":427,"title":{},"content":{"13":{"position":[[645,15]]},"15":{"position":[[852,15]]}},"keywords":{}}],["middy/servic",{"_index":430,"title":{},"content":{"13":{"position":[[708,14]]},"15":{"position":[[915,14]]},"307":{"position":[[75,14]]},"309":{"position":[[61,15]]}},"keywords":{}}],["middy/sq",{"_index":813,"title":{},"content":{"139":{"position":[[131,11]]},"312":{"position":[[75,10]]},"314":{"position":[[53,11]]}},"keywords":{}}],["middy/ssm",{"_index":433,"title":{},"content":{"13":{"position":[[759,10]]},"15":{"position":[[966,10]]},"103":{"position":[[214,12]]},"104":{"position":[[237,12]]},"326":{"position":[[75,10]]},"328":{"position":[[48,12],[543,12]]}},"keywords":{}}],["middy/ssmvalid",{"_index":2042,"title":{},"content":{"354":{"position":[[1071,19]]}},"keywords":{}}],["middy/st",{"_index":435,"title":{},"content":{"13":{"position":[[795,10]]},"15":{"position":[[1002,10]]},"103":{"position":[[253,12]]},"197":{"position":[[361,10]]},"202":{"position":[[357,10]]},"298":{"position":[[364,10]]},"303":{"position":[[340,10]]},"308":{"position":[[389,10]]},"317":{"position":[[75,10]]},"319":{"position":[[48,12]]},"327":{"position":[[324,10]]},"340":{"position":[[411,10]]}},"keywords":{}}],["middy/util",{"_index":51,"title":{},"content":{"2":{"position":[[238,13]]},"103":{"position":[[60,13]]},"104":{"position":[[60,13]]},"328":{"position":[[513,13]]},"474":{"position":[[600,13]]}},"keywords":{}}],["middy/valid",{"_index":158,"title":{},"content":{"5":{"position":[[428,18]]},"315":{"position":[[199,17]]},"348":{"position":[[115,18]]},"352":{"position":[[165,18]]},"358":{"position":[[75,16]]},"362":{"position":[[84,18],[800,18],[1517,18]]},"363":{"position":[[666,18]]},"364":{"position":[[98,18]]},"365":{"position":[[98,18]]},"466":{"position":[[618,18],[911,18]]}},"keywords":{}}],["middy/validator/transpil",{"_index":160,"title":{},"content":{"5":{"position":[[479,28]]},"362":{"position":[[135,28],[851,28],[1568,28]]},"364":{"position":[[166,28]]},"365":{"position":[[166,28]]},"466":{"position":[[698,28]]}},"keywords":{}}],["middy/validatorurlencodebodypars",{"_index":2043,"title":{},"content":{"354":{"position":[[1097,35]]}},"keywords":{}}],["middy/w",{"_index":420,"title":{},"content":{"13":{"position":[[494,9]]},"15":{"position":[[701,9]]},"31":{"position":[[71,10],[133,10],[182,10]]},"335":{"position":[[63,9]]},"337":{"position":[[71,10],[133,10]]},"339":{"position":[[75,9]]},"342":{"position":[[55,10]]},"343":{"position":[[55,10]]},"350":{"position":[[63,9]]},"352":{"position":[[60,10],[112,10]]}},"keywords":{}}],["middy/warmup",{"_index":1990,"title":{},"content":{"331":{"position":[[75,13]]},"354":{"position":[[1185,13]]}},"keywords":{}}],["middymiddi",{"_index":1896,"title":{},"content":{"322":{"position":[[660,10],[970,10]]}},"keywords":{}}],["millisecond",{"_index":1477,"title":{},"content":{"208":{"position":[[199,15]]}},"keywords":{}}],["mime",{"_index":1669,"title":{},"content":{"255":{"position":[[324,4]]}},"keywords":{}}],["mind",{"_index":1641,"title":{},"content":{"251":{"position":[[621,4],[812,4]]},"472":{"position":[[892,5]]}},"keywords":{}}],["minifi",{"_index":395,"title":{},"content":{"12":{"position":[[177,6]]}},"keywords":{}}],["minimum",{"_index":200,"title":{},"content":{"5":{"position":[[1381,8],[1439,8]]}},"keywords":{}}],["minlength",{"_index":193,"title":{},"content":{"5":{"position":[[1300,10],[1494,10]]}},"keywords":{}}],["misc",{"_index":1759,"title":{"280":{"position":[[0,5]]}},"content":{},"keywords":{}}],["miss",{"_index":31,"title":{},"content":{"1":{"position":[[131,4]]},"239":{"position":[[216,8]]},"362":{"position":[[540,7]]},"395":{"position":[[40,7]]},"404":{"position":[[20,7]]},"438":{"position":[[94,7]]}},"keywords":{}}],["missing.http",{"_index":1773,"title":{},"content":{"281":{"position":[[431,12]]}},"keywords":{}}],["mistak",{"_index":1312,"title":{},"content":{"179":{"position":[[139,8]]}},"keywords":{}}],["misus",{"_index":2213,"title":{},"content":{"420":{"position":[[52,6]]},"423":{"position":[[52,6]]}},"keywords":{}}],["mock",{"_index":319,"title":{},"content":{"7":{"position":[[784,5]]},"476":{"position":[[337,4]]}},"keywords":{}}],["mode",{"_index":454,"title":{},"content":{"15":{"position":[[256,5]]}},"keywords":{}}],["modif",{"_index":2300,"title":{},"content":{"475":{"position":[[843,12]]}},"keywords":{}}],["modifi",{"_index":1045,"title":{},"content":{"163":{"position":[[771,6]]},"188":{"position":[[678,8]]},"239":{"position":[[38,8]]},"398":{"position":[[452,9]]},"407":{"position":[[17,6]]},"410":{"position":[[0,8]]},"414":{"position":[[106,6]]},"416":{"position":[[17,6]]}},"keywords":{}}],["modul",{"_index":260,"title":{},"content":{"6":{"position":[[845,7]]},"15":{"position":[[425,7]]},"282":{"position":[[242,6]]},"355":{"position":[[630,7]]}},"keywords":{}}],["modular",{"_index":127,"title":{},"content":{"4":{"position":[[467,7]]}},"keywords":{}}],["module';const",{"_index":398,"title":{},"content":{"12":{"position":[[234,14]]}},"keywords":{}}],["module.export",{"_index":2136,"title":{},"content":{"369":{"position":[[130,14]]}},"keywords":{}}],["mond",{"_index":1570,"title":{},"content":{"229":{"position":[[409,6]]}},"keywords":{}}],["mondo",{"_index":1566,"title":{},"content":{"229":{"position":[[360,6]]}},"keywords":{}}],["mongodb",{"_index":1954,"title":{},"content":{"324":{"position":[[1191,7]]}},"keywords":{}}],["mongoos",{"_index":1952,"title":{},"content":{"324":{"position":[[1171,8]]}},"keywords":{}}],["mongoose.js@ematipico/middi",{"_index":1955,"title":{},"content":{"324":{"position":[[1225,27]]}},"keywords":{}}],["monitor",{"_index":1018,"title":{},"content":{"161":{"position":[[55,11]]}},"keywords":{}}],["month",{"_index":1069,"title":{},"content":{"166":{"position":[[47,5],[75,5],[179,7]]}},"keywords":{}}],["moos",{"_index":1741,"title":{},"content":{"274":{"position":[[644,7]]}},"keywords":{}}],["more",{"_index":956,"title":{"477":{"position":[[0,4]]}},"content":{"157":{"position":[[990,4]]},"160":{"position":[[873,6]]},"170":{"position":[[352,5]]},"179":{"position":[[588,4]]},"183":{"position":[[52,4],[545,4]]},"251":{"position":[[176,4]]},"298":{"position":[[957,4]]},"355":{"position":[[298,4],[445,4]]},"374":{"position":[[29,4]]},"391":{"position":[[48,4]]},"466":{"position":[[121,4]]},"477":{"position":[[0,4],[61,4]]},"478":{"position":[[996,4]]}},"keywords":{}}],["more.metr",{"_index":1174,"title":{},"content":{"170":{"position":[[590,12]]}},"keywords":{}}],["more.trac",{"_index":1166,"title":{},"content":{"170":{"position":[[406,11]]}},"keywords":{}}],["mostli",{"_index":229,"title":{},"content":{"6":{"position":[[108,6]]},"156":{"position":[[139,6]]}},"keywords":{}}],["move",{"_index":1002,"title":{},"content":{"160":{"position":[[139,5]]},"354":{"position":[[142,5],[197,5]]},"356":{"position":[[219,4]]}},"keywords":{}}],["mq",{"_index":787,"title":{"108":{"position":[[0,2]]}},"content":{"109":{"position":[[25,2]]}},"keywords":{}}],["ms",{"_index":509,"title":{},"content":{"21":{"position":[[366,5],[1313,2],[1361,2],[1410,2],[1462,2],[1514,2],[1561,2],[1612,2],[1650,2],[1670,2],[1707,2],[1753,2],[1789,2],[1834,2],[1854,2]]}},"keywords":{}}],["ms.settocontext",{"_index":1450,"title":{},"content":{"197":{"position":[[984,15]]},"202":{"position":[[979,15]]},"286":{"position":[[712,15]]},"298":{"position":[[1463,15]]},"303":{"position":[[956,15]]},"308":{"position":[[1006,15]]},"318":{"position":[[817,15]]},"327":{"position":[[989,15]]}},"keywords":{}}],["msk",{"_index":737,"title":{"92":{"position":[[25,5]]}},"content":{"93":{"position":[[25,3]]}},"keywords":{}}],["muffin",{"_index":1737,"title":{},"content":{"274":{"position":[[609,9]]}},"keywords":{}}],["multi",{"_index":1349,"title":{},"content":{"182":{"position":[[1145,5]]},"361":{"position":[[137,5]]}},"keywords":{}}],["multipart",{"_index":658,"title":{"249":{"position":[[5,9]]},"379":{"position":[[5,9]]},"412":{"position":[[5,9]]},"451":{"position":[[5,9]]}},"content":{"34":{"position":[[705,9]]},"37":{"position":[[756,9]]},"43":{"position":[[705,9]]},"91":{"position":[[705,9]]},"146":{"position":[[717,9]]},"250":{"position":[[87,9]]},"252":{"position":[[146,9]]},"281":{"position":[[711,9]]}},"keywords":{}}],["multipart/form",{"_index":1650,"title":{},"content":{"252":{"position":[[362,15]]},"281":{"position":[[787,14]]}},"keywords":{}}],["multipl",{"_index":947,"title":{"188":{"position":[[6,8]]}},"content":{"157":{"position":[[434,8]]},"183":{"position":[[663,8]]},"188":{"position":[[12,8]]},"265":{"position":[[400,8]]},"298":{"position":[[1020,8]]},"323":{"position":[[473,8]]},"394":{"position":[[375,8]]},"474":{"position":[[427,8]]}},"keywords":{}}],["multivaluequerystringparamet",{"_index":1772,"title":{},"content":{"281":{"position":[[369,31]]}},"keywords":{}}],["mutat",{"_index":2194,"title":{},"content":{"399":{"position":[[169,7]]}},"keywords":{}}],["myapplict",{"_index":1485,"title":{},"content":{"208":{"position":[[345,15]]}},"keywords":{}}],["mîddi",{"_index":1728,"title":{},"content":{"270":{"position":[[436,7]]}},"keywords":{}}],["n",{"_index":1449,"title":{},"content":{"197":{"position":[[969,2],[982,1]]},"202":{"position":[[964,2],[977,1]]},"286":{"position":[[697,2],[710,1]]},"298":{"position":[[1448,2],[1461,1]]},"303":{"position":[[941,2],[954,1]]},"308":{"position":[[991,2],[1004,1]]},"318":{"position":[[802,2],[815,1]]},"327":{"position":[[974,2],[987,1]]}},"keywords":{}}],["name",{"_index":89,"title":{},"content":{"2":{"position":[[824,4],[947,4]]},"21":{"position":[[2651,5],[2691,4],[2828,5]]},"161":{"position":[[452,4],[513,6]]},"167":{"position":[[1143,6]]},"173":{"position":[[255,4]]},"175":{"position":[[52,4]]},"177":{"position":[[103,4]]},"178":{"position":[[581,5],[698,4],[751,5],[900,4]]},"181":{"position":[[103,4]]},"194":{"position":[[214,6]]},"197":{"position":[[554,4]]},"202":{"position":[[550,4]]},"239":{"position":[[331,4]]},"270":{"position":[[335,5],[430,5]]},"277":{"position":[[394,5]]},"281":{"position":[[486,5]]},"286":{"position":[[281,4]]},"298":{"position":[[548,4],[690,4]]},"303":{"position":[[533,4]]},"308":{"position":[[582,4]]},"318":{"position":[[393,4]]},"327":{"position":[[513,4]]},"355":{"position":[[72,5],[225,5]]},"362":{"position":[[1758,8],[1791,5]]}},"keywords":{}}],["namemiddlewar",{"_index":2296,"title":{},"content":{"475":{"position":[[367,14],[748,14]]}},"keywords":{}}],["namemiddlewareaft",{"_index":2298,"title":{},"content":{"475":{"position":[[513,19],[677,20]]}},"keywords":{}}],["namemiddlewarebefor",{"_index":2297,"title":{},"content":{"475":{"position":[[451,20],[648,21]]}},"keywords":{}}],["namemiddlewareonerror",{"_index":2299,"title":{},"content":{"475":{"position":[[574,21],[707,21]]}},"keywords":{}}],["nameoncard",{"_index":171,"title":{},"content":{"5":{"position":[[814,11],[1541,11]]}},"keywords":{}}],["names/path",{"_index":1965,"title":{},"content":{"327":{"position":[[543,11]]}},"keywords":{}}],["namespac",{"_index":1318,"title":{},"content":{"179":{"position":[[475,10]]},"181":{"position":[[221,9]]},"182":{"position":[[146,10]]},"207":{"position":[[0,9],[85,9]]},"208":{"position":[[334,10]]},"354":{"position":[[95,10]]}},"keywords":{}}],["namespacenam",{"_index":1859,"title":{},"content":{"309":{"position":[[312,14]]}},"keywords":{}}],["nativ",{"_index":334,"title":{},"content":{"7":{"position":[[1053,6],[1095,6],[1133,6],[1180,6],[1211,6]]},"224":{"position":[[111,6]]}},"keywords":{}}],["natur",{"_index":2277,"title":{},"content":{"474":{"position":[[387,6]]}},"keywords":{}}],["near",{"_index":2181,"title":{},"content":{"398":{"position":[[300,4]]}},"keywords":{}}],["necessari",{"_index":241,"title":{},"content":{"6":{"position":[[381,9]]}},"keywords":{}}],["necessarili",{"_index":2268,"title":{},"content":{"473":{"position":[[103,11]]}},"keywords":{}}],["need",{"_index":47,"title":{"103":{"position":[[0,4]]}},"content":{"2":{"position":[[169,4],[1110,4],[1159,4]]},"5":{"position":[[681,4]]},"151":{"position":[[179,4]]},"153":{"position":[[36,4]]},"156":{"position":[[458,4]]},"160":{"position":[[580,7]]},"167":{"position":[[390,4],[1248,4]]},"179":{"position":[[285,4]]},"182":{"position":[[1006,4]]},"189":{"position":[[65,4]]},"211":{"position":[[160,7]]},"322":{"position":[[778,4]]},"354":{"position":[[286,6],[384,4]]},"359":{"position":[[929,4]]},"362":{"position":[[1964,4]]},"363":{"position":[[136,5]]},"369":{"position":[[81,7]]},"395":{"position":[[154,4],[219,7]]},"434":{"position":[[13,4]]},"473":{"position":[[81,4],[159,4]]},"474":{"position":[[325,7]]},"475":{"position":[[295,4]]}},"keywords":{}}],["need.attach",{"_index":935,"title":{},"content":{"156":{"position":[[422,11]]}},"keywords":{}}],["neededwil",{"_index":2203,"title":{},"content":{"409":{"position":[[38,10]]}},"keywords":{}}],["negoti",{"_index":647,"title":{"226":{"position":[[13,11]]},"265":{"position":[[13,12]]},"373":{"position":[[13,12]]},"406":{"position":[[13,12]]},"445":{"position":[[13,12]]}},"content":{"34":{"position":[[223,12]]},"37":{"position":[[274,12]]},"43":{"position":[[223,12]]},"91":{"position":[[223,12]]},"146":{"position":[[223,12]]},"220":{"position":[[88,12]]},"221":{"position":[[88,12]]},"227":{"position":[[95,11]]},"228":{"position":[[906,11]]},"229":{"position":[[88,12]]},"281":{"position":[[124,12],[196,11]]}},"keywords":{}}],["negotiationhttperrorhandl",{"_index":2033,"title":{},"content":{"354":{"position":[[642,27]]}},"keywords":{}}],["nest",{"_index":1769,"title":{},"content":{"281":{"position":[[97,6]]},"385":{"position":[[91,6]]}},"keywords":{}}],["net",{"_index":1056,"title":{},"content":{"164":{"position":[[311,4]]}},"keywords":{}}],["never",{"_index":1448,"title":{},"content":{"197":{"position":[[956,5]]},"202":{"position":[[951,5]]},"286":{"position":[[684,5]]},"298":{"position":[[1435,5]]},"303":{"position":[[928,5]]},"308":{"position":[[978,5]]},"318":{"position":[[789,5]]},"327":{"position":[[961,5]]}},"keywords":{}}],["new",{"_index":55,"title":{},"content":{"2":{"position":[[279,3],[943,3]]},"22":{"position":[[227,3]]},"148":{"position":[[413,3]]},"156":{"position":[[318,3]]},"160":{"position":[[917,3]]},"174":{"position":[[125,3]]},"178":{"position":[[198,3],[290,3]]},"179":{"position":[[422,3]]},"182":{"position":[[132,3]]},"186":{"position":[[275,3],[706,3]]},"188":{"position":[[335,3]]},"194":{"position":[[102,3],[152,3],[273,3]]},"232":{"position":[[1513,3]]},"244":{"position":[[142,3]]},"355":{"position":[[282,3],[679,3]]},"356":{"position":[[259,3]]},"367":{"position":[[132,3],[254,3]]},"374":{"position":[[6,3]]},"375":{"position":[[130,3]]},"386":{"position":[[0,3]]},"388":{"position":[[0,3]]},"393":{"position":[[0,3]]},"397":{"position":[[0,3]]},"398":{"position":[[644,3],[889,3]]},"405":{"position":[[0,5]]},"415":{"position":[[0,5]]},"416":{"position":[[107,3]]},"419":{"position":[[7,3]]},"424":{"position":[[0,5]]},"429":{"position":[[103,3]]},"431":{"position":[[0,5]]},"432":{"position":[[0,5]]},"433":{"position":[[0,5]]},"438":{"position":[[71,3]]},"444":{"position":[[58,3]]},"451":{"position":[[4,3]]}},"keywords":{}}],["new/2021/11/aw",{"_index":2220,"title":{},"content":{"426":{"position":[[77,15]]}},"keywords":{}}],["newkey",{"_index":94,"title":{},"content":{"2":{"position":[[1051,7]]}},"keywords":{}}],["next",{"_index":924,"title":{},"content":{"156":{"position":[[23,4]]},"160":{"position":[[374,4]]},"166":{"position":[[194,4]]},"247":{"position":[[241,4]]},"251":{"position":[[426,4]]},"273":{"position":[[134,4]]}},"keywords":{}}],["next(err",{"_index":2128,"title":{},"content":{"367":{"position":[[197,9]]}},"keywords":{}}],["nextrotationd",{"_index":1835,"title":{},"content":{"298":{"position":[[846,17]]}},"keywords":{}}],["nextrotationdate/lastrotationdate/lastchangedd",{"_index":1834,"title":{},"content":{"298":{"position":[[768,50]]}},"keywords":{}}],["nine",{"_index":1076,"title":{},"content":{"166":{"position":[[170,4]]}},"keywords":{}}],["nmessag",{"_index":1575,"title":{},"content":{"229":{"position":[[610,10]]}},"keywords":{}}],["node",{"_index":147,"title":{},"content":{"5":{"position":[[193,4],[254,4]]},"13":{"position":[[31,4],[166,4]]},"372":{"position":[[33,4]]},"474":{"position":[[397,4]]}},"keywords":{}}],["node.j",{"_index":18,"title":{"356":{"position":[[0,7],[34,7]]}},"content":{"0":{"position":[[266,7]]},"4":{"position":[[101,8]]},"164":{"position":[[210,7]]},"166":{"position":[[307,7]]},"170":{"position":[[468,7]]},"355":{"position":[[324,7]]},"356":{"position":[[40,7],[171,7],[227,7]]}},"keywords":{}}],["node.js.auto",{"_index":1291,"title":{},"content":{"175":{"position":[[340,12]]}},"keywords":{}}],["node:crypto",{"_index":1375,"title":{},"content":{"186":{"position":[[60,14]]}},"keywords":{}}],["node:fs/promis",{"_index":2119,"title":{},"content":{"364":{"position":[[25,18]]},"365":{"position":[[25,18]]}},"keywords":{}}],["node:path",{"_index":447,"title":{},"content":{"15":{"position":[[93,11]]}},"keywords":{}}],["node:url",{"_index":449,"title":{},"content":{"15":{"position":[[135,10]]}},"keywords":{}}],["node:zlib",{"_index":1521,"title":{},"content":{"220":{"position":[[190,11]]},"221":{"position":[[190,11]]}},"keywords":{}}],["node_modul",{"_index":276,"title":{"7":{"position":[[6,12]]}},"content":{"7":{"position":[[6,12],[158,12]]}},"keywords":{}}],["node_modules/.bin/babel",{"_index":471,"title":{},"content":{"17":{"position":[[50,23]]}},"keywords":{}}],["node_modules/.bin/esbuild",{"_index":390,"title":{},"content":{"12":{"position":[[84,25]]},"18":{"position":[[17,25]]}},"keywords":{}}],["node_modules/.bin/rollup",{"_index":407,"title":{},"content":{"13":{"position":[[68,24]]}},"keywords":{}}],["node_modules/.bin/spack",{"_index":439,"title":{},"content":{"14":{"position":[[28,23]]}},"keywords":{}}],["node_modules/.bin/swc",{"_index":483,"title":{},"content":{"19":{"position":[[28,21]]}},"keywords":{}}],["node_modules/.bin/tsc",{"_index":370,"title":{},"content":{"10":{"position":[[20,21]]}},"keywords":{}}],["node_modules/.bin/webpack",{"_index":444,"title":{},"content":{"15":{"position":[[29,25]]}},"keywords":{}}],["nodej",{"_index":460,"title":{},"content":{"15":{"position":[[418,6]]},"166":{"position":[[278,6]]},"219":{"position":[[396,6]]}},"keywords":{}}],["noderesolv",{"_index":409,"title":{},"content":{"13":{"position":[[131,11],[243,14]]}},"keywords":{}}],["non",{"_index":1619,"title":{},"content":{"243":{"position":[[211,3]]},"375":{"position":[[154,3]]}},"keywords":{}}],["none",{"_index":1560,"title":{},"content":{"228":{"position":[[953,4]]},"269":{"position":[[0,4]]},"471":{"position":[[0,4]]}},"keywords":{}}],["normal",{"_index":653,"title":{"222":{"position":[[6,10]]},"234":{"position":[[11,10]]},"237":{"position":[[12,10]]},"355":{"position":[[7,13],[36,11]]},"376":{"position":[[11,11]]},"377":{"position":[[12,11]]},"387":{"position":[[7,11]]},"404":{"position":[[6,11]]},"409":{"position":[[11,11]]},"410":{"position":[[12,11]]},"421":{"position":[[7,11]]},"443":{"position":[[6,11]]},"448":{"position":[[11,11]]},"449":{"position":[[12,11]]}},"content":{"34":{"position":[[487,11],[562,11]]},"37":{"position":[[538,11],[613,11]]},"43":{"position":[[487,11],[562,11]]},"55":{"position":[[84,11]]},"64":{"position":[[84,11]]},"73":{"position":[[84,11]]},"82":{"position":[[84,11]]},"91":{"position":[[487,11],[562,11]]},"94":{"position":[[84,11]]},"97":{"position":[[84,11]]},"100":{"position":[[84,11]]},"110":{"position":[[84,11]]},"113":{"position":[[84,11]]},"116":{"position":[[84,11]]},"119":{"position":[[84,11]]},"122":{"position":[[84,11]]},"134":{"position":[[84,11]]},"139":{"position":[[84,11]]},"146":{"position":[[487,11],[574,11]]},"223":{"position":[[88,10]]},"225":{"position":[[74,11]]},"229":{"position":[[154,11]]},"235":{"position":[[93,10]]},"236":{"position":[[83,11]]},"238":{"position":[[94,10]]},"239":{"position":[[106,10]]},"240":{"position":[[85,11]]},"248":{"position":[[85,11]]},"252":{"position":[[85,11]]},"274":{"position":[[85,11]]},"281":{"position":[[6,11],[85,11],[281,11],[293,10],[451,11],[463,10]]},"355":{"position":[[49,10]]},"421":{"position":[[30,11]]},"425":{"position":[[30,11]]}},"keywords":{}}],["normalizeheaderkey",{"_index":1615,"title":{},"content":{"239":{"position":[[252,21]]}},"keywords":{}}],["normalizerespons",{"_index":2232,"title":{},"content":{"438":{"position":[[0,17]]}},"keywords":{}}],["normalizerhttpheadernorm",{"_index":2035,"title":{},"content":{"354":{"position":[[745,30]]}},"keywords":{}}],["normalizerhttpmultipartbodypars",{"_index":2036,"title":{},"content":{"354":{"position":[[801,33]]}},"keywords":{}}],["normalizersecretsmanag",{"_index":2040,"title":{},"content":{"354":{"position":[[1008,24]]}},"keywords":{}}],["notabl",{"_index":2170,"title":{"397":{"position":[[0,7]]},"436":{"position":[[0,7]]}},"content":{},"keywords":{}}],["notaccept",{"_index":1557,"title":{},"content":{"228":{"position":[[867,13]]}},"keywords":{}}],["note",{"_index":892,"title":{"434":{"position":[[0,6]]},"471":{"position":[[0,6]]}},"content":{"153":{"position":[[183,5]]},"197":{"position":[[1065,6]]},"202":{"position":[[1060,6]]},"219":{"position":[[363,6]]},"251":{"position":[[446,5]]},"286":{"position":[[793,6]]},"291":{"position":[[683,6]]},"298":{"position":[[1540,6]]},"303":{"position":[[1037,6]]},"308":{"position":[[1087,6]]},"318":{"position":[[898,6]]},"327":{"position":[[1070,6]]},"340":{"position":[[694,6]]},"347":{"position":[[364,6]]},"351":{"position":[[239,6]]},"359":{"position":[[791,6]]},"362":{"position":[[514,4]]},"478":{"position":[[719,5]]}},"keywords":{}}],["notic",{"_index":184,"title":{},"content":{"5":{"position":[[1025,6]]},"21":{"position":[[2603,6]]},"163":{"position":[[554,6]]},"355":{"position":[[142,7]]}},"keywords":{}}],["now",{"_index":584,"title":{"356":{"position":[[18,3],[50,3]]}},"content":{"21":{"position":[[2270,3]]},"385":{"position":[[0,3]]},"397":{"position":[[104,3]]},"398":{"position":[[489,3],[603,3]]},"399":{"position":[[18,3],[147,3]]},"408":{"position":[[93,3]]},"409":{"position":[[49,3]]},"438":{"position":[[18,3]]},"456":{"position":[[0,3]]},"466":{"position":[[246,3]]}},"keywords":{}}],["npm",{"_index":369,"title":{},"content":{"10":{"position":[[0,3]]},"12":{"position":[[0,3]]},"13":{"position":[[0,3]]},"14":{"position":[[0,3]]},"15":{"position":[[0,3]]},"17":{"position":[[0,3]]},"18":{"position":[[0,3]]},"19":{"position":[[0,3]]},"155":{"position":[[30,4],[47,3],[215,3]]},"172":{"position":[[12,3]]},"176":{"position":[[12,3]]},"180":{"position":[[12,3]]},"184":{"position":[[12,3]]},"196":{"position":[[39,4],[56,3],[92,3]]},"201":{"position":[[39,4],[56,3],[91,3]]},"206":{"position":[[39,4],[56,3]]},"210":{"position":[[39,4],[56,3]]},"214":{"position":[[39,4],[56,3]]},"218":{"position":[[39,4],[56,3]]},"223":{"position":[[39,4],[56,3]]},"227":{"position":[[39,4],[56,3]]},"231":{"position":[[39,4],[56,3]]},"235":{"position":[[39,4],[56,3]]},"238":{"position":[[39,4],[56,3]]},"242":{"position":[[39,4],[56,3]]},"246":{"position":[[39,4],[56,3]]},"250":{"position":[[39,4],[56,3]]},"254":{"position":[[39,4],[56,3]]},"258":{"position":[[39,4],[56,3]]},"262":{"position":[[39,4],[56,3]]},"268":{"position":[[39,4],[56,3]]},"272":{"position":[[39,4],[56,3]]},"276":{"position":[[39,4],[56,3]]},"285":{"position":[[39,4],[56,3],[93,3]]},"290":{"position":[[39,4],[56,3],[101,3]]},"297":{"position":[[39,4],[56,3],[98,3]]},"302":{"position":[[39,4],[56,3],[85,3]]},"307":{"position":[[39,4],[56,3],[100,3]]},"312":{"position":[[39,4],[56,3],[134,3]]},"317":{"position":[[39,4],[56,3],[86,3]]},"326":{"position":[[39,4],[56,3],[86,3]]},"331":{"position":[[39,4],[56,3]]},"335":{"position":[[39,4],[44,3]]},"339":{"position":[[39,4],[56,3],[94,3]]},"346":{"position":[[39,4],[56,3]]},"350":{"position":[[39,4],[44,3]]},"354":{"position":[[74,3]]},"358":{"position":[[39,4],[56,3],[92,3]]}},"keywords":{}}],["npmignor",{"_index":362,"title":{},"content":{"7":{"position":[[1507,10]]}},"keywords":{}}],["npmyarnpnpm",{"_index":919,"title":{},"content":{"155":{"position":[[35,11],[203,11]]},"172":{"position":[[0,11]]},"176":{"position":[[0,11]]},"180":{"position":[[0,11]]},"184":{"position":[[0,11]]},"196":{"position":[[44,11]]},"201":{"position":[[44,11]]},"206":{"position":[[44,11]]},"210":{"position":[[44,11]]},"214":{"position":[[44,11]]},"218":{"position":[[44,11]]},"223":{"position":[[44,11]]},"227":{"position":[[44,11]]},"231":{"position":[[44,11]]},"235":{"position":[[44,11]]},"238":{"position":[[44,11]]},"242":{"position":[[44,11]]},"246":{"position":[[44,11]]},"250":{"position":[[44,11]]},"254":{"position":[[44,11]]},"258":{"position":[[44,11]]},"262":{"position":[[44,11]]},"268":{"position":[[44,11]]},"272":{"position":[[44,11]]},"276":{"position":[[44,11]]},"285":{"position":[[44,11]]},"290":{"position":[[44,11]]},"297":{"position":[[44,11]]},"302":{"position":[[44,11]]},"307":{"position":[[44,11]]},"312":{"position":[[44,11]]},"317":{"position":[[44,11]]},"326":{"position":[[44,11]]},"331":{"position":[[44,11]]},"339":{"position":[[44,11]]},"346":{"position":[[44,11]]},"358":{"position":[[44,11]]}},"keywords":{}}],["null",{"_index":1597,"title":{},"content":{"232":{"position":[[1329,5]]},"243":{"position":[[198,5]]},"362":{"position":[[1201,5]]}},"keywords":{}}],["null)requesthead",{"_index":1592,"title":{},"content":{"232":{"position":[[1012,19]]}},"keywords":{}}],["number",{"_index":207,"title":{},"content":{"5":{"position":[[1589,8]]},"173":{"position":[[354,9],[364,6]]},"197":{"position":[[859,8]]},"202":{"position":[[854,8]]},"224":{"position":[[61,7],[129,8],[187,7]]},"286":{"position":[[587,8]]},"298":{"position":[[1338,8]]},"303":{"position":[[831,8]]},"308":{"position":[[881,8]]},"318":{"position":[[692,8]]},"327":{"position":[[864,8]]},"362":{"position":[[1091,8]]}},"keywords":{}}],["number.parseint((process.hrtime.bigint",{"_index":506,"title":{},"content":{"21":{"position":[[289,40]]}},"keywords":{}}],["o",{"_index":2107,"title":{},"content":{"363":{"position":[[392,1],[543,1]]}},"keywords":{}}],["obj",{"_index":63,"title":{},"content":{"2":{"position":[[381,5]]}},"keywords":{}}],["obj[prop",{"_index":68,"title":{},"content":{"2":{"position":[[455,9]]}},"keywords":{}}],["object",{"_index":190,"title":{"126":{"position":[[3,6]]},"289":{"position":[[3,6]]},"388":{"position":[[3,6]]},"422":{"position":[[3,6]]},"460":{"position":[[3,6]]}},"content":{"5":{"position":[[1202,9],[1240,9],[1889,6]]},"13":{"position":[[592,6]]},"15":{"position":[[480,6],[548,6],[799,6]]},"127":{"position":[[16,7],[32,6],[58,7],[74,6]]},"128":{"position":[[82,6]]},"173":{"position":[[580,8],[604,6]]},"177":{"position":[[474,8],[498,6]]},"181":{"position":[[397,8],[421,6]]},"182":{"position":[[479,6],[919,6]]},"185":{"position":[[184,6]]},"197":{"position":[[10,8],[185,8],[509,8]]},"202":{"position":[[10,8],[182,8],[505,8]]},"215":{"position":[[116,6]]},"219":{"position":[[3,8],[70,8],[128,8]]},"239":{"position":[[160,8]]},"251":{"position":[[7,8]]},"264":{"position":[[147,7],[195,7],[281,6],[343,6]]},"277":{"position":[[141,6],[293,8]]},"281":{"position":[[335,6],[620,7],[1263,7]]},"282":{"position":[[433,7]]},"283":{"position":[[201,6],[236,6]]},"286":{"position":[[10,8],[161,8],[236,8]]},"290":{"position":[[85,6]]},"291":{"position":[[52,6],[115,8],[269,8],[874,6]]},"293":{"position":[[96,6]]},"294":{"position":[[96,6]]},"298":{"position":[[10,8],[201,8],[503,8]]},"303":{"position":[[10,8],[171,8],[488,8]]},"308":{"position":[[10,8],[206,8],[537,8]]},"318":{"position":[[10,8],[167,8],[348,8]]},"324":{"position":[[1012,7]]},"327":{"position":[[10,8],[168,8],[468,8]]},"328":{"position":[[285,6],[863,6]]},"332":{"position":[[47,6],[209,6]]},"340":{"position":[[10,8],[221,8]]},"347":{"position":[[67,8]]},"351":{"position":[[63,8]]},"359":{"position":[[744,8]]},"360":{"position":[[145,8],[195,8]]},"362":{"position":[[247,9],[682,6],[987,9],[1059,8],[1235,6],[1680,9],[1738,9]]},"388":{"position":[[42,6]]},"438":{"position":[[75,6]]},"472":{"position":[[139,7],[195,6]]},"474":{"position":[[55,6]]},"475":{"position":[[38,6]]}},"keywords":{}}],["object.assign(request.context",{"_index":90,"title":{},"content":{"2":{"position":[[829,30],[952,30],[1180,30]]},"328":{"position":[[1110,30]]},"474":{"position":[[1424,30]]}},"keywords":{}}],["object.assign(request.intern",{"_index":2290,"title":{},"content":{"474":{"position":[[1285,31]]}},"keywords":{}}],["object.http",{"_index":1778,"title":{},"content":{"281":{"position":[[837,11]]}},"keywords":{}}],["object.keys(options.fetchdata",{"_index":2284,"title":{},"content":{"474":{"position":[[940,31]]}},"keywords":{}}],["object.valid",{"_index":1310,"title":{},"content":{"179":{"position":[[74,17]]}},"keywords":{}}],["objectajvopt",{"_index":2081,"title":{},"content":{"360":{"position":[[178,16]]}},"keywords":{}}],["objectawscontext",{"_index":1742,"title":{},"content":{"277":{"position":[[72,16]]}},"keywords":{}}],["objects@marcosantonocito/middi",{"_index":1958,"title":{},"content":{"324":{"position":[[1324,30]]}},"keywords":{}}],["occur",{"_index":1621,"title":{},"content":{"243":{"position":[[255,5]]}},"keywords":{}}],["offici",{"_index":1147,"title":{"279":{"position":[[0,8]]}},"content":{"168":{"position":[[85,8]]},"251":{"position":[[149,8]]}},"keywords":{}}],["ofhttperrorhandler.http",{"_index":1777,"title":{},"content":{"281":{"position":[[687,23]]}},"keywords":{}}],["omit",{"_index":1750,"title":{},"content":{"277":{"position":[[455,7]]},"385":{"position":[[76,7]]},"419":{"position":[[37,4]]}},"keywords":{}}],["omitted***replac",{"_index":1751,"title":{},"content":{"277":{"position":[[485,21]]}},"keywords":{}}],["on",{"_index":224,"title":{},"content":{"6":{"position":[[0,3]]},"163":{"position":[[673,3]]},"164":{"position":[[25,3]]},"166":{"position":[[67,3]]},"174":{"position":[[2441,4]]},"179":{"position":[[370,3]]},"182":{"position":[[1284,3]]},"228":{"position":[[928,3]]},"323":{"position":[[466,3]]},"347":{"position":[[104,3]]},"359":{"position":[[807,3]]},"363":{"position":[[131,4]]},"394":{"position":[[231,3]]},"473":{"position":[[182,3]]}},"keywords":{}}],["onc",{"_index":1020,"title":{},"content":{"161":{"position":[[183,4]]},"183":{"position":[[62,4],[555,4]]}},"keywords":{}}],["oneof",{"_index":685,"title":{},"content":{"34":{"position":[[1740,5],[1874,5]]},"37":{"position":[[1865,5],[1999,5]]},"43":{"position":[[1740,5],[1874,5]]},"91":{"position":[[1765,5],[1899,5]]},"146":{"position":[[1752,5],[1886,5]]}},"keywords":{}}],["onerror",{"_index":894,"title":{},"content":{"153":{"position":[[281,8]]},"157":{"position":[[974,9]]},"160":{"position":[[213,8],[263,7]]},"161":{"position":[[410,7]]},"367":{"position":[[158,7],[280,7]]},"385":{"position":[[40,7]]},"398":{"position":[[0,7],[195,7]]},"407":{"position":[[0,7]]},"408":{"position":[[102,7]]},"416":{"position":[[0,7]]},"472":{"position":[[225,7],[799,8]]},"473":{"position":[[228,9]]},"475":{"position":[[277,7],[698,8]]}},"keywords":{}}],["onerror(async",{"_index":2273,"title":{},"content":{"473":{"position":[[656,14]]}},"keywords":{}}],["onerrormethod",{"_index":2274,"title":{},"content":{"473":{"position":[[804,14]]}},"keywords":{}}],["op.set",{"_index":1122,"title":{},"content":{"167":{"position":[[669,6]]}},"keywords":{}}],["open",{"_index":809,"title":{},"content":{"136":{"position":[[89,4]]},"152":{"position":[[30,4]]},"159":{"position":[[237,4]]}},"keywords":{}}],["oper",{"_index":791,"title":{},"content":{"118":{"position":[[38,10]]},"183":{"position":[[480,9],[603,10],[726,10]]}},"keywords":{}}],["opinion",{"_index":1167,"title":{},"content":{"170":{"position":[[423,11]]}},"keywords":{}}],["opt",{"_index":499,"title":{},"content":{"21":{"position":[[76,5],[139,7]]},"22":{"position":[[107,5],[161,7]]},"369":{"position":[[147,6],[436,7]]},"466":{"position":[[109,6]]},"472":{"position":[[315,6],[361,7]]},"474":{"position":[[783,5],[834,7]]},"475":{"position":[[384,5],[435,7]]}},"keywords":{}}],["optim",{"_index":278,"title":{},"content":{"7":{"position":[[42,7]]},"322":{"position":[[148,9]]}},"keywords":{}}],["option",{"_index":906,"title":{"173":{"position":[[0,8]]},"177":{"position":[[0,8]]},"181":{"position":[[0,8]]},"185":{"position":[[0,8]]},"197":{"position":[[0,8]]},"202":{"position":[[0,8]]},"207":{"position":[[0,8]]},"211":{"position":[[0,8]]},"215":{"position":[[0,8]]},"219":{"position":[[0,8]]},"224":{"position":[[0,8]]},"228":{"position":[[0,8]]},"232":{"position":[[0,8]]},"239":{"position":[[0,8]]},"243":{"position":[[0,8]]},"247":{"position":[[0,8]]},"251":{"position":[[0,8]]},"255":{"position":[[0,8]]},"259":{"position":[[0,8]]},"269":{"position":[[0,8]]},"273":{"position":[[0,8]]},"277":{"position":[[0,8]]},"286":{"position":[[0,8]]},"291":{"position":[[0,8]]},"298":{"position":[[0,8]]},"303":{"position":[[0,8]]},"308":{"position":[[0,8]]},"313":{"position":[[0,8]]},"318":{"position":[[0,8]]},"327":{"position":[[0,8]]},"332":{"position":[[0,8]]},"336":{"position":[[0,8]]},"340":{"position":[[0,8]]},"347":{"position":[[0,8]]},"351":{"position":[[0,8]]},"359":{"position":[[0,8]]}},"content":{"153":{"position":[[826,9]]},"167":{"position":[[929,7]]},"173":{"position":[[40,8],[63,9],[504,8],[589,11],[655,11],[750,11]]},"177":{"position":[[40,8],[63,9],[398,8],[483,11],[556,11]]},"181":{"position":[[40,8],[63,9],[319,8],[406,11],[483,11],[598,11]]},"185":{"position":[[33,8],[158,11]]},"189":{"position":[[1052,9]]},"197":{"position":[[215,7]]},"202":{"position":[[212,7]]},"207":{"position":[[19,11],[216,11]]},"211":{"position":[[205,8]]},"219":{"position":[[226,11]]},"232":{"position":[[19,11],[131,11],[287,11],[377,11],[493,9],[503,11],[635,11],[715,11],[854,11],[944,11],[1041,11],[1140,11],[1237,11],[1300,9]]},"239":{"position":[[17,11],[169,11],[285,11]]},"247":{"position":[[19,11],[141,11]]},"251":{"position":[[16,11],[326,11]]},"255":{"position":[[266,7]]},"259":{"position":[[26,11]]},"263":{"position":[[374,10],[385,6]]},"265":{"position":[[382,7]]},"273":{"position":[[34,11]]},"286":{"position":[[170,11],[182,7]]},"291":{"position":[[278,11],[290,7],[364,11],[463,11]]},"298":{"position":[[210,11],[222,7],[309,11],[418,11]]},"303":{"position":[[201,7]]},"308":{"position":[[236,7]]},"313":{"position":[[18,11]]},"318":{"position":[[176,11],[188,7],[263,11]]},"319":{"position":[[312,8]]},"327":{"position":[[177,11],[189,7],[265,11],[378,11]]},"340":{"position":[[251,7]]},"347":{"position":[[142,7]]},"358":{"position":[[125,9]]},"359":{"position":[[602,6]]},"360":{"position":[[225,7]]},"362":{"position":[[1870,7]]},"369":{"position":[[411,7]]},"374":{"position":[[10,7]]},"375":{"position":[[134,6]]},"383":{"position":[[16,7],[72,7]]},"391":{"position":[[9,6],[53,7]]},"409":{"position":[[0,6]]},"414":{"position":[[16,6]]},"416":{"position":[[82,7]]},"419":{"position":[[11,6]]},"420":{"position":[[20,6]]},"423":{"position":[[20,6]]},"427":{"position":[[20,6]]},"429":{"position":[[107,7]]},"451":{"position":[[8,6]]},"466":{"position":[[180,7],[425,6]]},"472":{"position":[[336,7]]},"474":{"position":[[809,7]]},"475":{"position":[[410,7]]}},"keywords":{}}],["option.origin",{"_index":1586,"title":{},"content":{"232":{"position":[[612,13]]}},"keywords":{}}],["option1",{"_index":2265,"title":{},"content":{"472":{"position":[[1190,8]]}},"keywords":{}}],["option2",{"_index":2266,"title":{},"content":{"472":{"position":[[1206,8]]}},"keywords":{}}],["options.calculatecacheid(request.ev",{"_index":909,"title":{},"content":{"153":{"position":[[922,39]]},"189":{"position":[[1148,39]]},"369":{"position":[[543,39]]}},"keywords":{}}],["options.charset",{"_index":1636,"title":{},"content":{"251":{"position":[[210,15]]}},"keywords":{}}],["options.fetchdata[internalkey]).then",{"_index":2286,"title":{},"content":{"474":{"position":[[1009,37]]}},"keywords":{}}],["options.getvalue(cachekey",{"_index":2142,"title":{},"content":{"369":{"position":[[606,26]]}},"keywords":{}}],["options.settocontext",{"_index":2291,"title":{},"content":{"474":{"position":[[1327,22]]}},"keywords":{}}],["options.setvalue(request.internal.cachekey",{"_index":2144,"title":{},"content":{"369":{"position":[[765,43]]}},"keywords":{}}],["options.storage.hasownproperty(cachekey",{"_index":910,"title":{},"content":{"153":{"position":[[965,42]]},"189":{"position":[[1191,42]]}},"keywords":{}}],["options.storage[cachekey",{"_index":912,"title":{},"content":{"153":{"position":[[1091,25],[1221,25]]},"189":{"position":[[1392,25],[1522,25]]}},"keywords":{}}],["order",{"_index":847,"title":{"163":{"position":[[10,6]]}},"content":{"151":{"position":[[210,5]]},"160":{"position":[[241,5]]},"161":{"position":[[136,5]]},"163":{"position":[[409,5],[623,6]]},"182":{"position":[[191,8]]},"219":{"position":[[270,6]]},"265":{"position":[[131,6],[439,5]]},"324":{"position":[[488,5]]},"398":{"position":[[25,5]]},"408":{"position":[[131,6]]},"472":{"position":[[28,5]]}},"keywords":{}}],["organ",{"_index":1061,"title":{},"content":{"165":{"position":[[55,12]]},"166":{"position":[[760,12]]}},"keywords":{}}],["organization'",{"_index":1279,"title":{},"content":{"174":{"position":[[2534,14]]}},"keywords":{}}],["organization’",{"_index":1193,"title":{},"content":{"171":{"position":[[456,14]]}},"keywords":{}}],["origin",{"_index":934,"title":{},"content":{"156":{"position":[[348,8]]},"232":{"position":[[564,7],[594,6],[604,7],[647,6],[747,8],[769,6],[1715,9]]},"233":{"position":[[265,9]]},"359":{"position":[[1010,8]]}},"keywords":{}}],["originalhandl",{"_index":1994,"title":{},"content":{"333":{"position":[[144,15]]}},"keywords":{}}],["otherwis",{"_index":1612,"title":{},"content":{"239":{"position":[[80,9]]},"322":{"position":[[368,10]]}},"keywords":{}}],["ourself",{"_index":166,"title":{},"content":{"5":{"position":[[710,7]]}},"keywords":{}}],["out",{"_index":294,"title":{"136":{"position":[[22,3]]}},"content":{"7":{"position":[[287,3]]},"17":{"position":[[85,3]]},"19":{"position":[[61,3]]},"21":{"position":[[1250,3],[2542,3],[2674,3]]},"166":{"position":[[833,4]]},"167":{"position":[[227,3]]},"183":{"position":[[418,3]]},"370":{"position":[[57,3]]},"466":{"position":[[365,3]]},"474":{"position":[[469,3]]},"476":{"position":[[36,3]]}},"keywords":{}}],["outfile=index.cj",{"_index":481,"title":{},"content":{"18":{"position":[[99,17]]}},"keywords":{}}],["outfile=index.mj",{"_index":404,"title":{},"content":{"12":{"position":[[368,17]]}},"keywords":{}}],["outgo",{"_index":1295,"title":{},"content":{"177":{"position":[[300,8]]},"178":{"position":[[1144,8]]},"281":{"position":[[1109,8]]}},"keywords":{}}],["output",{"_index":240,"title":{"275":{"position":[[6,6]]},"385":{"position":[[6,6]]},"419":{"position":[[6,6]]},"458":{"position":[[6,6]]}},"content":{"6":{"position":[[317,6]]},"13":{"position":[[346,7]]},"15":{"position":[[298,7]]},"34":{"position":[[142,6]]},"37":{"position":[[193,6]]},"43":{"position":[[142,6]]},"91":{"position":[[142,6]]},"102":{"position":[[210,6]]},"146":{"position":[[142,6]]},"153":{"position":[[425,6]]},"171":{"position":[[95,6],[408,6]]},"174":{"position":[[412,6],[2382,6],[2478,6]]},"182":{"position":[[455,6]]},"276":{"position":[[88,6]]},"278":{"position":[[76,6],[367,6]]},"280":{"position":[[217,6]]},"359":{"position":[[516,6]]}},"keywords":{}}],["outputmodul",{"_index":459,"title":{},"content":{"15":{"position":[[380,13]]}},"keywords":{}}],["outputschema",{"_index":2225,"title":{},"content":{"429":{"position":[[175,12]]},"466":{"position":[[167,12]]}},"keywords":{}}],["outsid",{"_index":239,"title":{},"content":{"6":{"position":[[258,7]]},"399":{"position":[[90,7]]}},"keywords":{}}],["over",{"_index":1510,"title":{},"content":{"219":{"position":[[303,4]]},"322":{"position":[[233,4]]}},"keywords":{}}],["overrid",{"_index":1015,"title":{},"content":{"160":{"position":[[883,8]]},"207":{"position":[[239,9]]},"211":{"position":[[126,8]]},"219":{"position":[[238,8]]},"265":{"position":[[189,8],[293,8]]},"359":{"position":[[781,9]]},"361":{"position":[[81,10]]},"476":{"position":[[312,8]]}},"keywords":{}}],["overridepreferredencod",{"_index":1532,"title":{},"content":{"220":{"position":[[434,26]]},"221":{"position":[[517,26]]}},"keywords":{}}],["overwrit",{"_index":403,"title":{},"content":{"12":{"position":[[356,9]]}},"keywords":{}}],["packag",{"_index":351,"title":{"8":{"position":[[16,8]]},"354":{"position":[[12,8]]}},"content":{"7":{"position":[[1379,7]]},"168":{"position":[[94,8]]},"354":{"position":[[52,8],[218,8],[371,8]]},"355":{"position":[[342,7]]},"394":{"position":[[206,7]]}},"keywords":{}}],["package.defaultlanguag",{"_index":2068,"title":{},"content":{"359":{"position":[[633,23]]}},"keywords":{}}],["page",{"_index":818,"title":{},"content":{"143":{"position":[[26,4],[90,4]]},"147":{"position":[[18,4],[82,4]]},"148":{"position":[[27,4],[91,4]]},"149":{"position":[[34,4],[98,4]]},"150":{"position":[[30,4],[94,4]]},"151":{"position":[[51,4],[115,4]]},"167":{"position":[[21,4],[85,4]]},"190":{"position":[[23,4],[87,4]]}},"keywords":{}}],["pair",{"_index":1956,"title":{},"content":{"324":{"position":[[1299,4]]}},"keywords":{}}],["param",{"_index":1524,"title":{},"content":{"220":{"position":[[297,7]]},"221":{"position":[[380,7]]},"474":{"position":[[666,6]]}},"keywords":{}}],["paramet",{"_index":1363,"title":{},"content":{"183":{"position":[[580,11],[692,11]]},"215":{"position":[[141,10]]},"239":{"position":[[341,9]]},"247":{"position":[[41,9]]},"283":{"position":[[277,10],[430,10],[466,9]]},"291":{"position":[[743,10]]},"298":{"position":[[568,9]]},"323":{"position":[[405,10],[482,9],[524,9],[606,9]]},"327":{"position":[[533,9],[1286,9]]},"332":{"position":[[59,9]]},"336":{"position":[[50,9]]}},"keywords":{}}],["parameters.disableprefetch",{"_index":1441,"title":{},"content":{"197":{"position":[[574,26]]},"202":{"position":[[570,26]]},"286":{"position":[[301,26]]},"303":{"position":[[553,26]]},"308":{"position":[[602,26]]},"318":{"position":[[413,26]]}},"keywords":{}}],["parameters.http",{"_index":1789,"title":{},"content":{"282":{"position":[[474,15]]}},"keywords":{}}],["pari",{"_index":1694,"title":{},"content":{"260":{"position":[[301,7]]}},"keywords":{}}],["pars",{"_index":213,"title":{},"content":{"5":{"position":[[1826,6]]},"6":{"position":[[293,7]]},"251":{"position":[[572,5]]},"281":{"position":[[73,7],[137,6],[554,6],[748,6],[886,6],[1011,6],[1186,6]]},"324":{"position":[[1559,5]]},"362":{"position":[[1972,5]]},"431":{"position":[[6,5]]},"456":{"position":[[30,5]]}},"keywords":{}}],["parsecharset",{"_index":1544,"title":{},"content":{"228":{"position":[[0,13]]},"229":{"position":[[834,14]]}},"keywords":{}}],["parseencod",{"_index":1576,"title":{},"content":{"229":{"position":[[856,15]]}},"keywords":{}}],["parser",{"_index":155,"title":{"245":{"position":[[15,6]]},"249":{"position":[[20,6]]},"267":{"position":[[20,6]]},"271":{"position":[[20,6]]},"334":{"position":[[13,6]]},"378":{"position":[[15,7]]},"379":{"position":[[20,7]]},"383":{"position":[[20,7]]},"384":{"position":[[20,7]]},"390":{"position":[[14,7]]},"411":{"position":[[15,7]]},"412":{"position":[[20,7]]},"417":{"position":[[20,7]]},"418":{"position":[[20,7]]},"425":{"position":[[14,7]]},"431":{"position":[[13,7]]},"450":{"position":[[15,7]]},"451":{"position":[[20,7]]},"456":{"position":[[20,7]]},"457":{"position":[[20,7]]},"468":{"position":[[13,7]]}},"content":{"5":{"position":[[341,7]]},"31":{"position":[[92,7]]},"34":{"position":[[638,7],[720,7],[1027,7],[1119,7]]},"37":{"position":[[689,7],[771,7],[1078,7],[1170,7]]},"43":{"position":[[638,7],[720,7],[1027,7],[1119,7]]},"91":{"position":[[638,7],[720,7],[1027,7],[1119,7]]},"146":{"position":[[650,7],[732,7],[1039,7],[1131,7]]},"148":{"position":[[550,7]]},"246":{"position":[[97,6]]},"248":{"position":[[151,7]]},"250":{"position":[[102,6]]},"252":{"position":[[161,7]]},"268":{"position":[[102,6]]},"270":{"position":[[96,7]]},"272":{"position":[[102,6]]},"274":{"position":[[161,7]]},"281":{"position":[[532,7],[726,7],[864,7],[989,7],[1164,7]]},"324":{"position":[[1551,7]]},"335":{"position":[[83,6]]},"337":{"position":[[92,7]]},"362":{"position":[[1487,7]]},"383":{"position":[[44,7]]}},"keywords":{}}],["parserhttppartialrespons",{"_index":2037,"title":{},"content":{"354":{"position":[[863,25]]}},"keywords":{}}],["parsers3keynorm",{"_index":2039,"title":{},"content":{"354":{"position":[[966,21]]}},"keywords":{}}],["parserwarmup",{"_index":2044,"title":{},"content":{"354":{"position":[[1166,12]]}},"keywords":{}}],["parsingavailablecharset",{"_index":1547,"title":{},"content":{"228":{"position":[[74,24]]}},"keywords":{}}],["parsingavailableencod",{"_index":1549,"title":{},"content":{"228":{"position":[[270,25]]}},"keywords":{}}],["parsingavailablelanguag",{"_index":1552,"title":{},"content":{"228":{"position":[[468,25]]}},"keywords":{}}],["parsingavailablemediatyp",{"_index":1555,"title":{},"content":{"228":{"position":[[669,26]]}},"keywords":{}}],["part",{"_index":295,"title":{},"content":{"7":{"position":[[302,4]]},"303":{"position":[[1205,4]]},"347":{"position":[[506,4]]},"351":{"position":[[274,4]]},"359":{"position":[[899,4]]}},"keywords":{}}],["parti",{"_index":1880,"title":{"321":{"position":[[6,5]]}},"content":{},"keywords":{}}],["partial",{"_index":660,"title":{"257":{"position":[[5,7]]},"311":{"position":[[4,7]]},"380":{"position":[[5,7]]},"391":{"position":[[4,7]]},"413":{"position":[[5,7]]},"426":{"position":[[4,7]]},"452":{"position":[[5,7]]},"463":{"position":[[4,7]]}},"content":{"34":{"position":[[783,7]]},"37":{"position":[[834,7]]},"43":{"position":[[783,7]]},"91":{"position":[[783,7]]},"139":{"position":[[143,7]]},"146":{"position":[[795,7]]},"258":{"position":[[87,7]]},"260":{"position":[[77,7]]},"282":{"position":[[399,7],[540,7],[571,9]]},"312":{"position":[[86,7]]},"314":{"position":[[65,7]]},"354":{"position":[[907,7]]},"426":{"position":[[100,7]]}},"keywords":{}}],["particular",{"_index":1744,"title":{},"content":{"277":{"position":[[257,10]]}},"keywords":{}}],["pass",{"_index":586,"title":{},"content":{"21":{"position":[[2282,7],[2696,6]]},"151":{"position":[[187,4]]},"161":{"position":[[460,6]]},"197":{"position":[[226,4],[451,7]]},"202":{"position":[[223,4],[447,7]]},"243":{"position":[[119,4]]},"247":{"position":[[58,6]]},"251":{"position":[[65,4]]},"264":{"position":[[120,6]]},"286":{"position":[[193,4]]},"291":{"position":[[37,4],[301,4],[391,7],[490,7]]},"298":{"position":[[233,4],[445,7]]},"303":{"position":[[212,4],[430,7]]},"308":{"position":[[247,4],[479,7]]},"318":{"position":[[199,4],[290,7]]},"322":{"position":[[786,7]]},"327":{"position":[[200,4],[410,7]]},"336":{"position":[[67,6]]},"340":{"position":[[262,4],[501,7]]},"347":{"position":[[188,6]]},"360":{"position":[[236,4]]},"362":{"position":[[311,4]]},"385":{"position":[[138,6]]},"398":{"position":[[493,6]]},"466":{"position":[[250,4]]}},"keywords":{}}],["password",{"_index":846,"title":{},"content":{"151":{"position":[[197,9],[370,8]]},"299":{"position":[[475,10],[562,11]]}},"keywords":{}}],["patch",{"_index":2011,"title":{},"content":{"347":{"position":[[127,6]]}},"keywords":{}}],["path",{"_index":446,"title":{"267":{"position":[[15,4]]},"384":{"position":[[15,4]]},"418":{"position":[[15,4]]},"457":{"position":[[15,4]]}},"content":{"15":{"position":[[83,4],[346,5]]},"34":{"position":[[1114,4]]},"37":{"position":[[1165,4],[1377,5],[1438,5]]},"43":{"position":[[1114,4]]},"91":{"position":[[1114,4]]},"146":{"position":[[1126,4]]},"268":{"position":[[97,4]]},"270":{"position":[[91,4]]},"277":{"position":[[223,5]]},"281":{"position":[[984,4]]},"322":{"position":[[1349,4],[1432,5]]},"328":{"position":[[316,4],[894,4]]},"347":{"position":[[23,5],[237,4]]},"348":{"position":[[479,5],[540,5]]},"419":{"position":[[44,5]]}},"keywords":{}}],["path.dirname(__filenam",{"_index":453,"title":{},"content":{"15":{"position":[[214,24]]}},"keywords":{}}],["path.valid",{"_index":1781,"title":{},"content":{"281":{"position":[[1049,15]]}},"keywords":{}}],["pathparamet",{"_index":1725,"title":{},"content":{"270":{"position":[[317,15]]},"281":{"position":[[404,14]]}},"keywords":{}}],["pattern",{"_index":197,"title":{},"content":{"5":{"position":[[1330,8],[1522,8]]},"6":{"position":[[638,8],[652,7]]},"474":{"position":[[338,7],[536,8]]}},"keywords":{}}],["pattern.beforehandler/afterhandl",{"_index":1026,"title":{},"content":{"161":{"position":[[520,37]]}},"keywords":{}}],["payload",{"_index":1182,"title":{},"content":{"170":{"position":[[886,7]]},"183":{"position":[[85,7],[319,7]]},"194":{"position":[[221,8]]}},"keywords":{}}],["payloadformatvers",{"_index":2202,"title":{},"content":{"409":{"position":[[7,20]]}},"keywords":{}}],["payloadselect",{"_index":1352,"title":{},"content":{"183":{"position":[[185,13]]}},"keywords":{}}],["payment",{"_index":144,"title":{},"content":{"5":{"position":[[119,8],[929,8]]},"186":{"position":[[417,7],[560,7],[732,10]]}},"keywords":{}}],["payment.id",{"_index":1386,"title":{},"content":{"186":{"position":[[630,11]]}},"keywords":{}}],["paymentid",{"_index":1385,"title":{},"content":{"186":{"position":[[619,10]]}},"keywords":{}}],["peer",{"_index":922,"title":{},"content":{"155":{"position":[[186,4]]}},"keywords":{}}],["percent",{"_index":1907,"title":{},"content":{"322":{"position":[[1183,7]]}},"keywords":{}}],["percentag",{"_index":1186,"title":{},"content":{"171":{"position":[[214,10]]}},"keywords":{}}],["perform",{"_index":28,"title":{},"content":{"1":{"position":[[92,11]]},"219":{"position":[[468,11],[593,12]]},"318":{"position":[[1036,11]]},"359":{"position":[[1144,11]]},"404":{"position":[[53,11]]},"407":{"position":[[81,11]]}},"keywords":{}}],["performancemiddi",{"_index":1887,"title":{},"content":{"322":{"position":[[162,16]]}},"keywords":{}}],["period",{"_index":1071,"title":{},"content":{"166":{"position":[[59,7],[231,6],[803,6]]}},"keywords":{}}],["permiss",{"_index":1454,"title":{},"content":{"197":{"position":[[1103,10]]},"202":{"position":[[1098,10]]},"286":{"position":[[831,10]]},"291":{"position":[[856,10]]},"298":{"position":[[1578,10]]},"303":{"position":[[1075,10]]},"308":{"position":[[1125,10]]},"318":{"position":[[936,10]]},"324":{"position":[[1363,11],[1399,10]]},"327":{"position":[[1108,10]]},"340":{"position":[[732,10]]}},"keywords":{}}],["persist",{"_index":1370,"title":{},"content":{"185":{"position":[[113,11]]}},"keywords":{}}],["persistencestor",{"_index":1367,"title":{},"content":{"185":{"position":[[42,16]]},"186":{"position":[[256,16],[778,17]]}},"keywords":{}}],["perspect",{"_index":228,"title":{},"content":{"6":{"position":[[81,12]]}},"keywords":{}}],["pgmiddi",{"_index":1910,"title":{},"content":{"322":{"position":[[1250,7]]}},"keywords":{}}],["phase",{"_index":893,"title":{},"content":{"153":{"position":[[259,5]]},"160":{"position":[[200,5]]},"163":{"position":[[21,7],[58,6],[206,6],[579,6]]},"211":{"position":[[103,6]]},"473":{"position":[[203,6],[578,5],[647,5],[721,5]]},"475":{"position":[[916,7]]}},"keywords":{}}],["phaseaft",{"_index":2293,"title":{},"content":{"475":{"position":[[146,11]]}},"keywords":{}}],["phaseonerror",{"_index":2294,"title":{},"content":{"475":{"position":[[199,13]]}},"keywords":{}}],["pino",{"_index":826,"title":{"147":{"position":[[0,4]]}},"content":{"147":{"position":[[0,4]]},"278":{"position":[[389,4],[399,6],[421,6]]}},"keywords":{}}],["pk",{"_index":1464,"title":{},"content":{"203":{"position":[[308,3]]}},"keywords":{}}],["place",{"_index":1393,"title":{},"content":{"188":{"position":[[169,5]]},"324":{"position":[[393,7]]}},"keywords":{}}],["placement",{"_index":1395,"title":{},"content":{"188":{"position":[[466,9]]}},"keywords":{}}],["plan",{"_index":1713,"title":{},"content":{"265":{"position":[[517,8]]}},"keywords":{}}],["platform=nod",{"_index":392,"title":{},"content":{"12":{"position":[[123,13]]},"18":{"position":[[45,13]]}},"keywords":{}}],["pleas",{"_index":820,"title":{},"content":{"143":{"position":[[103,6]]},"147":{"position":[[95,6]]},"148":{"position":[[104,6]]},"149":{"position":[[111,6]]},"150":{"position":[[107,6]]},"151":{"position":[[128,6]]},"166":{"position":[[820,6]]},"167":{"position":[[98,6]]},"190":{"position":[[100,6]]}},"keywords":{}}],["plug",{"_index":261,"title":{},"content":{"6":{"position":[[862,7]]}},"keywords":{}}],["plugin",{"_index":410,"title":{},"content":{"13":{"position":[[233,7],[416,8]]},"324":{"position":[[470,7],[627,6]]},"332":{"position":[[256,6]]},"360":{"position":[[52,7]]},"394":{"position":[[22,7],[120,6]]},"395":{"position":[[315,6]]}},"keywords":{}}],["point",{"_index":1189,"title":{},"content":{"171":{"position":[[331,5]]}},"keywords":{}}],["pollut",{"_index":244,"title":{},"content":{"6":{"position":[[404,9],[925,9]]}},"keywords":{}}],["polyfil",{"_index":2229,"title":{},"content":{"437":{"position":[[7,8],[41,8]]}},"keywords":{}}],["pond",{"_index":1740,"title":{},"content":{"274":{"position":[[638,5]]}},"keywords":{}}],["popular",{"_index":1052,"title":{},"content":{"164":{"position":[[192,10]]}},"keywords":{}}],["port",{"_index":765,"title":{},"content":{"103":{"position":[[463,5]]},"164":{"position":[[316,4],[351,4]]},"282":{"position":[[377,4]]},"287":{"position":[[393,5]]}},"keywords":{}}],["possibl",{"_index":1019,"title":{},"content":{"161":{"position":[[103,8]]},"370":{"position":[[76,8]]},"420":{"position":[[34,8]]},"423":{"position":[[34,8]]},"475":{"position":[[81,8]]}},"keywords":{}}],["post",{"_index":707,"title":{},"content":{"37":{"position":[[1430,7]]},"347":{"position":[[116,5]]},"348":{"position":[[532,7]]},"432":{"position":[[6,4]]}},"keywords":{}}],["postgr",{"_index":1813,"title":{},"content":{"287":{"position":[[381,11]]}},"keywords":{}}],["posthandl",{"_index":704,"title":{},"content":{"37":{"position":[[1299,11],[1462,11]]},"348":{"position":[[295,11],[564,11]]}},"keywords":{}}],["potenti",{"_index":1400,"title":{},"content":{"188":{"position":[[666,11]]}},"keywords":{}}],["power",{"_index":1663,"title":{},"content":{"255":{"position":[[185,7]]},"324":{"position":[[272,7]]},"363":{"position":[[144,7]]}},"keywords":{}}],["powertool",{"_index":1157,"title":{"169":{"position":[[0,10]]}},"content":{"170":{"position":[[0,10],[154,10]]},"179":{"position":[[637,10]]},"188":{"position":[[21,10],[133,10]]},"189":{"position":[[215,10],[1252,10]]},"322":{"position":[[12,11]]},"323":{"position":[[11,10]]}},"keywords":{}}],["powertools/common",{"_index":1413,"title":{},"content":{"189":{"position":[[848,20]]}},"keywords":{}}],["powertools/idempot",{"_index":1365,"title":{},"content":{"184":{"position":[[43,22]]}},"keywords":{}}],["powertools/idempotency/dynamodb",{"_index":1379,"title":{},"content":{"186":{"position":[[216,33]]}},"keywords":{}}],["powertools/idempotency/middlewar",{"_index":1377,"title":{},"content":{"186":{"position":[[126,35]]}},"keywords":{}}],["powertools/logg",{"_index":1195,"title":{},"content":{"172":{"position":[[43,17]]},"174":{"position":[[90,19]]}},"keywords":{}}],["powertools/metr",{"_index":1321,"title":{},"content":{"180":{"position":[[43,18]]},"182":{"position":[[95,20]]}},"keywords":{}}],["powertools/trac",{"_index":1292,"title":{},"content":{"176":{"position":[[43,17]]},"178":{"position":[[91,19]]}},"keywords":{}}],["practic",{"_index":1050,"title":{"187":{"position":[[5,10]]}},"content":{"164":{"position":[[124,9]]},"189":{"position":[[534,8]]},"282":{"position":[[319,8]]},"318":{"position":[[1102,10]]}},"keywords":{}}],["pre",{"_index":1595,"title":{"363":{"position":[[0,3]]}},"content":{"232":{"position":[[1289,3]]},"280":{"position":[[273,3]]},"358":{"position":[[139,3]]},"398":{"position":[[849,3]]},"466":{"position":[[413,3]]}},"keywords":{}}],["precompil",{"_index":2079,"title":{},"content":{"359":{"position":[[1203,12]]}},"keywords":{}}],["prefer",{"_index":1507,"title":{},"content":{"219":{"position":[[251,9],[291,6]]},"265":{"position":[[448,11]]}},"keywords":{}}],["preferbuiltin",{"_index":411,"title":{},"content":{"13":{"position":[[258,15]]}},"keywords":{}}],["prefetch",{"_index":1021,"title":{},"content":{"161":{"position":[[224,10]]},"291":{"position":[[673,9]]},"340":{"position":[[684,9]]}},"keywords":{}}],["prefetch.cachekey",{"_index":1443,"title":{},"content":{"197":{"position":[[720,17]]},"202":{"position":[[716,17]]},"286":{"position":[[447,17]]},"298":{"position":[[1193,17]]},"303":{"position":[[699,17]]},"308":{"position":[[748,17]]},"318":{"position":[[559,17]]},"327":{"position":[[731,17]]}},"keywords":{}}],["prefetchingexpectct",{"_index":1657,"title":{},"content":{"255":{"position":[[40,19]]}},"keywords":{}}],["prefix",{"_index":1305,"title":{},"content":{"178":{"position":[[768,6]]},"347":{"position":[[416,6]]}},"keywords":{}}],["preflight",{"_index":1581,"title":{},"content":{"232":{"position":[[183,9]]}},"keywords":{}}],["present.exposehead",{"_index":1589,"title":{},"content":{"232":{"position":[[823,21]]}},"keywords":{}}],["prevent",{"_index":1181,"title":{},"content":{"170":{"position":[[849,7]]},"183":{"position":[[14,7]]},"255":{"position":[[128,7]]}},"keywords":{}}],["print",{"_index":605,"title":{},"content":{"21":{"position":[[2665,8]]},"322":{"position":[[225,7],[359,8]]}},"keywords":{}}],["prioriti",{"_index":1043,"title":{},"content":{"163":{"position":[[694,8]]}},"keywords":{}}],["probabl",{"_index":2270,"title":{},"content":{"473":{"position":[[145,8]]}},"keywords":{}}],["problem",{"_index":253,"title":{},"content":{"6":{"position":[[593,7]]},"174":{"position":[[1562,7],[2247,7]]}},"keywords":{}}],["process",{"_index":143,"title":{},"content":{"5":{"position":[[109,7],[938,9]]},"7":{"position":[[321,8]]},"167":{"position":[[1057,10],[1286,7]]},"251":{"position":[[502,9]]},"313":{"position":[[87,10]]},"314":{"position":[[224,10]]}},"keywords":{}}],["process.env.aws_region",{"_index":759,"title":{},"content":{"103":{"position":[[359,23]]}},"keywords":{}}],["process.env.node_env",{"_index":80,"title":{},"content":{"2":{"position":[[639,20]]},"434":{"position":[[180,20]]}},"keywords":{}}],["process.env.rds_hostnam",{"_index":761,"title":{},"content":{"103":{"position":[[393,25]]}},"keywords":{}}],["process.hrtime.bigint",{"_index":503,"title":{},"content":{"21":{"position":[[205,23]]}},"keywords":{}}],["processcach",{"_index":2281,"title":{},"content":{"474":{"position":[[580,12]]}},"keywords":{}}],["processcache(opt",{"_index":2289,"title":{},"content":{"474":{"position":[[1143,21],[1247,21]]}},"keywords":{}}],["prod",{"_index":1235,"title":{},"content":{"174":{"position":[[574,4],[776,4],[1914,4]]}},"keywords":{}}],["produc",{"_index":1609,"title":{},"content":{"236":{"position":[[208,7]]}},"keywords":{}}],["product",{"_index":1159,"title":{},"content":{"170":{"position":[[101,10]]}},"keywords":{}}],["productid",{"_index":1382,"title":{},"content":{"186":{"position":[[452,10]]}},"keywords":{}}],["profil",{"_index":493,"title":{"20":{"position":[[0,9]]}},"content":{"161":{"position":[[692,9]]},"322":{"position":[[1068,9],[1093,9]]}},"keywords":{}}],["progress",{"_index":819,"title":{},"content":{"143":{"position":[[44,9]]},"147":{"position":[[36,9]]},"148":{"position":[[45,9]]},"149":{"position":[[52,9]]},"150":{"position":[[48,9]]},"151":{"position":[[69,9]]},"167":{"position":[[39,9]]},"183":{"position":[[369,8]]},"190":{"position":[[41,9]]}},"keywords":{}}],["project",{"_index":884,"title":{},"content":{"152":{"position":[[192,8]]},"159":{"position":[[131,7],[600,8]]},"164":{"position":[[42,8],[259,8],[385,8]]},"165":{"position":[[44,7]]}},"keywords":{}}],["project.2017",{"_index":967,"title":{},"content":{"159":{"position":[[249,12]]}},"keywords":{}}],["promis",{"_index":43,"title":{"294":{"position":[[0,8]]}},"content":{"2":{"position":[[83,8]]},"128":{"position":[[319,9]]},"294":{"position":[[298,9]]},"324":{"position":[[184,8],[578,8]]},"474":{"position":[[234,9],[264,8]]}},"keywords":{}}],["promise<apigatewayproxyresult>",{"_index":1151,"title":{},"content":{"168":{"position":[[382,36]]},"478":{"position":[[435,36]]}},"keywords":{}}],["promise<void>",{"_index":1330,"title":{},"content":{"182":{"position":[[270,19]]},"478":{"position":[[611,19]]}},"keywords":{}}],["promise.allsettled(recordpromis",{"_index":1864,"title":{},"content":{"314":{"position":[[268,34]]}},"keywords":{}}],["promise.awscli",{"_index":1815,"title":{},"content":{"291":{"position":[[97,17]]}},"keywords":{}}],["prop",{"_index":58,"title":{},"content":{"2":{"position":[[309,5],[387,5],[421,6]]}},"keywords":{}}],["propag",{"_index":1006,"title":{},"content":{"160":{"position":[[474,10]]},"270":{"position":[[172,10]]},"274":{"position":[[237,10]]}},"keywords":{}}],["proper",{"_index":222,"title":{},"content":{"5":{"position":[[2044,6]]},"160":{"position":[[326,6]]},"248":{"position":[[410,6]]},"282":{"position":[[172,6],[264,6]]}},"keywords":{}}],["properli",{"_index":1403,"title":{},"content":{"189":{"position":[[417,8]]},"315":{"position":[[254,8]]},"476":{"position":[[218,9]]}},"keywords":{}}],["properti",{"_index":191,"title":{},"content":{"5":{"position":[[1212,11],[1250,11],[1668,10]]},"183":{"position":[[442,8]]},"211":{"position":[[66,8],[252,8]]},"212":{"position":[[320,8]]},"215":{"position":[[7,9]]},"277":{"position":[[194,8]]},"280":{"position":[[54,8],[169,8]]},"332":{"position":[[229,8]]},"362":{"position":[[284,11],[524,8],[1031,11],[1710,11],[1777,11]]}},"keywords":{}}],["protect",{"_index":1675,"title":{},"content":{"255":{"position":[[404,11]]}},"keywords":{}}],["provid",{"_index":1017,"title":{},"content":{"161":{"position":[[12,8]]},"170":{"position":[[165,8]]},"207":{"position":[[314,7]]},"281":{"position":[[165,8]]},"323":{"position":[[424,8]]},"324":{"position":[[322,8]]},"355":{"position":[[210,7]]}},"keywords":{}}],["provis",{"_index":2165,"title":{},"content":{"395":{"position":[[103,11]]}},"keywords":{}}],["proxi",{"_index":56,"title":{},"content":{"2":{"position":[[283,9]]},"324":{"position":[[361,8]]},"398":{"position":[[648,7]]}},"keywords":{}}],["proxy+}handl",{"_index":2015,"title":{},"content":{"347":{"position":[[287,16]]}},"keywords":{}}],["publish",{"_index":1468,"title":{},"content":{"207":{"position":[[128,9]]},"354":{"position":[[61,9]]}},"keywords":{}}],["pull",{"_index":882,"title":{},"content":{"152":{"position":[[150,4]]}},"keywords":{}}],["pure",{"_index":245,"title":{},"content":{"6":{"position":[[418,4]]}},"keywords":{}}],["put",{"_index":291,"title":{},"content":{"7":{"position":[[242,3]]},"232":{"position":[[308,3],[398,3],[657,3],[875,3],[965,3],[1062,3],[1161,3],[1258,3]]},"347":{"position":[[122,4]]},"466":{"position":[[6,3]]}},"keywords":{}}],["q=0.8",{"_index":1719,"title":{},"content":{"266":{"position":[[635,6]]}},"keywords":{}}],["qs",{"_index":2154,"title":{},"content":{"383":{"position":[[34,2]]}},"keywords":{}}],["qs/.editorconfig",{"_index":313,"title":{},"content":{"7":{"position":[[667,19]]}},"keywords":{}}],["qs/.eslintrc",{"_index":314,"title":{},"content":{"7":{"position":[[687,15]]}},"keywords":{}}],["qs/.github",{"_index":310,"title":{},"content":{"7":{"position":[[631,13]]}},"keywords":{}}],["qs/.nycrc",{"_index":315,"title":{},"content":{"7":{"position":[[703,12]]}},"keywords":{}}],["qs/changelog.md",{"_index":316,"title":{},"content":{"7":{"position":[[716,18]]}},"keywords":{}}],["qs/dist",{"_index":311,"title":{},"content":{"7":{"position":[[645,10]]}},"keywords":{}}],["qs/test",{"_index":312,"title":{},"content":{"7":{"position":[[656,10]]}},"keywords":{}}],["queri",{"_index":1788,"title":{},"content":{"282":{"position":[[461,5]]}},"keywords":{}}],["querystr",{"_index":1678,"title":{},"content":{"259":{"position":[[61,11]]}},"keywords":{}}],["querystring/test",{"_index":332,"title":{},"content":{"7":{"position":[[1024,19]]}},"keywords":{}}],["querystringparamet",{"_index":1696,"title":{},"content":{"260":{"position":[[385,22]]},"281":{"position":[[346,22]]}},"keywords":{}}],["queue",{"_index":1893,"title":{},"content":{"322":{"position":[[490,5]]}},"keywords":{}}],["quick",{"_index":132,"title":{"5":{"position":[[2,5]]}},"content":{},"keywords":{}}],["quickli",{"_index":114,"title":{},"content":{"4":{"position":[[258,8]]},"473":{"position":[[835,7]]}},"keywords":{}}],["quit",{"_index":2160,"title":{},"content":{"394":{"position":[[192,5]]}},"keywords":{}}],["quot;*")origin",{"_index":1587,"title":{},"content":{"232":{"position":[[685,21]]}},"keywords":{}}],["quot;./"",{"_index":373,"title":{},"content":{"10":{"position":[[112,15]]}},"keywords":{}}],["quot;16"",{"_index":478,"title":{},"content":{"17":{"position":[[241,14]]}},"keywords":{}}],["quot;2021",{"_index":1259,"title":{},"content":{"174":{"position":[[1037,10]]}},"keywords":{}}],["quot;@babel/preset",{"_index":475,"title":{},"content":{"17":{"position":[[167,19]]}},"keywords":{}}],["quot;@middy/core"",{"_index":949,"title":{},"content":{"157":{"position":[[491,23]]}},"keywords":{}}],["quot;_aws"",{"_index":1336,"title":{},"content":{"182":{"position":[[550,17]]}},"keywords":{}}],["quot;abcdef123456abcdef123456abcdef123456"",{"_index":1262,"title":{},"content":{"174":{"position":[[1102,48]]}},"keywords":{}}],["quot;allowjs"",{"_index":377,"title":{},"content":{"10":{"position":[[237,20]]}},"keywords":{}}],["quot;arn:aws:lambda:eu",{"_index":1231,"title":{},"content":{"174":{"position":[[496,23]]}},"keywords":{}}],["quot;bar"",{"_index":1254,"title":{},"content":{"174":{"position":[[926,16]]}},"keywords":{}}],["quot;baseurl"",{"_index":372,"title":{},"content":{"10":{"position":[[91,20]]}},"keywords":{}}],["quot;baz"",{"_index":1255,"title":{},"content":{"174":{"position":[[943,15]]}},"keywords":{}}],["quot;c6af9ac6",{"_index":1241,"title":{},"content":{"174":{"position":[[668,14]]}},"keywords":{}}],["quot;cloudwatchmetrics"",{"_index":1338,"title":{},"content":{"182":{"position":[[608,30]]}},"keywords":{}}],["quot;cold_start"",{"_index":1229,"title":{},"content":{"174":{"position":[[440,23]]}},"keywords":{}}],["quot;commonjs"",{"_index":492,"title":{},"content":{"19":{"position":[[274,20]]}},"keywords":{}}],["quot;compileroptions"",{"_index":371,"title":{},"content":{"10":{"position":[[60,28]]}},"keywords":{}}],["quot;count"",{"_index":1344,"title":{},"content":{"182":{"position":[[840,17]]}},"keywords":{}}],["quot;dimensions"",{"_index":1340,"title":{},"content":{"182":{"position":[[696,23]]}},"keywords":{}}],["quot;ecmascript"",{"_index":489,"title":{},"content":{"19":{"position":[[166,22]]}},"keywords":{}}],["quot;es2021"",{"_index":380,"title":{},"content":{"10":{"position":[[285,19]]},"19":{"position":[[212,18]]}},"keywords":{}}],["quot;esmoduleinterop"",{"_index":374,"title":{},"content":{"10":{"position":[[128,28]]}},"keywords":{}}],["quot;foo"",{"_index":1253,"title":{},"content":{"174":{"position":[[907,16]]}},"keywords":{}}],["quot;function_arn"",{"_index":1230,"title":{},"content":{"174":{"position":[[470,25]]}},"keywords":{}}],["quot;function_memory_size"",{"_index":1238,"title":{},"content":{"174":{"position":[[596,33]]}},"keywords":{}}],["quot;function_name"",{"_index":1246,"title":{},"content":{"174":{"position":[[718,26]]}},"keywords":{}}],["quot;function_request_id"",{"_index":1240,"title":{},"content":{"174":{"position":[[635,32]]}},"keywords":{}}],["quot;info"",{"_index":1249,"title":{},"content":{"174":{"position":[[817,17]]}},"keywords":{}}],["quot;jsc"",{"_index":486,"title":{},"content":{"19":{"position":[[105,16]]}},"keywords":{}}],["quot;level"",{"_index":1248,"title":{},"content":{"174":{"position":[[798,18]]}},"keywords":{}}],["quot;message"",{"_index":1250,"title":{},"content":{"174":{"position":[[835,20]]}},"keywords":{}}],["quot;metrics"",{"_index":1341,"title":{},"content":{"182":{"position":[[749,20]]}},"keywords":{}}],["quot;middyfy"",{"_index":211,"title":{},"content":{"5":{"position":[[1694,19]]}},"keywords":{}}],["quot;module"",{"_index":490,"title":{},"content":{"19":{"position":[[234,19]]}},"keywords":{}}],["quot;moduleresolution"",{"_index":384,"title":{},"content":{"10":{"position":[[400,29]]}},"keywords":{}}],["quot;name"",{"_index":1342,"title":{},"content":{"182":{"position":[[773,17]]}},"keywords":{}}],["quot;namespace"",{"_index":1339,"title":{},"content":{"182":{"position":[[642,22]]}},"keywords":{}}],["quot;node"",{"_index":385,"title":{},"content":{"10":{"position":[[430,16]]},"17":{"position":[[223,17]]}},"keywords":{}}],["quot;node_modules/@types"",{"_index":382,"title":{},"content":{"10":{"position":[[328,34]]}},"keywords":{}}],["quot;orders"",{"_index":1345,"title":{},"content":{"182":{"position":[[886,18]]}},"keywords":{}}],["quot;parser"",{"_index":487,"title":{},"content":{"19":{"position":[[124,19]]}},"keywords":{}}],["quot;preserveconstenums"",{"_index":375,"title":{},"content":{"10":{"position":[[163,31]]}},"keywords":{}}],["quot;presets"",{"_index":474,"title":{},"content":{"17":{"position":[[142,20]]}},"keywords":{}}],["quot;resolvejsonmodule"",{"_index":383,"title":{},"content":{"10":{"position":[[363,30]]}},"keywords":{}}],["quot;sampl",{"_index":950,"title":{},"content":{"157":{"position":[[539,12],[594,12],[649,12]]}},"keywords":{}}],["quot;serverlessairline"",{"_index":1257,"title":{},"content":{"174":{"position":[[983,30]]}},"keywords":{}}],["quot;service"",{"_index":1256,"title":{},"content":{"174":{"position":[[962,20]]},"182":{"position":[[724,19],[865,20]]}},"keywords":{}}],["quot;shop",{"_index":1247,"title":{},"content":{"174":{"position":[[745,14]]}},"keywords":{}}],["quot;strictnullchecks"",{"_index":376,"title":{},"content":{"10":{"position":[[201,29]]}},"keywords":{}}],["quot;successfulbooking"",{"_index":1334,"title":{},"content":{"182":{"position":[[514,30],[665,30],[791,30]]}},"keywords":{}}],["quot;syntax"",{"_index":488,"title":{},"content":{"19":{"position":[[146,19]]}},"keywords":{}}],["quot;target"",{"_index":379,"title":{},"content":{"10":{"position":[[265,19]]},"19":{"position":[[192,19]]}},"keywords":{}}],["quot;targets"",{"_index":477,"title":{},"content":{"17":{"position":[[200,20]]}},"keywords":{}}],["quot;thi",{"_index":1251,"title":{},"content":{"174":{"position":[[856,10]]}},"keywords":{}}],["quot;timestamp"",{"_index":1258,"title":{},"content":{"174":{"position":[[1014,22]]},"182":{"position":[[570,22]]}},"keywords":{}}],["quot;type"",{"_index":491,"title":{},"content":{"19":{"position":[[256,17]]}},"keywords":{}}],["quot;typeof":"function".responseschema",{"_index":2065,"title":{},"content":{"359":{"position":[[368,54]]}},"keywords":{}}],["quot;typeroots"",{"_index":381,"title":{},"content":{"10":{"position":[[305,22]]}},"keywords":{}}],["quot;unit"",{"_index":1343,"title":{},"content":{"182":{"position":[[822,17]]}},"keywords":{}}],["quot;xray_trace_id"",{"_index":1261,"title":{},"content":{"174":{"position":[[1075,26]]}},"keywords":{}}],["rais",{"_index":880,"title":{},"content":{"152":{"position":[[124,5]]}},"keywords":{}}],["random",{"_index":335,"title":{},"content":{"7":{"position":[[1064,6],[1106,6],[1144,6],[1191,6],[1222,6]]}},"keywords":{}}],["randomuuid",{"_index":1374,"title":{},"content":{"186":{"position":[[42,10],[438,13]]}},"keywords":{}}],["rate",{"_index":1210,"title":{},"content":{"173":{"position":[[413,4]]}},"keywords":{}}],["ray",{"_index":1171,"title":{},"content":{"170":{"position":[[456,3]]},"174":{"position":[[1477,3]]},"175":{"position":[[328,3]]},"178":{"position":[[1040,3]]},"189":{"position":[[469,4]]},"323":{"position":[[173,3]]},"324":{"position":[[723,3]]},"327":{"position":[[112,5],[403,3]]},"399":{"position":[[75,3]]}},"keywords":{}}],["rd",{"_index":421,"title":{"114":{"position":[[0,3]]},"151":{"position":[[32,5]]},"284":{"position":[[0,3]]},"386":{"position":[[0,3]]},"420":{"position":[[0,3]]},"459":{"position":[[0,3]]}},"content":{"13":{"position":[[530,5]]},"15":{"position":[[737,5]]},"115":{"position":[[29,3]]},"116":{"position":[[164,3]]},"151":{"position":[[32,5],[438,3]]},"283":{"position":[[141,3]]},"286":{"position":[[483,3],[846,3]]},"322":{"position":[[1208,4],[1221,3]]},"370":{"position":[[67,3]]},"386":{"position":[[24,3]]}},"keywords":{}}],["rds.amazonaws.com",{"_index":1812,"title":{},"content":{"287":{"position":[[324,24]]}},"keywords":{}}],["rds.parametergroup",{"_index":870,"title":{},"content":{"151":{"position":[[948,19]]}},"keywords":{}}],["rds.signer",{"_index":848,"title":{},"content":{"151":{"position":[[243,11]]}},"keywords":{}}],["rdssigner",{"_index":757,"title":{},"content":{"103":{"position":[[338,10],[897,10]]},"287":{"position":[[39,9],[253,11]]}},"keywords":{}}],["rdssignermiddlewar",{"_index":751,"title":{},"content":{"103":{"position":[[81,19],[303,21]]}},"keywords":{}}],["rdstoken",{"_index":1810,"title":{},"content":{"287":{"position":[[278,9]]}},"keywords":{}}],["re",{"_index":1421,"title":{},"content":{"194":{"position":[[127,3]]},"362":{"position":[[644,4]]},"415":{"position":[[12,2]]},"433":{"position":[[12,2]]},"473":{"position":[[115,2]]},"474":{"position":[[1047,5]]}},"keywords":{}}],["reach",{"_index":1106,"title":{},"content":{"166":{"position":[[827,5]]},"474":{"position":[[460,8]]}},"keywords":{}}],["react",{"_index":333,"title":{},"content":{"7":{"position":[[1044,8],[1086,8],[1124,8],[1171,8]]}},"keywords":{}}],["read",{"_index":248,"title":{},"content":{"6":{"position":[[487,4]]},"355":{"position":[[600,4]]}},"keywords":{}}],["readabl",{"_index":268,"title":{},"content":{"6":{"position":[[984,9]]}},"keywords":{}}],["readfil",{"_index":2118,"title":{},"content":{"364":{"position":[[9,8]]},"365":{"position":[[9,8]]}},"keywords":{}}],["readfile('./en.ftl",{"_index":2122,"title":{},"content":{"364":{"position":[[274,21]]}},"keywords":{}}],["readfile('./fr.ftl",{"_index":2123,"title":{},"content":{"364":{"position":[[329,21]]}},"keywords":{}}],["readi",{"_index":582,"title":{},"content":{"21":{"position":[[2191,5]]},"170":{"position":[[112,5]]},"322":{"position":[[911,5],[1041,5]]},"324":{"position":[[1651,5]]}},"keywords":{}}],["readstream",{"_index":1826,"title":{},"content":{"293":{"position":[[166,10]]}},"keywords":{}}],["readstream.pipe(transformstream",{"_index":1829,"title":{},"content":{"293":{"position":[[263,32]]}},"keywords":{}}],["realli",{"_index":95,"title":{},"content":{"2":{"position":[[1103,6]]},"251":{"position":[[868,6]]}},"keywords":{}}],["reason",{"_index":1876,"title":{},"content":{"318":{"position":[[1061,8]]},"450":{"position":[[271,10]]}},"keywords":{}}],["recaptcha",{"_index":1911,"title":{},"content":{"322":{"position":[[1258,10],[1269,9]]}},"keywords":{}}],["receiv",{"_index":59,"title":{},"content":{"2":{"position":[[315,9]]},"168":{"position":[[182,9]]},"215":{"position":[[97,8]]},"478":{"position":[[88,9],[1015,7]]}},"keywords":{}}],["recent",{"_index":1839,"title":{},"content":{"298":{"position":[[962,7]]}},"keywords":{}}],["recommend",{"_index":1392,"title":{"363":{"position":[[24,14]]}},"content":{"188":{"position":[[149,10]]},"219":{"position":[[532,11]]},"265":{"position":[[566,11]]},"359":{"position":[[1226,12]]}},"keywords":{}}],["record",{"_index":1357,"title":{},"content":{"183":{"position":[[297,7]]},"207":{"position":[[340,6]]},"225":{"position":[[141,7],[170,6],[180,8]]},"281":{"position":[[64,8]]},"313":{"position":[[68,6]]},"314":{"position":[[182,8],[251,6]]}},"keywords":{}}],["record<str",{"_index":1470,"title":{},"content":{"207":{"position":[[152,18],[184,17]]}},"keywords":{}}],["recordpromis",{"_index":1861,"title":{},"content":{"314":{"position":[[141,14]]}},"keywords":{}}],["redact",{"_index":1746,"title":{},"content":{"277":{"position":[[338,6]]}},"keywords":{}}],["redi",{"_index":1927,"title":{},"content":{"324":{"position":[[6,6],[13,5]]}},"keywords":{}}],["redirect",{"_index":1934,"title":{},"content":{"324":{"position":[[339,9]]}},"keywords":{}}],["refactor",{"_index":2158,"title":{},"content":{"389":{"position":[[0,11]]},"392":{"position":[[0,11]]},"407":{"position":[[68,8]]}},"keywords":{}}],["refer",{"_index":1672,"title":{},"content":{"255":{"position":[[360,7]]},"355":{"position":[[534,10]]},"475":{"position":[[784,9]]}},"keywords":{}}],["reflect.get(...argu",{"_index":62,"title":{},"content":{"2":{"position":[[347,25]]}},"keywords":{}}],["regex",{"_index":692,"title":{},"content":{"34":{"position":[[2041,6]]},"37":{"position":[[2166,6]]},"43":{"position":[[2041,6]]},"91":{"position":[[2066,6]]},"146":{"position":[[2053,6]]},"263":{"position":[[78,6],[183,6],[268,6]]},"266":{"position":[[266,6],[371,6],[456,6]]}},"keywords":{}}],["region",{"_index":758,"title":{},"content":{"103":{"position":[[351,7]]},"287":{"position":[[290,7]]},"299":{"position":[[236,7]]}},"keywords":{}}],["regular",{"_index":1000,"title":{},"content":{"160":{"position":[[86,7]]},"332":{"position":[[145,7]]}},"keywords":{}}],["reject",{"_index":1930,"title":{},"content":{"324":{"position":[[175,8]]}},"keywords":{}}],["rejectunauthor",{"_index":862,"title":{},"content":{"151":{"position":[[717,19]]}},"keywords":{}}],["relat",{"_index":845,"title":{"151":{"position":[[4,10]]}},"content":{"151":{"position":[[4,10]]}},"keywords":{}}],["releas",{"_index":966,"title":{"166":{"position":[[0,7]]}},"content":{"159":{"position":[[205,8],[526,8]]},"166":{"position":[[0,7],[25,7],[101,7],[134,7],[199,7],[293,9],[339,8],[414,7],[429,7]]}},"keywords":{}}],["release2020",{"_index":974,"title":{},"content":{"159":{"position":[[306,11]]}},"keywords":{}}],["released2020",{"_index":977,"title":{},"content":{"159":{"position":[[332,12]]}},"keywords":{}}],["released2021",{"_index":985,"title":{},"content":{"159":{"position":[[434,12]]}},"keywords":{}}],["released2022",{"_index":991,"title":{},"content":{"159":{"position":[[499,12]]}},"keywords":{}}],["remain",{"_index":266,"title":{},"content":{"6":{"position":[[969,7]]}},"keywords":{}}],["remov",{"_index":284,"title":{},"content":{"7":{"position":[[128,6]]},"159":{"position":[[92,6]]},"207":{"position":[[275,6]]},"255":{"position":[[165,6]]},"277":{"position":[[250,6]]},"367":{"position":[[45,7],[216,7]]},"383":{"position":[[0,6]]},"394":{"position":[[140,7],[269,7]]},"395":{"position":[[141,8]]},"437":{"position":[[0,6]]},"444":{"position":[[0,7]]}},"keywords":{}}],["renam",{"_index":2206,"title":{},"content":{"414":{"position":[[0,7]]}},"keywords":{}}],["replac",{"_index":1009,"title":{},"content":{"160":{"position":[[556,7]]},"264":{"position":[[353,9]]},"277":{"position":[[447,7],[527,8]]},"370":{"position":[[129,12]]},"385":{"position":[[123,8]]},"391":{"position":[[0,8]]}},"keywords":{}}],["repli",{"_index":1580,"title":{},"content":{"232":{"position":[[153,7]]}},"keywords":{}}],["report",{"_index":1012,"title":{},"content":{"160":{"position":[[735,9]]},"315":{"position":[[118,9]]}},"keywords":{}}],["reportbatchitemfailur",{"_index":1866,"title":{},"content":{"315":{"position":[[10,23]]}},"keywords":{}}],["repositori",{"_index":877,"title":{},"content":{"152":{"position":[[99,11]]}},"keywords":{}}],["repres",{"_index":1785,"title":{},"content":{"282":{"position":[[253,10]]}},"keywords":{}}],["represent",{"_index":1616,"title":{},"content":{"239":{"position":[[377,15]]}},"keywords":{}}],["request",{"_index":77,"title":{"194":{"position":[[0,10]]},"281":{"position":[[0,7]]}},"content":{"2":{"position":[[595,9],[757,9],[887,9],[1019,9],[1142,7],[1235,9]]},"5":{"position":[[1837,7]]},"103":{"position":[[742,9],[810,8]]},"104":{"position":[[681,9],[749,8]]},"152":{"position":[[155,9]]},"153":{"position":[[412,7],[893,9],[1156,9]]},"161":{"position":[[283,7]]},"163":{"position":[[187,8],[298,7],[746,7]]},"170":{"position":[[557,9]]},"177":{"position":[[317,8]]},"178":{"position":[[1161,8],[1237,7],[1326,7]]},"189":{"position":[[1119,9],[1457,9]]},"197":{"position":[[566,7],[642,8]]},"202":{"position":[[562,7],[638,8]]},"228":{"position":[[975,9]]},"232":{"position":[[193,9],[1084,7],[1183,7],[1310,8]]},"248":{"position":[[394,7]]},"263":{"position":[[407,7]]},"265":{"position":[[328,7]]},"278":{"position":[[542,9]]},"280":{"position":[[237,7]]},"281":{"position":[[566,8],[760,8],[898,8],[1023,8],[1203,8]]},"286":{"position":[[293,7],[369,8]]},"291":{"position":[[595,8]]},"298":{"position":[[560,7],[1115,8]]},"303":{"position":[[545,7],[621,8]]},"308":{"position":[[594,7],[670,8]]},"318":{"position":[[405,7],[481,8]]},"324":{"position":[[1253,7]]},"327":{"position":[[525,7],[653,8],[1197,11]]},"328":{"position":[[1009,9],[1100,7]]},"340":{"position":[[606,8]]},"369":{"position":[[502,9],[741,9]]},"388":{"position":[[53,7]]},"399":{"position":[[157,7]]},"434":{"position":[[106,9],[171,8]]},"472":{"position":[[408,9],[453,7],[506,9],[545,7],[628,9]]},"473":{"position":[[530,9],[600,9],[671,9]]},"474":{"position":[[226,7],[1211,9],[1276,8],[1415,8]]},"475":{"position":[[480,9],[541,9],[604,9],[770,8],[878,10]]},"478":{"position":[[424,7],[600,7]]}},"keywords":{}}],["request.context",{"_index":1452,"title":{},"content":{"197":{"position":[[1048,16]]},"202":{"position":[[1043,16]]},"286":{"position":[[776,16]]},"298":{"position":[[1523,16]]},"303":{"position":[[1020,16]]},"308":{"position":[[1070,16]]},"318":{"position":[[881,16]]},"327":{"position":[[1053,16]]},"359":{"position":[[262,17]]}},"keywords":{}}],["request.context.config",{"_index":782,"title":{},"content":{"104":{"position":[[699,23]]}},"keywords":{}}],["request.context.defaults.glob",{"_index":1986,"title":{},"content":{"328":{"position":[[417,31]]}},"keywords":{}}],["request.context.secret",{"_index":770,"title":{},"content":{"103":{"position":[[760,23]]}},"keywords":{}}],["request.error",{"_index":1016,"title":{},"content":{"160":{"position":[[901,13]]}},"keywords":{}}],["request.error.caus",{"_index":2074,"title":{},"content":{"359":{"position":[[985,20]]},"429":{"position":[[62,19]]}},"keywords":{}}],["request.error.detail",{"_index":2221,"title":{},"content":{"429":{"position":[[37,21]]}},"keywords":{}}],["request.error.response.import",{"_index":2075,"title":{},"content":{"359":{"position":[[1044,32]]}},"keywords":{}}],["request.ev",{"_index":2061,"title":{},"content":{"359":{"position":[[111,15]]}},"keywords":{}}],["request.event.bodi",{"_index":2237,"title":{},"content":{"450":{"position":[[144,18]]}},"keywords":{}}],["request.event.rawbodi",{"_index":2236,"title":{},"content":{"450":{"position":[[120,21]]}},"keywords":{}}],["request.event.sourc",{"_index":2168,"title":{},"content":{"395":{"position":[[277,21]]}},"keywords":{}}],["request.intern",{"_index":78,"title":{},"content":{"2":{"position":[[613,16]]}},"keywords":{}}],["request.internal.cachekey",{"_index":2143,"title":{},"content":{"369":{"position":[[667,25]]}},"keywords":{}}],["request.respons",{"_index":914,"title":{},"content":{"153":{"position":[[1249,16]]},"160":{"position":[[789,16],[808,16],[961,16]]},"189":{"position":[[1550,16]]},"278":{"position":[[632,17]]},"359":{"position":[[523,18]]},"369":{"position":[[809,17]]},"472":{"position":[[560,16],[649,17]]}},"keywords":{}}],["request.response.add",{"_index":1014,"title":{},"content":{"160":{"position":[[850,20]]}},"keywords":{}}],["request.support",{"_index":1288,"title":{},"content":{"175":{"position":[[189,18]]}},"keywords":{}}],["request/respons",{"_index":1957,"title":{},"content":{"324":{"position":[[1307,16]]}},"keywords":{}}],["requestend",{"_index":525,"title":{},"content":{"21":{"position":[[728,10],[867,10]]},"22":{"position":[[588,10],[727,10]]}},"keywords":{}}],["requestid",{"_index":1479,"title":{},"content":{"208":{"position":[[244,12]]}},"keywords":{}}],["requestrout",{"_index":1822,"title":{},"content":{"291":{"position":[[795,12]]}},"keywords":{}}],["requestshttp",{"_index":1771,"title":{},"content":{"281":{"position":[[262,12]]}},"keywords":{}}],["requeststart",{"_index":515,"title":{},"content":{"21":{"position":[[457,12],[789,13]]},"22":{"position":[[362,12],[649,13]]}},"keywords":{}}],["requesttoken.lambda",{"_index":1823,"title":{},"content":{"291":{"position":[[812,19]]}},"keywords":{}}],["requir",{"_index":208,"title":{},"content":{"5":{"position":[[1603,9],[1653,8]]},"12":{"position":[[249,7]]},"146":{"position":[[502,8]]},"156":{"position":[[68,8]]},"166":{"position":[[773,8]]},"173":{"position":[[529,11]]},"174":{"position":[[2549,13]]},"177":{"position":[[423,11]]},"181":{"position":[[345,11]]},"197":{"position":[[518,11],[1082,8]]},"202":{"position":[[514,11],[1077,8]]},"286":{"position":[[245,11],[810,8]]},"291":{"position":[[18,11],[835,8]]},"298":{"position":[[512,11],[1557,8]]},"303":{"position":[[497,11],[1054,8]]},"308":{"position":[[546,11],[1104,8]]},"312":{"position":[[110,8]]},"318":{"position":[[357,11],[915,8]]},"327":{"position":[[477,11],[1087,8],[1380,9]]},"340":{"position":[[711,8]]},"347":{"position":[[40,11],[92,11],[211,11],[315,11],[404,8]]},"351":{"position":[[36,11],[90,11],[180,11]]},"360":{"position":[[154,11]]},"361":{"position":[[181,11]]},"362":{"position":[[257,9],[997,9],[1690,9],[1748,9]]},"474":{"position":[[452,7]]},"478":{"position":[[1117,8]]}},"keywords":{}}],["require('@middy/cloudwatch",{"_index":1475,"title":{},"content":{"208":{"position":[[63,26]]}},"keywords":{}}],["require('@middy/cor",{"_index":149,"title":{},"content":{"5":{"position":[[219,22]]},"208":{"position":[[14,22]]},"333":{"position":[[14,22]]}},"keywords":{}}],["require('@middy/warmup",{"_index":1992,"title":{},"content":{"333":{"position":[[52,24]]}},"keywords":{}}],["require('crypto",{"_index":2135,"title":{},"content":{"369":{"position":[[112,17]]}},"keywords":{}}],["required.if",{"_index":2071,"title":{},"content":{"359":{"position":[[847,11]]}},"keywords":{}}],["requiredthi",{"_index":2176,"title":{},"content":{"398":{"position":[[130,12]]}},"keywords":{}}],["rerout",{"_index":1933,"title":{},"content":{"324":{"position":[[313,8]]}},"keywords":{}}],["res.eventstream",{"_index":1429,"title":{},"content":{"194":{"position":[[338,16]]}},"keywords":{}}],["res.text",{"_index":2287,"title":{},"content":{"474":{"position":[[1059,10]]}},"keywords":{}}],["resolut",{"_index":1348,"title":{},"content":{"182":{"position":[[1115,10]]}},"keywords":{}}],["resolv",{"_index":45,"title":{},"content":{"2":{"position":[[137,8]]},"13":{"position":[[36,7],[171,8]]},"148":{"position":[[300,9],[496,9]]},"474":{"position":[[306,8]]}},"keywords":{}}],["resourc",{"_index":1807,"title":{},"content":{"286":{"position":[[868,8]]}},"keywords":{}}],["respect",{"_index":1390,"title":{},"content":{"188":{"position":[[82,10]]}},"keywords":{}}],["respond",{"_index":805,"title":{"136":{"position":[[34,11]]}},"content":{"367":{"position":[[362,8]]},"388":{"position":[[28,7]]}},"keywords":{}}],["respons",{"_index":176,"title":{"191":{"position":[[10,8]]},"257":{"position":[[13,8]]},"261":{"position":[[5,8]]},"282":{"position":[[0,8]]},"289":{"position":[[10,8]]},"338":{"position":[[3,8]]},"380":{"position":[[13,9]]},"381":{"position":[[5,8]]},"388":{"position":[[10,9]]},"413":{"position":[[13,9]]},"414":{"position":[[5,8]]},"422":{"position":[[10,9]]},"432":{"position":[[3,9]]},"452":{"position":[[13,9]]},"453":{"position":[[5,8]]},"460":{"position":[[10,9]]},"469":{"position":[[3,9]]}},"content":{"5":{"position":[[888,8],[2051,9]]},"13":{"position":[[504,8],[599,8]]},"15":{"position":[[487,8],[555,8],[711,8],[806,8]]},"31":{"position":[[144,9]]},"34":{"position":[[791,9],[859,8]]},"37":{"position":[[842,9],[910,8]]},"43":{"position":[[791,9],[859,8]]},"91":{"position":[[791,9],[859,8]]},"128":{"position":[[89,9]]},"146":{"position":[[803,9],[871,8]]},"153":{"position":[[87,8],[154,8],[311,8],[1199,8]]},"160":{"position":[[333,8],[441,9],[568,8],[638,8],[780,8],[841,8]]},"161":{"position":[[641,8]]},"163":{"position":[[122,8],[314,9],[782,8]]},"168":{"position":[[437,8]]},"175":{"position":[[77,9]]},"189":{"position":[[116,8],[1500,8]]},"197":{"position":[[799,10],[902,9]]},"198":{"position":[[126,8],[227,8]]},"202":{"position":[[794,10],[897,9]]},"203":{"position":[[124,8],[225,8]]},"212":{"position":[[370,9]]},"232":{"position":[[231,8],[1653,9]]},"233":{"position":[[203,9]]},"244":{"position":[[271,9]]},"258":{"position":[[95,8]]},"259":{"position":[[109,9]]},"260":{"position":[[85,9],[148,8],[322,8],[466,9]]},"262":{"position":[[87,8]]},"264":{"position":[[138,8],[254,8],[334,8],[455,9]]},"266":{"position":[[80,8],[679,9]]},"270":{"position":[[195,8]]},"274":{"position":[[260,8]]},"278":{"position":[[144,8],[245,8],[489,8]]},"281":{"position":[[1118,9]]},"282":{"position":[[60,8],[84,8],[184,8],[348,10],[407,9],[424,8],[490,8],[516,8],[603,9],[622,8]]},"283":{"position":[[208,9]]},"286":{"position":[[527,10],[630,9]]},"287":{"position":[[127,8],[228,8]]},"290":{"position":[[92,8]]},"291":{"position":[[694,8]]},"293":{"position":[[103,9]]},"294":{"position":[[103,9]]},"298":{"position":[[1278,10],[1381,9]]},"299":{"position":[[398,9]]},"303":{"position":[[771,10],[874,9],[1167,8]]},"304":{"position":[[140,8],[241,8]]},"308":{"position":[[821,10],[924,9]]},"309":{"position":[[141,8],[242,8]]},"318":{"position":[[632,10],[735,9]]},"319":{"position":[[114,8],[215,8]]},"324":{"position":[[771,8],[823,8],[1261,9]]},"327":{"position":[[804,10],[907,9]]},"337":{"position":[[144,9]]},"339":{"position":[[85,8]]},"340":{"position":[[879,8]]},"342":{"position":[[66,9]]},"343":{"position":[[66,9]]},"352":{"position":[[123,9]]},"359":{"position":[[911,9],[1019,8]]},"362":{"position":[[725,8],[1172,9],[1225,9],[1320,8]]},"367":{"position":[[25,9],[84,8],[311,8]]},"369":{"position":[[589,8],[636,10],[656,8]]},"375":{"position":[[103,8]]},"382":{"position":[[47,9]]},"385":{"position":[[22,8]]},"398":{"position":[[373,9],[411,8],[466,8]]},"399":{"position":[[177,8]]},"405":{"position":[[56,8]]},"407":{"position":[[24,8]]},"408":{"position":[[22,8]]},"414":{"position":[[113,8]]},"416":{"position":[[24,8]]},"426":{"position":[[114,8]]},"432":{"position":[[11,9]]},"472":{"position":[[532,8],[579,8]]},"475":{"position":[[893,8]]}},"keywords":{}}],["response.secret",{"_index":1799,"title":{},"content":{"283":{"position":[[243,16]]}},"keywords":{}}],["response@seedrs/middyj",{"_index":1945,"title":{},"content":{"324":{"position":[[867,23]]}},"keywords":{}}],["responsecontenttyp",{"_index":1854,"title":{},"content":{"303":{"position":[[1182,19]]}},"keywords":{}}],["responsehttp",{"_index":1784,"title":{},"content":{"282":{"position":[[134,12]]}},"keywords":{}}],["responsejsonbodypars",{"_index":2038,"title":{},"content":{"354":{"position":[[915,22]]}},"keywords":{}}],["responseschema",{"_index":671,"title":{},"content":{"34":{"position":[[1285,14],[2237,14]]},"43":{"position":[[1285,14],[2248,14]]},"91":{"position":[[1285,14],[2262,14]]},"102":{"position":[[383,14],[642,14]]},"146":{"position":[[1297,14],[2249,14]]},"359":{"position":[[829,14]]},"362":{"position":[[946,14],[1131,14]]},"429":{"position":[[143,15]]}},"keywords":{}}],["responseschema.json",{"_index":672,"title":{},"content":{"34":{"position":[[1305,23]]},"43":{"position":[[1305,23]]},"91":{"position":[[1305,23]]},"102":{"position":[[403,23]]},"146":{"position":[[1317,23]]}},"keywords":{}}],["responsesjwt",{"_index":1949,"title":{},"content":{"324":{"position":[[1086,12]]}},"keywords":{}}],["responsewarmup",{"_index":1766,"title":{},"content":{"280":{"position":[[249,15]]}},"keywords":{}}],["rest",{"_index":187,"title":{"41":{"position":[[12,6]]}},"content":{"5":{"position":[[1157,4]]},"42":{"position":[[53,4]]}},"keywords":{}}],["result",{"_index":177,"title":{},"content":{"5":{"position":[[901,7]]},"177":{"position":[[609,6]]},"178":{"position":[[947,6]]},"183":{"position":[[152,6],[635,6]]},"281":{"position":[[944,6]]}},"keywords":{}}],["retri",{"_index":1364,"title":{},"content":{"183":{"position":[[745,6]]}},"keywords":{}}],["retriev",{"_index":1923,"title":{},"content":{"323":{"position":[[457,8]]}},"keywords":{}}],["retrydelayoptions.bas",{"_index":1978,"title":{},"content":{"327":{"position":[[1330,22]]}},"keywords":{}}],["return",{"_index":61,"title":{"153":{"position":[[6,6]]},"189":{"position":[[21,8]]}},"content":{"2":{"position":[[340,6],[473,6]]},"5":{"position":[[961,6],[2036,7]]},"21":{"position":[[271,6],[764,6],[2850,9]]},"22":{"position":[[624,6]]},"34":{"position":[[1417,6]]},"37":{"position":[[1542,6]]},"43":{"position":[[1417,6]]},"91":{"position":[[1417,6]]},"146":{"position":[[1429,6]]},"151":{"position":[[913,6]]},"153":{"position":[[6,6],[78,6],[147,6],[294,7],[549,7],[1029,7],[1084,6],[1268,6]]},"156":{"position":[[309,6]]},"160":{"position":[[650,8],[954,6]]},"161":{"position":[[653,9]]},"168":{"position":[[428,8],[503,6]]},"183":{"position":[[135,7],[619,6]]},"186":{"position":[[425,6],[610,6]]},"189":{"position":[[26,6],[107,6],[289,10],[1280,9],[1330,7],[1385,6],[1569,6]]},"192":{"position":[[180,6]]},"193":{"position":[[180,6]]},"198":{"position":[[220,6]]},"203":{"position":[[218,6]]},"212":{"position":[[160,6]]},"220":{"position":[[524,6]]},"221":{"position":[[607,6]]},"224":{"position":[[54,6]]},"229":{"position":[[731,6]]},"232":{"position":[[555,8],[811,8]]},"233":{"position":[[115,6]]},"236":{"position":[[257,6]]},"239":{"position":[[355,7]]},"240":{"position":[[184,6]]},"243":{"position":[[336,8]]},"248":{"position":[[206,6]]},"252":{"position":[[216,6]]},"256":{"position":[[142,6]]},"260":{"position":[[315,6]]},"264":{"position":[[166,6],[218,9],[313,9]]},"266":{"position":[[175,6]]},"270":{"position":[[151,6]]},"274":{"position":[[216,6]]},"278":{"position":[[238,6],[482,6]]},"287":{"position":[[221,6]]},"293":{"position":[[248,6]]},"294":{"position":[[215,6]]},"299":{"position":[[131,6]]},"304":{"position":[[234,6]]},"309":{"position":[[235,6]]},"314":{"position":[[244,6],[261,6]]},"319":{"position":[[208,6]]},"324":{"position":[[504,9],[987,6]]},"328":{"position":[[108,6],[603,6]]},"332":{"position":[[73,7]]},"337":{"position":[[274,6]]},"342":{"position":[[130,6]]},"343":{"position":[[130,6]]},"348":{"position":[[244,6],[400,6]]},"352":{"position":[[298,6],[437,6]]},"362":{"position":[[211,6],[927,6],[1644,6]]},"363":{"position":[[902,6]]},"364":{"position":[[504,6]]},"365":{"position":[[463,6]]},"367":{"position":[[77,6],[420,8]]},"369":{"position":[[649,6],[829,6]]},"395":{"position":[[384,6]]},"398":{"position":[[366,6],[840,6]]},"399":{"position":[[217,6]]},"408":{"position":[[10,7]]},"472":{"position":[[173,6],[682,6],[728,6],[1110,6]]},"474":{"position":[[1099,6],[1465,6]]},"475":{"position":[[631,6]]},"476":{"position":[[412,7],[712,6]]},"478":{"position":[[666,6]]}},"keywords":{}}],["reus",{"_index":1,"title":{"0":{"position":[[11,5]]}},"content":{"0":{"position":[[11,5],[157,5],[227,7]]},"164":{"position":[[109,5]]}},"keywords":{}}],["reusabl",{"_index":128,"title":{},"content":{"4":{"position":[[479,8]]}},"keywords":{}}],["revers",{"_index":2175,"title":{},"content":{"398":{"position":[[31,8]]},"408":{"position":[[123,7]]}},"keywords":{}}],["review",{"_index":978,"title":{},"content":{"159":{"position":[[345,6],[369,6],[459,6]]},"398":{"position":[[285,7]]}},"keywords":{}}],["reviv",{"_index":1624,"title":{},"content":{"247":{"position":[[0,7],[33,7]]},"336":{"position":[[0,7],[42,7]]}},"keywords":{}}],["rewrit",{"_index":1935,"title":{},"content":{"324":{"position":[[349,7]]},"416":{"position":[[71,7]]},"426":{"position":[[9,7]]}},"keywords":{}}],["rfc",{"_index":1194,"title":{},"content":{"171":{"position":[[479,4]]}},"keywords":{}}],["right",{"_index":573,"title":{},"content":{"21":{"position":[[1971,6]]},"161":{"position":[[624,5]]},"219":{"position":[[558,5]]}},"keywords":{}}],["role",{"_index":769,"title":{},"content":{"103":{"position":[[708,10]]},"283":{"position":[[522,5]]},"286":{"position":[[761,4]]},"324":{"position":[[1393,5]]},"327":{"position":[[296,4],[1038,4]]},"386":{"position":[[69,6]]},"393":{"position":[[31,4]]}},"keywords":{}}],["rolearn",{"_index":768,"title":{},"content":{"103":{"position":[[699,8]]},"319":{"position":[[273,8]]}},"keywords":{}}],["rolesessionnam",{"_index":1878,"title":{},"content":{"319":{"position":[[289,16]]}},"keywords":{}}],["rollup",{"_index":405,"title":{"13":{"position":[[0,7]]}},"content":{"13":{"position":[[9,6]]}},"keywords":{}}],["rollup.config.mj",{"_index":408,"title":{},"content":{"13":{"position":[[103,18]]}},"keywords":{}}],["rollup/plugin",{"_index":406,"title":{},"content":{"13":{"position":[[16,14],[44,14],[150,15],[201,15]]}},"keywords":{}}],["room",{"_index":2315,"title":{},"content":{"478":{"position":[[959,4]]}},"keywords":{}}],["rotat",{"_index":851,"title":{},"content":{"151":{"position":[[379,8]]},"298":{"position":[[996,8]]}},"keywords":{}}],["round",{"_index":1537,"title":{},"content":{"224":{"position":[[163,5]]},"395":{"position":[[28,5]]}},"keywords":{}}],["rout",{"_index":636,"title":{},"content":{"31":{"position":[[411,6]]},"37":{"position":[[1349,6]]},"322":{"position":[[1362,6]]},"347":{"position":[[0,6],[61,5]]},"348":{"position":[[451,6]]},"351":{"position":[[0,6],[57,5],[116,5]]},"415":{"position":[[15,7]]},"433":{"position":[[15,7]]}},"keywords":{}}],["routekey",{"_index":637,"title":{},"content":{"31":{"position":[[424,9],[475,9],[532,9]]},"351":{"position":[[72,8]]},"352":{"position":[[551,9],[602,9]]}},"keywords":{}}],["router",{"_index":629,"title":{"345":{"position":[[5,6]]},"349":{"position":[[3,6]]},"415":{"position":[[5,7]]},"433":{"position":[[3,7]]},"454":{"position":[[5,7]]},"470":{"position":[[3,7]]}},"content":{"31":{"position":[[193,7]]},"37":{"position":[[75,7]]},"322":{"position":[[1354,7]]},"346":{"position":[[87,6]]},"347":{"position":[[518,6],[700,6]]},"348":{"position":[[75,7]]},"350":{"position":[[73,6]]},"351":{"position":[[286,6],[468,6]]},"352":{"position":[[71,7]]}},"keywords":{}}],["routers!bett",{"_index":2172,"title":{},"content":{"397":{"position":[[46,14]]}},"keywords":{}}],["routes[].path",{"_index":2016,"title":{},"content":{"347":{"position":[[423,13]]}},"keywords":{}}],["rule",{"_index":1937,"title":{},"content":{"324":{"position":[[403,5]]}},"keywords":{}}],["run",{"_index":510,"title":{},"content":{"21":{"position":[[382,3],[2180,3]]},"167":{"position":[[1420,7]]},"175":{"position":[[378,7]]},"211":{"position":[[268,7]]},"212":{"position":[[248,4]]},"232":{"position":[[1613,4]]},"233":{"position":[[163,4]]},"244":{"position":[[231,4]]},"264":{"position":[[99,4]]},"270":{"position":[[261,4]]},"274":{"position":[[354,4]]},"299":{"position":[[293,7]]},"347":{"position":[[737,3]]},"351":{"position":[[505,3]]},"363":{"position":[[0,3],[29,7]]}},"keywords":{}}],["runonbefor",{"_index":1489,"title":{},"content":{"211":{"position":[[214,11]]}},"keywords":{}}],["runtim",{"_index":1081,"title":{},"content":{"166":{"position":[[285,7],[369,8]]},"356":{"position":[[123,7]]}},"keywords":{}}],["s3",{"_index":424,"title":{"111":{"position":[[0,2]]},"117":{"position":[[0,2]]},"126":{"position":[[0,2]]},"289":{"position":[[0,2]]},"301":{"position":[[0,2]]},"387":{"position":[[0,2]]},"388":{"position":[[0,2]]},"421":{"position":[[0,2]]},"422":{"position":[[0,2]]},"460":{"position":[[0,2]]}},"content":{"13":{"position":[[574,4]]},"15":{"position":[[781,4]]},"104":{"position":[[456,3],[857,3]]},"112":{"position":[[29,2]]},"113":{"position":[[164,2]]},"118":{"position":[[29,2]]},"127":{"position":[[13,2],[29,2],[71,2]]},"251":{"position":[[992,2]]},"283":{"position":[[233,2]]},"290":{"position":[[140,2]]},"291":{"position":[[49,2],[871,2]]},"295":{"position":[[40,2]]},"302":{"position":[[124,2]]},"303":{"position":[[735,4]]},"304":{"position":[[39,2],[266,4]]},"305":{"position":[[40,2]]},"324":{"position":[[424,2]]},"388":{"position":[[39,2]]}},"keywords":{}}],["s3.awsclientopt",{"_index":1817,"title":{},"content":{"291":{"position":[[249,19]]}},"keywords":{}}],["s3.s3",{"_index":1798,"title":{},"content":{"283":{"position":[[195,5]]}},"keywords":{}}],["s3.writegetobjectrespons",{"_index":1821,"title":{},"content":{"291":{"position":[[758,26]]}},"keywords":{}}],["s3:getobjectif",{"_index":1852,"title":{},"content":{"303":{"position":[[1090,14]]}},"keywords":{}}],["s3client",{"_index":1816,"title":{},"content":{"291":{"position":[[133,10],[144,8],[309,8]]},"303":{"position":[[28,10],[39,8],[220,8]]}},"keywords":{}}],["s3middlewar",{"_index":775,"title":{},"content":{"104":{"position":[[132,12],[428,14]]}},"keywords":{}}],["s3objectrespons",{"_index":1825,"title":{},"content":{"293":{"position":[[63,16],[314,18]]},"294":{"position":[[63,16],[269,18]]}},"keywords":{}}],["s3objectresponsemiddlewar",{"_index":794,"title":{},"content":{"128":{"position":[[39,26]]}},"keywords":{}}],["safe",{"_index":1110,"title":{},"content":{"167":{"position":[[256,6]]},"183":{"position":[[737,4]]},"224":{"position":[[158,4]]},"406":{"position":[[53,4]]}},"keywords":{}}],["same",{"_index":88,"title":{},"content":{"2":{"position":[[819,4]]},"160":{"position":[[236,4]]},"164":{"position":[[279,4]]},"178":{"position":[[1474,4]]},"183":{"position":[[74,4],[147,4],[180,4],[314,4],[569,4],[630,4],[687,4]]}},"keywords":{}}],["sampl",{"_index":900,"title":{"174":{"position":[[0,6]]},"178":{"position":[[0,6]]},"182":{"position":[[0,6]]},"186":{"position":[[0,6]]},"198":{"position":[[0,6]]},"203":{"position":[[0,6]]},"208":{"position":[[0,6]]},"212":{"position":[[0,6]]},"216":{"position":[[0,6]]},"220":{"position":[[0,6]]},"225":{"position":[[0,6]]},"229":{"position":[[0,6]]},"233":{"position":[[0,6]]},"236":{"position":[[0,6]]},"240":{"position":[[0,6]]},"244":{"position":[[0,6]]},"248":{"position":[[0,6]]},"252":{"position":[[0,6]]},"256":{"position":[[0,6]]},"260":{"position":[[0,6]]},"266":{"position":[[0,6]]},"270":{"position":[[0,6]]},"274":{"position":[[0,6]]},"278":{"position":[[0,6]]},"287":{"position":[[0,6]]},"292":{"position":[[0,6]]},"299":{"position":[[0,6]]},"304":{"position":[[0,6]]},"309":{"position":[[0,6]]},"314":{"position":[[0,6]]},"319":{"position":[[0,6]]},"328":{"position":[[0,6]]},"333":{"position":[[0,6]]},"337":{"position":[[0,6]]},"341":{"position":[[0,6]]},"348":{"position":[[0,6]]},"352":{"position":[[0,6]]},"362":{"position":[[0,6]]}},"content":{"153":{"position":[[616,6],[1343,6]]},"157":{"position":[[56,7],[101,7],[146,7]]},"171":{"position":[[248,8]]},"173":{"position":[[406,6]]},"189":{"position":[[1644,6]]},"270":{"position":[[285,6]]},"274":{"position":[[378,6]]}},"keywords":{}}],["save",{"_index":920,"title":{},"content":{"155":{"position":[[61,4],[229,4]]},"172":{"position":[[26,4]]},"176":{"position":[[26,4]]},"180":{"position":[[26,4]]},"184":{"position":[[26,4]]},"196":{"position":[[70,4],[106,4]]},"201":{"position":[[70,4],[105,4]]},"206":{"position":[[70,4]]},"210":{"position":[[70,4]]},"214":{"position":[[70,4]]},"218":{"position":[[70,4]]},"223":{"position":[[70,4]]},"227":{"position":[[70,4]]},"231":{"position":[[70,4]]},"235":{"position":[[70,4]]},"238":{"position":[[70,4]]},"242":{"position":[[70,4]]},"246":{"position":[[70,4]]},"250":{"position":[[70,4]]},"254":{"position":[[70,4]]},"258":{"position":[[70,4]]},"262":{"position":[[70,4]]},"268":{"position":[[70,4]]},"272":{"position":[[70,4]]},"276":{"position":[[70,4]]},"285":{"position":[[70,4],[107,4]]},"290":{"position":[[70,4],[115,4]]},"297":{"position":[[70,4],[112,4]]},"302":{"position":[[70,4],[99,4]]},"307":{"position":[[70,4],[114,4]]},"312":{"position":[[70,4],[148,4]]},"317":{"position":[[70,4],[100,4]]},"326":{"position":[[70,4],[100,4]]},"331":{"position":[[70,4]]},"335":{"position":[[58,4]]},"339":{"position":[[70,4],[108,4]]},"346":{"position":[[70,4]]},"350":{"position":[[58,4]]},"358":{"position":[[70,4],[106,4]]}},"keywords":{}}],["schedul",{"_index":1840,"title":{},"content":{"298":{"position":[[1005,10]]}},"keywords":{}}],["schema",{"_index":188,"title":{},"content":{"5":{"position":[[1185,6]]},"7":{"position":[[920,6],[952,6]]},"21":{"position":[[2207,6],[2302,6]]},"148":{"position":[[432,7]]},"359":{"position":[[1089,7],[1194,8]]},"360":{"position":[[15,6],[138,6],[171,6]]},"362":{"position":[[230,6],[1663,6],[1863,6]]},"394":{"position":[[46,6]]},"466":{"position":[[799,7]]}},"keywords":{}}],["schema.event.j",{"_index":2115,"title":{},"content":{"363":{"position":[[709,19]]}},"keywords":{}}],["schema.event.json",{"_index":2120,"title":{},"content":{"364":{"position":[[219,21]]},"365":{"position":[[288,21]]}},"keywords":{}}],["schema.html#json",{"_index":2099,"title":{},"content":{"362":{"position":[[1902,16]]}},"keywords":{}}],["schemas.w",{"_index":1782,"title":{},"content":{"281":{"position":[[1143,10]]}},"keywords":{}}],["scone",{"_index":1739,"title":{},"content":{"274":{"position":[[629,8]]}},"keywords":{}}],["scope",{"_index":1086,"title":{},"content":{"166":{"position":[[451,7]]}},"keywords":{}}],["scopenormalizehttprespons",{"_index":2193,"title":{},"content":{"399":{"position":[[120,26]]}},"keywords":{}}],["script",{"_index":2101,"title":{},"content":{"363":{"position":[[12,6]]}},"keywords":{}}],["sdk",{"_index":417,"title":{},"content":{"13":{"position":[[444,3]]},"15":{"position":[[651,3]]},"128":{"position":[[162,3]]},"170":{"position":[[460,3],[575,3]]},"175":{"position":[[304,3],[332,3]]},"178":{"position":[[1431,3]]},"197":{"position":[[492,3]]},"199":{"position":[[16,3]]},"202":{"position":[[488,3]]},"204":{"position":[[16,3]]},"288":{"position":[[16,3]]},"291":{"position":[[432,3],[531,3]]},"295":{"position":[[16,3]]},"298":{"position":[[486,3]]},"300":{"position":[[16,3]]},"303":{"position":[[471,3]]},"305":{"position":[[16,3]]},"308":{"position":[[520,3]]},"310":{"position":[[16,3]]},"318":{"position":[[331,3]]},"320":{"position":[[16,3]]},"327":{"position":[[451,3]]},"329":{"position":[[16,3]]},"340":{"position":[[542,3]]},"344":{"position":[[16,3]]},"459":{"position":[[19,3]]},"460":{"position":[[19,3]]},"461":{"position":[[19,3]]},"462":{"position":[[19,3]]},"464":{"position":[[19,3]]},"465":{"position":[[19,3]]},"469":{"position":[[19,3]]}},"keywords":{}}],["sdk/client",{"_index":418,"title":{},"content":{"13":{"position":[[454,10],[519,10],[563,10],[614,10],[675,10],[739,10],[776,10]]},"15":{"position":[[661,10],[726,10],[770,10],[821,10],[882,10],[946,10],[983,10]]},"178":{"position":[[154,10]]},"184":{"position":[[71,10]]},"194":{"position":[[68,10]]},"196":{"position":[[120,10]]},"197":{"position":[[147,10]]},"199":{"position":[[29,10]]},"201":{"position":[[119,10]]},"202":{"position":[[145,10]]},"204":{"position":[[29,10]]},"290":{"position":[[129,10]]},"291":{"position":[[238,10]]},"295":{"position":[[29,10]]},"297":{"position":[[126,10]]},"298":{"position":[[157,10]]},"300":{"position":[[29,10]]},"302":{"position":[[113,10]]},"303":{"position":[[133,10]]},"305":{"position":[[29,10]]},"307":{"position":[[128,10]]},"308":{"position":[[161,10]]},"310":{"position":[[29,10]]},"312":{"position":[[162,10]]},"317":{"position":[[114,10]]},"318":{"position":[[135,10]]},"320":{"position":[[29,10]]},"326":{"position":[[114,10]]},"327":{"position":[[136,10]]},"329":{"position":[[29,10]]},"339":{"position":[[122,10]]},"340":{"position":[[169,10]]},"344":{"position":[[29,10]]}},"keywords":{}}],["sdk/lib",{"_index":1366,"title":{},"content":{"184":{"position":[[96,7]]}},"keywords":{}}],["sdk/rd",{"_index":1803,"title":{},"content":{"285":{"position":[[121,7]]},"286":{"position":[[129,7]]},"288":{"position":[[29,7]]}},"keywords":{}}],["sdk/util",{"_index":1460,"title":{},"content":{"201":{"position":[[144,8]]}},"keywords":{}}],["se",{"_index":802,"title":{"129":{"position":[[0,3]]}},"content":{"130":{"position":[[29,3]]}},"keywords":{}}],["sec",{"_index":2045,"title":{},"content":{"355":{"position":[[124,3],[257,3]]}},"keywords":{}}],["secret",{"_index":749,"title":{"103":{"position":[[5,8]]},"123":{"position":[[0,7]]},"296":{"position":[[0,7]]},"389":{"position":[[0,7]]},"423":{"position":[[0,7]]},"461":{"position":[[0,7]]}},"content":{"124":{"position":[[22,7]]},"178":{"position":[[165,7]]},"197":{"position":[[337,7]]},"202":{"position":[[333,7]]},"283":{"position":[[297,7]]},"297":{"position":[[137,7]]},"298":{"position":[[168,7],[340,7],[727,7],[973,7],[1229,7],[1512,7]]},"299":{"position":[[354,7]]},"300":{"position":[[40,7]]},"303":{"position":[[316,7]]},"308":{"position":[[365,7]]},"323":{"position":[[545,7]]},"328":{"position":[[946,8]]},"340":{"position":[[387,7]]}},"keywords":{}}],["secretid.fetchrotationd",{"_index":1832,"title":{},"content":{"298":{"position":[[578,26]]}},"keywords":{}}],["secretsmanag",{"_index":426,"title":{},"content":{"13":{"position":[[625,16]]},"15":{"position":[[832,16]]},"103":{"position":[[529,15],[908,15]]},"151":{"position":[[255,15],[334,14]]},"299":{"position":[[39,14],[157,16]]}},"keywords":{}}],["secretsmanager:describesecret",{"_index":1844,"title":{},"content":{"298":{"position":[[1655,29]]}},"keywords":{}}],["secretsmanager:getsecretvalu",{"_index":1842,"title":{},"content":{"298":{"position":[[1593,30]]}},"keywords":{}}],["secretsmanagercli",{"_index":1299,"title":{},"content":{"178":{"position":[[120,20],[294,24]]},"298":{"position":[[28,22],[51,20],[241,20]]}},"keywords":{}}],["secretsmanagermiddlewar",{"_index":752,"title":{},"content":{"103":{"position":[[133,24],[489,26]]}},"keywords":{}}],["section",{"_index":20,"title":{},"content":{"1":{"position":[[14,7]]},"157":{"position":[[1057,8]]},"189":{"position":[[33,8],[732,8]]}},"keywords":{}}],["secur",{"_index":29,"title":{"253":{"position":[[5,8]]},"382":{"position":[[5,8]]},"416":{"position":[[5,8]]},"455":{"position":[[5,8]]}},"content":{"1":{"position":[[107,8]]},"34":{"position":[[935,8]]},"37":{"position":[[986,8]]},"43":{"position":[[935,8]]},"91":{"position":[[935,8]]},"146":{"position":[[947,8]]},"151":{"position":[[226,6],[324,6]]},"254":{"position":[[87,8]]},"256":{"position":[[77,8]]},"282":{"position":[[288,8],[328,8]]},"318":{"position":[[1052,8]]},"420":{"position":[[43,8]]},"423":{"position":[[43,8]]},"474":{"position":[[95,8]]}},"keywords":{}}],["securestr",{"_index":1966,"title":{},"content":{"327":{"position":[[555,12]]}},"keywords":{}}],["securestring.ssm",{"_index":849,"title":{},"content":{"151":{"position":[[281,16]]}},"keywords":{}}],["securityienoopen",{"_index":1665,"title":{},"content":{"255":{"position":[[233,16]]}},"keywords":{}}],["see",{"_index":15,"title":{},"content":{"0":{"position":[[223,3]]},"21":{"position":[[2792,3]]},"156":{"position":[[12,3]]},"161":{"position":[[688,3]]},"174":{"position":[[1165,4],[2267,3]]},"179":{"position":[[612,3]]},"188":{"position":[[601,3]]},"197":{"position":[[357,3]]},"202":{"position":[[353,3]]},"207":{"position":[[421,3]]},"298":{"position":[[360,3]]},"303":{"position":[[336,3]]},"308":{"position":[[385,3]]},"315":{"position":[[114,3]]},"318":{"position":[[1070,3]]},"327":{"position":[[320,3]]},"340":{"position":[[407,3]]},"354":{"position":[[337,3]]},"389":{"position":[[12,3]]},"392":{"position":[[12,3]]},"398":{"position":[[203,4]]},"450":{"position":[[204,3]]},"473":{"position":[[360,3],[741,3]]},"477":{"position":[[57,3]]},"478":{"position":[[1040,3]]}},"keywords":{}}],["seen",{"_index":1054,"title":{},"content":{"164":{"position":[[237,4]]}},"keywords":{}}],["segment",{"_index":1287,"title":{},"content":{"175":{"position":[[171,8]]},"177":{"position":[[329,7],[619,7]]},"178":{"position":[[573,7],[690,7],[817,8],[991,7],[1309,7]]},"188":{"position":[[339,7],[503,7]]},"189":{"position":[[444,7]]}},"keywords":{}}],["self",{"_index":738,"title":{"95":{"position":[[7,4]]}},"content":{"96":{"position":[[18,4]]}},"keywords":{}}],["send",{"_index":1404,"title":{},"content":{"189":{"position":[[456,4]]}},"keywords":{}}],["sensit",{"_index":1747,"title":{},"content":{"277":{"position":[[345,9]]}},"keywords":{}}],["sent",{"_index":1046,"title":{},"content":{"163":{"position":[[806,4]]},"178":{"position":[[1026,4]]},"182":{"position":[[934,4]]}},"keywords":{}}],["separ",{"_index":2073,"title":{},"content":{"359":{"position":[[948,11]]}},"keywords":{}}],["sequenc",{"_index":1010,"title":{},"content":{"160":{"position":[[624,9]]}},"keywords":{}}],["serial",{"_index":125,"title":{"261":{"position":[[14,10]]},"264":{"position":[[0,10]]},"381":{"position":[[14,11]]},"414":{"position":[[14,11]]},"453":{"position":[[14,11]]}},"content":{"4":{"position":[[442,14]]},"6":{"position":[[324,14]]},"34":{"position":[[868,11],[2024,12],[2071,11]]},"37":{"position":[[919,11],[2149,12],[2196,11]]},"43":{"position":[[868,11],[2024,12],[2071,11]]},"91":{"position":[[868,11],[2049,12],[2096,11]]},"146":{"position":[[880,11],[2036,12],[2083,11]]},"153":{"position":[[432,14]]},"262":{"position":[[96,10]]},"263":{"position":[[46,12],[61,12],[107,11],[213,11],[292,11]]},"264":{"position":[[16,10],[76,10]]},"265":{"position":[[60,10],[483,10]]},"266":{"position":[[89,11],[249,12],[295,11],[401,11],[480,11]]},"282":{"position":[[499,11]]},"324":{"position":[[780,11],[808,10]]}},"keywords":{}}],["serializer.sq",{"_index":1790,"title":{},"content":{"282":{"position":[[525,14]]}},"keywords":{}}],["serv",{"_index":1745,"title":{},"content":{"277":{"position":[[313,5]]},"473":{"position":[[62,5]]}},"keywords":{}}],["server",{"_index":828,"title":{"148":{"position":[[7,6]]}},"content":{"148":{"position":[[7,6],[218,6]]}},"keywords":{}}],["server/x",{"_index":1662,"title":{},"content":{"255":{"position":[[176,8]]}},"keywords":{}}],["serverless",{"_index":226,"title":{"149":{"position":[[0,10]]},"150":{"position":[[0,10]]}},"content":{"6":{"position":[[29,10],[1144,10]]},"149":{"position":[[0,10],[170,10]]},"150":{"position":[[0,10]]},"159":{"position":[[120,10]]},"170":{"position":[[118,10]]},"332":{"position":[[245,10]]},"395":{"position":[[303,11]]}},"keywords":{}}],["serverless/ev",{"_index":318,"title":{},"content":{"7":{"position":[[763,20]]}},"keywords":{}}],["serverlessairlin",{"_index":1221,"title":{},"content":{"174":{"position":[[151,19]]},"178":{"position":[[224,19]]},"182":{"position":[[157,20]]}},"keywords":{}}],["servic",{"_index":8,"title":{"151":{"position":[[24,7]]},"306":{"position":[[0,7]]},"424":{"position":[[0,7]]},"462":{"position":[[0,7]]}},"content":{"0":{"position":[[90,9]]},"151":{"position":[[24,7]]},"173":{"position":[[247,7]]},"175":{"position":[[44,7]]},"177":{"position":[[95,7]]},"178":{"position":[[892,7],[1375,7]]},"179":{"position":[[265,8]]},"181":{"position":[[95,7]]},"182":{"position":[[986,8]]},"283":{"position":[[340,7],[556,9]]}},"keywords":{}}],["service_undefined.defaultnamespac",{"_index":1322,"title":{},"content":{"181":{"position":[[168,34]]}},"keywords":{}}],["service_undefined.en",{"_index":1293,"title":{},"content":{"177":{"position":[[168,25]]}},"keywords":{}}],["service_undefined.sampleratevalu",{"_index":1206,"title":{},"content":{"173":{"position":[[320,33]]}},"keywords":{}}],["servicediscoveri",{"_index":429,"title":{},"content":{"13":{"position":[[686,18]]},"15":{"position":[[893,18]]},"307":{"position":[[139,16]]},"309":{"position":[[39,16],[267,18]]},"310":{"position":[[40,16]]}},"keywords":{}}],["servicediscovery.awsclientopt",{"_index":1857,"title":{},"content":{"308":{"position":[[172,33]]}},"keywords":{}}],["servicediscovery:discoverinst",{"_index":1858,"title":{},"content":{"308":{"position":[[1140,34]]}},"keywords":{}}],["servicediscoverycli",{"_index":1856,"title":{},"content":{"308":{"position":[[28,24],[53,22],[255,22]]}},"keywords":{}}],["servicenam",{"_index":1220,"title":{},"content":{"174":{"position":[[138,12]]},"177":{"position":[[73,11]]},"178":{"position":[[211,12]]},"181":{"position":[[73,11]]},"182":{"position":[[178,12]]},"309":{"position":[[334,12]]}},"keywords":{}}],["services.ssm",{"_index":1801,"title":{},"content":{"283":{"position":[[408,13]]}},"keywords":{}}],["set",{"_index":3,"title":{},"content":{"0":{"position":[[28,3]]},"2":{"position":[[79,3],[376,4]]},"21":{"position":[[2840,4]]},"151":{"position":[[985,3]]},"167":{"position":[[444,3],[910,7]]},"197":{"position":[[378,3],[683,7]]},"202":{"position":[[374,3],[679,7]]},"207":{"position":[[65,4]]},"211":{"position":[[26,4],[176,3],[247,4]]},"212":{"position":[[329,3]]},"228":{"position":[[833,3]]},"232":{"position":[[40,4],[203,3]]},"243":{"position":[[283,7]]},"255":{"position":[[250,4]]},"264":{"position":[[64,3]]},"280":{"position":[[133,4]]},"282":{"position":[[23,4],[108,4]]},"286":{"position":[[410,7]]},"291":{"position":[[636,7]]},"298":{"position":[[381,3],[1156,7]]},"303":{"position":[[357,3],[662,7],[1153,3]]},"308":{"position":[[406,3],[711,7]]},"318":{"position":[[522,7]]},"327":{"position":[[341,3],[694,7]]},"332":{"position":[[238,3]]},"340":{"position":[[428,3],[647,7],[812,3],[827,3],[927,3]]},"347":{"position":[[820,3],[839,3]]},"398":{"position":[[853,3]]},"399":{"position":[[37,3]]},"410":{"position":[[33,3]]},"438":{"position":[[27,3]]},"451":{"position":[[18,3]]},"476":{"position":[[236,3],[364,3]]}},"keywords":{}}],["setprototypeof/test",{"_index":341,"title":{},"content":{"7":{"position":[[1244,22]]}},"keywords":{}}],["settocontext",{"_index":1849,"title":{},"content":{"299":{"position":[[259,13]]},"304":{"position":[[325,13]]},"328":{"position":[[350,13]]},"474":{"position":[[736,13]]}},"keywords":{}}],["settoenv",{"_index":2212,"title":{},"content":{"420":{"position":[[11,8]]},"423":{"position":[[11,8]]},"427":{"position":[[11,8]]},"434":{"position":[[18,8]]}},"keywords":{}}],["setup",{"_index":282,"title":{},"content":{"7":{"position":[[97,6]]},"21":{"position":[[2021,5]]},"161":{"position":[[67,6]]}},"keywords":{}}],["setvalu",{"_index":2140,"title":{},"content":{"369":{"position":[[343,9]]}},"keywords":{}}],["sever",{"_index":1263,"title":{},"content":{"174":{"position":[[1193,7]]}},"keywords":{}}],["severless",{"_index":1901,"title":{},"content":{"322":{"position":[[901,9],[1031,9]]},"324":{"position":[[1641,9]]}},"keywords":{}}],["shake",{"_index":2250,"title":{},"content":{"466":{"position":[[401,7]]}},"keywords":{}}],["shield",{"_index":2146,"title":{"372":{"position":[[9,7]]}},"content":{},"keywords":{}}],["shift",{"_index":230,"title":{},"content":{"6":{"position":[[115,7]]}},"keywords":{}}],["ship",{"_index":290,"title":{},"content":{"7":{"position":[[223,7]]}},"keywords":{}}],["short",{"_index":2130,"title":{},"content":{"367":{"position":[[323,5]]},"398":{"position":[[393,5]]},"408":{"position":[[34,5]]}},"keywords":{}}],["shortcut",{"_index":2271,"title":{},"content":{"473":{"position":[[294,8]]}},"keywords":{}}],["shortli",{"_index":1109,"title":{},"content":{"167":{"position":[[197,7]]}},"keywords":{}}],["show",{"_index":603,"title":{},"content":{"21":{"position":[[2631,5]]},"322":{"position":[[1143,5]]}},"keywords":{}}],["shown",{"_index":1515,"title":{},"content":{"219":{"position":[[448,5]]}},"keywords":{}}],["side",{"_index":1362,"title":{},"content":{"183":{"position":[[516,4]]}},"keywords":{}}],["signal",{"_index":99,"title":{},"content":{"2":{"position":[[1318,6]]},"25":{"position":[[90,6]]},"28":{"position":[[89,9]]},"34":{"position":[[2319,6]]},"40":{"position":[[90,6]]},"43":{"position":[[2330,6]]},"46":{"position":[[159,9]]},"49":{"position":[[89,9]]},"52":{"position":[[89,9]]},"55":{"position":[[187,9]]},"58":{"position":[[89,9]]},"61":{"position":[[89,9]]},"64":{"position":[[187,9]]},"68":{"position":[[89,9]]},"70":{"position":[[90,6]]},"73":{"position":[[187,9]]},"77":{"position":[[89,9]]},"79":{"position":[[90,6]]},"82":{"position":[[187,9]]},"85":{"position":[[89,9]]},"88":{"position":[[89,9]]},"91":{"position":[[2344,6]]},"94":{"position":[[187,9]]},"97":{"position":[[187,9]]},"100":{"position":[[187,9]]},"102":{"position":[[695,6]]},"103":{"position":[[856,6]]},"104":{"position":[[795,6]]},"107":{"position":[[89,9]]},"110":{"position":[[187,9]]},"113":{"position":[[226,9]]},"116":{"position":[[217,9]]},"119":{"position":[[187,9]]},"122":{"position":[[187,9]]},"125":{"position":[[89,9]]},"128":{"position":[[359,9]]},"131":{"position":[[89,9]]},"134":{"position":[[187,9]]},"139":{"position":[[288,9]]},"142":{"position":[[89,9]]},"146":{"position":[[2331,6]]},"167":{"position":[[190,6],[1236,7]]},"351":{"position":[[220,9]]},"398":{"position":[[500,8]]},"476":{"position":[[158,9],[533,9]]}},"keywords":{}}],["signal.onabort",{"_index":2304,"title":{},"content":{"476":{"position":[[551,14]]}},"keywords":{}}],["signatur",{"_index":2295,"title":{},"content":{"475":{"position":[[322,10]]}},"keywords":{}}],["signer",{"_index":423,"title":{"284":{"position":[[4,6]]},"386":{"position":[[4,7]]},"420":{"position":[[4,7]]},"459":{"position":[[4,7]]}},"content":{"13":{"position":[[550,6]]},"15":{"position":[[757,6]]},"103":{"position":[[118,7]]},"283":{"position":[[101,7]]},"285":{"position":[[86,6],[129,6]]},"286":{"position":[[28,8],[37,6],[201,6],[487,8]]},"287":{"position":[[66,7]]},"288":{"position":[[37,6]]}},"keywords":{}}],["signer.awsclientopt",{"_index":1804,"title":{},"content":{"286":{"position":[[137,23]]}},"keywords":{}}],["significantli",{"_index":1639,"title":{},"content":{"251":{"position":[[578,13]]}},"keywords":{}}],["silent",{"_index":1201,"title":{},"content":{"173":{"position":[[182,7]]}},"keywords":{}}],["similar",{"_index":271,"title":{},"content":{"6":{"position":[[1041,7]]},"164":{"position":[[377,7]]},"182":{"position":[[486,7]]}},"keywords":{}}],["simpl",{"_index":102,"title":{},"content":{"4":{"position":[[16,6]]},"156":{"position":[[57,6]]},"277":{"position":[[324,6]]},"324":{"position":[[994,6]]},"359":{"position":[[1182,6]]},"473":{"position":[[399,6],[851,6]]}},"keywords":{}}],["simpli",{"_index":1936,"title":{},"content":{"324":{"position":[[386,6]]}},"keywords":{}}],["simplifi",{"_index":104,"title":{},"content":{"4":{"position":[[60,8]]},"164":{"position":[[95,8]]},"282":{"position":[[366,10]]}},"keywords":{}}],["singl",{"_index":945,"title":{},"content":{"157":{"position":[[370,6],[460,6]]},"174":{"position":[[1756,6]]},"179":{"position":[[52,6]]},"328":{"position":[[228,6],[807,6]]}},"keywords":{}}],["size",{"_index":1541,"title":{},"content":{"224":{"position":[[208,5]]}},"keywords":{}}],["skip",{"_index":1627,"title":{},"content":{"247":{"position":[[153,4]]},"251":{"position":[[338,4]]},"273":{"position":[[46,4]]}},"keywords":{}}],["slow",{"_index":593,"title":{},"content":{"21":{"position":[[2435,4]]}},"keywords":{}}],["small",{"_index":275,"title":{"7":{"position":[[0,5]]}},"content":{"7":{"position":[[0,5]]},"255":{"position":[[394,5]]},"354":{"position":[[330,6]]},"473":{"position":[[75,5]]}},"keywords":{}}],["smaller",{"_index":2241,"title":{},"content":{"466":{"position":[[59,7]]}},"keywords":{}}],["smarter",{"_index":2185,"title":{},"content":{"398":{"position":[[660,7]]}},"keywords":{}}],["sn",{"_index":788,"title":{"132":{"position":[[0,3]]}},"content":{"113":{"position":[[173,3]]},"116":{"position":[[174,3]]},"133":{"position":[[29,3]]}},"keywords":{}}],["snif",{"_index":1668,"title":{},"content":{"255":{"position":[[311,8]]}},"keywords":{}}],["softwar",{"_index":874,"title":{},"content":{"152":{"position":[[42,9]]}},"keywords":{}}],["solut",{"_index":279,"title":{},"content":{"7":{"position":[[50,9]]}},"keywords":{}}],["solv",{"_index":254,"title":{},"content":{"6":{"position":[[610,6]]}},"keywords":{}}],["someth",{"_index":32,"title":{},"content":{"1":{"position":[[136,10]]},"2":{"position":[[445,9]]},"21":{"position":[[1254,9]]},"362":{"position":[[587,10]]},"367":{"position":[[407,9]]},"434":{"position":[[38,9]]},"473":{"position":[[554,9],[624,9],[695,9]]}},"keywords":{}}],["somethingels",{"_index":2090,"title":{},"content":{"362":{"position":[[598,15]]}},"keywords":{}}],["sometim",{"_index":2267,"title":{},"content":{"473":{"position":[[19,9]]}},"keywords":{}}],["somewhat",{"_index":1643,"title":{},"content":{"251":{"position":[[681,8]]}},"keywords":{}}],["soon2021",{"_index":983,"title":{},"content":{"159":{"position":[[411,8]]}},"keywords":{}}],["sourc",{"_index":873,"title":{},"content":{"152":{"position":[[35,6]]},"159":{"position":[[189,6],[242,6]]},"332":{"position":[[222,6]]},"426":{"position":[[133,8]]}},"keywords":{}}],["sourcemap=extern",{"_index":402,"title":{},"content":{"12":{"position":[[327,18]]}},"keywords":{}}],["spark",{"_index":1913,"title":{},"content":{"322":{"position":[[1306,6]]}},"keywords":{}}],["special",{"_index":1004,"title":{},"content":{"160":{"position":[[192,7]]}},"keywords":{}}],["specif",{"_index":896,"title":{},"content":{"153":{"position":[[389,8]]},"174":{"position":[[2006,8]]},"394":{"position":[[67,14]]}},"keywords":{}}],["specifi",{"_index":1702,"title":{},"content":{"263":{"position":[[433,7]]},"265":{"position":[[421,9]]}},"keywords":{}}],["spirit",{"_index":872,"title":{},"content":{"152":{"position":[[20,6]]}},"keywords":{}}],["sponsor",{"_index":1060,"title":{"165":{"position":[[0,10]]}},"content":{"165":{"position":[[0,10],[136,7],[178,8]]}},"keywords":{}}],["sq",{"_index":789,"title":{"137":{"position":[[0,3]]},"311":{"position":[[0,3]]},"390":{"position":[[0,3]]},"391":{"position":[[0,3]]},"425":{"position":[[0,3]]},"426":{"position":[[0,3]]},"463":{"position":[[0,3]]}},"content":{"113":{"position":[[183,3]]},"138":{"position":[[29,3]]},"282":{"position":[[588,3]]},"312":{"position":[[173,3]]},"324":{"position":[[1569,3]]},"391":{"position":[[16,3]]},"426":{"position":[[123,3]]}},"keywords":{}}],["sqsbatch",{"_index":1860,"title":{},"content":{"314":{"position":[[39,8]]}},"keywords":{}}],["sqspartialbatchfailur",{"_index":812,"title":{},"content":{"139":{"position":[[103,22]]}},"keywords":{}}],["ssl",{"_index":861,"title":{},"content":{"151":{"position":[[710,4]]}},"keywords":{}}],["ssm",{"_index":432,"title":{"325":{"position":[[0,3]]},"392":{"position":[[0,4]]},"427":{"position":[[0,4]]},"464":{"position":[[0,4]]}},"content":{"13":{"position":[[750,5]]},"15":{"position":[[957,5]]},"103":{"position":[[616,4],[924,4]]},"104":{"position":[[626,4],[861,3]]},"151":{"position":[[271,3]]},"326":{"position":[[125,3]]},"327":{"position":[[767,5]]},"328":{"position":[[39,3],[159,5],[534,3],[654,5],[712,4],[738,5],[941,4]]},"329":{"position":[[40,3]]}},"keywords":{}}],["ssm.awsclientopt",{"_index":1964,"title":{},"content":{"327":{"position":[[147,20]]}},"keywords":{}}],["ssm:getparamet",{"_index":1968,"title":{},"content":{"327":{"position":[[1123,17]]}},"keywords":{}}],["ssm:getparametersbypath",{"_index":1970,"title":{},"content":{"327":{"position":[[1148,23]]}},"keywords":{}}],["ssmclient",{"_index":1963,"title":{},"content":{"327":{"position":[[28,11],[40,9],[208,9]]}},"keywords":{}}],["ssmmiddlewar",{"_index":754,"title":{},"content":{"103":{"position":[[195,13],[587,15]]},"104":{"position":[[218,13],[597,15]]}},"keywords":{}}],["st",{"_index":434,"title":{"316":{"position":[[0,3]]},"393":{"position":[[0,4]]},"428":{"position":[[0,4]]},"465":{"position":[[0,4]]}},"content":{"13":{"position":[[787,4]]},"15":{"position":[[994,4]]},"103":{"position":[[692,4],[929,3]]},"308":{"position":[[784,5]]},"317":{"position":[[125,3]]},"318":{"position":[[595,5]]},"319":{"position":[[39,3],[240,5]]},"320":{"position":[[40,3]]}},"keywords":{}}],["stabl",{"_index":1074,"title":{},"content":{"166":{"position":[[121,7],[422,6],[495,6]]}},"keywords":{}}],["stack",{"_index":844,"title":{"150":{"position":[[11,5]]}},"content":{"150":{"position":[[11,5]]},"179":{"position":[[301,7]]},"182":{"position":[[1022,7]]},"347":{"position":[[536,5],[574,6],[643,5],[718,6]]},"351":{"position":[[304,5],[342,6],[411,5],[486,6],[545,6]]},"367":{"position":[[177,5],[352,5]]},"398":{"position":[[19,5]]},"408":{"position":[[63,5]]}},"keywords":{}}],["stack.pathparamet",{"_index":2020,"title":{},"content":{"347":{"position":[[777,20]]}},"keywords":{}}],["stackreturn",{"_index":2129,"title":{},"content":{"367":{"position":[[299,11]]}},"keywords":{}}],["stacksupport",{"_index":2156,"title":{},"content":{"385":{"position":[[59,12]]}},"keywords":{}}],["stackthrow",{"_index":2127,"title":{},"content":{"367":{"position":[[121,10]]}},"keywords":{}}],["stacktrac",{"_index":1892,"title":{},"content":{"322":{"position":[[465,11]]}},"keywords":{}}],["stage",{"_index":2017,"title":{},"content":{"347":{"position":[[442,8]]}},"keywords":{}}],["start",{"_index":113,"title":{"154":{"position":[[8,7]]},"364":{"position":[[22,6]]},"365":{"position":[[22,5]]}},"content":{"4":{"position":[[245,7]]},"21":{"position":[[172,5],[398,5],[593,5],[2041,5]]},"22":{"position":[[194,5],[453,5]]},"34":{"position":[[1734,5]]},"37":{"position":[[1859,5]]},"43":{"position":[[1734,5]]},"91":{"position":[[1759,5]]},"146":{"position":[[1746,5]]},"151":{"position":[[527,8]]},"159":{"position":[[10,7]]},"164":{"position":[[176,7]]},"170":{"position":[[340,7],[712,7]]},"171":{"position":[[65,7]]},"174":{"position":[[1414,7]]},"175":{"position":[[34,5]]},"178":{"position":[[882,5]]},"179":{"position":[[546,5]]},"181":{"position":[[638,5]]},"197":{"position":[[636,5]]},"202":{"position":[[632,5]]},"286":{"position":[[363,5]]},"291":{"position":[[589,5]]},"298":{"position":[[1109,5]]},"303":{"position":[[615,5]]},"308":{"position":[[664,5]]},"318":{"position":[[475,5]]},"327":{"position":[[647,5]]},"340":{"position":[[600,5]]},"347":{"position":[[242,8]]},"359":{"position":[[1172,5]]},"474":{"position":[[890,5]]}},"keywords":{}}],["start('handl",{"_index":522,"title":{},"content":{"21":{"position":[[659,16]]},"22":{"position":[[519,16]]}},"keywords":{}}],["start('tot",{"_index":514,"title":{},"content":{"21":{"position":[[436,14],[549,14]]},"22":{"position":[[341,14]]}},"keywords":{}}],["state",{"_index":1218,"title":{},"content":{"173":{"position":[[790,5]]}},"keywords":{}}],["statement",{"_index":1205,"title":{},"content":{"173":{"position":[[296,11]]},"177":{"position":[[144,11]]},"181":{"position":[[144,11]]}},"keywords":{}}],["static",{"_index":1916,"title":{},"content":{"322":{"position":[[1413,6]]}},"keywords":{}}],["statu",{"_index":1084,"title":{},"content":{"166":{"position":[[401,6]]},"243":{"position":[[356,6]]}},"keywords":{}}],["statuscod",{"_index":181,"title":{},"content":{"5":{"position":[[970,11]]},"34":{"position":[[1426,11]]},"37":{"position":[[1551,11]]},"43":{"position":[[1426,11]]},"91":{"position":[[1426,11]]},"146":{"position":[[1438,11]]},"168":{"position":[[512,11]]},"186":{"position":[[662,11]]},"192":{"position":[[189,11]]},"198":{"position":[[139,11]]},"203":{"position":[[137,11]]},"220":{"position":[[533,11]]},"221":{"position":[[616,11]]},"229":{"position":[[740,11]]},"232":{"position":[[1754,11]]},"243":{"position":[[242,12]]},"244":{"position":[[312,11]]},"260":{"position":[[161,11]]},"266":{"position":[[184,11]]},"278":{"position":[[157,11]]},"287":{"position":[[140,11]]},"304":{"position":[[153,11]]},"309":{"position":[[154,11]]},"319":{"position":[[127,11]]},"348":{"position":[[253,11],[409,11]]},"362":{"position":[[1016,14],[1071,11]]},"375":{"position":[[57,10],[167,10]]},"438":{"position":[[35,10]]},"476":{"position":[[721,11]]}},"keywords":{}}],["statuscode:500",{"_index":2152,"title":{},"content":{"382":{"position":[[15,14]]}},"keywords":{}}],["step",{"_index":264,"title":{},"content":{"6":{"position":[[910,5]]},"21":{"position":[[2379,5]]},"156":{"position":[[86,6]]},"211":{"position":[[190,5]]}},"keywords":{}}],["still",{"_index":235,"title":{},"content":{"6":{"position":[[203,5]]},"136":{"position":[[83,5]]},"160":{"position":[[468,5]]},"167":{"position":[[1086,5]]},"434":{"position":[[7,5]]}},"keywords":{}}],["stop",{"_index":504,"title":{},"content":{"21":{"position":[[237,4],[623,4]]},"22":{"position":[[259,4],[483,4]]},"153":{"position":[[44,4],[207,4]]},"160":{"position":[[110,7]]},"167":{"position":[[263,4]]},"189":{"position":[[73,4]]}},"keywords":{}}],["stop('handl",{"_index":524,"title":{},"content":{"21":{"position":[[706,15]]},"22":{"position":[[566,15]]}},"keywords":{}}],["stop('init",{"_index":518,"title":{},"content":{"21":{"position":[[527,12]]},"22":{"position":[[413,12]]}},"keywords":{}}],["stop('tot",{"_index":526,"title":{},"content":{"21":{"position":[[750,13]]},"22":{"position":[[610,13]]}},"keywords":{}}],["storag",{"_index":904,"title":{"474":{"position":[[9,7]]}},"content":{"153":{"position":[[775,7],[1457,7]]},"189":{"position":[[1001,7],[1908,7]]},"369":{"position":[[168,7]]},"474":{"position":[[9,7]]}},"keywords":{}}],["storage[key",{"_index":2139,"title":{},"content":{"369":{"position":[[329,13],[380,12]]}},"keywords":{}}],["store",{"_index":500,"title":{},"content":{"21":{"position":[[155,5]]},"22":{"position":[[177,5]]},"153":{"position":[[1177,6]]},"189":{"position":[[634,6],[1478,6]]},"197":{"position":[[349,7],[1027,5]]},"202":{"position":[[345,7],[1022,5]]},"286":{"position":[[755,5]]},"298":{"position":[[352,7],[1506,5]]},"303":{"position":[[328,7],[999,5],[1117,6]]},"308":{"position":[[377,7],[1049,5]]},"318":{"position":[[860,5]]},"323":{"position":[[534,6]]},"327":{"position":[[312,7],[1032,5]]},"340":{"position":[[399,7]]},"429":{"position":[[24,7]]},"474":{"position":[[82,5],[220,5],[280,6]]}},"keywords":{}}],["store.config",{"_index":1371,"title":{},"content":{"185":{"position":[[125,12]]}},"keywords":{}}],["store.init",{"_index":516,"title":{},"content":{"21":{"position":[[486,13],[502,10]]},"22":{"position":[[388,10]]}},"keywords":{}}],["store.st",{"_index":1802,"title":{},"content":{"283":{"position":[[476,10]]}},"keywords":{}}],["store.tot",{"_index":517,"title":{},"content":{"21":{"position":[[515,11]]},"22":{"position":[[401,11]]}},"keywords":{}}],["store.trac",{"_index":1924,"title":{},"content":{"323":{"position":[[616,13]]}},"keywords":{}}],["store[id",{"_index":502,"title":{},"content":{"21":{"position":[[193,9]]},"22":{"position":[[215,9]]}},"keywords":{}}],["store[id]).tostr",{"_index":507,"title":{},"content":{"21":{"position":[[332,22]]}},"keywords":{}}],["store[id].end",{"_index":614,"title":{},"content":{"22":{"position":[[290,16]]}},"keywords":{}}],["stream",{"_index":461,"title":{"92":{"position":[[15,9]]},"120":{"position":[[8,7]]},"221":{"position":[[6,8]]},"293":{"position":[[0,7]]}},"content":{"15":{"position":[[496,9]]},"291":{"position":[[87,6]]},"293":{"position":[[343,8]]},"444":{"position":[[16,6]]}},"keywords":{}}],["streamifi",{"_index":1414,"title":{"191":{"position":[[0,9]]}},"content":{},"keywords":{}}],["streamifyrespons",{"_index":735,"title":{},"content":{"91":{"position":[[1447,18]]},"192":{"position":[[119,18]]},"193":{"position":[[119,18]]},"221":{"position":[[289,18]]}},"keywords":{}}],["street",{"_index":1688,"title":{},"content":{"260":{"position":[[258,7]]}},"keywords":{}}],["strength",{"_index":225,"title":{},"content":{"6":{"position":[[16,9]]}},"keywords":{}}],["strict",{"_index":116,"title":{},"content":{"4":{"position":[[314,6]]},"255":{"position":[[216,6]]},"360":{"position":[[281,7]]},"363":{"position":[[222,6],[317,6]]}},"keywords":{}}],["string",{"_index":192,"title":{},"content":{"5":{"position":[[1290,9],[1484,9],[1561,8]]},"173":{"position":[[237,9]]},"177":{"position":[[85,9]]},"181":{"position":[[85,9],[203,9]]},"192":{"position":[[287,6]]},"193":{"position":[[221,6]]},"197":{"position":[[288,8],[738,8]]},"202":{"position":[[284,8],[734,8]]},"207":{"position":[[10,8]]},"224":{"position":[[74,6]]},"232":{"position":[[278,8],[368,8],[626,8],[845,8],[935,8],[1032,8],[1131,8],[1228,8]]},"251":{"position":[[226,8]]},"259":{"position":[[17,8]]},"264":{"position":[[182,6],[208,6]]},"277":{"position":[[171,8],[429,7],[437,6]]},"282":{"position":[[467,6]]},"286":{"position":[[465,8]]},"291":{"position":[[9,8]]},"298":{"position":[[300,8],[1211,8]]},"303":{"position":[[267,8],[717,8]]},"308":{"position":[[316,8],[766,8]]},"318":{"position":[[577,8]]},"327":{"position":[[256,8],[749,8]]},"340":{"position":[[338,8]]},"347":{"position":[[83,8],[202,8]]},"351":{"position":[[81,8]]},"359":{"position":[[657,8]]},"361":{"position":[[172,8]]},"362":{"position":[[341,8],[408,8],[1805,8],[1832,9]]}},"keywords":{}}],["string>",{"_index":1471,"title":{},"content":{"207":{"position":[[171,10],[202,13]]}},"keywords":{}}],["stringifi",{"_index":1752,"title":{},"content":{"277":{"position":[[517,9]]}},"keywords":{}}],["string|loglevel",{"_index":1199,"title":{},"content":{"173":{"position":[[82,18]]}},"keywords":{}}],["structur",{"_index":1161,"title":{"354":{"position":[[21,10]]}},"content":{"170":{"position":[[239,10]]},"171":{"position":[[77,9],[308,10],[425,9]]},"174":{"position":[[2414,9],[2495,9]]},"323":{"position":[[91,10],[192,10]]}},"keywords":{}}],["sts.awsclientopt",{"_index":1873,"title":{},"content":{"318":{"position":[[146,20]]}},"keywords":{}}],["sts:assumerolesettocontext",{"_index":1874,"title":{},"content":{"318":{"position":[[951,26]]}},"keywords":{}}],["stsclient",{"_index":1872,"title":{},"content":{"318":{"position":[[28,11],[40,9],[207,9]]}},"keywords":{}}],["stsmiddlewar",{"_index":755,"title":{},"content":{"103":{"position":[[234,13],[663,15]]}},"keywords":{}}],["stuff",{"_index":174,"title":{},"content":{"5":{"position":[[854,5]]},"472":{"position":[[1104,5]]},"473":{"position":[[507,5]]}},"keywords":{}}],["sub",{"_index":569,"title":{},"content":{"21":{"position":[[1891,3]]}},"keywords":{}}],["sub[/sub",{"_index":320,"title":{},"content":{"7":{"position":[[793,9]]}},"keywords":{}}],["subject",{"_index":1104,"title":{},"content":{"166":{"position":[[733,7]]}},"keywords":{}}],["submit",{"_index":881,"title":{},"content":{"152":{"position":[[143,6]]}},"keywords":{}}],["submit).http",{"_index":1780,"title":{},"content":{"281":{"position":[[961,12]]}},"keywords":{}}],["subset",{"_index":1353,"title":{},"content":{"183":{"position":[[201,6]]}},"keywords":{}}],["succe",{"_index":1133,"title":{},"content":{"167":{"position":[[1092,8]]}},"keywords":{}}],["success",{"_index":178,"title":{},"content":{"5":{"position":[[909,10]]},"153":{"position":[[229,10]]},"186":{"position":[[651,10]]}},"keywords":{}}],["successfulbook",{"_index":1304,"title":{},"content":{"178":{"position":[[648,17]]}},"keywords":{}}],["such",{"_index":1274,"title":{},"content":{"174":{"position":[[1857,4],[2026,4]]},"473":{"position":[[129,4]]}},"keywords":{}}],["sudo",{"_index":856,"title":{},"content":{"151":{"position":[[506,4]]}},"keywords":{}}],["suit",{"_index":1919,"title":{},"content":{"323":{"position":[[36,5]]}},"keywords":{}}],["support",{"_index":585,"title":{"356":{"position":[[22,9]]}},"content":{"21":{"position":[[2274,7],[2762,9]]},"165":{"position":[[90,7]]},"166":{"position":[[325,7],[382,10]]},"182":{"position":[[1101,8]]},"228":{"position":[[162,9],[360,9],[558,9],[762,9],[989,9]]},"251":{"position":[[200,9]]},"318":{"position":[[1002,7]]},"355":{"position":[[667,7]]},"356":{"position":[[31,8],[146,9],[263,9]]},"359":{"position":[[318,7]]},"361":{"position":[[125,7]]},"367":{"position":[[69,7],[240,7]]},"372":{"position":[[17,9]]},"374":{"position":[[21,7]]},"375":{"position":[[9,7]]},"385":{"position":[[111,7]]},"394":{"position":[[33,7]]},"398":{"position":[[607,9]]},"404":{"position":[[4,7]]},"444":{"position":[[23,8]]}},"keywords":{}}],["supportpul",{"_index":2248,"title":{},"content":{"466":{"position":[[335,13]]}},"keywords":{}}],["sure",{"_index":2,"title":{},"content":{"0":{"position":[[20,4]]},"152":{"position":[[206,4]]},"155":{"position":[[135,4]]},"189":{"position":[[251,4],[364,4]]},"355":{"position":[[503,4]]}},"keywords":{}}],["swc",{"_index":482,"title":{"19":{"position":[[0,4]]}},"content":{},"keywords":{}}],["swc/cli",{"_index":437,"title":{},"content":{"14":{"position":[[9,8]]},"19":{"position":[[9,8]]}},"keywords":{}}],["swc/core",{"_index":438,"title":{},"content":{"14":{"position":[[18,9]]},"19":{"position":[[18,9]]}},"keywords":{}}],["swc/pack",{"_index":436,"title":{"14":{"position":[[0,9]]}},"content":{},"keywords":{}}],["swcrc",{"_index":485,"title":{},"content":{"19":{"position":[[95,7]]}},"keywords":{}}],["switch",{"_index":1563,"title":{},"content":{"229":{"position":[[295,6],[457,6]]},"327":{"position":[[1264,9]]},"355":{"position":[[565,6]]}},"keywords":{}}],["synchron",{"_index":1925,"title":{},"content":{"323":{"position":[[684,11]]}},"keywords":{}}],["system",{"_index":852,"title":{},"content":{"151":{"position":[[388,7]]},"283":{"position":[[450,7]]},"323":{"position":[[508,7]]}},"keywords":{}}],["t.deepequal(bodi",{"_index":1727,"title":{},"content":{"270":{"position":[[410,17]]},"274":{"position":[[577,17]]}},"keywords":{}}],["t.deepequal(respons",{"_index":1601,"title":{},"content":{"232":{"position":[[1730,21]]},"244":{"position":[[289,22]]}},"keywords":{}}],["t.is(bodi",{"_index":1632,"title":{},"content":{"248":{"position":[[510,10]]},"252":{"position":[[687,10]]}},"keywords":{}}],["t.is(context.apitoken.password",{"_index":1851,"title":{},"content":{"299":{"position":[[530,31]]}},"keywords":{}}],["t.is(context.apitoken.usernam",{"_index":1850,"title":{},"content":{"299":{"position":[[486,31]]}},"keywords":{}}],["t.is(context.callbackwaitsforemptyeventloop,fals",{"_index":1496,"title":{},"content":{"212":{"position":[[388,50]]}},"keywords":{}}],["t.is(err.messag",{"_index":2092,"title":{},"content":{"362":{"position":[[657,17],[1207,17]]}},"keywords":{}}],["t.is(response.body,'<message>hello",{"_index":1721,"title":{},"content":{"266":{"position":[[697,40]]}},"keywords":{}}],["t.is(response.headers['access",{"_index":1600,"title":{},"content":{"232":{"position":[[1671,29]]},"233":{"position":[[221,29]]}},"keywords":{}}],["t.not(err",{"_index":2094,"title":{},"content":{"362":{"position":[[1190,10]]}},"keywords":{}}],["tablenam",{"_index":781,"title":{},"content":{"104":{"position":[[549,10]]},"186":{"position":[[306,10]]},"203":{"position":[[284,10]]}},"keywords":{}}],["take",{"_index":944,"title":{},"content":{"157":{"position":[[362,5]]},"164":{"position":[[268,6]]},"170":{"position":[[683,5]]},"232":{"position":[[515,4]]},"399":{"position":[[151,5]]},"426":{"position":[[20,4]]},"474":{"position":[[359,4]]}},"keywords":{}}],["target",{"_index":57,"title":{},"content":{"2":{"position":[[300,8]]}},"keywords":{}}],["target=node16",{"_index":479,"title":{},"content":{"18":{"position":[[61,13]]}},"keywords":{}}],["target=node18",{"_index":394,"title":{},"content":{"12":{"position":[[152,13]]}},"keywords":{}}],["task",{"_index":897,"title":{},"content":{"153":{"position":[[398,4]]},"322":{"position":[[448,5]]}},"keywords":{}}],["team",{"_index":1391,"title":{},"content":{"188":{"position":[[144,4]]},"478":{"position":[[740,4]]}},"keywords":{}}],["teardown",{"_index":1141,"title":{},"content":{"167":{"position":[[1406,9]]}},"keywords":{}}],["technic",{"_index":237,"title":{},"content":{"6":{"position":[[239,9],[702,9]]}},"keywords":{}}],["teeni",{"_index":1899,"title":{},"content":{"322":{"position":[[886,5],[1016,5]]},"324":{"position":[[1626,5]]}},"keywords":{}}],["term",{"_index":1062,"title":{},"content":{"165":{"position":[[107,4]]},"166":{"position":[[320,4]]},"179":{"position":[[464,5],[605,6]]}},"keywords":{}}],["termin",{"_index":1111,"title":{},"content":{"167":{"position":[[313,11]]}},"keywords":{}}],["test",{"_index":1107,"title":{"167":{"position":[[0,7]]}},"content":{"167":{"position":[[0,7],[338,5],[812,5],[896,4],[1024,5],[1220,5],[1376,5]]},"219":{"position":[[521,7]]},"363":{"position":[[37,5]]},"476":{"position":[[328,8]]}},"keywords":{}}],["text",{"_index":1529,"title":{},"content":{"220":{"position":[[388,4]]},"221":{"position":[[471,4]]}},"keywords":{}}],["text/csv",{"_index":1417,"title":{},"content":{"192":{"position":[[233,10]]}},"keywords":{}}],["text/plain",{"_index":1577,"title":{},"content":{"229":{"position":[[1006,13]]}},"keywords":{}}],["text/x",{"_index":1717,"title":{},"content":{"266":{"position":[[623,6],[642,6]]}},"keywords":{}}],["text\\/plain",{"_index":1701,"title":{},"content":{"263":{"position":[[275,16]]},"266":{"position":[[463,16]]}},"keywords":{}}],["textdecoder('utf",{"_index":1426,"title":{},"content":{"194":{"position":[[277,16]]}},"keywords":{}}],["them.import",{"_index":929,"title":{},"content":{"156":{"position":[[190,11]]}},"keywords":{}}],["thing",{"_index":732,"title":{"83":{"position":[[12,6]]}},"content":{"398":{"position":[[275,6]]}},"keywords":{}}],["third",{"_index":1879,"title":{"321":{"position":[[0,5]]}},"content":{},"keywords":{}}],["this.awsclientcaptur",{"_index":1439,"title":{},"content":{"197":{"position":[[382,21]]},"202":{"position":[[378,21]]},"298":{"position":[[385,21]]},"303":{"position":[[361,21]]},"308":{"position":[[410,21]]},"327":{"position":[[345,21]]},"340":{"position":[[432,21]]}},"keywords":{}}],["those",{"_index":1620,"title":{},"content":{"243":{"position":[[227,6]]}},"keywords":{}}],["though",{"_index":1511,"title":{},"content":{"219":{"position":[[317,6]]}},"keywords":{}}],["three",{"_index":1032,"title":{},"content":{"163":{"position":[[336,5]]}},"keywords":{}}],["through",{"_index":1360,"title":{},"content":{"183":{"position":[[430,7]]},"281":{"position":[[43,7]]},"291":{"position":[[59,7]]},"322":{"position":[[825,7]]}},"keywords":{}}],["throughput",{"_index":1973,"title":{},"content":{"327":{"position":[[1240,10]]}},"keywords":{}}],["throw",{"_index":1325,"title":{},"content":{"181":{"position":[[506,5]]},"186":{"position":[[700,5]]},"228":{"position":[[853,5]]},"232":{"position":[[1507,5]]},"244":{"position":[[136,5]]},"247":{"position":[[158,8]]},"251":{"position":[[343,8]]},"273":{"position":[[51,8]]},"367":{"position":[[248,5],[386,6]]},"398":{"position":[[816,5],[883,5]]},"409":{"position":[[53,5]]},"426":{"position":[[157,5]]},"456":{"position":[[4,6]]},"476":{"position":[[43,6]]}},"keywords":{}}],["thrown",{"_index":1028,"title":{},"content":{"161":{"position":[[673,6]]},"167":{"position":[[651,6]]},"178":{"position":[[967,6]]},"324":{"position":[[153,6]]}},"keywords":{}}],["throwonemptymetr",{"_index":1324,"title":{},"content":{"181":{"position":[[453,19]]}},"keywords":{}}],["thu",{"_index":265,"title":{},"content":{"6":{"position":[[916,4]]}},"keywords":{}}],["time",{"_index":494,"title":{"21":{"position":[[0,5]]},"136":{"position":[[15,6]]}},"content":{"21":{"position":[[2027,4],[2047,5]]},"166":{"position":[[226,4]]},"167":{"position":[[221,5]]},"183":{"position":[[102,4],[276,4],[412,5],[672,5]]},"251":{"position":[[130,5]]},"476":{"position":[[30,5],[183,4]]}},"keywords":{}}],["time.provid",{"_index":1190,"title":{},"content":{"171":{"position":[[340,14]]}},"keywords":{}}],["timemiddi",{"_index":1908,"title":{},"content":{"322":{"position":[[1198,9]]}},"keywords":{}}],["timeout",{"_index":1121,"title":{"476":{"position":[[7,8]]}},"content":{"167":{"position":[[626,7],[1127,7]]},"322":{"position":[[528,9],[599,7]]},"398":{"position":[[573,7],[742,7]]},"476":{"position":[[7,8]]}},"keywords":{}}],["timeoutearlyinmilli",{"_index":1115,"title":{},"content":{"167":{"position":[[465,21]]},"476":{"position":[[240,20],[653,21]]}},"keywords":{}}],["timeoutearlyrespons",{"_index":673,"title":{},"content":{"34":{"position":[[1384,21]]},"37":{"position":[[1509,21]]},"43":{"position":[[1384,21]]},"91":{"position":[[1384,21]]},"146":{"position":[[1396,21]]},"167":{"position":[[574,21]]},"476":{"position":[[679,21]]}},"keywords":{}}],["timeplugin",{"_index":498,"title":{},"content":{"21":{"position":[[63,10]]}},"keywords":{}}],["timer",{"_index":1145,"title":{},"content":{"167":{"position":[[1475,6]]}},"keywords":{}}],["timers/promis",{"_index":2231,"title":{},"content":{"437":{"position":[[54,15]]}},"keywords":{}}],["tini",{"_index":1900,"title":{},"content":{"322":{"position":[[892,4],[1022,4]]},"324":{"position":[[1632,4]]}},"keywords":{}}],["tip",{"_index":23,"title":{},"content":{"1":{"position":[[48,4]]}},"keywords":{}}],["tl",{"_index":857,"title":{},"content":{"151":{"position":[[543,3],[552,5],[1000,3]]}},"keywords":{}}],["tls.checkserveridentity(host",{"_index":866,"title":{},"content":{"151":{"position":[[803,29]]}},"keywords":{}}],["to.dimens",{"_index":1469,"title":{},"content":{"207":{"position":[[138,13]]}},"keywords":{}}],["to.languag",{"_index":2069,"title":{},"content":{"359":{"position":[[731,12]]}},"keywords":{}}],["todo",{"_index":842,"title":{},"content":{"149":{"position":[[151,4]]}},"keywords":{}}],["togeth",{"_index":46,"title":{},"content":{"2":{"position":[[146,8]]},"7":{"position":[[246,8]]},"170":{"position":[[74,8]]},"188":{"position":[[105,9]]}},"keywords":{}}],["token",{"_index":1796,"title":{},"content":{"283":{"position":[[117,5]]},"286":{"position":[[766,6]]},"324":{"position":[[1114,5]]},"327":{"position":[[301,6],[1043,6]]}},"keywords":{}}],["ton",{"_index":963,"title":{},"content":{"159":{"position":[[144,4]]}},"keywords":{}}],["top",{"_index":1394,"title":{},"content":{"188":{"position":[[204,3]]}},"keywords":{}}],["total",{"_index":572,"title":{},"content":{"21":{"position":[[1952,5],[1994,5]]},"153":{"position":[[199,7]]}},"keywords":{}}],["toward",{"_index":231,"title":{},"content":{"6":{"position":[[123,6]]}},"keywords":{}}],["trace",{"_index":1173,"title":{},"content":{"170":{"position":[[519,6]]},"174":{"position":[[1481,5],[1610,7]]},"175":{"position":[[132,7],[208,7],[292,7],[361,7]]},"177":{"position":[[223,8]]},"178":{"position":[[1133,6],[1360,5]]},"323":{"position":[[154,7],[643,5]]},"324":{"position":[[708,8],[727,7]]}},"keywords":{}}],["tracer",{"_index":1280,"title":{"175":{"position":[[0,7]]}},"content":{"177":{"position":[[407,6],[414,8],[454,6]]},"178":{"position":[[42,7],[189,6],[202,8],[539,6],[830,6],[1094,6],[1266,6]]},"188":{"position":[[179,6],[303,6]]},"189":{"position":[[334,6],[406,6]]},"322":{"position":[[410,7]]}},"keywords":{}}],["tracer.captureawsv3cli",{"_index":1300,"title":{},"content":{"178":{"position":[[263,26]]}},"keywords":{}}],["tracer.putannotation('successfulbook",{"_index":1301,"title":{},"content":{"178":{"position":[[377,41]]}},"keywords":{}}],["transform",{"_index":792,"title":{"281":{"position":[[8,15]]},"282":{"position":[[9,15]]}},"content":{"127":{"position":[[0,12]]}},"keywords":{}}],["transformstream",{"_index":1828,"title":{},"content":{"293":{"position":[[202,15]]}},"keywords":{}}],["transpar",{"_index":1658,"title":{},"content":{"255":{"position":[[85,12]]}},"keywords":{}}],["transpil",{"_index":466,"title":{"16":{"position":[[0,12]]},"363":{"position":[[4,11]]},"364":{"position":[[0,9]]},"365":{"position":[[0,9]]}},"content":{"358":{"position":[[143,11]]},"359":{"position":[[1077,11]]},"360":{"position":[[0,9]]},"361":{"position":[[0,9],[223,11]]},"363":{"position":[[298,9]]},"478":{"position":[[1131,11]]}},"keywords":{}}],["transpilelocal",{"_index":2086,"title":{"361":{"position":[[0,16]]}},"content":{"364":{"position":[[143,15]]},"365":{"position":[[143,15]]},"466":{"position":[[456,15]]}},"keywords":{}}],["transpilelocale(await",{"_index":2121,"title":{},"content":{"364":{"position":[[252,21],[307,21]]}},"keywords":{}}],["transpileschema",{"_index":159,"title":{"360":{"position":[[0,16]]}},"content":{"5":{"position":[[456,15]]},"362":{"position":[[112,15],[828,15],[963,17],[1545,15]]},"364":{"position":[[126,16]]},"365":{"position":[[126,16]]},"466":{"position":[[349,15],[650,15],[675,15],[812,15]]}},"keywords":{}}],["transpileschema(eventjsonschema",{"_index":2253,"title":{},"content":{"466":{"position":[[841,32],[1069,33]]}},"keywords":{}}],["transpileschema(eventschema",{"_index":2124,"title":{},"content":{"364":{"position":[[413,29]]},"365":{"position":[[372,29]]}},"keywords":{}}],["transpileschema(schema",{"_index":217,"title":{},"content":{"5":{"position":[[1926,23]]},"362":{"position":[[461,23],[2051,23]]}},"keywords":{}}],["transport",{"_index":1539,"title":{},"content":{"224":{"position":[[174,9]]},"255":{"position":[[223,9]]}},"keywords":{}}],["traverse/.github",{"_index":326,"title":{},"content":{"7":{"position":[[927,16]]}},"keywords":{}}],["traverse/spec",{"_index":327,"title":{},"content":{"7":{"position":[[959,13]]}},"keywords":{}}],["travis.yml",{"_index":354,"title":{},"content":{"7":{"position":[[1407,11]]}},"keywords":{}}],["tree",{"_index":2249,"title":{},"content":{"466":{"position":[[396,4]]}},"keywords":{}}],["tri",{"_index":1142,"title":{},"content":{"167":{"position":[[1416,3]]},"186":{"position":[[548,3]]},"478":{"position":[[839,5]]}},"keywords":{}}],["trick",{"_index":24,"title":{},"content":{"1":{"position":[[57,6]]}},"keywords":{}}],["trickl",{"_index":2177,"title":{},"content":{"398":{"position":[[154,7]]}},"keywords":{}}],["trigger",{"_index":67,"title":{},"content":{"2":{"position":[[437,7]]},"161":{"position":[[173,9],[264,9],[362,9],[558,9],[614,9]]},"167":{"position":[[173,7]]},"174":{"position":[[2084,9],[2286,9]]},"188":{"position":[[423,9],[620,9]]},"197":{"position":[[656,7]]},"202":{"position":[[652,7]]},"286":{"position":[[383,7]]},"291":{"position":[[609,7]]},"298":{"position":[[1129,7]]},"303":{"position":[[635,7]]},"308":{"position":[[684,7]]},"318":{"position":[[495,7]]},"327":{"position":[[667,7]]},"340":{"position":[[620,7]]},"347":{"position":[[614,7]]},"351":{"position":[[382,7]]},"367":{"position":[[96,7],[150,7],[272,7]]},"398":{"position":[[322,9],[668,10],[753,7]]}},"keywords":{}}],["trip",{"_index":1538,"title":{},"content":{"224":{"position":[[169,4]]}},"keywords":{}}],["troubleshoot",{"_index":1269,"title":{},"content":{"174":{"position":[[1544,15],[2229,15]]}},"keywords":{}}],["true",{"_index":69,"title":{},"content":{"2":{"position":[[480,4]]},"10":{"position":[[157,5],[195,5],[231,5],[394,5]]},"13":{"position":[[274,4]]},"15":{"position":[[394,4]]},"21":{"position":[[50,4]]},"91":{"position":[[1466,4]]},"151":{"position":[[737,5]]},"174":{"position":[[464,5]]},"177":{"position":[[359,5],[649,5]]},"178":{"position":[[419,6],[680,5]]},"181":{"position":[[664,5]]},"188":{"position":[[842,4],[902,4]]},"189":{"position":[[1797,4],[1857,4]]},"192":{"position":[[138,4]]},"193":{"position":[[138,4]]},"211":{"position":[[152,4],[239,5]]},"212":{"position":[[225,7]]},"221":{"position":[[308,4]]},"228":{"position":[[27,5],[222,5],[420,5],[619,5],[822,5],[840,4]]},"232":{"position":[[34,5],[210,4]]},"239":{"position":[[32,5]]},"247":{"position":[[210,5]]},"251":{"position":[[395,5]]},"252":{"position":[[643,4]]},"273":{"position":[[103,5]]},"278":{"position":[[665,4]]},"299":{"position":[[273,4]]},"304":{"position":[[339,4]]},"328":{"position":[[364,4]]},"332":{"position":[[81,4]]},"333":{"position":[[133,4]]},"359":{"position":[[595,6]]},"360":{"position":[[289,5],[328,5],[366,4]]},"363":{"position":[[229,4],[268,4],[324,4],[363,4]]},"383":{"position":[[91,6]]}},"keywords":{}}],["true)head",{"_index":1582,"title":{},"content":{"232":{"position":[[265,12]]}},"keywords":{}}],["true.capturehttpsrequest",{"_index":1294,"title":{},"content":{"177":{"position":[[244,25]]}},"keywords":{}}],["ts",{"_index":348,"title":{},"content":{"7":{"position":[[1351,4]]}},"keywords":{}}],["tsconfig.json",{"_index":349,"title":{},"content":{"7":{"position":[[1356,13]]},"10":{"position":[[43,14]]}},"keywords":{}}],["tslib",{"_index":342,"title":{},"content":{"7":{"position":[[1267,8]]}},"keywords":{}}],["two",{"_index":1029,"title":{},"content":{"163":{"position":[[17,3]]},"166":{"position":[[39,3]]},"299":{"position":[[450,3]]}},"keywords":{}}],["txt",{"_index":365,"title":{},"content":{"7":{"position":[[1539,5]]}},"keywords":{}}],["type",{"_index":189,"title":{"265":{"position":[[8,4]]}},"content":{"5":{"position":[[1196,5],[1234,5],[1284,5],[1364,5],[1422,5],[1478,5],[1555,5],[1583,5]]},"7":{"position":[[753,9]]},"34":{"position":[[1263,5],[1338,5]]},"43":{"position":[[1263,5],[1338,5]]},"91":{"position":[[1263,5],[1338,5]]},"102":{"position":[[361,5],[436,5]]},"146":{"position":[[1275,5],[1350,5]]},"168":{"position":[[59,7],[474,4]]},"192":{"position":[[226,6]]},"228":{"position":[[663,5],[756,5]]},"239":{"position":[[238,4]]},"247":{"position":[[184,4]]},"248":{"position":[[340,6],[425,5]]},"251":{"position":[[369,4]]},"252":{"position":[[355,6]]},"263":{"position":[[446,4]]},"264":{"position":[[49,4]]},"265":{"position":[[95,4],[409,5]]},"273":{"position":[[77,4]]},"274":{"position":[[430,6]]},"281":{"position":[[247,5],[782,4]]},"312":{"position":[[123,5]]},"324":{"position":[[1506,4]]},"327":{"position":[[1296,4]]},"362":{"position":[[241,5],[335,5],[402,5],[981,5],[1053,5],[1085,5],[1674,5],[1732,5],[1799,5],[1826,5],[1924,4]]},"363":{"position":[[243,5],[338,5]]},"478":{"position":[[870,4]]}},"keywords":{}}],["typedef",{"_index":837,"title":{},"content":{"148":{"position":[[463,9]]}},"keywords":{}}],["typeof",{"_index":2063,"title":{},"content":{"359":{"position":[[330,6]]}},"keywords":{}}],["typereferrerpolici",{"_index":1670,"title":{},"content":{"255":{"position":[[329,18]]}},"keywords":{}}],["types/aw",{"_index":921,"title":{},"content":{"155":{"position":[[168,10],[238,10]]}},"keywords":{}}],["typescript",{"_index":368,"title":{"10":{"position":[[0,11]]},"168":{"position":[[9,10]]},"478":{"position":[[5,10]]}},"content":{"10":{"position":[[9,10]]},"155":{"position":[[96,11]]},"168":{"position":[[9,10],[43,10],[158,10],[714,11]]},"323":{"position":[[22,11]]},"478":{"position":[[5,10],[758,10],[816,10],[904,10],[1143,11]]}},"keywords":{}}],["typic",{"_index":1779,"title":{},"content":{"281":{"position":[[929,10]]}},"keywords":{}}],["unabl",{"_index":2239,"title":{},"content":{"456":{"position":[[20,6]]}},"keywords":{}}],["undefin",{"_index":1437,"title":{},"content":{"197":{"position":[[203,11],[306,11],[424,11]]},"202":{"position":[[200,11],[302,11],[420,11]]},"224":{"position":[[31,11]]},"228":{"position":[[112,10],[309,10],[507,10],[709,10]]},"236":{"position":[[228,11]]},"303":{"position":[[189,11],[285,11],[403,11]]},"308":{"position":[[224,11],[334,11],[452,11]]},"336":{"position":[[28,11]]},"340":{"position":[[239,11],[356,11],[474,11]]},"359":{"position":[[32,11],[183,11],[443,11]]},"360":{"position":[[213,11]]},"399":{"position":[[238,9]]},"472":{"position":[[671,10]]}},"keywords":{}}],["under",{"_index":2027,"title":{},"content":{"354":{"position":[[78,5]]}},"keywords":{}}],["understand",{"_index":1264,"title":{},"content":{"174":{"position":[[1292,10]]},"322":{"position":[[549,10]]},"398":{"position":[[952,13]]}},"keywords":{}}],["unfinish",{"_index":1130,"title":{},"content":{"167":{"position":[[1039,10]]}},"keywords":{}}],["uniqu",{"_index":1445,"title":{},"content":{"197":{"position":[[818,6]]},"202":{"position":[[813,6]]},"286":{"position":[[546,6]]},"298":{"position":[[1297,6]]},"303":{"position":[[790,6]]},"308":{"position":[[840,6]]},"318":{"position":[[651,6]]},"327":{"position":[[823,6]]}},"keywords":{}}],["unit",{"_index":1127,"title":{},"content":{"167":{"position":[[807,4],[1215,4]]},"179":{"position":[[169,5],[498,5]]}},"keywords":{}}],["unknown",{"_index":1329,"title":{},"content":{"182":{"position":[[241,8],[260,9]]}},"keywords":{}}],["unless",{"_index":2200,"title":{},"content":{"407":{"position":[[33,6]]},"414":{"position":[[122,6]]},"416":{"position":[[33,6]]}},"keywords":{}}],["unmanag",{"_index":1013,"title":{},"content":{"160":{"position":[[749,9]]}},"keywords":{}}],["unprocess",{"_index":1603,"title":{},"content":{"232":{"position":[[1777,14]]},"244":{"position":[[335,14]]}},"keywords":{}}],["unref",{"_index":1146,"title":{},"content":{"167":{"position":[[1515,8]]}},"keywords":{}}],["up",{"_index":243,"title":{"189":{"position":[[9,2]]}},"content":{"6":{"position":[[401,2]]},"167":{"position":[[268,2]]},"179":{"position":[[26,2]]},"189":{"position":[[265,2],[755,2],[1245,2]]},"372":{"position":[[27,2]]},"476":{"position":[[197,2]]},"478":{"position":[[862,2]]}},"keywords":{}}],["updat",{"_index":1008,"title":{},"content":{"160":{"position":[[546,6]]},"264":{"position":[[266,8]]},"355":{"position":[[475,8],[656,7]]},"459":{"position":[[0,7]]},"460":{"position":[[0,7]]},"461":{"position":[[0,7]]},"462":{"position":[[0,7]]},"464":{"position":[[0,7]]},"465":{"position":[[0,7]]},"466":{"position":[[561,6]]},"469":{"position":[[0,7]]}},"keywords":{}}],["upgrad",{"_index":2024,"title":{"353":{"position":[[0,7]]},"366":{"position":[[0,7]]},"396":{"position":[[0,7]]},"435":{"position":[[0,7]]}},"content":{"394":{"position":[[0,8]]}},"keywords":{}}],["upload",{"_index":1647,"title":{},"content":{"251":{"position":[[976,6]]}},"keywords":{}}],["uri",{"_index":343,"title":{},"content":{"7":{"position":[[1276,6]]}},"keywords":{}}],["url",{"_index":734,"title":{"89":{"position":[[9,3]]},"192":{"position":[[16,3]]}},"content":{"281":{"position":[[912,3],[1037,3]]}},"keywords":{}}],["url/.zuul.yml",{"_index":345,"title":{},"content":{"7":{"position":[[1298,16]]}},"keywords":{}}],["url/test.j",{"_index":346,"title":{},"content":{"7":{"position":[[1315,14]]}},"keywords":{}}],["urlencod",{"_index":664,"title":{"267":{"position":[[5,9]]},"271":{"position":[[5,9]]},"383":{"position":[[5,9]]},"384":{"position":[[5,9]]},"417":{"position":[[5,9]]},"418":{"position":[[5,9]]},"456":{"position":[[5,9]]},"457":{"position":[[5,9]]}},"content":{"34":{"position":[[1012,9],[1104,9]]},"37":{"position":[[1063,9],[1155,9]]},"43":{"position":[[1012,9],[1104,9]]},"91":{"position":[[1012,9],[1104,9]]},"146":{"position":[[1024,9],[1116,9]]},"268":{"position":[[87,9]]},"270":{"position":[[81,9]]},"272":{"position":[[87,9]]},"274":{"position":[[146,9],[461,11]]},"281":{"position":[[849,9],[974,9]]},"354":{"position":[[1151,9]]}},"keywords":{}}],["us",{"_index":106,"title":{"168":{"position":[[0,3]]},"188":{"position":[[0,5]]},"221":{"position":[[0,5]]}},"content":{"4":{"position":[[95,5],[122,4]]},"5":{"position":[[578,4],[742,4]]},"6":{"position":[[617,5]]},"7":{"position":[[19,5],[295,3]]},"21":{"position":[[2361,3]]},"27":{"position":[[0,5]]},"30":{"position":[[0,5]]},"33":{"position":[[0,5]]},"34":{"position":[[1551,5],[1983,5]]},"36":{"position":[[0,5]]},"37":{"position":[[1676,5],[2108,5]]},"39":{"position":[[0,5]]},"42":{"position":[[0,5]]},"43":{"position":[[1551,5],[1983,5]]},"45":{"position":[[0,5]]},"46":{"position":[[99,3]]},"48":{"position":[[0,5]]},"51":{"position":[[0,5]]},"54":{"position":[[0,5]]},"57":{"position":[[0,5]]},"60":{"position":[[0,5]]},"63":{"position":[[0,5]]},"67":{"position":[[0,5]]},"69":{"position":[[0,5]]},"72":{"position":[[0,5]]},"76":{"position":[[0,5]]},"78":{"position":[[0,5]]},"81":{"position":[[0,5]]},"84":{"position":[[0,5]]},"87":{"position":[[0,5]]},"90":{"position":[[0,5]]},"91":{"position":[[1576,5],[2008,5]]},"93":{"position":[[0,5]]},"96":{"position":[[0,5]]},"99":{"position":[[0,5]]},"103":{"position":[[297,5],[483,5],[581,5],[657,5]]},"104":{"position":[[281,5],[422,5],[497,5],[591,5]]},"106":{"position":[[0,5]]},"109":{"position":[[0,5]]},"112":{"position":[[0,5]]},"115":{"position":[[0,5]]},"118":{"position":[[0,5]]},"121":{"position":[[0,5]]},"124":{"position":[[0,5]]},"130":{"position":[[0,5]]},"133":{"position":[[0,5]]},"138":{"position":[[0,5]]},"145":{"position":[[0,5]]},"146":{"position":[[1563,5],[1995,5]]},"148":{"position":[[522,4]]},"151":{"position":[[275,5],[497,3]]},"153":{"position":[[581,3],[1413,7]]},"155":{"position":[[26,3],[90,5]]},"156":{"position":[[37,5],[463,5]]},"157":{"position":[[355,6],[934,5],[1004,3]]},"159":{"position":[[84,4]]},"161":{"position":[[499,3]]},"167":{"position":[[658,5],[770,5]]},"168":{"position":[[0,3],[33,4],[141,5]]},"170":{"position":[[52,4]]},"173":{"position":[[114,4],[149,3],[263,3],[280,4]]},"174":{"position":[[1525,6],[2210,6],[2454,6]]},"177":{"position":[[111,3],[128,4]]},"178":{"position":[[778,4]]},"179":{"position":[[44,5],[552,5]]},"181":{"position":[[111,3],[128,4],[234,3]]},"182":{"position":[[1220,4]]},"183":{"position":[[244,5]]},"185":{"position":[[89,4]]},"186":{"position":[[747,6]]},"188":{"position":[[8,3]]},"189":{"position":[[324,5],[495,5],[1866,5]]},"196":{"position":[[35,3]]},"201":{"position":[[35,3]]},"206":{"position":[[35,3]]},"210":{"position":[[35,3]]},"214":{"position":[[35,3]]},"215":{"position":[[60,4]]},"218":{"position":[[35,3]]},"223":{"position":[[35,3]]},"227":{"position":[[35,3]]},"231":{"position":[[35,3]]},"232":{"position":[[584,5]]},"235":{"position":[[35,3]]},"238":{"position":[[35,3]]},"239":{"position":[[200,4]]},"242":{"position":[[35,3]]},"243":{"position":[[316,5]]},"246":{"position":[[35,3]]},"247":{"position":[[79,4]]},"250":{"position":[[35,3]]},"251":{"position":[[57,4],[261,4],[549,5]]},"254":{"position":[[35,3]]},"258":{"position":[[35,3]]},"259":{"position":[[90,4]]},"262":{"position":[[35,3]]},"263":{"position":[[395,4]]},"264":{"position":[[371,6]]},"265":{"position":[[529,3]]},"268":{"position":[[35,3]]},"272":{"position":[[35,3]]},"276":{"position":[[35,3]]},"277":{"position":[[242,4]]},"280":{"position":[[265,4]]},"281":{"position":[[667,4]]},"283":{"position":[[374,4]]},"285":{"position":[[35,3]]},"290":{"position":[[35,3]]},"297":{"position":[[35,3]]},"298":{"position":[[842,3],[1016,3],[1627,5]]},"302":{"position":[[35,3]]},"303":{"position":[[1176,5]]},"307":{"position":[[35,3]]},"312":{"position":[[35,3]]},"315":{"position":[[189,4]]},"317":{"position":[[35,3]]},"322":{"position":[[1236,5]]},"324":{"position":[[83,5],[917,6]]},"326":{"position":[[35,3]]},"328":{"position":[[153,5],[648,5],[732,5]]},"331":{"position":[[35,3]]},"335":{"position":[[35,3]]},"336":{"position":[[88,4]]},"339":{"position":[[35,3]]},"340":{"position":[[831,5]]},"346":{"position":[[35,3]]},"347":{"position":[[376,5],[469,3]]},"350":{"position":[[35,3]]},"354":{"position":[[418,4]]},"358":{"position":[[35,3]]},"359":{"position":[[84,4],[235,4],[495,4]]},"360":{"position":[[60,5]]},"362":{"position":[[1342,4]]},"363":{"position":[[275,3],[370,3],[810,5]]},"364":{"position":[[382,5]]},"365":{"position":[[259,4],[341,5]]},"369":{"position":[[60,3]]},"383":{"position":[[29,4]]},"386":{"position":[[39,4]]},"395":{"position":[[99,3],[198,3]]},"397":{"position":[[108,3]]},"398":{"position":[[85,3],[637,3],[691,3]]},"406":{"position":[[70,3]]},"408":{"position":[[89,3]]},"434":{"position":[[78,13]]},"459":{"position":[[11,3]]},"460":{"position":[[11,3]]},"461":{"position":[[11,3]]},"462":{"position":[[11,3]]},"464":{"position":[[11,3]]},"465":{"position":[[11,3]]},"466":{"position":[[568,3]]},"469":{"position":[[11,3]]},"472":{"position":[[898,5]]},"473":{"position":[[261,3]]},"474":{"position":[[74,4],[349,6],[525,5]]},"478":{"position":[[754,3]]}},"keywords":{}}],["usabl",{"_index":2269,"title":{},"content":{"473":{"position":[[118,7]]}},"keywords":{}}],["usag",{"_index":915,"title":{"156":{"position":[[0,6]]},"174":{"position":[[7,6]]},"178":{"position":[[7,6]]},"182":{"position":[[7,6]]},"186":{"position":[[7,6]]},"198":{"position":[[7,6]]},"203":{"position":[[7,6]]},"208":{"position":[[7,6]]},"212":{"position":[[7,6]]},"216":{"position":[[7,6]]},"220":{"position":[[7,6]]},"225":{"position":[[7,6]]},"229":{"position":[[7,6]]},"233":{"position":[[7,6]]},"236":{"position":[[7,6]]},"240":{"position":[[7,6]]},"244":{"position":[[7,6]]},"248":{"position":[[7,6]]},"252":{"position":[[7,6]]},"256":{"position":[[7,6]]},"260":{"position":[[7,6]]},"266":{"position":[[7,6]]},"270":{"position":[[7,6]]},"274":{"position":[[7,6]]},"278":{"position":[[7,6]]},"287":{"position":[[7,6]]},"292":{"position":[[7,6]]},"299":{"position":[[7,6]]},"304":{"position":[[7,6]]},"309":{"position":[[7,6]]},"314":{"position":[[7,6]]},"319":{"position":[[7,6]]},"328":{"position":[[7,6]]},"333":{"position":[[7,6]]},"337":{"position":[[7,6]]},"341":{"position":[[7,6]]},"348":{"position":[[7,6]]},"352":{"position":[[7,6]]},"362":{"position":[[7,6]]}},"content":{"153":{"position":[[1350,5]]},"161":{"position":[[714,6]]},"189":{"position":[[1651,5]]},"369":{"position":[[36,6]]},"370":{"position":[[36,6]]}},"keywords":{}}],["use(capturelambdahandler(trac",{"_index":1302,"title":{},"content":{"178":{"position":[[473,35]]},"188":{"position":[[762,34]]},"189":{"position":[[1717,34]]}},"keywords":{}}],["use(cfheadernorm",{"_index":714,"title":{},"content":{"46":{"position":[[63,28]]}},"keywords":{}}],["use(cloudwatchmetricsmiddlewar",{"_index":746,"title":{},"content":{"102":{"position":[[500,35]]}},"keywords":{}}],["use(custommiddlewar",{"_index":2264,"title":{},"content":{"472":{"position":[[1166,23]]}},"keywords":{}}],["use(errorlogg",{"_index":529,"title":{},"content":{"21":{"position":[[945,19]]},"22":{"position":[[807,19]]},"216":{"position":[[158,19]]}},"keywords":{}}],["use(errorloggermiddlewar",{"_index":748,"title":{},"content":{"102":{"position":[[572,29]]}},"keywords":{}}],["use(eventlogg",{"_index":528,"title":{},"content":{"21":{"position":[[925,19]]},"22":{"position":[[787,19]]}},"keywords":{}}],["use(eventnormalizermiddlewar",{"_index":720,"title":{},"content":{"55":{"position":[[127,33]]},"64":{"position":[[127,33]]},"73":{"position":[[127,33]]},"82":{"position":[[127,33]]},"94":{"position":[[127,33]]},"97":{"position":[[127,33]]},"100":{"position":[[127,33]]},"110":{"position":[[127,33]]},"113":{"position":[[127,33]]},"116":{"position":[[127,33]]},"119":{"position":[[127,33]]},"122":{"position":[[127,33]]},"134":{"position":[[127,33]]},"139":{"position":[[197,33]]}},"keywords":{}}],["use(httpcontentencod",{"_index":1523,"title":{},"content":{"220":{"position":[[264,26]]},"221":{"position":[[347,26]]}},"keywords":{}}],["use(httpcontentencodingmiddlewar",{"_index":691,"title":{},"content":{"34":{"position":[[1945,37]]},"37":{"position":[[2070,37]]},"43":{"position":[[1945,37]]},"91":{"position":[[1970,37]]},"146":{"position":[[1957,37]]}},"keywords":{}}],["use(httpcontentnegoti",{"_index":1522,"title":{},"content":{"220":{"position":[[233,30]]},"221":{"position":[[316,30]]},"229":{"position":[[804,29]]}},"keywords":{}}],["use(httpcor",{"_index":535,"title":{},"content":{"21":{"position":[[1123,16]]},"22":{"position":[[985,16]]}},"keywords":{}}],["use(httpcorsmiddlewar",{"_index":690,"title":{},"content":{"34":{"position":[[1918,26]]},"37":{"position":[[2043,26]]},"43":{"position":[[1918,26]]},"91":{"position":[[1943,26]]},"146":{"position":[[1930,26]]}},"keywords":{}}],["use(httperrorhandl",{"_index":219,"title":{},"content":{"5":{"position":[[1977,24]]},"229":{"position":[[1024,24]]},"244":{"position":[[191,24]]}},"keywords":{}}],["use(httperrorhandlermiddlewar",{"_index":697,"title":{},"content":{"34":{"position":[[2256,34]]},"37":{"position":[[2322,34]]},"43":{"position":[[2267,34]]},"91":{"position":[[2281,34]]},"146":{"position":[[2268,34]]}},"keywords":{}}],["use(httpeventnorm",{"_index":530,"title":{},"content":{"21":{"position":[[965,27]]},"22":{"position":[[827,27]]}},"keywords":{}}],["use(httpeventnormalizermiddlewar",{"_index":676,"title":{},"content":{"34":{"position":[[1474,37]]},"37":{"position":[[1599,37]]},"43":{"position":[[1474,37]]},"91":{"position":[[1499,37]]},"146":{"position":[[1486,37]]}},"keywords":{}}],["use(httpheadernorm",{"_index":531,"title":{},"content":{"21":{"position":[[993,28]]},"22":{"position":[[855,28]]},"229":{"position":[[775,28]]},"240":{"position":[[121,28]]},"348":{"position":[[611,28]]}},"keywords":{}}],["use(httpheadernormalizermiddlewar",{"_index":677,"title":{},"content":{"34":{"position":[[1512,38]]},"37":{"position":[[1637,38]]},"43":{"position":[[1512,38]]},"91":{"position":[[1537,38]]},"146":{"position":[[1524,38]]}},"keywords":{}}],["use(httpjsonbodypars",{"_index":534,"title":{},"content":{"21":{"position":[[1096,26]]},"22":{"position":[[958,26]]}},"keywords":{}}],["use(httpjsonbodyparsermiddlewar",{"_index":687,"title":{},"content":{"34":{"position":[[1788,36]]},"37":{"position":[[1913,36]]},"43":{"position":[[1788,36]]},"91":{"position":[[1813,36]]},"146":{"position":[[1800,36]]},"450":{"position":[[166,36]]}},"keywords":{}}],["use(httpmultipartbodyparsermiddlewar",{"_index":688,"title":{},"content":{"34":{"position":[[1825,41]]},"37":{"position":[[1950,41]]},"43":{"position":[[1825,41]]},"91":{"position":[[1850,41]]},"146":{"position":[[1837,41]]}},"keywords":{}}],["use(httppartialresponsemiddlewar",{"_index":695,"title":{},"content":{"34":{"position":[[2159,37]]},"37":{"position":[[2284,37]]},"43":{"position":[[2170,37]]},"91":{"position":[[2184,37]]},"146":{"position":[[2171,37]]}},"keywords":{}}],["use(httpresponseseri",{"_index":1715,"title":{},"content":{"266":{"position":[[219,29]]}},"keywords":{}}],["use(httpsecurityhead",{"_index":536,"title":{},"content":{"21":{"position":[[1140,27]]},"22":{"position":[[1002,27]]},"256":{"position":[[163,27]]}},"keywords":{}}],["use(httpsecurityheadersmiddlewar",{"_index":689,"title":{},"content":{"34":{"position":[[1880,37]]},"37":{"position":[[2005,37]]},"43":{"position":[[1880,37]]},"91":{"position":[[1905,37]]},"146":{"position":[[1892,37]]}},"keywords":{}}],["use(httpurlencodebodypars",{"_index":533,"title":{},"content":{"21":{"position":[[1064,31]]},"22":{"position":[[926,31]]}},"keywords":{}}],["use(httpurlencodebodyparsermiddlewar",{"_index":686,"title":{},"content":{"34":{"position":[[1746,41]]},"37":{"position":[[1871,41]]},"43":{"position":[[1746,41]]},"91":{"position":[[1771,41]]},"146":{"position":[[1758,41]]}},"keywords":{}}],["use(httpurlencodepathparameterspars",{"_index":532,"title":{},"content":{"21":{"position":[[1022,41]]},"22":{"position":[[884,41]]}},"keywords":{}}],["use(httpurlencodepathparametersparsermiddlewar",{"_index":684,"title":{},"content":{"34":{"position":[[1679,51]]},"37":{"position":[[1804,51]]},"43":{"position":[[1679,51]]},"91":{"position":[[1704,51]]},"146":{"position":[[1691,51]]}},"keywords":{}}],["use(injectlambdacontext(logg",{"_index":1228,"title":{},"content":{"174":{"position":[[356,34]]},"188":{"position":[[797,32]]},"189":{"position":[[1752,32]]}},"keywords":{}}],["use(inputoutputloggermiddlewar",{"_index":747,"title":{},"content":{"102":{"position":[[536,35]]}},"keywords":{}}],["use(jsonbodypars",{"_index":212,"title":{},"content":{"5":{"position":[[1800,22]]}},"keywords":{}}],["use(logmetrics(metr",{"_index":1333,"title":{},"content":{"182":{"position":[[407,26]]},"188":{"position":[[851,24]]},"189":{"position":[[1806,24]]}},"keywords":{}}],["use(middleware1",{"_index":941,"title":{},"content":{"157":{"position":[[294,19]]}},"keywords":{}}],["use(middleware2",{"_index":942,"title":{},"content":{"157":{"position":[[314,19]]}},"keywords":{}}],["use(middleware3",{"_index":943,"title":{},"content":{"157":{"position":[[334,19]]}},"keywords":{}}],["use(rdssign",{"_index":83,"title":{},"content":{"2":{"position":[[696,20]]}},"keywords":{}}],["use(s3objectresponsemiddlewar",{"_index":798,"title":{},"content":{"128":{"position":[[203,33]]}},"keywords":{}}],["use(secretsmanag",{"_index":84,"title":{},"content":{"2":{"position":[[717,25]]}},"keywords":{}}],["use(somemiddlewar",{"_index":936,"title":{},"content":{"156":{"position":[[482,22]]},"168":{"position":[[601,20]]}},"keywords":{}}],["use(someothermiddlewar",{"_index":1155,"title":{},"content":{"168":{"position":[[622,25]]}},"keywords":{}}],["use(sqspartialbatchfailur",{"_index":815,"title":{},"content":{"139":{"position":[[231,30]]}},"keywords":{}}],["use(ssm",{"_index":82,"title":{},"content":{"2":{"position":[[681,14]]}},"keywords":{}}],["use(st",{"_index":81,"title":{},"content":{"2":{"position":[[666,14]]}},"keywords":{}}],["use(valid",{"_index":215,"title":{},"content":{"5":{"position":[[1896,16]]}},"keywords":{}}],["use(validator({eventschema",{"_index":537,"title":{},"content":{"21":{"position":[[1168,30]]},"22":{"position":[[1030,30]]}},"keywords":{}}],["use(validatormiddlewar",{"_index":696,"title":{},"content":{"34":{"position":[[2197,26]]},"43":{"position":[[2208,26]]},"91":{"position":[[2222,26]]},"102":{"position":[[602,26]]},"146":{"position":[[2209,26]]},"466":{"position":[[761,26],[1029,26]]}},"keywords":{}}],["use(validatormiddleware({eventschema",{"_index":2021,"title":{},"content":{"348":{"position":[[161,38],[317,38]]},"352":{"position":[[215,38],[354,38]]}},"keywords":{}}],["use(warmup",{"_index":1997,"title":{},"content":{"333":{"position":[[242,13]]}},"keywords":{}}],["use(warmupmiddlewar",{"_index":675,"title":{},"content":{"34":{"position":[[1449,24]]},"37":{"position":[[1574,24]]},"43":{"position":[[1449,24]]},"91":{"position":[[1474,24]]},"102":{"position":[[475,24]]},"146":{"position":[[1461,24]]}},"keywords":{}}],["use(wsjsonbodyparsermiddlewar",{"_index":639,"title":{},"content":{"31":{"position":[[612,34]]},"337":{"position":[[185,34]]}},"keywords":{}}],["use(wsresponsemiddlewar",{"_index":640,"title":{},"content":{"31":{"position":[[647,28]]},"337":{"position":[[220,28]]},"352":{"position":[[493,28]]}},"keywords":{}}],["use.wrap",{"_index":930,"title":{},"content":{"156":{"position":[[244,8]]}},"keywords":{}}],["used.plugin",{"_index":2162,"title":{},"content":{"394":{"position":[[246,11]]}},"keywords":{}}],["usedefault",{"_index":2085,"title":{},"content":{"360":{"position":[[334,12]]}},"keywords":{}}],["user",{"_index":708,"title":{},"content":{"37":{"position":[[1444,8]]},"160":{"position":[[666,5]]},"163":{"position":[[818,5]]},"236":{"position":[[161,4],[223,4]]},"251":{"position":[[958,5]]},"348":{"position":[[546,8]]},"478":{"position":[[915,5]]}},"keywords":{}}],["user.j",{"_index":703,"title":{},"content":{"37":{"position":[[1270,8],[1334,8]]}},"keywords":{}}],["user.nam",{"_index":1748,"title":{},"content":{"277":{"position":[[400,10]]}},"keywords":{}}],["user/{id",{"_index":706,"title":{},"content":{"37":{"position":[[1383,13]]},"348":{"position":[[485,13]]}},"keywords":{}}],["userland",{"_index":2051,"title":{},"content":{"355":{"position":[[727,8]]}},"keywords":{}}],["usernam",{"_index":762,"title":{},"content":{"103":{"position":[[419,9]]},"287":{"position":[[349,9]]},"299":{"position":[[460,10],[518,11]]}},"keywords":{}}],["users.[].namemask",{"_index":1749,"title":{},"content":{"277":{"position":[[411,17]]}},"keywords":{}}],["users.s3",{"_index":1797,"title":{},"content":{"283":{"position":[[154,9]]}},"keywords":{}}],["usr/bin/env",{"_index":2103,"title":{},"content":{"363":{"position":[[61,14]]}},"keywords":{}}],["usual",{"_index":926,"title":{},"content":{"156":{"position":[[123,6]]},"394":{"position":[[218,7]]}},"keywords":{}}],["utf",{"_index":1528,"title":{},"content":{"220":{"position":[[382,3]]},"221":{"position":[[465,3]]},"412":{"position":[[45,3]]}},"keywords":{}}],["utf8",{"_index":1637,"title":{},"content":{"251":{"position":[[244,6]]}},"keywords":{}}],["util",{"_index":464,"title":{"188":{"position":[[15,10]]},"190":{"position":[[0,9]]},"399":{"position":[[0,5]]},"438":{"position":[[0,5]]}},"content":{"15":{"position":[[564,7]]},"170":{"position":[[30,9],[188,9]]},"174":{"position":[[1254,8],[1629,7]]},"178":{"position":[[546,7],[837,7],[1273,7]]},"179":{"position":[[570,8]]},"182":{"position":[[1093,7]]},"188":{"position":[[32,9]]},"189":{"position":[[226,10],[272,9],[341,8],[513,8],[595,7],[766,9],[1263,9]]},"190":{"position":[[0,9]]},"281":{"position":[[174,9]]},"323":{"position":[[45,9],[416,7],[630,9]]},"324":{"position":[[1665,7]]}},"keywords":{}}],["utilitymiddi",{"_index":1902,"title":{},"content":{"322":{"position":[[925,12],[1055,12]]}},"keywords":{}}],["uuid/bin",{"_index":347,"title":{},"content":{"7":{"position":[[1330,11]]}},"keywords":{}}],["v0",{"_index":1102,"title":{},"content":{"166":{"position":[[676,2]]}},"keywords":{}}],["v0.2.1",{"_index":973,"title":{},"content":{"159":{"position":[[293,6]]}},"keywords":{}}],["v1",{"_index":1098,"title":{},"content":{"166":{"position":[[629,2]]}},"keywords":{}}],["v1.0.0",{"_index":976,"title":{},"content":{"159":{"position":[[325,6]]}},"keywords":{}}],["v1.x",{"_index":2132,"title":{},"content":{"367":{"position":[[371,4]]}},"keywords":{}}],["v10",{"_index":2147,"title":{},"content":{"372":{"position":[[38,4]]}},"keywords":{}}],["v12",{"_index":151,"title":{},"content":{"5":{"position":[[259,4]]}},"keywords":{}}],["v14",{"_index":148,"title":{},"content":{"5":{"position":[[198,4]]}},"keywords":{}}],["v2",{"_index":786,"title":{},"content":{"106":{"position":[[77,2]]},"166":{"position":[[582,2]]},"175":{"position":[[308,2]]}},"keywords":{}}],["v2.0.0",{"_index":981,"title":{},"content":{"159":{"position":[[397,6],[427,6]]}},"keywords":{}}],["v2.x",{"_index":2215,"title":{},"content":{"421":{"position":[[42,4]]},"425":{"position":[[42,4]]}},"keywords":{}}],["v3",{"_index":1095,"title":{},"content":{"166":{"position":[[535,2]]},"167":{"position":[[150,3]]},"175":{"position":[[315,2]]},"421":{"position":[[63,2]]},"425":{"position":[[63,2]]},"459":{"position":[[23,2]]},"460":{"position":[[23,2]]},"461":{"position":[[23,2]]},"462":{"position":[[23,2]]},"464":{"position":[[23,2]]},"465":{"position":[[23,2]]},"469":{"position":[[23,2]]}},"keywords":{}}],["v3.0.0",{"_index":990,"title":{},"content":{"159":{"position":[[492,6]]}},"keywords":{}}],["v4",{"_index":1091,"title":{},"content":{"166":{"position":[[492,2]]}},"keywords":{}}],["v4.0.0",{"_index":994,"title":{},"content":{"159":{"position":[[519,6]]}},"keywords":{}}],["valid",{"_index":124,"title":{"357":{"position":[[0,9]]},"394":{"position":[[0,10]]},"429":{"position":[[0,10]]},"466":{"position":[[0,10]]}},"content":{"4":{"position":[[430,11]]},"5":{"position":[[413,9],[1111,10],[1957,9]]},"6":{"position":[[305,11]]},"21":{"position":[[2087,9],[2214,12],[2246,9]]},"34":{"position":[[1159,11]]},"43":{"position":[[1159,11]]},"91":{"position":[[1159,11]]},"102":{"position":[[257,11]]},"146":{"position":[[1171,11]]},"265":{"position":[[581,8]]},"281":{"position":[[1079,9]]},"322":{"position":[[138,9],[1279,10]]},"324":{"position":[[257,10],[286,10],[1493,8]]},"359":{"position":[[61,9],[92,8],[212,9],[243,8],[354,10],[472,9],[503,8]]},"362":{"position":[[18,11],[69,9],[316,10],[436,11],[696,12],[734,11],[785,9],[1249,12],[1389,11],[1502,9],[1943,8],[2026,11]]},"363":{"position":[[196,8],[212,5],[651,9],[816,11]]},"364":{"position":[[83,9],[388,11]]},"365":{"position":[[83,9],[347,11]]}},"keywords":{}}],["validator@iress/middi",{"_index":1915,"title":{},"content":{"322":{"position":[[1322,21]]}},"keywords":{}}],["validatormiddlewar",{"_index":666,"title":{},"content":{"34":{"position":[[1134,19]]},"43":{"position":[[1134,19]]},"91":{"position":[[1134,19]]},"102":{"position":[[232,19]]},"146":{"position":[[1146,19]]},"348":{"position":[[90,19]]},"352":{"position":[[140,19]]},"466":{"position":[[593,19],[886,19]]}},"keywords":{}}],["validatormiddlewareaft",{"_index":557,"title":{},"content":{"21":{"position":[[1673,24]]}},"keywords":{}}],["validatormiddlewarebefor",{"_index":554,"title":{},"content":{"21":{"position":[[1615,25]]}},"keywords":{}}],["valu",{"_index":64,"title":{},"content":{"2":{"position":[[393,6],[467,5],[549,6],[797,7],[924,8],[1059,8],[1083,7],[1272,8]]},"46":{"position":[[127,5]]},"151":{"position":[[968,6]]},"153":{"position":[[1041,5]]},"165":{"position":[[30,5]]},"173":{"position":[[174,7]]},"178":{"position":[[674,5]]},"179":{"position":[[175,7]]},"182":{"position":[[1151,5]]},"189":{"position":[[1342,5]]},"232":{"position":[[299,5],[389,5],[866,5],[956,5],[1053,5],[1152,5],[1249,5]]},"265":{"position":[[613,6]]},"277":{"position":[[463,6]]},"298":{"position":[[880,5]]},"315":{"position":[[4,5]]},"323":{"position":[[492,6]]},"328":{"position":[[235,5],[295,7],[814,5],[873,7]]},"369":{"position":[[365,6],[395,5]]},"398":{"position":[[857,6]]},"434":{"position":[[130,6]]},"474":{"position":[[88,6],[875,6],[1106,6],[1237,5],[1317,6]]},"476":{"position":[[433,5]]}},"keywords":{}}],["values.node_env",{"_index":2228,"title":{},"content":{"434":{"position":[[203,15]]}},"keywords":{}}],["values.podspec",{"_index":340,"title":{},"content":{"7":{"position":[[1229,14]]}},"keywords":{}}],["values/android",{"_index":336,"title":{},"content":{"7":{"position":[[1071,14]]}},"keywords":{}}],["values/index.web.j",{"_index":338,"title":{},"content":{"7":{"position":[[1151,19]]}},"keywords":{}}],["values/io",{"_index":337,"title":{},"content":{"7":{"position":[[1113,10]]}},"keywords":{}}],["values/react",{"_index":339,"title":{},"content":{"7":{"position":[[1198,12]]}},"keywords":{}}],["values[internalkey",{"_index":2285,"title":{},"content":{"474":{"position":[[974,19]]}},"keywords":{}}],["variabl",{"_index":6,"title":{},"content":{"0":{"position":[[58,8]]},"21":{"position":[[2819,8]]},"347":{"position":[[259,9]]}},"keywords":{}}],["variablessq",{"_index":1961,"title":{},"content":{"324":{"position":[[1528,12]]}},"keywords":{}}],["verbos",{"_index":1025,"title":{},"content":{"161":{"position":[[505,7]]}},"keywords":{}}],["veri",{"_index":101,"title":{},"content":{"4":{"position":[[11,4],[253,4]]},"6":{"position":[[360,4]]},"152":{"position":[[64,4]]},"156":{"position":[[52,4]]},"473":{"position":[[70,4]]},"476":{"position":[[422,4]]}},"keywords":{}}],["verifi",{"_index":853,"title":{},"content":{"151":{"position":[[427,6]]}},"keywords":{}}],["version",{"_index":1083,"title":{"322":{"position":[[0,7]]},"323":{"position":[[0,7]]},"324":{"position":[[0,7]]}},"content":{"166":{"position":[[393,7]]},"247":{"position":[[252,8]]},"251":{"position":[[437,8]]},"273":{"position":[[145,8]]},"354":{"position":[[0,7]]},"355":{"position":[[589,7]]},"356":{"position":[[0,7],[48,8],[78,8],[273,8]]}},"keywords":{}}],["vesper",{"_index":1059,"title":{},"content":{"164":{"position":[[356,6]]}},"keywords":{}}],["vgaltesgolang",{"_index":1058,"title":{},"content":{"164":{"position":[[336,14]]}},"keywords":{}}],["via",{"_index":1187,"title":{},"content":{"171":{"position":[[240,3]]},"175":{"position":[[226,3],[318,3]]},"265":{"position":[[231,3]]},"323":{"position":[[346,3]]},"395":{"position":[[360,3]]}},"keywords":{}}],["volum",{"_index":1640,"title":{},"content":{"251":{"position":[[596,7]]}},"keywords":{}}],["voxel.middynet",{"_index":1057,"title":{},"content":{"164":{"position":[[321,14]]}},"keywords":{}}],["vpc",{"_index":824,"title":{"144":{"position":[[0,3]]}},"content":{"145":{"position":[[29,3]]}},"keywords":{}}],["wait",{"_index":571,"title":{"209":{"position":[[7,4]]},"371":{"position":[[7,4]]},"402":{"position":[[7,4]]},"441":{"position":[[7,4]]}},"content":{"21":{"position":[[1941,5]]},"136":{"position":[[130,4]]},"210":{"position":[[89,4]]},"212":{"position":[[86,4]]},"280":{"position":[[106,4]]},"354":{"position":[[568,4]]}},"keywords":{}}],["want",{"_index":73,"title":{},"content":{"2":{"position":[[537,4]]},"21":{"position":[[2353,4]]},"143":{"position":[[61,4]]},"147":{"position":[[53,4]]},"148":{"position":[[62,4]]},"149":{"position":[[69,4]]},"150":{"position":[[65,4]]},"151":{"position":[[86,4],[419,4]]},"153":{"position":[[116,4]]},"155":{"position":[[122,4]]},"156":{"position":[[236,4]]},"167":{"position":[[56,4]]},"174":{"position":[[1574,4],[1821,4],[1969,4],[2259,4],[2470,4]]},"188":{"position":[[396,4]]},"190":{"position":[[58,4]]},"243":{"position":[[143,4]]},"251":{"position":[[924,4]]},"263":{"position":[[454,7]]},"264":{"position":[[385,4]]},"473":{"position":[[33,4]]},"476":{"position":[[304,4]]}},"keywords":{}}],["ware",{"_index":1940,"title":{},"content":{"324":{"position":[[534,5]]}},"keywords":{}}],["warm",{"_index":1767,"title":{},"content":{"280":{"position":[[277,4]]},"324":{"position":[[660,4]]}},"keywords":{}}],["warmup",{"_index":668,"title":{"330":{"position":[[0,6]]},"395":{"position":[[0,7]]},"430":{"position":[[0,7]]},"467":{"position":[[0,7]]}},"content":{"34":{"position":[[1200,8]]},"37":{"position":[[1207,8]]},"43":{"position":[[1200,8]]},"91":{"position":[[1200,8]]},"102":{"position":[[298,8]]},"146":{"position":[[1212,8]]},"149":{"position":[[181,6]]},"324":{"position":[[611,7]]},"332":{"position":[[112,6],[263,7]]},"333":{"position":[[43,6]]},"395":{"position":[[322,8],[364,6],[391,8]]}},"keywords":{}}],["warmupmiddlewar",{"_index":667,"title":{},"content":{"34":{"position":[[1178,16]]},"37":{"position":[[1185,16]]},"43":{"position":[[1178,16]]},"91":{"position":[[1178,16]]},"102":{"position":[[276,16]]},"146":{"position":[[1190,16]]}},"keywords":{}}],["warn",{"_index":1203,"title":{},"content":{"173":{"position":[[203,5]]}},"keywords":{}}],["watch",{"_index":725,"title":{"62":{"position":[[6,5]]}},"content":{},"keywords":{}}],["way",{"_index":129,"title":{},"content":{"4":{"position":[[488,3]]},"5":{"position":[[546,3]]},"163":{"position":[[635,3]]},"165":{"position":[[155,3]]},"232":{"position":[[252,3]]},"265":{"position":[[27,3]]},"277":{"position":[[331,3]]}},"keywords":{}}],["we'v",{"_index":2240,"title":{},"content":{"466":{"position":[[0,5]]}},"keywords":{}}],["web",{"_index":107,"title":{},"content":{"4":{"position":[[127,3]]},"6":{"position":[[541,3]]},"324":{"position":[[1110,3]]}},"keywords":{}}],["webkitformboundaryppsqewf2bvjece0m",{"_index":1652,"title":{},"content":{"252":{"position":[[397,35]]}},"keywords":{}}],["webpack",{"_index":442,"title":{"15":{"position":[[0,8]]}},"content":{"15":{"position":[[9,7],[21,7]]}},"keywords":{}}],["webpack.config.mj",{"_index":445,"title":{},"content":{"15":{"position":[[56,19]]}},"keywords":{}}],["websocket",{"_index":624,"title":{"29":{"position":[[12,11]]}},"content":{"30":{"position":[[53,9]]},"281":{"position":[[1193,9]]},"282":{"position":[[634,9]]},"355":{"position":[[128,9],[261,9]]},"397":{"position":[[4,9],[36,9]]},"431":{"position":[[22,9]]},"432":{"position":[[24,9]]}},"keywords":{}}],["welcom",{"_index":876,"title":{},"content":{"152":{"position":[[69,7]]}},"keywords":{}}],["well",{"_index":772,"title":{"104":{"position":[[48,5]]}},"content":{"182":{"position":[[1137,4]]},"298":{"position":[[1691,5]]},"354":{"position":[[230,5]]}},"keywords":{}}],["west",{"_index":1232,"title":{},"content":{"174":{"position":[[520,4],[582,4],[784,4]]}},"keywords":{}}],["whether",{"_index":1215,"title":{},"content":{"173":{"position":[[667,7],[762,7]]},"174":{"position":[[1377,7]]},"177":{"position":[[205,7],[281,7],[568,7]]},"181":{"position":[[495,7],[610,7]]},"224":{"position":[[43,7]]}},"keywords":{}}],["whichev",{"_index":1838,"title":{},"content":{"298":{"position":[[944,9]]}},"keywords":{}}],["whole",{"_index":887,"title":{},"content":{"153":{"position":[[53,5]]},"189":{"position":[[82,5]]}},"keywords":{}}],["wildcard",{"_index":2014,"title":{},"content":{"347":{"position":[[277,9]]}},"keywords":{}}],["willfarrell2021",{"_index":980,"title":{},"content":{"159":{"position":[[379,17]]}},"keywords":{}}],["window",{"_index":1356,"title":{},"content":{"183":{"position":[[281,6]]}},"keywords":{}}],["windowensur",{"_index":1351,"title":{},"content":{"183":{"position":[[107,12]]}},"keywords":{}}],["winter@sharecov",{"_index":1942,"title":{},"content":{"324":{"position":[[672,17]]}},"keywords":{}}],["within",{"_index":840,"title":{},"content":{"148":{"position":[[580,6]]},"161":{"position":[[112,6]]},"164":{"position":[[134,6]]},"385":{"position":[[84,6]]}},"keywords":{}}],["without",{"_index":804,"title":{"136":{"position":[[26,7]]}},"content":{"207":{"position":[[359,7]]},"243":{"position":[[234,7]]},"303":{"position":[[1124,7]]},"322":{"position":[[770,7]]}},"keywords":{}}],["won't",{"_index":898,"title":{},"content":{"153":{"position":[[478,5]]},"362":{"position":[[361,5],[373,5]]}},"keywords":{}}],["word",{"_index":136,"title":{},"content":{"5":{"position":[[27,6]]}},"keywords":{}}],["work",{"_index":618,"title":{"162":{"position":[[7,5]]}},"content":{"24":{"position":[[0,7]]},"143":{"position":[[36,4]]},"147":{"position":[[28,4]]},"148":{"position":[[37,4]]},"149":{"position":[[44,4]]},"150":{"position":[[40,4]]},"151":{"position":[[61,4]]},"167":{"position":[[31,4]]},"189":{"position":[[201,4]]},"190":{"position":[[33,4]]},"322":{"position":[[96,7]]},"324":{"position":[[567,5],[1450,5]]},"395":{"position":[[23,4],[168,4]]},"466":{"position":[[19,4]]},"473":{"position":[[387,4]]},"476":{"position":[[94,4]]}},"keywords":{}}],["workaround",{"_index":2235,"title":{},"content":{"450":{"position":[[81,11]]}},"keywords":{}}],["worker",{"_index":1131,"title":{},"content":{"167":{"position":[[1050,6],[1279,6]]}},"keywords":{}}],["workmail",{"_index":816,"title":{"140":{"position":[[0,8]]}},"content":{"141":{"position":[[34,8]]}},"keywords":{}}],["world",{"_index":1456,"title":{},"content":{"198":{"position":[[208,6]]},"203":{"position":[[206,6]]},"229":{"position":[[448,6]]},"266":{"position":[[168,6]]},"278":{"position":[[226,6]]},"287":{"position":[[209,6]]},"304":{"position":[[222,6]]},"309":{"position":[[223,6]]},"319":{"position":[[196,6]]}},"keywords":{}}],["world</message>",{"_index":1722,"title":{},"content":{"266":{"position":[[738,23]]}},"keywords":{}}],["worri",{"_index":2050,"title":{},"content":{"355":{"position":[[705,5]]}},"keywords":{}}],["wrap",{"_index":1112,"title":{},"content":{"167":{"position":[[364,7]]},"324":{"position":[[844,5]]},"466":{"position":[[794,4]]}},"keywords":{}}],["wrapnumb",{"_index":1534,"title":{},"content":{"224":{"position":[[0,11]]}},"keywords":{}}],["wrapper",{"_index":1168,"title":{},"content":{"170":{"position":[[435,7]]},"324":{"position":[[553,7]]}},"keywords":{}}],["write",{"_index":234,"title":{},"content":{"6":{"position":[[180,7]]},"156":{"position":[[93,5]]},"157":{"position":[[1036,7]]},"167":{"position":[[330,7]]},"168":{"position":[[684,5]]},"189":{"position":[[163,7]]},"283":{"position":[[227,5]]},"477":{"position":[[85,5]]},"478":{"position":[[49,5]]}},"keywords":{}}],["written",{"_index":258,"title":{},"content":{"6":{"position":[[822,7]]}},"keywords":{}}],["ws",{"_index":1998,"title":{"334":{"position":[[0,2]]},"338":{"position":[[0,2]]},"349":{"position":[[0,2]]},"431":{"position":[[0,2]]},"432":{"position":[[0,2]]},"433":{"position":[[0,2]]},"468":{"position":[[0,2]]},"469":{"position":[[0,2]]},"470":{"position":[[0,2]]}},"content":{},"keywords":{}}],["wsjsonbodyparsermiddlewar",{"_index":626,"title":{},"content":{"31":{"position":[[39,26]]},"337":{"position":[[39,26]]}},"keywords":{}}],["wsrespons",{"_index":2007,"title":{},"content":{"342":{"position":[[39,10]]},"343":{"position":[[39,10],[194,12]]}},"keywords":{}}],["wsresponsemiddlewar",{"_index":627,"title":{},"content":{"31":{"position":[[107,20]]},"337":{"position":[[107,20]]},"352":{"position":[[86,20]]}},"keywords":{}}],["wsrouterhandl",{"_index":628,"title":{},"content":{"31":{"position":[[161,15]]},"352":{"position":[[39,15]]}},"keywords":{}}],["www",{"_index":1733,"title":{},"content":{"274":{"position":[[452,3]]}},"keywords":{}}],["x",{"_index":1170,"title":{},"content":{"170":{"position":[[454,1]]},"174":{"position":[[1475,1]]},"175":{"position":[[326,1]]},"178":{"position":[[1038,1]]},"189":{"position":[[467,1]]},"255":{"position":[[255,1]]},"323":{"position":[[171,1]]},"324":{"position":[[721,1]]},"327":{"position":[[110,1],[401,1]]},"399":{"position":[[73,1]]}},"keywords":{}}],["xray",{"_index":797,"title":{},"content":{"128":{"position":[[157,4]]},"197":{"position":[[122,6],[443,4],[487,4]]},"202":{"position":[[120,6],[439,4],[483,4]]},"286":{"position":[[104,6]]},"291":{"position":[[213,6],[383,4],[427,4],[482,4],[526,4]]},"298":{"position":[[132,6],[437,4],[481,4]]},"303":{"position":[[108,6],[422,4],[466,4]]},"308":{"position":[[136,6],[471,4],[515,4]]},"318":{"position":[[110,6],[282,4],[326,4]]},"324":{"position":[[703,4]]},"327":{"position":[[446,4]]},"340":{"position":[[144,6],[493,4],[537,4]]}},"keywords":{}}],["xray_trace_id",{"_index":1267,"title":{},"content":{"174":{"position":[[1438,13]]}},"keywords":{}}],["xss",{"_index":1674,"title":{},"content":{"255":{"position":[[400,3]]}},"keywords":{}}],["yarn.lock",{"_index":353,"title":{},"content":{"7":{"position":[[1397,9]]}},"keywords":{}}],["yarnclean",{"_index":292,"title":{},"content":{"7":{"position":[[257,10],[330,10]]}},"keywords":{}}],["you'd",{"_index":2072,"title":{},"content":{"359":{"position":[[859,5]]}},"keywords":{}}],["you'll",{"_index":601,"title":{},"content":{"21":{"position":[[2596,6],[2785,6]]},"167":{"position":[[383,6]]}},"keywords":{}}],["you'r",{"_index":574,"title":{},"content":{"21":{"position":[[1978,6]]},"174":{"position":[[1537,6],[2222,6]]},"179":{"position":[[415,6]]},"327":{"position":[[1190,6]]},"398":{"position":[[229,6]]}},"keywords":{}}],["you'v",{"_index":606,"title":{},"content":{"21":{"position":[[2723,6]]}},"keywords":{}}],["yourself",{"_index":2180,"title":{},"content":{"398":{"position":[[252,8]]}},"keywords":{}}],["zlib",{"_index":465,"title":{},"content":{"15":{"position":[[604,7]]},"293":{"position":[[7,4],[17,6]]},"294":{"position":[[7,4],[17,6]]}},"keywords":{}}],["zlib.createbrotlicompress",{"_index":1500,"title":{},"content":{"219":{"position":[[26,25]]},"293":{"position":[[220,27]]}},"keywords":{}}],["zlib.createdefl",{"_index":1504,"title":{},"content":{"219":{"position":[[151,18]]}},"keywords":{}}],["zlib.creategzip",{"_index":1502,"title":{},"content":{"219":{"position":[[93,15]]}},"keywords":{}}]],"pipeline":["stemmer"]} \ No newline at end of file diff --git a/lunr-index-1700079117944.json b/lunr-index-1700079117944.json new file mode 100644 index 000000000..04b404b1d --- /dev/null +++ b/lunr-index-1700079117944.json @@ -0,0 +1 @@ +{"version":"2.3.9","fields":["title","content","keywords"],"fieldVectors":[["title/0",[0,705.102,1,984.48]],["content/0",[0,12.548,1,16.398,2,9.506,3,5.891,4,6.817,5,8.925,6,10.847,7,2.673,8,7.624,9,12.682,10,5.769,11,8.09,12,12.682,13,3.332,14,8.468,15,6.305,16,9.506,17,12.682,18,8.925]],["keywords/0",[]],["title/1",[13,249.996,19,582.904,20,690.024]],["content/1",[]],["keywords/1",[]],["title/2",[21,1183.107]],["content/2",[]],["keywords/2",[]],["title/3",[22,818.448]],["content/3",[22,6.723,23,4.82,24,8.193,25,11.963,26,10.92,27,4.26,28,11.963,29,11.963,30,11.963,31,11.963,32,8.916,33,11.963,34,11.963,35,11.963,36,6.097,37,10.92,38,10.92,39,11.963,40,11.963,41,11.963,42,11.963,43,10.92]],["keywords/3",[]],["title/4",[44,1329.282]],["content/4",[]],["keywords/4",[]],["title/5",[45,1183.107]],["content/5",[10,5.151,19,6.936,23,4.562,24,7.753,27,4.734,45,9.198,46,11.322,47,11.322,48,11.322,49,10.335,50,8.487,51,10.335,52,11.322,53,11.322,54,11.322,55,11.322,56,11.322,57,11.322,58,5.629,59,11.322,60,11.322,61,11.322,62,11.322,63,11.322,64,11.322]],["keywords/5",[]],["title/6",[65,1329.282]],["content/6",[7,3.87,23,2.456,24,4.174,27,4.692,32,2.718,50,4.569,65,5.564,66,14.261,67,8.009,68,8.009,69,13.017,70,6.095,71,3.975,72,6.095,73,2.575,74,9.859,75,1.556,76,7.39,77,6.095,78,1.649,79,2.059,80,6.289,81,1.53,82,3.277,83,4.174,84,6.095,85,3.975,86,9.859,87,6.095,88,4.952,89,2.832,90,8.282,91,4.743,92,4.07,93,2.797,94,3.538,95,4.743,96,3.808,97,2.96,98,3.975,99,2.337,100,4.42,101,5.564,102,3.106,103,4.743,104,4.952,105,4.174,106,3.665,107,4.42,108,3.808,109,3.888]],["keywords/6",[]],["title/7",[110,1456.318]],["content/7",[23,6.86,24,11.659,111,15.54,112,15.54,113,17.025,114,11.659,115,17.025]],["keywords/7",[]],["title/8",[116,1329.282]],["content/8",[7,3.642,23,2.106,24,3.58,27,4.769,32,2.331,50,3.919,73,2.271,75,2.219,78,1.414,79,1.766,82,2.81,88,4.247,89,2.429,90,7.75,91,4.068,92,3.491,93,3.688,94,3.035,95,4.068,96,3.266,97,2.539,98,7.276,99,4.277,100,3.791,101,4.772,102,2.664,103,4.068,104,4.247,105,3.58,106,3.143,107,3.791,108,3.266,109,3.335,116,7.934,117,5.228,118,5.228,119,5.228,120,4.673,121,5.228,122,5.228,123,5.228,124,5.228,125,5.228,126,8.692,127,5.228,128,5.228,129,4.472,130,4.772,131,5.228,132,5.228,133,4.247,134,5.228,135,4.472,136,4.247,137,1.398,138,1.439,139,1.558,140,3.919,141,4.878,142,4.974,143,6.37,144,2.81,145,4.472]],["keywords/8",[]],["title/9",[146,949.772]],["content/9",[]],["keywords/9",[]],["title/10",[147,1456.318]],["content/10",[23,4.82,24,8.193,27,4.921,43,10.92,50,8.968,83,8.193,148,11.963,149,11.963,150,11.963,151,10.232,152,11.963,153,7.632,154,11.963,155,11.963,156,11.963,157,11.963,158,11.963,159,11.963,160,11.963]],["keywords/10",[]],["title/11",[45,1183.107]],["content/11",[23,6.594,24,11.207,45,13.295,49,14.938,50,12.268,51,14.938,161,16.366,162,16.366,163,16.366]],["keywords/11",[]],["title/12",[164,1456.318]],["content/12",[23,4.89,24,8.31,27,4.813,37,11.077,38,11.077,50,9.097,83,8.31,111,11.077,112,11.077,153,7.742,165,12.135,166,12.135,167,12.135,168,12.135,169,12.135,170,12.135,171,12.135,172,12.135,173,12.135,174,12.135]],["keywords/12",[]],["title/13",[175,1245.606]],["content/13",[175,12.541,176,12.541,177,12.541,178,10.632,179,14.662,180,14.662,181,11.911,182,11.409,183,13.383,184,10.991,185,8.24,186,12.541,187,10.991,188,10.632,189,10.319]],["keywords/13",[]],["title/14",[190,1456.318]],["content/14",[]],["keywords/14",[]],["title/15",[191,347.617]],["content/15",[7,1.987,10,6.28,13,3.627,18,6.635,178,6.837,191,3.295,192,10.348,193,7.067,194,3.916,195,12.6,196,8.063,197,5.298,198,2.473,199,8.063,200,7.067,201,7.659,202,9.428,203,9.428,204,8.605,205,4.38,206,8.605,207,8.605,208,7.659,209,10.742,210,9.217,211,5.89,212,6.295,213,9.428,214,9.428,215,7.336,216,4.998,217,5.141,218,8.063,219,9.428,220,9.428,221,6.014,222,8.063,223,8.063]],["keywords/15",[]],["title/16",[224,1151.018,225,391.493]],["content/16",[7,0.621,13,0.775,24,3.623,27,4.79,58,2.631,67,4.298,69,2.691,73,3.196,75,2.873,78,0.797,80,1.881,81,0.74,93,1.501,99,2.759,137,1.414,138,0.812,139,0.879,141,2.313,178,3.837,182,2.294,191,1.718,194,2.491,197,1.657,198,0.948,209,2.294,210,1.968,211,1.842,216,3.816,221,1.881,225,1.003,226,1.923,227,2.948,228,2.948,229,6.57,230,2.948,231,2.395,232,2.138,233,3.209,234,1.484,235,3.966,236,4.829,237,2.948,238,1.881,239,2.948,240,2.948,241,2.522,242,2.948,243,2.948,244,3.392,245,1.188,246,2.395,247,2.613,248,2.585,249,2.019,250,2.21,251,2.294,252,2.075,253,2.522,254,2.691,255,1.158,256,1.806,257,0.775,258,1.484,259,5.291,260,2.948,261,7.197,262,5.291,263,5.291,264,5.291,265,5.291,266,5.291,267,2.522,268,2.522,269,1.466,270,2.294,271,2.522,272,1.466,273,2.948,274,1.67,275,1.384,276,1.563,277,2.948,278,2.395,279,1.881,280,1.968,281,1.502,282,2.522,283,2.019,284,6.084,285,5.065,286,3.38,287,5.291,288,3.724,289,5.291,290,2.948,291,4.525,292,5.291,293,5.291,294,1.657,295,5.291,296,2.522,297,2.948,298,2.691,299,2.948,300,1.772,301,2.948,302,2.395,303,2.948,304,2.948,305,2.075,306,1.178,307,1.741,308,2.395,309,2.691,310,1.842,311,2.691,312,2.522,313,1.711,314,2.395,315,1.328]],["keywords/16",[]],["title/17",[]],["content/17",[7,2.426,10,2.486,13,2.369,80,3.486,82,2.938,129,7.712,136,4.44,177,4.674,178,6.539,191,1.304,192,4.096,194,3.266,197,8.308,198,0.979,199,4.674,200,6.759,201,4.44,207,4.988,209,11.503,210,9.871,216,2.897,217,2.98,218,7.712,222,4.674,223,9.846,247,1.984,248,2.644,257,1.436,291,7.712,305,3.846,313,3.172,316,3.348,317,5.465,318,6.175,319,5.465,320,4.988,321,5.465,322,5.465,323,4.674,324,5.465,325,3.742,326,4.252,327,4.674,328,9.017,329,9.017,330,4.988,331,5.465,332,3.564,333,3.846,334,9.017,335,5.465,336,2.938,337,5.465,338,4.988,339,7.712,340,5.524,341,4.988,342,5.465,343,4.988,344,5.465,345,5.465,346,5.465,347,2.015,348,5.465,349,4.252,350,5.465,351,3.742,352,3.12,353,4.44,354,5.465,355,5.465,356,3.963,357,5.465,358,4.988,359,5.465,360,4.674,361,4.096,362,4.674,363,3.348,364,5.465]],["keywords/17",[]],["title/18",[365,895.641,366,1050.614]],["content/18",[7,0.981,20,3.374,26,4.247,27,3.125,44,4.247,83,5.397,85,6.688,153,2.968,178,3.374,181,3.78,198,1.412,215,3.62,232,3.374,233,5.382,235,3.487,283,5.397,284,2.161,365,3.62,366,7.194,367,4.247,368,4.652,369,4.247,370,7.436,371,3.979,372,3.034,373,2.968,374,7.882,375,4.652,376,3.78,377,4.652,378,4.652,379,3.78,380,3.78,381,7.882,382,3.274,383,3.62,384,4.247,385,4.652,386,4.652,387,4.652,388,9.359,389,4.652,390,4.652,391,4.652,392,4.652,393,4.652,394,4.652,395,4.652,396,4.652,397,4.652,398,4.652,399,4.652,400,4.652,401,4.652,402,4.652,403,4.652,404,4.247,405,4.652,406,4.247,407,4.652,408,4.652,409,4.652,410,4.652,411,4.652,412,4.652,413,4.652,414,4.652,415,7.882,416,7.882,417,4.652,418,4.652,419,4.652,420,12.071,421,12.329,422,13.507,423,4.652,424,4.652,425,4.652,426,4.652,427,4.652,428,4.652,429,4.652,430,4.652,431,4.652,432,4.652,433,4.652,434,4.652,435,4.652,436,4.652,437,4.652,438,4.652,439,4.652,440,4.652,441,2.797,442,4.652,443,4.652,444,4.652,445,4.652,446,4.652,447,4.652,448,4.652,449,4.652,450,4.652]],["keywords/18",[]],["title/19",[257,302.404,451,637.041]],["content/19",[3,3.293,10,1.87,27,4.914,32,1.832,68,3.338,71,2.68,73,1.852,75,2.386,78,1.112,81,3.899,137,1.099,138,1.131,151,3.515,188,2.98,191,1.692,194,1.166,238,2.622,248,1.628,255,1.614,256,4.342,257,3.296,258,4.704,274,2.238,281,2.094,306,5.48,307,2.427,315,1.851,361,3.08,380,3.338,451,6.943,452,3.515,453,3.751,454,3.338,455,2.98,456,3.08,457,1.715,458,3.16,459,3.515,460,4.109,461,9.347,462,2.814,463,4.109,464,4.109,465,7.818,466,3.751,467,1.138,468,2.309,469,4.109,470,4.109,471,4.109,472,2.241,473,3.515,474,4.109,475,4.109,476,3.751,477,4.109,478,4.109,479,4.109,480,4.109,481,2.68,482,4.167,483,4.733,484,3.08,485,3.659,486,7.994,487,5.253,488,4.109,489,4.109,490,4.109,491,3.751,492,3.515]],["keywords/19",[]],["title/20",[493,1245.606]],["content/20",[]],["keywords/20",[]],["title/21",[494,1024.945]],["content/21",[3,1.213,6,2.233,11,1.666,13,0.686,15,1.298,21,3.852,27,4.602,32,1.164,75,4.027,78,0.706,79,2.2,81,3.067,129,2.233,133,2.121,153,4.155,188,1.893,191,0.623,194,2.95,197,1.467,198,0.468,205,3.721,216,3.453,225,0.888,232,1.893,238,1.666,248,1.84,274,2.056,278,2.121,283,3.247,347,0.963,353,2.121,371,2.233,372,3.092,376,2.121,388,1.666,472,1.424,485,3.362,487,1.467,494,3.337,495,2.18,496,2.233,497,4.155,498,2.611,499,3.438,500,1.424,501,3.438,502,2.383,503,2.611,504,3.554,505,2.383,506,2.611,507,2.611,508,2.611,509,16.193,510,2.851,511,1.788,512,2.624,513,4.056,514,4.328,515,4.328,516,4.328,517,2.383,518,2.383,519,4.328,520,4.328,521,4.328,522,2.383,523,4.328,524,2.383,525,4.328,526,2.383,527,2.611,528,2.383,529,2.383,530,2.383,531,1.838,532,2.383,533,2.233,534,2.121,535,2.383,536,2.383,537,2.383,538,2.383,539,1.445,540,2.611,541,2.611,542,2.611,543,2.611,544,2.611,545,2.611,546,2.611,547,2.611,548,2.611,549,2.611,550,2.611,551,2.611,552,2.611,553,2.611,554,2.611,555,2.611,556,2.611,557,2.611,558,2.611,559,2.611,560,2.611,561,2.611,562,2.611,563,2.611,564,2.611,565,2.611,566,2.383,567,5.571,568,2.121,569,2.611,570,2.611,571,1.703,572,4.328,573,2.233,574,1.957,575,2.611,576,1.838,577,2.233,578,2.611,579,1.57,580,2.383,581,2.611,582,2.121,583,2.121,584,1.6,585,2.514,586,2.386,587,2.611,588,2.233,589,2.611,590,1.838,591,1.631,592,2.383,593,2.611,594,2.032,595,2.611,596,2.121,597,2.611,598,2.611,599,2.233,600,2.032,601,3.852,602,1.893,603,2.383,604,4.742,605,2.383,606,2.611,607,1.703,608,2.233]],["keywords/21",[]],["title/22",[609,1329.282]],["content/22",[27,4.981,73,1.325,75,5.093,78,1.372,79,2.862,81,4.283,205,3.937,248,1.947,274,1.601,458,2.261,487,2.85,495,3.896,496,4.337,499,6.145,500,2.765,501,6.145,502,4.629,504,6.352,505,4.629,513,7.248,514,4.629,515,7.735,516,4.629,517,4.629,518,4.629,519,7.735,520,7.735,521,7.735,522,4.629,523,7.735,524,4.629,525,7.735,526,4.629,528,4.629,529,4.629,530,4.629,531,3.569,532,4.629,533,4.337,534,4.12,535,4.629,536,4.629,537,4.629,538,4.629,610,8.474,611,5.071,612,5.071,613,5.071,614,5.071,615,5.071]],["keywords/22",[]],["title/23",[215,740.421,234,478.905,616,620.569]],["content/23",[]],["keywords/23",[]],["title/24",[617,1329.282]],["content/24",[]],["keywords/24",[]],["title/25",[7,242.61,618,484.7]],["content/25",[7,3.819,13,4.761,198,3.247,617,16.54]],["keywords/25",[]],["title/26",[225,495.333]],["content/26",[27,4.742,73,3.765,75,3.679,78,3.898,81,3.617,138,3.968,191,4.412,248,3.311,257,3.786,457,6.014,619,6.49]],["keywords/26",[]],["title/27",[7,242.61,618,484.7]],["content/27",[7,3.321,13,5.137,139,4.695,215,15.216,234,7.93,616,10.275,620,9.146,621,15.755,622,7.834]],["keywords/27",[]],["title/28",[225,495.333]],["content/28",[27,4.915,73,3.701,75,3.618,78,3.833,81,3.557,138,3.901,191,3.382,248,3.255,257,3.723,457,5.913,623,11.512]],["keywords/28",[]],["title/29",[139,283.568,234,478.905,616,620.569]],["content/29",[]],["keywords/29",[]],["title/30",[7,242.61,618,484.7]],["content/30",[7,3.518,13,4.385,139,4.973,198,2.99,234,10.195,622,8.298,624,13.558]],["keywords/30",[]],["title/31",[225,495.333]],["content/31",[27,4.601,73,5.22,75,0.969,78,1.027,79,1.282,81,2.208,82,2.04,93,1.877,120,2.04,137,1.015,138,1.045,141,7.794,142,2.95,143,2.167,185,2.133,191,1.579,198,1.186,205,1.763,216,2.012,217,4.796,233,3.921,244,3.532,245,4.242,247,1.378,248,1.52,257,0.997,274,1.198,275,1.782,284,3.074,310,4.134,332,2.475,457,1.584,495,3.042,619,1.709,625,2.845,626,2.671,627,2.845,628,2.671,629,5.149,630,2.167,631,2.953,632,2.953,633,2.325,634,2.953,635,2.953,636,2.621,637,2.953,638,2.666,639,2.953,640,2.953,641,2.371,642,2.953,643,2.012,644,5.149,645,2.953,646,2.953,647,3.608,648,2.953,649,2.671,650,2.845,651,2.241,652,2.953,653,5.149,654,4.657,655,2.953,656,2.752,657,2.845,658,2.845,659,2.953,660,2.953,661,2.845,662,2.475,663,4.798,664,2.534,665,2.845,666,4.531,667,2.953,668,5.149,669,2.953,670,2.845,671,2.953,672,2.953,673,2.953,674,2.953,675,2.752,676,2.752,677,2.671,678,2.953,679,2.845,680,2.953]],["keywords/31",[]],["title/32",[681,1329.282]],["content/32",[]],["keywords/32",[]],["title/33",[7,242.61,618,484.7]],["content/33",[7,3.819,13,4.761,198,3.247,681,16.54]],["keywords/33",[]],["title/34",[225,495.333]],["content/34",[27,4.915,73,3.701,75,3.618,78,3.833,81,3.557,138,3.901,191,3.382,248,3.255,257,3.723,457,5.913,623,11.512]],["keywords/34",[]],["title/35",[234,478.905,616,620.569,682,669.686]],["content/35",[]],["keywords/35",[]],["title/36",[7,242.61,618,484.7]],["content/36",[7,3.518,13,4.385,198,2.99,234,10.195,622,8.298,624,13.558,682,11.746]],["keywords/36",[]],["title/37",[225,495.333]],["content/37",[0,4.765,27,4.796,73,5.059,75,3.051,78,2.104,79,2.627,92,9.716,93,2.207,138,2.142,191,2.852,233,3.468,244,2.609,245,3.134,248,4.449,683,7.1,684,6.653,685,7.1,686,4.515,687,10.907,688,7.779,689,10.907,690,7.779,691,10.907,692,7.779,693,5.327,694,12.445,695,6.653,696,7.1,697,6.653,698,7.1]],["keywords/37",[]],["title/38",[699,1329.282]],["content/38",[]],["keywords/38",[]],["title/39",[7,242.61,618,484.7]],["content/39",[7,4.429,13,4.661,198,3.179,699,16.192]],["keywords/39",[]],["title/40",[225,495.333]],["content/40",[27,4.742,73,3.765,75,3.679,78,3.898,81,3.617,138,3.968,191,4.412,248,3.311,257,3.786,457,6.014,619,6.49]],["keywords/40",[]],["title/41",[234,478.905,282,813.863,616,620.569]],["content/41",[]],["keywords/41",[]],["title/42",[7,242.61,618,484.7]],["content/42",[7,3.518,13,4.385,198,2.99,234,10.195,282,14.274,622,8.298,624,13.558]],["keywords/42",[]],["title/43",[225,495.333]],["content/43",[27,4.601,73,5.22,75,0.969,78,1.027,81,2.208,82,2.04,93,1.877,120,2.04,137,1.015,138,1.045,141,7.794,142,2.95,143,2.167,185,2.133,191,1.579,198,1.186,205,1.763,216,2.012,217,4.796,233,3.921,244,3.532,245,4.242,247,1.378,248,1.52,257,0.997,274,1.198,275,1.782,284,3.074,310,4.134,332,2.475,457,1.584,495,3.042,619,1.709,625,2.845,626,2.671,627,2.845,628,2.671,629,5.149,630,2.167,631,2.953,632,2.953,633,2.325,634,2.953,635,2.953,636,2.621,637,2.953,638,2.666,639,2.953,640,2.953,641,2.371,642,2.953,643,2.012,644,5.149,645,2.953,646,2.953,647,3.608,648,2.953,649,2.671,650,2.845,651,2.241,652,2.953,653,5.149,654,4.657,655,2.953,656,2.752,657,2.845,658,2.845,659,2.953,660,2.953,661,2.845,662,2.475,663,4.798,664,2.534,665,2.845,666,4.531,667,2.953,668,5.149,669,2.953,670,2.845,671,2.953,672,2.953,673,2.953,674,2.953,675,2.752,676,2.752,677,2.671,678,2.953,679,2.845,680,2.953,700,2.953]],["keywords/43",[]],["title/44",[351,651.613,701,868.536,702,813.863]],["content/44",[]],["keywords/44",[]],["title/45",[7,242.61,618,484.7]],["content/45",[7,3.662,13,4.565,198,3.113,351,11.898,701,15.86,702,14.861]],["keywords/45",[]],["title/46",[225,495.333]],["content/46",[27,4.578,73,5.183,75,1.65,78,1,79,1.248,81,1.623,82,1.987,93,1.834,120,4.632,137,0.988,138,1.018,141,7.897,142,2.882,143,2.11,185,2.077,191,1.543,198,1.158,205,1.717,217,4.699,233,1.648,244,3.467,245,4.165,247,1.342,248,2.966,274,1.167,275,1.736,332,2.41,495,2.972,625,2.771,626,2.601,627,2.771,628,2.601,629,5.03,630,2.11,631,2.876,632,2.876,633,2.264,634,2.876,635,2.876,636,2.561,637,2.876,638,2.605,639,2.876,640,2.876,641,2.309,642,2.876,643,1.959,644,5.03,645,2.876,646,2.876,647,3.525,648,2.876,650,2.771,651,2.183,656,2.68,657,2.771,658,2.771,659,2.876,660,2.876,661,2.771,662,2.41,663,4.688,664,2.468,665,2.771,666,4.427,667,2.876,668,5.03,669,2.876,670,2.771,671,2.876,672,2.876,673,2.876,674,2.876,675,2.68,676,2.68,677,2.601,678,2.876,680,2.876,686,2.145,693,2.531,703,3.374,704,5.901,705,6.465,706,6.465,707,5.901,708,4.55,709,3.374,710,3.003,711,2.601,712,3.374]],["keywords/46",[]],["title/47",[713,1329.282]],["content/47",[]],["keywords/47",[]],["title/48",[7,242.61,618,484.7]],["content/48",[7,4.429,13,4.661,198,3.179,713,16.192]],["keywords/48",[]],["title/49",[225,495.333]],["content/49",[27,4.742,73,3.765,75,3.679,78,3.898,81,3.617,138,3.968,191,4.412,248,3.311,257,3.786,457,6.014,619,6.49]],["keywords/49",[]],["title/50",[539,526.638,714,951.54,715,951.54]],["content/50",[]],["keywords/50",[]],["title/51",[7,242.61,618,484.7]],["content/51",[13,4.761,198,3.247,539,10.029,716,11.56]],["keywords/51",[]],["title/52",[225,495.333]],["content/52",[27,4.62,73,4.578,75,3.39,78,3.592,81,3.333,138,3.656,191,4.183,248,3.05,257,3.489,457,5.542,619,5.98,636,5.261,717,8.135,718,7.842,719,8.135]],["keywords/52",[]],["title/53",[720,1050.614,721,1050.614]],["content/53",[]],["keywords/53",[]],["title/54",[7,242.61,618,484.7]],["content/54",[7,3.739,13,4.661,198,3.179,720,16.192,721,16.192]],["keywords/54",[]],["title/55",[225,495.333]],["content/55",[27,4.745,73,3.469,75,3.39,78,3.592,81,3.333,138,3.656,189,9.346,191,4.183,198,2.379,248,3.05,257,3.489,457,5.542,465,6.683,619,5.98,722,13.279]],["keywords/55",[]],["title/56",[197,646.87,723,1050.614]],["content/56",[]],["keywords/56",[]],["title/57",[7,242.61,618,484.7]],["content/57",[7,4.429,13,4.661,198,3.179,724,17.74]],["keywords/57",[]],["title/58",[225,495.333]],["content/58",[27,4.742,73,3.765,75,3.679,78,3.898,81,3.617,138,3.968,191,4.412,248,3.311,257,3.786,457,6.014,619,6.49]],["keywords/58",[]],["title/59",[71,949.772]],["content/59",[]],["keywords/59",[]],["title/60",[7,242.61,618,484.7]],["content/60",[7,4.429,13,4.661,71,11.57,198,3.179]],["keywords/60",[]],["title/61",[225,495.333]],["content/61",[27,4.62,73,4.578,75,3.39,78,3.592,81,3.333,138,3.656,191,4.183,248,3.05,257,3.489,457,5.542,619,5.98,636,5.261,717,8.135,718,7.842,719,8.135]],["keywords/61",[]],["title/62",[725,1329.282]],["content/62",[]],["keywords/62",[]],["title/63",[7,242.61,618,484.7]],["content/63",[7,4.429,13,4.661,198,3.179,725,16.192]],["keywords/63",[]],["title/64",[225,495.333]],["content/64",[27,4.62,73,4.578,75,3.39,78,3.592,81,3.333,138,3.656,191,4.183,248,3.05,257,3.489,457,5.542,619,5.98,636,5.261,717,8.135,718,7.842,719,8.135]],["keywords/64",[]],["title/65",[726,929.036]],["content/65",[]],["keywords/65",[]],["title/66",[7,242.61,618,484.7]],["content/66",[7,3.739,13,4.661,198,3.179,622,8.82,726,11.317]],["keywords/66",[]],["title/67",[225,495.333]],["content/67",[27,4.62,73,4.578,75,3.39,78,3.592,81,3.333,138,3.656,191,4.183,248,3.05,257,3.489,457,5.542,619,5.98,636,5.261,717,8.135,718,7.842,719,8.135]],["keywords/67",[]],["title/68",[727,1329.282]],["content/68",[]],["keywords/68",[]],["title/69",[7,242.61,618,484.7]],["content/69",[7,3.739,13,4.661,198,3.179,622,8.82,727,16.192]],["keywords/69",[]],["title/70",[225,495.333]],["content/70",[27,4.742,73,3.765,75,3.679,78,3.898,81,3.617,138,3.968,191,4.412,248,3.311,257,3.786,457,6.014,619,6.49]],["keywords/70",[]],["title/71",[728,1245.606]],["content/71",[]],["keywords/71",[]],["title/72",[7,242.61,618,484.7]],["content/72",[7,3.739,13,4.661,198,3.179,622,8.82,728,15.173]],["keywords/72",[]],["title/73",[225,495.333]],["content/73",[27,4.742,73,3.765,75,3.679,78,3.898,81,3.617,138,3.968,191,4.412,248,3.311,257,3.786,457,6.014,619,6.49]],["keywords/73",[]],["title/74",[729,1329.282]],["content/74",[]],["keywords/74",[]],["title/75",[7,242.61,618,484.7]],["content/75",[7,3.739,13,4.661,198,3.179,622,8.82,729,16.192]],["keywords/75",[]],["title/76",[225,495.333]],["content/76",[27,4.915,73,3.701,75,3.618,78,3.833,81,3.557,138,3.901,191,3.382,248,3.255,257,3.723,457,5.913,623,11.512]],["keywords/76",[]],["title/77",[0,892.126]],["content/77",[]],["keywords/77",[]],["title/78",[7,242.61,618,484.7]],["content/78",[0,11.1,13,4.761,198,3.247,622,9.009]],["keywords/78",[]],["title/79",[225,495.333]],["content/79",[27,4.742,73,3.765,75,3.679,78,3.898,81,3.617,138,3.968,191,4.412,248,3.311,257,3.786,457,6.014,619,6.49]],["keywords/79",[]],["title/80",[730,951.54,731,868.536,732,773.027]],["content/80",[]],["keywords/80",[]],["title/81",[7,242.61,618,484.7]],["content/81",[7,4.429,13,4.661,198,3.179,732,14.412]],["keywords/81",[]],["title/82",[225,495.333]],["content/82",[27,4.742,73,3.765,75,3.679,78,3.898,81,3.617,138,3.968,191,4.412,248,3.311,257,3.786,457,6.014,619,6.49]],["keywords/82",[]],["title/83",[137,307.717,732,935.083]],["content/83",[]],["keywords/83",[]],["title/84",[7,242.61,618,484.7]],["content/84",[7,4.375,13,4.565,137,4.645,198,3.113,732,14.116]],["keywords/84",[]],["title/85",[225,495.333]],["content/85",[27,4.742,73,3.765,75,3.679,78,3.898,81,3.617,138,3.968,191,4.412,248,3.311,257,3.786,457,6.014,619,6.49]],["keywords/85",[]],["title/86",[733,1329.282]],["content/86",[]],["keywords/86",[]],["title/87",[7,242.61,618,484.7]],["content/87",[7,3.589,13,4.473,137,4.552,198,3.051,622,8.465,716,10.861,733,15.54]],["keywords/87",[]],["title/88",[225,495.333]],["content/88",[27,4.915,73,3.701,75,3.618,78,3.833,81,3.557,138,3.901,191,3.382,248,3.255,257,3.723,457,5.913,623,11.512]],["keywords/88",[]],["title/89",[102,413.297,140,607.92,734,693.649,735,740.247]],["content/89",[]],["keywords/89",[]],["title/90",[7,242.61,618,484.7]],["content/90",[13,4.761,198,3.247,622,9.009,735,16.54]],["keywords/90",[]],["title/91",[225,495.333]],["content/91",[27,4.62,73,4.578,75,3.39,78,3.592,81,3.333,138,3.656,191,4.183,248,3.05,257,3.489,457,5.542,619,5.98,636,5.261,717,8.135,718,7.842,719,8.135]],["keywords/91",[]],["title/92",[102,484.923,734,813.863,736,868.536]],["content/92",[]],["keywords/92",[]],["title/93",[7,242.61,618,484.7]],["content/93",[13,4.565,102,8.855,198,3.113,734,14.861,736,15.86,737,17.375]],["keywords/93",[]],["title/94",[225,495.333]],["content/94",[27,4.62,73,4.578,75,3.39,78,3.592,81,3.333,138,3.656,191,4.183,248,3.05,257,3.489,457,5.542,619,5.98,636,5.261,717,8.135,718,7.842,719,8.135]],["keywords/94",[]],["title/95",[347,424.328,738,984.48]],["content/95",[]],["keywords/95",[]],["title/96",[7,242.61,618,484.7]],["content/96",[7,3.518,13,4.385,139,4.973,198,2.99,234,10.195,622,8.298,624,13.558]],["keywords/96",[]],["title/97",[225,495.333]],["content/97",[27,4.593,32,1.677,73,5.208,75,0.96,78,1.018,79,1.271,81,2.192,82,2.022,93,1.863,120,2.022,137,1.006,138,1.036,141,7.769,142,2.927,143,2.148,185,2.114,191,1.567,198,1.176,205,1.748,216,1.994,217,4.763,233,3.894,244,3.51,245,4.216,247,1.366,248,1.508,257,0.988,274,1.188,275,1.767,284,3.05,310,4.102,332,2.453,457,1.57,495,3.018,619,1.694,625,2.82,626,2.648,627,2.82,628,2.648,629,5.109,630,2.148,631,2.927,632,2.927,633,2.304,634,2.927,635,2.927,636,2.601,637,2.927,638,2.645,639,2.927,640,2.927,641,2.35,642,2.927,643,1.994,644,5.109,645,2.927,646,2.927,647,3.58,648,2.927,649,2.648,650,2.82,651,2.221,652,2.927,653,5.109,654,4.62,655,2.927,656,2.728,657,2.82,658,2.82,659,2.927,660,2.927,661,2.82,662,2.453,663,4.761,664,2.512,665,2.82,666,4.496,667,2.927,668,5.109,669,2.927,670,2.82,671,2.927,672,2.927,673,2.927,674,2.927,675,2.728,676,2.728,677,2.648,678,2.927,679,2.82,680,2.927,739,3.056]],["keywords/97",[]],["title/98",[740,935.083,741,1050.614]],["content/98",[]],["keywords/98",[]],["title/99",[7,242.61,618,484.7]],["content/99",[7,3.589,13,4.473,198,3.051,269,8.465,622,8.465,740,13.831,741,15.54]],["keywords/99",[]],["title/100",[225,495.333]],["content/100",[27,4.62,73,4.578,75,3.39,78,3.592,81,3.333,138,3.656,191,4.183,248,3.05,257,3.489,457,5.542,619,5.98,636,5.261,717,8.135,718,7.842,719,8.135]],["keywords/100",[]],["title/101",[742,1329.282]],["content/101",[]],["keywords/101",[]],["title/102",[7,242.61,618,484.7]],["content/102",[13,4.761,198,3.247,622,9.009,742,16.54]],["keywords/102",[]],["title/103",[225,495.333]],["content/103",[27,4.62,73,4.578,75,3.39,78,3.592,81,3.333,138,3.656,191,4.183,248,3.05,257,3.489,457,5.542,619,5.98,636,5.261,717,8.135,718,7.842,719,8.135]],["keywords/103",[]],["title/104",[7,242.61,137,307.717]],["content/104",[]],["keywords/104",[]],["title/105",[13,249.996,194,269.948,743,951.54]],["content/105",[27,4.652,73,5.3,75,2.082,81,2.047,82,4.383,137,2.18,138,2.245,191,2.957,216,4.323,233,5.523,248,1.873,257,2.142,284,5.755,310,7.74,457,3.403,495,5.695,625,6.112,626,5.739,627,6.112,628,5.739,649,5.739,650,6.112,651,4.815,652,6.345,653,9.639,654,8.718,655,6.345,658,6.112,679,6.112,744,8.154,745,7.443,746,4.815,747,8.154,748,8.154,749,8.154,750,6.624]],["keywords/105",[]],["title/106",[258,478.905,751,497.674,752,868.536]],["content/106",[27,4.985,73,4.278,75,1.481,78,1.57,81,2.377,95,4.515,96,3.625,100,6.869,102,2.957,106,5.694,107,4.208,108,5.918,109,3.702,137,1.551,138,1.598,191,2.261,198,2.482,248,1.333,257,1.524,306,3.784,455,4.208,456,4.35,457,2.421,481,3.784,487,3.261,492,4.963,750,4.714,753,9.472,754,9.472,755,4.35,756,8.646,757,9.472,758,8.041,759,8.646,760,4.714,761,5.802,762,5.296,763,5.802,764,4.963,765,5.296,766,4.714,767,5.802,768,8.646,769,5.296,770,4.208,771,5.802,772,5.802]],["keywords/106",[]],["title/107",[71,620.569,752,868.536,773,773.027]],["content/107",[5,3.896,27,5.085,73,4.183,75,1.413,78,1.498,81,2.288,97,4.426,98,3.611,106,5.48,107,4.015,137,1.48,138,1.524,191,2.176,198,2.413,248,1.272,257,1.455,306,3.641,351,3.791,352,3.161,455,4.015,456,4.15,457,2.31,481,3.611,482,4.063,487,3.111,492,4.735,726,5.814,750,4.498,756,8.319,758,7.816,768,5.053,774,9.114,775,4.498,776,9.114,777,9.114,778,4.498,779,6.241,780,4.735,781,4.735,782,4.498,783,5.536,784,5.536]],["keywords/107",[]],["title/108",[94,845.36]],["content/108",[]],["keywords/108",[]],["title/109",[7,242.61,618,484.7]],["content/109",[7,3.739,13,4.661,94,10.298,198,3.179,622,8.82]],["keywords/109",[]],["title/110",[225,495.333]],["content/110",[13,3.188,27,4.624,73,4.31,75,3.098,78,3.282,81,4.705,94,7.044,138,3.341,191,3.938,248,2.788,257,3.188,457,5.064,619,5.465,636,4.807,717,7.434,718,7.166,719,7.434,785,9.859]],["keywords/110",[]],["title/111",[97,558.95,786,719.148]],["content/111",[]],["keywords/111",[]],["title/112",[7,242.61,618,484.7]],["content/112",[7,3.589,13,4.473,97,8.268,198,3.051,622,8.465,786,10.637,787,15.54]],["keywords/112",[]],["title/113",[225,495.333]],["content/113",[27,4.62,73,4.578,75,3.39,78,3.592,81,3.333,138,3.656,191,4.183,248,3.05,257,3.489,457,5.542,619,5.98,636,5.261,717,8.135,718,7.842,719,8.135]],["keywords/113",[]],["title/114",[140,862.806,740,935.083]],["content/114",[]],["keywords/114",[]],["title/115",[7,242.61,618,484.7]],["content/115",[7,3.739,13,4.661,198,3.179,622,8.82,740,14.412]],["keywords/115",[]],["title/116",[225,495.333]],["content/116",[27,4.62,73,4.578,75,3.39,78,3.592,81,3.333,138,3.656,191,4.183,248,3.05,257,3.489,457,5.542,619,5.98,636,5.261,717,8.135,718,7.842,719,8.135]],["keywords/116",[]],["title/117",[788,1329.282]],["content/117",[]],["keywords/117",[]],["title/118",[7,242.61,618,484.7]],["content/118",[7,4.122,13,5.137,198,2.823,347,5.808,622,9.722,788,14.381,789,15.755,790,13.476]],["keywords/118",[]],["title/119",[225,495.333]],["content/119",[27,4.742,73,3.765,75,3.679,78,3.898,81,3.617,138,3.968,191,4.412,248,3.311,257,3.786,457,6.014,619,6.49]],["keywords/119",[]],["title/120",[97,558.95,99,441.282]],["content/120",[]],["keywords/120",[]],["title/121",[7,242.61,618,484.7]],["content/121",[13,4.218,97,10.413,99,8.581,791,13.732,792,16.055]],["keywords/121",[]],["title/122",[225,495.333]],["content/122",[7,2.265,27,4.452,73,4.591,75,2.744,78,2.907,81,2.697,89,4.992,93,3.049,98,7.008,99,4.12,138,2.959,191,3.62,238,6.855,248,2.469,257,2.823,454,8.73,457,4.485,619,4.839,793,10.746,794,10.127,795,15.167,796,6.855,797,10.746,798,10.746,799,10.746,800,10.746]],["keywords/122",[]],["title/123",[97,707.207]],["content/123",[]],["keywords/123",[]],["title/124",[7,242.61,618,484.7]],["content/124",[7,3.739,13,4.661,97,8.615,198,3.179,622,8.82]],["keywords/124",[]],["title/125",[225,495.333]],["content/125",[13,3.099,27,4.584,73,4.227,75,3.012,78,3.191,81,4.99,97,5.729,138,3.248,191,3.863,248,2.71,257,3.099,457,4.923,619,5.312,636,4.673,717,7.226,718,6.966,719,7.226,785,9.583,801,7.092]],["keywords/125",[]],["title/126",[802,1329.282]],["content/126",[]],["keywords/126",[]],["title/127",[7,242.61,618,484.7]],["content/127",[7,3.739,13,4.661,198,3.179,622,8.82,802,16.192]],["keywords/127",[]],["title/128",[225,495.333]],["content/128",[27,4.742,73,3.765,75,3.679,78,3.898,81,3.617,138,3.968,191,4.412,248,3.311,257,3.786,457,6.014,619,6.49]],["keywords/128",[]],["title/129",[785,1183.107]],["content/129",[]],["keywords/129",[]],["title/130",[7,242.61,618,484.7]],["content/130",[7,3.739,13,4.661,198,3.179,622,8.82,785,14.412]],["keywords/130",[]],["title/131",[225,495.333]],["content/131",[27,4.62,73,4.578,75,3.39,78,3.592,81,3.333,138,3.656,191,4.183,248,3.05,257,3.489,457,5.542,619,5.98,636,5.261,717,8.135,718,7.842,719,8.135]],["keywords/131",[]],["title/132",[102,586.582,751,602.006]],["content/132",[]],["keywords/132",[]],["title/133",[7,242.61,618,484.7]],["content/133",[7,3.739,13,4.661,102,9.041,198,3.179,751,9.278]],["keywords/133",[]],["title/134",[225,495.333]],["content/134",[27,4.742,73,3.765,75,3.679,78,3.898,81,3.617,138,3.968,191,4.412,248,3.311,257,3.786,457,6.014,619,6.49]],["keywords/134",[]],["title/135",[803,1329.282]],["content/135",[]],["keywords/135",[]],["title/136",[7,242.61,618,484.7]],["content/136",[7,3.739,13,4.661,352,10.129,622,8.82,803,16.192]],["keywords/136",[]],["title/137",[225,495.333]],["content/137",[27,4.742,73,3.765,75,3.679,78,3.898,81,3.617,138,3.968,191,4.412,248,3.311,257,3.786,457,6.014,619,6.49]],["keywords/137",[]],["title/138",[804,1456.318]],["content/138",[]],["keywords/138",[]],["title/139",[13,164.479,16,469.286,153,399.377,494,440.606,805,487.145,806,535.465]],["content/139",[0,8.982,137,4.996,225,4.987,326,11.409,571,9.562,807,12.189,808,11.449,809,12.541,810,12.541,811,12.541,812,13.383,813,11.911]],["keywords/139",[]],["title/140",[814,1050.614,815,1050.614]],["content/140",[13,2.007,27,4.642,68,9.573,73,4.564,75,3.008,78,2.066,114,5.231,138,2.103,141,3.339,191,1.823,198,1.369,226,4.981,233,3.405,244,2.562,245,3.078,248,1.755,283,5.231,313,4.434,336,4.106,458,3.405,472,4.165,591,4.772,620,4.434,814,13.131,815,10.755,816,8.293,817,5.231,818,5.231,819,4.981,820,4.981,821,5.1,822,11.783,823,7.638,824,11.783,825,7.638,826,7.638,827,7.638,828,7.638,829,7.638,830,7.638,831,7.638,832,5.539,833,6.205,834,7.638]],["keywords/140",[]],["title/141",[801,875.54]],["content/141",[]],["keywords/141",[]],["title/142",[7,242.61,618,484.7]],["content/142",[7,3.739,13,4.661,198,3.179,622,8.82,801,10.665]],["keywords/142",[]],["title/143",[225,495.333]],["content/143",[27,4.46,73,4.861,75,3.054,78,3.236,81,3.003,138,3.294,191,3.9,248,2.748,257,3.143,457,4.992,619,5.388,636,4.739,643,6.342,717,7.329,718,7.065,719,7.329,786,7.475,835,11.963,836,10.232,837,7.988,838,11.963]],["keywords/143",[]],["title/144",[839,1329.282]],["content/144",[114,10.218,226,9.731,336,8.021,472,8.137,591,9.322,620,8.661,816,13.3,817,10.218,818,10.218,819,9.731,820,9.731,821,9.963,839,13.619]],["keywords/144",[]],["title/145",[840,1245.606]],["content/145",[114,10.218,226,9.731,336,8.021,472,8.137,591,9.322,620,8.661,816,13.3,817,10.218,818,10.218,819,9.731,820,9.731,821,9.963,840,12.762]],["keywords/145",[]],["title/146",[200,862.806,318,788.216]],["content/146",[114,9.389,200,10.277,226,8.942,318,12.256,336,7.37,472,7.477,591,8.566,620,7.959,651,8.096,816,12.596,817,9.389,818,9.389,819,8.942,820,8.942,821,9.155,841,13.71,842,13.71]],["keywords/146",[]],["title/147",[318,788.216,843,788.216]],["content/147",[114,10.04,226,9.562,318,10.04,336,7.882,472,7.996,591,9.161,620,8.511,816,13.153,817,10.04,818,10.04,819,9.562,820,9.562,821,9.79,843,10.04]],["keywords/147",[]],["title/148",[844,1050.614,845,1050.614]],["content/148",[]],["keywords/148",[]],["title/149",[7,242.61,618,484.7]],["content/149",[7,3.662,13,4.565,198,3.113,622,8.639,844,15.86,845,15.86]],["keywords/149",[]],["title/150",[225,495.333]],["content/150",[27,4.618,58,1.87,73,5.208,75,0.96,78,1.018,79,1.271,81,2.192,82,2.022,93,1.863,120,2.022,137,1.006,138,1.036,141,7.769,142,2.927,143,2.148,185,2.114,191,1.567,198,1.176,205,1.748,216,1.994,217,4.763,233,3.894,244,3.51,245,4.216,247,1.366,248,1.508,257,0.988,274,1.188,275,1.767,284,3.05,310,4.102,332,2.453,457,1.57,495,3.018,619,1.694,625,2.82,626,2.648,627,2.82,628,2.648,629,5.109,630,2.148,631,2.927,632,2.927,633,2.304,634,2.927,635,2.927,636,2.601,637,2.927,638,2.645,639,2.927,640,2.927,641,2.35,642,2.927,643,1.994,644,5.109,645,2.927,646,2.927,647,3.58,648,2.927,649,2.648,650,2.82,651,2.221,652,2.927,653,5.109,654,4.62,655,2.927,656,2.728,657,2.82,658,2.82,659,2.927,660,2.927,661,2.82,662,2.453,663,4.761,664,2.512,665,2.82,666,4.496,667,2.927,668,5.109,669,2.927,670,2.82,671,2.927,672,2.927,673,2.927,674,2.927,675,2.728,676,2.728,677,2.648,678,2.927,679,2.82,680,2.927]],["keywords/150",[]],["title/151",[7,148.94,8,424.819,94,410.175,810,604.378,846,644.978]],["content/151",[0,6.004,3,2.811,7,1.276,8,3.638,11,3.861,27,4.606,32,2.698,73,1.581,75,2.502,81,1.519,94,5.69,100,7.108,106,3.638,114,4.144,185,5.508,197,3.401,198,1.756,205,2.811,226,3.947,247,4.485,258,3.046,274,1.91,336,3.253,465,3.046,472,5.345,586,3.046,591,3.781,600,4.709,620,3.513,663,7.108,810,5.176,816,6.898,817,4.144,818,4.144,819,6.392,820,3.947,821,4.041,846,5.524,847,8.383,848,3.861,849,6.052,850,6.052,851,5.524,852,5.524,853,4.916,854,6.052,855,8.946,856,6.052,857,6.052,858,12.353,859,6.052,860,6.052,861,6.052,862,6.052,863,6.052,864,6.052,865,6.052,866,9.801,867,6.052,868,6.052,869,6.052,870,6.052,871,6.052,872,6.052]],["keywords/151",[]],["title/152",[820,949.772]],["content/152",[2,9.366,186,10.686,192,9.366,197,7.022,306,4.991,336,6.716,567,10.686,811,10.686,820,12.41,873,12.494,874,10.15,875,12.494,876,12.494,877,12.494,878,12.494,879,12.494,880,12.494,881,12.494,882,12.494,883,12.494,884,6.624,885,10.15,886,12.494]],["keywords/152",[]],["title/153",[247,417.935,313,668.14]],["content/153",[4,3.425,13,1.674,27,4.102,93,4.849,102,3.247,194,5.094,247,7.581,258,3.207,274,3.225,281,3.247,313,8.493,314,5.176,323,5.449,326,4.958,332,4.155,362,5.449,363,6.258,458,2.84,484,4.776,504,4.776,577,5.449,711,4.484,809,5.449,848,4.064,887,5.815,888,4.62,889,5.176,890,7.834,891,5.176,892,5.815,893,6.371,894,4.776,895,3.83,896,6.383,897,6.371,898,4.776,899,5.449,900,6.371,901,3.903,902,4.776,903,6.371,904,4.484,905,5.815,906,6.371,907,9.274,908,6.371,909,3.83,910,4.484,911,5.815]],["keywords/153",[]],["title/154",[205,534.728,912,935.083]],["content/154",[]],["keywords/154",[]],["title/155",[913,468.958]],["content/155",[2,9.229,13,4.378,22,6.919,23,7.61,138,3.39,191,2.939,198,2.986,336,6.619,370,8.928,472,6.714,913,6.517,914,7.504,915,7.356,916,16.662,917,12.312,918,7.542]],["keywords/155",[]],["title/156",[919,586.782]],["content/156",[13,2.593,15,4.906,58,4.906,191,4.001,192,7.397,193,7.397,194,4.756,198,2.557,209,7.679,210,6.589,211,6.165,225,3.356,248,3.851,258,4.966,274,3.115,320,9.007,323,8.44,325,6.758,347,5.261,353,8.017,458,4.399,472,5.381,898,7.397,920,8.44,921,9.007,922,9.868,923,9.868,924,9.868,925,9.868,926,9.868,927,9.868,928,6.436,929,8.017,930,9.868,931,9.868]],["keywords/156",[]],["title/157",[225,495.333]],["content/157",[27,4.3,73,4.757,75,3.595,78,2.621,81,2.432,137,2.59,138,2.668,176,5.103,191,3.361,194,4.394,198,2.192,209,7.539,210,6.469,211,6.054,225,2.029,248,2.226,255,3.807,257,2.546,315,4.363,325,4.086,347,2.2,372,3.891,382,4.199,884,3.163,895,3.587,896,3.728,909,3.587,932,12.854,933,6.923,934,15.487,935,15.487,936,5.966,937,5.966,938,5.966,939,4.327,940,7.539,941,4.086,942,3.984,943,5.966,944,4.847,945,5.103]],["keywords/157",[]],["title/158",[596,1183.107]],["content/158",[10,3.859,11,5.411,15,4.217,93,2.406,191,2.024,194,4.843,198,1.52,211,5.299,225,2.885,238,5.411,247,3.08,274,2.677,306,3.388,307,5.008,347,4.705,356,6.15,371,7.254,468,10.288,485,6.588,493,7.254,513,7.254,573,7.254,576,5.969,586,4.269,596,10.368,833,6.89,848,5.411,884,9.049,890,5.196,896,5.299,919,3.417,946,5.411,947,8.481,948,5.663,949,7.742,950,7.254,951,8.481,952,8.481,953,12.762,954,8.481,955,8.481,956,8.481,957,6.6]],["keywords/158",[]],["title/159",[274,363.366,958,657.218]],["content/159",[13,1.107,27,4.822,75,3.8,78,1.139,81,3.196,82,2.264,93,3.207,137,2.546,191,1.005,194,3.945,198,1.297,217,2.297,225,1.433,232,3.054,247,2.629,248,0.967,255,1.655,256,4.435,257,1.107,258,2.12,271,3.602,274,4.961,280,2.812,306,3.804,307,2.487,313,4.203,315,1.897,347,1.553,356,3.054,372,2.747,441,6.796,465,2.12,472,2.297,473,3.602,500,2.297,501,3.054,504,5.427,572,3.844,832,3.054,884,5.048,889,3.422,890,4.435,894,3.157,896,2.632,907,3.054,919,1.697,933,3.021,958,5.437,959,3.844,960,3.844,961,5.634,962,2.264,963,3.157,964,3.602,965,3.844,966,3.844,967,3.844,968,6.609,969,2.964,970,6.193,971,4.834,972,6.609,973,1.217,974,5.427,975,6.193,976,3.602,977,3.844,978,3.422,979,6.609,980,6.193]],["keywords/159",[]],["title/160",[981,1329.282]],["content/160",[]],["keywords/160",[]],["title/161",[191,227.129,981,868.536,982,951.54]],["content/161",[7,1.353,11,6.557,13,2.7,27,2.19,191,1.532,197,3.608,198,1.15,205,2.982,254,5.86,279,4.095,288,4.518,296,5.491,318,4.396,336,3.451,373,4.095,465,3.231,577,5.491,723,5.86,811,8.791,821,4.286,874,10.442,885,8.35,958,3.665,983,6.42,984,5.86,985,5.86,986,6.42,987,6.42,988,5.86,989,8.791,990,6.42,991,9.382,992,5.491,993,6.42,994,5.86,995,11.733,996,6.42,997,6.42,998,5.86,999,6.42,1000,6.42,1001,11.733,1002,6.42,1003,6.42,1004,10.278,1005,5.86,1006,6.42,1007,5.86,1008,6.42,1009,10.278,1010,5.86,1011,6.42,1012,5.86,1013,6.42,1014,6.42,1015,10.994,1016,5.86,1017,6.42,1018,6.42,1019,6.42,1020,6.42,1021,5.86,1022,5.215,1023,6.42,1024,6.42,1025,6.42,1026,6.42,1027,6.42,1028,6.42,1029,6.42,1030,6.42,1031,6.42]],["keywords/161",[]],["title/162",[7,200.565,13,249.996,1032,690.024]],["content/162",[]],["keywords/162",[]],["title/163",[175,1245.606]],["content/163",[4,3.504,7,2.193,13,2.734,14,4.353,18,4.588,85,4.251,89,4.834,139,1.943,142,2.906,144,5.593,191,1.556,194,4.205,198,1.168,205,4.834,232,4.727,257,1.713,280,4.353,306,2.604,318,4.464,336,3.504,347,3.836,349,5.072,351,4.464,363,3.993,380,5.296,482,2.906,495,2.997,512,5.759,539,3.608,582,5.296,591,4.073,622,5.173,716,8.284,746,6.144,890,3.993,895,3.919,909,3.919,939,4.727,946,4.158,969,4.588,984,5.95,1032,7.545,1033,5.575,1034,6.519,1035,7.8,1036,4.464,1037,5.575,1038,5.296,1039,9.417,1040,4.727,1041,6.519,1042,6.519,1043,6.519,1044,5.95,1045,5.575,1046,4.353,1047,4.464,1048,4.727,1049,4.588,1050,6.519,1051,3.608,1052,5.296,1053,6.519,1054,6.519,1055,5.575,1056,6.519,1057,5.072,1058,5.296,1059,5.575]],["keywords/163",[]],["title/164",[495,669.455]],["content/164",[13,3.687,14,9.37,82,7.544,137,2.578,205,4.48,212,6.439,257,2.533,482,7.376,512,5.337,539,11.511,590,6.786,933,4.024,1035,7.228,1036,11.33,1039,6.993,1040,6.993,1051,5.337,1060,9.643,1061,8.802,1062,8.437,1063,9.643,1064,9.643,1065,7.503,1066,9.643,1067,9.643,1068,9.643,1069,12.809,1070,9.643,1071,9.643,1072,9.643]],["keywords/164",[]],["title/165",[913,468.958]],["content/165",[7,3.589,13,4.473,23,6.86,913,5.482,914,7.667,915,7.516,1073,15.54]],["keywords/165",[]],["title/166",[973,420.766]],["content/166",[4,8.221,8,4.143,13,1.81,14,7.26,36,3.512,58,3.426,79,5.622,99,4.169,137,1.842,194,1.955,198,2.74,247,2.502,286,3.236,294,3.873,300,6.537,465,3.468,482,3.072,485,3.557,495,7.03,539,9.213,579,4.143,602,4.997,928,4.494,933,2.876,963,5.165,973,5.111,1074,4.221,1075,7.091,1076,6.891,1077,6.891,1078,9.925,1079,6.891,1080,10.873,1081,6.891,1082,6.891,1083,5.894,1084,6.891,1085,5.894,1086,6.891,1087,5.894,1088,6.891,1089,4.494,1090,6.891,1091,5.894,1092,5.894,1093,6.111,1094,8.461,1095,6.891,1096,6.891,1097,6.891]],["keywords/166",[]],["title/167",[919,463.77,933,480.332]],["content/167",[4,1.672,5,3.907,7,1.17,10,2.526,13,3.544,14,7.004,15,2.76,27,3.772,32,1.387,58,1.547,73,1.45,75,1.919,78,0.841,79,1.051,81,0.781,82,4.041,130,9.574,137,1.484,138,0.857,144,2.984,191,0.743,197,1.748,198,1.347,205,1.445,225,1.888,226,2.029,233,1.387,234,2.794,248,0.715,252,2.189,255,1.222,256,1.906,257,1.459,288,2.189,316,1.906,343,5.067,347,1.147,352,1.776,372,2.029,458,1.387,468,3.12,472,5.72,482,4.676,495,5.805,501,2.256,512,1.722,539,9.381,574,4.161,576,5.291,591,1.944,592,2.84,600,2.421,918,1.906,940,2.421,963,5.635,964,2.661,1035,2.332,1036,3.802,1039,2.256,1040,5.451,1046,2.077,1047,2.13,1048,2.256,1049,3.907,1051,3.073,1069,2.84,1073,2.84,1078,5.067,1085,2.661,1094,2.421,1098,3.111,1099,2.332,1100,2.661,1101,2.661,1102,2.527,1103,3.111,1104,2.421,1105,2.527,1106,3.111,1107,2.527,1108,2.661,1109,2.421,1110,3.111,1111,3.111,1112,3.111,1113,7.518,1114,3.111,1115,5.552,1116,7.518,1117,5.552,1118,5.552,1119,3.111,1120,3.111,1121,3.111,1122,3.111,1123,3.111,1124,3.111,1125,3.111,1126,3.111,1127,3.111,1128,3.111,1129,3.111,1130,3.111,1131,3.111,1132,3.111,1133,3.111,1134,3.111,1135,3.111,1136,3.111,1137,2.84,1138,3.111,1139,2.84,1140,3.111,1141,3.111,1142,3.111,1143,3.111,1144,3.111,1145,2.13,1146,3.111,1147,2.661,1148,3.111,1149,2.527,1150,5.552,1151,3.111,1152,3.111,1153,3.111,1154,2.527,1155,3.111,1156,5.067,1157,3.111,1158,3.111,1159,3.111,1160,2.527,1161,3.111]],["keywords/167",[]],["title/168",[1162,1091.659]],["content/168",[5,6.945,7,3.008,8,5.933,13,2.593,89,6.63,93,2.799,194,2.799,205,4.584,222,8.44,340,6.045,347,3.638,482,4.399,485,5.094,510,5.933,512,5.461,590,6.945,602,7.156,790,8.44,1039,7.156,1046,6.589,1047,6.758,1049,12.927,1062,5.933,1065,11.104,1163,9.007,1164,9.007,1165,8.44,1166,8.44,1167,9.868,1168,8.44,1169,7.679,1170,7.679,1171,9.868,1172,9.868,1173,9.868,1174,6.165,1175,9.868]],["keywords/168",[]],["title/169",[913,468.958]],["content/169",[7,3.589,13,4.473,23,6.86,913,5.482,914,7.667,915,7.516,1176,15.54]],["keywords/169",[]],["title/170",[973,420.766]],["content/170",[4,8.149,8,4.999,13,2.184,14,5.552,32,5.605,58,4.134,79,5.708,99,4.82,194,2.359,198,2.253,270,6.47,286,3.904,306,3.322,482,3.707,485,4.292,497,5.304,539,4.602,579,4.999,928,5.422,973,5.243,1039,9.117,1049,5.852,1074,5.093,1075,8.199,1083,7.111,1091,7.111,1093,8.52,1094,11.796,1099,6.233,1162,11.364,1168,7.111,1170,9.783,1177,8.314,1178,8.314,1179,7.111,1180,11.475,1181,8.314]],["keywords/170",[]],["title/171",[919,463.77,933,480.332]],["content/171",[7,2.517,8,4.673,13,3.138,14,3.056,27,4.125,32,3.465,73,2.646,75,3.049,78,1.238,81,1.149,89,2.126,90,2.149,102,2.332,138,1.26,144,5.446,191,1.092,197,2.572,198,0.82,205,2.126,225,1.557,234,2.303,247,1.662,248,1.785,255,1.798,256,2.804,269,3.865,270,3.561,280,3.056,281,2.332,306,4.047,336,2.46,340,2.804,347,4.403,363,4.762,458,3.465,465,2.303,482,2.041,483,3.056,484,3.431,485,6.165,512,2.533,600,3.561,751,2.394,890,2.804,895,2.752,957,3.561,1037,6.648,1039,7.347,1046,3.056,1047,3.134,1048,9.702,1049,5.471,1051,5.607,1061,4.178,1099,3.431,1100,3.915,1101,3.915,1102,3.718,1107,3.718,1109,3.561,1147,3.915,1162,11.625,1164,7.095,1168,3.915,1169,3.561,1170,10.41,1176,4.178,1179,3.915,1180,4.178,1182,4.577,1183,7.095,1184,4.577,1185,4.577,1186,3.915,1187,4.577,1188,4.577,1189,4.178,1190,3.915,1191,3.915,1192,4.577]],["keywords/171",[]],["title/172",[746,859.992]],["content/172",[8,4.809,13,2.102,15,3.977,144,4.3,178,5.801,198,2.188,205,3.716,218,6.842,225,2.721,252,5.63,258,4.026,316,4.9,333,5.63,347,2.949,363,4.9,458,3.567,465,4.026,482,3.567,574,5.997,590,5.63,618,3.369,622,3.977,716,9.445,746,11.551,843,5.478,884,4.241,909,4.809,920,6.842,940,6.225,1032,5.801,1051,4.427,1052,6.499,1055,6.842,1193,8,1194,7.302,1195,8,1196,6.842,1197,7.302,1198,8,1199,11.144,1200,11.144,1201,12.028,1202,8,1203,6.842,1204,8,1205,10.442,1206,5.997,1207,8,1208,8]],["keywords/172",[]],["title/173",[913,468.958]],["content/173",[7,3.589,13,4.473,23,6.86,913,5.482,914,7.667,915,7.516,1209,15.54]],["keywords/173",[]],["title/174",[973,420.766]],["content/174",[4,8.248,8,5.099,32,3.781,58,4.217,79,6.183,99,4.893,194,2.406,198,2.749,205,3.94,247,3.08,279,5.411,286,5.993,482,3.781,485,4.378,512,4.694,539,4.694,579,5.099,746,11.358,928,5.531,973,5.557,1039,6.15,1074,5.196,1075,8.323,1083,7.254,1091,7.254,1093,7.172,1094,9.93,1099,6.358,1206,6.358,1210,8.481,1211,8.481,1212,8.481,1213,5.008,1214,8.481]],["keywords/174",[]],["title/175",[919,463.77,933,480.332]],["content/175",[4,2.846,7,1.116,8,3.182,10,2.408,13,2.307,27,4.6,73,2.294,75,2.874,78,1.432,79,1.788,81,1.329,82,2.846,99,3.367,138,1.457,144,2.846,191,1.264,197,2.975,198,0.948,248,1.216,252,3.726,255,2.08,256,3.243,258,2.664,281,2.698,294,2.975,316,3.243,347,1.951,351,3.625,360,4.528,363,3.243,458,2.36,465,2.664,585,2.806,716,7.18,746,10.257,773,4.3,843,3.625,848,3.377,1051,2.93,1052,4.3,1055,7.512,1099,3.968,1100,4.528,1101,4.528,1102,4.3,1107,4.3,1109,4.119,1137,8.017,1139,4.832,1190,4.528,1201,7.135,1203,4.528,1206,3.968,1209,4.832,1215,5.294,1216,5.294,1217,6.834,1218,4.832,1219,5.294,1220,5.294,1221,4.528,1222,11.256,1223,5.294,1224,5.294,1225,5.294,1226,5.294,1227,5.294,1228,5.294,1229,5.294,1230,5.294,1231,5.294,1232,5.294,1233,5.294,1234,5.294,1235,4.832,1236,5.294,1237,4.832,1238,4.832]],["keywords/175",[]],["title/176",[1057,1133.203]],["content/176",[13,3.675,80,4.662,137,3.044,153,4.662,198,1.309,212,4.879,248,2.615,270,8.86,274,3.595,285,5.143,336,3.928,347,2.694,482,5.076,484,14.193,494,11.115,511,5.004,590,5.143,599,6.25,787,12.768,817,5.004,819,4.766,890,6.975,895,8.41,909,6.845,942,4.879,949,10.393,1057,12.289,1058,5.937,1059,9.739,1239,7.308,1240,7.308,1241,7.308,1242,7.308,1243,7.308,1244,7.308,1245,5.478,1246,7.308,1247,7.308,1248,6.25,1249,6.25,1250,5.478,1251,7.308,1252,6.724,1253,5.937,1254,7.308]],["keywords/176",[]],["title/177",[913,468.958]],["content/177",[7,4.408,13,3.991,23,6.12,90,7.133,726,12.192,913,4.891,914,6.84,915,6.705,1255,15.189,1256,15.189]],["keywords/177",[]],["title/178",[973,420.766]],["content/178",[4,7.253,79,4.557,99,5.172,194,3.827,198,2.417,352,7.703,590,9.495,973,5.117,1051,7.467,1057,10.498,1074,8.265,1075,8.799,1257,12.315,1258,13.491,1259,13.491,1260,13.491,1261,13.491,1262,13.491,1263,12.315]],["keywords/178",[]],["title/179",[919,463.77,933,480.332]],["content/179",[7,2.115,13,2.636,27,4.954,73,3.773,75,3.687,78,1.685,81,2.519,137,2.683,138,1.715,191,2.395,198,1.116,236,11.499,247,2.262,248,1.431,256,6.147,271,5.329,272,3.098,274,3.168,275,2.926,276,3.303,363,6.147,458,4.474,487,3.501,501,4.518,782,5.061,1102,5.061,1213,3.679,1257,9.159,1264,10.034,1265,6.23,1266,10.034,1267,6.23,1268,10.034,1269,6.23,1270,6.23,1271,6.23,1272,6.23,1273,6.23,1274,5.329,1275,6.23,1276,6.23,1277,6.23,1278,5.061,1279,6.23]],["keywords/179",[]],["title/180",[1280,895.641,1281,895.641]],["content/180",[]],["keywords/180",[]],["title/181",[144,511.511,198,170.496,942,635.351]],["content/181",[4,3.766,13,4.055,14,9.09,15,3.483,27,4.33,32,4.911,75,1.788,78,1.895,81,1.758,137,2.945,144,3.766,191,1.672,194,5.054,198,1.255,248,1.609,253,5.991,307,4.137,347,5.018,363,4.291,380,5.691,458,3.123,468,6.191,472,3.82,495,5.064,539,3.877,602,5.08,884,3.714,942,4.677,1032,7.988,1092,5.991,1108,5.991,1162,8.257,1170,8.571,1186,5.991,1221,5.991,1282,11.015,1283,7.005,1284,6.394,1285,5.451,1286,6.394,1287,7.005,1288,7.005,1289,6.394,1290,4.93,1291,7.005,1292,7.005,1293,7.005,1294,4.93,1295,6.394]],["keywords/181",[]],["title/182",[274,256.022,333,570.768,356,588.102,958,463.066]],["content/182",[2,4.667,4,3.347,7,0.746,13,0.93,27,4.79,32,2.776,73,0.925,75,3.215,81,2.868,93,1.766,137,1.665,144,7.303,176,5.326,194,2.364,198,1.493,225,2.118,248,0.813,253,3.029,256,3.814,257,0.93,258,1.782,269,1.761,274,4.289,280,2.364,306,2.488,307,3.677,325,2.425,333,5.865,336,3.347,347,1.305,356,6.043,372,2.309,441,5.01,465,1.782,500,3.395,501,2.568,504,2.654,568,2.877,620,2.056,708,4.382,746,4.921,832,2.568,884,4.418,889,2.877,890,2.169,895,3.743,907,2.568,919,1.427,933,1.478,958,3.555,959,3.232,960,3.232,968,5.683,969,4.382,970,5.326,971,4.158,972,5.683,973,1.023,974,4.667,975,5.326,976,3.029,977,3.232,978,2.877,979,5.683,980,5.326,1032,4.515,1046,2.364,1047,2.425,1092,3.029,1108,3.029,1162,4.667,1170,2.755,1186,3.029,1221,3.029,1238,3.232,1281,2.755,1289,5.683,1295,3.232,1296,3.232,1297,3.232,1298,3.541,1299,3.541,1300,3.541,1301,3.232,1302,3.232,1303,3.541,1304,3.541,1305,3.541,1306,6.227,1307,3.541,1308,2.755]],["keywords/182",[]],["title/183",[1309,1329.282]],["content/183",[191,3.44,221,9.194,279,9.194,465,7.253,585,7.64,607,9.399,821,9.623,885,11.708,1205,12.327,1309,18.627,1310,13.155,1311,13.155,1312,12.327,1313,14.412]],["keywords/183",[]],["title/184",[620,845.36]],["content/184",[]],["keywords/184",[]],["title/185",[848,734.275,890,705.102]],["content/185",[11,7.903,93,4.25,194,4.25,197,6.962,211,7.74,221,5.202,248,3.441,278,6.624,306,5.985,316,4.995,363,4.995,467,2.258,711,5.739,809,10.595,848,7.903,884,8.87,890,10.25,894,12.542,912,6.624,932,7.443,1109,6.345,1154,6.624,1190,6.974,1294,5.739,1314,6.974,1315,8.983,1316,8.154,1317,8.154,1318,5.913,1319,8.154,1320,8.154,1321,8.154,1322,8.154,1323,8.154,1324,8.154,1325,8.154,1326,8.154,1327,7.443]],["keywords/185",[]],["title/186",[1328,1329.282]],["content/186",[1,8.963,11,6.685,13,2.753,18,7.376,189,7.376,191,3.556,194,2.973,196,8.963,197,5.89,204,9.566,205,4.869,257,2.753,316,6.42,349,8.155,360,8.963,484,7.856,766,12.104,833,8.514,885,14.084,939,7.6,1280,8.155,1281,8.155,1328,9.566,1329,9.566,1330,10.48,1331,10.48,1332,14.9,1333,10.48,1334,7.856,1335,10.48,1336,10.48,1337,10.48,1338,10.48]],["keywords/186",[]],["title/187",[989,984.48,1339,1050.614]],["content/187",[7,1.616,13,2.014,18,3.17,27,1.633,58,2.239,135,3.852,153,2.873,191,1.075,288,7.046,294,2.531,296,6.558,316,2.759,332,2.937,467,1.247,494,3.17,585,4.065,602,5.56,607,2.937,790,3.852,818,3.084,884,2.388,898,3.376,989,14.455,991,4.111,992,3.852,994,6.998,995,14.79,998,6.998,1007,12.097,1010,9.138,1012,9.138,1015,6.558,1016,9.138,1021,9.138,1165,3.852,1174,2.814,1205,3.852,1310,4.111,1311,6.998,1312,3.852,1314,3.852,1339,4.111,1340,3.659,1341,4.111,1342,10.011,1343,10.011,1344,10.011,1345,4.504,1346,10.011,1347,4.504,1348,4.504,1349,4.504,1350,4.504,1351,4.504,1352,4.504,1353,6.998,1354,4.504,1355,3.007,1356,4.111,1357,4.504,1358,4.504,1359,7.667,1360,8.133,1361,4.504,1362,4.504,1363,6.998,1364,4.111,1365,4.504,1366,4.504,1367,4.504,1368,8.454,1369,14.42,1370,4.504,1371,4.504,1372,4.504,1373,4.504,1374,4.504,1375,6.998,1376,4.504,1377,4.504,1378,4.504,1379,3.007,1380,4.111]],["keywords/187",[]],["title/188",[144,782.861]],["content/188",[114,10.218,144,8.021,226,9.731,336,8.021,472,8.137,591,9.322,620,8.661,816,13.3,817,10.218,818,10.218,819,9.731,820,9.731,821,9.963]],["keywords/188",[]],["title/189",[1381,1133.203]],["content/189",[3,3.452,4,3.995,5,3.056,10,1.975,13,2.559,27,3.675,36,2.213,73,1.134,79,1.466,81,1.09,114,2.973,153,2.77,177,3.713,181,3.527,186,3.713,191,2.753,194,1.232,197,2.44,198,1.332,225,1.477,226,2.832,235,5.57,247,2.698,248,1.707,258,3.74,272,2.159,325,2.973,326,3.378,332,2.832,333,3.056,336,3.995,340,2.66,347,1.601,356,3.148,361,3.255,372,2.832,384,3.963,441,4.468,457,3.101,468,2.44,472,2.368,485,2.241,494,3.056,504,3.255,510,2.61,591,2.713,601,3.527,608,3.713,620,2.52,656,3.148,816,5.23,817,2.973,818,2.973,819,2.832,820,2.832,821,2.899,884,3.94,895,2.61,904,5.23,920,3.713,957,3.378,973,1.254,978,6.037,1040,3.148,1062,6.935,1089,4.846,1154,3.527,1174,2.713,1199,6.783,1250,7.303,1253,3.527,1274,3.713,1381,11.76,1382,4.342,1383,4.342,1384,4.342,1385,3.056,1386,4.342,1387,7.431,1388,3.963,1389,3.963,1390,6.783,1391,4.342,1392,5.782,1393,4.342,1394,4.342,1395,4.342,1396,3.713,1397,5.782,1398,4.342,1399,4.342,1400,7.431,1401,4.342,1402,4.342,1403,4.342,1404,3.963,1405,4.342,1406,7.431,1407,3.713,1408,4.342,1409,4.342,1410,4.342,1411,3.963,1412,4.342,1413,4.342]],["keywords/189",[]],["title/190",[93,326.54,1414,1151.018]],["content/190",[]],["keywords/190",[]],["title/191",[13,213.069,225,275.84,347,298.975,738,693.649]],["content/191",[27,4.835,32,4.615,73,3.858,75,3.771,78,2.8,81,2.598,137,2.767,138,2.85,142,4.615,191,3.525,244,3.472,248,2.378,255,4.067,257,2.72,274,3.268,275,4.861,276,5.488,284,4.809,286,4.861,315,4.662,638,4.171,739,8.409,1415,12.632,1416,8.854,1417,10.351]],["keywords/191",[]],["title/192",[13,249.996,225,323.645,1418,951.54]],["content/192",[27,4.712,32,5.334,73,4.268,75,4.172,78,3.236,81,3.003,137,3.198,138,3.294,191,3.9,248,2.748,255,4.7,257,3.143,274,3.777,286,5.618,315,5.388,739,9.719,1415,13.976,1416,10.232]],["keywords/192",[]],["title/193",[13,302.404,306,459.839]],["content/193",[7,1.965,13,3.597,27,4.875,73,2.435,75,4.565,90,4.378,244,4.593,347,3.437,458,7.235,485,4.813,487,7.695,1059,7.975,1419,13.692,1420,13.692,1421,6.989,1422,9.324,1423,9.324,1424,5.412,1425,9.324,1426,9.324,1427,7.255,1428,9.324,1429,9.324,1430,9.324,1431,9.324]],["keywords/193",[]],["title/194",[779,997.285]],["content/194",[]],["keywords/194",[]],["title/195",[913,468.958]],["content/195",[7,3.038,23,8.222,90,6.768,194,4.089,198,2.582,775,11.708,913,6.571,914,6.49,915,8.16,918,8.829,1432,13.155]],["keywords/195",[]],["title/196",[973,420.766]],["content/196",[3,4.328,7,2.494,13,1.494,15,2.827,36,4.747,58,4.631,79,6.037,89,2.641,90,2.67,93,2.643,99,4.537,109,3.627,205,2.641,234,2.861,269,4.631,286,4.374,294,5.235,300,3.418,306,3.721,347,2.096,441,9.078,451,5.156,468,3.195,482,5.276,483,3.796,485,2.935,497,3.627,500,5.08,512,3.147,579,3.418,586,4.688,607,3.708,751,2.974,779,3.893,794,3.796,796,7.549,958,3.246,962,3.056,973,1.643,1062,3.418,1074,5.706,1089,3.708,1093,5.235,1433,3.708,1434,11.834,1435,3.708,1436,3.796,1437,5.189,1438,7.249,1439,4.123,1440,4.123,1441,4.123,1442,4.262,1443,3.796,1444,4.001,1445,4.808,1446,4.001,1447,4.001,1448,4.001,1449,4.001,1450,6.556,1451,4.001,1452,3.893,1453,3.796,1454,3.627,1455,3.708,1456,5.685,1457,5.685]],["keywords/196",[]],["title/197",[919,463.77,933,480.332]],["content/197",[5,6.42,27,4.984,71,5.949,73,3.52,75,3.44,81,2.29,93,3.823,138,2.512,191,3.216,198,1.635,244,3.06,248,2.095,257,2.397,272,4.536,274,2.88,275,4.284,276,4.836,351,6.247,352,5.209,619,4.108,638,3.676,758,5.295,775,7.411,779,9.227,780,7.802,1424,5.295,1458,5.484,1459,5.7]],["keywords/197",[]],["title/198",[19,892.126]],["content/198",[7,4.219,89,7.603,90,7.685,281,8.34,779,11.207,1460,13.055,1461,10.025]],["keywords/198",[]],["title/199",[22,646.87,919,463.77]],["content/199",[4,2.346,5,3.071,10,3.396,22,2.453,27,4.618,71,4.868,73,1.95,75,2.497,78,1.18,79,1.474,81,1.873,120,2.346,137,1.167,138,1.202,144,2.346,189,3.071,191,1.782,198,1.752,211,2.727,212,2.914,221,2.784,225,1.484,244,1.464,248,1.002,255,1.715,257,1.961,269,6.467,272,2.17,274,2.356,275,2.049,276,2.314,284,6.043,286,4.592,300,2.624,306,4.624,307,2.577,315,1.965,340,2.673,347,3.605,351,2.989,352,2.492,451,4.131,462,2.989,481,2.846,487,2.453,500,4.07,638,1.758,758,4.333,775,3.545,779,7.927,780,3.733,895,2.624,946,6.239,948,2.914,971,2.914,973,1.261,1036,2.989,1145,2.989,1217,3.396,1252,5.775,1318,5.413,1334,3.271,1385,3.071,1424,2.533,1445,5.048,1458,2.624,1459,2.727,1462,3.271,1463,3.165,1464,3.396,1465,5.808,1466,3.396,1467,11.575,1468,5.413,1469,3.396,1470,4.364,1471,3.396,1472,3.396,1473,3.733,1474,3.733,1475,3.733,1476,3.733]],["keywords/199",[]],["title/200",[22,646.87,198,206.238]],["content/200",[2,3.449,7,0.97,11,2.936,13,2.052,20,3.337,22,7.543,27,4.264,32,2.052,73,2.657,75,1.175,78,1.245,81,1.155,100,7.376,102,3.98,133,3.738,137,2.088,138,1.267,182,3.581,191,2.428,194,4.138,197,2.586,198,2.613,211,4.879,225,2.656,234,2.316,244,1.543,248,2.753,257,2.672,258,2.316,272,2.288,274,1.453,275,2.161,276,2.44,284,5.568,294,2.586,302,3.738,325,3.151,336,2.474,361,5.854,382,3.239,452,3.936,462,3.151,539,2.547,616,3.001,708,3.239,750,3.738,751,5.32,755,3.449,758,2.671,760,3.738,853,3.738,895,4.695,912,3.738,962,2.474,1051,2.547,1145,3.151,1163,4.2,1191,3.936,1249,3.936,1327,7.128,1424,2.671,1445,2.375,1458,2.767,1477,3.936,1478,4.2,1479,4.2,1480,4.2,1481,4.602,1482,4.2,1483,4.2,1484,4.2,1485,3.738,1486,4.2,1487,3.337,1488,7.809,1489,7.809,1490,4.602,1491,4.602,1492,4.602,1493,4.602,1494,4.602,1495,4.2,1496,3.738,1497,4.602,1498,4.602,1499,4.602]],["keywords/200",[]],["title/201",[716,734.275,746,679.705]],["content/201",[]],["keywords/201",[]],["title/202",[913,468.958]],["content/202",[23,7.971,194,4.555,198,2.877,745,14.654,746,9.481,913,6.37,914,7.23,915,7.087]],["keywords/202",[]],["title/203",[973,420.766]],["content/203",[3,4.694,7,3.06,15,5.024,27,2.152,79,5.738,286,4.745,352,5.769,373,6.446,716,6.446,746,10.966,805,7.862,808,6.19,910,7.111,941,6.919,946,6.446,973,4.194,1201,15.086,1206,10.881,1245,7.574,1500,13.249,1501,9.223,1502,9.223,1503,10.104,1504,13.249,1505,14.516,1506,10.104,1507,10.104]],["keywords/203",[]],["title/204",[919,463.77,933,480.332]],["content/204",[27,4.765,75,4.639,78,2.608,81,2.42,137,2.578,191,3.35,198,1.728,241,8.248,248,2.215,255,3.788,257,2.533,315,4.342,746,5.694,1194,8.802,1201,7.834,1206,7.228,1508,14.034,1509,9.643,1510,9.643,1511,9.643,1512,9.643,1513,9.643,1514,9.643,1515,9.643,1516,9.643,1517,9.643,1518,9.643,1519,9.643,1520,9.643,1521,9.643]],["keywords/204",[]],["title/205",[726,929.036]],["content/205",[]],["keywords/205",[]],["title/206",[913,468.958]],["content/206",[7,3.772,23,8.029,90,6.438,194,3.89,198,2.457,726,11.417,778,11.138,913,6.416,914,6.174,915,7.901,918,8.399,1522,13.71]],["keywords/206",[]],["title/207",[973,420.766]],["content/207",[3,4.352,7,2.506,13,1.504,15,2.846,36,4.774,58,4.657,79,6.053,89,2.659,90,2.688,93,2.657,99,4.558,109,3.651,205,2.659,234,2.881,269,4.657,286,4.399,294,5.264,300,3.441,306,3.742,347,2.11,441,9.111,451,5.184,468,3.217,482,5.301,483,3.822,485,2.955,497,3.651,500,5.108,512,3.168,579,3.441,586,4.714,607,3.733,726,3.651,751,2.994,794,3.822,796,7.585,958,3.268,962,3.077,973,1.654,1062,3.441,1074,5.738,1089,3.733,1093,5.264,1433,3.733,1435,3.733,1436,3.822,1438,7.283,1439,4.151,1440,4.151,1441,4.151,1442,4.291,1443,3.822,1444,4.028,1445,4.835,1446,4.028,1447,4.028,1448,4.028,1449,4.028,1450,6.592,1451,4.028,1452,3.92,1453,3.822,1454,3.651,1455,3.733,1523,11.889,1524,5.724,1525,5.724]],["keywords/207",[]],["title/208",[137,216.812,571,528.906,807,528.906,808,496.804]],["content/208",[]],["keywords/208",[]],["title/209",[913,468.958]],["content/209",[23,7.701,137,4.061,194,4.309,198,2.722,571,9.906,807,9.906,808,9.305,813,12.339,913,6.154,914,6.84,915,6.705]],["keywords/209",[]],["title/210",[973,420.766]],["content/210",[3,8.645,32,7.285,36,8.327,79,6.755,194,3.394,248,2.748,258,6.021,285,11.5,353,9.719,510,7.192,884,8.663,894,8.968,910,8.42,973,3.457,1249,10.232,1526,10.92,1527,11.963,1528,11.963,1529,11.963]],["keywords/210",[]],["title/211",[919,463.77,933,480.332]],["content/211",[27,4.565,32,5.187,73,4.187,75,4.093,78,3.147,81,2.92,137,4.286,138,3.203,191,3.826,248,2.672,255,4.571,257,3.057,274,3.673,315,5.239,571,7.587,807,7.587,808,7.127,813,9.451,1530,11.634,1531,11.634,1532,11.634]],["keywords/211",[]],["title/212",[919,463.77,933,480.332]],["content/212",[27,4.953,71,5.703,73,3.411,75,3.99,78,2.365,81,2.195,93,3.704,137,2.338,138,2.408,191,3.117,198,1.567,244,2.933,248,2.009,255,3.436,257,2.297,272,4.348,274,2.761,275,4.106,276,4.636,315,3.938,482,3.899,638,3.523,726,8.33,758,5.076,778,7.104,782,7.104,1424,5.076,1458,5.257,1459,5.464,1533,7.982,1534,7.982]],["keywords/212",[]],["title/213",[19,892.126]],["content/213",[7,4.219,89,7.603,90,7.685,281,8.34,726,10.44,1460,13.055,1461,10.025]],["keywords/213",[]],["title/214",[22,646.87,919,463.77]],["content/214",[4,2.287,10,3.322,22,2.391,27,4.534,71,4.763,73,1.908,75,2.449,79,1.437,81,1.833,93,2.072,99,1.631,138,1.171,144,2.287,189,2.994,191,1.015,198,1.308,211,2.658,212,2.841,221,2.714,225,1.447,244,1.427,248,0.977,257,1.919,269,6.369,272,2.115,274,2.305,275,1.998,276,2.255,284,5.951,286,5.344,300,2.558,306,5.118,307,2.512,340,2.606,347,3.537,352,2.429,451,4.042,462,2.913,465,2.141,481,2.774,482,1.897,487,2.391,500,3.982,638,1.714,726,7.26,758,4.239,778,3.456,782,3.456,895,2.558,946,6.121,948,2.841,971,2.841,973,1.229,1036,2.913,1145,2.913,1252,4.312,1308,3.31,1318,5.296,1334,3.189,1385,2.994,1424,2.469,1445,5.874,1458,2.558,1459,2.658,1462,3.189,1463,3.085,1464,3.31,1465,5.682,1466,3.31,1468,5.296,1469,3.31,1471,3.31,1472,3.31,1473,3.639,1474,3.639,1475,3.639,1476,3.639,1504,3.883,1533,3.883,1534,3.883,1535,4.254,1536,11.38,1537,4.254,1538,3.883,1539,4.254,1540,3.883,1541,3.883,1542,3.883]],["keywords/214",[]],["title/215",[247,417.935,495,529.112]],["content/215",[]],["keywords/215",[]],["title/216",[913,468.958]],["content/216",[23,7.971,194,4.555,198,2.877,495,7.38,626,11.299,913,6.37,914,7.23,915,7.087]],["keywords/216",[]],["title/217",[973,420.766]],["content/217",[11,9.194,79,4.868,81,3.617,99,5.525,198,2.582,210,9.623,247,5.233,285,10.143,306,5.758,347,5.313,462,9.869,495,6.625,539,7.976,1160,11.708,1252,8.511,1543,14.412]],["keywords/217",[]],["title/218",[919,463.77,933,480.332]],["content/218",[27,4.573,73,4.485,75,4.384,78,3.483,81,3.232,137,3.442,138,3.545,191,3.073,210,8.597,248,3.944,255,5.058,257,3.383,495,5.918,626,9.061,1544,12.875,1545,12.875]],["keywords/218",[]],["title/219",[137,307.717,636,455.985]],["content/219",[]],["keywords/219",[]],["title/220",[913,468.958]],["content/220",[23,7.971,194,4.555,198,2.877,636,6.36,718,9.481,913,6.37,914,7.23,915,7.087]],["keywords/220",[]],["title/221",[973,420.766]],["content/221",[10,5.857,79,4.349,137,3.442,274,4.064,286,6.046,300,11.614,308,10.459,421,11.752,726,8.213,1022,10.459,1093,7.236,1094,10.018,1253,10.459,1438,7.887,1462,9.651,1546,12.875,1547,9.651,1548,11.752,1549,12.875,1550,11.752,1551,12.875]],["keywords/221",[]],["title/222",[919,463.77,933,480.332]],["content/222",[27,4.906,73,4.071,75,4.959,78,3.022,81,2.804,137,4.167,138,3.076,191,2.667,248,2.566,255,4.389,257,2.935,636,4.426,718,6.598,1245,13.456,1552,11.173,1553,11.173]],["keywords/222",[]],["title/223",[139,283.568,142,424.232,630,543.318]],["content/223",[]],["keywords/223",[]],["title/224",[913,468.958]],["content/224",[23,7.879,141,6.888,142,7.024,194,4.47,198,2.823,630,8.996,913,6.297,914,7.095,915,6.955]],["keywords/224",[]],["title/225",[973,420.766]],["content/225",[3,3.15,10,8.683,13,3.982,32,7.832,79,6.638,139,2.021,143,6.13,284,4.987,306,2.709,316,4.153,585,8.756,630,3.871,638,2.732,904,4.772,1160,12.313,1166,5.799,1213,4.004,1438,9.284,1461,9.284,1554,6.189,1555,15.156,1556,8.721,1557,6.78,1558,6.78,1559,6.78,1560,6.78,1561,8.898,1562,6.78,1563,6.78,1564,9.799,1565,6.78,1566,6.78,1567,6.78,1568,6.78,1569,5.508,1570,5.508,1571,6.78]],["keywords/225",[]],["title/226",[919,463.77,933,480.332]],["content/226",[27,4.71,36,4.523,73,3.449,75,2.266,78,1.45,79,2.998,81,1.346,137,1.433,138,1.476,141,4.965,142,2.39,191,2.118,198,0.961,244,5.288,246,4.355,247,1.946,248,2.039,255,2.106,257,1.408,272,8.298,274,1.692,275,2.517,276,2.842,312,4.585,315,2.414,372,9.541,531,3.773,630,3.061,636,2.124,638,2.16,661,4.018,662,3.496,664,8.815,665,4.018,666,6.078,1424,3.112,1458,3.223,1459,3.349,1554,4.893,1572,7.591,1573,4.018,1574,7.591,1575,5.361,1576,5.361,1577,5.361,1578,6.588,1579,5.361,1580,5.361,1581,5.361,1582,5.361,1583,8.875,1584,5.361,1585,8.875,1586,5.361,1587,5.361,1588,5.361]],["keywords/226",[]],["title/227",[139,283.568,247,345.504,248,218.575]],["content/227",[]],["keywords/227",[]],["title/228",[913,468.958]],["content/228",[23,7.879,141,6.888,194,4.47,198,2.823,247,5.721,248,3.619,913,6.297,914,7.095,915,6.955]],["keywords/228",[]],["title/229",[973,420.766]],["content/229",[3,5.26,36,5.77,79,5.313,139,3.374,182,8.81,197,6.363,198,2.029,247,5.712,272,5.629,274,3.574,275,5.317,347,4.174,472,6.174,495,5.205,539,8.707,586,5.698,805,8.81,961,8.81,969,7.969,1356,10.335,1438,6.936,1496,9.198,1589,10.335,1590,11.322,1591,10.335,1592,11.322,1593,11.322,1594,9.684,1595,9.198]],["keywords/229",[]],["title/230",[919,463.77,933,480.332]],["content/230",[13,2.593,27,4.727,73,3.728,75,3.643,78,2.669,81,3.582,93,2.799,137,2.638,138,2.717,141,4.314,191,2.355,244,3.31,246,8.017,247,3.583,248,4.219,255,3.877,257,2.593,275,4.634,458,4.399,510,5.933,1213,5.827,1596,9.007,1597,9.868,1598,6.589,1599,9.007,1600,8.44,1601,9.007,1602,9.007]],["keywords/230",[]],["title/231",[137,254.387,139,283.568,636,376.96]],["content/231",[]],["keywords/231",[]],["title/232",[913,468.958]],["content/232",[23,7.879,137,4.212,141,6.888,194,4.47,198,2.823,636,6.242,913,6.297,914,7.095,915,6.955]],["keywords/232",[]],["title/233",[919,463.77,933,480.332]],["content/233",[27,4.527,73,4.109,75,4.016,78,3.063,81,2.842,137,4.206,138,3.117,141,4.95,191,2.703,247,4.111,248,2.601,257,2.975,274,3.574,636,4.485,711,11.072,1438,6.936,1458,6.807,1603,11.322,1604,11.322,1605,11.322,1606,11.322,1607,11.322,1608,11.322]],["keywords/233",[]],["title/234",[139,283.568,636,376.96,638,383.396]],["content/234",[]],["keywords/234",[]],["title/235",[913,468.958]],["content/235",[23,7.879,141,6.888,194,4.47,198,2.823,636,6.242,638,6.348,913,6.297,914,7.095,915,6.955]],["keywords/235",[]],["title/236",[973,420.766]],["content/236",[32,4.853,79,5.978,85,7.099,99,4.173,142,4.853,187,8.159,198,1.95,274,3.436,284,5.057,347,5.642,485,5.619,636,4.312,638,7.737,973,5.114,1075,7.099,1252,6.428,1294,7.661,1435,7.099,1609,15.139,1610,9.935,1611,9.935,1612,9.31,1613,10.885,1614,10.885,1615,10.885]],["keywords/236",[]],["title/237",[919,463.77,933,480.332]],["content/237",[27,4.527,73,4.396,75,4.296,78,3.38,81,3.136,137,3.34,138,3.44,141,5.462,191,4.017,248,2.87,255,4.909,257,3.283,274,3.944,315,5.626,531,8.793,636,4.95,638,5.034,1573,9.366]],["keywords/237",[]],["title/238",[139,343.015,633,705.102]],["content/238",[]],["keywords/238",[]],["title/239",[913,468.958]],["content/239",[23,7.971,141,7.019,194,4.555,198,2.877,633,9.835,913,6.37,914,7.23,915,7.087]],["keywords/239",[]],["title/240",[973,420.766]],["content/240",[3,2.969,10,5.298,13,0.958,27,3.539,32,2.85,36,1.859,73,2.228,75,1.632,78,0.987,79,5.61,81,1.604,93,1.813,137,0.975,138,1.004,141,2.794,191,1.526,198,0.654,221,2.327,244,1.224,246,2.964,247,1.325,248,2.353,255,1.433,257,0.958,274,2.018,275,1.713,286,6.883,306,4.092,312,3.12,313,2.118,315,1.643,340,2.235,379,11.908,441,2.193,458,1.626,465,6.949,510,2.193,588,3.12,633,5.225,638,5.164,708,4.498,888,11.632,929,11.217,939,2.646,941,4.377,973,5.195,1048,2.646,1051,2.019,1165,3.12,1196,3.12,1200,3.33,1213,2.154,1290,2.568,1315,10.013,1452,4.377,1461,2.235,1596,3.33,1598,2.436,1599,3.33,1600,3.12,1601,3.33,1602,3.33,1610,5.834,1616,3.648,1617,3.648,1618,3.648,1619,3.648,1620,3.648,1621,3.648,1622,3.648,1623,3.648,1624,3.648,1625,3.33,1626,3.648,1627,3.648,1628,3.33,1629,3.648,1630,3.648,1631,3.648,1632,2.646,1633,3.648,1634,3.33,1635,3.648,1636,3.33]],["keywords/240",[]],["title/241",[919,463.77,933,480.332]],["content/241",[10,4.768,13,2.753,27,4.79,73,3.892,75,3.804,78,2.835,81,3.74,93,2.973,137,2.802,138,2.885,141,4.582,191,2.501,248,3.982,255,4.117,257,2.753,274,3.308,510,6.3,633,9.127,888,7.6,929,8.514,1598,6.997,1636,9.566,1637,10.48]],["keywords/241",[]],["title/242",[139,241.683,233,361.569,244,272.019,245,326.765]],["content/242",[]],["keywords/242",[]],["title/243",[913,468.958]],["content/243",[23,7.789,141,6.762,194,4.388,198,2.771,233,6.896,244,5.188,245,6.232,913,6.225,914,6.965,915,6.828]],["keywords/243",[]],["title/244",[973,420.766]],["content/244",[32,5.654,36,6.463,79,5.741,142,5.654,198,2.272,284,5.891,347,4.675,586,6.383,898,9.506,973,4.911,1093,7.127,1213,7.489,1252,7.489,1340,10.303,1355,8.468,1638,15.515,1639,11.575,1640,12.682,1641,10.847,1642,10.847,1643,10.847]],["keywords/244",[]],["title/245",[919,463.77,933,480.332]],["content/245",[27,4.842,73,4.204,75,3.652,78,2.048,81,2.937,137,3.128,138,2.084,141,5.116,142,5.217,191,2.793,233,3.375,244,4.798,245,3.05,248,2.688,255,2.974,257,1.989,274,2.39,284,5.436,306,3.024,314,6.15,315,3.409,531,5.327,534,6.15,636,2.999,638,4.715,666,5.184,961,5.89,1104,9.105,1105,9.506,1424,4.394,1573,5.674,1598,5.054,1644,6.909,1645,5.054,1646,6.909]],["keywords/245",[]],["title/246",[139,283.568,142,424.232,143,543.318]],["content/246",[]],["keywords/246",[]],["title/247",[913,468.958]],["content/247",[23,7.879,141,6.888,142,7.024,143,8.996,194,4.47,198,2.823,913,6.297,914,7.095,915,6.955]],["keywords/247",[]],["title/248",[973,420.766]],["content/248",[27,3.6,73,2.172,79,6.13,99,5.812,135,7.111,143,7.179,181,6.755,184,9.424,453,7.589,573,7.111,702,7.111,848,5.304,910,5.852,962,4.47,963,9.424,973,2.402,1015,10.753,1285,6.47,1360,6.755,1381,6.47,1647,14.454,1648,7.589,1649,8.314,1650,8.314,1651,8.314,1652,8.314,1653,8.314,1654,8.314,1655,10.753,1656,7.589,1657,6.755,1658,7.111,1659,8.314,1660,7.589,1661,12.966,1662,10.214,1663,8.314,1664,8.314,1665,6.233]],["keywords/248",[]],["title/249",[919,463.77,933,480.332]],["content/249",[27,4.792,73,4.459,75,2.165,78,2.294,81,2.129,138,2.335,141,5.579,142,5.69,143,4.843,191,3.046,244,2.845,248,1.948,257,2.228,274,2.677,275,3.983,276,4.496,619,3.819,630,4.843,1427,6.6,1572,7.254,1647,10.915,1657,6.89,1666,7.742,1667,7.742,1668,7.742,1669,7.742,1670,7.742,1671,7.254,1672,7.742,1673,7.742,1674,7.742,1675,7.254,1676,7.742,1677,7.742,1678,7.742,1679,7.742,1680,7.254]],["keywords/249",[]],["title/250",[140,862.806,198,206.238]],["content/250",[27,4.809,32,3.375,73,4.545,75,2.987,78,2.048,81,1.9,137,2.024,138,2.084,141,5.116,142,5.217,143,4.322,191,2.793,244,2.539,248,1.739,255,2.974,257,1.989,274,2.39,275,3.555,276,4.013,315,3.409,630,4.322,739,6.15,1415,10.009,1416,6.474,1427,5.89,1572,6.474,1647,10.009,1657,6.15,1666,6.909,1667,6.909,1668,6.909,1669,6.909,1670,6.909,1671,6.474,1672,6.909,1673,6.909,1674,6.909,1675,6.474,1676,6.909,1677,6.909,1678,6.909,1679,6.909,1680,6.474]],["keywords/250",[]],["title/251",[139,241.683,244,272.019,245,326.765,641,506.701]],["content/251",[]],["keywords/251",[]],["title/252",[913,468.958]],["content/252",[23,7.789,141,6.762,194,4.388,198,2.771,244,5.188,245,6.232,641,9.664,913,6.225,914,6.965,915,6.828]],["keywords/252",[]],["title/253",[973,420.766]],["content/253",[10,2.921,13,1.687,16,7.705,27,1.368,32,2.862,36,3.272,79,5.43,83,7.039,97,3.117,99,2.461,142,2.862,143,3.665,194,1.821,198,2.303,233,2.862,235,4.812,269,7.306,284,2.982,286,3.015,305,4.518,307,3.791,327,5.491,351,4.396,361,4.812,451,5.689,467,1.778,472,3.501,473,5.491,491,5.86,494,4.518,568,5.215,585,3.403,586,3.231,609,9.382,618,2.703,711,4.518,812,5.86,819,4.187,832,4.655,898,4.812,909,3.859,928,4.187,962,3.451,973,2.97,985,9.382,1093,3.608,1203,5.491,1213,3.791,1301,5.86,1340,5.215,1355,4.286,1390,5.86,1477,5.491,1641,5.491,1642,5.491,1643,5.491,1681,12.854,1682,6.42,1683,6.42,1684,6.42,1685,6.42,1686,6.42,1687,6.42,1688,6.42,1689,9.382,1690,6.42,1691,6.42,1692,6.42,1693,6.42,1694,6.42,1695,6.42]],["keywords/253",[]],["title/254",[919,463.77,933,480.332]],["content/254",[27,4.804,32,3.5,73,3.823,75,3.736,78,2.124,81,3.021,137,3.217,138,2.162,141,5.262,142,3.5,191,2.873,244,4.909,245,3.163,248,2.764,255,3.084,257,2.063,269,3.903,274,2.478,284,3.647,315,3.536,531,5.525,636,3.11,638,4.849,641,4.905,961,6.109,1104,6.109,1105,6.378,1573,5.885,1598,5.242,1645,5.242,1646,7.166,1696,7.851,1697,7.851,1698,7.166,1699,7.851,1700,7.851,1701,7.851,1702,7.851]],["keywords/254",[]],["title/255",[93,269.948,139,283.568,643,504.446]],["content/255",[]],["keywords/255",[]],["title/256",[913,468.958]],["content/256",[23,7.879,93,4.47,141,6.888,194,4.47,198,2.823,643,8.353,913,6.297,914,7.095,915,6.955]],["keywords/256",[]],["title/257",[973,420.766]],["content/257",[79,5.423,93,4.555,198,2.877,286,7.539,482,7.158,973,4.639,1040,11.642,1703,16.055,1704,16.055,1705,13.732]],["keywords/257",[]],["title/258",[919,463.77,933,480.332]],["content/258",[27,4.867,73,2.954,75,4.013,78,1.96,81,2.839,93,4.46,137,3.024,138,1.995,141,3.167,191,1.729,244,2.43,248,1.664,255,2.846,257,1.903,274,2.287,275,3.402,276,3.841,643,3.841,1040,5.254,1363,6.613,1598,4.838,1628,6.613,1645,4.838,1706,7.245,1707,11.31,1708,11.31,1709,11.31,1710,11.31,1711,7.245,1712,7.245,1713,7.245,1714,7.245,1715,7.245,1716,7.245,1717,7.245,1718,7.245,1719,7.245,1720,7.245,1721,7.245,1722,6.613,1723,7.245,1724,7.245]],["keywords/258",[]],["title/259",[139,283.568,185,534.764,638,383.396]],["content/259",[]],["keywords/259",[]],["title/260",[913,468.958]],["content/260",[23,7.879,141,6.888,185,8.855,194,4.47,198,2.823,638,6.348,913,6.297,914,7.095,915,6.955]],["keywords/260",[]],["title/261",[973,420.766]],["content/261",[3,4.93,16,7.954,139,3.162,208,8.621,281,5.408,313,6.16,365,8.257,373,6.769,855,9.686,888,7.695,973,3.066,1046,7.085,1058,8.621,1169,8.257,1550,9.686,1656,9.686,1725,10.611,1726,10.611,1727,10.611,1728,10.611,1729,9.686,1730,10.611,1731,10.611,1732,10.611,1733,9.076,1734,10.611,1735,10.611,1736,10.611,1737,10.611,1738,10.611,1739,10.611,1740,10.611,1741,10.611,1742,9.076,1743,10.611,1744,10.611,1745,10.611]],["keywords/261",[]],["title/262",[919,463.77,933,480.332]],["content/262",[27,4.573,73,4.485,75,4.384,78,3.483,81,3.232,137,3.442,138,3.545,141,5.629,185,7.236,191,3.073,248,2.957,255,5.058,257,3.383,274,4.064,638,5.188,1746,12.875,1747,12.875]],["keywords/262",[]],["title/263",[139,241.683,244,272.019,245,326.765,647,442.253]],["content/263",[]],["keywords/263",[]],["title/264",[913,468.958]],["content/264",[23,7.789,141,6.762,194,4.388,198,2.771,244,5.188,245,6.232,647,8.435,913,6.225,914,6.965,915,6.828]],["keywords/264",[]],["title/265",[973,420.766]],["content/265",[32,6.425,36,7.345,79,6.243,142,6.425,284,6.695,898,10.803,973,4.164,1093,8.099,1213,8.511,1340,11.708,1355,9.623,1641,12.327,1642,12.327,1643,12.327,1748,11.708]],["keywords/265",[]],["title/266",[919,463.77,933,480.332]],["content/266",[13,1.903,27,4.733,73,3.634,75,3.552,78,1.96,81,2.839,93,2.055,137,3.719,138,1.995,141,4.945,142,3.23,191,2.7,244,5.273,245,2.919,248,2.598,255,2.846,257,1.903,267,6.197,274,2.287,284,3.366,315,3.263,510,4.356,531,5.099,533,6.197,636,2.87,638,4.557,647,6.168,899,6.197,933,3.023,1573,5.431,1598,4.838,1645,4.838,1749,7.245,1750,7.245,1751,7.245,1752,6.613,1753,7.245,1754,6.613,1755,7.245,1756,7.245,1757,7.245,1758,7.245,1759,7.245,1760,7.245]],["keywords/266",[]],["title/267",[93,269.948,139,283.568,217,518.899]],["content/267",[]],["keywords/267",[]],["title/268",[913,468.958]],["content/268",[23,7.879,93,4.47,141,6.888,194,4.47,198,2.823,217,8.592,913,6.297,914,7.095,915,6.955]],["keywords/268",[]],["title/269",[973,420.766]],["content/269",[182,12.735,198,2.932,248,3.759,284,7.603,306,6.538,472,8.925,700,12.735,973,4.728,1468,11.868]],["keywords/269",[]],["title/270",[352,831.54]],["content/270",[27,5.004,81,4.264,194,2.866,217,10.726,244,6.229,352,5.769,666,6.919,675,12.319,676,7.327,677,7.111,700,7.862,1160,8.208,1761,9.223,1762,9.223,1763,9.223]],["keywords/270",[]],["title/271",[217,627.679,347,424.328]],["content/271",[3,4.694,13,2.655,93,5.268,99,7.119,142,4.505,198,1.81,212,6.746,217,7.916,244,4.869,274,5.363,281,5.149,284,4.694,286,6.816,347,5.351,472,5.51,510,6.074,586,5.085,638,5.849,901,6.19,902,7.574,1290,7.111,1764,8.642,1765,14.516,1766,15.506,1767,10.104]],["keywords/271",[]],["title/272",[142,424.232,284,442.056,630,543.318]],["content/272",[4,4.851,10,7.243,11,5.757,79,3.048,80,5.757,88,7.332,142,4.024,194,3.792,198,1.617,216,4.784,217,7.29,221,5.757,248,3.071,284,6.21,306,3.605,352,5.153,362,7.719,465,4.542,566,8.238,638,5.386,848,8.528,890,8.189,910,9.408,942,6.026,973,2.607,1065,7.022,1075,8.718,1087,7.719,1285,7.022,1290,6.352,1318,6.544,1468,6.544,1655,7.719,1768,9.025,1769,9.025,1770,9.025,1771,8.238,1772,9.025,1773,9.025,1774,9.025]],["keywords/272",[]],["title/273",[919,463.77,933,480.332]],["content/273",[27,4.967,73,2.56,75,3.626,78,1.637,81,3.916,93,2.781,137,2.62,138,1.666,141,2.646,191,2.34,198,1.084,217,8.508,244,5.601,248,1.39,255,2.378,257,1.59,274,1.91,275,2.842,276,3.208,315,2.725,638,2.438,666,4.144,675,8.958,676,4.389,677,4.259,700,4.709,1075,3.947,1458,3.638,1459,3.781,1598,4.041,1645,4.041,1761,5.524,1762,5.524,1763,5.524,1775,9.801,1776,6.052,1777,9.801,1778,6.052,1779,6.052,1780,6.052,1781,6.052,1782,6.052,1783,6.052]],["keywords/273",[]],["title/274",[120,435.957,139,241.683,245,326.765,647,442.253]],["content/274",[]],["keywords/274",[]],["title/275",[913,468.958]],["content/275",[23,7.789,120,8.314,141,6.762,194,4.388,198,2.771,245,6.232,647,8.435,913,6.225,914,6.965,915,6.828]],["keywords/275",[]],["title/276",[973,420.766]],["content/276",[1570,15.733]],["keywords/276",[]],["title/277",[919,463.77,933,480.332]],["content/277",[13,2.346,27,4.876,73,3.464,75,3.386,81,3.329,93,2.533,120,4.8,137,3.546,138,2.458,141,3.904,191,2.131,244,4.449,245,3.598,248,3.047,257,2.346,267,7.637,274,2.819,485,6.846,510,5.368,647,4.869,899,7.637,933,3.726,1308,6.948,1598,5.962,1645,5.962,1754,8.151,1784,8.929,1785,8.929,1786,8.151,1787,8.929,1788,8.929]],["keywords/277",[]],["title/278",[80,607.02,82,511.511,495,437.414]],["content/278",[]],["keywords/278",[]],["title/279",[194,326.54,1477,984.48]],["content/279",[]],["keywords/279",[]],["title/280",[1789,1456.318]],["content/280",[3,5.405,7,2.452,13,3.057,82,6.254,137,3.11,198,2.085,285,11.282,306,4.648,347,4.289,495,7.369,539,8.872,571,7.587,716,7.422,746,6.87,807,7.587,808,7.127,928,7.587,1526,10.619,1632,8.437,1790,11.634,1791,10.619,1792,11.634,1793,11.634,1794,11.634,1795,11.634,1796,11.634,1797,10.619]],["keywords/280",[]],["title/281",[306,459.839,791,984.48]],["content/281",[7,1.05,27,1.061,93,1.413,99,4.132,120,2.678,137,3.755,139,4.811,142,4.805,143,6.154,144,2.678,194,1.413,198,0.893,216,2.641,233,6.262,244,5.68,245,5.659,269,2.477,270,3.876,272,4.151,279,3.178,284,3.879,305,11.362,306,5.611,308,8.755,313,2.892,485,2.571,630,4.767,636,6.021,638,4.342,641,3.112,647,4.553,682,3.506,738,7.141,808,3.052,946,3.178,1048,11.021,1051,2.757,1075,3.249,1179,4.261,1196,4.261,1245,3.734,1248,4.261,1404,4.547,1556,4.047,1561,3.326,1564,4.547,1609,4.261,1625,4.547,1698,4.547,1722,4.547,1752,4.547,1786,4.547,1798,4.981,1799,4.547,1800,4.981,1801,4.981,1802,4.981,1803,4.981,1804,4.981,1805,4.981,1806,4.981,1807,4.981,1808,4.981,1809,4.981,1810,4.981,1811,4.981,1812,4.981]],["keywords/281",[]],["title/282",[93,326.54,791,984.48]],["content/282",[3,5.29,93,5.836,99,2.802,136,5.937,139,5.643,142,5.076,143,6.501,185,6.399,196,6.25,217,3.985,247,5.079,248,1.679,280,4.879,286,3.432,307,4.315,313,4.242,314,9.25,363,6.975,633,6.975,638,6.364,643,7.416,682,5.143,766,5.937,786,4.566,801,4.393,837,4.879,904,5.143,1280,5.686,1281,5.686,1661,6.25,1665,5.478,1705,6.25,1766,6.67,1813,7.308,1814,7.308,1815,7.308,1816,7.308,1817,7.308,1818,7.308,1819,7.308,1820,7.308,1821,7.308,1822,7.308,1823,6.25]],["keywords/282",[]],["title/283",[269,572.281,1445,594.142]],["content/283",[0,9.456,7,3.616,8,7.731,93,2.431,94,4.973,96,5.353,97,4.16,99,4.93,102,6.553,105,8.806,198,1.535,231,6.96,233,5.733,325,5.867,352,8.814,751,4.481,770,6.213,779,5.867,853,6.96,912,6.96,928,5.587,1252,9.116,1445,10.632,1452,5.867,1454,8.203,1824,8.567,1825,8.567,1826,6.96,1827,8.567,1828,8.567,1829,8.567,1830,8.567,1831,8.567,1832,8.567]],["keywords/283",[]],["title/284",[94,668.14,96,719.148]],["content/284",[]],["keywords/284",[]],["title/285",[913,468.958]],["content/285",[7,2.987,23,8.157,95,11.026,96,11.424,194,4.02,198,2.539,913,6.519,914,6.381,915,8.072,918,8.681,1833,12.12]],["keywords/285",[]],["title/286",[973,420.766]],["content/286",[3,3.005,7,2.18,13,1.7,36,5.27,58,5.142,79,5.451,93,2.934,94,6.003,96,9.221,99,4.953,205,3.005,234,3.256,269,5.142,286,3.038,294,5.812,300,3.889,306,4.131,441,9.702,451,3.58,468,3.635,482,4.61,483,4.319,485,3.339,500,3.528,512,3.58,579,3.889,586,3.256,607,4.219,770,4.691,796,4.127,958,3.694,962,3.477,973,2.988,1062,3.889,1074,6.335,1089,4.219,1093,5.812,1433,4.219,1435,4.219,1436,4.319,1442,4.849,1443,4.319,1444,4.553,1445,5.338,1446,4.553,1447,4.553,1448,4.553,1449,4.553,1450,7.278,1451,4.553,1453,4.319,1454,4.127,1455,4.219,1826,5.255,1833,5.533,1834,6.469,1835,6.469,1836,6.469,1837,6.469,1838,6.469,1839,6.469]],["keywords/286",[]],["title/287",[919,463.77,933,480.332]],["content/287",[27,4.824,73,3.309,75,3.894,78,2.271,81,2.108,93,3.593,95,6.534,96,5.246,137,2.245,138,2.312,191,3.023,198,1.505,244,2.817,248,1.929,255,3.299,257,2.206,272,4.175,274,2.651,275,3.943,276,4.452,294,4.719,315,3.781,638,3.383,663,6.089,758,4.874,759,11.561,760,6.822,762,7.665,764,7.182,765,7.665,766,6.822,1424,4.874,1458,5.048,1459,5.246,1840,8.397,1841,8.397,1842,8.397,1843,8.397]],["keywords/287",[]],["title/288",[19,892.126]],["content/288",[7,4.219,89,7.603,96,10.225,281,8.34,1460,13.055,1461,10.025,1833,13.998]],["keywords/288",[]],["title/289",[913,468.958]],["content/289",[23,7.879,82,8.47,194,4.47,198,2.823,495,7.243,628,11.089,913,6.297,914,7.095,915,6.955]],["keywords/289",[]],["title/290",[973,420.766]],["content/290",[7,1.824,13,2.274,27,2.76,36,4.411,73,2.261,79,5.824,99,4.968,120,4.653,193,6.488,198,1.551,221,5.521,225,4.407,257,2.274,269,4.303,285,6.091,286,7.293,347,6.357,373,5.521,465,4.356,485,4.468,495,3.979,496,7.403,539,8.596,576,6.091,902,9.713,941,5.927,1040,6.276,1075,8.451,1093,4.864,1844,8.655,1845,8.655,1846,8.655,1847,7.9,1848,8.655,1849,8.655,1850,8.655,1851,8.655,1852,7.403,1853,8.655,1854,8.655]],["keywords/290",[]],["title/291",[919,463.77,933,480.332]],["content/291",[27,4.828,32,2.862,73,4.199,75,4.598,78,2.78,81,3.226,82,5.525,93,3.647,137,2.748,138,2.83,191,3.068,198,1.15,244,2.153,248,2.361,255,4.038,257,2.7,272,3.192,274,3.245,275,3.015,276,3.403,306,2.565,315,2.891,495,6.755,628,7.234,638,2.587,840,10.994,907,4.655,1424,3.726,1458,3.859,1459,4.011,1855,12.854,1856,6.42,1857,6.42,1858,6.42,1859,6.42,1860,6.42]],["keywords/291",[]],["title/292",[97,707.207]],["content/292",[]],["keywords/292",[]],["title/293",[913,468.958]],["content/293",[7,3.038,23,8.222,90,6.768,97,6.999,98,9.399,194,4.089,198,2.582,913,6.571,914,6.49,915,8.16,918,8.829]],["keywords/293",[]],["title/294",[973,420.766]],["content/294",[3,5.276,7,2.394,13,1.408,15,2.665,36,4.523,58,4.413,79,5.897,80,3.42,83,3.671,89,2.49,90,2.517,93,3.222,97,2.603,99,4.354,109,3.42,198,0.961,205,2.49,234,2.698,269,4.413,286,4.168,294,4.988,300,3.223,306,3.546,347,1.976,383,4.171,441,8.795,451,4.912,468,3.013,482,5.063,483,3.579,485,2.767,497,3.42,500,6.193,512,2.967,579,3.223,586,4.467,607,3.496,751,2.804,794,3.579,796,7.245,805,4.171,958,3.061,962,2.882,973,1.549,1062,3.223,1074,5.437,1089,3.496,1093,4.988,1433,3.496,1435,3.496,1436,3.579,1437,4.893,1438,6.957,1439,3.887,1440,3.887,1441,3.887,1442,4.018,1443,3.579,1444,3.773,1445,4.581,1446,3.773,1447,3.773,1448,3.773,1449,3.773,1450,6.246,1451,3.773,1452,3.671,1453,3.579,1454,3.42,1455,3.496,1861,10.366,1862,5.361,1863,5.361,1864,5.361]],["keywords/294",[]],["title/295",[919,463.77,933,480.332]],["content/295",[27,4.925,32,3.899,71,5.703,73,3.411,75,3.99,78,2.365,81,2.195,93,3.704,97,6.341,98,5.703,137,2.338,138,2.408,191,3.117,198,1.567,244,2.933,248,2.009,255,3.436,257,2.297,272,4.348,274,2.761,275,4.106,276,4.636,315,3.938,482,3.899,638,3.523,758,5.076,781,7.479,1424,5.076,1458,5.257,1459,5.464,1487,6.341,1865,7.479]],["keywords/295",[]],["title/296",[19,892.126]],["content/296",[7,4.219,89,7.603,90,7.685,97,7.947,281,8.34,1460,13.055,1461,10.025]],["keywords/296",[]],["title/297",[22,646.87,919,463.77]],["content/297",[4,2.287,10,3.322,22,2.391,27,4.5,32,1.897,71,4.763,73,1.908,75,2.449,79,1.437,81,1.833,93,2.072,97,5.526,98,2.774,99,2.8,138,1.171,144,2.287,189,2.994,191,1.015,198,1.308,211,2.658,212,2.841,221,2.714,225,1.447,244,1.427,248,0.977,257,1.919,269,6.369,272,2.115,274,2.305,275,1.998,276,2.255,284,5.951,286,5.344,300,2.558,306,5.118,307,2.512,340,2.606,347,3.537,352,2.429,451,4.042,462,2.913,465,2.141,481,2.774,482,1.897,487,2.391,500,3.982,638,1.714,758,4.239,781,3.639,895,2.558,946,6.121,948,2.841,971,2.841,973,1.229,1036,2.913,1145,2.913,1217,3.31,1252,4.312,1308,3.31,1318,5.296,1334,3.189,1385,2.994,1424,2.469,1445,5.874,1458,2.558,1459,2.658,1462,3.189,1463,3.085,1464,3.31,1465,5.682,1466,3.31,1468,5.296,1469,3.31,1471,3.31,1472,3.31,1473,3.639,1474,3.639,1475,3.639,1476,3.639,1487,3.085,1538,3.883,1540,3.883,1541,3.883,1542,3.883,1865,3.639,1866,11.38,1867,4.254,1868,4.254]],["keywords/297",[]],["title/298",[643,429.935,786,506.701,801,487.568,837,541.505]],["content/298",[]],["keywords/298",[]],["title/299",[913,468.958]],["content/299",[7,2.756,23,7.844,27,2.785,58,6.5,90,6.139,194,3.709,198,2.343,284,6.074,643,6.931,786,8.169,801,7.86,836,11.182,837,8.73,913,6.269,914,5.888,915,7.658,918,8.009]],["keywords/299",[]],["title/300",[973,420.766]],["content/300",[79,5.423,235,12.035,347,7.293,495,7.38,895,9.652,904,11.299,973,4.639,1245,12.035,1589,14.654]],["keywords/300",[]],["title/301",[919,463.77,933,480.332]],["content/301",[27,4.683,73,3.792,75,4.337,78,2.733,81,3.643,137,2.701,138,2.782,191,2.412,210,6.746,235,7.574,248,2.321,255,3.97,257,2.655,272,5.024,274,4.582,643,5.356,786,6.313,836,8.642,837,6.746,1051,5.592,1245,10.881,1869,10.104,1870,10.104,1871,10.104,1872,10.104,1873,10.104,1874,10.104]],["keywords/301",[]],["title/302",[73,380.414]],["content/302",[13,3.991,15,7.552,279,9.69,465,7.645,786,9.49,837,10.142,905,13.864,1791,13.864,1875,15.189,1876,15.189,1877,19.112,1878,13.864]],["keywords/302",[]],["title/303",[93,269.948,97,462.08,99,364.805]],["content/303",[]],["keywords/303",[]],["title/304",[913,468.958]],["content/304",[7,2.938,23,8.092,90,6.544,93,3.954,97,6.768,98,9.089,99,5.343,194,3.954,198,2.497,913,6.467,914,6.276,915,7.986,918,8.537]],["keywords/304",[]],["title/305",[973,420.766]],["content/305",[3,3.455,7,2.981,10,3.383,15,3.697,36,3.79,58,3.697,79,3.898,89,5.362,90,3.492,93,2.11,97,3.611,99,5.423,205,3.455,248,1.708,258,3.743,306,2.971,347,2.741,376,6.041,468,4.179,497,4.744,512,4.116,579,4.471,585,3.942,586,5.809,794,4.965,796,10.17,950,6.36,958,4.246,962,3.998,973,4.087,1049,5.234,1062,4.471,1074,7.07,1093,4.179,1252,4.391,1290,5.234,1433,4.85,1435,4.85,1436,4.965,1443,4.965,1445,3.839,1454,4.744,1455,4.85,1460,4.85,1861,12.911,1879,7.436,1880,6.788,1881,6.788,1882,7.436,1883,7.436,1884,7.436,1885,6.788,1886,7.436,1887,7.436,1888,7.436,1889,7.436]],["keywords/305",[]],["title/306",[919,463.77,933,480.332]],["content/306",[]],["keywords/306",[]],["title/307",[140,1091.659]],["content/307",[27,4.613,73,4.468,75,4.767,78,2.766,81,3.675,93,2.901,98,6.669,99,3.921,137,2.734,138,2.816,145,12.523,191,2.441,244,3.43,248,2.349,255,4.018,257,2.687,274,3.228,487,5.747,1648,9.334,1890,9.334,1891,10.226,1892,10.226,1893,10.226,1894,10.226,1895,10.226,1896,9.334]],["keywords/307",[]],["title/308",[233,649.28]],["content/308",[27,4.628,73,4.498,75,3.771,78,2.8,81,3.707,93,2.937,98,6.751,99,3.969,137,2.767,138,2.85,145,12.632,191,2.471,244,5.776,248,2.378,255,4.067,256,6.341,257,2.72,274,3.268,467,2.867,487,5.817,677,7.285,1890,9.448,1896,9.448,1897,10.351,1898,10.351]],["keywords/308",[]],["title/309",[8,691.994,105,788.216]],["content/309",[]],["keywords/309",[]],["title/310",[913,468.958]],["content/310",[7,2.987,23,8.157,90,6.654,103,11.026,104,11.512,105,9.704,194,4.02,198,2.539,913,6.519,914,6.381,915,8.072,918,8.681]],["keywords/310",[]],["title/311",[973,420.766]],["content/311",[3,4.352,7,2.506,13,1.504,15,2.846,36,4.774,58,4.657,79,6.053,89,2.659,90,2.688,93,2.657,99,4.558,108,3.576,109,3.651,205,2.659,234,2.881,269,4.657,286,4.399,294,5.264,300,3.441,306,3.742,347,2.11,441,9.111,451,5.184,468,3.217,482,5.301,483,3.822,485,2.955,497,3.651,500,5.108,512,3.168,579,3.441,586,4.714,607,3.733,751,2.994,794,3.822,796,7.585,958,3.268,962,3.077,973,1.654,1062,3.441,1074,5.738,1089,3.733,1093,5.264,1433,3.733,1435,3.733,1436,3.822,1438,7.283,1439,4.151,1440,4.151,1441,4.151,1442,4.291,1443,3.822,1444,4.028,1445,4.835,1446,4.028,1447,4.028,1448,4.028,1449,4.028,1450,6.592,1451,4.028,1452,3.92,1453,3.822,1454,3.651,1455,3.733,1899,11.889,1900,5.724,1901,5.724]],["keywords/311",[]],["title/312",[919,463.77,933,480.332]],["content/312",[27,4.941,73,3.464,75,4.039,78,2.415,81,2.241,93,3.763,103,10.32,104,7.254,105,6.115,137,2.387,138,2.458,191,3.166,198,1.6,244,2.995,248,2.051,255,3.508,257,2.346,272,4.44,274,2.819,275,4.193,276,4.734,315,4.021,638,3.598,758,5.183,928,5.824,1099,6.694,1424,5.183,1458,5.368,1459,5.579,1902,8.929]],["keywords/312",[]],["title/313",[19,892.126]],["content/313",[7,4.219,89,7.603,90,7.685,103,12.735,281,8.34,1460,13.055,1461,10.025]],["keywords/313",[]],["title/314",[19,892.126]],["content/314",[7,4.219,89,7.603,90,7.685,97,7.947,281,8.34,1460,13.055,1461,10.025]],["keywords/314",[]],["title/315",[102,586.582,751,602.006]],["content/315",[]],["keywords/315",[]],["title/316",[913,468.958]],["content/316",[7,2.938,23,8.092,90,6.544,102,9.219,194,3.954,198,2.497,751,7.289,755,10.447,913,6.467,914,6.276,915,7.986,918,8.537]],["keywords/316",[]],["title/317",[973,420.766]],["content/317",[3,3.562,7,2.11,13,1.183,15,2.239,36,5.102,58,3.812,79,4.87,89,2.092,90,2.115,93,2.175,99,3.838,102,2.295,109,2.873,198,1.794,205,2.092,234,2.267,252,3.17,269,3.812,279,2.873,280,3.007,281,2.295,286,3.6,294,5.626,300,2.708,306,3.063,347,1.66,441,8.669,451,5.541,465,2.267,468,2.531,482,5.269,483,5.119,485,3.958,497,2.873,500,4.181,512,2.493,579,2.708,586,3.859,607,2.937,751,7.542,773,3.659,794,3.007,796,6.387,852,4.111,909,2.708,928,2.937,942,3.007,958,2.572,962,2.421,973,3.414,1062,2.708,1074,4.697,1089,2.937,1093,6.642,1147,3.852,1183,9.138,1252,2.659,1397,3.504,1433,2.937,1435,2.937,1436,3.007,1439,3.266,1440,3.266,1441,3.266,1443,3.007,1444,3.17,1445,5.168,1446,3.17,1447,3.17,1448,3.17,1449,3.17,1450,5.396,1451,3.17,1453,3.007,1454,2.873,1455,2.937,1665,3.376,1903,4.504,1904,4.504,1905,4.504,1906,4.504,1907,4.504,1908,4.504,1909,4.504,1910,4.504,1911,4.504,1912,4.504,1913,4.504,1914,4.504,1915,4.504,1916,4.504]],["keywords/317",[]],["title/318",[919,463.77,933,480.332]],["content/318",[27,4.748,32,3.436,73,3.1,75,3.029,78,2.085,81,2.978,93,2.187,100,8.605,102,6.047,137,2.061,138,2.122,191,2.832,194,2.187,198,1.381,231,6.262,248,2.726,255,3.028,257,3.118,274,2.433,294,4.332,315,3.471,347,2.841,482,3.436,510,4.634,751,4.031,755,5.778,758,4.474,760,6.262,764,10.149,847,10.149,884,4.086,1314,6.593,1445,3.979,1483,7.035,1484,10.831,1485,6.262,1486,7.035,1487,5.589,1598,5.147,1645,5.147,1917,7.708,1918,7.708]],["keywords/318",[]],["title/319",[19,892.126]],["content/319",[7,4.17,89,7.459,90,7.539,102,8.182,281,8.182,751,8.397,1460,12.902,1461,9.835]],["keywords/319",[]],["title/320",[22,646.87,919,463.77]],["content/320",[4,2.22,10,3.238,22,2.321,27,4.471,32,3.174,73,1.859,75,2.848,78,1.117,79,1.395,81,1.787,93,2.019,99,1.583,100,8.089,102,2.104,137,1.104,138,1.137,144,2.22,189,2.906,191,1.699,198,1.681,211,2.58,212,2.757,221,2.634,225,1.405,244,1.385,248,0.949,255,1.622,257,1.87,269,6.256,272,2.053,274,2.247,275,1.939,276,2.189,284,5.845,286,5.908,306,5.026,307,2.439,315,1.86,340,2.53,347,3.458,352,2.358,451,3.94,462,2.828,465,2.078,481,2.693,482,1.841,487,2.321,500,5.116,638,1.664,751,6.58,755,3.095,758,4.132,847,3.532,895,2.483,946,5.985,948,2.757,971,2.757,973,1.193,1036,2.828,1145,2.828,1217,3.213,1252,2.439,1318,5.162,1334,3.095,1385,2.906,1424,2.397,1445,5.758,1458,2.483,1459,2.58,1462,3.095,1463,2.995,1464,3.213,1465,5.539,1466,3.213,1468,5.162,1469,3.213,1471,3.213,1472,3.213,1487,5.162,1865,3.532,1919,4.129,1920,4.129,1921,4.129,1922,4.129,1923,4.129,1924,4.129,1925,4.129,1926,4.129,1927,4.129]],["keywords/320",[]],["title/321",[194,269.948,1928,951.54,1929,951.54]],["content/321",[]],["keywords/321",[]],["title/322",[1355,635.351,1930,773.027,1931,813.863]],["content/322",[0,2.73,7,2.776,13,3.46,14,6.632,94,4.411,120,4.084,137,3.521,139,1.328,191,1.064,194,4.773,197,2.504,198,0.798,216,4.028,234,2.243,248,1.024,257,1.996,258,2.243,280,2.975,336,2.395,347,2.801,352,2.544,363,2.73,367,4.067,388,4.847,493,6.499,495,2.048,511,3.052,539,7.936,582,6.173,586,2.243,603,4.067,605,6.935,616,2.906,620,2.587,686,2.587,693,3.052,708,5.348,805,3.467,807,2.906,851,4.067,884,2.362,963,5.696,965,4.067,969,3.136,1032,3.231,1033,3.811,1057,5.912,1145,3.052,1162,3.34,1169,3.467,1248,3.811,1315,3.231,1392,5.912,1411,4.067,1496,3.62,1611,4.067,1658,3.811,1705,3.811,1932,4.456,1933,4.456,1934,4.456,1935,4.456,1936,4.456,1937,9.933,1938,4.456,1939,4.456,1940,4.456,1941,4.456,1942,4.456,1943,4.456,1944,4.456,1945,7.598,1946,4.456,1947,10.712,1948,6.935,1949,6.935,1950,6.935,1951,7.598,1952,7.598,1953,7.598,1954,4.456,1955,4.456,1956,4.456,1957,4.456,1958,4.456,1959,4.456,1960,7.598,1961,4.067,1962,4.456,1963,6.935,1964,4.456,1965,4.456,1966,4.456]],["keywords/322",[]],["title/323",[1355,635.351,1930,773.027,1967,813.863]],["content/323",[7,3.755,13,4.055,22,3.937,85,4.568,102,5.614,144,7.318,194,1.987,248,1.609,316,4.291,336,3.766,347,5.689,363,6.748,465,3.526,482,3.123,495,3.22,500,3.82,539,7.534,622,3.483,716,4.469,726,4.469,746,8.039,751,3.664,779,4.797,853,5.691,942,4.677,945,5.991,946,4.469,963,5.251,1032,5.08,1036,7.543,1037,5.991,1038,8.949,1046,4.677,1047,4.797,1049,7.752,1051,6.096,1052,11.059,1065,5.451,1154,5.691,1235,6.394,1252,9.113,1500,6.394,1878,6.394,1968,7.005,1969,7.005,1970,7.005,1971,7.005,1972,7.005,1973,7.005,1974,7.005]],["keywords/323",[]],["title/324",[1355,768.544,1975,862.806]],["content/324",[0,4.342,5,2.892,7,1.494,13,2.456,16,3.08,27,0.875,76,5.313,83,2.814,93,2.652,97,1.996,99,1.575,102,2.094,137,2.499,139,2.112,144,2.209,151,3.515,191,2.654,193,3.08,194,4.942,198,1.27,199,3.515,200,3.08,201,3.338,215,5.516,216,4.955,217,3.865,233,4.167,244,2.378,245,1.656,247,1.492,248,0.944,269,2.043,274,2.238,276,2.179,280,2.744,284,1.909,305,2.892,306,1.642,308,5.759,347,2.613,363,2.517,369,3.751,454,5.759,459,3.515,495,1.889,511,2.814,539,3.923,582,3.338,591,2.568,620,4.115,622,2.043,651,2.427,728,3.515,770,2.98,796,2.622,801,2.471,848,2.622,946,2.622,957,3.198,967,3.751,1022,3.338,1033,3.515,1044,3.751,1046,2.744,1047,2.814,1049,4.989,1166,3.515,1278,3.338,1286,3.751,1385,2.892,1445,2.121,1455,4.623,1501,3.751,1660,3.751,1733,3.515,1771,3.751,1797,3.751,1826,3.338,1947,6.47,1948,3.751,1949,3.751,1950,3.751,1961,6.47,1963,3.751,1976,7.088,1977,4.109,1978,4.109,1979,4.109,1980,4.109,1981,4.109,1982,4.109,1983,4.109,1984,3.515,1985,4.109,1986,4.109,1987,4.109,1988,4.109,1989,4.109,1990,4.109,1991,4.109,1992,7.088,1993,4.109,1994,4.109,1995,4.109,1996,4.109,1997,4.109,1998,4.109,1999,4.109,2000,4.109,2001,4.109,2002,4.109,2003,4.109,2004,4.109,2005,4.109,2006,4.109,2007,4.109,2008,4.109,2009,3.751,2010,4.109,2011,4.109]],["keywords/324",[]],["title/325",[106,875.54]],["content/325",[]],["keywords/325",[]],["title/326",[913,468.958]],["content/326",[7,3.038,23,8.222,90,6.768,106,8.664,107,10.451,194,4.089,198,2.582,913,6.571,914,6.49,915,8.16,918,8.829]],["keywords/326",[]],["title/327",[973,420.766]],["content/327",[3,3.841,7,2.639,13,1.294,15,2.448,36,4.213,58,5.313,79,4.713,89,2.287,90,2.312,93,2.345,99,4.097,106,2.96,109,3.141,205,2.287,234,2.478,269,4.11,284,2.287,286,3.882,294,4.646,300,2.96,306,4.269,347,1.815,370,3.57,441,8.388,451,4.576,468,2.767,482,4.764,483,3.287,485,2.541,497,3.141,500,4.508,512,2.725,574,3.691,579,2.96,586,4.161,607,3.211,770,5.995,794,3.287,796,3.141,958,2.811,962,2.647,973,3.617,1046,5.52,1047,5.661,1048,3.57,1062,2.96,1074,5.064,1089,3.211,1093,4.646,1252,4.882,1433,3.211,1435,3.211,1436,3.287,1439,3.57,1440,3.57,1441,3.57,1443,3.287,1444,3.465,1445,4.267,1446,3.465,1447,3.465,1448,3.465,1449,3.465,1450,5.818,1451,3.465,1453,3.287,1454,3.141,1455,3.211,1463,3.57,1485,4,1574,4.211,1826,6.716,2012,10.686,2013,4.923,2014,4.923,2015,4.923,2016,4.923,2017,4.923,2018,4.923,2019,4.923,2020,4.494,2021,4.923,2022,4.923,2023,4.923,2024,4.923,2025,4.923,2026,4.923]],["keywords/327",[]],["title/328",[919,463.77,933,480.332]],["content/328",[27,4.937,32,1.976,73,3.43,75,3.352,78,2.046,79,3.95,81,2.935,99,2.9,106,9.18,107,5.485,120,4.066,137,2.022,138,2.083,191,2.792,194,1.258,198,1.773,248,1.738,255,2.972,257,1.987,269,3.761,274,2.388,306,3.022,315,3.406,455,5.485,456,3.323,465,5.886,481,2.891,482,3.372,486,3.791,487,2.491,602,5.485,751,2.318,758,5.743,940,5.886,974,5.67,1397,3.449,1445,2.288,1487,3.214,2027,9.031,2028,9.031,2029,7.564,2030,9.031,2031,6.904,2032,7.564,2033,4.046,2034,4.433,2035,4.046,2036,4.046,2037,4.046]],["keywords/328",[]],["title/329",[19,892.126]],["content/329",[7,4.219,89,7.603,90,7.685,106,9.839,281,8.34,1460,13.055,1461,10.025]],["keywords/329",[]],["title/330",[22,646.87,919,463.77]],["content/330",[4,2.087,10,3.07,22,2.182,27,4.541,73,2.338,75,2.285,78,1.05,79,1.311,81,2.247,99,1.489,106,7.282,107,2.816,120,2.087,137,1.038,138,1.069,144,2.087,189,2.733,191,1.611,194,1.102,198,1.604,211,2.426,212,2.593,221,2.477,225,1.321,233,1.731,248,0.892,255,1.525,257,1.773,269,4.45,274,2.13,284,6.631,286,7.44,306,2.696,307,2.293,315,1.749,340,2.379,347,3.3,451,3.735,455,2.816,456,2.911,462,2.659,465,4.505,481,2.532,487,2.182,500,3.68,586,4.505,711,6.3,751,2.031,758,3.917,895,2.334,940,3.021,946,5.71,948,2.593,971,2.593,973,1.122,974,2.911,1145,2.659,1217,3.021,1252,7.846,1318,4.894,1334,2.911,1385,2.733,1397,3.021,1445,5.521,1462,2.911,1463,2.816,1464,3.021,1465,5.251,1466,3.021,1468,4.894,1469,3.021,1471,3.021,1472,3.021,2027,3.544,2028,3.544,2030,6.16,2031,3.544,2035,3.544,2036,3.544,2037,3.544,2038,10.696,2039,3.883,2040,3.883,2041,3.883,2042,3.883,2043,3.883,2044,3.883,2045,3.883]],["keywords/330",[]],["title/331",[108,909.897]],["content/331",[]],["keywords/331",[]],["title/332",[913,468.958]],["content/332",[7,3.038,23,8.222,90,6.768,108,9.004,109,9.194,194,4.089,198,2.582,913,6.571,914,6.49,915,8.16,918,8.829]],["keywords/332",[]],["title/333",[973,420.766]],["content/333",[3,2.677,7,2.518,13,1.514,15,2.865,36,4.8,58,4.683,79,5.137,89,2.677,90,2.706,93,2.672,99,4.58,108,3.601,184,4.32,185,3.239,205,2.677,223,4.929,234,2.9,269,4.683,286,2.706,294,5.294,300,3.465,306,3.763,347,2.125,441,9.143,451,3.19,468,3.239,482,4.199,483,3.848,485,2.975,497,3.676,500,3.143,512,3.19,576,4.056,579,3.465,585,3.055,586,4.741,607,3.758,618,2.427,794,3.848,796,7.62,958,3.291,962,3.098,973,3.451,1062,3.465,1074,5.77,1089,3.758,1093,5.294,1280,4.484,1281,4.484,1302,5.26,1433,3.758,1435,3.758,1436,3.848,1441,4.179,1442,4.32,1443,3.848,1444,4.056,1445,4.862,1446,4.056,1447,4.056,1448,4.056,1449,4.056,1450,6.629,1451,4.056,1452,3.946,1453,3.848,1454,3.676,1455,3.758,1880,5.26,2046,11.945,2047,5.763,2048,5.763,2049,5.763,2050,5.26]],["keywords/333",[]],["title/334",[919,463.77,933,480.332]],["content/334",[27,4.961,73,3.437,75,4.014,78,2.39,81,2.218,93,3.733,108,8.222,109,5.637,137,2.362,138,2.433,191,3.141,198,1.583,244,2.964,248,2.03,255,3.471,257,2.321,272,4.393,274,2.789,275,4.149,276,4.684,315,3.979,638,3.56,758,5.129,769,8.065,973,2.553,1424,5.129,1458,5.312,1459,5.521,2051,8.836,2052,8.836]],["keywords/334",[]],["title/335",[19,892.126]],["content/335",[7,4.219,89,7.603,90,7.685,108,10.225,281,8.34,1460,13.055,1461,10.025]],["keywords/335",[]],["title/336",[651,859.992]],["content/336",[]],["keywords/336",[]],["title/337",[913,468.958]],["content/337",[23,8.065,194,4.643,198,2.932,913,6.446,914,7.37,915,7.225,2053,14.938]],["keywords/337",[]],["title/338",[973,420.766]],["content/338",[3,5.638,32,5.41,36,6.184,76,9.097,79,4.099,99,6.326,137,5.378,274,3.831,285,8.541,307,7.166,318,8.31,347,6.083,382,8.541,651,9.743,874,9.859,887,11.077,890,7.434,969,8.541,1075,7.914,1252,7.166,2054,11.077]],["keywords/338",[]],["title/339",[919,463.77,933,480.332]],["content/339",[27,4.905,32,4.731,75,5.117,78,2.87,81,3.773,137,4.019,191,3.588,241,9.076,248,2.438,255,4.169,257,2.788,315,4.779,651,6.266,2054,13.721,2055,10.611,2056,10.611,2057,10.611,2058,10.611]],["keywords/339",[]],["title/340",[233,361.569,244,272.019,245,326.765,2059,517.359]],["content/340",[]],["keywords/340",[]],["title/341",[913,468.958]],["content/341",[23,7.879,92,10.52,194,4.47,198,2.823,233,7.024,244,5.285,245,6.348,913,6.297,915,6.955]],["keywords/341",[]],["title/342",[973,420.766]],["content/342",[79,5.423,198,2.877,244,5.385,347,5.919,586,8.08,1252,9.481,1438,9.835,1638,18.057,1639,14.654]],["keywords/342",[]],["title/343",[919,463.77,933,480.332]],["content/343",[27,4.21,73,4.791,75,4.093,78,3.147,81,2.92,92,10.703,93,3.301,137,3.11,138,3.203,191,3.826,233,5.187,244,3.902,245,4.688,248,2.672,255,4.571,274,3.673,315,5.239,683,10.619,684,9.951,696,10.619,697,9.951,2060,11.634]],["keywords/343",[]],["title/344",[93,326.54,2059,734.275]],["content/344",[]],["keywords/344",[]],["title/345",[913,468.958]],["content/345",[7,2.987,23,8.157,90,6.654,91,11.026,92,9.462,93,4.02,194,4.02,198,2.539,913,6.519,914,6.381,915,8.072,918,8.681]],["keywords/345",[]],["title/346",[973,420.766]],["content/346",[3,7.953,7,2.949,13,1.92,15,3.633,36,3.724,58,3.633,79,5.782,89,3.395,90,3.432,91,5.686,93,2.073,99,4.365,109,4.662,198,1.309,205,3.395,286,3.432,306,2.92,347,2.694,451,4.045,468,4.107,482,3.258,497,4.662,500,3.985,512,4.045,579,4.393,586,5.731,751,3.822,794,4.879,796,8.924,890,4.477,950,6.25,958,4.173,962,3.928,973,2.111,1062,4.393,1074,6.975,1093,4.107,1149,5.937,1433,4.766,1435,4.766,1436,4.879,1438,8.569,1439,5.299,1440,5.299,1443,4.879,1454,4.662,1455,4.766,1881,6.67,2061,11.386,2062,7.308,2063,7.308,2064,7.308,2065,7.308,2066,7.308,2067,7.308]],["keywords/346",[]],["title/347",[919,463.77,933,480.332]],["content/347",[]],["keywords/347",[]],["title/348",[234,579.301,616,750.664]],["content/348",[27,4.245,73,4.675,75,3.5,78,3.709,81,3.441,92,9.155,93,3.89,138,3.775,191,3.273,248,3.149,257,3.602,272,6.817,274,4.328,1308,10.668,2068,12.514,2069,13.71]],["keywords/348",[]],["title/349",[340,892.126]],["content/349",[27,4.905,73,3.927,75,3.838,78,2.87,81,2.663,92,7.085,93,3.01,137,2.837,138,2.922,191,3.588,198,1.901,248,2.438,255,4.169,257,2.788,269,5.276,272,5.276,274,3.35,315,4.779,1485,8.621,1823,9.076,2068,13.721,2070,10.611]],["keywords/349",[]],["title/350",[19,892.126]],["content/350",[7,4.219,89,7.603,90,7.685,91,12.735,281,8.34,1460,13.055,1461,10.025]],["keywords/350",[]],["title/351",[686,668.14,2059,734.275]],["content/351",[]],["keywords/351",[]],["title/352",[913,468.958]],["content/352",[23,8.065,92,10.927,194,4.643,198,2.932,686,9.5,913,6.446,915,7.225]],["keywords/352",[]],["title/353",[973,420.766]],["content/353",[0,8.189,7,1.902,58,7.916,85,5.886,99,3.46,194,5.584,247,4.854,248,2.073,255,5.252,257,2.371,286,4.238,313,7.76,347,4.928,383,7.022,457,3.766,466,8.238,468,5.072,482,4.024,510,5.426,583,7.332,686,7.76,691,8.238,693,10.903,694,7.719,695,7.719,843,12.87,884,4.784,941,6.18,962,4.851,1645,6.026,2071,9.025,2072,8.238]],["keywords/353",[]],["title/354",[919,463.77,933,480.332]],["content/354",[0,7.32,27,4.864,73,4.265,75,4.168,78,2.104,81,2.999,92,7.979,93,2.207,138,2.142,191,3.897,248,3.342,249,5.327,257,3.14,274,3.772,619,5.381,649,5.475,684,6.653,685,7.1,686,4.515,687,10.907,689,10.907,693,5.327,694,10.221,695,10.221,697,6.653,698,7.1,2073,10.907]],["keywords/354",[]],["title/355",[139,343.015,686,668.14]],["content/355",[]],["keywords/355",[]],["title/356",[913,468.958]],["content/356",[23,7.971,141,7.019,194,4.555,198,2.877,686,9.319,913,6.37,914,7.23,915,7.087]],["keywords/356",[]],["title/357",[973,420.766]],["content/357",[0,4.327,3,5.151,6,6.041,7,1.489,27,1.505,58,8.376,85,4.607,99,2.708,120,5.96,194,5.072,198,1.987,205,3.281,234,3.555,247,2.565,248,1.623,255,4.356,257,1.856,286,5.207,313,6.436,316,4.327,347,4.087,370,5.122,379,5.738,383,5.496,468,3.97,501,5.122,510,4.247,583,5.738,586,3.555,616,4.607,686,6.436,693,7.593,708,7.803,710,5.738,832,5.122,843,10.617,884,3.745,941,4.837,962,3.797,973,2.041,1048,5.122,1189,6.447,1290,4.971,1645,4.716,2072,6.447,2074,7.063,2075,7.063,2076,7.063,2077,7.063,2078,7.063,2079,7.063,2080,7.063,2081,7.063,2082,7.063,2083,7.063]],["keywords/357",[]],["title/358",[919,463.77,933,480.332]],["content/358",[27,4.955,73,3.614,75,3.995,78,1.943,81,2.82,120,6.039,138,1.978,141,3.141,191,3.735,244,3.768,248,3.178,249,4.919,257,2.952,274,3.547,275,5.276,276,5.956,531,5.056,619,5.059,649,5.056,686,4.17,693,4.919,703,6.557,704,10.255,707,10.255,708,7.907,709,6.557,710,5.836,711,5.056,712,6.557,2073,10.255]],["keywords/358",[]],["title/359",[27,172.768,1975,607.92,2084,607.92,2085,740.247]],["content/359",[]],["keywords/359",[]],["title/360",[20,690.024,349,740.421,1036,651.613]],["content/360",[10,2.658,13,1.535,15,2.905,16,4.38,20,8.745,23,2.354,81,5.387,98,3.81,137,2.547,138,1.609,141,8.169,142,2.605,191,2.274,194,3.946,195,5.333,198,1.047,233,4.247,238,6.076,244,4.045,247,2.121,258,4.794,280,3.901,347,2.154,349,4.546,365,4.546,370,4.237,382,4.112,482,2.605,571,3.81,590,6.704,638,2.354,643,3.097,647,3.186,755,4.38,773,4.746,808,3.579,813,4.746,891,7.738,913,1.881,1206,4.38,1355,3.901,1461,3.579,1502,5.333,1975,4.38,2053,5.333,2086,5.843,2087,5.843,2088,5.333,2089,5.843,2090,5.843,2091,5.843,2092,5.843,2093,5.843,2094,5.843,2095,5.843,2096,5.843,2097,5.843,2098,5.843,2099,5.843,2100,5.843,2101,5.843,2102,5.843,2103,5.843,2104,5.843]],["keywords/360",[]],["title/361",[139,210.579,636,439.371,638,446.873]],["content/361",[2,5.574,18,5.234,20,5.393,85,9.225,136,6.041,139,4.751,191,3.805,194,2.11,197,4.179,200,5.574,201,6.041,238,7.363,278,6.041,336,3.998,338,6.788,341,6.788,361,5.574,372,4.85,382,5.234,458,5.146,467,2.06,482,5.146,485,5.958,585,3.942,636,2.946,638,5.699,682,8.123,819,4.85,832,5.393,901,7.07,909,6.939,928,4.85,946,4.744,1263,10.535,1355,4.965,1569,6.041,1573,5.574,1574,6.36,1609,6.36,1612,9.872,1742,6.36,1975,8.652,2085,6.788,2105,11.542,2106,6.788,2107,7.436,2108,7.436,2109,7.436,2110,7.436,2111,7.436]],["keywords/361",[]],["title/362",[18,486.029,27,84.942,288,280.62,584,423.046,585,211.379,1360,323.923,1427,310.26,2112,398.726,2113,363.945]],["content/362",[7,2.452,13,3.057,18,12.908,191,3.826,288,8.188,458,5.187,585,9.723,891,9.451,1329,10.619,1353,10.619,1355,13.197,1360,9.451,1379,7.768,1975,12.016,2113,10.619,2114,11.634,2115,11.634,2116,11.634,2117,11.634,2118,11.634,2119,10.619]],["keywords/362",[]],["title/363",[216,772.047]],["content/363",[]],["keywords/363",[]],["title/364",[913,468.958]],["content/364",[23,8.029,27,2.921,146,8.942,194,3.89,198,2.457,249,9.389,388,8.746,913,6.416,914,6.174,915,7.901,918,8.399,973,3.961,1632,9.942,2120,11.727]],["keywords/364",[]],["title/365",[973,420.766]],["content/365",[10,2.64,13,3.153,21,9.75,27,1.236,32,2.587,79,5.835,80,6.042,82,3.119,93,2.687,99,2.225,146,3.784,183,5.296,184,4.35,193,4.35,198,2.15,205,2.696,212,3.874,216,9.158,233,2.587,247,2.107,248,1.333,258,2.92,283,6.486,286,2.725,310,5.918,313,3.368,316,3.555,347,4.425,383,4.515,388,7.656,511,3.973,512,3.211,585,3.076,654,4.084,662,3.784,907,4.208,910,4.084,929,4.714,945,4.963,962,3.119,973,1.676,1062,3.488,1093,3.261,1250,4.35,1285,4.515,1315,4.208,1438,7.352,1453,3.874,1561,6.324,1594,4.963,1662,4.714,1764,8.101,2119,5.296,2121,5.296,2122,5.802,2123,5.802,2124,4.963,2125,5.802,2126,5.802,2127,4.515,2128,5.802,2129,5.802,2130,7.695,2131,5.802,2132,5.802,2133,5.802,2134,5.802,2135,5.802,2136,5.802,2137,5.296,2138,5.802,2139,5.802]],["keywords/365",[]],["title/366",[250,1091.659]],["content/366",[27,2.99,32,7.376,58,4.794,76,7.228,79,5.588,85,9.152,99,5.38,146,6.289,198,1.728,208,7.834,233,6.257,247,3.501,272,4.794,283,11.33,388,12.855,579,5.797,586,4.853,808,5.907,941,6.603,973,2.786,1022,7.834,1438,5.907,2124,8.248,2127,7.503,2140,9.643,2141,9.643,2142,9.643,2143,9.643,2144,9.643,2145,9.643]],["keywords/366",[]],["title/367",[2146,1183.107]],["content/367",[10,5.769,58,6.305,79,4.283,83,11.64,85,8.271,142,5.654,146,11.085,272,6.305,281,6.463,286,5.955,388,8.09,585,6.723,910,8.925,1035,9.506,1237,11.575,1561,8.468,2130,10.303,2147,12.682,2148,15.576,2149,12.682]],["keywords/367",[]],["title/368",[919,463.77,933,480.332]],["content/368",[11,1.758,27,4.926,58,4.149,73,3.668,75,3.585,78,1.842,81,2.422,85,1.797,93,2.368,99,4.505,137,3.141,138,1.875,141,1.205,187,2.066,188,1.998,191,2.572,194,0.782,198,1.22,216,8.055,225,2.316,233,1.229,244,4.71,245,1.11,248,2.217,249,4.664,250,6.256,251,5.3,255,2.676,257,1.789,258,1.387,269,1.37,274,2.15,275,2.338,283,3.41,284,6.805,285,6.792,286,3.919,300,1.657,305,1.94,309,2.515,310,4.255,311,2.515,315,3.067,376,2.239,485,2.57,534,2.239,586,1.387,654,3.504,904,3.504,961,2.144,962,1.481,966,4.545,973,0.796,1104,5.3,1421,2.066,1424,1.6,1634,2.515,1644,2.515,1645,1.84,2150,2.756,2151,4.979,2152,4.979,2153,2.756,2154,2.756,2155,2.756,2156,6.811,2157,2.756,2158,2.756,2159,2.357]],["keywords/368",[]],["title/369",[146,528.906,225,275.84,1285,631.055,1632,588.102]],["content/369",[19,5.191,27,4.63,32,5.686,73,3.706,75,2.164,78,1.372,79,2.862,81,1.273,83,8.734,137,1.356,138,1.396,146,3.307,191,2.023,198,1.956,208,6.885,216,6.761,225,1.725,232,3.677,247,3.077,248,1.165,249,3.473,255,1.992,257,1.332,258,2.552,274,1.601,284,3.937,294,6.135,310,5.295,315,2.284,316,3.107,388,9.05,510,5.095,591,3.168,662,5.527,664,5.658,808,5.191,884,2.688,941,5.803,1051,2.807,1381,3.946,1561,3.386,1662,4.12,1733,4.337,2120,4.337,2130,10.361,2148,4.12,2160,5.071,2161,5.071,2162,5.071,2163,5.071,2164,5.071,2165,8.474,2166,8.474,2167,5.071,2168,5.071,2169,8.474,2170,5.071,2171,5.071,2172,5.071,2173,5.071,2174,5.071,2175,5.071,2176,5.071]],["keywords/369",[]],["title/370",[146,528.906,205,376.761,511,555.365,512,448.849]],["content/370",[27,4.833,73,4.782,75,4.358,78,2.294,81,2.129,137,2.267,138,2.335,191,3.046,198,1.52,216,6.766,248,1.948,249,5.808,250,6.358,251,6.6,255,3.332,257,2.228,274,2.677,310,7.974,315,3.819,662,8.323,664,8.521,1561,5.663,2146,6.89,2159,7.254,2177,7.742,2178,7.742,2179,7.742,2180,12.762,2181,8.481,2182,8.481]],["keywords/370",[]],["title/371",[79,211.451,146,408.291,205,290.842,272,311.267,511,428.716,512,346.491]],["content/371",[27,4.853,73,4.986,75,3.21,78,2.249,81,2.087,137,2.223,138,2.289,191,3.001,198,2.253,216,6.665,248,1.91,249,5.694,250,6.233,251,6.47,255,3.267,257,2.184,274,2.625,310,7.855,315,3.744,388,8.02,662,8.199,664,8.394,1561,5.552,2127,9.783,2146,6.755,2148,6.755,2159,7.111,2177,7.589,2178,7.589,2179,7.589]],["keywords/371",[]],["title/372",[27,172.768,1930,658.845,1975,607.92,2084,607.92]],["content/372",[]],["keywords/372",[]],["title/373",[238,929.036]],["content/373",[93,4.82,188,7.327,194,5.58,247,6.168,248,2.321,274,4.582,373,9.26,458,6.472,468,9.547,585,7.695,806,8.642,843,9.94,896,9.069,969,7.111,1213,8.572,2183,10.104,2184,14.516,2185,10.104,2186,10.104,2187,10.104,2188,8.642,2189,8.642,2190,10.104]],["keywords/373",[]],["title/374",[194,413.152]],["content/374",[]],["keywords/374",[]],["title/375",[441,875.54]],["content/375",[4,3.207,27,4.942,75,4.649,79,3.273,81,4.164,93,3.471,137,1.595,198,1.069,256,9.487,258,3.003,274,3.059,306,3.871,340,3.655,465,4.876,482,4.32,487,6.875,499,7.026,884,3.163,907,4.327,919,2.404,970,5.103,971,3.984,973,1.724,974,7.263,975,8.287,976,5.103,980,8.287,1368,3.806,2191,5.446,2192,5.966,2193,5.966,2194,5.966,2195,5.966,2196,5.966,2197,9.689,2198,5.966,2199,5.966,2200,5.966,2201,5.966,2202,5.966]],["keywords/375",[]],["title/376",[27,172.768,1930,658.845,1967,693.649,2084,607.92]],["content/376",[]],["keywords/376",[]],["title/377",[467,318.793,2203,984.48]],["content/377",[27,3.895,198,2.539,226,9.241,247,6.639,257,3.723,458,6.318,584,8.681,682,12.869,1250,10.622,1662,11.512,2204,14.17,2205,14.17,2206,14.17,2207,14.17]],["keywords/377",[]],["title/378",[238,929.036]],["content/378",[3,2.624,10,5.359,11,3.603,13,2.434,15,2.808,27,2.509,79,3.129,81,1.417,93,3.342,191,1.348,194,3.866,198,2.111,211,3.528,247,3.364,248,1.297,255,2.219,274,2.925,279,3.603,302,4.588,313,5.378,332,6.042,347,2.082,451,3.126,457,2.357,458,4.13,459,4.83,465,2.842,467,3.775,468,6.62,574,4.233,583,4.588,584,5.675,585,2.994,586,2.842,599,4.83,708,3.975,731,5.155,832,4.095,843,3.867,848,3.603,884,2.994,890,3.459,896,5.788,958,5.29,978,4.588,1001,5.155,1038,4.588,1051,3.126,1145,3.867,1213,5.471,1290,3.975,1294,3.975,1392,7.209,1396,4.83,1463,4.095,1496,4.588,1578,4.172,1632,4.095,2088,5.155,2188,4.83,2189,4.83,2208,5.155,2209,5.647,2210,5.647,2211,5.647,2212,5.647,2213,5.647,2214,5.647,2215,5.647,2216,5.647,2217,5.647,2218,5.647,2219,5.647,2220,5.647,2221,5.647,2222,5.647,2223,5.647,2224,5.647]],["keywords/378",[]],["title/379",[144,782.861]],["content/379",[3,5.48,14,7.877,27,2.513,93,3.347,247,4.283,248,2.71,274,3.724,306,4.713,330,10.767,455,8.554,467,3.267,576,8.302,584,9.914,939,8.554,941,8.078,1046,7.877,1047,8.078,1250,8.843,1438,7.226,1547,8.843,1578,7.288,1665,8.843,1764,10.09,2225,11.796,2226,11.796,2227,11.796,2228,11.796]],["keywords/379",[]],["title/380",[194,413.152]],["content/380",[]],["keywords/380",[]],["title/381",[716,734.275,746,679.705]],["content/381",[467,5.364]],["keywords/381",[]],["title/382",[137,216.812,571,528.906,807,528.906,808,496.804]],["content/382",[467,5.364]],["keywords/382",[]],["title/383",[247,417.935,495,529.112]],["content/383",[467,5.364]],["keywords/383",[]],["title/384",[137,307.717,636,455.985]],["content/384",[7,3.589,184,12.762,187,12.762,281,8.676,585,9.026,594,13.248,2229,17.025]],["keywords/384",[]],["title/385",[139,283.568,142,424.232,143,543.318]],["content/385",[93,4.643,244,5.489,458,7.296,1657,13.295,1661,13.998,1665,12.268,1680,13.998,2230,16.366,2231,16.366]],["keywords/385",[]],["title/386",[139,283.568,142,424.232,630,543.318]],["content/386",[10,7.746,198,3.051,281,8.676,1253,13.831,1561,11.368,1594,14.562,2232,17.025]],["keywords/386",[]],["title/387",[139,343.015,633,705.102]],["content/387",[93,4.643,184,12.268,247,5.942,594,12.735,896,10.225,1294,11.518,2233,13.998,2234,16.366,2235,12.735]],["keywords/387",[]],["title/388",[139,283.568,247,345.504,248,218.575]],["content/388",[10,6.67,93,4.16,194,4.16,198,2.627,274,4.629,584,8.982,843,10.04,848,9.353,895,8.815,896,9.161,1038,11.911,1379,9.79,2188,12.541,2189,12.541,2208,13.383]],["keywords/388",[]],["title/389",[137,254.387,139,283.568,636,376.96]],["content/389",[137,4.212,139,4.695,247,5.721,467,4.364,584,9.652,973,4.552,1213,9.304,1379,10.52,1578,7.095,2236,15.755,2237,15.755]],["keywords/389",[]],["title/390",[139,283.568,636,376.96,638,383.396]],["content/390",[3,7.909,467,4.715,638,6.86,1294,11.982,1578,7.667,1612,14.562,2238,17.025]],["keywords/390",[]],["title/391",[139,241.683,233,361.569,244,272.019,245,326.765]],["content/391",[467,5.364]],["keywords/391",[]],["title/392",[139,241.683,244,272.019,245,326.765,641,506.701]],["content/392",[79,5.637,467,5.611,1427,12.986,1556,13.558,1578,7.516,1675,14.274,2239,16.689]],["keywords/392",[]],["title/393",[93,269.948,139,283.568,643,504.446]],["content/393",[467,5.364]],["keywords/393",[]],["title/394",[93,269.948,139,283.568,217,518.899]],["content/394",[79,5.13,93,4.309,247,5.515,313,8.817,339,12.991,594,11.819,700,11.819,973,4.388,1294,10.69,1578,6.84,2233,12.991,2240,15.189,2241,15.189]],["keywords/394",[]],["title/395",[139,343.015,686,668.14]],["content/395",[10,7.746,137,4.552,248,3.911,252,11.982,458,7.59,693,11.659,1421,12.762]],["keywords/395",[]],["title/396",[139,283.568,185,534.764,638,383.396]],["content/396",[93,4.233,247,5.418,458,6.652,467,4.133,638,6.012,896,9.322,973,4.311,1294,10.501,1578,6.719,1984,12.762,2233,12.762,2242,14.921,2243,13.619,2244,14.921]],["keywords/396",[]],["title/397",[139,241.683,244,272.019,245,326.765,647,442.253]],["content/397",[467,5.364]],["keywords/397",[]],["title/398",[120,435.957,139,241.683,245,326.765,647,442.253]],["content/398",[467,5.364]],["keywords/398",[]],["title/399",[80,607.02,82,511.511,495,437.414]],["content/399",[120,9.152,281,8.676,458,7.59,973,4.919,1547,12.762,1852,14.562,2245,17.025]],["keywords/399",[]],["title/400",[94,668.14,96,719.148]],["content/400",[185,9.197,467,4.533,948,10.927,973,4.728,1368,10.44,1407,13.998,1578,7.37,2246,13.295,2247,14.938]],["keywords/400",[]],["title/401",[97,462.08,482,424.232,636,376.96]],["content/401",[137,4.552,636,6.745,1035,12.762,1174,10.637,1368,10.861,2248,15.54,2249,15.54]],["keywords/401",[]],["title/402",[93,269.948,97,462.08,99,364.805]],["content/402",[467,5.364]],["keywords/402",[]],["title/403",[102,586.582,751,602.006]],["content/403",[185,9.197,467,4.533,948,10.927,973,4.728,1368,10.44,1407,13.998,1578,7.37,2246,13.295,2247,14.938]],["keywords/403",[]],["title/404",[8,691.994,105,788.216]],["content/404",[10,8.071,358,16.192,458,7.909,1315,12.864,2250,17.74]],["keywords/404",[]],["title/405",[233,361.569,244,272.019,245,326.765,801,487.568]],["content/405",[137,4.552,636,6.745,1035,12.762,1174,10.637,1368,10.861,2248,15.54,2249,15.54]],["keywords/405",[]],["title/406",[643,429.935,786,506.701,801,487.568,837,541.505]],["content/406",[13,3.489,93,3.767,137,3.55,247,4.822,272,6.602,467,3.678,643,7.04,786,8.297,801,7.984,874,10.788,904,9.346,939,9.63,1191,11.358,1213,7.842,1379,8.867,1578,5.98,1984,11.358,2251,12.121,2252,13.279,2253,13.279,2254,13.279]],["keywords/406",[]],["title/407",[106,875.54]],["content/407",[467,4.913,973,5.125,1368,11.317,1578,7.989,2246,14.412]],["keywords/407",[]],["title/408",[108,909.897]],["content/408",[467,5.364]],["keywords/408",[]],["title/409",[216,772.047]],["content/409",[247,5.233,310,9.004,458,6.425,467,3.992,500,7.859,654,10.143,973,4.164,1312,12.327,1578,6.49,2255,14.412,2256,14.412,2257,14.412,2258,14.412,2259,13.155,2260,13.155,2261,14.412]],["keywords/409",[]],["title/410",[651,859.992]],["content/410",[467,5.364]],["keywords/410",[]],["title/411",[233,361.569,244,272.019,245,326.765,2059,517.359]],["content/411",[137,4.743,244,5.95,305,12.485,458,7.909,682,12.485]],["keywords/411",[]],["title/412",[93,326.54,2059,734.275]],["content/412",[93,4.929,234,8.745,458,7.746,616,11.332,682,12.229,710,14.116]],["keywords/412",[]],["title/413",[686,668.14,2059,734.275]],["content/413",[10,7.746,137,4.552,248,3.911,252,11.982,458,7.59,693,11.659,1421,12.762]],["keywords/413",[]],["title/414",[962,782.861]],["content/414",[27,4.472,75,3.444,81,3.386,188,9.784,198,2.417,258,6.79,306,7.075,326,10.498,465,6.79,476,12.315,481,8.799,487,7.582,1107,10.96,2246,10.96,2262,13.491,2263,13.491]],["keywords/414",[]],["title/415",[27,172.768,1931,693.649,2084,607.92,2264,810.99]],["content/415",[]],["keywords/415",[]],["title/416",[467,318.793,2203,984.48]],["content/416",[3,5.123,22,6.197,27,4.114,139,3.286,178,7.996,191,2.632,198,2.767,244,3.699,245,4.443,247,4.004,258,5.55,269,5.482,458,4.916,484,8.266,585,5.846,601,8.958,942,7.363,1250,8.266,1364,10.065,1379,7.363,1823,9.431,2020,10.065,2106,10.065,2235,8.58,2265,11.027,2266,11.027,2267,11.027,2268,11.027,2269,11.027,2270,11.027]],["keywords/416",[]],["title/417",[238,929.036]],["content/417",[247,5.829,458,8.82,485,8.287,901,9.835,1213,9.481,1290,11.299,2271,16.055,2272,16.055,2273,16.055]],["keywords/417",[]],["title/418",[144,782.861]],["content/418",[467,5.364]],["keywords/418",[]],["title/419",[194,413.152]],["content/419",[]],["keywords/419",[]],["title/420",[779,997.285]],["content/420",[89,7.753,198,2.99,467,4.622,901,10.223,1169,12.986,1432,15.233,1578,7.516,2274,16.689]],["keywords/420",[]],["title/421",[716,734.275,746,679.705]],["content/421",[467,5.364]],["keywords/421",[]],["title/422",[137,216.812,571,528.906,807,528.906,808,496.804]],["content/422",[467,5.364]],["keywords/422",[]],["title/423",[247,417.935,495,529.112]],["content/423",[10,6.91,79,5.13,306,6.068,467,5.293,495,6.982,586,7.645,911,13.864,1315,11.015,1453,10.142,1547,11.386,1578,6.84,2121,13.864]],["keywords/423",[]],["title/424",[137,307.717,636,455.985]],["content/424",[467,5.364]],["keywords/424",[]],["title/425",[139,283.568,142,424.232,143,543.318]],["content/425",[15,7.834,137,4.212,139,4.695,142,7.024,198,2.823,257,4.139,467,4.364,630,8.996,1547,11.81,1578,7.095,2275,14.381]],["keywords/425",[]],["title/426",[139,283.568,142,424.232,630,543.318]],["content/426",[137,4.645,257,4.565,467,4.812,891,14.116,1578,7.825,1655,14.861]],["keywords/426",[]],["title/427",[139,343.015,633,705.102]],["content/427",[467,5.364]],["keywords/427",[]],["title/428",[139,283.568,247,345.504,248,218.575]],["content/428",[247,6.182,274,5.375,467,4.715,957,13.248,1578,7.667,1595,13.831,2276,15.54]],["keywords/428",[]],["title/429",[137,254.387,139,283.568,636,376.96]],["content/429",[139,4.877,247,5.942,284,7.603,467,4.533,1087,13.998,1213,9.664,1379,10.927,1578,7.37,2277,14.938]],["keywords/429",[]],["title/430",[139,283.568,636,376.96,638,383.396]],["content/430",[467,5.364]],["keywords/430",[]],["title/431",[139,241.683,233,361.569,244,272.019,245,326.765]],["content/431",[36,8.855,79,5.869,467,5.748,1578,7.825,1748,14.116]],["keywords/431",[]],["title/432",[139,241.683,244,272.019,245,326.765,641,506.701]],["content/432",[36,8.855,79,5.869,467,5.748,1578,7.825,1748,14.116]],["keywords/432",[]],["title/433",[93,269.948,139,283.568,643,504.446]],["content/433",[467,5.364]],["keywords/433",[]],["title/434",[93,269.948,139,283.568,217,518.899]],["content/434",[467,5.364]],["keywords/434",[]],["title/435",[139,343.015,686,668.14]],["content/435",[467,5.364]],["keywords/435",[]],["title/436",[139,283.568,185,534.764,638,383.396]],["content/436",[467,5.364]],["keywords/436",[]],["title/437",[139,241.683,244,272.019,245,326.765,647,442.253]],["content/437",[36,8.855,79,5.869,467,5.748,1578,7.825,1748,14.116]],["keywords/437",[]],["title/438",[120,435.957,139,241.683,245,326.765,647,442.253]],["content/438",[467,5.364]],["keywords/438",[]],["title/439",[80,607.02,82,511.511,495,437.414]],["content/439",[198,3.318,901,11.344,2278,18.517]],["keywords/439",[]],["title/440",[94,668.14,96,719.148]],["content/440",[467,5.364]],["keywords/440",[]],["title/441",[93,269.948,97,462.08,99,364.805]],["content/441",[10,6.447,139,4.223,198,3.276,257,3.723,274,4.473,307,8.368,467,3.925,584,8.681,888,10.276,909,8.519,1445,7.314,1578,6.381,1658,15.639,2235,11.026,2279,14.17]],["keywords/441",[]],["title/442",[102,586.582,751,602.006]],["content/442",[467,5.364]],["keywords/442",[]],["title/443",[8,691.994,105,788.216]],["content/443",[467,5.364]],["keywords/443",[]],["title/444",[643,429.935,786,506.701,801,487.568,837,541.505]],["content/444",[3,7.186,247,5.616,272,7.69,467,4.284,584,9.475,807,10.087,904,10.886,1058,12.565,1278,12.565,1578,6.965,2276,14.118,2280,15.467]],["keywords/444",[]],["title/445",[106,875.54]],["content/445",[467,5.364]],["keywords/445",[]],["title/446",[108,909.897]],["content/446",[467,5.364]],["keywords/446",[]],["title/447",[216,772.047]],["content/447",[15,6.5,23,5.268,58,6.5,137,3.495,139,3.896,142,5.829,146,8.527,198,2.343,257,3.435,258,6.58,370,9.481,388,8.34,510,7.86,574,9.8,601,10.621,1379,8.73,1547,9.8,1632,9.481,2120,14.837,2275,11.934,2281,13.074]],["keywords/447",[]],["title/448",[651,859.992]],["content/448",[467,5.364]],["keywords/448",[]],["title/449",[233,361.569,244,272.019,245,326.765,2059,517.359]],["content/449",[137,4.645,373,11.084,467,4.812,1578,7.825,2243,15.86,2282,17.375]],["keywords/449",[]],["title/450",[93,326.54,2059,734.275]],["content/450",[467,5.364]],["keywords/450",[]],["title/451",[686,668.14,2059,734.275]],["content/451",[467,5.364]],["keywords/451",[]],["title/452",[962,782.861]],["content/452",[1570,15.733]],["keywords/452",[]],["title/453",[27,172.768,1931,693.649,1967,693.649,2084,607.92]],["content/453",[]],["keywords/453",[]],["title/454",[467,318.793,2203,984.48]],["content/454",[7,3.589,79,5.75,89,7.909,191,4.064,198,3.051,584,10.429,1174,10.637]],["keywords/454",[]],["title/455",[238,929.036]],["content/455",[373,11.317,2283,21.013,2284,17.74,2285,17.74]],["keywords/455",[]],["title/456",[144,782.861]],["content/456",[3,7.186,99,5.93,187,11.594,275,7.263,276,8.2,458,6.896,467,4.284,584,9.475,1578,6.965,1595,12.565,2009,14.118,2286,15.467]],["keywords/456",[]],["title/457",[194,413.152]],["content/457",[]],["keywords/457",[]],["title/458",[716,734.275,746,679.705]],["content/458",[467,5.364]],["keywords/458",[]],["title/459",[137,216.812,571,528.906,807,528.906,808,496.804]],["content/459",[467,5.364]],["keywords/459",[]],["title/460",[247,417.935,495,529.112]],["content/460",[467,5.364]],["keywords/460",[]],["title/461",[137,307.717,636,455.985]],["content/461",[467,5.364]],["keywords/461",[]],["title/462",[139,283.568,142,424.232,143,543.318]],["content/462",[140,11.594,194,5.484,244,5.188,373,9.867,458,6.896,467,4.284,585,8.2,892,14.118,1578,6.965,1729,14.118,2287,15.467]],["keywords/462",[]],["title/463",[139,283.568,142,424.232,630,543.318]],["content/463",[467,5.364]],["keywords/463",[]],["title/464",[139,343.015,633,705.102]],["content/464",[467,5.364]],["keywords/464",[]],["title/465",[139,283.568,247,345.504,248,218.575]],["content/465",[467,5.364]],["keywords/465",[]],["title/466",[137,254.387,139,283.568,636,376.96]],["content/466",[467,5.364]],["keywords/466",[]],["title/467",[139,283.568,636,376.96,638,383.396]],["content/467",[467,5.364]],["keywords/467",[]],["title/468",[139,241.683,233,361.569,244,272.019,245,326.765]],["content/468",[15,6.708,27,4.212,81,3.386,194,3.827,281,6.876,467,3.737,670,10.113,944,10.96,1296,12.315,1368,8.607,1578,6.076,1885,12.315,2033,12.315,2050,12.315,2288,13.491,2289,13.491,2290,13.491,2291,13.491]],["keywords/468",[]],["title/469",[139,241.683,244,272.019,245,326.765,641,506.701]],["content/469",[3,8.241,281,9.041,458,7.909,973,5.125,1556,14.412]],["keywords/469",[]],["title/470",[93,269.948,139,283.568,643,504.446]],["content/470",[467,5.364]],["keywords/470",[]],["title/471",[93,269.948,139,283.568,217,518.899]],["content/471",[467,5.364]],["keywords/471",[]],["title/472",[139,343.015,686,668.14]],["content/472",[467,5.364]],["keywords/472",[]],["title/473",[139,283.568,185,534.764,638,383.396]],["content/473",[467,5.364]],["keywords/473",[]],["title/474",[139,241.683,244,272.019,245,326.765,647,442.253]],["content/474",[233,7.441,305,11.746,467,4.622,584,10.223,1213,9.855,1578,7.516,1600,14.274,2292,16.689]],["keywords/474",[]],["title/475",[120,435.957,139,241.683,245,326.765,647,442.253]],["content/475",[467,5.364]],["keywords/475",[]],["title/476",[80,607.02,82,511.511,495,437.414]],["content/476",[467,5.364]],["keywords/476",[]],["title/477",[94,668.14,96,719.148]],["content/477",[7,3.589,89,7.909,198,3.051,467,4.715,901,10.429,1174,10.637,1578,7.667]],["keywords/477",[]],["title/478",[93,269.948,97,462.08,99,364.805]],["content/478",[7,3.589,89,7.909,198,3.051,467,4.715,901,10.429,1174,10.637,1578,7.667]],["keywords/478",[]],["title/479",[102,586.582,751,602.006]],["content/479",[7,3.589,89,7.909,198,3.051,467,4.715,901,10.429,1174,10.637,1578,7.667]],["keywords/479",[]],["title/480",[8,691.994,105,788.216]],["content/480",[7,3.589,89,7.909,198,3.051,467,4.715,901,10.429,1174,10.637,1578,7.667]],["keywords/480",[]],["title/481",[643,429.935,786,506.701,801,487.568,837,541.505]],["content/481",[467,5.364]],["keywords/481",[]],["title/482",[106,875.54]],["content/482",[7,3.589,89,7.909,198,3.051,467,4.715,901,10.429,1174,10.637,1578,7.667]],["keywords/482",[]],["title/483",[108,909.897]],["content/483",[7,3.589,89,7.909,198,3.051,467,4.715,901,10.429,1174,10.637,1578,7.667]],["keywords/483",[]],["title/484",[216,772.047]],["content/484",[10,5.19,19,3.305,21,4.383,27,4.323,73,4.131,75,2.278,78,2.413,79,1.822,153,3.442,191,2.13,194,3.236,198,0.967,247,3.24,248,2.049,249,6.11,250,9.935,251,4.198,272,2.682,281,2.749,283,3.694,294,5.014,310,5.574,336,2.9,347,1.989,379,4.383,388,5.692,499,3.912,576,3.797,580,4.924,584,3.305,586,2.715,620,3.132,649,6.279,662,5.819,664,5.957,679,6.688,901,3.305,909,3.243,973,2.578,1051,2.986,1341,8.144,1368,3.442,1385,3.797,1561,3.602,1578,5.969,1632,3.912,2127,4.198,2130,9.268,2146,4.383,2148,4.383,2259,4.924,2260,4.924,2293,5.395,2294,5.395,2295,5.395,2296,5.395,2297,5.395,2298,5.395,2299,5.395,2300,8.922,2301,5.395,2302,5.395,2303,5.395,2304,5.395,2305,5.395,2306,8.922,2307,5.395]],["keywords/484",[]],["title/485",[651,859.992]],["content/485",[467,5.364]],["keywords/485",[]],["title/486",[233,361.569,244,272.019,245,326.765,2059,517.359]],["content/486",[467,5.364]],["keywords/486",[]],["title/487",[93,326.54,2059,734.275]],["content/487",[7,3.589,89,7.909,198,3.051,467,4.715,901,10.429,1174,10.637,1578,7.667]],["keywords/487",[]],["title/488",[686,668.14,2059,734.275]],["content/488",[467,5.364]],["keywords/488",[]],["title/489",[962,782.861]],["content/489",[1570,15.733]],["keywords/489",[]],["title/490",[194,326.54,352,657.218]],["content/490",[4,2.46,27,4.92,73,2.03,75,4.496,78,2.74,79,3.422,81,3.358,93,2.205,99,2.98,137,2.078,138,1.26,191,1.855,194,3.388,198,1.393,225,1.557,248,1.051,255,1.798,256,7.316,257,2.042,268,3.915,274,3.77,306,5.345,315,2.061,336,2.46,340,2.804,347,2.866,352,5.785,482,2.041,487,2.572,499,5.637,567,3.915,848,2.92,884,2.426,896,4.856,907,5.637,973,1.322,1075,2.985,1104,3.561,1105,3.718,1438,2.804,1495,4.178,1569,3.718,1689,4.178,2308,4.577,2309,7.773,2310,10.901,2311,7.095,2312,7.773,2313,7.773,2314,4.577,2315,4.577,2316,4.577,2317,4.577]],["keywords/490",[]],["title/491",[102,586.582,2318,1050.614]],["content/491",[94,8.817,153,9.69,191,3.626,225,5.166,232,11.015,340,9.305,382,10.69,902,11.386,919,6.12,948,10.142,1368,9.69,1389,13.864,2191,13.864]],["keywords/491",[]],["title/492",[137,216.812,571,528.906,807,528.906,808,496.804]],["content/492",[467,5.364]],["keywords/492",[]],["title/493",[347,424.328,2319,1151.018]],["content/493",[67,14.412,333,12.485,585,9.405,1368,11.317,2320,17.74]],["keywords/493",[]],["title/494",[139,283.568,142,424.232,630,543.318]],["content/494",[467,5.364]],["keywords/494",[]],["title/495",[139,343.015,633,705.102]],["content/495",[279,10.861,458,7.59,585,9.026,638,6.86,909,10.236,973,4.919,2321,17.025]],["keywords/495",[]],["title/496",[139,283.568,247,345.504,248,218.575]],["content/496",[79,4.349,81,4.31,93,3.653,139,3.837,247,6.235,275,8.063,279,10.953,458,5.74,585,6.825,973,3.72,1278,10.459,1379,8.597,1591,11.752,1595,13.949,1665,9.651,2322,12.875,2323,12.875,2324,12.875]],["keywords/496",[]],["title/497",[137,254.387,139,283.568,636,376.96]],["content/497",[467,5.364]],["keywords/497",[]],["title/498",[139,283.568,636,376.96,638,383.396]],["content/498",[467,5.364]],["keywords/498",[]],["title/499",[139,241.683,233,361.569,244,272.019,245,326.765]],["content/499",[467,5.364]],["keywords/499",[]],["title/500",[139,241.683,244,272.019,245,326.765,641,506.701]],["content/500",[467,5.364]],["keywords/500",[]],["title/501",[93,269.948,139,283.568,643,504.446]],["content/501",[467,5.364]],["keywords/501",[]],["title/502",[93,269.948,139,283.568,217,518.899]],["content/502",[467,5.364]],["keywords/502",[]],["title/503",[139,283.568,185,534.764,638,383.396]],["content/503",[93,5.141,281,9.234,1379,12.099,2325,18.12]],["keywords/503",[]],["title/504",[139,241.683,244,272.019,245,326.765,647,442.253]],["content/504",[32,7.024,198,2.823,245,6.348,373,10.051,497,10.051,973,5.65,2326,19.554,2327,15.755,2328,15.755]],["keywords/504",[]],["title/505",[120,435.957,139,241.683,245,326.765,647,442.253]],["content/505",[467,5.364]],["keywords/505",[]],["title/506",[80,607.02,82,511.511,495,437.414]],["content/506",[93,4.16,194,4.16,539,8.115,584,8.982,585,7.773,586,7.379,600,11.409,833,11.911,896,9.161,902,10.991,1424,8.511,1799,13.383,1852,12.541,2329,14.662,2330,14.662]],["keywords/506",[]],["title/507",[94,668.14,96,719.148]],["content/507",[0,9.475,94,8.978,102,7.882,194,4.388,198,2.771,452,13.229,458,6.896,770,11.216,1445,7.984,1452,10.592,1454,9.867,2318,14.118]],["keywords/507",[]],["title/508",[97,462.08,482,424.232,636,376.96]],["content/508",[467,5.364]],["keywords/508",[]],["title/509",[93,269.948,97,462.08,99,364.805]],["content/509",[97,8.104,99,6.398,137,4.462,194,4.735,306,6.667,458,7.441,806,14.274,1445,8.615]],["keywords/509",[]],["title/510",[102,586.582,751,602.006]],["content/510",[15,9.207,618,7.798,2235,14.409]],["keywords/510",[]],["title/511",[233,361.569,244,272.019,245,326.765,801,487.568]],["content/511",[467,5.364]],["keywords/511",[]],["title/512",[643,429.935,786,506.701,801,487.568,837,541.505]],["content/512",[279,10.646,801,10.033,888,12.102,902,12.51,909,10.033,973,5.853,1433,10.884]],["keywords/512",[]],["title/513",[106,875.54]],["content/513",[15,9.207,618,7.798,2235,14.409]],["keywords/513",[]],["title/514",[108,909.897]],["content/514",[194,4.929,231,14.116,458,7.746,770,12.6,1445,8.969,1452,11.898]],["keywords/514",[]],["title/515",[216,772.047]],["content/515",[20,7.327,76,10.881,79,5.738,233,4.505,247,3.669,272,5.024,283,6.919,288,7.111,307,8.572,316,6.19,327,8.642,373,9.26,388,11.846,467,2.798,576,10.216,585,5.356,608,8.642,921,9.223,942,6.746,964,8.642,1051,5.592,1375,9.223,1561,6.746,2084,7.574,2124,12.415,2127,7.862,2331,10.104,2332,10.104,2333,9.223,2334,10.104,2335,10.104]],["keywords/515",[]],["title/516",[651,859.992]],["content/516",[4,5.431,7,3.06,13,2.655,27,4.19,76,7.574,81,2.536,187,7.574,194,2.866,198,2.601,258,7.306,274,3.19,279,6.446,288,7.111,318,6.919,373,6.446,590,7.111,620,8.426,651,10.032,958,5.769,992,8.642,1045,8.642,1065,7.862,1368,6.446,1548,9.223,2336,10.104,2337,10.104,2338,10.104,2339,10.104,2340,10.104,2341,10.104,2342,10.104]],["keywords/516",[]],["title/517",[225,391.493,909,691.994]],["content/517",[15,7.834,194,5.547,197,8.855,225,6.651,325,10.789,382,11.089,909,11.756,2343,15.755]],["keywords/517",[]],["title/518",[194,326.54,944,935.083]],["content/518",[10,2.714,15,4.817,27,4.437,73,1.558,75,2.474,78,1.614,81,3.535,137,1.595,138,1.643,188,8.871,191,2.92,192,4.472,193,7.263,194,3.995,198,1.069,206,5.446,210,3.984,225,2.029,229,5.446,247,2.166,248,2.226,252,4.199,255,2.344,257,1.568,258,4.876,268,5.103,306,4.887,315,2.687,316,3.655,347,2.2,363,3.655,365,4.643,372,6.319,472,3.254,481,3.891,588,5.103,596,9.938,620,3.463,884,6.485,888,4.327,889,4.847,894,10.556,896,3.728,928,3.891,944,11.441,988,5.446,1109,4.643,1156,5.446,1421,4.472,1847,5.446,2344,5.966,2345,5.966,2346,5.966,2347,5.966,2348,5.966,2349,5.966,2350,5.966,2351,5.966]],["keywords/518",[]],["title/519",[194,326.54,1051,637.041]],["content/519",[4,3.056,10,2.587,27,4.911,75,4.141,78,1.538,79,3.997,81,3.435,93,1.613,99,2.18,137,1.52,194,2.643,247,3.382,256,7.249,257,1.494,258,2.861,274,1.795,294,3.195,298,5.189,306,6.032,347,5.044,372,6.075,482,2.535,499,6.755,884,7.254,890,7.249,894,4.262,896,5.82,948,3.796,969,6.556,973,1.643,1051,3.147,1149,4.619,1315,4.123,1742,4.863,2352,5.685,2353,5.685,2354,5.685,2355,9.315,2356,9.315,2357,9.315,2358,9.315,2359,5.685,2360,5.685]],["keywords/519",[]],["title/520",[313,668.14,1392,895.641]],["content/520",[3,4.775,10,2.921,13,2.7,27,4.738,73,1.677,75,2.624,78,1.736,81,3.688,137,2.748,138,1.767,153,4.095,191,3.508,192,4.812,247,3.732,248,1.475,255,2.522,257,2.7,274,3.245,275,3.015,313,3.726,315,2.891,333,4.518,339,5.491,347,3.789,356,4.655,406,5.86,457,4.289,465,3.231,472,3.501,494,7.234,511,4.396,539,3.553,620,3.726,656,4.655,657,4.812,910,4.518,958,3.665,1045,5.491,1062,3.859,1089,4.187,1213,3.791,1297,5.86,1381,4.995,1388,9.382,1392,4.995,1396,5.491,1569,5.215,2137,5.86,2333,5.86,2361,6.42,2362,6.42,2363,6.42,2364,6.42,2365,6.42]],["keywords/520",[]],["title/521",[22,818.448]],["content/521",[7,1.19,13,2.434,15,2.808,22,8.456,27,4.693,58,2.808,73,2.42,75,3.007,78,1.528,79,1.907,81,2.956,133,4.588,137,1.51,138,1.555,146,3.683,191,2.211,194,4.587,198,1.012,210,6.186,225,1.921,234,2.842,238,3.603,256,5.675,274,1.783,284,2.624,306,3.701,325,3.867,333,3.975,370,4.095,404,5.155,462,6.344,568,4.588,594,4.394,602,4.095,616,3.683,711,3.975,820,3.683,884,4.911,909,3.395,962,3.036,1005,5.155,1051,3.126,1197,5.155,1218,5.155,1274,4.83,1280,4.394,1284,5.155,1461,3.459,1478,5.155,1479,5.155,1480,5.155,1482,10.751,2277,5.155,2366,5.647,2367,9.264,2368,5.647,2369,9.264,2370,5.647,2371,5.647,2372,5.647,2373,5.647,2374,5.647]],["keywords/521",[]],["title/522",[451,637.041,971,768.544]],["content/522",[27,4.865,36,3.553,58,2.004,67,3.275,68,3.275,73,1.053,75,4.114,78,1.09,79,3.111,81,2.754,88,3.275,99,1.545,137,1.078,153,2.572,185,2.265,194,3.113,198,1.65,205,1.873,234,2.029,248,0.926,256,4.271,258,2.029,269,3.466,274,2.201,291,5.963,294,2.265,302,3.275,306,4.384,332,4.547,441,2.423,451,5.098,454,5.664,455,2.923,456,3.022,465,6.239,486,3.448,487,2.265,499,5.055,500,5.023,511,2.76,758,2.34,884,3.696,939,2.923,942,2.692,971,2.692,973,1.165,974,3.022,1051,5.098,1085,3.448,1149,3.275,1380,3.679,1397,3.137,1421,3.022,1445,7.005,1487,2.923,1671,3.448,2251,3.679,2310,6.363,2311,6.363,2375,4.031,2376,4.031,2377,4.031,2378,4.031,2379,4.031,2380,4.031,2381,4.031,2382,6.971,2383,4.031,2384,4.031,2385,4.031,2386,4.031,2387,4.031,2388,4.031,2389,6.971,2390,4.031,2391,4.031,2392,4.031]],["keywords/522",[]]],"invertedIndex":[["",{"_index":27,"title":{"359":{"position":[[13,1]]},"362":{"position":[[32,1]]},"372":{"position":[[13,1]]},"376":{"position":[[13,1]]},"415":{"position":[[13,1]]},"453":{"position":[[13,1]]}},"content":{"3":{"position":[[61,1],[92,1],[450,1],[452,1]]},"5":{"position":[[18,1],[120,1],[185,1],[212,1],[228,1],[258,1],[298,1],[347,1]]},"6":{"position":[[132,1],[146,1],[244,1],[282,3],[327,2],[357,1],[405,2],[416,2],[438,1],[440,2],[494,2],[539,2],[582,2],[645,2],[708,2],[759,2],[795,2],[809,1],[811,2]]},"8":{"position":[[115,1],[131,1],[166,1],[215,1],[257,1],[309,1],[365,2],[381,1],[402,2],[416,1],[418,2],[446,2],[470,2],[509,2],[575,2],[615,2],[647,2],[701,2],[746,2],[789,2],[852,2],[915,2],[966,2],[1002,2],[1016,1],[1018,1]]},"10":{"position":[[143,1],[166,1],[168,1],[201,1],[224,1],[259,1],[261,1],[263,1],[265,1],[267,1]]},"12":{"position":[[106,1],[125,1],[147,1],[192,2],[234,2],[257,1],[298,1],[300,1]]},"16":{"position":[[142,2],[189,2],[220,1],[245,2],[267,2],[457,1],[475,1],[511,2],[639,1],[670,1],[672,2],[767,1],[836,1],[838,1],[851,2],[878,2],[881,3],[900,1],[902,1],[962,1],[971,1],[1021,1],[1023,1],[1025,2],[1111,2],[1195,1],[1197,1],[1227,1],[1235,1],[1265,1],[1285,1],[1349,2],[1365,1],[1408,2],[1423,1],[1471,2],[1479,1],[1541,2],[1556,1],[1573,2],[1584,1],[1601,1],[1603,2],[1637,2],[1682,1],[1684,1],[1686,1],[1688,2],[1800,1],[1833,2],[1960,3],[1964,2],[2012,2]]},"18":{"position":[[341,1],[358,1],[735,1],[790,2],[1342,1],[1419,1]]},"19":{"position":[[272,1],[297,1],[306,2],[315,1],[317,1],[332,1],[334,1],[360,1],[398,1],[400,2],[403,3],[440,2],[473,1],[475,2],[478,3],[532,1],[552,1],[554,2],[557,1],[580,1],[596,2],[684,1],[703,1],[705,1],[733,1],[735,3],[846,1],[848,2],[860,2],[863,1],[878,1],[880,2],[970,2],[987,2],[990,1],[1006,2],[1102,2],[1119,2],[1122,1],[1141,2],[1192,2],[1318,2],[1335,2],[1338,1],[1354,2]]},"21":{"position":[[17,1],[19,1],[56,1],[75,1],[83,1],[85,3],[95,1],[103,1],[121,1],[123,1],[125,1],[148,1],[162,1],[164,2],[179,1],[192,1],[204,1],[230,1],[243,1],[256,1],[356,1],[373,1],[375,2],[426,1],[428,2],[471,1],[473,2],[482,1],[501,1],[514,1],[541,1],[548,1],[565,1],[567,1],[592,1],[622,1],[649,1],[651,2],[696,1],[698,2],[740,1],[742,2],[772,1],[879,1],[881,1],[904,1]]},"22":{"position":[[61,1],[63,1],[85,1],[106,1],[114,1],[116,3],[126,1],[134,1],[143,1],[145,1],[147,1],[170,1],[184,1],[186,2],[201,1],[214,1],[226,1],[252,1],[265,1],[278,1],[308,1],[331,1],[333,2],[376,1],[378,2],[387,1],[400,1],[427,1],[452,1],[482,1],[509,1],[511,2],[556,1],[558,2],[600,1],[602,2],[632,1],[739,1],[741,1],[764,1]]},"26":{"position":[[54,1],[106,1],[108,2],[111,3],[115,2]]},"28":{"position":[[54,1],[89,1],[98,2],[107,1],[109,2],[112,3],[116,2]]},"31":{"position":[[1262,1],[1277,1],[1337,1],[1352,1],[1375,1],[1407,2],[1416,1],[1425,1],[1443,1],[1445,1],[1447,2],[1675,2],[1678,1],[1732,2],[1868,2],[2038,1],[2040,1],[2084,2],[2092,2],[2122,1],[2124,2],[2155,2],[2158,1],[2253,3],[2318,1],[2327,2],[2336,1],[2338,2],[2341,3],[2345,2]]},"34":{"position":[[54,1],[89,1],[98,2],[107,1],[109,2],[112,3],[116,2]]},"37":{"position":[[209,1],[237,1],[275,1],[306,1],[347,1],[375,1],[419,1],[421,1],[423,1],[471,2],[474,1],[528,2],[531,1],[578,1],[580,1],[603,1]]},"40":{"position":[[54,1],[106,1],[108,2],[111,3],[115,2]]},"43":{"position":[[1262,1],[1277,1],[1337,1],[1352,1],[1375,1],[1407,2],[1416,1],[1425,1],[1443,1],[1445,1],[1447,2],[1675,2],[1678,1],[1732,2],[1868,2],[2038,1],[2040,1],[2084,2],[2092,2],[2122,1],[2124,2],[2166,2],[2169,1],[2264,3],[2329,1],[2338,2],[2347,1],[2349,2],[2352,3],[2356,2]]},"46":{"position":[[1224,1],[1248,1],[1287,1],[1312,1],[1357,1],[1359,1],[1361,1],[1418,2],[1421,1],[1475,1],[1477,1],[1500,1],[1532,2],[1541,1],[1550,1],[1568,1],[1570,1],[1572,2],[1800,2],[1803,1],[1857,2],[1993,2],[2163,1],[2165,1],[2209,2],[2217,2],[2247,1],[2249,2],[2280,2],[2283,1]]},"49":{"position":[[54,1],[106,1],[108,2],[111,3],[115,2]]},"52":{"position":[[118,1],[204,1],[206,2],[209,3],[213,2]]},"55":{"position":[[54,1],[93,2],[176,1],[178,2],[181,3],[185,2]]},"58":{"position":[[54,1],[106,1],[108,2],[111,3],[115,2]]},"61":{"position":[[118,1],[204,1],[206,2],[209,3],[213,2]]},"64":{"position":[[118,1],[204,1],[206,2],[209,3],[213,2]]},"67":{"position":[[118,1],[204,1],[206,2],[209,3],[213,2]]},"70":{"position":[[54,1],[106,1],[108,2],[111,3],[115,2]]},"73":{"position":[[54,1],[106,1],[108,2],[111,3],[115,2]]},"76":{"position":[[54,1],[89,1],[98,2],[107,1],[109,2],[112,3],[116,2]]},"79":{"position":[[54,1],[106,1],[108,2],[111,3],[115,2]]},"82":{"position":[[54,1],[106,1],[108,2],[111,3],[115,2]]},"85":{"position":[[54,1],[106,1],[108,2],[111,3],[115,2]]},"88":{"position":[[54,1],[89,1],[98,2],[107,1],[109,2],[112,3],[116,2]]},"91":{"position":[[118,1],[204,1],[206,2],[209,3],[213,2]]},"94":{"position":[[118,1],[204,1],[206,2],[209,3],[213,2]]},"97":{"position":[[1262,1],[1277,1],[1337,1],[1352,1],[1375,1],[1407,2],[1416,1],[1425,1],[1443,1],[1445,2],[1472,2],[1700,2],[1703,1],[1757,2],[1893,2],[2063,1],[2065,1],[2109,2],[2117,2],[2147,1],[2149,2],[2180,2],[2183,1],[2278,3],[2343,1],[2352,2],[2361,1],[2363,2],[2366,3],[2370,2]]},"100":{"position":[[118,1],[204,1],[206,2],[209,3],[213,2]]},"103":{"position":[[118,1],[204,1],[206,2],[209,3],[213,2]]},"105":{"position":[[360,1],[375,1],[435,1],[450,1],[466,1],[658,3],[694,1],[703,2],[712,1],[714,2],[717,3],[721,2]]},"106":{"position":[[40,1],[54,1],[288,1],[337,1],[350,1],[453,1],[455,1],[457,2],[460,1],[506,1],[553,1],[555,2],[558,1],[593,1],[629,1],[631,2],[634,1],[669,1],[676,1],[698,1],[700,1],[702,2],[705,1],[737,1],[763,1],[798,2],[833,1],[842,2],[851,1],[853,2],[872,1],[874,1],[912,1],[914,2]]},"107":{"position":[[40,1],[54,1],[272,1],[321,1],[334,1],[349,6],[366,6],[388,6],[408,5],[414,1],[416,1],[418,2],[421,1],[455,1],[461,1],[471,6],[483,5],[489,1],[491,1],[493,2],[496,1],[536,1],[548,1],[561,6],[573,1],[575,5],[581,1],[583,1],[585,1],[587,2],[590,1],[625,1],[661,1],[663,2],[666,1],[698,1],[724,1],[759,2],[794,1],[803,2],[812,1],[814,2],[833,1],[835,1],[866,1],[868,2]]},"110":{"position":[[118,1],[162,2],[234,1],[236,2],[239,3],[243,2]]},"113":{"position":[[118,1],[204,1],[206,2],[209,3],[213,2]]},"116":{"position":[[118,1],[204,1],[206,2],[209,3],[213,2]]},"119":{"position":[[54,1],[106,1],[108,2],[111,3],[115,2]]},"122":{"position":[[194,1],[330,3],[376,1],[378,2],[381,3],[385,2]]},"125":{"position":[[118,1],[162,2],[243,1],[245,2],[248,3],[252,2]]},"128":{"position":[[54,1],[106,1],[108,2],[111,3],[115,2]]},"131":{"position":[[118,1],[204,1],[206,2],[209,3],[213,2]]},"134":{"position":[[54,1],[106,1],[108,2],[111,3],[115,2]]},"137":{"position":[[54,1],[106,1],[108,2],[111,3],[115,2]]},"140":{"position":[[183,1],[203,1],[240,1],[263,1],[298,1],[310,1],[349,1],[368,1],[411,1],[506,2],[509,2],[512,2],[615,1]]},"143":{"position":[[188,1],[305,1],[307,2],[310,3],[314,2]]},"150":{"position":[[500,2],[1274,1],[1289,1],[1349,1],[1364,1],[1387,1],[1419,2],[1428,1],[1437,1],[1455,1],[1457,1],[1459,2],[1687,2],[1690,1],[1744,2],[1880,2],[2050,1],[2052,1],[2096,2],[2104,2],[2134,1],[2136,2],[2167,2],[2170,1],[2265,3],[2330,1],[2339,2],[2348,1],[2350,2],[2353,3],[2357,2]]},"151":{"position":[[558,2],[647,1],[649,1],[678,4],[701,1],[703,1],[705,4],[715,1],[787,1],[801,1],[842,1],[909,1],[911,1],[926,1],[928,1],[930,1],[932,1]]},"153":{"position":[[766,2],[806,1],[825,2],[828,2],[831,2],[871,1],[880,2],[915,1],[934,2]]},"157":{"position":[[188,1],[213,1],[215,2],[238,2],[241,1],[264,1],[666,1],[691,1],[693,2],[716,2],[719,1],[742,1]]},"159":{"position":[[643,2],[739,1],[755,1],[757,2],[760,3],[764,2],[767,1],[783,1],[785,2],[788,2],[824,1],[842,1],[885,1],[909,1],[920,1],[1008,1],[1010,2],[1117,1],[1119,1],[1148,1],[1172,1],[1174,2],[1247,1],[1266,1],[1275,1],[1336,1],[1338,1],[1340,2],[1376,1],[1401,1],[1403,2],[1406,3],[1410,2],[1413,1],[1436,1],[1496,2],[1499,1]]},"161":{"position":[[613,3],[640,3]]},"167":{"position":[[41,1],[71,1],[124,1],[172,3],[196,1],[229,1],[284,1],[291,1],[304,1],[306,3],[310,2],[334,1],[441,1],[927,1],[962,2],[1154,1]]},"171":{"position":[[41,1],[72,1],[119,1],[142,1],[197,1],[245,3],[262,1],[320,2],[343,1],[376,1],[427,2],[451,1],[589,2],[767,2]]},"175":{"position":[[41,1],[76,1],[131,1],[201,3],[225,1],[297,1],[361,2],[385,1],[515,1],[571,1],[642,2],[723,1],[725,1],[747,1],[749,2],[773,2],[861,2],[864,3],[908,1],[910,1]]},"179":{"position":[[41,1],[54,1],[83,1],[107,1],[170,1],[197,1],[274,1],[342,3],[378,1],[386,1],[394,1],[402,1],[404,2],[407,3],[433,1],[481,2],[484,2],[508,1],[547,1],[553,1],[569,1],[618,1],[680,2],[683,1],[699,1],[744,1],[746,1],[797,2],[800,2]]},"181":{"position":[[733,1],[750,1],[752,2],[755,3],[759,2],[762,2],[833,1],[850,3],[879,1],[910,4]]},"182":{"position":[[811,1],[832,1],[873,2],[969,1],[985,1],[987,2],[990,3],[994,2],[997,1],[1013,1],[1015,2],[1018,2],[1054,1],[1072,1],[1115,1],[1139,1],[1150,1],[1238,1],[1240,2],[1315,2],[1422,1],[1424,1],[1453,1],[1477,1],[1479,2],[1552,1],[1571,1],[1580,1],[1641,1],[1643,1],[1645,2],[1675,1],[1706,1],[1708,2],[1711,3],[1715,2],[1718,2],[1789,1],[1806,3],[1835,1],[1866,3],[1920,2],[1923,2]]},"187":{"position":[[464,2],[467,2]]},"189":{"position":[[463,1],[489,2],[572,1],[596,2],[605,2],[608,2],[709,1],[956,1],[988,3],[992,1]]},"191":{"position":[[40,1],[63,1],[109,1],[134,1],[143,1],[171,1],[200,2],[237,2],[250,1],[252,1],[275,1]]},"192":{"position":[[40,1],[63,1],[109,1],[134,1],[171,2],[184,1],[207,1]]},"193":{"position":[[8,1],[56,1],[101,1],[132,1],[253,2],[256,1],[272,1],[308,1],[310,2],[356,1],[392,1],[399,2],[458,1],[460,1]]},"197":{"position":[[88,1],[127,1],[137,1],[152,6],[169,6],[191,6],[211,5],[217,1],[219,1],[221,2],[224,1],[258,1],[275,1],[277,1],[305,3],[355,2],[358,1],[376,2]]},"199":{"position":[[1003,1],[1018,1],[1064,1],[1089,1],[1098,1],[1126,3],[1176,2],[1179,1],[1181,2],[1205,1],[1244,1],[1254,1],[1269,6],[1286,6],[1308,6],[1328,5],[1334,1],[1336,1],[1338,2],[1341,1],[1373,1],[1386,1],[1425,2],[1456,2],[1487,2],[1518,2]]},"200":{"position":[[350,1],[396,1],[437,1],[532,1],[560,2],[581,1],[603,2],[625,2],[628,1],[666,1],[668,2],[742,2],[858,1],[941,3],[945,1],[947,2]]},"203":{"position":[[183,1]]},"204":{"position":[[13,1],[62,1],[121,1],[146,1],[297,1],[299,1],[322,1],[397,2],[414,2],[417,2],[420,1]]},"211":{"position":[[134,1],[159,1],[168,2],[171,1],[194,1],[255,3]]},"212":{"position":[[92,1],[117,1],[134,1],[136,1],[164,3],[214,2],[217,1],[235,1],[258,1],[296,1],[306,1],[319,6],[331,1],[344,1],[346,1],[348,1],[350,2],[353,1]]},"214":{"position":[[1053,1],[1067,1],[1106,1],[1137,1],[1154,1],[1156,1],[1184,3],[1234,2],[1237,1],[1255,2],[1293,1],[1384,5],[1395,1],[1408,1],[1410,2],[1413,1],[1415,2],[1418,1],[1450,1],[1463,1],[1502,2],[1533,2],[1564,2],[1595,2]]},"218":{"position":[[99,1],[124,1],[126,2],[148,1],[171,1]]},"222":{"position":[[107,1],[132,1],[140,1],[150,1],[152,1],[190,1],[192,2],[195,3],[199,1],[201,1],[224,1]]},"226":{"position":[[244,1],[269,1],[324,1],[348,1],[391,1],[435,1],[451,1],[489,1],[520,1],[602,1],[604,1],[667,1],[694,2],[717,1],[727,1],[736,1],[760,1],[762,1],[785,1],[967,1],[1041,1],[1043,2],[1046,1]]},"230":{"position":[[110,1],[135,1],[181,1],[204,1],[261,2],[308,3],[332,1],[356,1],[404,2],[407,2]]},"233":{"position":[[115,1],[140,1],[199,2],[264,2],[267,1],[290,1]]},"237":{"position":[[118,1],[143,1],[152,2],[155,1],[178,1]]},"240":{"position":[[1482,1],[1507,1],[1553,1],[1576,1],[1648,2],[1695,3],[1719,1],[1775,4],[1802,1],[1850,2],[1853,2]]},"241":{"position":[[89,1],[114,1],[123,2],[126,1],[149,1],[194,2],[241,3],[265,1],[321,4],[326,2]]},"245":{"position":[[180,1],[205,1],[214,2],[217,1],[240,1],[330,2],[365,1],[367,1],[378,1],[415,2],[480,2],[517,2],[520,1],[537,3],[557,1],[570,1],[583,2],[586,2]]},"248":{"position":[[22,4],[89,4],[147,4],[361,2]]},"249":{"position":[[172,1],[184,1],[224,1],[296,1],[306,1],[367,2],[430,1],[432,2],[488,2],[523,1],[532,1],[557,7],[565,1],[567,2]]},"250":{"position":[[172,1],[184,1],[210,1],[233,1],[279,1],[304,1],[313,1],[368,1],[370,1],[393,1],[427,2],[492,1],[502,1],[563,2],[626,1],[628,2],[684,2]]},"253":{"position":[[41,2]]},"254":{"position":[[190,1],[215,1],[224,2],[227,1],[250,1],[345,2],[380,1],[382,1],[393,1],[482,2],[697,1],[714,3],[734,1],[747,1],[760,2],[763,2]]},"258":{"position":[[116,1],[141,1],[158,1],[160,1],[185,1],[257,1],[310,1],[312,1],[314,1],[332,1],[355,1],[427,1],[429,1],[454,1],[485,1],[487,1],[504,3],[528,1],[597,2],[600,2]]},"262":{"position":[[116,1],[141,1],[150,2],[153,1],[176,1]]},"266":{"position":[[190,1],[215,1],[235,2],[270,1],[293,1],[388,2],[455,1],[457,1],[468,1],[522,2],[587,1],[604,3],[624,1],[644,1],[701,2],[704,2]]},"270":{"position":[[61,1],[76,1],[78,1],[121,2],[129,2],[180,2],[183,1],[227,2],[235,2],[265,2],[268,1],[306,2],[314,2],[328,1],[330,2],[372,1]]},"273":{"position":[[122,1],[147,1],[160,1],[183,1],[207,1],[209,1],[232,1],[286,1],[288,1],[331,2],[339,2],[389,2],[392,1],[436,2],[444,2],[474,2],[477,1],[515,2],[523,2],[537,1],[539,2],[581,2],[584,1],[622,1],[624,1],[635,1],[698,1],[700,1],[717,3],[741,1],[809,2]]},"277":{"position":[[119,1],[150,1],[170,2],[205,2],[247,2],[314,1],[316,1],[334,1],[370,1],[372,1],[389,3],[409,1],[429,1],[445,2],[448,2]]},"281":{"position":[[152,1]]},"287":{"position":[[95,1],[120,1],[137,1],[139,1],[167,3],[217,2],[220,1],[238,1],[261,1],[300,1],[312,1],[406,1],[408,1],[410,2],[413,1]]},"290":{"position":[[190,4],[380,4]]},"291":{"position":[[112,1],[137,1],[154,1],[156,1],[184,3],[234,2],[237,1],[255,1],[278,1],[466,1],[495,1],[520,1],[522,2],[525,3],[545,1],[568,1],[628,1],[642,1],[699,2],[720,2],[740,2],[743,1]]},"295":{"position":[[80,1],[105,1],[150,1],[152,1],[180,3],[230,2],[233,1],[251,1],[274,1],[306,1],[316,1],[326,6],[338,5],[344,1],[346,2],[368,2],[371,1]]},"297":{"position":[[986,1],[994,1],[1027,1],[1058,1],[1103,1],[1105,1],[1133,3],[1183,2],[1186,1],[1204,2],[1236,1],[1318,6],[1330,5],[1336,1],[1338,3],[1361,2],[1364,1],[1396,1],[1409,1],[1448,2],[1479,2],[1510,2],[1541,2]]},"299":{"position":[[110,1]]},"301":{"position":[[109,1],[134,1],[157,1],[205,1],[207,2],[242,2],[259,2],[304,1],[327,1]]},"307":{"position":[[134,1],[159,1],[178,1],[255,1],[292,1],[333,1],[335,1],[358,1]]},"308":{"position":[[134,1],[165,1],[176,1],[235,2],[257,1],[286,1],[288,1],[311,1]]},"312":{"position":[[109,1],[134,1],[151,1],[153,1],[181,3],[231,2],[234,1],[252,1],[275,1],[321,1],[334,1],[351,6],[371,5],[377,1],[379,1],[381,2],[384,1]]},"318":{"position":[[105,1],[130,1],[139,2],[142,1],[165,1],[209,1],[237,2],[258,1],[280,2],[302,2],[305,1],[331,2],[462,1],[464,2],[622,2]]},"320":{"position":[[1014,1],[1023,1],[1075,1],[1100,1],[1145,1],[1147,1],[1175,3],[1225,2],[1228,1],[1246,1],[1269,1],[1313,1],[1394,3],[1417,2],[1420,1],[1452,1],[1465,1],[1508,2],[1541,2],[1578,2],[1620,2],[1664,2],[1712,2]]},"324":{"position":[[588,1]]},"328":{"position":[[82,1],[107,1],[116,2],[119,1],[140,1],[142,2],[166,1],[199,1],[248,2],[305,2],[370,2],[392,2],[395,1],[421,1],[438,1],[472,2],[540,1],[554,1],[624,1],[649,1],[658,2],[661,1],[682,1],[684,2],[708,1],[741,1],[769,2],[797,2],[800,1],[825,1],[874,2],[930,2],[969,2],[988,1],[993,1],[1025,2],[1028,1],[1030,2],[1033,3],[1095,1],[1108,1],[1178,1],[1217,2]]},"330":{"position":[[984,1],[998,1],[1031,1],[1042,1],[1082,1],[1107,1],[1116,2],[1119,1],[1140,1],[1142,2],[1166,1],[1199,1],[1272,2],[1402,1],[1404,2],[1464,2],[1483,1],[1488,1],[1520,2],[1523,1],[1525,2],[1528,3],[1590,1],[1603,1],[1661,2],[1690,2],[1738,2]]},"334":{"position":[[82,1],[107,1],[124,1],[126,1],[154,3],[204,2],[207,1],[225,1],[248,1],[281,1],[295,1],[306,6],[330,2],[333,2],[345,1],[347,1],[349,2],[352,1]]},"339":{"position":[[13,1],[51,1],[98,1],[127,1],[129,2],[132,3],[136,2],[139,1],[159,1],[193,3],[223,1],[259,3]]},"343":{"position":[[175,1],[191,1],[219,1],[242,1]]},"348":{"position":[[98,1],[129,1],[148,2]]},"349":{"position":[[97,1],[122,1],[131,1],[147,6],[170,1],[172,1],[195,1],[242,1],[254,5],[260,1],[262,2],[265,1]]},"354":{"position":[[206,1],[255,5],[261,3],[297,1],[318,2],[345,1],[394,5],[400,3],[436,1],[460,2],[476,1],[478,1],[480,1],[528,2],[531,1],[585,1],[587,1],[610,1]]},"357":{"position":[[257,2]]},"358":{"position":[[152,1],[201,5],[207,3],[243,1],[252,1],[277,7],[285,1],[287,2],[308,1],[357,5],[363,3],[399,1],[408,1],[433,7],[441,1],[443,2],[459,1],[461,1],[463,1],[520,2],[523,1],[577,1],[579,1],[602,1]]},"364":{"position":[[125,1]]},"365":{"position":[[764,4]]},"366":{"position":[[281,1],[373,2]]},"368":{"position":[[112,1],[130,1],[186,1],[211,1],[220,2],[223,1],[238,1],[240,1],[297,1],[299,2],[334,1],[351,2],[354,2],[401,1],[418,1],[420,1],[422,1],[445,1],[510,2],[513,1],[539,2],[609,1],[611,1],[663,2],[666,1],[683,3],[704,1],[758,2],[877,1],[895,1],[951,1],[976,1],[985,2],[988,1],[1011,1],[1093,1],[1101,1],[1118,2],[1133,1],[1150,1],[1152,1],[1154,2],[1178,1],[1220,3],[1248,2],[1263,3],[1289,1],[1395,2],[1469,2],[1646,1],[1664,1],[1720,1],[1745,1],[1754,2],[1757,1],[1777,1],[1779,1],[1829,1],[1837,1],[1896,1],[1904,1],[1921,2],[1931,1],[1965,1],[1967,2],[2036,1],[2038,1],[2040,1],[2042,1],[2065,1],[2075,2],[2212,2],[2215,1]]},"369":{"position":[[83,1],[144,1],[167,1],[169,1],[189,2],[192,1],[220,1],[315,1],[391,1],[410,1],[478,2],[481,1],[560,1],[802,1],[827,1],[836,2],[839,1],[862,1],[914,1],[923,1],[925,2],[928,1]]},"370":{"position":[[8,1],[19,1],[125,1],[160,1],[262,1],[287,1],[296,2],[299,1],[310,1],[365,1],[432,1],[514,1],[523,1],[525,2],[528,1]]},"371":{"position":[[8,1],[19,1],[125,1],[160,1],[203,1],[212,1],[234,2],[331,1],[356,1],[365,2],[368,1],[391,1],[473,1],[482,1],[484,2],[487,1]]},"375":{"position":[[98,1],[111,1],[113,1],[148,1],[163,1],[179,1],[181,2],[199,1],[201,1],[381,1],[396,1],[404,1],[406,1],[422,1],[424,1],[447,1],[497,1],[521,1],[538,1],[601,1],[650,1],[668,1],[696,1],[707,1],[736,1],[760,1],[830,1],[839,1],[900,1],[902,1]]},"377":{"position":[[113,1],[121,1]]},"378":{"position":[[873,2],[882,1],[911,1]]},"379":{"position":[[225,2]]},"414":{"position":[[124,1],[139,1],[203,1],[221,2]]},"416":{"position":[[165,1],[174,1],[207,1],[234,1]]},"468":{"position":[[121,1],[145,1],[166,2]]},"484":{"position":[[641,2],[677,1],[695,1],[752,1],[792,2],[878,3],[935,2],[969,1],[978,1],[1021,1],[1108,2],[1146,1],[1155,1],[1157,3]]},"490":{"position":[[247,2],[285,1],[287,2],[313,1],[328,1],[344,1],[346,1],[369,1],[400,1],[424,1],[432,1],[449,1],[451,1],[461,2],[464,3],[468,1],[498,1],[522,1],[530,1],[541,1],[543,1],[553,2],[556,3],[577,1],[588,1],[620,1],[644,1],[667,3],[726,1],[735,1],[832,1],[834,1],[1065,1],[1096,1],[1098,2],[1117,2],[1120,1],[1143,1],[1209,2],[1212,1]]},"516":{"position":[[274,1],[301,3],[333,1],[402,1],[404,2]]},"518":{"position":[[467,1],[492,1],[494,2],[506,1],[529,1],[569,1],[571,2],[607,2],[639,1],[641,2],[676,2],[710,1],[712,2],[750,2]]},"519":{"position":[[348,1],[350,1],[352,2],[355,3],[359,1],[382,1],[390,1],[392,3],[402,1],[418,1],[420,1],[443,1],[472,1],[496,1],[498,2],[501,3],[505,1],[533,1],[557,1],[559,2],[562,3],[566,1],[596,1],[620,1],[622,2],[625,3],[629,1],[638,1],[729,1],[731,1]]},"520":{"position":[[445,2],[514,1],[533,1],[542,2],[551,1],[568,1],[570,2],[579,1],[581,2],[598,1],[600,2],[603,3],[607,1],[630,1],[688,2],[697,1],[706,1],[724,1],[726,1]]},"521":{"position":[[162,1],[208,1],[245,1],[247,3],[328,1],[414,1],[422,1],[432,2],[478,1],[480,2],[505,1],[590,1],[598,1],[608,2],[637,1],[639,2],[664,1],[673,1],[689,1],[691,1],[1037,2]]},"522":{"position":[[552,1],[593,1],[629,1],[631,1],[644,3],[648,2],[651,1],[673,1],[756,1],[781,1],[789,1],[791,3],[801,1],[817,1],[819,1],[842,1],[856,1],[858,2],[867,1],[882,1],[884,2],[887,2],[972,1],[994,1],[1070,1],[1072,1],[1074,2],[1113,1],[1141,1],[1172,1],[1203,1],[1227,1],[1235,1],[1243,1],[1245,1],[1350,1],[1363,1],[1461,1],[1463,1],[1472,1],[1505,1],[1507,1]]}},"keywords":{}}],["0",{"_index":1089,"title":{},"content":{"166":{"position":[[451,1]]},"189":{"position":[[487,1],[985,2]]},"196":{"position":[[954,2]]},"207":{"position":[[949,2]]},"286":{"position":[[682,2]]},"294":{"position":[[926,2]]},"311":{"position":[[976,2]]},"317":{"position":[[1433,2]]},"327":{"position":[[959,2]]},"333":{"position":[[787,2]]},"520":{"position":[[264,1]]}},"keywords":{}}],["0.0",{"_index":1086,"title":{},"content":{"166":{"position":[[381,3]]}},"keywords":{}}],["0.036255",{"_index":547,"title":{},"content":{"21":{"position":[[1456,8]]}},"keywords":{}}],["0.038809",{"_index":549,"title":{},"content":{"21":{"position":[[1508,8]]}},"keywords":{}}],["0.042311",{"_index":553,"title":{},"content":{"21":{"position":[[1606,8]]}},"keywords":{}}],["0.048383",{"_index":551,"title":{},"content":{"21":{"position":[[1555,8]]}},"keywords":{}}],["0.066886",{"_index":564,"title":{},"content":{"21":{"position":[[1828,8]]}},"keywords":{}}],["0.073921",{"_index":543,"title":{},"content":{"21":{"position":[[1355,8]]}},"keywords":{}}],["0.080532",{"_index":562,"title":{},"content":{"21":{"position":[[1783,8]]}},"keywords":{}}],["0.083366",{"_index":555,"title":{},"content":{"21":{"position":[[1644,8]]}},"keywords":{}}],["0.083601",{"_index":558,"title":{},"content":{"21":{"position":[[1701,8]]}},"keywords":{}}],["0.094875",{"_index":556,"title":{},"content":{"21":{"position":[[1664,8]]}},"keywords":{}}],["0.095098",{"_index":545,"title":{},"content":{"21":{"position":[[1404,8]]}},"keywords":{}}],["0.156033",{"_index":541,"title":{},"content":{"21":{"position":[[1307,8]]}},"keywords":{}}],["0.19702",{"_index":560,"title":{},"content":{"21":{"position":[[1748,7]]}},"keywords":{}}],["0.x",{"_index":2085,"title":{"359":{"position":[[8,3]]}},"content":{"361":{"position":[[10,3]]}},"keywords":{}}],["0000",{"_index":1534,"title":{},"content":{"212":{"position":[[337,6]]},"214":{"position":[[1401,6]]}},"keywords":{}}],["01",{"_index":1007,"title":{},"content":{"161":{"position":[[424,3]]},"187":{"position":[[510,2],[601,2],[648,2],[662,2],[720,2]]}},"keywords":{}}],["02",{"_index":1009,"title":{},"content":{"161":{"position":[[448,2],[451,3]]}},"keywords":{}}],["03",{"_index":992,"title":{},"content":{"161":{"position":[[266,3]]},"187":{"position":[[745,2]]},"516":{"position":[[138,3]]}},"keywords":{}}],["04",{"_index":995,"title":{},"content":{"161":{"position":[[290,3],[319,2],[421,2]]},"187":{"position":[[486,2],[529,2],[604,2],[659,2],[706,2],[717,2],[756,2],[764,2]]}},"keywords":{}}],["05",{"_index":1012,"title":{},"content":{"161":{"position":[[486,2]]},"187":{"position":[[612,2],[670,2],[695,2]]}},"keywords":{}}],["06",{"_index":1365,"title":{},"content":{"187":{"position":[[507,2]]}},"keywords":{}}],["08",{"_index":991,"title":{},"content":{"161":{"position":[[263,2],[540,2]]},"187":{"position":[[742,2]]}},"keywords":{}}],["09",{"_index":994,"title":{},"content":{"161":{"position":[[287,2]]},"187":{"position":[[576,2],[753,2]]}},"keywords":{}}],["1",{"_index":294,"title":{},"content":{"16":{"position":[[1393,2]]},"166":{"position":[[389,1]]},"175":{"position":[[357,3]]},"187":{"position":[[71,3]]},"196":{"position":[[879,3],[936,2]]},"200":{"position":[[600,2]]},"207":{"position":[[874,3],[931,2]]},"286":{"position":[[607,3],[664,2]]},"287":{"position":[[334,3]]},"294":{"position":[[851,3],[908,2]]},"311":{"position":[[901,3],[958,2]]},"317":{"position":[[836,1],[1358,3],[1415,2]]},"318":{"position":[[277,2]]},"327":{"position":[[884,3],[941,2]]},"333":{"position":[[712,3],[769,2]]},"369":{"position":[[207,4],[310,4],[520,4]]},"484":{"position":[[644,2],[938,2]]},"519":{"position":[[74,1]]},"522":{"position":[[733,2]]}},"keywords":{}}],["1%.ftl",{"_index":2171,"title":{},"content":{"369":{"position":[[501,10]]}},"keywords":{}}],["1%.ftl}.j",{"_index":2172,"title":{},"content":{"369":{"position":[[547,12]]}},"keywords":{}}],["1%.json}.j",{"_index":2167,"title":{},"content":{"369":{"position":[[396,13]]}},"keywords":{}}],["1"",{"_index":1118,"title":{},"content":{"167":{"position":[[590,8],[792,8]]}},"keywords":{}}],["1.0",{"_index":1223,"title":{},"content":{"175":{"position":[[548,4]]}},"keywords":{}}],["1.x",{"_index":1975,"title":{"324":{"position":[[8,4]]},"359":{"position":[[15,3]]},"372":{"position":[[8,3]]}},"content":{"360":{"position":[[9,3]]},"361":{"position":[[173,3],[494,4]]},"362":{"position":[[9,3],[292,4]]}},"keywords":{}}],["10",{"_index":1360,"title":{"362":{"position":[[8,2]]}},"content":{"187":{"position":[[475,2],[518,2],[554,2]]},"248":{"position":[[429,2]]},"362":{"position":[[242,3]]}},"keywords":{}}],["10,000",{"_index":227,"title":{},"content":{"16":{"position":[[21,6]]}},"keywords":{}}],["100",{"_index":1194,"title":{},"content":{"172":{"position":[[34,3]]},"204":{"position":[[195,4]]}},"keywords":{}}],["1000",{"_index":2037,"title":{},"content":{"328":{"position":[[995,5]]},"330":{"position":[[1490,5]]}},"keywords":{}}],["1000000",{"_index":508,"title":{},"content":{"21":{"position":[[358,8]]}},"keywords":{}}],["11",{"_index":1015,"title":{},"content":{"161":{"position":[[513,2],[610,2],[637,2]]},"187":{"position":[[565,2],[579,2]]},"248":{"position":[[418,3],[438,2]]}},"keywords":{}}],["11e6",{"_index":1124,"title":{},"content":{"167":{"position":[[691,4]]}},"keywords":{}}],["12",{"_index":288,"title":{"362":{"position":[[15,2]]}},"content":{"16":{"position":[[1314,3],[1405,2]]},"161":{"position":[[489,3]]},"167":{"position":[[1051,2]]},"187":{"position":[[615,2],[623,2],[673,2]]},"362":{"position":[[236,2]]},"515":{"position":[[65,2]]},"516":{"position":[[135,2]]}},"keywords":{}}],["128",{"_index":1120,"title":{},"content":{"167":{"position":[[633,4]]}},"keywords":{}}],["12t21:21:08.921z"",{"_index":1141,"title":{},"content":{"167":{"position":[[1054,23]]}},"keywords":{}}],["1378562164lambda",{"_index":1888,"title":{},"content":{"305":{"position":[[760,16]]}},"keywords":{}}],["15",{"_index":2035,"title":{},"content":{"328":{"position":[[985,2]]},"330":{"position":[[1480,2]]}},"keywords":{}}],["150m",{"_index":2138,"title":{},"content":{"365":{"position":[[1146,5]]}},"keywords":{}}],["1592234975665",{"_index":1225,"title":{},"content":{"175":{"position":[[596,14]]}},"keywords":{}}],["16f6",{"_index":1515,"title":{},"content":{"204":{"position":[[268,4]]}},"keywords":{}}],["17",{"_index":1370,"title":{},"content":{"187":{"position":[[557,2]]}},"keywords":{}}],["19",{"_index":290,"title":{},"content":{"16":{"position":[[1329,3]]}},"keywords":{}}],["1:123456789012:function:shop",{"_index":1114,"title":{},"content":{"167":{"position":[[528,32]]}},"keywords":{}}],["1m",{"_index":570,"title":{},"content":{"21":{"position":[[1899,3]]}},"keywords":{}}],["2",{"_index":1341,"title":{},"content":{"187":{"position":[[43,3]]},"484":{"position":[[795,2],[1111,2]]}},"keywords":{}}],["2.x",{"_index":1930,"title":{"322":{"position":[[8,3]]},"323":{"position":[[8,3]]},"372":{"position":[[15,3]]},"376":{"position":[[8,3]]}},"content":{},"keywords":{}}],["20",{"_index":1374,"title":{},"content":{"187":{"position":[[698,2]]}},"keywords":{}}],["200",{"_index":276,"title":{},"content":{"16":{"position":[[985,4]]},"179":{"position":[[675,4]]},"191":{"position":[[157,4]]},"197":{"position":[[291,4]]},"199":{"position":[[1112,4]]},"200":{"position":[[872,4]]},"212":{"position":[[150,4]]},"214":{"position":[[1170,4]]},"226":{"position":[[750,4]]},"249":{"position":[[546,4]]},"250":{"position":[[327,4]]},"258":{"position":[[174,4]]},"273":{"position":[[197,4]]},"287":{"position":[[153,4]]},"291":{"position":[[170,4]]},"295":{"position":[[166,4]]},"297":{"position":[[1119,4]]},"312":{"position":[[167,4]]},"320":{"position":[[1161,4]]},"324":{"position":[[859,3]]},"334":{"position":[[140,4]]},"358":{"position":[[266,4],[422,4]]},"456":{"position":[[50,3]]}},"keywords":{}}],["2016",{"_index":983,"title":{},"content":{"161":{"position":[[51,7]]}},"keywords":{}}],["2017",{"_index":296,"title":{},"content":{"16":{"position":[[1451,5]]},"161":{"position":[[177,4]]},"187":{"position":[[737,4],[748,4]]}},"keywords":{}}],["2018",{"_index":1373,"title":{},"content":{"187":{"position":[[690,4]]}},"keywords":{}}],["2019",{"_index":2339,"title":{},"content":{"516":{"position":[[130,4]]}},"keywords":{}}],["2020",{"_index":1375,"title":{},"content":{"187":{"position":[[701,4],[759,4]]},"515":{"position":[[60,4]]}},"keywords":{}}],["2021",{"_index":1010,"title":{},"content":{"161":{"position":[[455,4]]},"187":{"position":[[643,4],[654,4],[712,4]]}},"keywords":{}}],["2022",{"_index":1369,"title":{},"content":{"187":{"position":[[549,4],[560,4],[596,4],[607,4],[618,4],[665,4]]}},"keywords":{}}],["2023",{"_index":1021,"title":{},"content":{"161":{"position":[[558,4]]},"187":{"position":[[502,4],[513,4],[571,4]]}},"keywords":{}}],["2024",{"_index":1359,"title":{},"content":{"187":{"position":[[459,4],[470,4]]}},"keywords":{}}],["2025",{"_index":1366,"title":{},"content":{"187":{"position":[[524,4]]}},"keywords":{}}],["2026",{"_index":1362,"title":{},"content":{"187":{"position":[[481,4]]}},"keywords":{}}],["2027",{"_index":297,"title":{},"content":{"16":{"position":[[1466,4]]}},"keywords":{}}],["22",{"_index":1019,"title":{},"content":{"161":{"position":[[543,3]]}},"keywords":{}}],["24",{"_index":1016,"title":{},"content":{"161":{"position":[[516,3]]},"187":{"position":[[521,2],[568,2],[651,2]]}},"keywords":{}}],["25",{"_index":998,"title":{},"content":{"161":{"position":[[322,3]]},"187":{"position":[[709,2],[767,2]]}},"keywords":{}}],["29",{"_index":1361,"title":{},"content":{"187":{"position":[[478,2]]}},"keywords":{}}],["2nd",{"_index":1031,"title":{},"content":{"161":{"position":[[708,3]]}},"keywords":{}}],["3",{"_index":298,"title":{},"content":{"16":{"position":[[1508,2]]},"519":{"position":[[79,1]]}},"keywords":{}}],["3.x",{"_index":1967,"title":{"323":{"position":[[14,4]]},"376":{"position":[[15,3]]},"453":{"position":[[8,3]]}},"content":{},"keywords":{}}],["30",{"_index":1363,"title":{},"content":{"187":{"position":[[489,2],[532,2]]},"258":{"position":[[244,3]]}},"keywords":{}}],["31",{"_index":1371,"title":{},"content":{"187":{"position":[[626,2]]}},"keywords":{}}],["4",{"_index":299,"title":{},"content":{"16":{"position":[[1522,2]]}},"keywords":{}}],["4.x",{"_index":1931,"title":{"322":{"position":[[14,4]]},"415":{"position":[[8,3]]},"453":{"position":[[15,3]]}},"content":{},"keywords":{}}],["406",{"_index":1568,"title":{},"content":{"225":{"position":[[882,5]]}},"keywords":{}}],["408",{"_index":657,"title":{},"content":{"31":{"position":[[1439,3]]},"43":{"position":[[1439,3]]},"46":{"position":[[1564,3]]},"97":{"position":[[1439,3]]},"150":{"position":[[1451,3]]},"520":{"position":[[720,3]]}},"keywords":{}}],["415",{"_index":1642,"title":{},"content":{"244":{"position":[[168,3]]},"253":{"position":[[353,3]]},"265":{"position":[[61,3]]}},"keywords":{}}],["422",{"_index":1600,"title":{},"content":{"230":{"position":[[370,4]]},"240":{"position":[[1816,4]]},"474":{"position":[[12,3]]}},"keywords":{}}],["422b1569",{"_index":1514,"title":{},"content":{"204":{"position":[[258,9]]}},"keywords":{}}],["4a03",{"_index":1516,"title":{},"content":{"204":{"position":[[273,4]]}},"keywords":{}}],["5.x",{"_index":2264,"title":{"415":{"position":[[15,3]]}},"content":{},"keywords":{}}],["50",{"_index":2137,"title":{},"content":{"365":{"position":[[1143,2]]},"520":{"position":[[662,3]]}},"keywords":{}}],["500",{"_index":1595,"title":{},"content":{"229":{"position":[[336,3]]},"428":{"position":[[13,3]]},"456":{"position":[[86,3]]},"496":{"position":[[75,3],[185,3]]}},"keywords":{}}],["5432",{"_index":1843,"title":{},"content":{"287":{"position":[[401,4]]}},"keywords":{}}],["5555",{"_index":767,"title":{},"content":{"106":{"position":[[448,4]]}},"keywords":{}}],["5timeoutearlyrespons",{"_index":2220,"title":{},"content":{"378":{"position":[[782,22]]}},"keywords":{}}],["6",{"_index":2112,"title":{"362":{"position":[[42,1]]}},"content":{},"keywords":{}}],["6.x",{"_index":2114,"title":{},"content":{"362":{"position":[[58,3]]}},"keywords":{}}],["60",{"_index":2036,"title":{},"content":{"328":{"position":[[990,2]]},"330":{"position":[[1485,2]]}},"keywords":{}}],["66.141835",{"_index":565,"title":{},"content":{"21":{"position":[[1847,9]]}},"keywords":{}}],["7",{"_index":1678,"title":{},"content":{"249":{"position":[[428,1]]},"250":{"position":[[624,1]]}},"keywords":{}}],["7b61",{"_index":1123,"title":{},"content":{"167":{"position":[[686,4]]}},"keywords":{}}],["8",{"_index":1427,"title":{"362":{"position":[[48,1]]}},"content":{"193":{"position":[[295,3]]},"249":{"position":[[387,1]]},"250":{"position":[[583,1]]},"392":{"position":[[50,2]]}},"keywords":{}}],["8.x",{"_index":2115,"title":{},"content":{"362":{"position":[[66,3]]}},"keywords":{}}],["9",{"_index":1349,"title":{},"content":{"187":{"position":[[175,3]]}},"keywords":{}}],["93e812345678"",{"_index":1126,"title":{},"content":{"167":{"position":[[701,19]]}},"keywords":{}}],["99999",{"_index":2363,"title":{},"content":{"520":{"position":[[454,7]]}},"keywords":{}}],["9a41",{"_index":1125,"title":{},"content":{"167":{"position":[[696,4]]}},"keywords":{}}],["_",{"_index":1598,"title":{},"content":{"230":{"position":[[312,3]]},"240":{"position":[[1699,3]]},"241":{"position":[[245,3]]},"245":{"position":[[541,3]]},"254":{"position":[[718,3]]},"258":{"position":[[508,3]]},"266":{"position":[[608,3]]},"273":{"position":[[721,3]]},"277":{"position":[[393,3]]},"318":{"position":[[442,3]]}},"keywords":{}}],["__dirnam",{"_index":126,"title":{},"content":{"8":{"position":[[205,9],[355,9]]}},"keywords":{}}],["__filenam",{"_index":124,"title":{},"content":{"8":{"position":[[155,10]]}},"keywords":{}}],["__middlewar",{"_index":2224,"title":{},"content":{"378":{"position":[[1021,13]]}},"keywords":{}}],["_context",{"_index":1102,"title":{},"content":{"167":{"position":[[213,9]]},"171":{"position":[[360,9]]},"175":{"position":[[251,9]]},"179":{"position":[[531,9]]}},"keywords":{}}],["_event",{"_index":1101,"title":{},"content":{"167":{"position":[[204,8]]},"171":{"position":[[351,8]]},"175":{"position":[[233,8]]}},"keywords":{}}],["abil",{"_index":2336,"title":{},"content":{"516":{"position":[[89,7]]}},"keywords":{}}],["abort",{"_index":1382,"title":{},"content":{"189":{"position":[[184,5]]}},"keywords":{}}],["abortcontrol",{"_index":1396,"title":{},"content":{"189":{"position":[[748,16]]},"378":{"position":[[515,15]]},"520":{"position":[[130,15]]}},"keywords":{}}],["abortcontrolerremov",{"_index":2284,"title":{},"content":{"455":{"position":[[21,20]]}},"keywords":{}}],["abortcontroller.set",{"_index":1391,"title":{},"content":{"189":{"position":[[537,19]]}},"keywords":{}}],["abortsignal.timeout",{"_index":2273,"title":{},"content":{"417":{"position":[[97,22]]}},"keywords":{}}],["abov",{"_index":1109,"title":{},"content":{"167":{"position":[[398,5]]},"171":{"position":[[516,5]]},"175":{"position":[[441,5]]},"185":{"position":[[384,7]]},"518":{"position":[[792,6]]}},"keywords":{}}],["accept",{"_index":1075,"title":{},"content":{"166":{"position":[[19,7],[485,7]]},"170":{"position":[[19,7],[379,7]]},"174":{"position":[[19,7],[300,7]]},"178":{"position":[[12,7]]},"236":{"position":[[314,7]]},"272":{"position":[[222,6],[552,7]]},"273":{"position":[[637,7]]},"281":{"position":[[145,6]]},"290":{"position":[[62,7],[204,7]]},"338":{"position":[[30,7]]},"490":{"position":[[115,7]]}},"keywords":{}}],["acceptcontext.preferredcontenttyp",{"_index":1770,"title":{},"content":{"272":{"position":[[240,34]]}},"keywords":{}}],["access",{"_index":1315,"title":{},"content":{"185":{"position":[[170,6],[282,6]]},"240":{"position":[[46,6],[316,6],[406,6],[883,6],[973,6],[1070,6],[1169,6]]},"322":{"position":[[699,9]]},"365":{"position":[[971,6]]},"404":{"position":[[18,6]]},"423":{"position":[[86,6]]},"519":{"position":[[828,6]]}},"keywords":{}}],["accesstoken",{"_index":2028,"title":{},"content":{"328":{"position":[[201,12],[827,12],[1129,15]]},"330":{"position":[[1201,12]]}},"keywords":{}}],["account",{"_index":1386,"title":{},"content":{"189":{"position":[[398,7]]}},"keywords":{}}],["action",{"_index":1520,"title":{},"content":{"204":{"position":[[400,7]]}},"keywords":{}}],["activ",{"_index":1411,"title":{},"content":{"189":{"position":[[1468,6]]},"322":{"position":[[442,6]]}},"keywords":{}}],["actual",{"_index":1291,"title":{},"content":{"181":{"position":[[538,6]]}},"keywords":{}}],["ad",{"_index":279,"title":{},"content":{"16":{"position":[[1064,5]]},"161":{"position":[[675,6]]},"174":{"position":[[544,6]]},"183":{"position":[[23,6]]},"281":{"position":[[320,6]]},"302":{"position":[[43,5]]},"317":{"position":[[895,5]]},"378":{"position":[[913,5]]},"495":{"position":[[1,5]]},"496":{"position":[[1,5],[125,5]]},"512":{"position":[[40,5]]},"516":{"position":[[76,5]]}},"keywords":{}}],["add",{"_index":281,"title":{},"content":{"16":{"position":[[1152,3]]},"19":{"position":[[618,3]]},"153":{"position":[[834,3]]},"171":{"position":[[613,3]]},"175":{"position":[[1193,3]]},"198":{"position":[[21,3]]},"213":{"position":[[21,3]]},"261":{"position":[[385,4]]},"271":{"position":[[419,3]]},"288":{"position":[[21,3]]},"296":{"position":[[21,3]]},"313":{"position":[[21,3]]},"314":{"position":[[21,3]]},"317":{"position":[[1654,3]]},"319":{"position":[[21,3]]},"329":{"position":[[21,3]]},"335":{"position":[[21,3]]},"350":{"position":[[21,3]]},"367":{"position":[[121,4]]},"384":{"position":[[1,3]]},"386":{"position":[[1,3]]},"399":{"position":[[1,3]]},"468":{"position":[[50,3]]},"469":{"position":[[1,3]]},"484":{"position":[[1114,3]]},"503":{"position":[[11,4]]}},"keywords":{}}],["addit",{"_index":212,"title":{},"content":{"15":{"position":[[370,10]]},"164":{"position":[[291,10]]},"176":{"position":[[508,10]]},"199":{"position":[[816,10]]},"214":{"position":[[868,10]]},"271":{"position":[[423,10]]},"297":{"position":[[813,10]]},"320":{"position":[[828,10]]},"330":{"position":[[812,10]]},"365":{"position":[[308,10]]}},"keywords":{}}],["addition",{"_index":600,"title":{},"content":{"21":{"position":[[2588,13]]},"151":{"position":[[396,13]]},"167":{"position":[[2123,13]]},"171":{"position":[[1391,13]]},"506":{"position":[[5,12]]}},"keywords":{}}],["address",{"_index":1713,"title":{},"content":{"258":{"position":[[248,8]]}},"keywords":{}}],["adjust",{"_index":1674,"title":{},"content":{"249":{"position":[[370,8]]},"250":{"position":[[566,8]]}},"keywords":{}}],["adopt",{"_index":204,"title":{},"content":{"15":{"position":[[202,7]]},"186":{"position":[[68,8]]}},"keywords":{}}],["advanc",{"_index":1463,"title":{},"content":{"199":{"position":[[92,7]]},"214":{"position":[[91,7]]},"297":{"position":[[95,7]]},"320":{"position":[[104,7]]},"327":{"position":[[1280,8]]},"330":{"position":[[82,7]]},"378":{"position":[[683,8]]}},"keywords":{}}],["advantag",{"_index":2251,"title":{},"content":{"406":{"position":[[26,9]]},"522":{"position":[[364,9]]}},"keywords":{}}],["after(async",{"_index":2349,"title":{},"content":{"518":{"position":[[610,12]]}},"keywords":{}}],["after)middleware1",{"_index":1323,"title":{},"content":{"185":{"position":[[532,18]]}},"keywords":{}}],["after)middleware2",{"_index":1322,"title":{},"content":{"185":{"position":[[513,18]]}},"keywords":{}}],["afterhandl",{"_index":523,"title":{},"content":{"21":{"position":[[683,12],[854,13]]},"22":{"position":[[543,12],[714,13]]}},"keywords":{}}],["aftermiddlewar",{"_index":520,"title":{},"content":{"21":{"position":[[606,15],[822,16]]},"22":{"position":[[466,15],[682,16]]}},"keywords":{}}],["ag",{"_index":1628,"title":{},"content":{"240":{"position":[[992,3]]},"258":{"position":[[239,4]]}},"keywords":{}}],["against",{"_index":1196,"title":{},"content":{"172":{"position":[[107,7]]},"240":{"position":[[788,7]]},"281":{"position":[[1129,7]]}},"keywords":{}}],["aggreg",{"_index":1193,"title":{},"content":{"172":{"position":[[16,11]]}},"keywords":{}}],["airbnb/nod",{"_index":611,"title":{},"content":{"22":{"position":[[22,13]]}},"keywords":{}}],["ajv",{"_index":388,"title":{},"content":{"18":{"position":[[411,6],[429,6],[448,6],[481,6],[521,6],[560,6]]},"21":{"position":[[2121,3]]},"322":{"position":[[130,4],[135,3]]},"364":{"position":[[117,3]]},"365":{"position":[[58,3],[209,3],[469,3]]},"366":{"position":[[49,3],[67,3],[77,3],[90,3],[113,3],[127,3]]},"367":{"position":[[48,3]]},"369":{"position":[[157,4],[171,3],[194,3],[296,3],[512,3]]},"371":{"position":[[219,4],[237,4]]},"447":{"position":[[179,3]]},"484":{"position":[[327,3],[985,4]]},"515":{"position":[[10,3],[129,3],[260,3],[330,3]]}},"keywords":{}}],["ajv/.runkit_examples.j",{"_index":387,"title":{},"content":{"18":{"position":[[384,26]]}},"keywords":{}}],["ajv/lib",{"_index":386,"title":{},"content":{"18":{"position":[[373,10]]}},"keywords":{}}],["ajvclass",{"_index":2142,"title":{},"content":{"366":{"position":[[246,8]]}},"keywords":{}}],["alexa",{"_index":617,"title":{"24":{"position":[[0,5]]}},"content":{"25":{"position":[[23,5]]}},"keywords":{}}],["alias",{"_index":2261,"title":{},"content":{"409":{"position":[[196,8]]}},"keywords":{}}],["align",{"_index":1352,"title":{},"content":{"187":{"position":[[252,9]]}},"keywords":{}}],["aliv",{"_index":17,"title":{},"content":{"0":{"position":[[257,5]]}},"keywords":{}}],["allerror",{"_index":2144,"title":{},"content":{"366":{"position":[[319,10]]}},"keywords":{}}],["alloc",{"_index":1690,"title":{},"content":{"253":{"position":[[654,9]]}},"keywords":{}}],["allow",{"_index":10,"title":{},"content":{"0":{"position":[[143,6]]},"5":{"position":[[351,5]]},"15":{"position":[[47,6],[290,6]]},"17":{"position":[[665,6]]},"19":{"position":[[119,6]]},"158":{"position":[[45,5]]},"167":{"position":[[1647,6],[2341,6]]},"175":{"position":[[1179,6]]},"189":{"position":[[234,5]]},"199":{"position":[[296,6],[672,6]]},"214":{"position":[[329,6],[712,6]]},"221":{"position":[[144,6]]},"225":{"position":[[36,6],[126,6],[231,6],[323,6],[429,6],[521,6],[628,6],[723,6]]},"240":{"position":[[61,5],[331,5],[421,5],[740,7],[1759,5]]},"241":{"position":[[305,5]]},"253":{"position":[[946,8]]},"272":{"position":[[172,6],[278,6],[409,5]]},"297":{"position":[[292,6],[657,6]]},"305":{"position":[[534,7]]},"320":{"position":[[299,6],[672,6]]},"330":{"position":[[292,6],[668,6]]},"360":{"position":[[242,6]]},"365":{"position":[[349,5]]},"367":{"position":[[71,6]]},"378":{"position":[[534,5],[628,5],[940,5]]},"386":{"position":[[34,5]]},"388":{"position":[[73,5]]},"395":{"position":[[7,5]]},"404":{"position":[[7,5]]},"413":{"position":[[7,5]]},"423":{"position":[[80,5]]},"441":{"position":[[74,5]]},"484":{"position":[[97,8],[388,5],[477,5]]},"518":{"position":[[869,5]]},"519":{"position":[[821,6]]},"520":{"position":[[177,5]]}},"keywords":{}}],["along",{"_index":2020,"title":{},"content":{"327":{"position":[[1212,5]]},"416":{"position":[[71,5]]}},"keywords":{}}],["alpha",{"_index":1343,"title":{},"content":{"187":{"position":[[53,5],[214,6],[408,5]]}},"keywords":{}}],["alreadi",{"_index":832,"title":{},"content":{"140":{"position":[[564,7]]},"159":{"position":[[1070,7]]},"182":{"position":[[1375,7]]},"253":{"position":[[732,7]]},"357":{"position":[[834,7]]},"361":{"position":[[649,7]]},"378":{"position":[[347,7]]}},"keywords":{}}],["altern",{"_index":1389,"title":{},"content":{"189":{"position":[[495,13]]},"491":{"position":[[86,11]]}},"keywords":{}}],["although",{"_index":1401,"title":{},"content":{"189":{"position":[[1068,8]]}},"keywords":{}}],["alway",{"_index":1495,"title":{},"content":{"200":{"position":[[1084,6]]},"490":{"position":[[922,6]]}},"keywords":{}}],["amazon",{"_index":622,"title":{},"content":{"27":{"position":[[62,6]]},"30":{"position":[[23,6]]},"36":{"position":[[23,6]]},"42":{"position":[[23,6]]},"66":{"position":[[23,6]]},"69":{"position":[[23,6]]},"72":{"position":[[23,6]]},"75":{"position":[[23,6]]},"78":{"position":[[19,6]]},"87":{"position":[[23,6]]},"90":{"position":[[19,6]]},"96":{"position":[[23,6]]},"99":{"position":[[23,6]]},"102":{"position":[[19,6]]},"109":{"position":[[23,6]]},"112":{"position":[[23,6]]},"115":{"position":[[23,6]]},"118":{"position":[[23,6],[67,6]]},"124":{"position":[[23,6]]},"127":{"position":[[23,6]]},"130":{"position":[[23,6]]},"136":{"position":[[28,6]]},"142":{"position":[[23,6]]},"149":{"position":[[23,6]]},"163":{"position":[[376,6],[614,6]]},"172":{"position":[[432,6]]},"323":{"position":[[578,6]]},"324":{"position":[[1462,6]]}},"keywords":{}}],["amount",{"_index":266,"title":{},"content":{"16":{"position":[[829,6],[1576,7]]}},"keywords":{}}],["amp",{"_index":1662,"title":{},"content":{"248":{"position":[[432,5],[590,5]]},"365":{"position":[[1105,5]]},"369":{"position":[[44,5]]},"377":{"position":[[31,5]]}},"keywords":{}}],["amp;&",{"_index":868,"title":{},"content":{"151":{"position":[[850,10]]}},"keywords":{}}],["and",{"_index":2231,"title":{},"content":{"385":{"position":[[29,4]]}},"keywords":{}}],["and/or",{"_index":2018,"title":{},"content":{"327":{"position":[[1144,6]]}},"keywords":{}}],["annot",{"_index":1164,"title":{},"content":{"168":{"position":[[62,12]]},"171":{"position":[[620,10],[910,12]]}},"keywords":{}}],["anymor",{"_index":2117,"title":{},"content":{"362":{"position":[[157,7]]}},"keywords":{}}],["anyth",{"_index":377,"title":{},"content":{"18":{"position":[[207,8]]}},"keywords":{}}],["anyway",{"_index":324,"title":{},"content":{"17":{"position":[[161,7]]}},"keywords":{}}],["anywher",{"_index":1946,"title":{},"content":{"322":{"position":[[762,8]]}},"keywords":{}}],["apach",{"_index":737,"title":{},"content":{"93":{"position":[[32,6]]}},"keywords":{}}],["api",{"_index":234,"title":{"23":{"position":[[0,3]]},"29":{"position":[[0,3]]},"35":{"position":[[0,3]]},"41":{"position":[[0,3]]},"348":{"position":[[0,3]]}},"content":{"16":{"position":[[104,3]]},"27":{"position":[[69,3]]},"30":{"position":[[30,3],[59,4]]},"36":{"position":[[30,3],[64,4]]},"42":{"position":[[30,3],[59,4]]},"96":{"position":[[30,3],[59,4]]},"167":{"position":[[566,3],[768,3]]},"171":{"position":[[1260,4]]},"196":{"position":[[563,3]]},"200":{"position":[[204,3]]},"207":{"position":[[559,3]]},"286":{"position":[[290,3]]},"294":{"position":[[542,3]]},"311":{"position":[[591,3]]},"317":{"position":[[557,3]]},"322":{"position":[[1374,3]]},"327":{"position":[[522,3]]},"333":{"position":[[402,3]]},"357":{"position":[[385,3]]},"412":{"position":[[35,3]]},"521":{"position":[[110,3]]},"522":{"position":[[486,5]]}},"keywords":{}}],["api:manageconnectionsif",{"_index":2063,"title":{},"content":{"346":{"position":[[758,23]]}},"keywords":{}}],["apigatewaymanagementapi",{"_index":91,"title":{},"content":{"6":{"position":[[468,25]]},"8":{"position":[[675,25]]},"345":{"position":[[135,23]]},"346":{"position":[[61,23]]},"350":{"position":[[41,23]]}},"keywords":{}}],["apigatewaymanagementapi.awsclientopt",{"_index":2062,"title":{},"content":{"346":{"position":[[181,40]]}},"keywords":{}}],["apigatewaymanagementapicli",{"_index":2061,"title":{},"content":{"346":{"position":[[29,31],[271,29]]}},"keywords":{}}],["apigatewayproxyev",{"_index":1479,"title":{},"content":{"200":{"position":[[352,21]]},"521":{"position":[[164,21]]}},"keywords":{}}],["apigatewayproxyresult",{"_index":1480,"title":{},"content":{"200":{"position":[[374,21]]},"521":{"position":[[186,21]]}},"keywords":{}}],["apigatewayproxyresult>",{"_index":1482,"title":{},"content":{"200":{"position":[[470,27]]},"521":{"position":[[296,25],[388,25],[564,25]]}},"keywords":{}}],["apisinput",{"_index":621,"title":{},"content":{"27":{"position":[[46,9]]}},"keywords":{}}],["apitoken",{"_index":1483,"title":{},"content":{"200":{"position":[[534,9]]},"318":{"position":[[211,9]]}},"keywords":{}}],["apollo",{"_index":814,"title":{"140":{"position":[[0,6]]}},"content":{"140":{"position":[[0,6],[210,7],[587,6]]}},"keywords":{}}],["apollo/feder",{"_index":825,"title":{},"content":{"140":{"position":[[270,20]]}},"keywords":{}}],["apolloserv",{"_index":822,"title":{},"content":{"140":{"position":[[185,13],[417,14]]}},"keywords":{}}],["app",{"_index":1571,"title":{},"content":{"225":{"position":[[1007,4]]}},"keywords":{}}],["appconfig",{"_index":779,"title":{"194":{"position":[[0,9]]},"420":{"position":[[0,10]]}},"content":{"107":{"position":[[323,10],[837,10]]},"196":{"position":[[757,11]]},"197":{"position":[[40,9],[104,11]]},"198":{"position":[[41,9]]},"199":{"position":[[9,9],[374,9],[992,10],[1221,11]]},"283":{"position":[[1,10]]},"323":{"position":[[567,10]]}},"keywords":{}}],["appconfig.awsclientopt",{"_index":1437,"title":{},"content":{"196":{"position":[[159,26]]},"294":{"position":[[145,26]]}},"keywords":{}}],["appconfig.dynamodb",{"_index":1824,"title":{},"content":{"283":{"position":[[43,19]]}},"keywords":{}}],["appconfig:getlatestconfigur",{"_index":1457,"title":{},"content":{"196":{"position":[[1161,32]]}},"keywords":{}}],["appconfig:startconfigurationsess",{"_index":1456,"title":{},"content":{"196":{"position":[[1121,35]]}},"keywords":{}}],["appconfigcli",{"_index":1434,"title":{},"content":{"196":{"position":[[29,17],[47,15],[235,15]]}},"keywords":{}}],["appconfigdata",{"_index":1432,"title":{},"content":{"195":{"position":[[133,13]]},"420":{"position":[[25,13]]}},"keywords":{}}],["appconfigmiddlewar",{"_index":774,"title":{},"content":{"107":{"position":[[82,19],[288,21]]}},"keywords":{}}],["appconfigreq",{"_index":1467,"title":{},"content":{"199":{"position":[[251,12],[601,12],[938,13],[1005,12]]}},"keywords":{}}],["appconfigreq<paramtype>(config",{"_index":1470,"title":{},"content":{"199":{"position":[[545,37]]}},"keywords":{}}],["appear",{"_index":1192,"title":{},"content":{"171":{"position":[[1348,6]]}},"keywords":{}}],["append",{"_index":1152,"title":{},"content":{"167":{"position":[[1661,6]]}},"keywords":{}}],["appli",{"_index":1665,"title":{},"content":{"248":{"position":[[517,6]]},"282":{"position":[[307,7]]},"317":{"position":[[651,5]]},"379":{"position":[[83,7]]},"385":{"position":[[7,7]]},"496":{"position":[[93,7]]}},"keywords":{}}],["applic",{"_index":351,"title":{"44":{"position":[[0,11]]}},"content":{"17":{"position":[[884,11]]},"45":{"position":[[26,11]]},"107":{"position":[[336,12]]},"163":{"position":[[130,13]]},"175":{"position":[[1265,11]]},"197":{"position":[[139,12]]},"199":{"position":[[1256,12]]},"253":{"position":[[850,12]]}},"keywords":{}}],["application/json",{"_index":666,"title":{},"content":{"31":{"position":[[1654,20],[2136,18]]},"43":{"position":[[1654,20],[2147,18]]},"46":{"position":[[1779,20],[2261,18]]},"97":{"position":[[1679,20],[2161,18]]},"150":{"position":[[1666,20],[2148,18]]},"226":{"position":[[642,19],[1008,19]]},"245":{"position":[[396,18]]},"270":{"position":[[353,18]]},"273":{"position":[[562,18]]}},"keywords":{}}],["application/x",{"_index":1750,"title":{},"content":{"266":{"position":[[486,14]]}},"keywords":{}}],["application/xml",{"_index":1583,"title":{},"content":{"226":{"position":[[496,18],[969,18]]}},"keywords":{}}],["application/xml;q=0.9",{"_index":1776,"title":{},"content":{"273":{"position":[[645,23]]}},"keywords":{}}],["application/yaml",{"_index":1585,"title":{},"content":{"226":{"position":[[577,19],[988,19]]}},"keywords":{}}],["application\\/json",{"_index":676,"title":{},"content":{"31":{"position":[[2049,22]]},"43":{"position":[[2049,22]]},"46":{"position":[[2174,22]]},"97":{"position":[[2074,22]]},"150":{"position":[[2061,22]]},"270":{"position":[[192,22]]},"273":{"position":[[401,22]]}},"keywords":{}}],["application\\/xml",{"_index":1761,"title":{},"content":{"270":{"position":[[87,21]]},"273":{"position":[[297,21]]}},"keywords":{}}],["applymiddlewar",{"_index":2223,"title":{},"content":{"378":{"position":[[999,17]]}},"keywords":{}}],["approach",{"_index":361,"title":{},"content":{"17":{"position":[[1055,8]]},"19":{"position":[[110,8]]},"189":{"position":[[432,11]]},"200":{"position":[[1046,9],[1180,8]]},"253":{"position":[[562,8]]},"361":{"position":[[461,9]]}},"keywords":{}}],["appsync",{"_index":681,"title":{"32":{"position":[[0,7]]}},"content":{"33":{"position":[[23,7]]}},"keywords":{}}],["arbitari",{"_index":1153,"title":{},"content":{"167":{"position":[[1668,8]]}},"keywords":{}}],["arbitrari",{"_index":1462,"title":{},"content":{"199":{"position":[[36,9]]},"214":{"position":[[35,9]]},"221":{"position":[[199,9]]},"297":{"position":[[39,9]]},"320":{"position":[[48,9]]},"330":{"position":[[30,9]]}},"keywords":{}}],["argument",{"_index":1496,"title":{},"content":{"200":{"position":[[1291,9]]},"229":{"position":[[102,9]]},"322":{"position":[[816,9]]},"378":{"position":[[595,8]]}},"keywords":{}}],["arn:aws:rd",{"_index":1838,"title":{},"content":{"286":{"position":[[885,11]]}},"keywords":{}}],["around",{"_index":1045,"title":{},"content":{"163":{"position":[[445,6]]},"516":{"position":[[174,7]]},"520":{"position":[[99,6]]}},"keywords":{}}],["array",{"_index":941,"title":{},"content":{"157":{"position":[[399,5]]},"203":{"position":[[332,5]]},"240":{"position":[[708,7],[731,5]]},"290":{"position":[[215,5]]},"353":{"position":[[49,5]]},"357":{"position":[[53,5]]},"366":{"position":[[310,8]]},"369":{"position":[[251,5],[346,5]]},"379":{"position":[[48,5]]}},"keywords":{}}],["array[str",{"_index":1654,"title":{},"content":{"248":{"position":[[211,15]]}},"keywords":{}}],["array[{method",{"_index":2074,"title":{},"content":{"357":{"position":[[8,15]]}},"keywords":{}}],["array[{routekey",{"_index":2071,"title":{},"content":{"353":{"position":[[8,17]]}},"keywords":{}}],["arraysadd",{"_index":2330,"title":{},"content":{"506":{"position":[[99,9]]}},"keywords":{}}],["ask",{"_index":1772,"title":{},"content":{"272":{"position":[[343,3]]}},"keywords":{}}],["assert",{"_index":653,"title":{},"content":{"31":{"position":[[1255,6],[1330,6]]},"43":{"position":[[1255,6],[1330,6]]},"97":{"position":[[1255,6],[1330,6]]},"105":{"position":[[353,6],[428,6]]},"150":{"position":[[1267,6],[1342,6]]}},"keywords":{}}],["assum",{"_index":231,"title":{},"content":{"16":{"position":[[73,6]]},"283":{"position":[[511,7]]},"318":{"position":[[467,8]]},"514":{"position":[[25,6]]}},"keywords":{}}],["assumerol",{"_index":2051,"title":{},"content":{"334":{"position":[[283,11]]}},"keywords":{}}],["async",{"_index":256,"title":{},"content":{"16":{"position":[[641,5]]},"19":{"position":[[38,5],[274,5]]},"159":{"position":[[887,5],[1150,5]]},"167":{"position":[[198,5]]},"171":{"position":[[345,5]]},"175":{"position":[[227,5]]},"179":{"position":[[380,5],[517,5]]},"182":{"position":[[1117,5],[1455,5]]},"308":{"position":[[136,5]]},"375":{"position":[[221,5],[314,5],[356,5],[499,5],[738,5]]},"490":{"position":[[402,5],[500,5],[622,5],[1067,5]]},"519":{"position":[[474,5],[535,5],[598,5]]},"521":{"position":[[416,5],[592,5]]},"522":{"position":[[381,5],[1205,5]]}},"keywords":{}}],["async/await",{"_index":2184,"title":{},"content":{"373":{"position":[[58,11],[229,11]]}},"keywords":{}}],["asynchron",{"_index":1052,"title":{},"content":{"163":{"position":[[647,14]]},"172":{"position":[[234,14]]},"175":{"position":[[957,14]]},"323":{"position":[[136,14],[332,14],[701,12]]}},"keywords":{}}],["asyncmiddi",{"_index":1990,"title":{},"content":{"324":{"position":[[590,10]]}},"keywords":{}}],["attach",{"_index":211,"title":{},"content":{"15":{"position":[[363,6]]},"16":{"position":[[1754,6]]},"156":{"position":[[397,6]]},"157":{"position":[[432,6],[843,6]]},"158":{"position":[[211,8]]},"185":{"position":[[358,8],[663,8]]},"199":{"position":[[832,8]]},"200":{"position":[[1136,8],[1213,6]]},"214":{"position":[[884,8]]},"297":{"position":[[829,8]]},"320":{"position":[[844,8]]},"330":{"position":[[828,8]]},"378":{"position":[[294,6]]}},"keywords":{}}],["attribut",{"_index":1766,"title":{},"content":{"271":{"position":[[240,9],[304,9],[434,10]]},"282":{"position":[[442,10]]}},"keywords":{}}],["augment",{"_index":1489,"title":{},"content":{"200":{"position":[[693,9],[1305,9]]}},"keywords":{}}],["august",{"_index":987,"title":{},"content":{"161":{"position":[[170,6]]}},"keywords":{}}],["auth",{"_index":1999,"title":{},"content":{"324":{"position":[[1100,5]]}},"keywords":{}}],["authent",{"_index":214,"title":{},"content":{"15":{"position":[[402,15]]}},"keywords":{}}],["author",{"_index":215,"title":{"23":{"position":[[12,10]]}},"content":{"15":{"position":[[418,14]]},"18":{"position":[[1518,7]]},"27":{"position":[[25,11],[88,10]]},"324":{"position":[[1121,13],[1376,13]]}},"keywords":{}}],["auto",{"_index":1163,"title":{},"content":{"168":{"position":[[16,4]]},"200":{"position":[[1409,4]]}},"keywords":{}}],["automat",{"_index":1048,"title":{},"content":{"163":{"position":[[499,13]]},"167":{"position":[[1221,13]]},"171":{"position":[[708,13],[852,13],[1014,13],[1109,13],[1289,13]]},"240":{"position":[[162,13]]},"281":{"position":[[541,13],[735,13],[873,13],[998,13],[1066,13],[1173,13]]},"327":{"position":[[573,13]]},"357":{"position":[[806,13]]}},"keywords":{}}],["autoproxyrespons",{"_index":1996,"title":{},"content":{"324":{"position":[[942,18]]}},"keywords":{}}],["availablelanguag",{"_index":661,"title":{},"content":{"31":{"position":[[1593,19]]},"43":{"position":[[1593,19]]},"46":{"position":[[1718,19]]},"97":{"position":[[1618,19]]},"150":{"position":[[1605,19]]},"226":{"position":[[900,19]]}},"keywords":{}}],["availablemediatyp",{"_index":665,"title":{},"content":{"31":{"position":[[1633,20]]},"43":{"position":[[1633,20]]},"46":{"position":[[1758,20]]},"97":{"position":[[1658,20]]},"150":{"position":[[1645,20]]},"226":{"position":[[946,20]]}},"keywords":{}}],["avenu",{"_index":1715,"title":{},"content":{"258":{"position":[[267,7]]}},"keywords":{}}],["avoid",{"_index":1302,"title":{},"content":{"182":{"position":[[661,5]]},"333":{"position":[[1027,7]]}},"keywords":{}}],["aw",{"_index":7,"title":{"25":{"position":[[0,3]]},"27":{"position":[[0,3]]},"30":{"position":[[0,3]]},"33":{"position":[[0,3]]},"36":{"position":[[0,3]]},"39":{"position":[[0,3]]},"42":{"position":[[0,3]]},"45":{"position":[[0,3]]},"48":{"position":[[0,3]]},"51":{"position":[[0,3]]},"54":{"position":[[0,3]]},"57":{"position":[[0,3]]},"60":{"position":[[0,3]]},"63":{"position":[[0,3]]},"66":{"position":[[0,3]]},"69":{"position":[[0,3]]},"72":{"position":[[0,3]]},"75":{"position":[[0,3]]},"78":{"position":[[0,3]]},"81":{"position":[[0,3]]},"84":{"position":[[0,3]]},"87":{"position":[[0,3]]},"90":{"position":[[0,3]]},"93":{"position":[[0,3]]},"96":{"position":[[0,3]]},"99":{"position":[[0,3]]},"102":{"position":[[0,3]]},"104":{"position":[[4,3]]},"109":{"position":[[0,3]]},"112":{"position":[[0,3]]},"115":{"position":[[0,3]]},"118":{"position":[[0,3]]},"121":{"position":[[0,3]]},"124":{"position":[[0,3]]},"127":{"position":[[0,3]]},"130":{"position":[[0,3]]},"133":{"position":[[0,3]]},"136":{"position":[[0,3]]},"142":{"position":[[0,3]]},"149":{"position":[[0,3]]},"151":{"position":[[0,3]]},"162":{"position":[[15,3]]}},"content":{"0":{"position":[[86,3]]},"6":{"position":[[443,3],[451,5],[516,5],[560,5],[611,5],[672,5],[736,5],[773,5]]},"8":{"position":[[650,3],[658,5],[723,5],[767,5],[818,5],[879,5],[943,5],[980,5]]},"15":{"position":[[75,3]]},"16":{"position":[[608,3]]},"17":{"position":[[45,3],[1068,3],[1164,3]]},"18":{"position":[[234,4]]},"25":{"position":[[7,3]]},"27":{"position":[[14,3]]},"30":{"position":[[7,3]]},"33":{"position":[[7,3]]},"36":{"position":[[7,3]]},"39":{"position":[[7,3],[23,3]]},"42":{"position":[[7,3]]},"45":{"position":[[7,3]]},"48":{"position":[[7,3],[23,3]]},"54":{"position":[[7,3]]},"57":{"position":[[7,3],[23,3]]},"60":{"position":[[7,3],[23,3]]},"63":{"position":[[7,3],[23,3]]},"66":{"position":[[7,3]]},"69":{"position":[[7,3]]},"72":{"position":[[7,3]]},"75":{"position":[[7,3]]},"81":{"position":[[7,3],[23,3]]},"84":{"position":[[7,3],[23,3]]},"87":{"position":[[7,3]]},"96":{"position":[[7,3]]},"99":{"position":[[7,3]]},"109":{"position":[[7,3]]},"112":{"position":[[7,3]]},"115":{"position":[[7,3]]},"118":{"position":[[7,3],[42,3]]},"122":{"position":[[153,4]]},"124":{"position":[[7,3]]},"127":{"position":[[7,3]]},"130":{"position":[[7,3]]},"133":{"position":[[7,3]]},"136":{"position":[[13,3]]},"142":{"position":[[7,3]]},"149":{"position":[[7,3]]},"151":{"position":[[0,3]]},"161":{"position":[[40,3]]},"163":{"position":[[452,3],[573,3]]},"165":{"position":[[32,4]]},"167":{"position":[[78,5],[1475,3]]},"168":{"position":[[302,3],[324,3]]},"169":{"position":[[32,4]]},"171":{"position":[[79,5],[149,5],[1036,3],[1430,3]]},"173":{"position":[[32,4]]},"175":{"position":[[83,5]]},"177":{"position":[[32,4],[67,4],[92,4]]},"179":{"position":[[114,5],[204,5]]},"182":{"position":[[839,5]]},"187":{"position":[[267,3],[358,3]]},"193":{"position":[[63,5]]},"195":{"position":[[117,4]]},"196":{"position":[[119,3],[143,4],[484,3]]},"198":{"position":[[12,4],[25,4]]},"200":{"position":[[403,4]]},"203":{"position":[[44,3],[430,3]]},"206":{"position":[[116,4],[141,4]]},"207":{"position":[[117,3],[141,4],[480,3]]},"213":{"position":[[12,4],[25,4]]},"280":{"position":[[84,3]]},"281":{"position":[[55,3]]},"283":{"position":[[294,3],[405,3],[447,3],[553,3]]},"285":{"position":[[118,4]]},"286":{"position":[[101,3],[125,4]]},"288":{"position":[[12,4],[25,4]]},"290":{"position":[[123,3]]},"293":{"position":[[110,4]]},"294":{"position":[[105,3],[129,4],[463,3]]},"296":{"position":[[12,4],[25,4]]},"299":{"position":[[159,4]]},"304":{"position":[[126,4]]},"305":{"position":[[105,3],[129,4],[319,3]]},"310":{"position":[[125,4]]},"311":{"position":[[133,3],[157,4],[512,3]]},"313":{"position":[[12,4],[25,4]]},"314":{"position":[[12,4],[25,4]]},"316":{"position":[[123,4]]},"317":{"position":[[129,3],[153,4],[478,3]]},"319":{"position":[[12,4],[25,4]]},"322":{"position":[[54,3],[509,3],[717,3],[1111,3],[1370,3]]},"323":{"position":[[1,3],[60,3],[168,3],[505,3],[542,3],[563,3]]},"324":{"position":[[700,3],[718,3]]},"326":{"position":[[111,4]]},"327":{"position":[[107,3],[132,4],[398,3],[443,3]]},"329":{"position":[[12,4],[25,4]]},"332":{"position":[[111,4]]},"333":{"position":[[107,3],[131,4],[323,3]]},"335":{"position":[[12,4],[25,4]]},"345":{"position":[[119,4]]},"346":{"position":[[141,3],[165,4],[534,3]]},"350":{"position":[[12,4],[25,4]]},"353":{"position":[[103,3]]},"357":{"position":[[224,3]]},"362":{"position":[[113,3]]},"384":{"position":[[29,3]]},"454":{"position":[[16,3]]},"477":{"position":[[16,3]]},"478":{"position":[[16,3]]},"479":{"position":[[16,3]]},"480":{"position":[[16,3]]},"482":{"position":[[16,3]]},"483":{"position":[[16,3]]},"487":{"position":[[16,3]]},"516":{"position":[[60,3],[72,3]]},"521":{"position":[[215,4]]}},"keywords":{}}],["await",{"_index":487,"title":{},"content":{"19":{"position":[[933,5],[1056,5],[1284,5]]},"21":{"position":[[1220,5]]},"22":{"position":[[1082,5]]},"106":{"position":[[765,5]]},"107":{"position":[[726,5]]},"179":{"position":[[571,5]]},"193":{"position":[[134,5],[317,5]]},"199":{"position":[[1388,5]]},"214":{"position":[[1465,5]]},"297":{"position":[[1411,5]]},"307":{"position":[[180,5]]},"308":{"position":[[178,5]]},"320":{"position":[[1467,5]]},"328":{"position":[[1110,5]]},"330":{"position":[[1605,5]]},"375":{"position":[[540,5],[603,5],[762,5]]},"414":{"position":[[141,5]]},"490":{"position":[[689,5]]},"522":{"position":[[1365,5]]}},"keywords":{}}],["awar",{"_index":1207,"title":{},"content":{"172":{"position":[[529,5]]}},"keywords":{}}],["aws/what",{"_index":2253,"title":{},"content":{"406":{"position":[[68,9]]}},"keywords":{}}],["aws_nodejs_connection_reuse_enabled=1",{"_index":9,"title":{},"content":{"0":{"position":[[100,37]]}},"keywords":{}}],["awsclient",{"_index":1433,"title":{},"content":{"196":{"position":[[1,9]]},"207":{"position":[[1,9]]},"286":{"position":[[1,9]]},"294":{"position":[[1,9]]},"305":{"position":[[1,9]]},"311":{"position":[[1,9]]},"317":{"position":[[1,9]]},"327":{"position":[[1,9]]},"333":{"position":[[1,9]]},"346":{"position":[[1,9]]},"512":{"position":[[26,9]]}},"keywords":{}}],["awsclientassumerol",{"_index":1443,"title":{},"content":{"196":{"position":[[692,19]]},"207":{"position":[[688,19]]},"286":{"position":[[419,19]]},"294":{"position":[[671,19]]},"305":{"position":[[441,19]]},"311":{"position":[[720,19]]},"317":{"position":[[1165,19]]},"327":{"position":[[703,19]]},"333":{"position":[[531,19]]},"346":{"position":[[656,19]]}},"keywords":{}}],["awsclientcaptur",{"_index":798,"title":{},"content":{"122":{"position":[[238,17]]}},"keywords":{}}],["awsclientopt",{"_index":1485,"title":{},"content":{"200":{"position":[[563,17]]},"318":{"position":[[240,17]]},"327":{"position":[[1359,16]]},"349":{"position":[[224,17]]}},"keywords":{}}],["awsclientoptions.endpoint",{"_index":2064,"title":{},"content":{"346":{"position":[[782,25]]}},"keywords":{}}],["awscontext",{"_index":1860,"title":{},"content":{"291":{"position":[[723,11]]}},"keywords":{}}],["b8f0",{"_index":1517,"title":{},"content":{"204":{"position":[[278,4]]}},"keywords":{}}],["babel",{"_index":147,"title":{"10":{"position":[[0,6]]}},"content":{},"keywords":{}}],["babel.config.json",{"_index":155,"title":{},"content":{"10":{"position":[[123,18]]}},"keywords":{}}],["babel/cli",{"_index":148,"title":{},"content":{"10":{"position":[[10,10]]}},"keywords":{}}],["babel/cor",{"_index":149,"title":{},"content":{"10":{"position":[[21,11]]}},"keywords":{}}],["babel/preset",{"_index":150,"title":{},"content":{"10":{"position":[[33,13]]}},"keywords":{}}],["back",{"_index":892,"title":{},"content":{"153":{"position":[[145,4]]},"462":{"position":[[49,4]]}},"keywords":{}}],["balanc",{"_index":702,"title":{"44":{"position":[[17,8]]}},"content":{"45":{"position":[[43,8]]},"248":{"position":[[567,7]]}},"keywords":{}}],["banner:j",{"_index":46,"title":{},"content":{"5":{"position":[[22,9]]}},"keywords":{}}],["banner:js="import",{"_index":55,"title":{},"content":{"5":{"position":[[189,22]]}},"keywords":{}}],["bar",{"_index":1105,"title":{},"content":{"167":{"position":[[293,4]]},"245":{"position":[[511,5],[577,5]]},"254":{"position":[[754,5]]},"490":{"position":[[1203,5]]}},"keywords":{}}],["bare",{"_index":923,"title":{},"content":{"156":{"position":[[168,4]]}},"keywords":{}}],["base",{"_index":280,"title":{},"content":{"16":{"position":[[1070,4]]},"159":{"position":[[689,5]]},"163":{"position":[[879,5]]},"171":{"position":[[732,5]]},"182":{"position":[[919,5]]},"282":{"position":[[453,5]]},"317":{"position":[[760,5]]},"322":{"position":[[1405,5]]},"324":{"position":[[1146,5]]},"360":{"position":[[390,5]]}},"keywords":{}}],["base64",{"_index":1693,"title":{},"content":{"253":{"position":[[775,8]]}},"keywords":{}}],["basepersistencelay",{"_index":1258,"title":{},"content":{"178":{"position":[[61,23]]}},"keywords":{}}],["bash",{"_index":2163,"title":{},"content":{"369":{"position":[[78,4]]}},"keywords":{}}],["batch",{"_index":786,"title":{"111":{"position":[[3,5]]},"298":{"position":[[12,5]]},"406":{"position":[[12,5]]},"444":{"position":[[12,5]]},"481":{"position":[[12,5]]},"512":{"position":[[12,5]]}},"content":{"112":{"position":[[33,5]]},"143":{"position":[[152,5]]},"282":{"position":[[549,5]]},"299":{"position":[[96,5]]},"301":{"position":[[74,5]]},"302":{"position":[[129,5]]},"406":{"position":[[109,5]]}},"keywords":{}}],["batches.idempot",{"_index":1056,"title":{},"content":{"163":{"position":[[773,19]]}},"keywords":{}}],["batches.w",{"_index":1821,"title":{},"content":{"282":{"position":[[593,10]]}},"keywords":{}}],["baz",{"_index":1106,"title":{},"content":{"167":{"position":[[298,5]]}},"keywords":{}}],["be",{"_index":608,"title":{},"content":{"21":{"position":[[2840,5]]},"189":{"position":[[645,5]]},"515":{"position":[[155,5]]}},"keywords":{}}],["becom",{"_index":1312,"title":{},"content":{"183":{"position":[[125,8]]},"187":{"position":[[113,7]]},"409":{"position":[[189,6]]}},"keywords":{}}],["befor",{"_index":884,"title":{},"content":{"152":{"position":[[165,6]]},"157":{"position":[[892,8]]},"158":{"position":[[188,6],[291,6],[391,7],[630,6]]},"159":{"position":[[265,8],[538,6],[1277,7]]},"172":{"position":[[538,6]]},"181":{"position":[[656,6]]},"182":{"position":[[283,6],[1277,6],[1582,7]]},"185":{"position":[[30,6],[53,6],[75,6],[797,6]]},"187":{"position":[[87,6]]},"189":{"position":[[205,6],[295,6]]},"210":{"position":[[97,6],[263,6]]},"318":{"position":[[334,6]]},"322":{"position":[[502,6]]},"353":{"position":[[512,6]]},"357":{"position":[[744,6]]},"369":{"position":[[23,6]]},"375":{"position":[[841,7]]},"378":{"position":[[729,6]]},"490":{"position":[[737,7]]},"518":{"position":[[210,8],[594,6],[833,7]]},"519":{"position":[[96,7],[139,6],[259,7],[640,7]]},"521":{"position":[[336,7],[675,7]]},"522":{"position":[[251,6],[1474,7]]}},"keywords":{}}],["before((async",{"_index":474,"title":{},"content":{"19":{"position":[[653,14]]}},"keywords":{}}],["before((request",{"_index":2033,"title":{},"content":{"328":{"position":[[397,17]]},"468":{"position":[[97,17]]}},"keywords":{}}],["before(async",{"_index":481,"title":{},"content":{"19":{"position":[[816,13]]},"106":{"position":[[707,13]]},"107":{"position":[[668,13]]},"199":{"position":[[1343,13]]},"214":{"position":[[1420,13]]},"297":{"position":[[1366,13]]},"320":{"position":[[1422,13]]},"328":{"position":[[1065,13]]},"330":{"position":[[1560,13]]},"414":{"position":[[94,13]]},"518":{"position":[[539,13]]}},"keywords":{}}],["before)handlermiddleware3",{"_index":1321,"title":{},"content":{"185":{"position":[[486,26]]}},"keywords":{}}],["before)middleware2",{"_index":1319,"title":{},"content":{"185":{"position":[[446,19]]}},"keywords":{}}],["before)middleware3",{"_index":1320,"title":{},"content":{"185":{"position":[[466,19]]}},"keywords":{}}],["before,aft",{"_index":2308,"title":{},"content":{"490":{"position":[[207,13]]}},"keywords":{}}],["before/aft",{"_index":953,"title":{},"content":{"158":{"position":[[372,12],[568,12]]}},"keywords":{}}],["beforehandl",{"_index":521,"title":{},"content":{"21":{"position":[[635,13],[839,14]]},"22":{"position":[[495,13],[699,14]]}},"keywords":{}}],["beforemiddlewar",{"_index":519,"title":{},"content":{"21":{"position":[[575,16],[804,17]]},"22":{"position":[[435,16],[664,17]]}},"keywords":{}}],["beforeprefetch",{"_index":513,"title":{},"content":{"21":{"position":[[411,14],[774,15]]},"22":{"position":[[316,14],[634,15]]},"158":{"position":[[155,17]]}},"keywords":{}}],["beforerequest",{"_index":595,"title":{},"content":{"21":{"position":[[2514,13]]}},"keywords":{}}],["begin",{"_index":860,"title":{},"content":{"151":{"position":[[655,5]]}},"keywords":{}}],["behavior",{"_index":1263,"title":{},"content":{"178":{"position":[[218,8]]},"361":{"position":[[182,8],[287,8]]}},"keywords":{}}],["below",{"_index":2088,"title":{},"content":{"360":{"position":[[351,5]]},"378":{"position":[[209,5]]}},"keywords":{}}],["benefit",{"_index":743,"title":{"105":{"position":[[21,7]]}},"content":{},"keywords":{}}],["best",{"_index":1280,"title":{"180":{"position":[[0,4]]}},"content":{"186":{"position":[[119,4]]},"282":{"position":[[315,4]]},"333":{"position":[[1100,4]]},"521":{"position":[[849,4]]}},"keywords":{}}],["beta",{"_index":1345,"title":{},"content":{"187":{"position":[[81,5]]}},"keywords":{}}],["better",{"_index":226,"title":{},"content":{"16":{"position":[[9,6]]},"140":{"position":[[96,7]]},"144":{"position":[[95,7]]},"145":{"position":[[87,7]]},"146":{"position":[[103,7]]},"147":{"position":[[99,7]]},"151":{"position":[[120,7]]},"167":{"position":[[1289,6]]},"188":{"position":[[92,7]]},"189":{"position":[[90,7]]},"377":{"position":[[127,6]]}},"keywords":{}}],["between",{"_index":1085,"title":{},"content":{"166":{"position":[[373,7]]},"167":{"position":[[1907,7]]},"522":{"position":[[104,7]]}},"keywords":{}}],["big",{"_index":985,"title":{},"content":{"161":{"position":[[117,3]]},"253":{"position":[[594,3],[895,3]]}},"keywords":{}}],["bigger",{"_index":1938,"title":{},"content":{"322":{"position":[[319,6]]}},"keywords":{}}],["bin",{"_index":440,"title":{},"content":{"18":{"position":[[1428,4]]}},"keywords":{}}],["binary/latin1",{"_index":2239,"title":{},"content":{"392":{"position":[[29,13]]}},"keywords":{}}],["block",{"_index":2216,"title":{},"content":{"378":{"position":[[425,5]]}},"keywords":{}}],["bodi",{"_index":244,"title":{"242":{"position":[[10,4]]},"251":{"position":[[15,4]]},"263":{"position":[[15,4]]},"340":{"position":[[8,4]]},"391":{"position":[[10,4]]},"392":{"position":[[15,4]]},"397":{"position":[[15,4]]},"405":{"position":[[9,4]]},"411":{"position":[[8,4]]},"431":{"position":[[10,4]]},"432":{"position":[[15,4]]},"437":{"position":[[15,4]]},"449":{"position":[[8,4]]},"468":{"position":[[10,4]]},"469":{"position":[[15,4]]},"474":{"position":[[15,4]]},"486":{"position":[[8,4]]},"499":{"position":[[10,4]]},"500":{"position":[[15,4]]},"504":{"position":[[15,4]]},"511":{"position":[[9,4]]}},"content":{"16":{"position":[[339,4],[708,4],[990,5],[1229,5],[1855,4]]},"31":{"position":[[634,4],[716,4],[1023,4],[2087,4]]},"37":{"position":[[88,4]]},"43":{"position":[[634,4],[716,4],[1023,4],[2087,4]]},"46":{"position":[[685,4],[767,4],[1074,4],[2212,4]]},"97":{"position":[[634,4],[716,4],[1023,4],[2112,4]]},"140":{"position":[[545,4]]},"150":{"position":[[646,4],[728,4],[1035,4],[2099,4]]},"191":{"position":[[203,5]]},"193":{"position":[[303,4],[394,4]]},"197":{"position":[[309,5]]},"199":{"position":[[1130,5]]},"200":{"position":[[877,5]]},"212":{"position":[[168,5]]},"214":{"position":[[1188,5]]},"226":{"position":[[284,4],[515,4],[597,4],[662,4],[712,4],[755,4]]},"230":{"position":[[375,5]]},"240":{"position":[[1821,5]]},"243":{"position":[[94,4]]},"245":{"position":[[147,4],[483,5],[545,5]]},"249":{"position":[[551,5]]},"250":{"position":[[332,5]]},"252":{"position":[[99,4]]},"254":{"position":[[157,4],[485,5],[722,5]]},"258":{"position":[[179,5]]},"264":{"position":[[99,4]]},"266":{"position":[[157,4],[253,4],[525,5],[612,5]]},"270":{"position":[[124,4],[230,4],[309,4],[323,4]]},"271":{"position":[[235,4],[299,4]]},"273":{"position":[[155,4],[202,4],[334,4],[439,4],[518,4],[532,4]]},"277":{"position":[[188,4],[397,5]]},"281":{"position":[[528,4],[586,4],[608,4],[722,4],[825,4],[860,4],[925,4],[1160,4]]},"287":{"position":[[171,5]]},"291":{"position":[[188,5]]},"295":{"position":[[184,5]]},"297":{"position":[[1137,5]]},"307":{"position":[[294,5]]},"308":{"position":[[171,4],[245,4],[259,5]]},"312":{"position":[[185,5]]},"320":{"position":[[1179,5]]},"324":{"position":[[1547,4],[1574,4]]},"334":{"position":[[158,5]]},"341":{"position":[[80,4]]},"342":{"position":[[112,5]]},"343":{"position":[[88,4]]},"358":{"position":[[271,5],[427,5]]},"360":{"position":[[860,4],[963,4],[1163,4]]},"368":{"position":[[268,8],[328,5],[613,5],[1057,8],[1095,5],[1486,4],[1585,4],[1807,9],[1831,5],[2094,4]]},"385":{"position":[[66,4]]},"411":{"position":[[13,4]]},"416":{"position":[[236,4]]},"462":{"position":[[9,4]]}},"keywords":{}}],["body.disablecontenttypeerror",{"_index":1640,"title":{},"content":{"244":{"position":[[103,28]]}},"keywords":{}}],["bodyhttp",{"_index":1813,"title":{},"content":{"282":{"position":[[94,8]]}},"keywords":{}}],["bodytyp",{"_index":800,"title":{},"content":{"122":{"position":[[310,9]]}},"keywords":{}}],["boilerpl",{"_index":2379,"title":{},"content":{"522":{"position":[[513,11]]}},"keywords":{}}],["bonjour",{"_index":1579,"title":{},"content":{"226":{"position":[[393,8]]}},"keywords":{}}],["bool",{"_index":1610,"title":{},"content":{"236":{"position":[[11,6]]},"240":{"position":[[13,6],[125,6]]}},"keywords":{}}],["boolean",{"_index":1093,"title":{},"content":{"166":{"position":[[649,9],[744,9]]},"170":{"position":[[196,10],[272,10],[550,9]]},"174":{"position":[[477,9],[592,9]]},"196":{"position":[[602,9],[1001,9]]},"207":{"position":[[598,9],[996,9]]},"221":{"position":[[13,9]]},"244":{"position":[[132,9]]},"253":{"position":[[317,9]]},"265":{"position":[[25,9]]},"286":{"position":[[329,9],[729,9]]},"290":{"position":[[90,7]]},"294":{"position":[[581,9],[973,9]]},"305":{"position":[[351,9]]},"311":{"position":[[630,9],[1023,9]]},"317":{"position":[[640,7],[699,8],[1075,9],[1480,9]]},"327":{"position":[[613,9],[1006,9]]},"333":{"position":[[441,9],[834,9]]},"346":{"position":[[566,9]]},"365":{"position":[[577,9]]}},"keywords":{}}],["boolean|object",{"_index":1905,"title":{},"content":{"317":{"position":[[606,16]]}},"keywords":{}}],["both",{"_index":1154,"title":{},"content":{"167":{"position":[[1702,4]]},"185":{"position":[[292,4]]},"189":{"position":[[918,4]]},"323":{"position":[[680,4]]}},"keywords":{}}],["boundari",{"_index":1699,"title":{},"content":{"254":{"position":[[433,9]]}},"keywords":{}}],["bowser/bundled.j",{"_index":409,"title":{},"content":{"18":{"position":[[830,20]]}},"keywords":{}}],["bowser/src",{"_index":408,"title":{},"content":{"18":{"position":[[816,13]]}},"keywords":{}}],["br",{"_index":1647,"title":{},"content":{"248":{"position":[[1,2],[309,3],[325,2],[387,2]]},"249":{"position":[[292,3],[462,6]]},"250":{"position":[[488,3],[658,6]]}},"keywords":{}}],["break",{"_index":1578,"title":{},"content":{"226":{"position":[[363,5],[412,5],[566,5],[631,5],[697,5]]},"378":{"position":[[56,9],[1035,9]]},"379":{"position":[[187,9],[264,9]]},"389":{"position":[[87,9]]},"390":{"position":[[72,9]]},"392":{"position":[[53,9]]},"394":{"position":[[73,9]]},"396":{"position":[[130,9]]},"400":{"position":[[60,9]]},"403":{"position":[[60,9]]},"406":{"position":[[194,9]]},"407":{"position":[[28,9]]},"409":{"position":[[83,9]]},"420":{"position":[[46,8]]},"423":{"position":[[127,8]]},"425":{"position":[[85,8]]},"426":{"position":[[40,8]]},"428":{"position":[[49,8]]},"429":{"position":[[66,8]]},"431":{"position":[[52,8]]},"432":{"position":[[52,8]]},"437":{"position":[[52,8]]},"441":{"position":[[113,8]]},"444":{"position":[[91,8]]},"449":{"position":[[40,8]]},"456":{"position":[[103,8]]},"462":{"position":[[97,8]]},"468":{"position":[[25,8]]},"474":{"position":[[42,8]]},"477":{"position":[[27,8]]},"478":{"position":[[27,8]]},"479":{"position":[[27,8]]},"480":{"position":[[27,8]]},"482":{"position":[[27,8]]},"483":{"position":[[27,8]]},"484":{"position":[[190,8],[228,8],[303,8],[434,8]]},"487":{"position":[[27,8]]}},"keywords":{}}],["brief",{"_index":982,"title":{"161":{"position":[[2,5]]}},"content":{},"keywords":{}}],["bring",{"_index":1070,"title":{},"content":{"164":{"position":[[380,6]]}},"keywords":{}}],["broken",{"_index":1805,"title":{},"content":{"281":{"position":[[653,6]]}},"keywords":{}}],["brotli",{"_index":2230,"title":{},"content":{"385":{"position":[[15,7]]}},"keywords":{}}],["brotlioptionsgzip",{"_index":1649,"title":{},"content":{"248":{"position":[[53,17]]}},"keywords":{}}],["brought",{"_index":2287,"title":{},"content":{"462":{"position":[[41,7]]}},"keywords":{}}],["browser",{"_index":1656,"title":{},"content":{"248":{"position":[[283,8]]},"261":{"position":[[29,7]]}},"keywords":{}}],["bucket",{"_index":781,"title":{},"content":{"107":{"position":[[463,7]]},"295":{"position":[[318,7]]},"297":{"position":[[1310,7]]}},"keywords":{}}],["bucketmiddytohof",{"_index":1987,"title":{},"content":{"324":{"position":[[428,17]]}},"keywords":{}}],["buffer",{"_index":1301,"title":{},"content":{"182":{"position":[[650,6]]},"253":{"position":[[475,6]]}},"keywords":{}}],["build",{"_index":232,"title":{},"content":{"16":{"position":[[88,8]]},"18":{"position":[[1344,6]]},"21":{"position":[[2377,5]]},"159":{"position":[[605,8]]},"163":{"position":[[96,5]]},"369":{"position":[[7,5]]},"491":{"position":[[112,8]]}},"keywords":{}}],["buildfederatedschema",{"_index":824,"title":{},"content":{"140":{"position":[[242,20],[440,22]]}},"keywords":{}}],["built",{"_index":452,"title":{},"content":{"19":{"position":[[26,5]]},"200":{"position":[[67,5]]},"507":{"position":[[86,5]]}},"keywords":{}}],["bundl",{"_index":19,"title":{"1":{"position":[[0,8]]},"198":{"position":[[0,9]]},"213":{"position":[[0,9]]},"288":{"position":[[0,9]]},"296":{"position":[[0,9]]},"313":{"position":[[0,9]]},"314":{"position":[[0,9]]},"319":{"position":[[0,9]]},"329":{"position":[[0,9]]},"335":{"position":[[0,9]]},"350":{"position":[[0,9]]}},"content":{"5":{"position":[[169,6]]},"369":{"position":[[182,6],[453,6]]},"484":{"position":[[53,6]]}},"keywords":{}}],["bundler",{"_index":44,"title":{"4":{"position":[[0,9]]}},"content":{"18":{"position":[[27,7]]}},"keywords":{}}],["busboy",{"_index":1681,"title":{},"content":{"253":{"position":[[1,6],[103,6],[528,7]]}},"keywords":{}}],["busi",{"_index":209,"title":{},"content":{"15":{"position":[[324,8],[518,8]]},"16":{"position":[[1075,8]]},"17":{"position":[[144,8],[268,8],[426,8],[771,8],[949,8]]},"156":{"position":[[173,8]]},"157":{"position":[[223,8],[701,8]]}},"keywords":{}}],["buy",{"_index":1521,"title":{},"content":{"204":{"position":[[408,5]]}},"keywords":{}}],["c",{"_index":1780,"title":{},"content":{"273":{"position":[[695,2]]}},"keywords":{}}],["ca",{"_index":663,"title":{},"content":{"31":{"position":[[1618,4],[1627,5]]},"43":{"position":[[1618,4],[1627,5]]},"46":{"position":[[1743,4],[1752,5]]},"97":{"position":[[1643,4],[1652,5]]},"150":{"position":[[1630,4],[1639,5]]},"151":{"position":[[644,2],[743,3]]},"287":{"position":[[322,3]]}},"keywords":{}}],["cach",{"_index":441,"title":{"375":{"position":[[0,6]]}},"content":{"18":{"position":[[1433,6]]},"159":{"position":[[623,7],[680,5],[1056,5],[1215,5]]},"182":{"position":[[910,5],[1361,5],[1520,5]]},"189":{"position":[[782,5],[958,6]]},"196":{"position":[[769,5],[923,6],[939,5],[963,6],[973,5]]},"207":{"position":[[764,5],[918,6],[934,5],[958,6],[968,5]]},"240":{"position":[[1266,5]]},"286":{"position":[[497,5],[651,6],[667,5],[691,6],[701,5]]},"294":{"position":[[741,5],[895,6],[911,5],[935,6],[945,5]]},"311":{"position":[[791,5],[945,6],[961,5],[985,6],[995,5]]},"317":{"position":[[753,6],[1248,5],[1402,6],[1418,5],[1442,6],[1452,5]]},"327":{"position":[[774,5],[928,6],[944,5],[968,6],[978,5]]},"333":{"position":[[602,5],[756,6],[772,5],[796,6],[806,5]]},"522":{"position":[[193,5]]}},"keywords":{}}],["cacheexpiri",{"_index":1397,"title":{},"content":{"189":{"position":[[792,11],[972,12]]},"317":{"position":[[820,11]]},"328":{"position":[[972,12]]},"330":{"position":[[1467,12]]},"522":{"position":[[719,12]]}},"keywords":{}}],["cachekey",{"_index":974,"title":{},"content":{"159":{"position":[[848,8],[911,8]]},"182":{"position":[[1078,8],[1141,8]]},"328":{"position":[[772,9],[1001,9]]},"330":{"position":[[1496,9]]},"375":{"position":[[529,8],[698,8]]},"522":{"position":[[699,9]]}},"keywords":{}}],["cachemiddlewar",{"_index":972,"title":{},"content":{"159":{"position":[[808,15],[1452,17]]},"182":{"position":[[1038,15],[1876,17]]}},"keywords":{}}],["cachemiddlewareaft",{"_index":980,"title":{},"content":{"159":{"position":[[1127,20],[1315,20]]},"182":{"position":[[1432,20],[1620,20]]},"375":{"position":[[715,20],[879,20]]}},"keywords":{}}],["cachemiddlewarebefor",{"_index":975,"title":{},"content":{"159":{"position":[[863,21],[1285,22]]},"182":{"position":[[1093,21],[1590,22]]},"375":{"position":[[475,21],[849,22]]}},"keywords":{}}],["calcul",{"_index":968,"title":{},"content":{"159":{"position":[[665,10],[1188,10]]},"182":{"position":[[895,10],[1493,10]]}},"keywords":{}}],["calculatecacheid",{"_index":970,"title":{},"content":{"159":{"position":[[722,16],[1470,17]]},"182":{"position":[[952,16],[1894,17]]},"375":{"position":[[203,17]]}},"keywords":{}}],["call",{"_index":895,"title":{},"content":{"153":{"position":[[206,6]]},"157":{"position":[[472,5]]},"163":{"position":[[581,6]]},"171":{"position":[[1438,5]]},"176":{"position":[[166,6],[541,6],[659,6]]},"182":{"position":[[374,4],[548,4]]},"189":{"position":[[1528,6]]},"199":{"position":[[583,5]]},"200":{"position":[[1006,4],[1091,4]]},"214":{"position":[[624,5]]},"297":{"position":[[575,5]]},"300":{"position":[[55,6]]},"320":{"position":[[592,5]]},"330":{"position":[[576,5]]},"388":{"position":[[114,6]]}},"keywords":{}}],["callback(err",{"_index":2183,"title":{},"content":{"373":{"position":[[12,13]]}},"keywords":{}}],["callbackwaitsforemptyeventloop",{"_index":1526,"title":{},"content":{"210":{"position":[[36,30]]},"280":{"position":[[139,30]]}},"keywords":{}}],["can't",{"_index":2277,"title":{},"content":{"429":{"position":[[46,5]]},"521":{"position":[[782,5]]}},"keywords":{}}],["cancel",{"_index":2365,"title":{},"content":{"520":{"position":[[584,6]]}},"keywords":{}}],["canon",{"_index":1609,"title":{},"content":{"236":{"position":[[1,9],[63,9],[368,9]]},"281":{"position":[[502,9]]},"361":{"position":[[94,9]]}},"keywords":{}}],["canonical:fals",{"_index":2238,"title":{},"content":{"390":{"position":[[56,15]]}},"keywords":{}}],["canprefetch",{"_index":2380,"title":{},"content":{"522":{"position":[[554,12]]}},"keywords":{}}],["canprefetch(opt",{"_index":2388,"title":{},"content":{"522":{"position":[[1118,22]]}},"keywords":{}}],["capabl",{"_index":967,"title":{},"content":{"159":{"position":[[590,10]]},"324":{"position":[[371,12]]}},"keywords":{}}],["captur",{"_index":1039,"title":{},"content":{"163":{"position":[[293,7],[513,7],[699,9]]},"164":{"position":[[16,9]]},"167":{"position":[[1235,8]]},"168":{"position":[[21,9]]},"170":{"position":[[294,7],[583,7]]},"171":{"position":[[866,8],[1123,8],[1418,7]]},"174":{"position":[[625,7]]}},"keywords":{}}],["captureawsv3cli",{"_index":794,"title":{},"content":{"122":{"position":[[107,20],[256,19]]},"196":{"position":[[460,18]]},"207":{"position":[[456,18]]},"294":{"position":[[439,18]]},"305":{"position":[[295,18]]},"311":{"position":[[488,18]]},"317":{"position":[[454,18]]},"327":{"position":[[419,18]]},"333":{"position":[[299,18]]},"346":{"position":[[510,18]]}},"keywords":{}}],["capturecoldstartmetr",{"_index":1295,"title":{},"content":{"181":{"position":[[881,23]]},"182":{"position":[[1837,23]]}},"keywords":{}}],["capturehttpsglob",{"_index":795,"title":{},"content":{"122":{"position":[[128,19],[290,19]]}},"keywords":{}}],["capturelambdahandl",{"_index":1182,"title":{},"content":{"171":{"position":[[51,20]]}},"keywords":{}}],["capturerespons",{"_index":1181,"title":{},"content":{"170":{"position":[[534,15]]}},"keywords":{}}],["care",{"_index":1053,"title":{},"content":{"163":{"position":[[691,4]]}},"keywords":{}}],["cart",{"_index":1115,"title":{},"content":{"167":{"position":[[561,4],[763,4]]}},"keywords":{}}],["case",{"_index":372,"title":{},"content":{"18":{"position":[[112,4]]},"21":{"position":[[2086,4],[2348,4]]},"157":{"position":[[947,4]]},"159":{"position":[[503,5]]},"167":{"position":[[1958,5]]},"182":{"position":[[147,5]]},"189":{"position":[[901,5]]},"226":{"position":[[326,4],[369,4],[491,4],[572,4],[637,4]]},"361":{"position":[[155,8]]},"518":{"position":[[134,6],[247,5]]},"519":{"position":[[244,4],[937,4]]}},"keywords":{}}],["case.error",{"_index":2082,"title":{},"content":{"357":{"position":[[476,11]]}},"keywords":{}}],["cases.timeoutearlyinmilli",{"_index":2219,"title":{},"content":{"378":{"position":[[696,27]]}},"keywords":{}}],["cast",{"_index":2009,"title":{},"content":{"324":{"position":[[1512,4]]},"456":{"position":[[59,7]]}},"keywords":{}}],["catch",{"_index":1278,"title":{},"content":{"179":{"position":[[685,5]]},"324":{"position":[[146,7]]},"444":{"position":[[10,5]]},"496":{"position":[[145,5]]}},"keywords":{}}],["caught",{"_index":2361,"title":{},"content":{"520":{"position":[[74,6]]}},"keywords":{}}],["caus",{"_index":1250,"title":{},"content":{"176":{"position":[[502,5]]},"189":{"position":[[1110,5],[1366,6],[1491,5]]},"365":{"position":[[1135,5]]},"377":{"position":[[115,5]]},"379":{"position":[[32,5]]},"416":{"position":[[167,6]]}},"keywords":{}}],["caution",{"_index":114,"title":{},"content":{"7":{"position":[[55,7]]},"140":{"position":[[14,7]]},"144":{"position":[[13,7]]},"145":{"position":[[5,7]]},"146":{"position":[[21,7]]},"147":{"position":[[17,7]]},"151":{"position":[[38,7]]},"188":{"position":[[10,7]]},"189":{"position":[[8,7]]}},"keywords":{}}],["cb",{"_index":2056,"title":{},"content":{"339":{"position":[[117,3]]}},"keywords":{}}],["central",{"_index":1841,"title":{},"content":{"287":{"position":[[326,7]]}},"keywords":{}}],["cert",{"_index":866,"title":{},"content":{"151":{"position":[[775,5],[833,5]]}},"keywords":{}}],["cert.subject.cn.endswith('.rds.amazonaws.com",{"_index":869,"title":{},"content":{"151":{"position":[[861,47]]}},"keywords":{}}],["certainli",{"_index":2369,"title":{},"content":{"521":{"position":[[788,9],[949,9]]}},"keywords":{}}],["certif",{"_index":855,"title":{},"content":{"151":{"position":[[442,11],[661,11]]},"261":{"position":[[74,11]]}},"keywords":{}}],["chain",{"_index":1282,"title":{},"content":{"181":{"position":[[70,8],[227,6]]}},"keywords":{}}],["champ",{"_index":1717,"title":{},"content":{"258":{"position":[[279,6]]}},"keywords":{}}],["chanc",{"_index":900,"title":{},"content":{"153":{"position":[[536,6]]}},"keywords":{}}],["chang",{"_index":467,"title":{"377":{"position":[[8,8]]},"416":{"position":[[8,8]]},"454":{"position":[[8,8]]}},"content":{"19":{"position":[[495,8]]},"185":{"position":[[741,6]]},"187":{"position":[[791,7]]},"253":{"position":[[270,6]]},"308":{"position":[[238,6]]},"361":{"position":[[200,7]]},"378":{"position":[[66,7],[114,6],[144,6],[1045,7]]},"379":{"position":[[274,7]]},"381":{"position":[[4,6]]},"382":{"position":[[4,6]]},"383":{"position":[[4,6]]},"389":{"position":[[97,7]]},"390":{"position":[[82,7]]},"391":{"position":[[4,6]]},"392":{"position":[[1,6],[63,7]]},"393":{"position":[[4,6]]},"396":{"position":[[140,7]]},"397":{"position":[[4,6]]},"398":{"position":[[4,6]]},"400":{"position":[[70,7]]},"402":{"position":[[4,6]]},"403":{"position":[[70,7]]},"406":{"position":[[204,7]]},"407":{"position":[[38,7]]},"408":{"position":[[4,6]]},"409":{"position":[[1,6]]},"410":{"position":[[4,6]]},"418":{"position":[[4,6]]},"420":{"position":[[55,6]]},"421":{"position":[[4,6]]},"422":{"position":[[4,6]]},"423":{"position":[[1,6],[136,6]]},"424":{"position":[[4,6]]},"425":{"position":[[94,6]]},"426":{"position":[[49,6]]},"427":{"position":[[4,6]]},"428":{"position":[[58,6]]},"429":{"position":[[75,6]]},"430":{"position":[[4,6]]},"431":{"position":[[1,6],[61,6]]},"432":{"position":[[1,6],[61,6]]},"433":{"position":[[4,6]]},"434":{"position":[[4,6]]},"435":{"position":[[4,6]]},"436":{"position":[[4,6]]},"437":{"position":[[1,6],[61,6]]},"438":{"position":[[4,6]]},"440":{"position":[[4,6]]},"441":{"position":[[122,6]]},"442":{"position":[[4,6]]},"443":{"position":[[4,6]]},"444":{"position":[[100,6]]},"445":{"position":[[4,6]]},"446":{"position":[[4,6]]},"448":{"position":[[4,6]]},"449":{"position":[[49,6]]},"450":{"position":[[4,6]]},"451":{"position":[[4,6]]},"456":{"position":[[112,6]]},"458":{"position":[[4,6]]},"459":{"position":[[4,6]]},"460":{"position":[[4,6]]},"461":{"position":[[4,6]]},"462":{"position":[[106,6]]},"463":{"position":[[4,6]]},"464":{"position":[[4,6]]},"465":{"position":[[4,6]]},"466":{"position":[[4,6]]},"467":{"position":[[4,6]]},"468":{"position":[[34,6]]},"470":{"position":[[4,6]]},"471":{"position":[[4,6]]},"472":{"position":[[4,6]]},"473":{"position":[[4,6]]},"474":{"position":[[51,6]]},"475":{"position":[[4,6]]},"476":{"position":[[4,6]]},"477":{"position":[[36,6]]},"478":{"position":[[36,6]]},"479":{"position":[[36,6]]},"480":{"position":[[36,6]]},"481":{"position":[[4,6]]},"482":{"position":[[36,6]]},"483":{"position":[[36,6]]},"485":{"position":[[4,6]]},"486":{"position":[[4,6]]},"487":{"position":[[36,6]]},"488":{"position":[[4,6]]},"492":{"position":[[4,6]]},"494":{"position":[[4,6]]},"497":{"position":[[4,6]]},"498":{"position":[[4,6]]},"499":{"position":[[4,6]]},"500":{"position":[[4,6]]},"501":{"position":[[4,6]]},"502":{"position":[[4,6]]},"505":{"position":[[4,6]]},"508":{"position":[[4,6]]},"511":{"position":[[4,6]]},"515":{"position":[[97,6]]}},"keywords":{}}],["change]add",{"_index":2257,"title":{},"content":{"409":{"position":[[93,10]]}},"keywords":{}}],["change]getcach",{"_index":2228,"title":{},"content":{"379":{"position":[[197,15]]}},"keywords":{}}],["change]onerror",{"_index":2241,"title":{},"content":{"394":{"position":[[83,14]]}},"keywords":{}}],["changead",{"_index":2300,"title":{},"content":{"484":{"position":[[312,11],[443,11]]}},"keywords":{}}],["changedeprec",{"_index":2296,"title":{},"content":{"484":{"position":[[199,16]]}},"keywords":{}}],["changemust",{"_index":2298,"title":{},"content":{"484":{"position":[[237,10]]}},"keywords":{}}],["charset",{"_index":1556,"title":{},"content":{"225":{"position":[[66,8],[154,8]]},"281":{"position":[[209,9]]},"392":{"position":[[16,7]]},"469":{"position":[[23,7]]}},"keywords":{}}],["charset.disablecontenttypeerror",{"_index":1686,"title":{},"content":{"253":{"position":[[285,31]]}},"keywords":{}}],["check",{"_index":382,"title":{},"content":{"18":{"position":[[281,5]]},"157":{"position":[[965,5]]},"200":{"position":[[1396,8]]},"338":{"position":[[191,5]]},"360":{"position":[[360,5]]},"361":{"position":[[520,5]]},"491":{"position":[[52,5]]},"517":{"position":[[14,5]]}},"keywords":{}}],["checkout",{"_index":812,"title":{},"content":{"139":{"position":[[108,8]]},"253":{"position":[[137,8]]}},"keywords":{}}],["checkserverident",{"_index":864,"title":{},"content":{"151":{"position":[[747,20]]}},"keywords":{}}],["child",{"_index":1857,"title":{},"content":{"291":{"position":[[636,5]]}},"keywords":{}}],["child.info(request.ev",{"_index":1859,"title":{},"content":{"291":{"position":[[674,24]]}},"keywords":{}}],["chosen",{"_index":1351,"title":{},"content":{"187":{"position":[[241,6]]}},"keywords":{}}],["chunk",{"_index":1428,"title":{},"content":{"193":{"position":[[330,5]]}},"keywords":{}}],["chunk?.payloadchunk?.payload",{"_index":1430,"title":{},"content":{"193":{"position":[[361,30]]}},"keywords":{}}],["ci/cd",{"_index":384,"title":{},"content":{"18":{"position":[[315,5]]},"189":{"position":[[1153,5]]}},"keywords":{}}],["ciao",{"_index":1576,"title":{},"content":{"226":{"position":[[350,5]]}},"keywords":{}}],["circuit",{"_index":2189,"title":{},"content":{"373":{"position":[[330,7]]},"378":{"position":[[400,7]]},"388":{"position":[[41,7]]}},"keywords":{}}],["citi",{"_index":1719,"title":{},"content":{"258":{"position":[[296,5]]}},"keywords":{}}],["cj",{"_index":87,"title":{},"content":{"6":{"position":[[408,4]]}},"keywords":{}}],["claim",{"_index":2370,"title":{},"content":{"521":{"position":[[798,5]]}},"keywords":{}}],["class",{"_index":1074,"title":{},"content":{"166":{"position":[[1,5]]},"170":{"position":[[1,5]]},"174":{"position":[[1,5]]},"178":{"position":[[85,5]]},"196":{"position":[[63,5],[251,5]]},"207":{"position":[[61,5],[247,5]]},"286":{"position":[[45,5],[209,5]]},"294":{"position":[[49,5],[230,5]]},"305":{"position":[[49,5],[214,5]]},"311":{"position":[[77,5],[279,5]]},"317":{"position":[[73,5],[263,5]]},"327":{"position":[[51,5],[219,5]]},"333":{"position":[[51,5],[218,5]]},"346":{"position":[[85,5],[301,5]]}},"keywords":{}}],["class.opt",{"_index":1091,"title":{},"content":{"166":{"position":[[571,12]]},"170":{"position":[[465,12]]},"174":{"position":[[388,12]]}},"keywords":{}}],["clean",{"_index":356,"title":{"182":{"position":[[0,8]]}},"content":{"17":{"position":[[982,6]]},"158":{"position":[[78,8]]},"159":{"position":[[465,6]]},"182":{"position":[[260,5],[752,5],[1243,5]]},"189":{"position":[[289,5]]},"520":{"position":[[191,5]]}},"keywords":{}}],["cleanupmiddlewar",{"_index":1306,"title":{},"content":{"182":{"position":[[813,18],[1294,20]]}},"keywords":{}}],["clear",{"_index":1096,"title":{},"content":{"166":{"position":[[777,5]]}},"keywords":{}}],["clearmetr",{"_index":1300,"title":{},"content":{"182":{"position":[[557,12]]}},"keywords":{}}],["cli",{"_index":117,"title":{},"content":{"8":{"position":[[18,3]]}},"keywords":{}}],["clickjackinghidepoweredbi",{"_index":1731,"title":{},"content":{"261":{"position":[[137,25]]}},"keywords":{}}],["client",{"_index":1169,"title":{},"content":{"168":{"position":[[150,7]]},"171":{"position":[[255,6]]},"261":{"position":[[299,7]]},"322":{"position":[[58,7]]},"420":{"position":[[39,6]]}},"keywords":{}}],["clientid",{"_index":780,"title":{},"content":{"107":{"position":[[356,9]]},"197":{"position":[[159,9]]},"199":{"position":[[1276,9]]}},"keywords":{}}],["close",{"_index":1289,"title":{},"content":{"181":{"position":[[518,7]]},"182":{"position":[[383,5],[428,5]]}},"keywords":{}}],["cloud",{"_index":714,"title":{"50":{"position":[[0,5]]}},"content":{},"keywords":{}}],["cloudform",{"_index":699,"title":{"38":{"position":[[0,14]]}},"content":{"39":{"position":[[27,14]]}},"keywords":{}}],["cloudfront",{"_index":720,"title":{"53":{"position":[[0,10]]}},"content":{"54":{"position":[[23,10]]}},"keywords":{}}],["cloudtrail",{"_index":713,"title":{"47":{"position":[[0,10]]}},"content":{"48":{"position":[[27,10]]}},"keywords":{}}],["cloudwatch",{"_index":716,"title":{"201":{"position":[[0,10]]},"381":{"position":[[0,10]]},"421":{"position":[[0,10]]},"458":{"position":[[0,10]]}},"content":{"51":{"position":[[19,10]]},"87":{"position":[[42,11]]},"163":{"position":[[383,11],[621,10],[745,10]]},"172":{"position":[[61,10],[256,10],[439,11]]},"175":{"position":[[466,10],[946,10],[979,10]]},"203":{"position":[[75,10]]},"280":{"position":[[1,10]]},"323":{"position":[[351,10]]}},"keywords":{}}],["cloudwatchmetr",{"_index":1508,"title":{},"content":{"204":{"position":[[44,17],[338,19]]}},"keywords":{}}],["cloudwatchmetricsmiddlewar",{"_index":744,"title":{},"content":{"105":{"position":[[40,27]]}},"keywords":{}}],["cmd",{"_index":2120,"title":{},"content":{"364":{"position":[[121,3]]},"369":{"position":[[162,4]]},"447":{"position":[[88,3],[183,4]]}},"keywords":{}}],["co/middi",{"_index":1992,"title":{},"content":{"324":{"position":[[691,8],[758,8]]}},"keywords":{}}],["code",{"_index":197,"title":{"56":{"position":[[0,4]]}},"content":{"15":{"position":[[86,4]]},"16":{"position":[[1,4]]},"17":{"position":[[394,4],[441,4],[475,4],[786,5],[964,4]]},"21":{"position":[[2750,4]]},"151":{"position":[[511,4]]},"152":{"position":[[233,4]]},"161":{"position":[[197,4]]},"167":{"position":[[404,4]]},"171":{"position":[[522,4]]},"175":{"position":[[447,4]]},"185":{"position":[[115,4],[263,4]]},"186":{"position":[[104,4]]},"189":{"position":[[840,5]]},"200":{"position":[[1366,4]]},"229":{"position":[[347,5]]},"322":{"position":[[839,5]]},"361":{"position":[[737,5]]},"517":{"position":[[24,4]]}},"keywords":{}}],["codecommit",{"_index":724,"title":{},"content":{"57":{"position":[[27,10]]}},"keywords":{}}],["codepipelin",{"_index":725,"title":{"62":{"position":[[0,12]]}},"content":{"63":{"position":[[27,12]]}},"keywords":{}}],["coerc",{"_index":2165,"title":{},"content":{"369":{"position":[[238,6],[333,6]]}},"keywords":{}}],["coercetyp",{"_index":2143,"title":{},"content":{"366":{"position":[[297,12]]}},"keywords":{}}],["cognito",{"_index":728,"title":{"71":{"position":[[0,7]]}},"content":{"72":{"position":[[30,7]]},"324":{"position":[[1356,7]]}},"keywords":{}}],["cognitomiddi",{"_index":2008,"title":{},"content":{"324":{"position":[[1469,12]]}},"keywords":{}}],["cold",{"_index":512,"title":{"370":{"position":[[17,4]]},"371":{"position":[[17,4]]}},"content":{"21":{"position":[[394,4],[2040,4]]},"163":{"position":[[337,4],[709,4]]},"164":{"position":[[62,4]]},"167":{"position":[[1413,4]]},"168":{"position":[[31,4]]},"171":{"position":[[879,4]]},"174":{"position":[[637,4]]},"196":{"position":[[632,4]]},"207":{"position":[[628,4]]},"286":{"position":[[359,4]]},"294":{"position":[[611,4]]},"305":{"position":[[381,4]]},"311":{"position":[[660,4]]},"317":{"position":[[1105,4]]},"327":{"position":[[643,4]]},"333":{"position":[[471,4]]},"346":{"position":[[596,4]]},"365":{"position":[[1175,4]]}},"keywords":{}}],["cold_start",{"_index":1146,"title":{},"content":{"167":{"position":[[1354,10]]}},"keywords":{}}],["collect",{"_index":1033,"title":{},"content":{"163":{"position":[[17,10]]},"322":{"position":[[27,10]]},"324":{"position":[[904,10]]}},"keywords":{}}],["combin",{"_index":1806,"title":{},"content":{"281":{"position":[[676,11]]}},"keywords":{}}],["come",{"_index":1005,"title":{},"content":{"161":{"position":[[405,6]]},"521":{"position":[[857,4]]}},"keywords":{}}],["comment",{"_index":842,"title":{},"content":{"146":{"position":[[156,7]]}},"keywords":{}}],["comments=extern",{"_index":61,"title":{},"content":{"5":{"position":[[308,17]]}},"keywords":{}}],["commit",{"_index":723,"title":{"56":{"position":[[5,6]]}},"content":{"161":{"position":[[712,6]]}},"keywords":{}}],["commit2017",{"_index":993,"title":{},"content":{"161":{"position":[[276,10]]}},"keywords":{}}],["common",{"_index":178,"title":{},"content":{"13":{"position":[[41,6]]},"15":{"position":[[381,6]]},"16":{"position":[[527,6],[2023,6]]},"17":{"position":[[234,6],[700,6]]},"18":{"position":[[1421,6]]},"172":{"position":[[115,6]]},"416":{"position":[[25,6]]}},"keywords":{}}],["commonj",{"_index":69,"title":{},"content":{"6":{"position":[[60,8],[190,8],[220,9],[286,11]]},"16":{"position":[[248,8]]}},"keywords":{}}],["commun",{"_index":2118,"title":{},"content":{"362":{"position":[[180,10]]}},"keywords":{}}],["compat",{"_index":1035,"title":{},"content":{"163":{"position":[[208,10],[360,10]]},"164":{"position":[[437,10]]},"167":{"position":[[2519,10]]},"367":{"position":[[52,10]]},"401":{"position":[[48,10]]},"405":{"position":[[48,10]]}},"keywords":{}}],["compil",{"_index":21,"title":{"2":{"position":[[0,10]]}},"content":{"21":{"position":[[2141,8],[2336,8]]},"365":{"position":[[49,8],[200,8],[460,8]]},"484":{"position":[[419,7]]}},"keywords":{}}],["complet",{"_index":1191,"title":{},"content":{"171":{"position":[[1071,9]]},"200":{"position":[[1414,10]]},"406":{"position":[[1,8]]}},"keywords":{}}],["complex",{"_index":369,"title":{},"content":{"18":{"position":[[71,7]]},"324":{"position":[[332,7]]}},"keywords":{}}],["compli",{"_index":587,"title":{},"content":{"21":{"position":[[2297,8]]}},"keywords":{}}],["compliment",{"_index":2376,"title":{},"content":{"522":{"position":[[161,10]]}},"keywords":{}}],["comprehens",{"_index":1980,"title":{},"content":{"324":{"position":[[208,14]]}},"keywords":{}}],["compress",{"_index":1661,"title":{},"content":{"248":{"position":[[339,12],[500,11],[578,11]]},"282":{"position":[[74,10]]},"385":{"position":[[42,11]]}},"keywords":{}}],["concept",{"_index":203,"title":{},"content":{"15":{"position":[[193,8]]}},"keywords":{}}],["concern",{"_index":329,"title":{},"content":{"17":{"position":[[251,8],[717,8]]}},"keywords":{}}],["concurrencyon",{"_index":2338,"title":{},"content":{"516":{"position":[[116,13]]}},"keywords":{}}],["condition",{"_index":1398,"title":{},"content":{"189":{"position":[[865,13]]}},"keywords":{}}],["conduct",{"_index":886,"title":{},"content":{"152":{"position":[[241,8]]}},"keywords":{}}],["config",{"_index":71,"title":{"59":{"position":[[0,6]]},"107":{"position":[[10,8]]}},"content":{"6":{"position":[[96,6]]},"19":{"position":[[325,6]]},"60":{"position":[[27,6]]},"197":{"position":[[129,7]]},"199":{"position":[[645,6],[1246,7]]},"212":{"position":[[298,7]]},"214":{"position":[[685,6],[1295,7]]},"295":{"position":[[308,7]]},"297":{"position":[[630,6],[1238,7]]}},"keywords":{}}],["configur",{"_index":352,"title":{"270":{"position":[[0,14]]},"490":{"position":[[0,12]]}},"content":{"17":{"position":[[901,13]]},"107":{"position":[[373,14]]},"136":{"position":[[1,11]]},"167":{"position":[[2150,9]]},"178":{"position":[[172,13]]},"197":{"position":[[176,14]]},"199":{"position":[[1293,14]]},"203":{"position":[[408,13]]},"214":{"position":[[538,13]]},"270":{"position":[[19,10]]},"272":{"position":[[382,13]]},"283":{"position":[[23,14],[69,14],[176,14]]},"297":{"position":[[495,13]]},"320":{"position":[[514,13]]},"322":{"position":[[331,10]]},"490":{"position":[[0,12],[54,13],[125,13]]}},"keywords":{}}],["conflict",{"_index":2335,"title":{},"content":{"515":{"position":[[315,9]]}},"keywords":{}}],["connect",{"_index":0,"title":{"0":{"position":[[0,10]]},"77":{"position":[[0,7]]}},"content":{"0":{"position":[[0,10],[72,10],[173,10],[235,11]]},"37":{"position":[[435,11]]},"78":{"position":[[26,7]]},"139":{"position":[[76,7]]},"151":{"position":[[477,11],[1004,12]]},"283":{"position":[[128,10],[385,10],[533,10]]},"322":{"position":[[1226,10]]},"324":{"position":[[20,10],[1200,10]]},"353":{"position":[[131,9],[454,9]]},"354":{"position":[[306,11],[492,11]]},"357":{"position":[[686,9]]},"507":{"position":[[50,10]]}},"keywords":{}}],["connecthandl",{"_index":687,"title":{},"content":{"37":{"position":[[222,14],[456,14]]},"354":{"position":[[191,14],[513,14]]}},"keywords":{}}],["connectid",{"_index":2066,"title":{},"content":{"346":{"position":[[908,10]]}},"keywords":{}}],["connectionid",{"_index":2070,"title":{},"content":{"349":{"position":[[133,13]]}},"keywords":{}}],["connectionopt",{"_index":861,"title":{},"content":{"151":{"position":[[683,17]]}},"keywords":{}}],["connector",{"_index":2002,"title":{},"content":{"324":{"position":[[1181,10]]}},"keywords":{}}],["consid",{"_index":819,"title":{},"content":{"140":{"position":[[111,8]]},"144":{"position":[[110,8]]},"145":{"position":[[102,8]]},"146":{"position":[[118,8]]},"147":{"position":[[114,8]]},"151":{"position":[[135,8],[305,10]]},"176":{"position":[[339,10]]},"188":{"position":[[107,8]]},"189":{"position":[[105,8]]},"253":{"position":[[934,8]]},"361":{"position":[[433,10]]}},"keywords":{}}],["consist",{"_index":2106,"title":{},"content":{"361":{"position":[[304,10]]},"416":{"position":[[133,10]]}},"keywords":{}}],["consol",{"_index":1937,"title":{},"content":{"322":{"position":[[180,7],[239,7],[284,7]]}},"keywords":{}}],["console.error",{"_index":1589,"title":{},"content":{"229":{"position":[[21,14]]},"300":{"position":[[108,13]]}},"keywords":{}}],["console.error(request.error",{"_index":1543,"title":{},"content":{"217":{"position":[[54,29]]}},"keywords":{}}],["console.log",{"_index":496,"title":{},"content":{"21":{"position":[[29,12]]},"22":{"position":[[73,11]]},"290":{"position":[[26,13]]}},"keywords":{}}],["console.log('exit",{"_index":2342,"title":{},"content":{"516":{"position":[[335,20]]}},"keywords":{}}],["console.log(`hello",{"_index":1605,"title":{},"content":{"233":{"position":[[142,18]]}},"keywords":{}}],["console.log(context.apitoken",{"_index":1493,"title":{},"content":{"200":{"position":[[821,29]]}},"keywords":{}}],["console.log(context.config",{"_index":1865,"title":{},"content":{"295":{"position":[[107,27]]},"297":{"position":[[1060,27]]},"320":{"position":[[1102,27]]}},"keywords":{}}],["console@keboola/middi",{"_index":1981,"title":{},"content":{"324":{"position":[[230,21]]}},"keywords":{}}],["const",{"_index":75,"title":{},"content":{"6":{"position":[[230,5]]},"8":{"position":[[149,5],[199,5]]},"16":{"position":[[206,7],[619,5],[761,5],[885,5],[1182,5],[1786,5]]},"19":{"position":[[252,5],[319,5],[566,5]]},"21":{"position":[[2,5],[58,5],[97,5],[150,5],[167,5],[232,5],[405,5],[452,5],[569,5],[600,5],[629,5],[677,5],[723,5],[890,5]]},"22":{"position":[[46,5],[87,5],[128,5],[172,5],[189,5],[254,5],[310,5],[357,5],[429,5],[460,5],[489,5],[537,5],[583,5],[750,5]]},"26":{"position":[[40,5]]},"28":{"position":[[40,5]]},"31":{"position":[[1361,5]]},"34":{"position":[[40,5]]},"37":{"position":[[406,5],[589,5]]},"40":{"position":[[40,5]]},"43":{"position":[[1361,5]]},"46":{"position":[[1344,5],[1486,5]]},"49":{"position":[[40,5]]},"52":{"position":[[104,5]]},"55":{"position":[[40,5]]},"58":{"position":[[40,5]]},"61":{"position":[[104,5]]},"64":{"position":[[104,5]]},"67":{"position":[[104,5]]},"70":{"position":[[40,5]]},"73":{"position":[[40,5]]},"76":{"position":[[40,5]]},"79":{"position":[[40,5]]},"82":{"position":[[40,5]]},"85":{"position":[[40,5]]},"88":{"position":[[40,5]]},"91":{"position":[[104,5]]},"94":{"position":[[104,5]]},"97":{"position":[[1361,5]]},"100":{"position":[[104,5]]},"103":{"position":[[104,5]]},"105":{"position":[[452,5]]},"106":{"position":[[274,5]]},"107":{"position":[[258,5]]},"110":{"position":[[104,5]]},"113":{"position":[[104,5]]},"116":{"position":[[104,5]]},"119":{"position":[[40,5]]},"122":{"position":[[180,5]]},"125":{"position":[[104,5]]},"128":{"position":[[40,5]]},"131":{"position":[[104,5]]},"134":{"position":[[40,5]]},"137":{"position":[[40,5]]},"140":{"position":[[397,5],[601,5]]},"143":{"position":[[174,5]]},"150":{"position":[[1373,5]]},"151":{"position":[[638,5],[789,5]]},"157":{"position":[[168,5],[250,5],[646,5],[728,5]]},"159":{"position":[[716,5],[769,5],[802,5],[857,5],[1121,5],[1356,5],[1422,5]]},"167":{"position":[[111,5],[176,5],[320,5]]},"171":{"position":[[184,5],[249,5],[323,5],[437,5]]},"175":{"position":[[117,5],[205,5],[371,5]]},"179":{"position":[[251,5],[346,5],[494,5],[555,5]]},"181":{"position":[[719,5]]},"182":{"position":[[946,5],[999,5],[1032,5],[1087,5],[1426,5],[1661,5]]},"191":{"position":[[89,5],[261,5]]},"192":{"position":[[89,5],[193,5]]},"193":{"position":[[88,5],[122,5],[258,5],[323,6]]},"197":{"position":[[74,5],[260,5]]},"199":{"position":[[1044,5],[1191,5],[1375,5]]},"200":{"position":[[423,5]]},"204":{"position":[[1,5],[38,5],[101,5],[308,5]]},"211":{"position":[[114,5],[180,5]]},"212":{"position":[[72,5],[119,5],[244,5]]},"214":{"position":[[1092,5],[1139,5],[1452,5]]},"218":{"position":[[79,5],[157,5]]},"222":{"position":[[87,5],[134,5],[164,6],[210,5]]},"226":{"position":[[224,5],[771,5]]},"230":{"position":[[90,5],[190,5]]},"233":{"position":[[96,5],[276,5]]},"237":{"position":[[98,5],[164,5]]},"240":{"position":[[1462,5],[1562,5]]},"241":{"position":[[69,5],[135,5]]},"245":{"position":[[160,5],[226,5],[353,5]]},"249":{"position":[[210,5]]},"250":{"position":[[259,5],[379,5]]},"254":{"position":[[170,5],[236,5],[368,5]]},"258":{"position":[[96,5],[143,5],[341,5],[415,5]]},"262":{"position":[[96,5],[162,5]]},"266":{"position":[[170,5],[279,5],[443,5]]},"273":{"position":[[102,5],[149,5],[218,5],[610,5]]},"277":{"position":[[105,5],[302,5]]},"287":{"position":[[75,5],[122,5],[247,5]]},"291":{"position":[[92,5],[139,5],[264,5],[453,5],[475,5],[554,5],[630,5]]},"295":{"position":[[60,5],[135,5],[260,5]]},"297":{"position":[[1013,5],[1088,5],[1398,5]]},"301":{"position":[[89,5],[136,5],[313,5]]},"307":{"position":[[114,5],[161,5],[233,5],[344,5]]},"308":{"position":[[114,5],[297,5]]},"312":{"position":[[89,5],[136,5],[261,5]]},"318":{"position":[[85,5],[151,5]]},"320":{"position":[[1055,5],[1130,5],[1255,5],[1454,5]]},"328":{"position":[[62,5],[152,5],[604,5],[694,5],[1097,5]]},"330":{"position":[[1062,5],[1152,5],[1592,5]]},"334":{"position":[[62,5],[109,5],[234,5]]},"339":{"position":[[1,5],[38,5],[78,5],[141,5],[209,5]]},"343":{"position":[[155,5],[228,5]]},"348":{"position":[[84,5]]},"349":{"position":[[77,5],[181,5]]},"354":{"position":[[185,5],[321,5],[463,5],[596,5]]},"358":{"position":[[135,5],[290,5],[446,5],[588,5]]},"368":{"position":[[166,5],[225,5],[431,5],[597,5],[931,5],[990,5],[1164,5],[1700,5],[1759,5],[2051,5]]},"369":{"position":[[782,5],[848,5]]},"370":{"position":[[242,5],[301,5],[356,5],[418,5]]},"371":{"position":[[311,5],[377,5]]},"375":{"position":[[92,5],[165,5],[184,5],[408,5],[469,5],[523,5],[586,5],[709,5]]},"414":{"position":[[126,5]]},"484":{"position":[[738,5],[1007,5]]},"490":{"position":[[270,5],[290,5],[330,5],[371,5],[426,5],[470,5],[524,5],[590,5],[1045,5],[1129,5]]},"518":{"position":[[447,5],[515,5]]},"519":{"position":[[333,5],[361,5],[404,5],[445,5],[507,5],[568,5]]},"520":{"position":[[494,5],[616,5]]},"521":{"position":[[228,5],[330,5],[507,5]]},"522":{"position":[[614,5],[758,5],[803,5],[844,5],[869,5],[918,6],[1174,5],[1229,5],[1352,5]]}},"keywords":{}}],["constant",{"_index":1667,"title":{},"content":{"249":{"position":[[174,9]]},"250":{"position":[[174,9]]}},"keywords":{}}],["constants.brotli_mode_text",{"_index":1673,"title":{},"content":{"249":{"position":[[339,27]]},"250":{"position":[[535,27]]}},"keywords":{}}],["constants.brotli_param_mod",{"_index":1672,"title":{},"content":{"249":{"position":[[308,30]]},"250":{"position":[[504,30]]}},"keywords":{}}],["constants.brotli_param_qu",{"_index":1677,"title":{},"content":{"249":{"position":[[394,33]]},"250":{"position":[[590,33]]}},"keywords":{}}],["constructor",{"_index":579,"title":{},"content":{"21":{"position":[[2125,11]]},"166":{"position":[[7,11]]},"170":{"position":[[7,11]]},"174":{"position":[[7,11]]},"196":{"position":[[69,11]]},"207":{"position":[[67,11]]},"286":{"position":[[51,11]]},"294":{"position":[[55,11]]},"305":{"position":[[55,11]]},"311":{"position":[[83,11]]},"317":{"position":[[79,11]]},"327":{"position":[[57,11]]},"333":{"position":[[57,11]]},"346":{"position":[[91,11]]},"366":{"position":[[255,12]]}},"keywords":{}}],["constructor.awsclientassumerol",{"_index":1439,"title":{},"content":{"196":{"position":[[257,31]]},"207":{"position":[[253,31]]},"294":{"position":[[236,31]]},"311":{"position":[[285,31]]},"317":{"position":[[269,31]]},"327":{"position":[[225,31]]},"346":{"position":[[307,31]]}},"keywords":{}}],["constructor.awsclientcaptur",{"_index":1880,"title":{},"content":{"305":{"position":[[220,28]]},"333":{"position":[[224,28]]}},"keywords":{}}],["constructor.fetchdata",{"_index":1835,"title":{},"content":{"286":{"position":[[215,21]]}},"keywords":{}}],["consum",{"_index":1955,"title":{},"content":{"322":{"position":[[1171,7]]}},"keywords":{}}],["contain",{"_index":1149,"title":{},"content":{"167":{"position":[[1462,8]]},"346":{"position":[[900,7]]},"519":{"position":[[57,7]]},"522":{"position":[[34,8]]}},"keywords":{}}],["content",{"_index":142,"title":{"223":{"position":[[5,7]]},"246":{"position":[[5,7]]},"272":{"position":[[0,7]]},"385":{"position":[[5,7]]},"386":{"position":[[5,7]]},"425":{"position":[[5,7]]},"426":{"position":[[5,7]]},"462":{"position":[[5,7]]},"463":{"position":[[5,7]]},"494":{"position":[[5,7]]}},"content":{"8":{"position":[[524,7],[590,7],[630,7]]},"31":{"position":[[216,7],[292,7]]},"43":{"position":[[216,7],[292,7]]},"46":{"position":[[267,7],[343,7]]},"97":{"position":[[216,7],[292,7]]},"150":{"position":[[216,7],[292,7]]},"163":{"position":[[896,8]]},"191":{"position":[[173,8]]},"224":{"position":[[89,7]]},"226":{"position":[[81,7]]},"236":{"position":[[231,7]]},"244":{"position":[[177,7]]},"245":{"position":[[380,8],[466,7]]},"247":{"position":[[89,7]]},"249":{"position":[[81,7],[147,7]]},"250":{"position":[[81,7],[147,7]]},"253":{"position":[[362,7]]},"254":{"position":[[395,8]]},"265":{"position":[[70,7]]},"266":{"position":[[470,8]]},"271":{"position":[[42,7]]},"272":{"position":[[89,7]]},"281":{"position":[[117,7],[189,7],[775,7]]},"282":{"position":[[6,7],[34,7]]},"360":{"position":[[636,7]]},"367":{"position":[[195,8]]},"425":{"position":[[63,7]]},"447":{"position":[[63,7]]}},"keywords":{}}],["contenttyp",{"_index":1863,"title":{},"content":{"294":{"position":[[1135,12]]}},"keywords":{}}],["context",{"_index":257,"title":{"19":{"position":[[9,7]]}},"content":{"16":{"position":[[655,8]]},"17":{"position":[[522,9]]},"19":{"position":[[9,7],[288,8],[979,7],[1111,7],[1327,7]]},"26":{"position":[[81,8]]},"28":{"position":[[80,8]]},"31":{"position":[[2309,8]]},"34":{"position":[[80,8]]},"40":{"position":[[81,8]]},"43":{"position":[[2320,8]]},"49":{"position":[[81,8]]},"52":{"position":[[179,8]]},"55":{"position":[[151,8]]},"58":{"position":[[81,8]]},"61":{"position":[[179,8]]},"64":{"position":[[179,8]]},"67":{"position":[[179,8]]},"70":{"position":[[81,8]]},"73":{"position":[[81,8]]},"76":{"position":[[80,8]]},"79":{"position":[[81,8]]},"82":{"position":[[81,8]]},"85":{"position":[[81,8]]},"88":{"position":[[80,8]]},"91":{"position":[[179,8]]},"94":{"position":[[179,8]]},"97":{"position":[[2334,8]]},"100":{"position":[[179,8]]},"103":{"position":[[179,8]]},"105":{"position":[[685,8]]},"106":{"position":[[824,8]]},"107":{"position":[[785,8]]},"110":{"position":[[209,8]]},"113":{"position":[[179,8]]},"116":{"position":[[179,8]]},"119":{"position":[[81,8]]},"122":{"position":[[351,8]]},"125":{"position":[[218,8]]},"128":{"position":[[81,8]]},"131":{"position":[[179,8]]},"134":{"position":[[81,8]]},"137":{"position":[[81,8]]},"143":{"position":[[280,8]]},"150":{"position":[[2321,8]]},"157":{"position":[[198,8],[676,8]]},"159":{"position":[[1386,8]]},"163":{"position":[[328,8]]},"164":{"position":[[53,8]]},"167":{"position":[[274,9],[1311,7]]},"182":{"position":[[1691,8]]},"186":{"position":[[145,7]]},"191":{"position":[[119,8]]},"192":{"position":[[119,8]]},"197":{"position":[[243,8]]},"199":{"position":[[848,7],[1074,8]]},"200":{"position":[[651,8],[675,7],[1283,7]]},"204":{"position":[[131,8]]},"211":{"position":[[144,8]]},"212":{"position":[[102,8]]},"214":{"position":[[900,7],[1122,8]]},"218":{"position":[[109,8]]},"222":{"position":[[117,8]]},"226":{"position":[[254,8]]},"230":{"position":[[120,8]]},"233":{"position":[[125,8]]},"237":{"position":[[128,8]]},"240":{"position":[[1492,8]]},"241":{"position":[[99,8]]},"245":{"position":[[190,8]]},"249":{"position":[[508,8]]},"250":{"position":[[289,8]]},"254":{"position":[[200,8]]},"258":{"position":[[126,8]]},"262":{"position":[[126,8]]},"266":{"position":[[200,8]]},"273":{"position":[[132,8]]},"277":{"position":[[135,8]]},"287":{"position":[[105,8]]},"290":{"position":[[134,7]]},"291":{"position":[[122,8],[505,8]]},"295":{"position":[[90,8]]},"297":{"position":[[845,7],[1043,8]]},"301":{"position":[[119,8]]},"307":{"position":[[144,8]]},"308":{"position":[[150,8]]},"312":{"position":[[119,8]]},"318":{"position":[[115,8],[433,8]]},"320":{"position":[[860,7],[1085,8]]},"322":{"position":[[749,7],[805,7]]},"328":{"position":[[92,8],[634,8]]},"330":{"position":[[844,7],[1092,8]]},"334":{"position":[[92,8]]},"339":{"position":[[108,8]]},"348":{"position":[[114,8]]},"349":{"position":[[107,8]]},"353":{"position":[[212,8]]},"354":{"position":[[282,8],[421,8]]},"357":{"position":[[347,8]]},"358":{"position":[[228,8],[384,8]]},"368":{"position":[[196,8],[961,8],[1730,8]]},"369":{"position":[[812,8]]},"370":{"position":[[272,8]]},"371":{"position":[[341,8]]},"377":{"position":[[134,7]]},"425":{"position":[[28,7]]},"426":{"position":[[32,7]]},"441":{"position":[[37,7]]},"447":{"position":[[28,7]]},"490":{"position":[[441,7],[1081,8]]},"518":{"position":[[477,8]]},"519":{"position":[[809,7]]},"520":{"position":[[353,7],[524,8]]}},"keywords":{}}],["context"",{"_index":1133,"title":{},"content":{"167":{"position":[[895,14]]}},"keywords":{}}],["context.config",{"_index":784,"title":{},"content":{"107":{"position":[[817,15]]}},"keywords":{}}],["context.getremainingtimeinmilli",{"_index":1394,"title":{},"content":{"189":{"position":[[676,32]]}},"keywords":{}}],["context.metr",{"_index":1792,"title":{},"content":{"280":{"position":[[39,15]]}},"keywords":{}}],["context.metrics.putmetric('processinglat",{"_index":1510,"title":{},"content":{"204":{"position":[[148,46]]}},"keywords":{}}],["context.metrics.setproperti",{"_index":1512,"title":{},"content":{"204":{"position":[[216,28]]}},"keywords":{}}],["context.preferredlanguag",{"_index":1575,"title":{},"content":{"226":{"position":[[296,27]]}},"keywords":{}}],["context.preferredmediatyp",{"_index":1582,"title":{},"content":{"226":{"position":[[460,28]]}},"keywords":{}}],["context.requiredcontenttyp",{"_index":1768,"title":{},"content":{"272":{"position":[[141,27]]}},"keywords":{}}],["context.s3objectfetch.then((r",{"_index":1897,"title":{},"content":{"308":{"position":[[184,32]]}},"keywords":{}}],["context.s3objectfetch.then(r",{"_index":1892,"title":{},"content":{"307":{"position":[[186,30]]}},"keywords":{}}],["context.secret",{"_index":772,"title":{},"content":{"106":{"position":[[856,15]]}},"keywords":{}}],["contextmetr",{"_index":1970,"title":{},"content":{"323":{"position":[[293,15]]}},"keywords":{}}],["contextschema",{"_index":2258,"title":{},"content":{"409":{"position":[[129,14]]}},"keywords":{}}],["contribut",{"_index":820,"title":{"152":{"position":[[0,12]]}},"content":{"140":{"position":[[120,12]]},"144":{"position":[[119,12]]},"145":{"position":[[111,12]]},"146":{"position":[[127,12]]},"147":{"position":[[123,12]]},"151":{"position":[[144,12]]},"152":{"position":[[0,12],[80,10],[172,12]]},"188":{"position":[[116,12]]},"189":{"position":[[114,12]]},"521":{"position":[[1023,13]]}},"keywords":{}}],["control",{"_index":888,"title":{},"content":{"153":{"position":[[94,7]]},"240":{"position":[[53,7],[323,7],[413,7],[526,7],[890,7],[980,7],[1077,7],[1176,7],[1272,7],[1751,7]]},"241":{"position":[[297,7]]},"261":{"position":[[20,8]]},"441":{"position":[[85,7]]},"512":{"position":[[66,8]]},"518":{"position":[[340,7]]}},"keywords":{}}],["convent",{"_index":2315,"title":{},"content":{"490":{"position":[[878,10]]}},"keywords":{}}],["convert",{"_index":308,"title":{},"content":{"16":{"position":[[1881,8]]},"221":{"position":[[93,10]]},"281":{"position":[[595,8],[812,8],[1235,8]]},"324":{"position":[[446,7],[1055,8]]}},"keywords":{}}],["cor",{"_index":633,"title":{"238":{"position":[[5,4]]},"387":{"position":[[5,5]]},"427":{"position":[[5,5]]},"464":{"position":[[5,5]]},"495":{"position":[[5,5]]}},"content":{"31":{"position":[[354,5]]},"43":{"position":[[354,5]]},"46":{"position":[[405,5]]},"97":{"position":[[354,5]]},"150":{"position":[[354,5]]},"239":{"position":[[89,4]]},"240":{"position":[[179,4],[1433,4],[1456,5]]},"241":{"position":[[40,4],[63,5]]},"282":{"position":[[103,5],[119,4]]}},"keywords":{}}],["core",{"_index":238,"title":{"373":{"position":[[0,5]]},"378":{"position":[[0,5]]},"417":{"position":[[0,5]]},"455":{"position":[[0,5]]}},"content":{"16":{"position":[[152,4]]},"19":{"position":[[57,5]]},"21":{"position":[[2720,5]]},"122":{"position":[[167,5]]},"158":{"position":[[37,4]]},"360":{"position":[[111,4],[425,4]]},"361":{"position":[[333,4],[626,4]]},"521":{"position":[[735,4]]}},"keywords":{}}],["correct",{"_index":575,"title":{},"content":{"21":{"position":[[1989,8]]}},"keywords":{}}],["correctli",{"_index":273,"title":{},"content":{"16":{"position":[[951,10]]}},"keywords":{}}],["correl",{"_index":1151,"title":{},"content":{"167":{"position":[[1586,9]]}},"keywords":{}}],["correspond",{"_index":870,"title":{},"content":{"151":{"position":[[934,13]]}},"keywords":{}}],["corsdonotwaitforemptyeventloop",{"_index":2091,"title":{},"content":{"360":{"position":[[519,30]]}},"keywords":{}}],["couldn't",{"_index":359,"title":{},"content":{"17":{"position":[[1031,8]]}},"keywords":{}}],["cover",{"_index":752,"title":{"106":{"position":[[26,7]]},"107":{"position":[[31,7]]}},"content":{},"keywords":{}}],["cpu",{"_index":1953,"title":{},"content":{"322":{"position":[[1104,3],[1195,3]]}},"keywords":{}}],["creat",{"_index":363,"title":{},"content":{"17":{"position":[[1103,6]]},"153":{"position":[[317,6],[431,7]]},"163":{"position":[[607,6]]},"171":{"position":[[559,6],[1303,6]]},"172":{"position":[[226,7]]},"175":{"position":[[1280,6]]},"179":{"position":[[411,6],[724,8]]},"181":{"position":[[328,6]]},"185":{"position":[[140,7]]},"282":{"position":[[163,7],[214,7]]},"322":{"position":[[1214,7]]},"323":{"position":[[112,8],[324,7]]},"324":{"position":[[1290,7]]},"518":{"position":[[41,6]]}},"keywords":{}}],["createerror.unprocessableent",{"_index":1596,"title":{},"content":{"230":{"position":[[147,33]]},"240":{"position":[[1519,33]]}},"keywords":{}}],["createhash",{"_index":2192,"title":{},"content":{"375":{"position":[[100,10]]}},"keywords":{}}],["createhash('md5').update(json.stringify(event)).digest('hex",{"_index":2195,"title":{},"content":{"375":{"position":[[241,62]]}},"keywords":{}}],["createreadablestream",{"_index":1415,"title":{},"content":{"191":{"position":[[42,20],[209,27]]},"192":{"position":[[42,20],[143,27]]},"250":{"position":[[212,20],[338,29]]}},"keywords":{}}],["createrequir",{"_index":56,"title":{},"content":{"5":{"position":[[214,13]]}},"keywords":{}}],["createrequire(import.meta.url);"",{"_index":59,"title":{},"content":{"5":{"position":[[260,37]]}},"keywords":{}}],["createsubscriptionpay",{"_index":1271,"title":{},"content":{"179":{"position":[[352,25]]}},"keywords":{}}],["createsubscriptionpayment(ev",{"_index":1275,"title":{},"content":{"179":{"position":[[577,33]]}},"keywords":{}}],["creation",{"_index":1390,"title":{},"content":{"189":{"position":[[521,8],[732,8]]},"253":{"position":[[122,8]]}},"keywords":{}}],["credenti",{"_index":1452,"title":{},"content":{"196":{"position":[[1034,11]]},"207":{"position":[[1029,11]]},"240":{"position":[[1,11],[67,11]]},"283":{"position":[[496,11]]},"294":{"position":[[1006,11]]},"311":{"position":[[1056,11]]},"333":{"position":[[867,11]]},"507":{"position":[[29,10]]},"514":{"position":[[37,12]]}},"keywords":{}}],["creditcardnumb",{"_index":261,"title":{},"content":{"16":{"position":[[769,17],[1267,17],[1616,20]]}},"keywords":{}}],["critical.servicenam",{"_index":1082,"title":{},"content":{"166":{"position":[[218,20]]}},"keywords":{}}],["culprit",{"_index":578,"title":{},"content":{"21":{"position":[[2108,8]]}},"keywords":{}}],["current",{"_index":969,"title":{},"content":{"159":{"position":[[702,7]]},"163":{"position":[[144,10]]},"182":{"position":[[438,7],[932,7]]},"229":{"position":[[82,7]]},"322":{"position":[[709,7]]},"338":{"position":[[94,7]]},"373":{"position":[[377,9]]},"519":{"position":[[801,7],[864,7]]}},"keywords":{}}],["currentcachekey",{"_index":2199,"title":{},"content":{"375":{"position":[[453,15]]}},"keywords":{}}],["custom",{"_index":1051,"title":{"519":{"position":[[0,6]]}},"content":{"163":{"position":[[632,6]]},"164":{"position":[[359,6]]},"167":{"position":[[2075,8],[2364,6]]},"171":{"position":[[568,6],[812,6],[1253,6]]},"172":{"position":[[296,6]]},"175":{"position":[[1019,6]]},"178":{"position":[[196,9]]},"200":{"position":[[1456,6]]},"240":{"position":[[246,6]]},"281":{"position":[[1137,6]]},"301":{"position":[[210,6]]},"323":{"position":[[121,6],[309,6]]},"369":{"position":[[115,9]]},"378":{"position":[[825,6]]},"484":{"position":[[487,6]]},"515":{"position":[[357,6]]},"519":{"position":[[0,6]]},"521":{"position":[[57,6]]},"522":{"position":[[709,9],[901,6],[1086,6]]}},"keywords":{}}],["customer_id",{"_index":1158,"title":{},"content":{"167":{"position":[[2043,11]]}},"keywords":{}}],["custommiddlewar",{"_index":2310,"title":{},"content":{"490":{"position":[[296,16],[851,16],[1001,16],[1159,18]]},"522":{"position":[[764,16],[1524,16]]}},"keywords":{}}],["custommiddleware.j",{"_index":2309,"title":{},"content":{"490":{"position":[[250,19],[1023,21]]}},"keywords":{}}],["custommiddlewareaft",{"_index":2312,"title":{},"content":{"490":{"position":[[476,21],[776,22]]}},"keywords":{}}],["custommiddlewareafter(request",{"_index":2314,"title":{},"content":{"490":{"position":[[695,30]]}},"keywords":{}}],["custommiddlewarebefor",{"_index":2311,"title":{},"content":{"490":{"position":[[377,22],[745,23]]},"522":{"position":[[1180,22],[1482,22]]}},"keywords":{}}],["custommiddlewareonerror",{"_index":2313,"title":{},"content":{"490":{"position":[[596,23],[808,23]]}},"keywords":{}}],["cvc",{"_index":264,"title":{},"content":{"16":{"position":[[812,4],[1474,4]]}},"keywords":{}}],["cycl",{"_index":1339,"title":{"187":{"position":[[8,5]]}},"content":{"187":{"position":[[8,5]]}},"keywords":{}}],["cycledeprec",{"_index":2222,"title":{},"content":{"378":{"position":[[984,14]]}},"keywords":{}}],["d",{"_index":24,"title":{},"content":{"3":{"position":[[8,1]]},"5":{"position":[[8,1]]},"6":{"position":[[8,1]]},"7":{"position":[[8,1]]},"8":{"position":[[8,1]]},"10":{"position":[[8,1]]},"11":{"position":[[8,1]]},"12":{"position":[[8,1]]},"16":{"position":[[1342,6],[1534,6]]}},"keywords":{}}],["data",{"_index":269,"title":{"283":{"position":[[6,5]]}},"content":{"16":{"position":[[873,4]]},"99":{"position":[[38,4]]},"171":{"position":[[1001,4],[1369,4]]},"182":{"position":[[682,5]]},"196":{"position":[[795,4],[898,4]]},"199":{"position":[[1,4],[57,5],[123,4],[827,4],[1381,4]]},"207":{"position":[[790,4],[893,4]]},"214":{"position":[[1,4],[56,5],[122,4],[879,4],[1458,4]]},"253":{"position":[[490,4],[609,5],[641,4],[724,4]]},"254":{"position":[[427,5]]},"281":{"position":[[803,4]]},"286":{"position":[[523,4],[626,4]]},"290":{"position":[[356,4]]},"294":{"position":[[767,4],[870,4]]},"297":{"position":[[1,4],[60,5],[126,4],[824,4],[1404,4]]},"311":{"position":[[817,4],[920,4]]},"317":{"position":[[1274,4],[1377,4]]},"320":{"position":[[1,4],[69,5],[135,4],[839,4],[1460,4]]},"324":{"position":[[67,4]]},"327":{"position":[[800,4],[903,4]]},"328":{"position":[[1103,4],[1211,5]]},"330":{"position":[[1,4],[823,4],[1598,4]]},"333":{"position":[[628,4],[731,4]]},"349":{"position":[[154,5]]},"368":{"position":[[2026,4]]},"416":{"position":[[198,8]]},"522":{"position":[[1358,4],[1455,5]]}},"keywords":{}}],["data.accesstoken",{"_index":2044,"title":{},"content":{"330":{"position":[[1664,16]]}},"keywords":{}}],["data.config.field1",{"_index":1474,"title":{},"content":{"199":{"position":[[1428,18]]},"214":{"position":[[1505,18]]},"297":{"position":[[1451,18]]}},"keywords":{}}],["data.config.field2",{"_index":1475,"title":{},"content":{"199":{"position":[[1459,18]]},"214":{"position":[[1536,18]]},"297":{"position":[[1482,18]]}},"keywords":{}}],["data.config.field3",{"_index":1476,"title":{},"content":{"199":{"position":[[1490,18]]},"214":{"position":[[1567,18]]},"297":{"position":[[1513,18]]}},"keywords":{}}],["data.dbparam",{"_index":2045,"title":{},"content":{"330":{"position":[[1693,13]]}},"keywords":{}}],["data.somesecret.password",{"_index":1925,"title":{},"content":{"320":{"position":[[1544,24]]}},"keywords":{}}],["data.somesecret.us",{"_index":1924,"title":{},"content":{"320":{"position":[[1511,20]]}},"keywords":{}}],["databas",{"_index":810,"title":{"151":{"position":[[15,8]]}},"content":{"139":{"position":[[67,8]]},"151":{"position":[[15,8]]}},"keywords":{}}],["datadog",{"_index":1041,"title":{},"content":{"163":{"position":[[395,8]]}},"keywords":{}}],["datastream/cor",{"_index":1416,"title":{},"content":{"191":{"position":[[70,18]]},"192":{"position":[[70,18]]},"250":{"position":[[240,18]]}},"keywords":{}}],["date",{"_index":1377,"title":{},"content":{"187":{"position":[[770,5]]}},"keywords":{}}],["day",{"_index":254,"title":{},"content":{"16":{"position":[[601,3]]},"161":{"position":[[32,4]]}},"keywords":{}}],["dazn",{"_index":1932,"title":{},"content":{"322":{"position":[[1,4]]}},"keywords":{}}],["db",{"_index":2318,"title":{"491":{"position":[[0,2]]}},"content":{"507":{"position":[[97,2]]}},"keywords":{}}],["db:#{aws::region}:#{aws::accountid}:dbuser:${database_resource}/${iam_rol",{"_index":1839,"title":{},"content":{"286":{"position":[[897,75]]}},"keywords":{}}],["db:connect",{"_index":1836,"title":{},"content":{"286":{"position":[[853,10]]}},"keywords":{}}],["dbparam",{"_index":2030,"title":{},"content":{"328":{"position":[[264,9],[890,9],[1145,11]]},"330":{"position":[[1314,9],[1639,12]]}},"keywords":{}}],["de",{"_index":1716,"title":{},"content":{"258":{"position":[[275,3]]}},"keywords":{}}],["deal",{"_index":327,"title":{},"content":{"17":{"position":[[219,4]]},"253":{"position":[[885,4]]},"515":{"position":[[344,7]]}},"keywords":{}}],["debub",{"_index":1090,"title":{},"content":{"166":{"position":[[457,5]]}},"keywords":{}}],["debug",{"_index":1080,"title":{},"content":{"166":{"position":[[192,6],[424,5]]}},"keywords":{}}],["decid",{"_index":362,"title":{},"content":{"17":{"position":[[1092,7]]},"153":{"position":[[286,6]]},"272":{"position":[[47,7]]}},"keywords":{}}],["decod",{"_index":1425,"title":{},"content":{"193":{"position":[[264,7]]}},"keywords":{}}],["decoder.decode(buffer.from(chunk.payloadchunk.payload",{"_index":1431,"title":{},"content":{"193":{"position":[[402,55]]}},"keywords":{}}],["decor",{"_index":222,"title":{},"content":{"15":{"position":[[498,10]]},"17":{"position":[[753,8]]},"168":{"position":[[232,11]]}},"keywords":{}}],["decoupl",{"_index":2086,"title":{},"content":{"360":{"position":[[31,9]]}},"keywords":{}}],["decrypted.disableprefetch",{"_index":2016,"title":{},"content":{"327":{"position":[[587,25]]}},"keywords":{}}],["deep",{"_index":416,"title":{},"content":{"18":{"position":[[981,4],[1004,4]]}},"keywords":{}}],["default",{"_index":79,"title":{"371":{"position":[[33,7]]}},"content":{"6":{"position":[[305,7]]},"8":{"position":[[249,7]]},"21":{"position":[[8,8],[127,12],[2328,7]]},"22":{"position":[[52,8],[149,12]]},"31":{"position":[[2127,8]]},"37":{"position":[[543,10]]},"46":{"position":[[2252,8]]},"97":{"position":[[2152,8]]},"150":{"position":[[2139,8]]},"166":{"position":[[121,8],[310,8],[439,8],[715,8],[823,8]]},"167":{"position":[[2439,7]]},"170":{"position":[[158,8],[234,8],[349,8],[641,8]]},"174":{"position":[[158,8],[215,7],[257,8],[551,8],[656,8]]},"175":{"position":[[1197,7]]},"178":{"position":[[210,7]]},"189":{"position":[[157,7]]},"196":{"position":[[20,8],[195,8],[298,8],[416,8],[612,8],[748,8],[869,8],[1011,8]]},"199":{"position":[[145,7]]},"203":{"position":[[32,8],[287,7],[395,8]]},"207":{"position":[[20,8],[192,8],[294,8],[412,8],[608,8],[744,8],[864,8],[1006,8]]},"210":{"position":[[4,7],[228,9],[301,9],[331,9]]},"214":{"position":[[144,7]]},"217":{"position":[[29,8]]},"221":{"position":[[23,8]]},"225":{"position":[[15,9],[100,9],[210,9],[297,9],[408,9],[495,9],[607,9],[697,9],[810,9]]},"226":{"position":[[418,8],[703,8]]},"229":{"position":[[8,9],[187,8]]},"236":{"position":[[131,8],[182,7],[244,8]]},"240":{"position":[[79,8],[257,8],[345,9],[435,9],[573,8],[676,9],[913,9],[1003,9],[1101,9],[1200,9],[1320,9]]},"244":{"position":[[202,8],[222,7]]},"248":{"position":[[13,8],[80,8],[138,8],[352,8],[406,8]]},"253":{"position":[[29,8],[236,8],[277,7],[387,8],[407,7]]},"257":{"position":[[39,8]]},"265":{"position":[[95,8],[115,7]]},"272":{"position":[[313,8]]},"286":{"position":[[20,8],[339,8],[475,8],[597,8],[739,8]]},"290":{"position":[[17,8],[98,8],[181,8],[371,8]]},"294":{"position":[[20,8],[181,8],[277,8],[395,8],[591,8],[727,8],[841,8],[983,8]]},"297":{"position":[[148,7]]},"300":{"position":[[99,8]]},"305":{"position":[[20,8],[361,8]]},"311":{"position":[[20,8],[216,8],[326,8],[444,8],[640,8],[776,8],[891,8],[1033,8]]},"317":{"position":[[20,8],[623,8],[1085,8],[1221,8],[1348,8],[1490,8]]},"320":{"position":[[157,7]]},"327":{"position":[[20,8],[623,8],[759,8],[874,8],[1016,8]]},"328":{"position":[[344,9],[743,9],[787,9],[1157,12]]},"330":{"position":[[145,7]]},"333":{"position":[[20,8],[451,8],[587,8],[702,8],[844,8]]},"338":{"position":[[169,7]]},"342":{"position":[[20,8]]},"346":{"position":[[20,8],[231,8],[348,8],[466,8],[576,8]]},"365":{"position":[[24,8],[175,8],[435,8],[587,8],[626,7],[667,8],[754,9]]},"366":{"position":[[41,7],[206,8],[268,8]]},"367":{"position":[[100,7]]},"369":{"position":[[281,8],[376,8]]},"375":{"position":[[190,8],[426,12]]},"378":{"position":[[774,7],[865,7]]},"392":{"position":[[8,7]]},"394":{"position":[[9,7]]},"423":{"position":[[69,7]]},"431":{"position":[[44,7]]},"432":{"position":[[44,7]]},"437":{"position":[[44,7]]},"454":{"position":[[30,8]]},"484":{"position":[[82,8]]},"490":{"position":[[276,8],[348,12],[843,7]]},"496":{"position":[[116,8]]},"515":{"position":[[83,8],[173,7],[296,7]]},"519":{"position":[[339,8],[422,12],[740,7]]},"521":{"position":[[700,7]]},"522":{"position":[[620,8],[821,12],[1516,7]]}},"keywords":{}}],["default).append",{"_index":1066,"title":{},"content":{"164":{"position":[[272,18]]}},"keywords":{}}],["default).print",{"_index":1063,"title":{},"content":{"164":{"position":[[174,17]]}},"keywords":{}}],["default_namespac",{"_index":1211,"title":{},"content":{"174":{"position":[[269,18]]}},"keywords":{}}],["defaultcontenttyp",{"_index":700,"title":{},"content":{"43":{"position":[[2127,19]]},"269":{"position":[[1,18]]},"270":{"position":[[333,19]]},"273":{"position":[[542,19]]},"394":{"position":[[27,18]]}},"keywords":{}}],["defaulthandl",{"_index":691,"title":{},"content":{"37":{"position":[[360,14],[563,14]]},"353":{"position":[[154,15]]}},"keywords":{}}],["defaultlanguag",{"_index":2299,"title":{},"content":{"484":{"position":[[260,15]]}},"keywords":{}}],["defaulttofirstlanguag",{"_index":2232,"title":{},"content":{"386":{"position":[[8,22]]}},"keywords":{}}],["defin",{"_index":1160,"title":{},"content":{"167":{"position":[[2355,6]]},"217":{"position":[[100,6]]},"225":{"position":[[133,8],[330,8],[528,8],[730,8]]},"270":{"position":[[33,8]]}},"keywords":{}}],["definit",{"_index":1197,"title":{},"content":{"172":{"position":[[129,11]]},"521":{"position":[[875,11]]}},"keywords":{}}],["deflat",{"_index":1680,"title":{},"content":{"249":{"position":[[477,10]]},"250":{"position":[[673,10]]},"385":{"position":[[34,7]]}},"keywords":{}}],["deflateoptionsoverridepreferredencod",{"_index":1653,"title":{},"content":{"248":{"position":[[171,39]]}},"keywords":{}}],["deleg",{"_index":897,"title":{},"content":{"153":{"position":[[348,8]]}},"keywords":{}}],["delet",{"_index":2076,"title":{},"content":{"357":{"position":[[135,7]]}},"keywords":{}}],["depend",{"_index":370,"title":{},"content":{"18":{"position":[[79,9],[360,12],[803,12]]},"155":{"position":[[194,11]]},"327":{"position":[[1175,9]]},"357":{"position":[[454,9]]},"360":{"position":[[318,12]]},"447":{"position":[[116,11]]},"521":{"position":[[1092,12]]}},"keywords":{}}],["deploy",{"_index":2161,"title":{},"content":{"369":{"position":[[50,11]]}},"keywords":{}}],["deprec",{"_index":1368,"title":{},"content":{"187":{"position":[[538,10],[585,10],[632,10],[679,10],[726,10]]},"375":{"position":[[1,11]]},"400":{"position":[[1,10]]},"401":{"position":[[1,10]]},"403":{"position":[[1,10]]},"405":{"position":[[1,10]]},"407":{"position":[[1,10]]},"468":{"position":[[1,9]]},"484":{"position":[[143,9]]},"491":{"position":[[1,11]]},"493":{"position":[[1,11]]},"516":{"position":[[1,11]]}},"keywords":{}}],["describ",{"_index":1304,"title":{},"content":{"182":{"position":[[711,9]]}},"keywords":{}}],["descript",{"_index":604,"title":{},"content":{"21":{"position":[[2645,11],[2813,11]]}},"keywords":{}}],["deseri",{"_index":259,"title":{},"content":{"16":{"position":[[692,11],[1094,16]]}},"keywords":{}}],["destroy",{"_index":2155,"title":{},"content":{"368":{"position":[[1409,7]]}},"keywords":{}}],["detail",{"_index":945,"title":{},"content":{"157":{"position":[[934,8]]},"323":{"position":[[271,7]]},"365":{"position":[[891,7]]}},"keywords":{}}],["details)if",{"_index":2212,"title":{},"content":{"378":{"position":[[219,10]]}},"keywords":{}}],["detectopenhandl",{"_index":1410,"title":{},"content":{"189":{"position":[[1435,17]]}},"keywords":{}}],["determin",{"_index":1087,"title":{},"content":{"166":{"position":[[394,9]]},"272":{"position":[[105,10]]},"429":{"position":[[55,10]]}},"keywords":{}}],["dev",{"_index":918,"title":{},"content":{"155":{"position":[[238,3]]},"167":{"position":[[1928,3]]},"195":{"position":[[113,3]]},"206":{"position":[[112,3]]},"285":{"position":[[114,3]]},"293":{"position":[[106,3]]},"299":{"position":[[155,3]]},"304":{"position":[[122,3]]},"310":{"position":[[121,3]]},"316":{"position":[[119,3]]},"326":{"position":[[107,3]]},"332":{"position":[[107,3]]},"345":{"position":[[115,3]]},"364":{"position":[[113,3]]}},"keywords":{}}],["dev/api_token",{"_index":1484,"title":{},"content":{"200":{"position":[[544,15]]},"318":{"position":[[221,15],[480,13]]}},"keywords":{}}],["dev/default",{"_index":2032,"title":{},"content":{"328":{"position":[[354,15],[753,15]]}},"keywords":{}}],["dev/service_name/access_token",{"_index":2029,"title":{},"content":{"328":{"position":[[214,33],[840,33]]}},"keywords":{}}],["dev/service_name/databas",{"_index":2031,"title":{},"content":{"328":{"position":[[274,30],[900,29]]},"330":{"position":[[1372,29]]}},"keywords":{}}],["dev/service_name/key_nam",{"_index":768,"title":{},"content":{"106":{"position":[[524,28],[600,28]]},"107":{"position":[[632,28]]}},"keywords":{}}],["devdepend",{"_index":404,"title":{},"content":{"18":{"position":[[737,15]]},"521":{"position":[[1044,15]]}},"keywords":{}}],["develop",{"_index":129,"title":{},"content":{"8":{"position":[[265,14]]},"17":{"position":[[72,9],[672,10]]},"21":{"position":[[2473,11]]}},"keywords":{}}],["dicer/bench",{"_index":410,"title":{},"content":{"18":{"position":[[851,14]]}},"keywords":{}}],["dicer/test",{"_index":411,"title":{},"content":{"18":{"position":[[866,13]]}},"keywords":{}}],["differ",{"_index":252,"title":{},"content":{"16":{"position":[[553,9]]},"167":{"position":[[2405,9]]},"172":{"position":[[392,9]]},"175":{"position":[[1309,9]]},"317":{"position":[[987,9]]},"395":{"position":[[37,9]]},"413":{"position":[[37,9]]},"518":{"position":[[193,9]]}},"keywords":{}}],["differenti",{"_index":1157,"title":{},"content":{"167":{"position":[[1893,13]]}},"keywords":{}}],["dimens",{"_index":1201,"title":{},"content":{"172":{"position":[[189,11],[402,11],[489,11]]},"175":{"position":[[1205,10],[1319,11]]},"203":{"position":[[254,11],[295,11],[368,11],[384,10]]},"204":{"position":[[385,11]]}},"keywords":{}}],["directli",{"_index":473,"title":{},"content":{"19":{"position":[[644,8]]},"159":{"position":[[334,8]]},"253":{"position":[[969,8]]}},"keywords":{}}],["directori",{"_index":375,"title":{},"content":{"18":{"position":[[171,9]]}},"keywords":{}}],["disabl",{"_index":1062,"title":{},"content":{"164":{"position":[[161,9],[259,9]]},"168":{"position":[[355,7]]},"189":{"position":[[509,7],[614,7],[720,7],[879,7]]},"196":{"position":[[712,8]]},"207":{"position":[[708,8]]},"286":{"position":[[439,8]]},"294":{"position":[[691,8]]},"305":{"position":[[461,8]]},"311":{"position":[[740,8]]},"317":{"position":[[1185,8]]},"327":{"position":[[723,8]]},"333":{"position":[[551,8]]},"346":{"position":[[676,8]]},"365":{"position":[[613,7]]},"520":{"position":[[269,7]]}},"keywords":{}}],["disablecontenttypeerror",{"_index":1748,"title":{},"content":{"265":{"position":[[1,23]]},"431":{"position":[[8,23]]},"432":{"position":[[8,23]]},"437":{"position":[[8,23]]}},"keywords":{}}],["disablecontenttypeerror:tru",{"_index":2270,"title":{},"content":{"416":{"position":[[289,28]]}},"keywords":{}}],["disableprefetch",{"_index":2383,"title":{},"content":{"522":{"position":[[675,16]]}},"keywords":{}}],["disconnect",{"_index":695,"title":{},"content":{"37":{"position":[[486,14]]},"353":{"position":[[141,12]]},"354":{"position":[[445,14],[543,14]]}},"keywords":{}}],["disconnecthandl",{"_index":689,"title":{},"content":{"37":{"position":[[288,17],[510,17]]},"354":{"position":[[327,17],[567,17]]}},"keywords":{}}],["discoveri",{"_index":105,"title":{"309":{"position":[[8,9]]},"404":{"position":[[8,10]]},"443":{"position":[[8,10]]},"480":{"position":[[8,10]]}},"content":{"6":{"position":[[726,9]]},"8":{"position":[[933,9]]},"283":{"position":[[322,10],[349,9]]},"310":{"position":[[92,9]]},"312":{"position":[[78,10]]}},"keywords":{}}],["discoveryinst",{"_index":2250,"title":{},"content":{"404":{"position":[[28,18]]}},"keywords":{}}],["discuss",{"_index":1296,"title":{},"content":{"182":{"position":[[4,9]]},"468":{"position":[[260,10]]}},"keywords":{}}],["dn",{"_index":1726,"title":{},"content":{"261":{"position":[[37,3]]}},"keywords":{}}],["dnsprefetchcontrol",{"_index":1725,"title":{},"content":{"261":{"position":[[1,18]]}},"keywords":{}}],["do",{"_index":253,"title":{},"content":{"16":{"position":[[589,5]]},"181":{"position":[[121,5]]},"182":{"position":[[782,5]]}},"keywords":{}}],["doc",{"_index":1507,"title":{},"content":{"203":{"position":[[451,5]]}},"keywords":{}}],["document",{"_index":618,"title":{"25":{"position":[[4,14]]},"27":{"position":[[4,14]]},"30":{"position":[[4,14]]},"33":{"position":[[4,14]]},"36":{"position":[[4,14]]},"39":{"position":[[4,14]]},"42":{"position":[[4,14]]},"45":{"position":[[4,14]]},"48":{"position":[[4,14]]},"51":{"position":[[4,14]]},"54":{"position":[[4,14]]},"57":{"position":[[4,14]]},"60":{"position":[[4,14]]},"63":{"position":[[4,14]]},"66":{"position":[[4,14]]},"69":{"position":[[4,14]]},"72":{"position":[[4,14]]},"75":{"position":[[4,14]]},"78":{"position":[[4,14]]},"81":{"position":[[4,14]]},"84":{"position":[[4,14]]},"87":{"position":[[4,14]]},"90":{"position":[[4,14]]},"93":{"position":[[4,14]]},"96":{"position":[[4,14]]},"99":{"position":[[4,14]]},"102":{"position":[[4,14]]},"109":{"position":[[4,14]]},"112":{"position":[[4,14]]},"115":{"position":[[4,14]]},"118":{"position":[[4,14]]},"121":{"position":[[4,14]]},"124":{"position":[[4,14]]},"127":{"position":[[4,14]]},"130":{"position":[[4,14]]},"133":{"position":[[4,14]]},"136":{"position":[[4,14]]},"142":{"position":[[4,14]]},"149":{"position":[[4,14]]}},"content":{"172":{"position":[[623,13]]},"253":{"position":[[159,13]]},"333":{"position":[[1082,13]]},"510":{"position":[[17,13]]},"513":{"position":[[17,13]]}},"keywords":{}}],["documentdb",{"_index":729,"title":{"74":{"position":[[0,10]]}},"content":{"75":{"position":[[30,10]]}},"keywords":{}}],["doe",{"_index":1710,"title":{},"content":{"258":{"position":[[216,6],[591,5]]}},"keywords":{}}],["doesn't",{"_index":376,"title":{},"content":{"18":{"position":[[194,7]]},"21":{"position":[[1962,7]]},"305":{"position":[[629,7]]},"368":{"position":[[1401,7]]}},"keywords":{}}],["domain",{"_index":856,"title":{},"content":{"151":{"position":[[462,6]]}},"keywords":{}}],["don't",{"_index":182,"title":{},"content":{"13":{"position":[[78,5]]},"16":{"position":[[678,5]]},"200":{"position":[[780,5]]},"229":{"position":[[138,5]]},"269":{"position":[[64,5]]}},"keywords":{}}],["done",{"_index":2169,"title":{},"content":{"369":{"position":[[466,4],[608,4]]}},"keywords":{}}],["done)remov",{"_index":2215,"title":{},"content":{"378":{"position":[[355,11]]}},"keywords":{}}],["donotwaitforemptyeventloop",{"_index":1530,"title":{},"content":{"211":{"position":[[40,26]]}},"keywords":{}}],["doubl",{"_index":2109,"title":{},"content":{"361":{"position":[[513,6]]}},"keywords":{}}],["down",{"_index":2211,"title":{},"content":{"378":{"position":[[163,4]]}},"keywords":{}}],["download",{"_index":1736,"title":{},"content":{"261":{"position":[[258,8]]}},"keywords":{}}],["draft",{"_index":2331,"title":{},"content":{"515":{"position":[[54,5]]}},"keywords":{}}],["draft2019",{"_index":2140,"title":{},"content":{"366":{"position":[[102,10]]}},"keywords":{}}],["draft2019/.github",{"_index":391,"title":{},"content":{"18":{"position":[[463,17]]}},"keywords":{}}],["draft2019/.prettierrc.j",{"_index":392,"title":{},"content":{"18":{"position":[[496,24]]}},"keywords":{}}],["draft2019/index.test.j",{"_index":393,"title":{},"content":{"18":{"position":[[536,23]]}},"keywords":{}}],["dramat",{"_index":598,"title":{},"content":{"21":{"position":[[2570,8]]}},"keywords":{}}],["drop",{"_index":2113,"title":{"362":{"position":[[54,8]]}},"content":{"362":{"position":[[98,7]]}},"keywords":{}}],["due",{"_index":1407,"title":{},"content":{"189":{"position":[[1390,3]]},"400":{"position":[[28,3]]},"403":{"position":[[28,3]]}},"keywords":{}}],["dump",{"_index":1940,"title":{},"content":{"322":{"position":[[434,7]]}},"keywords":{}}],["duplic",{"_index":984,"title":{},"content":{"161":{"position":[[100,11]]},"163":{"position":[[859,9]]}},"keywords":{}}],["duplicatesexpir",{"_index":1246,"title":{},"content":{"176":{"position":[[350,17]]}},"keywords":{}}],["durat",{"_index":1292,"title":{},"content":{"181":{"position":[[545,8]]}},"keywords":{}}],["dure",{"_index":511,"title":{"370":{"position":[[10,6]]},"371":{"position":[[10,6]]}},"content":{"21":{"position":[[387,6]]},"176":{"position":[[95,6]]},"322":{"position":[[1122,6]]},"324":{"position":[[666,6]]},"365":{"position":[[1168,6]]},"520":{"position":[[321,6]]},"522":{"position":[[244,6]]}},"keywords":{}}],["dvi",{"_index":1778,"title":{},"content":{"273":{"position":[[676,4]]}},"keywords":{}}],["dynam",{"_index":1966,"title":{},"content":{"322":{"position":[[1425,7]]}},"keywords":{}}],["dynamodb",{"_index":726,"title":{"65":{"position":[[0,8]]},"205":{"position":[[0,8]]}},"content":{"66":{"position":[[30,8]]},"107":{"position":[[538,9],[848,9]]},"177":{"position":[[83,8],[105,8]]},"206":{"position":[[132,8],[155,8]]},"207":{"position":[[753,10]]},"212":{"position":[[40,8],[274,10]]},"213":{"position":[[41,8]]},"214":{"position":[[9,8],[407,8],[1043,9],[1271,10]]},"221":{"position":[[219,8]]},"323":{"position":[[585,9]]}},"keywords":{}}],["dynamodb.awsclientopt",{"_index":1524,"title":{},"content":{"207":{"position":[[157,25]]}},"keywords":{}}],["dynamodb.rd",{"_index":1825,"title":{},"content":{"283":{"position":[[89,12]]}},"keywords":{}}],["dynamodb:batchgetitemcommand",{"_index":1525,"title":{},"content":{"207":{"position":[[1116,28]]}},"keywords":{}}],["dynamodbcli",{"_index":1523,"title":{},"content":{"207":{"position":[[29,16],[46,14],[232,14]]}},"keywords":{}}],["dynamodbmiddlewar",{"_index":777,"title":{},"content":{"107":{"position":[[170,18],[504,20]]}},"keywords":{}}],["dynamodbpersistencelay",{"_index":1268,"title":{},"content":{"179":{"position":[[172,24],[280,26]]}},"keywords":{}}],["dynamodbreq",{"_index":1536,"title":{},"content":{"214":{"position":[[285,11],[642,11],[990,12],[1055,11]]}},"keywords":{}}],["dynamodbreq<paramtype>(config",{"_index":1537,"title":{},"content":{"214":{"position":[[587,36]]}},"keywords":{}}],["dynamodbreq<{field1",{"_index":1539,"title":{},"content":{"214":{"position":[[1303,23]]}},"keywords":{}}],["e.g",{"_index":1569,"title":{},"content":{"225":{"position":[[948,5]]},"361":{"position":[[252,5]]},"490":{"position":[[242,4]]},"520":{"position":[[439,5]]}},"keywords":{}}],["each",{"_index":602,"title":{},"content":{"21":{"position":[[2621,4]]},"166":{"position":[[806,4]]},"168":{"position":[[186,4]]},"181":{"position":[[353,4]]},"187":{"position":[[14,4],[129,4]]},"328":{"position":[[334,4],[959,4]]},"521":{"position":[[1064,4]]}},"keywords":{}}],["earli",{"_index":958,"title":{"159":{"position":[[0,5]]},"182":{"position":[[15,5]]}},"content":{"159":{"position":[[0,5],[305,5],[1019,5]]},"161":{"position":[[26,5]]},"182":{"position":[[21,5],[1324,5]]},"196":{"position":[[665,5]]},"207":{"position":[[661,5]]},"286":{"position":[[392,5]]},"294":{"position":[[644,5]]},"305":{"position":[[414,5]]},"311":{"position":[[693,5]]},"317":{"position":[[1138,5]]},"327":{"position":[[676,5]]},"333":{"position":[[504,5]]},"346":{"position":[[629,5]]},"378":{"position":[[558,5],[762,5]]},"516":{"position":[[356,5]]},"520":{"position":[[168,5]]}},"keywords":{}}],["easi",{"_index":358,"title":{},"content":{"17":{"position":[[1003,4]]},"404":{"position":[[13,4]]}},"keywords":{}}],["easier",{"_index":1038,"title":{},"content":{"163":{"position":[[265,6]]},"323":{"position":[[178,6],[217,7]]},"378":{"position":[[946,6]]},"388":{"position":[[83,6]]}},"keywords":{}}],["easier.middi",{"_index":1935,"title":{},"content":{"322":{"position":[[117,12]]}},"keywords":{}}],["east",{"_index":1486,"title":{},"content":{"200":{"position":[[595,4]]},"318":{"position":[[272,4]]}},"keywords":{}}],["ec2",{"_index":727,"title":{"68":{"position":[[0,3]]}},"content":{"69":{"position":[[30,3]]}},"keywords":{}}],["ecosystem",{"_index":1332,"title":{},"content":{"186":{"position":[[218,10],[299,11]]}},"keywords":{}}],["editorconfig",{"_index":442,"title":{},"content":{"18":{"position":[[1440,13]]}},"keywords":{}}],["effect",{"_index":599,"title":{},"content":{"21":{"position":[[2579,7]]},"176":{"position":[[524,7]]},"378":{"position":[[168,7]]}},"keywords":{}}],["element",{"_index":213,"title":{},"content":{"15":{"position":[[388,8]]}},"keywords":{}}],["elseth",{"_index":1769,"title":{},"content":{"272":{"position":[[214,7]]}},"keywords":{}}],["email",{"_index":2156,"title":{},"content":{"368":{"position":[[1874,9],[1924,6],[1957,7]]}},"keywords":{}}],["embed",{"_index":1500,"title":{},"content":{"203":{"position":[[48,8],[434,8]]},"323":{"position":[[362,8]]}},"keywords":{}}],["emf",{"_index":1055,"title":{},"content":{"163":{"position":[[759,3]]},"172":{"position":[[72,3]]},"175":{"position":[[477,3],[919,3]]}},"keywords":{}}],["emf)paramet",{"_index":1971,"title":{},"content":{"323":{"position":[[385,16]]}},"keywords":{}}],["emit",{"_index":1238,"title":{},"content":{"175":{"position":[[1249,7]]},"182":{"position":[[609,4]]}},"keywords":{}}],["emoji",{"_index":1029,"title":{},"content":{"161":{"position":[[689,5]]}},"keywords":{}}],["empti",{"_index":808,"title":{"208":{"position":[[16,5]]},"382":{"position":[[16,5]]},"422":{"position":[[16,5]]},"459":{"position":[[16,5]]},"492":{"position":[[16,5]]}},"content":{"139":{"position":[[31,6],[140,5]]},"203":{"position":[[326,5]]},"209":{"position":[[100,5]]},"211":{"position":[[96,5]]},"280":{"position":[[116,5]]},"281":{"position":[[330,5]]},"360":{"position":[[579,5]]},"366":{"position":[[349,8]]},"369":{"position":[[290,5],[385,5]]}},"keywords":{}}],["en",{"_index":662,"title":{},"content":{"31":{"position":[[1613,4]]},"43":{"position":[[1613,4]]},"46":{"position":[[1738,4]]},"97":{"position":[[1638,4]]},"150":{"position":[[1625,4]]},"226":{"position":[[939,6]]},"365":{"position":[[676,4]]},"369":{"position":[[739,2],[916,3]]},"370":{"position":[[307,2],[516,3]]},"371":{"position":[[205,3],[475,3]]},"484":{"position":[[971,3],[1148,3]]}},"keywords":{}}],["en.j",{"_index":2175,"title":{},"content":{"369":{"position":[[747,9]]}},"keywords":{}}],["enabl",{"_index":497,"title":{},"content":{"21":{"position":[[42,8],[113,7],[261,10]]},"170":{"position":[[218,6]]},"196":{"position":[[437,6]]},"207":{"position":[[433,6]]},"294":{"position":[[416,6]]},"305":{"position":[[272,6]]},"311":{"position":[[465,6]]},"317":{"position":[[431,6]]},"327":{"position":[[391,6]]},"333":{"position":[[276,6]]},"346":{"position":[[487,6]]},"504":{"position":[[62,7]]}},"keywords":{}}],["enabling/dis",{"_index":1555,"title":{},"content":{"225":{"position":[[43,18],[238,18],[436,18],[635,18]]}},"keywords":{}}],["encod",{"_index":143,"title":{"246":{"position":[[13,8]]},"385":{"position":[[13,9]]},"425":{"position":[[13,9]]},"462":{"position":[[13,9]]}},"content":{"8":{"position":[[532,8],[598,8],[638,8]]},"31":{"position":[[300,9]]},"43":{"position":[[300,9]]},"46":{"position":[[351,9]]},"97":{"position":[[300,9]]},"150":{"position":[[300,9]]},"225":{"position":[[261,9],[351,9]]},"247":{"position":[[97,8]]},"248":{"position":[[262,8],[390,8]]},"249":{"position":[[155,9]]},"250":{"position":[[155,9]]},"253":{"position":[[740,7]]},"281":{"position":[[219,9],[917,7],[1042,7]]},"282":{"position":[[14,9],[42,8]]}},"keywords":{}}],["encodeuricomponent('mîddi",{"_index":1787,"title":{},"content":{"277":{"position":[[342,27]]}},"keywords":{}}],["encourag",{"_index":1329,"title":{},"content":{"186":{"position":[[54,9]]},"362":{"position":[[206,10]]}},"keywords":{}}],["end",{"_index":332,"title":{},"content":{"17":{"position":[[399,4]]},"31":{"position":[[1871,3]]},"43":{"position":[[1871,3]]},"46":{"position":[[1996,3]]},"97":{"position":[[1896,3]]},"150":{"position":[[1883,3]]},"153":{"position":[[595,3]]},"187":{"position":[[437,3]]},"189":{"position":[[1030,3]]},"378":{"position":[[310,3],[544,6]]},"522":{"position":[[152,5],[1077,3]]}},"keywords":{}}],["endpoint",{"_index":1823,"title":{},"content":{"282":{"position":[[645,9]]},"349":{"position":[[244,9]]},"416":{"position":[[261,8]]}},"keywords":{}}],["enforc",{"_index":872,"title":{},"content":{"151":{"position":[[992,7]]}},"keywords":{}}],["engin",{"_index":195,"title":{},"content":{"15":{"position":[[35,6],[283,6]]},"360":{"position":[[127,6]]}},"keywords":{}}],["enhanc",{"_index":927,"title":{},"content":{"156":{"position":[[324,8]]}},"keywords":{}}],["enrich",{"_index":1969,"title":{},"content":{"323":{"position":[[245,6]]}},"keywords":{}}],["ensur",{"_index":181,"title":{},"content":{"13":{"position":[[67,6]]},"18":{"position":[[184,6]]},"189":{"position":[[1503,6]]},"248":{"position":[[550,6]]}},"keywords":{}}],["enter",{"_index":1350,"title":{},"content":{"187":{"position":[[207,6]]}},"keywords":{}}],["entir",{"_index":1765,"title":{},"content":{"271":{"position":[[133,6],[331,6]]}},"keywords":{}}],["entiti",{"_index":1602,"title":{},"content":{"230":{"position":[[396,7]]},"240":{"position":[[1842,7]]}},"keywords":{}}],["entri",{"_index":130,"title":{},"content":{"8":{"position":[[280,6]]},"167":{"position":[[1182,5],[1330,6],[1693,5],[1853,8],[2024,6]]}},"keywords":{}}],["env",{"_index":151,"title":{},"content":{"10":{"position":[[47,3]]},"19":{"position":[[707,4]]},"324":{"position":[[1482,4]]}},"keywords":{}}],["env"",{"_index":158,"title":{},"content":{"10":{"position":[[190,10]]}},"keywords":{}}],["environ",{"_index":5,"title":{},"content":{"0":{"position":[[46,11]]},"107":{"position":[[395,12]]},"167":{"position":[[1874,11],[1932,13]]},"168":{"position":[[402,12]]},"189":{"position":[[1159,13]]},"197":{"position":[[198,12]]},"199":{"position":[[1315,12]]},"324":{"position":[[1517,11]]}},"keywords":{}}],["equal",{"_index":851,"title":{},"content":{"151":{"position":[[316,7]]},"322":{"position":[[310,5]]}},"keywords":{}}],["equal/es6",{"_index":417,"title":{},"content":{"18":{"position":[[986,9]]}},"keywords":{}}],["equal/react.j",{"_index":418,"title":{},"content":{"18":{"position":[[1009,14]]}},"keywords":{}}],["err",{"_index":2151,"title":{},"content":{"368":{"position":[[687,5],[1267,5]]}},"keywords":{}}],["error",{"_index":247,"title":{"153":{"position":[[9,6]]},"215":{"position":[[0,5]]},"227":{"position":[[5,5]]},"383":{"position":[[0,5]]},"388":{"position":[[5,5]]},"423":{"position":[[0,5]]},"428":{"position":[[5,5]]},"460":{"position":[[0,5]]},"465":{"position":[[5,5]]},"496":{"position":[[5,5]]}},"content":{"16":{"position":[[394,5],[1128,5],[2035,6]]},"17":{"position":[[341,5]]},"31":{"position":[[412,5]]},"43":{"position":[[412,5]]},"46":{"position":[[463,5]]},"97":{"position":[[412,5]]},"150":{"position":[[412,5]]},"151":{"position":[[795,5],[844,5],[920,5]]},"153":{"position":[[9,6],[51,6],[75,6],[307,5],[361,5],[421,5],[502,5],[606,5],[701,6],[759,6],[895,5],[921,12],[948,5]]},"158":{"position":[[680,7]]},"159":{"position":[[327,6],[447,5]]},"166":{"position":[[211,6]]},"171":{"position":[[963,5]]},"174":{"position":[[519,5]]},"179":{"position":[[691,7]]},"189":{"position":[[634,5],[1135,7]]},"217":{"position":[[142,5]]},"226":{"position":[[209,5]]},"228":{"position":[[89,5]]},"229":{"position":[[90,5],[223,6]]},"230":{"position":[[75,5]]},"233":{"position":[[251,5]]},"240":{"position":[[1411,5]]},"282":{"position":[[148,5],[198,6],[236,6]]},"324":{"position":[[116,5]]},"353":{"position":[[249,6],[360,6]]},"357":{"position":[[592,6]]},"360":{"position":[[690,5]]},"365":{"position":[[885,5]]},"366":{"position":[[131,7]]},"369":{"position":[[263,6],[358,6]]},"373":{"position":[[137,10],[259,10],[397,5]]},"377":{"position":[[62,5],[84,5]]},"378":{"position":[[246,6],[832,5]]},"379":{"position":[[13,5]]},"387":{"position":[[41,5]]},"389":{"position":[[60,5]]},"394":{"position":[[130,5]]},"396":{"position":[[41,5]]},"406":{"position":[[167,5]]},"409":{"position":[[14,6]]},"416":{"position":[[120,6]]},"417":{"position":[[55,5]]},"428":{"position":[[35,6]]},"429":{"position":[[25,5]]},"444":{"position":[[26,6]]},"484":{"position":[[331,5],[518,5]]},"496":{"position":[[46,6],[189,6]]},"515":{"position":[[264,6]]},"518":{"position":[[738,5]]},"519":{"position":[[252,6],[948,7]]},"520":{"position":[[53,5],[212,5]]}},"keywords":{}}],["error('error",{"_index":1279,"title":{},"content":{"179":{"position":[[711,12]]}},"keywords":{}}],["error('messag",{"_index":2268,"title":{},"content":{"416":{"position":[[148,16]]}},"keywords":{}}],["error('timeout",{"_index":2221,"title":{},"content":{"378":{"position":[[894,16]]}},"keywords":{}}],["error(in",{"_index":2360,"title":{},"content":{"519":{"position":[[928,8]]}},"keywords":{}}],["errorlogg",{"_index":1544,"title":{},"content":{"218":{"position":[[40,11]]}},"keywords":{}}],["errorloggermiddlewar",{"_index":625,"title":{},"content":{"31":{"position":[[40,21]]},"43":{"position":[[40,21]]},"46":{"position":[[91,21]]},"97":{"position":[[40,21]]},"105":{"position":[[108,21]]},"150":{"position":[[40,21]]}},"keywords":{}}],["errormessag",{"_index":2305,"title":{},"content":{"484":{"position":[[543,12]]}},"keywords":{}}],["errors.http",{"_index":1816,"title":{},"content":{"282":{"position":[[277,11]]}},"keywords":{}}],["errors/src",{"_index":389,"title":{},"content":{"18":{"position":[[418,10]]}},"keywords":{}}],["errorscatch",{"_index":2225,"title":{},"content":{"379":{"position":[[57,11]]}},"keywords":{}}],["errorsinput",{"_index":1795,"title":{},"content":{"280":{"position":[[206,11]]}},"keywords":{}}],["errorsplugin",{"_index":2217,"title":{},"content":{"378":{"position":[[582,12]]}},"keywords":{}}],["errrormessag",{"_index":2149,"title":{},"content":{"367":{"position":[[153,15]]}},"keywords":{}}],["es",{"_index":86,"title":{},"content":{"6":{"position":[[400,4],[413,2]]}},"keywords":{}}],["esbuild",{"_index":45,"title":{"5":{"position":[[0,8]]},"11":{"position":[[0,8]]}},"content":{"5":{"position":[[10,7]]},"11":{"position":[[10,7]]}},"keywords":{}}],["eslintignor",{"_index":443,"title":{},"content":{"18":{"position":[[1454,13]]}},"keywords":{}}],["eslintrc",{"_index":444,"title":{},"content":{"18":{"position":[[1468,9]]}},"keywords":{}}],["eslintrc.yml",{"_index":445,"title":{},"content":{"18":{"position":[[1478,13]]}},"keywords":{}}],["esm",{"_index":239,"title":{},"content":{"16":{"position":[[192,3]]}},"keywords":{}}],["especi",{"_index":2378,"title":{},"content":{"522":{"position":[[402,10]]}},"keywords":{}}],["establish",{"_index":12,"title":{},"content":{"0":{"position":[[184,11]]}},"keywords":{}}],["etc",{"_index":218,"title":{},"content":{"15":{"position":[[460,4]]},"17":{"position":[[357,4],[585,6]]},"172":{"position":[[507,4]]}},"keywords":{}}],["eu",{"_index":1117,"title":{},"content":{"167":{"position":[[582,2],[784,2]]}},"keywords":{}}],["evalu",{"_index":1694,"title":{},"content":{"253":{"position":[[823,8]]}},"keywords":{}}],["even",{"_index":453,"title":{},"content":{"19":{"position":[[44,4]]},"248":{"position":[[313,4]]}},"keywords":{}}],["event",{"_index":137,"title":{"83":{"position":[[4,6]]},"104":{"position":[[8,6]]},"208":{"position":[[22,5]]},"219":{"position":[[0,5]]},"231":{"position":[[5,5]]},"382":{"position":[[22,5]]},"384":{"position":[[0,5]]},"389":{"position":[[5,5]]},"422":{"position":[[22,5]]},"424":{"position":[[0,5]]},"429":{"position":[[5,5]]},"459":{"position":[[22,5]]},"461":{"position":[[0,5]]},"466":{"position":[[5,5]]},"492":{"position":[[22,5]]},"497":{"position":[[5,5]]}},"content":{"8":{"position":[[436,9]]},"16":{"position":[[647,7],[1665,5]]},"19":{"position":[[280,7]]},"31":{"position":[[482,5]]},"43":{"position":[[482,5]]},"46":{"position":[[533,5]]},"84":{"position":[[31,6]]},"87":{"position":[[54,7]]},"97":{"position":[[482,5]]},"105":{"position":[[677,7]]},"106":{"position":[[816,7]]},"107":{"position":[[777,7]]},"139":{"position":[[13,5],[146,5]]},"150":{"position":[[482,5]]},"157":{"position":[[190,7],[668,7]]},"159":{"position":[[710,5],[741,7],[1378,7]]},"164":{"position":[[138,6]]},"166":{"position":[[708,6]]},"167":{"position":[[2196,6],[2281,5]]},"176":{"position":[[81,5],[217,5]]},"179":{"position":[[388,5],[523,7]]},"181":{"position":[[414,5],[611,5]]},"182":{"position":[[940,5],[971,7]]},"191":{"position":[[111,7]]},"192":{"position":[[111,7]]},"199":{"position":[[1066,7]]},"200":{"position":[[192,6],[1269,5]]},"204":{"position":[[123,7]]},"209":{"position":[[106,5]]},"211":{"position":[[102,5],[136,7]]},"212":{"position":[[94,7]]},"218":{"position":[[101,7]]},"221":{"position":[[228,6]]},"222":{"position":[[109,7],[154,5]]},"226":{"position":[[246,7]]},"230":{"position":[[112,7]]},"232":{"position":[[89,5]]},"233":{"position":[[78,5],[117,7]]},"237":{"position":[[120,7]]},"240":{"position":[[1484,7]]},"241":{"position":[[91,7]]},"245":{"position":[[182,7],[359,5]]},"250":{"position":[[281,7]]},"254":{"position":[[192,7],[374,5]]},"258":{"position":[[118,7],[421,5]]},"262":{"position":[[118,7]]},"266":{"position":[[192,7],[434,8],[449,5]]},"273":{"position":[[124,7],[616,5]]},"277":{"position":[[293,8],[308,5]]},"280":{"position":[[122,5]]},"281":{"position":[[1,5],[59,5],[276,5],[310,6],[1099,6]]},"287":{"position":[[97,7]]},"291":{"position":[[114,7],[497,7]]},"295":{"position":[[82,7]]},"301":{"position":[[111,7]]},"307":{"position":[[136,7]]},"308":{"position":[[142,7]]},"312":{"position":[[111,7]]},"318":{"position":[[107,7]]},"320":{"position":[[1077,7]]},"322":{"position":[[400,5],[485,5],[739,5],[795,5],[1386,6]]},"324":{"position":[[77,6],[252,5],[281,5]]},"328":{"position":[[84,7],[626,7]]},"330":{"position":[[1084,7]]},"334":{"position":[[84,7]]},"338":{"position":[[42,5],[102,5],[120,5],[204,5]]},"339":{"position":[[100,7],[161,7]]},"343":{"position":[[177,7]]},"349":{"position":[[99,7]]},"360":{"position":[[585,5],[741,5]]},"368":{"position":[[13,5],[188,7],[390,5],[603,5],[724,6],[953,7],[1722,7]]},"369":{"position":[[804,7]]},"370":{"position":[[264,7]]},"371":{"position":[[333,7]]},"375":{"position":[[227,7]]},"389":{"position":[[81,5]]},"395":{"position":[[27,6]]},"401":{"position":[[25,5]]},"405":{"position":[[25,5]]},"406":{"position":[[128,5]]},"411":{"position":[[33,5]]},"413":{"position":[[27,6]]},"425":{"position":[[47,5]]},"426":{"position":[[23,5]]},"447":{"position":[[47,5]]},"449":{"position":[[34,5]]},"490":{"position":[[434,6],[1073,7]]},"509":{"position":[[62,6]]},"518":{"position":[[469,7]]},"519":{"position":[[872,5]]},"520":{"position":[[516,7],[591,6]]},"521":{"position":[[98,6]]},"522":{"position":[[146,5]]}},"keywords":{}}],["event.bodi",{"_index":267,"title":{},"content":{"16":{"position":[[840,10]]},"266":{"position":[[224,10]]},"277":{"position":[[159,10]]}},"keywords":{}}],["event.body.messag",{"_index":2060,"title":{},"content":{"343":{"position":[[200,18]]}},"keywords":{}}],["event.iswarmingup",{"_index":2057,"title":{},"content":{"339":{"position":[[175,17]]}},"keywords":{}}],["event.path",{"_index":1494,"title":{},"content":{"200":{"position":[[921,15]]}},"keywords":{}}],["event.pathparameters.userid",{"_index":1606,"title":{},"content":{"233":{"position":[[166,32]]}},"keywords":{}}],["event.productid",{"_index":1273,"title":{},"content":{"179":{"position":[[464,16]]}},"keywords":{}}],["event.rawbodi",{"_index":2288,"title":{},"content":{"468":{"position":[[11,13]]}},"keywords":{}}],["event.records.map(async",{"_index":1871,"title":{},"content":{"301":{"position":[[159,23]]}},"keywords":{}}],["event.requestcontext.connectionid",{"_index":2067,"title":{},"content":{"346":{"position":[[939,33]]}},"keywords":{}}],["event.requestcontext.{domainname,stage}if",{"_index":2065,"title":{},"content":{"346":{"position":[[840,41]]}},"keywords":{}}],["eventbridg",{"_index":733,"title":{"86":{"position":[[0,11]]}},"content":{"87":{"position":[[30,11]]}},"keywords":{}}],["eventnorm",{"_index":1552,"title":{},"content":{"222":{"position":[[40,15]]}},"keywords":{}}],["eventnormalizermiddlewar",{"_index":717,"title":{},"content":{"52":{"position":[[40,25]]},"61":{"position":[[40,25]]},"64":{"position":[[40,25]]},"67":{"position":[[40,25]]},"91":{"position":[[40,25]]},"94":{"position":[[40,25]]},"100":{"position":[[40,25]]},"103":{"position":[[40,25]]},"110":{"position":[[40,25]]},"113":{"position":[[40,25]]},"116":{"position":[[40,25]]},"125":{"position":[[40,25]]},"131":{"position":[[40,25]]},"143":{"position":[[40,25]]}},"keywords":{}}],["events.http",{"_index":1800,"title":{},"content":{"281":{"position":[[105,11]]}},"keywords":{}}],["eventschema",{"_index":310,"title":{},"content":{"16":{"position":[[1923,12]]},"31":{"position":[[1217,11],[2225,12]]},"43":{"position":[[1217,11],[2236,12]]},"97":{"position":[[1217,11],[2250,12]]},"105":{"position":[[315,11],[630,12]]},"150":{"position":[[1229,11],[2237,12]]},"365":{"position":[[1,11],[817,11]]},"368":{"position":[[473,12],[1765,11],[2170,12]]},"369":{"position":[[695,11],[890,12]]},"370":{"position":[[203,11],[460,12]]},"371":{"position":[[272,11],[419,12]]},"409":{"position":[[116,12]]},"484":{"position":[[832,12],[1061,12]]}},"keywords":{}}],["eventschema.json",{"_index":652,"title":{},"content":{"31":{"position":[[1234,20]]},"43":{"position":[[1234,20]]},"97":{"position":[[1234,20]]},"105":{"position":[[332,20]]},"150":{"position":[[1246,20]]}},"keywords":{}}],["eventsourcemap",{"_index":1877,"title":{},"content":{"302":{"position":[[95,19],[160,18]]}},"keywords":{}}],["eventsrefactor",{"_index":2229,"title":{},"content":{"384":{"position":[[33,16]]}},"keywords":{}}],["everyon",{"_index":876,"title":{},"content":{"152":{"position":[[52,8]]}},"keywords":{}}],["everyth",{"_index":566,"title":{},"content":{"21":{"position":[[1872,10]]},"272":{"position":[[203,10]]}},"keywords":{}}],["exampl",{"_index":225,"title":{"16":{"position":[[8,8]]},"26":{"position":[[0,8]]},"28":{"position":[[0,8]]},"31":{"position":[[0,8]]},"34":{"position":[[0,8]]},"37":{"position":[[0,8]]},"40":{"position":[[0,8]]},"43":{"position":[[0,8]]},"46":{"position":[[0,8]]},"49":{"position":[[0,8]]},"52":{"position":[[0,8]]},"55":{"position":[[0,8]]},"58":{"position":[[0,8]]},"61":{"position":[[0,8]]},"64":{"position":[[0,8]]},"67":{"position":[[0,8]]},"70":{"position":[[0,8]]},"73":{"position":[[0,8]]},"76":{"position":[[0,8]]},"79":{"position":[[0,8]]},"82":{"position":[[0,8]]},"85":{"position":[[0,8]]},"88":{"position":[[0,8]]},"91":{"position":[[0,8]]},"94":{"position":[[0,8]]},"97":{"position":[[0,8]]},"100":{"position":[[0,8]]},"103":{"position":[[0,8]]},"110":{"position":[[0,8]]},"113":{"position":[[0,8]]},"116":{"position":[[0,8]]},"119":{"position":[[0,8]]},"122":{"position":[[0,8]]},"125":{"position":[[0,8]]},"128":{"position":[[0,8]]},"131":{"position":[[0,8]]},"134":{"position":[[0,8]]},"137":{"position":[[0,8]]},"143":{"position":[[0,8]]},"150":{"position":[[0,8]]},"157":{"position":[[0,8]]},"191":{"position":[[20,8]]},"192":{"position":[[32,8]]},"369":{"position":[[16,7]]},"517":{"position":[[5,8]]}},"content":{"16":{"position":[[57,8]]},"21":{"position":[[2558,7]]},"139":{"position":[[99,8]]},"156":{"position":[[29,8]]},"157":{"position":[[956,8]]},"158":{"position":[[706,7]]},"159":{"position":[[565,8]]},"167":{"position":[[1341,8],[1783,8]]},"171":{"position":[[1206,8]]},"172":{"position":[[155,8]]},"182":{"position":[[306,8],[703,7]]},"189":{"position":[[1176,7]]},"199":{"position":[[907,7]]},"200":{"position":[[113,7],[761,8]]},"214":{"position":[[959,7]]},"290":{"position":[[385,9],[477,8]]},"297":{"position":[[904,7]]},"320":{"position":[[919,7]]},"330":{"position":[[903,7]]},"368":{"position":[[1,7],[763,7],[1474,7]]},"369":{"position":[[96,8]]},"490":{"position":[[953,8]]},"491":{"position":[[101,7]]},"517":{"position":[[5,8],[66,8]]},"518":{"position":[[406,8]]},"521":{"position":[[26,7]]}},"keywords":{}}],["except",{"_index":1166,"title":{},"content":{"168":{"position":[[97,10]]},"225":{"position":[[888,9]]},"324":{"position":[[161,10]]}},"keywords":{}}],["excess",{"_index":374,"title":{},"content":{"18":{"position":[[135,6],[216,6]]}},"keywords":{}}],["exclud",{"_index":1460,"title":{},"content":{"198":{"position":[[4,7],[58,7]]},"213":{"position":[[4,7],[57,7]]},"288":{"position":[[4,7],[52,7]]},"296":{"position":[[4,7],[51,7]]},"305":{"position":[[584,9]]},"313":{"position":[[4,7],[65,7]]},"314":{"position":[[4,7],[51,7]]},"319":{"position":[[4,7],[64,7]]},"329":{"position":[[4,7],[52,7]]},"335":{"position":[[4,7],[52,7]]},"350":{"position":[[4,7],[72,7]]}},"keywords":{}}],["execut",{"_index":890,"title":{"185":{"position":[[0,9]]}},"content":{"153":{"position":[[126,9],[455,9],[719,9]]},"158":{"position":[[145,9]]},"159":{"position":[[59,9],[216,9]]},"163":{"position":[[869,9]]},"171":{"position":[[1085,10]]},"176":{"position":[[44,9],[380,10]]},"182":{"position":[[89,9]]},"185":{"position":[[97,9],[245,9],[422,10],[608,8]]},"272":{"position":[[75,8],[521,9]]},"338":{"position":[[154,10]]},"346":{"position":[[750,7]]},"378":{"position":[[974,9]]},"519":{"position":[[123,8],[177,8],[232,8]]}},"keywords":{}}],["executed.requeststart",{"_index":951,"title":{},"content":{"158":{"position":[[239,24]]}},"keywords":{}}],["exist",{"_index":2343,"title":{},"content":{"517":{"position":[[33,8]]}},"keywords":{}}],["exit",{"_index":978,"title":{},"content":{"159":{"position":[[1013,5]]},"182":{"position":[[1318,5]]},"189":{"position":[[1308,4],[1343,7]]},"378":{"position":[[768,5]]}},"keywords":{}}],["expect",{"_index":1318,"title":{},"content":{"185":{"position":[[404,8]]},"199":{"position":[[329,8],[729,8]]},"214":{"position":[[362,8],[769,8]]},"272":{"position":[[623,8]]},"297":{"position":[[325,8],[714,8]]},"320":{"position":[[332,8],[729,8]]},"330":{"position":[[325,8],[725,8]]}},"keywords":{}}],["expect(response).not.tobe(nul",{"_index":2154,"title":{},"content":{"368":{"position":[[1363,31]]}},"keywords":{}}],["expect(response.body).toequ",{"_index":1724,"title":{},"content":{"258":{"position":[[530,31]]}},"keywords":{}}],["experi",{"_index":133,"title":{},"content":{"8":{"position":[[368,12]]},"21":{"position":[[2485,11]]},"200":{"position":[[1425,11]]},"521":{"position":[[928,11]]}},"keywords":{}}],["expert",{"_index":2371,"title":{},"content":{"521":{"position":[[827,8]]}},"keywords":{}}],["expir",{"_index":2375,"title":{},"content":{"522":{"position":[[129,7]]}},"keywords":{}}],["expirymonth",{"_index":262,"title":{},"content":{"16":{"position":[[787,12],[1352,12]]}},"keywords":{}}],["expiryyear",{"_index":263,"title":{},"content":{"16":{"position":[[800,11],[1411,11]]}},"keywords":{}}],["explicitli",{"_index":1506,"title":{},"content":{"203":{"position":[[229,10]]}},"keywords":{}}],["export",{"_index":78,"title":{},"content":{"6":{"position":[[298,6]]},"8":{"position":[[242,6]]},"16":{"position":[[1779,6]]},"19":{"position":[[559,6]]},"21":{"position":[[883,6]]},"22":{"position":[[743,6]]},"26":{"position":[[33,6]]},"28":{"position":[[33,6]]},"31":{"position":[[1354,6]]},"34":{"position":[[33,6]]},"37":{"position":[[582,6]]},"40":{"position":[[33,6]]},"43":{"position":[[1354,6]]},"46":{"position":[[1479,6]]},"49":{"position":[[33,6]]},"52":{"position":[[97,6]]},"55":{"position":[[33,6]]},"58":{"position":[[33,6]]},"61":{"position":[[97,6]]},"64":{"position":[[97,6]]},"67":{"position":[[97,6]]},"70":{"position":[[33,6]]},"73":{"position":[[33,6]]},"76":{"position":[[33,6]]},"79":{"position":[[33,6]]},"82":{"position":[[33,6]]},"85":{"position":[[33,6]]},"88":{"position":[[33,6]]},"91":{"position":[[97,6]]},"94":{"position":[[97,6]]},"97":{"position":[[1354,6]]},"100":{"position":[[97,6]]},"103":{"position":[[97,6]]},"106":{"position":[[267,6]]},"107":{"position":[[251,6]]},"110":{"position":[[97,6]]},"113":{"position":[[97,6]]},"116":{"position":[[97,6]]},"119":{"position":[[33,6]]},"122":{"position":[[173,6]]},"125":{"position":[[97,6]]},"128":{"position":[[33,6]]},"131":{"position":[[97,6]]},"134":{"position":[[33,6]]},"137":{"position":[[33,6]]},"140":{"position":[[594,6]]},"143":{"position":[[167,6]]},"150":{"position":[[1366,6]]},"157":{"position":[[243,6],[721,6]]},"159":{"position":[[1415,6]]},"167":{"position":[[313,6]]},"171":{"position":[[430,6]]},"175":{"position":[[364,6]]},"179":{"position":[[487,6]]},"181":{"position":[[712,6]]},"191":{"position":[[254,6]]},"192":{"position":[[186,6]]},"199":{"position":[[1184,6]]},"200":{"position":[[416,6]]},"204":{"position":[[301,6]]},"211":{"position":[[173,6]]},"212":{"position":[[237,6]]},"218":{"position":[[150,6]]},"222":{"position":[[203,6]]},"226":{"position":[[764,6]]},"230":{"position":[[183,6]]},"233":{"position":[[269,6]]},"237":{"position":[[157,6]]},"240":{"position":[[1555,6]]},"241":{"position":[[128,6]]},"245":{"position":[[219,6]]},"249":{"position":[[203,6]]},"250":{"position":[[372,6]]},"254":{"position":[[229,6]]},"258":{"position":[[334,6]]},"262":{"position":[[155,6]]},"266":{"position":[[272,6]]},"273":{"position":[[211,6]]},"287":{"position":[[240,6]]},"291":{"position":[[257,6],[547,6]]},"295":{"position":[[253,6]]},"301":{"position":[[306,6]]},"307":{"position":[[337,6]]},"308":{"position":[[290,6]]},"312":{"position":[[254,6]]},"318":{"position":[[144,6]]},"320":{"position":[[1248,6]]},"328":{"position":[[145,6],[687,6]]},"330":{"position":[[1145,6]]},"334":{"position":[[227,6]]},"339":{"position":[[202,6]]},"343":{"position":[[221,6]]},"348":{"position":[[77,6]]},"349":{"position":[[174,6]]},"354":{"position":[[589,6]]},"358":{"position":[[581,6]]},"368":{"position":[[424,6],[1157,6],[2044,6]]},"369":{"position":[[841,6]]},"370":{"position":[[411,6]]},"371":{"position":[[370,6]]},"484":{"position":[[731,6],[1000,6]]},"490":{"position":[[87,8],[836,6],[1122,6]]},"518":{"position":[[508,6]]},"519":{"position":[[733,6]]},"520":{"position":[[609,6]]},"521":{"position":[[693,6]]},"522":{"position":[[1509,6]]}},"keywords":{}}],["expos",{"_index":588,"title":{},"content":{"21":{"position":[[2317,6]]},"240":{"position":[[898,6]]},"518":{"position":[[821,7]]}},"keywords":{}}],["express",{"_index":201,"title":{},"content":{"15":{"position":[[149,8]]},"17":{"position":[[576,8]]},"324":{"position":[[1155,7]]},"361":{"position":[[399,7]]}},"keywords":{}}],["expressions@keboola/middi",{"_index":1978,"title":{},"content":{"324":{"position":[[90,25]]}},"keywords":{}}],["expressionsset",{"_index":1243,"title":{},"content":{"176":{"position":[[261,14]]}},"keywords":{}}],["extend",{"_index":2326,"title":{},"content":{"504":{"position":[[8,8],[81,10]]}},"keywords":{}}],["extern",{"_index":88,"title":{},"content":{"6":{"position":[[428,9]]},"8":{"position":[[405,10]]},"272":{"position":[[563,8]]},"522":{"position":[[477,8]]}},"keywords":{}}],["extract",{"_index":1501,"title":{},"content":{"203":{"position":[[101,9]]},"324":{"position":[[58,8]]}},"keywords":{}}],["extractor",{"_index":1977,"title":{},"content":{"324":{"position":[[47,10]]}},"keywords":{}}],["extraparamet",{"_index":1682,"title":{},"content":{"253":{"position":[[71,15]]}},"keywords":{}}],["fact",{"_index":1028,"title":{},"content":{"161":{"position":[[665,5]]}},"keywords":{}}],["factori",{"_index":926,"title":{},"content":{"156":{"position":[[283,7]]}},"keywords":{}}],["fail",{"_index":904,"title":{},"content":{"153":{"position":[[729,5]]},"189":{"position":[[994,7],[1298,6]]},"225":{"position":[[919,5]]},"282":{"position":[[582,6]]},"300":{"position":[[76,5]]},"368":{"position":[[738,6],[1343,6]]},"406":{"position":[[188,5]]},"444":{"position":[[57,7]]}},"keywords":{}}],["failur",{"_index":837,"title":{"298":{"position":[[18,7]]},"406":{"position":[[18,8]]},"444":{"position":[[18,8]]},"481":{"position":[[18,8]]},"512":{"position":[[18,8]]}},"content":{"143":{"position":[[158,8]]},"282":{"position":[[555,8]]},"299":{"position":[[102,7]]},"301":{"position":[[80,8]]},"302":{"position":[[140,8]]}},"keywords":{}}],["fallback",{"_index":1594,"title":{},"content":{"229":{"position":[[277,8]]},"365":{"position":[[723,8]]},"386":{"position":[[40,8]]}},"keywords":{}}],["fallbackmessag",{"_index":2324,"title":{},"content":{"496":{"position":[[197,15]]}},"keywords":{}}],["fals",{"_index":36,"title":{},"content":{"3":{"position":[[261,6]]},"166":{"position":[[835,6]]},"189":{"position":[[965,6]]},"196":{"position":[[621,7],[1020,7]]},"207":{"position":[[617,7],[1015,7]]},"210":{"position":[[79,5],[344,6]]},"226":{"position":[[870,6],[893,6]]},"229":{"position":[[125,5]]},"240":{"position":[[147,6]]},"244":{"position":[[233,5]]},"253":{"position":[[418,5]]},"265":{"position":[[126,5]]},"286":{"position":[[348,7],[748,7]]},"290":{"position":[[107,7]]},"294":{"position":[[600,7],[992,7]]},"305":{"position":[[370,7]]},"311":{"position":[[649,7],[1042,7]]},"317":{"position":[[632,7],[1094,7],[1499,7]]},"327":{"position":[[632,7],[1025,7]]},"333":{"position":[[460,7],[853,7]]},"338":{"position":[[130,5]]},"346":{"position":[[585,7]]},"431":{"position":[[35,5]]},"432":{"position":[[35,5]]},"437":{"position":[[35,5]]},"522":{"position":[[692,6],[750,5]]}},"keywords":{}}],["false)cachecontrol",{"_index":1631,"title":{},"content":{"240":{"position":[[1210,18]]}},"keywords":{}}],["false)defaulthead",{"_index":1613,"title":{},"content":{"236":{"position":[[140,20]]}},"keywords":{}}],["false)disablebeforepreflightrespons",{"_index":1616,"title":{},"content":{"240":{"position":[[88,36]]}},"keywords":{}}],["false)getorigin",{"_index":1621,"title":{},"content":{"240":{"position":[[445,15]]}},"keywords":{}}],["false)maxag",{"_index":1627,"title":{},"content":{"240":{"position":[[923,12]]}},"keywords":{}}],["false)method",{"_index":1620,"title":{},"content":{"240":{"position":[[355,13]]}},"keywords":{}}],["false)requestmethod",{"_index":1630,"title":{},"content":{"240":{"position":[[1111,20]]}},"keywords":{}}],["false)runonerror",{"_index":1529,"title":{},"content":{"210":{"position":[[314,16]]}},"keywords":{}}],["false.capturecoldstartmetr",{"_index":1214,"title":{},"content":{"174":{"position":[[563,28]]}},"keywords":{}}],["false.clearst",{"_index":1095,"title":{},"content":{"166":{"position":[[727,16]]}},"keywords":{}}],["falseerror",{"_index":1794,"title":{},"content":{"280":{"position":[[182,10]]}},"keywords":{}}],["falsi",{"_index":1395,"title":{},"content":{"189":{"position":[[711,5]]}},"keywords":{}}],["familiar",{"_index":202,"title":{},"content":{"15":{"position":[[175,8]]}},"keywords":{}}],["famou",{"_index":2107,"title":{},"content":{"361":{"position":[[371,6]]}},"keywords":{}}],["faq",{"_index":804,"title":{"138":{"position":[[0,3]]}},"content":{},"keywords":{}}],["fast",{"_index":415,"title":{},"content":{"18":{"position":[[973,7],[996,7]]}},"keywords":{}}],["faster",{"_index":2295,"title":{},"content":{"484":{"position":[[72,6]]}},"keywords":{}}],["fastifi",{"_index":341,"title":{},"content":{"17":{"position":[[560,9]]},"361":{"position":[[410,7]]}},"keywords":{}}],["favour",{"_index":2248,"title":{},"content":{"401":{"position":[[15,6]]},"405":{"position":[[15,6]]}},"keywords":{}}],["fe3fd9b100f8",{"_index":1518,"title":{},"content":{"204":{"position":[[283,13]]}},"keywords":{}}],["featur",{"_index":590,"title":{},"content":{"21":{"position":[[2402,7]]},"164":{"position":[[5,9]]},"168":{"position":[[5,9]]},"172":{"position":[[5,9]]},"176":{"position":[[5,9]]},"178":{"position":[[246,8]]},"360":{"position":[[22,8],[269,8]]},"516":{"position":[[49,7]]}},"keywords":{}}],["feature)frameguard",{"_index":1730,"title":{},"content":{"261":{"position":[[107,18]]}},"keywords":{}}],["feel",{"_index":879,"title":{},"content":{"152":{"position":[[111,4]]}},"keywords":{}}],["fetch",{"_index":1445,"title":{"283":{"position":[[0,5]]}},"content":{"196":{"position":[[787,7],[892,5]]},"199":{"position":[[115,7],[157,7],[356,7]]},"200":{"position":[[220,8]]},"207":{"position":[[782,7],[887,5]]},"214":{"position":[[114,7],[156,7],[389,7],[778,7]]},"283":{"position":[[12,5],[63,5],[110,7],[165,5],[270,7],[333,7],[423,7],[488,7]]},"286":{"position":[[515,7],[620,5]]},"294":{"position":[[759,7],[864,5]]},"297":{"position":[[118,7],[160,7],[352,7],[723,7]]},"305":{"position":[[656,6]]},"311":{"position":[[809,7],[914,5]]},"317":{"position":[[743,5],[1266,7],[1371,5]]},"318":{"position":[[391,5]]},"320":{"position":[[127,7],[169,7],[359,7],[738,7]]},"324":{"position":[[1487,6]]},"327":{"position":[[792,7],[897,5]]},"328":{"position":[[1059,5]]},"330":{"position":[[105,7],[157,7],[352,7],[1554,5]]},"333":{"position":[[620,7],[725,5]]},"441":{"position":[[19,5]]},"507":{"position":[[19,5]]},"509":{"position":[[19,5]]},"514":{"position":[[19,5]]},"522":{"position":[[850,5],[908,5],[996,12],[1093,5],[1165,6],[1269,6]]}},"keywords":{}}],["fetchdata",{"_index":758,"title":{},"content":{"106":{"position":[[326,10],[495,10],[582,10],[658,10]]},"107":{"position":[[310,10],[444,10],[525,10],[614,10]]},"197":{"position":[[116,10]]},"199":{"position":[[447,9],[1233,10]]},"200":{"position":[[521,10]]},"212":{"position":[[285,10]]},"214":{"position":[[479,9],[1282,10]]},"287":{"position":[[289,10]]},"295":{"position":[[295,10]]},"297":{"position":[[436,9],[1225,10]]},"312":{"position":[[310,10]]},"318":{"position":[[198,10]]},"320":{"position":[[455,9],[1302,10]]},"328":{"position":[[188,10],[730,10],[814,10]]},"330":{"position":[[437,9],[1188,10]]},"334":{"position":[[270,10]]},"522":{"position":[[633,10]]}},"keywords":{}}],["fetchrotationd",{"_index":1915,"title":{},"content":{"317":{"position":[[1636,17]]}},"keywords":{}}],["few",{"_index":920,"title":{},"content":{"156":{"position":[[83,3]]},"172":{"position":[[463,3]]},"189":{"position":[[428,3]]}},"keywords":{}}],["field",{"_index":1040,"title":{},"content":{"163":{"position":[[305,6]]},"164":{"position":[[30,6]]},"167":{"position":[[1205,6],[1365,5],[1456,5]]},"189":{"position":[[937,6]]},"257":{"position":[[51,6]]},"258":{"position":[[456,7]]},"290":{"position":[[269,6]]}},"keywords":{}}],["field2",{"_index":1540,"title":{},"content":{"214":{"position":[[1335,7]]},"297":{"position":[[1272,7]]}},"keywords":{}}],["field3",{"_index":1541,"title":{},"content":{"214":{"position":[[1351,7]]},"297":{"position":[[1288,7]]}},"keywords":{}}],["file",{"_index":83,"title":{},"content":{"6":{"position":[[359,5]]},"10":{"position":[[90,4]]},"12":{"position":[[66,4]]},"18":{"position":[[142,5],[268,4]]},"253":{"position":[[899,6],[985,5]]},"294":{"position":[[1112,4]]},"324":{"position":[[410,4]]},"367":{"position":[[38,4],[214,4]]},"369":{"position":[[416,4],[460,5],[566,4],[602,5]]}},"keywords":{}}],["filenam",{"_index":131,"title":{},"content":{"8":{"position":[[311,9]]}},"keywords":{}}],["fileurltopath",{"_index":122,"title":{},"content":{"8":{"position":[[117,13]]}},"keywords":{}}],["fileurltopath(import.meta.url",{"_index":125,"title":{},"content":{"8":{"position":[[168,30]]}},"keywords":{}}],["filter",{"_index":1705,"title":{},"content":{"257":{"position":[[99,6]]},"282":{"position":[[418,6]]},"322":{"position":[[211,9]]}},"keywords":{}}],["filteringkeynam",{"_index":1703,"title":{},"content":{"257":{"position":[[1,16]]}},"keywords":{}}],["final",{"_index":1159,"title":{},"content":{"167":{"position":[[2325,8]]}},"keywords":{}}],["find",{"_index":177,"title":{},"content":{"13":{"position":[[31,4]]},"17":{"position":[[1040,4]]},"189":{"position":[[1456,4]]}},"keywords":{}}],["firehos",{"_index":741,"title":{"98":{"position":[[8,8]]}},"content":{"99":{"position":[[43,8]]}},"keywords":{}}],["first",{"_index":11,"title":{},"content":{"0":{"position":[[167,5]]},"21":{"position":[[2178,5]]},"151":{"position":[[168,6]]},"158":{"position":[[302,5]]},"161":{"position":[[270,5],[301,5]]},"185":{"position":[[649,5],[727,5]]},"186":{"position":[[36,5]]},"200":{"position":[[1026,6]]},"217":{"position":[[158,5]]},"272":{"position":[[487,5]]},"368":{"position":[[2119,5]]},"378":{"position":[[333,5]]}},"keywords":{}}],["firstdefaultcontenttyp",{"_index":1773,"title":{},"content":{"272":{"position":[[347,23]]}},"keywords":{}}],["firstnam",{"_index":1707,"title":{},"content":{"258":{"position":[[187,10],[562,10]]}},"keywords":{}}],["firstname,lastnam",{"_index":1723,"title":{},"content":{"258":{"position":[[464,20]]}},"keywords":{}}],["fli",{"_index":2136,"title":{},"content":{"365":{"position":[[1126,3]]}},"keywords":{}}],["flight",{"_index":1633,"title":{},"content":{"240":{"position":[[1294,6]]}},"keywords":{}}],["flow",{"_index":889,"title":{},"content":{"153":{"position":[[102,4]]},"159":{"position":[[69,4]]},"182":{"position":[[99,4]]},"518":{"position":[[348,5]]}},"keywords":{}}],["fluent",{"_index":2147,"title":{},"content":{"367":{"position":[[11,6]]}},"keywords":{}}],["flush",{"_index":1054,"title":{},"content":{"163":{"position":[[726,7]]}},"keywords":{}}],["focu",{"_index":207,"title":{},"content":{"15":{"position":[[304,5]]},"17":{"position":[[100,5]]}},"keywords":{}}],["focus",{"_index":922,"title":{},"content":{"156":{"position":[[132,8]]}},"keywords":{}}],["follow",{"_index":4,"title":{},"content":{"0":{"position":[[36,9]]},"153":{"position":[[222,9]]},"163":{"position":[[179,9]]},"166":{"position":[[31,9],[166,9],[497,9],[624,9]]},"167":{"position":[[425,9]]},"170":{"position":[[31,9],[391,9],[518,9]]},"174":{"position":[[31,9],[312,9],[441,9]]},"175":{"position":[[503,10]]},"178":{"position":[[24,9]]},"181":{"position":[[234,8]]},"182":{"position":[[689,9],[792,10]]},"189":{"position":[[947,8],[1268,8]]},"199":{"position":[[897,9]]},"214":{"position":[[949,9]]},"272":{"position":[[123,9]]},"297":{"position":[[894,9]]},"320":{"position":[[909,9]]},"330":{"position":[[893,9]]},"375":{"position":[[70,9]]},"490":{"position":[[943,9]]},"516":{"position":[[208,9]]},"519":{"position":[[312,9]]}},"keywords":{}}],["foo",{"_index":1104,"title":{},"content":{"167":{"position":[[286,4]]},"245":{"position":[[506,4],[572,4]]},"254":{"position":[[749,4]]},"368":{"position":[[277,7],[396,4],[582,3]]},"490":{"position":[[1187,6]]}},"keywords":{}}],["forc",{"_index":1405,"title":{},"content":{"189":{"position":[[1337,5]]}},"keywords":{}}],["forev",{"_index":1448,"title":{},"content":{"196":{"position":[[945,8]]},"207":{"position":[[940,8]]},"286":{"position":[[673,8]]},"294":{"position":[[917,8]]},"311":{"position":[[967,8]]},"317":{"position":[[1424,8]]},"327":{"position":[[950,8]]},"333":{"position":[[778,8]]}},"keywords":{}}],["form",{"_index":1752,"title":{},"content":{"266":{"position":[[505,4]]},"281":{"position":[[957,4]]}},"keywords":{}}],["formal",{"_index":2328,"title":{},"content":{"504":{"position":[[53,8]]}},"keywords":{}}],["format",{"_index":85,"title":{},"content":{"6":{"position":[[392,7]]},"18":{"position":[[455,7],[488,7],[528,7]]},"163":{"position":[[763,9]]},"236":{"position":[[73,7]]},"323":{"position":[[378,6]]},"353":{"position":[[107,9]]},"357":{"position":[[228,9]]},"361":{"position":[[104,7],[245,6],[684,7]]},"366":{"position":[[81,8],[94,7]]},"367":{"position":[[63,7]]},"368":{"position":[[1949,7]]}},"keywords":{}}],["format=cj",{"_index":162,"title":{},"content":{"11":{"position":[[78,10]]}},"keywords":{}}],["format=esm",{"_index":52,"title":{},"content":{"5":{"position":[[140,10]]}},"keywords":{}}],["formathttp",{"_index":1804,"title":{},"content":{"281":{"position":[[512,10]]}},"keywords":{}}],["formats/src",{"_index":390,"title":{},"content":{"18":{"position":[[436,11]]}},"keywords":{}}],["formatt",{"_index":1069,"title":{},"content":{"164":{"position":[[370,9],[396,10]]},"167":{"position":[[2375,9]]}},"keywords":{}}],["former.shar",{"_index":2072,"title":{},"content":{"353":{"position":[[427,13]]},"357":{"position":[[659,13]]}},"keywords":{}}],["forward",{"_index":1822,"title":{},"content":{"282":{"position":[[614,8]]}},"keywords":{}}],["found",{"_index":1764,"title":{},"content":{"271":{"position":[[31,6]]},"365":{"position":[[699,6],[1043,5]]},"379":{"position":[[258,5]]}},"keywords":{}}],["fr",{"_index":664,"title":{},"content":{"31":{"position":[[1623,3]]},"43":{"position":[[1623,3]]},"46":{"position":[[1748,3]]},"97":{"position":[[1648,3]]},"150":{"position":[[1635,3]]},"226":{"position":[[374,3],[378,4],[930,3],[934,4]]},"369":{"position":[[764,2],[920,2]]},"370":{"position":[[362,2],[520,2]]},"371":{"position":[[209,2],[479,2]]},"484":{"position":[[975,2],[1152,2]]}},"keywords":{}}],["fr.j",{"_index":2176,"title":{},"content":{"369":{"position":[[772,9]]}},"keywords":{}}],["framework",{"_index":200,"title":{"146":{"position":[[11,9]]}},"content":{"15":{"position":[[133,10]]},"17":{"position":[[549,10],[1136,9]]},"146":{"position":[[11,9]]},"324":{"position":[[1436,9]]},"361":{"position":[[383,10]]}},"keywords":{}}],["frappucino",{"_index":1755,"title":{},"content":{"266":{"position":[[646,11]]}},"keywords":{}}],["frappucino=muffin&goat%5b%5d=scone&pond=moos",{"_index":1753,"title":{},"content":{"266":{"position":[[531,55]]}},"keywords":{}}],["free",{"_index":880,"title":{},"content":{"152":{"position":[[116,4]]}},"keywords":{}}],["ftl",{"_index":2148,"title":{},"content":{"367":{"position":[[18,6],[170,3],[210,3]]},"369":{"position":[[516,3]]},"371":{"position":[[224,3]]},"484":{"position":[[990,3]]}},"keywords":{}}],["full",{"_index":1165,"title":{},"content":{"168":{"position":[[92,4]]},"187":{"position":[[96,4]]},"240":{"position":[[521,4]]}},"keywords":{}}],["fun",{"_index":1027,"title":{},"content":{"161":{"position":[[661,3]]}},"keywords":{}}],["function",{"_index":347,"title":{"95":{"position":[[0,8]]},"191":{"position":[[7,8]]},"271":{"position":[[11,10]]},"493":{"position":[[0,8]]}},"content":{"17":{"position":[[803,9]]},"21":{"position":[[2688,8]]},"118":{"position":[[53,8]]},"156":{"position":[[291,9],[475,8]]},"157":{"position":[[882,9]]},"158":{"position":[[429,9],[443,8]]},"159":{"position":[[651,8]]},"163":{"position":[[532,8],[826,9]]},"167":{"position":[[1400,8]]},"168":{"position":[[218,9]]},"171":{"position":[[1062,8],[1192,9],[1223,8],[1456,9]]},"172":{"position":[[344,8]]},"175":{"position":[[1067,8]]},"176":{"position":[[405,8]]},"181":{"position":[[58,8],[569,9],[636,8]]},"182":{"position":[[881,8]]},"189":{"position":[[822,9]]},"193":{"position":[[205,9]]},"196":{"position":[[405,10]]},"199":{"position":[[272,9],[287,8],[619,8]]},"207":{"position":[[401,10]]},"214":{"position":[[305,9],[320,8],[659,8]]},"217":{"position":[[20,8]]},"229":{"position":[[48,8]]},"236":{"position":[[275,10],[300,8]]},"244":{"position":[[9,10]]},"271":{"position":[[88,8],[110,8]]},"280":{"position":[[292,8]]},"290":{"position":[[8,8],[48,8],[508,9],[537,8]]},"294":{"position":[[384,10]]},"297":{"position":[[268,9],[283,8],[604,8]]},"300":{"position":[[8,10],[33,8]]},"305":{"position":[[249,10]]},"311":{"position":[[433,10]]},"317":{"position":[[408,10]]},"318":{"position":[[353,8]]},"320":{"position":[[275,9],[290,8],[622,8]]},"322":{"position":[[520,8],[586,8]]},"323":{"position":[[71,9],[445,9],[657,8],[714,9]]},"324":{"position":[[495,9],[1033,8]]},"327":{"position":[[368,10]]},"330":{"position":[[268,9],[283,8],[608,8]]},"333":{"position":[[253,10]]},"338":{"position":[[16,8],[177,8]]},"342":{"position":[[9,10]]},"346":{"position":[[455,10]]},"353":{"position":[[170,10],[231,8]]},"357":{"position":[[305,10],[356,8]]},"360":{"position":[[441,13]]},"365":{"position":[[13,10],[164,10],[424,10]]},"378":{"position":[[805,8]]},"484":{"position":[[127,14]]},"490":{"position":[[101,8],[152,8]]},"518":{"position":[[303,9]]},"519":{"position":[[106,8],[160,8],[215,8],[285,9]]},"520":{"position":[[282,14],[398,8]]}},"keywords":{}}],["function(incomingorigin:str",{"_index":1622,"title":{},"content":{"240":{"position":[[461,32]]}},"keywords":{}}],["functionfailonmismatch",{"_index":1566,"title":{},"content":{"225":{"position":[[787,22]]}},"keywords":{}}],["functionnam",{"_index":1423,"title":{},"content":{"193":{"position":[[191,13]]}},"keywords":{}}],["functionparseencod",{"_index":1558,"title":{},"content":{"225":{"position":[[187,22]]}},"keywords":{}}],["functionparselanguag",{"_index":1560,"title":{},"content":{"225":{"position":[[385,22]]}},"keywords":{}}],["functionparsemediatyp",{"_index":1563,"title":{},"content":{"225":{"position":[[583,23]]}},"keywords":{}}],["functionresponsetyp",{"_index":1876,"title":{},"content":{"302":{"position":[[66,21]]}},"keywords":{}}],["futur",{"_index":1729,"title":{},"content":{"261":{"position":[[99,7]]},"462":{"position":[[79,6]]}},"keywords":{}}],["gain",{"_index":1330,"title":{},"content":{"186":{"position":[[187,4]]}},"keywords":{}}],["gateway",{"_index":616,"title":{"23":{"position":[[4,7]]},"29":{"position":[[4,7]]},"35":{"position":[[4,7]]},"41":{"position":[[4,7]]},"348":{"position":[[4,8]]}},"content":{"27":{"position":[[73,7]]},"200":{"position":[[208,7]]},"322":{"position":[[1378,7]]},"357":{"position":[[389,7]]},"412":{"position":[[39,7]]},"521":{"position":[[114,8]]}},"keywords":{}}],["gatewaywork",{"_index":624,"title":{},"content":{"30":{"position":[[34,14]]},"36":{"position":[[34,14]]},"42":{"position":[[34,14]]},"96":{"position":[[34,14]]}},"keywords":{}}],["gender",{"_index":1711,"title":{},"content":{"258":{"position":[[223,7]]}},"keywords":{}}],["gener",{"_index":340,"title":{"349":{"position":[[0,8]]}},"content":{"17":{"position":[[537,7],[817,9]]},"168":{"position":[[162,10]]},"171":{"position":[[722,9]]},"189":{"position":[[1197,9]]},"199":{"position":[[690,8]]},"214":{"position":[[730,8]]},"240":{"position":[[541,10]]},"297":{"position":[[675,8]]},"320":{"position":[[690,8]]},"330":{"position":[[686,8]]},"375":{"position":[[17,7]]},"490":{"position":[[77,9]]},"491":{"position":[[17,7]]}},"keywords":{}}],["get",{"_index":912,"title":{"154":{"position":[[0,7]]}},"content":{"185":{"position":[[807,4]]},"200":{"position":[[688,4]]},"283":{"position":[[219,4]]}},"keywords":{}}],["gethandl",{"_index":704,"title":{},"content":{"46":{"position":[[1237,10],[1407,10]]},"358":{"position":[[141,10],[509,10]]}},"keywords":{}}],["getintern",{"_index":455,"title":{},"content":{"19":{"position":[[219,13]]},"106":{"position":[[42,11]]},"107":{"position":[[42,11]]},"328":{"position":[[542,11],[1116,12]]},"330":{"position":[[986,11]]},"379":{"position":[[1,11]]},"522":{"position":[[567,12]]}},"keywords":{}}],["getinternal('config",{"_index":1473,"title":{},"content":{"199":{"position":[[1394,21]]},"214":{"position":[[1471,21]]},"297":{"position":[[1417,21]]}},"keywords":{}}],["getinternal('somesecret",{"_index":1923,"title":{},"content":{"320":{"position":[[1473,25]]}},"keywords":{}}],["getinternal(['accesstoken",{"_index":2043,"title":{},"content":{"330":{"position":[[1611,27]]}},"keywords":{}}],["getinternal(['key",{"_index":488,"title":{},"content":{"19":{"position":[[939,20]]}},"keywords":{}}],["getinternal(['node_env",{"_index":2262,"title":{},"content":{"414":{"position":[[147,25]]}},"keywords":{}}],["getinternal(object.keys(options.fetchdata",{"_index":2392,"title":{},"content":{"522":{"position":[[1371,43]]}},"keywords":{}}],["getinternal(tru",{"_index":492,"title":{},"content":{"19":{"position":[[1290,17]]},"106":{"position":[[771,17]]},"107":{"position":[[732,17]]}},"keywords":{}}],["getinternal({'newkey':'key",{"_index":489,"title":{},"content":{"19":{"position":[[1062,29]]}},"keywords":{}}],["getremainingtimeinmilli",{"_index":2362,"title":{},"content":{"520":{"position":[[368,24]]}},"keywords":{}}],["getvalu",{"_index":2196,"title":{},"content":{"375":{"position":[[304,9]]}},"keywords":{}}],["gitattribut",{"_index":446,"title":{},"content":{"18":{"position":[[1492,14]]}},"keywords":{}}],["github",{"_index":821,"title":{},"content":{"140":{"position":[[136,7]]},"144":{"position":[[135,7]]},"145":{"position":[[127,7]]},"146":{"position":[[143,7]]},"147":{"position":[[139,7]]},"151":{"position":[[160,7]]},"161":{"position":[[218,6]]},"183":{"position":[[171,6]]},"188":{"position":[[132,7]]},"189":{"position":[[130,7]]}},"keywords":{}}],["give",{"_index":2372,"title":{},"content":{"521":{"position":[[899,4]]}},"keywords":{}}],["global",{"_index":1155,"title":{},"content":{"167":{"position":[[1711,6]]}},"keywords":{}}],["globaldefault",{"_index":2027,"title":{},"content":{"328":{"position":[[125,14],[423,14],[667,14]]},"330":{"position":[[1125,14]]}},"keywords":{}}],["go",{"_index":1943,"title":{},"content":{"322":{"position":[[570,5]]}},"keywords":{}}],["goat",{"_index":1757,"title":{},"content":{"266":{"position":[[668,9]]}},"keywords":{}}],["goe",{"_index":1347,"title":{},"content":{"187":{"position":[[142,4]]}},"keywords":{}}],["good",{"_index":568,"title":{},"content":{"21":{"position":[[1889,5]]},"182":{"position":[[531,4]]},"253":{"position":[[793,4]]},"521":{"position":[[923,4]]}},"keywords":{}}],["gql",{"_index":823,"title":{},"content":{"140":{"position":[[199,3]]}},"keywords":{}}],["gql(graphqlfiletostr",{"_index":831,"title":{},"content":{"140":{"position":[[473,22]]}},"keywords":{}}],["gracefulli",{"_index":1404,"title":{},"content":{"189":{"position":[[1313,10]]},"281":{"position":[[642,10]]}},"keywords":{}}],["graphql",{"_index":829,"title":{},"content":{"140":{"position":[[403,7]]}},"keywords":{}}],["graphql/resolvers.j",{"_index":826,"title":{},"content":{"140":{"position":[[317,24]]}},"keywords":{}}],["graphql/schema.j",{"_index":828,"title":{},"content":{"140":{"position":[[375,21]]}},"keywords":{}}],["graphqlfiletostr",{"_index":827,"title":{},"content":{"140":{"position":[[351,16]]}},"keywords":{}}],["great",{"_index":1313,"title":{},"content":{"183":{"position":[[149,5]]}},"keywords":{}}],["gt",{"_index":81,"title":{},"content":{"6":{"position":[[321,5]]},"16":{"position":[[664,5]]},"19":{"position":[[309,5],[392,5],[467,5],[678,5],[840,5],[974,4],[1106,4],[1322,4]]},"21":{"position":[[89,5],[186,5],[250,5],[431,5],[476,5],[654,5],[701,5],[745,5]]},"22":{"position":[[120,5],[208,5],[272,5],[336,5],[381,5],[514,5],[561,5],[605,5]]},"26":{"position":[[100,5]]},"28":{"position":[[101,5]]},"31":{"position":[[1410,5],[2095,5],[2330,5]]},"34":{"position":[[101,5]]},"40":{"position":[[100,5]]},"43":{"position":[[1410,5],[2095,5],[2341,5]]},"46":{"position":[[1535,5],[2220,5]]},"49":{"position":[[100,5]]},"52":{"position":[[198,5]]},"55":{"position":[[170,5]]},"58":{"position":[[100,5]]},"61":{"position":[[198,5]]},"64":{"position":[[198,5]]},"67":{"position":[[198,5]]},"70":{"position":[[100,5]]},"73":{"position":[[100,5]]},"76":{"position":[[101,5]]},"79":{"position":[[100,5]]},"82":{"position":[[100,5]]},"85":{"position":[[100,5]]},"88":{"position":[[101,5]]},"91":{"position":[[198,5]]},"94":{"position":[[198,5]]},"97":{"position":[[1410,5],[2120,5],[2355,5]]},"100":{"position":[[198,5]]},"103":{"position":[[198,5]]},"105":{"position":[[706,5]]},"106":{"position":[[731,5],[845,5]]},"107":{"position":[[692,5],[806,5]]},"110":{"position":[[170,4],[180,4],[228,5]]},"113":{"position":[[198,5]]},"116":{"position":[[198,5]]},"119":{"position":[[100,5]]},"122":{"position":[[370,5]]},"125":{"position":[[169,4],[179,4],[189,4],[237,5]]},"128":{"position":[[100,5]]},"131":{"position":[[198,5]]},"134":{"position":[[100,5]]},"137":{"position":[[100,5]]},"143":{"position":[[299,5]]},"150":{"position":[[1422,5],[2107,5],[2342,5]]},"151":{"position":[[781,5]]},"157":{"position":[[207,5],[685,5]]},"159":{"position":[[749,5],[836,5],[903,5],[1166,5],[1395,5]]},"167":{"position":[[223,5]]},"171":{"position":[[370,5]]},"175":{"position":[[291,5]]},"179":{"position":[[396,5],[541,5]]},"181":{"position":[[744,5]]},"182":{"position":[[979,5],[1066,5],[1133,5],[1471,5],[1700,5]]},"189":{"position":[[599,5]]},"191":{"position":[[128,5]]},"192":{"position":[[128,5]]},"197":{"position":[[252,5]]},"199":{"position":[[1083,5],[1367,5]]},"200":{"position":[[660,5]]},"204":{"position":[[140,5]]},"211":{"position":[[153,5]]},"212":{"position":[[111,5]]},"214":{"position":[[1131,5],[1444,5]]},"217":{"position":[[48,5]]},"218":{"position":[[118,5]]},"222":{"position":[[126,5]]},"226":{"position":[[263,5]]},"230":{"position":[[129,5],[326,5]]},"233":{"position":[[134,5]]},"237":{"position":[[137,5]]},"240":{"position":[[1501,5],[1713,5]]},"241":{"position":[[108,5],[259,5]]},"245":{"position":[[199,5],[551,5]]},"249":{"position":[[517,5]]},"250":{"position":[[298,5]]},"254":{"position":[[209,5],[728,5]]},"258":{"position":[[135,5],[522,5]]},"262":{"position":[[135,5]]},"266":{"position":[[209,5],[618,5]]},"270":{"position":[[132,5],[238,5],[317,5]]},"273":{"position":[[141,5],[342,5],[447,5],[526,5],[735,5]]},"277":{"position":[[144,5],[403,5]]},"287":{"position":[[114,5]]},"291":{"position":[[131,5],[514,5],[622,5]]},"295":{"position":[[99,5]]},"297":{"position":[[1052,5],[1390,5]]},"301":{"position":[[128,5],[199,5]]},"307":{"position":[[153,5],[217,5]]},"308":{"position":[[159,5],[217,5]]},"312":{"position":[[128,5]]},"318":{"position":[[124,5],[456,5]]},"320":{"position":[[1094,5],[1446,5]]},"328":{"position":[[101,5],[415,5],[643,5],[1089,5]]},"330":{"position":[[1101,5],[1365,6],[1584,5]]},"334":{"position":[[101,5]]},"339":{"position":[[121,5],[169,5]]},"343":{"position":[[185,5]]},"348":{"position":[[123,5]]},"349":{"position":[[116,5]]},"354":{"position":[[291,5],[430,5]]},"358":{"position":[[237,5],[393,5]]},"360":{"position":[[456,4],[479,4],[502,4],[551,4],[619,4],[673,4],[724,4],[779,4],[838,4],[892,4],[941,4],[991,4],[1036,4],[1068,4],[1094,4],[1136,4],[1182,4]]},"368":{"position":[[205,5],[698,5],[970,5],[1283,5],[1739,5]]},"369":{"position":[[821,5]]},"370":{"position":[[281,5]]},"371":{"position":[[350,5]]},"375":{"position":[[157,5],[235,5],[326,5],[375,5],[515,5],[754,5]]},"378":{"position":[[876,5]]},"414":{"position":[[118,5]]},"468":{"position":[[115,5]]},"490":{"position":[[322,5],[418,5],[516,5],[638,5],[1090,5]]},"496":{"position":[[69,5],[179,5]]},"516":{"position":[[268,5]]},"518":{"position":[[486,5],[563,5],[633,5],[704,5]]},"519":{"position":[[396,5],[490,5],[551,5],[614,5]]},"520":{"position":[[448,5],[545,5],[573,5],[691,5]]},"521":{"position":[[322,5],[472,5],[631,5]]},"522":{"position":[[795,5],[861,5],[1053,5],[1221,5]]}},"keywords":{}}],["gzip",{"_index":1657,"title":{},"content":{"248":{"position":[[299,4]]},"249":{"position":[[469,7]]},"250":{"position":[[665,7]]},"385":{"position":[[23,5]]}},"keywords":{}}],["gzipoptionsdefl",{"_index":1651,"title":{},"content":{"248":{"position":[[110,18]]}},"keywords":{}}],["hack",{"_index":47,"title":{},"content":{"5":{"position":[[32,4]]}},"keywords":{}}],["halfway",{"_index":1247,"title":{},"content":{"176":{"position":[[424,7]]}},"keywords":{}}],["handl",{"_index":313,"title":{"153":{"position":[[0,8]]},"520":{"position":[[0,6]]}},"content":{"16":{"position":[[2015,7]]},"17":{"position":[[347,9]]},"140":{"position":[[572,7]]},"153":{"position":[[0,8],[296,6],[409,7],[937,6]]},"159":{"position":[[453,8],[530,7]]},"240":{"position":[[219,8]]},"261":{"position":[[65,8]]},"281":{"position":[[634,7]]},"282":{"position":[[564,7]]},"353":{"position":[[266,7],[352,7]]},"357":{"position":[[498,7],[584,7]]},"365":{"position":[[943,7]]},"378":{"position":[[237,8],[567,6]]},"394":{"position":[[145,7]]},"520":{"position":[[0,6]]}},"keywords":{}}],["handledcomplet",{"_index":2242,"title":{},"content":{"396":{"position":[[56,15]]}},"keywords":{}}],["handledsmal",{"_index":2234,"title":{},"content":{"387":{"position":[[56,12]]}},"keywords":{}}],["handler",{"_index":248,"title":{"227":{"position":[[11,7]]},"388":{"position":[[11,8]]},"428":{"position":[[11,8]]},"465":{"position":[[11,8]]},"496":{"position":[[11,8]]}},"content":{"16":{"position":[[400,8],[534,8],[1047,7],[1134,9],[1721,8],[1792,7]]},"17":{"position":[[192,8],[454,9],[1079,9]]},"19":{"position":[[572,7],[1245,7]]},"21":{"position":[[896,7],[1226,9],[1656,7],[1932,8]]},"22":{"position":[[756,7],[1088,9]]},"26":{"position":[[46,7]]},"28":{"position":[[46,7]]},"31":{"position":[[418,8],[1367,7]]},"34":{"position":[[46,7]]},"37":{"position":[[211,7],[277,7],[349,7],[447,8],[501,8],[554,8],[595,7]]},"40":{"position":[[46,7]]},"43":{"position":[[418,8],[1367,7]]},"46":{"position":[[469,8],[1226,7],[1289,7],[1398,8],[1454,8],[1492,7]]},"49":{"position":[[46,7]]},"52":{"position":[[110,7]]},"55":{"position":[[46,7]]},"58":{"position":[[46,7]]},"61":{"position":[[110,7]]},"64":{"position":[[110,7]]},"67":{"position":[[110,7]]},"70":{"position":[[46,7]]},"73":{"position":[[46,7]]},"76":{"position":[[46,7]]},"79":{"position":[[46,7]]},"82":{"position":[[46,7]]},"85":{"position":[[46,7]]},"88":{"position":[[46,7]]},"91":{"position":[[110,7]]},"94":{"position":[[110,7]]},"97":{"position":[[418,8],[1367,7]]},"100":{"position":[[110,7]]},"103":{"position":[[110,7]]},"105":{"position":[[458,7]]},"106":{"position":[[280,7]]},"107":{"position":[[264,7]]},"110":{"position":[[110,7]]},"113":{"position":[[110,7]]},"116":{"position":[[110,7]]},"119":{"position":[[46,7]]},"122":{"position":[[186,7]]},"125":{"position":[[110,7]]},"128":{"position":[[46,7]]},"131":{"position":[[110,7]]},"134":{"position":[[46,7]]},"137":{"position":[[46,7]]},"140":{"position":[[607,7]]},"143":{"position":[[180,7]]},"150":{"position":[[418,8],[1379,7]]},"156":{"position":[[113,8],[260,7],[359,8]]},"157":{"position":[[256,7],[734,7]]},"159":{"position":[[1428,7]]},"167":{"position":[[326,7]]},"171":{"position":[[443,7],[745,7]]},"175":{"position":[[377,7]]},"176":{"position":[[31,7],[129,7]]},"179":{"position":[[500,7]]},"181":{"position":[[725,7]]},"182":{"position":[[1667,7]]},"185":{"position":[[86,7],[234,7],[655,7]]},"189":{"position":[[245,7],[355,8]]},"191":{"position":[[267,7]]},"192":{"position":[[199,7]]},"197":{"position":[[80,7]]},"199":{"position":[[1197,7]]},"200":{"position":[[429,7],[1033,7],[1100,7],[1358,7]]},"204":{"position":[[314,7]]},"210":{"position":[[142,7]]},"211":{"position":[[186,7]]},"212":{"position":[[250,7]]},"214":{"position":[[1098,7]]},"218":{"position":[[134,7],[163,7]]},"222":{"position":[[216,7]]},"226":{"position":[[215,8],[777,7]]},"228":{"position":[[95,7]]},"230":{"position":[[81,8],[196,7],[285,10],[296,11]]},"233":{"position":[[282,7]]},"237":{"position":[[170,7]]},"240":{"position":[[1417,8],[1568,7],[1672,10],[1683,11]]},"241":{"position":[[141,7],[218,10],[229,11]]},"245":{"position":[[232,7],[345,7]]},"249":{"position":[[216,7]]},"250":{"position":[[385,7]]},"254":{"position":[[242,7],[360,7]]},"258":{"position":[[347,7]]},"262":{"position":[[168,7]]},"266":{"position":[[285,7],[412,7]]},"269":{"position":[[56,7]]},"272":{"position":[[183,7],[289,7]]},"273":{"position":[[224,7]]},"277":{"position":[[111,7],[271,7]]},"282":{"position":[[154,8]]},"287":{"position":[[253,7]]},"291":{"position":[[270,7],[560,7]]},"295":{"position":[[266,7]]},"297":{"position":[[1019,7]]},"301":{"position":[[319,7]]},"305":{"position":[[511,7]]},"307":{"position":[[350,7]]},"308":{"position":[[303,7]]},"312":{"position":[[267,7]]},"318":{"position":[[157,7],[362,8]]},"320":{"position":[[1261,7]]},"322":{"position":[[1396,8]]},"323":{"position":[[666,9]]},"324":{"position":[[1042,8]]},"328":{"position":[[158,7],[700,7]]},"330":{"position":[[1158,7]]},"334":{"position":[[240,7]]},"339":{"position":[[215,7]]},"343":{"position":[[234,7]]},"348":{"position":[[90,7]]},"349":{"position":[[187,7]]},"353":{"position":[[26,10]]},"354":{"position":[[504,8],[558,8],[602,7]]},"357":{"position":[[30,10]]},"358":{"position":[[500,8],[556,8],[594,7]]},"365":{"position":[[295,8]]},"368":{"position":[[437,7],[554,8],[1170,7],[1251,11],[2057,7]]},"369":{"position":[[854,7]]},"370":{"position":[[424,7]]},"371":{"position":[[383,7]]},"373":{"position":[[4,7]]},"378":{"position":[[919,10]]},"379":{"position":[[102,7]]},"395":{"position":[[47,8]]},"413":{"position":[[47,8]]},"484":{"position":[[744,7],[1013,7]]},"490":{"position":[[1135,7]]},"518":{"position":[[48,8],[521,7]]},"520":{"position":[[622,7]]},"522":{"position":[[21,7]]}},"keywords":{}}],["handler(()=>",{"_index":538,"title":{},"content":{"21":{"position":[[1200,19]]},"22":{"position":[[1062,19]]}},"keywords":{}}],["handler((ev",{"_index":619,"title":{},"content":{"26":{"position":[[64,16]]},"31":{"position":[[2292,16]]},"40":{"position":[[64,16]]},"43":{"position":[[2303,16]]},"49":{"position":[[64,16]]},"52":{"position":[[162,16]]},"55":{"position":[[134,16]]},"58":{"position":[[64,16]]},"61":{"position":[[162,16]]},"64":{"position":[[162,16]]},"67":{"position":[[162,16]]},"70":{"position":[[64,16]]},"73":{"position":[[64,16]]},"79":{"position":[[64,16]]},"82":{"position":[[64,16]]},"85":{"position":[[64,16]]},"91":{"position":[[162,16]]},"94":{"position":[[162,16]]},"97":{"position":[[2317,16]]},"100":{"position":[[162,16]]},"103":{"position":[[162,16]]},"110":{"position":[[192,16]]},"113":{"position":[[162,16]]},"116":{"position":[[162,16]]},"119":{"position":[[64,16]]},"122":{"position":[[334,16]]},"125":{"position":[[201,16]]},"128":{"position":[[64,16]]},"131":{"position":[[162,16]]},"134":{"position":[[64,16]]},"137":{"position":[[64,16]]},"143":{"position":[[263,16]]},"150":{"position":[[2304,16]]},"197":{"position":[[226,16]]},"249":{"position":[[491,16]]},"354":{"position":[[265,16],[404,16]]},"358":{"position":[[211,16],[367,16]]}},"keywords":{}}],["handler(async",{"_index":750,"title":{},"content":{"105":{"position":[[662,14]]},"106":{"position":[[801,14]]},"107":{"position":[[762,14]]},"200":{"position":[[630,14]]}},"keywords":{}}],["handler(ev",{"_index":1645,"title":{},"content":{"245":{"position":[[522,14]]},"254":{"position":[[699,14]]},"258":{"position":[[489,14]]},"266":{"position":[[589,14]]},"273":{"position":[[702,14]]},"277":{"position":[[374,14]]},"318":{"position":[[418,14]]},"353":{"position":[[197,14]]},"357":{"position":[[332,14]]},"368":{"position":[[668,14]]}},"keywords":{}}],["handler(httprouterhandler(rout",{"_index":712,"title":{},"content":{"46":{"position":[[2358,35]]},"358":{"position":[[641,35]]}},"keywords":{}}],["handler(lambdahandl",{"_index":315,"title":{},"content":{"16":{"position":[[2071,23]]},"19":{"position":[[1357,23]]},"157":{"position":[[334,23],[804,23]]},"159":{"position":[[1501,23]]},"191":{"position":[[309,25]]},"192":{"position":[[241,25]]},"199":{"position":[[1521,23]]},"204":{"position":[[422,23]]},"211":{"position":[[259,23]]},"212":{"position":[[355,23]]},"226":{"position":[[1073,23]]},"237":{"position":[[217,23]]},"240":{"position":[[1624,23]]},"245":{"position":[[306,23]]},"250":{"position":[[687,23]]},"254":{"position":[[321,23]]},"266":{"position":[[364,23]]},"273":{"position":[[586,23]]},"287":{"position":[[415,23]]},"291":{"position":[[745,23]]},"295":{"position":[[373,23]]},"312":{"position":[[386,23]]},"318":{"position":[[307,23]]},"320":{"position":[[1715,23]]},"328":{"position":[[475,23],[1220,23]]},"330":{"position":[[1741,23]]},"334":{"position":[[354,23]]},"339":{"position":[[263,23]]},"343":{"position":[[316,23]]},"349":{"position":[[267,23]]},"368":{"position":[[515,23],[1224,23],[2217,23]]},"369":{"position":[[930,23]]},"370":{"position":[[530,23]]},"371":{"position":[[489,23]]},"490":{"position":[[1214,23]]},"518":{"position":[[753,23]]},"520":{"position":[[728,25]]}},"keywords":{}}],["handler(wsrouterhandler(rout",{"_index":698,"title":{},"content":{"37":{"position":[[677,33]]},"354":{"position":[[649,33]]}},"keywords":{}}],["handler.contextschema",{"_index":2122,"title":{},"content":{"365":{"position":[[142,21]]}},"keywords":{}}],["handler.i18nen",{"_index":2126,"title":{},"content":{"365":{"position":[[557,19]]}},"keywords":{}}],["handler.j",{"_index":237,"title":{},"content":{"16":{"position":[[131,10]]}},"keywords":{}}],["handler.requestend(request",{"_index":956,"title":{},"content":{"158":{"position":[[585,28]]}},"keywords":{}}],["handler.us",{"_index":1538,"title":{},"content":{"214":{"position":[[1258,12]]},"297":{"position":[[1207,12]]}},"keywords":{}}],["handler.use(httpurlencodepathpars",{"_index":1785,"title":{},"content":{"277":{"position":[[208,38]]}},"keywords":{}}],["handler.use(wsrespons",{"_index":2069,"title":{},"content":{"348":{"position":[[151,25]]}},"keywords":{}}],["handlerhttpeventnorm",{"_index":2094,"title":{},"content":{"360":{"position":[[696,26]]}},"keywords":{}}],["handlerrunonaft",{"_index":1528,"title":{},"content":{"210":{"position":[[283,17]]}},"keywords":{}}],["handlers/*/*.ftl",{"_index":2173,"title":{},"content":{"369":{"position":[[574,17]]}},"keywords":{}}],["handlers/*/schema.*.json",{"_index":2168,"title":{},"content":{"369":{"position":[[424,25]]}},"keywords":{}}],["handlers/connect.j",{"_index":688,"title":{},"content":{"37":{"position":[[244,23]]}},"keywords":{}}],["handlers/default.j",{"_index":692,"title":{},"content":{"37":{"position":[[382,23]]}},"keywords":{}}],["handlers/disconnect.j",{"_index":690,"title":{},"content":{"37":{"position":[[313,26]]}},"keywords":{}}],["handlers/get",{"_index":705,"title":{},"content":{"46":{"position":[[1255,15],[1319,15]]}},"keywords":{}}],["handlerswrap",{"_index":1988,"title":{},"content":{"324":{"position":[[522,12]]}},"keywords":{}}],["handlingerror",{"_index":2207,"title":{},"content":{"377":{"position":[[90,14]]}},"keywords":{}}],["handlingtimeout",{"_index":2206,"title":{},"content":{"377":{"position":[[68,15]]}},"keywords":{}}],["hapi",{"_index":342,"title":{},"content":{"17":{"position":[[570,5]]}},"keywords":{}}],["happen",{"_index":809,"title":{},"content":{"139":{"position":[[43,7]]},"153":{"position":[[26,7]]},"185":{"position":[[67,7],[216,7]]}},"keywords":{}}],["happen.fallbackmessag",{"_index":1590,"title":{},"content":{"229":{"position":[[164,22]]}},"keywords":{}}],["happens.middi",{"_index":1944,"title":{},"content":{"322":{"position":[[608,13]]}},"keywords":{}}],["happi",{"_index":2374,"title":{},"content":{"521":{"position":[[1006,5]]}},"keywords":{}}],["harder",{"_index":337,"title":{},"content":{"17":{"position":[[480,6]]}},"keywords":{}}],["header",{"_index":638,"title":{"234":{"position":[[5,6]]},"259":{"position":[[14,7]]},"361":{"position":[[0,6],[29,6]]},"390":{"position":[[5,6]]},"396":{"position":[[14,8]]},"430":{"position":[[5,6]]},"436":{"position":[[14,8]]},"467":{"position":[[5,6]]},"473":{"position":[[14,8]]},"498":{"position":[[5,6]]},"503":{"position":[[14,8]]}},"content":{"31":{"position":[[556,6],[945,8]]},"43":{"position":[[556,6],[945,8]]},"46":{"position":[[607,6],[996,8]]},"97":{"position":[[556,6],[945,8]]},"150":{"position":[[568,6],[957,8]]},"191":{"position":[[162,8]]},"197":{"position":[[296,8]]},"199":{"position":[[1117,8]]},"212":{"position":[[155,8]]},"214":{"position":[[1175,8]]},"225":{"position":[[940,7]]},"226":{"position":[[148,6]]},"235":{"position":[[89,6]]},"236":{"position":[[52,7],[95,7],[190,7],[325,6]]},"237":{"position":[[79,6]]},"240":{"position":[[337,7],[669,6],[905,7],[996,6],[1093,7],[1280,6]]},"245":{"position":[[79,6],[369,8]]},"254":{"position":[[79,6],[384,8]]},"260":{"position":[[98,7]]},"262":{"position":[[87,8]]},"266":{"position":[[79,6],[459,8]]},"271":{"position":[[55,6],[408,7]]},"272":{"position":[[5,6],[229,6]]},"273":{"position":[[626,8]]},"281":{"position":[[154,7],[445,6],[480,6]]},"282":{"position":[[51,6],[124,7],[298,8],[338,7]]},"287":{"position":[[158,8]]},"291":{"position":[[175,8]]},"295":{"position":[[171,8]]},"297":{"position":[[1124,8]]},"312":{"position":[[172,8]]},"320":{"position":[[1166,8]]},"334":{"position":[[145,8]]},"360":{"position":[[796,6]]},"361":{"position":[[66,6],[219,6],[554,7]]},"390":{"position":[[22,7]]},"396":{"position":[[122,7]]},"495":{"position":[[35,7]]}},"keywords":{}}],["headerhst",{"_index":1734,"title":{},"content":{"261":{"position":[[197,10]]}},"keywords":{}}],["headerxssfilt",{"_index":1743,"title":{},"content":{"261":{"position":[[369,15]]}},"keywords":{}}],["hello",{"_index":1458,"title":{},"content":{"197":{"position":[[341,6]]},"199":{"position":[[1162,6]]},"200":{"position":[[909,6]]},"212":{"position":[[200,6]]},"214":{"position":[[1220,6]]},"226":{"position":[[437,6]]},"233":{"position":[[216,6]]},"273":{"position":[[162,6]]},"287":{"position":[[203,6]]},"291":{"position":[[220,6]]},"295":{"position":[[216,6]]},"297":{"position":[[1169,6]]},"312":{"position":[[217,6]]},"320":{"position":[[1211,6]]},"334":{"position":[[190,6]]}},"keywords":{}}],["helmetjs.http",{"_index":1817,"title":{},"content":{"282":{"position":[[386,13]]}},"keywords":{}}],["help",{"_index":591,"title":{},"content":{"21":{"position":[[2415,4]]},"140":{"position":[[70,4]]},"144":{"position":[[69,4]]},"145":{"position":[[61,4]]},"146":{"position":[[77,4]]},"147":{"position":[[73,4]]},"151":{"position":[[94,4]]},"163":{"position":[[87,4]]},"167":{"position":[[1280,4]]},"188":{"position":[[66,4]]},"189":{"position":[[64,4]]},"324":{"position":[[638,4]]},"369":{"position":[[177,4]]}},"keywords":{}}],["helper",{"_index":1933,"title":{},"content":{"322":{"position":[[70,6]]}},"keywords":{}}],["here",{"_index":302,"title":{},"content":{"16":{"position":[[1647,4]]},"200":{"position":[[703,4]]},"378":{"position":[[262,4]]},"522":{"position":[[492,4]]}},"keywords":{}}],["here'",{"_index":1478,"title":{},"content":{"200":{"position":[[103,6]]},"521":{"position":[[16,6]]}},"keywords":{}}],["hide",{"_index":1741,"title":{},"content":{"261":{"position":[[352,4]]}},"keywords":{}}],["high",{"_index":1235,"title":{},"content":{"175":{"position":[[1115,4]]},"323":{"position":[[434,4]]}},"keywords":{}}],["higher",{"_index":1660,"title":{},"content":{"248":{"position":[[332,6]]},"324":{"position":[[482,6]]}},"keywords":{}}],["highest",{"_index":1325,"title":{},"content":{"185":{"position":[[692,7]]}},"keywords":{}}],["highli",{"_index":2119,"title":{},"content":{"362":{"position":[[199,6]]},"365":{"position":[[1227,6]]}},"keywords":{}}],["hint",{"_index":1465,"title":{},"content":{"199":{"position":[[227,5],[715,5]]},"214":{"position":[[261,5],[755,5]]},"297":{"position":[[230,5],[700,5]]},"320":{"position":[[236,5],[715,5]]},"330":{"position":[[227,5],[711,5]]}},"keywords":{}}],["histori",{"_index":981,"title":{"160":{"position":[[0,7]]},"161":{"position":[[8,7]]}},"content":{},"keywords":{}}],["hit",{"_index":183,"title":{},"content":{"13":{"position":[[84,3]]},"365":{"position":[[1164,3]]}},"keywords":{}}],["honour",{"_index":2322,"title":{},"content":{"496":{"position":[[21,6]]}},"keywords":{}}],["hook",{"_index":596,"title":{"158":{"position":[[0,5]]}},"content":{"21":{"position":[[2528,5]]},"158":{"position":[[0,5],[21,5]]},"518":{"position":[[167,4],[316,4],[890,4]]}},"keywords":{}}],["hope",{"_index":589,"title":{},"content":{"21":{"position":[[2392,4]]}},"keywords":{}}],["host",{"_index":865,"title":{},"content":{"151":{"position":[[768,6]]}},"keywords":{}}],["hostnam",{"_index":762,"title":{},"content":{"106":{"position":[[384,9]]},"287":{"position":[[338,9]]}},"keywords":{}}],["html",{"_index":2244,"title":{},"content":{"396":{"position":[[112,4]]}},"keywords":{}}],["http",{"_index":139,"title":{"29":{"position":[[12,6]]},"223":{"position":[[0,4]]},"227":{"position":[[0,4]]},"231":{"position":[[0,4]]},"234":{"position":[[0,4]]},"238":{"position":[[0,4]]},"242":{"position":[[0,4]]},"246":{"position":[[0,4]]},"251":{"position":[[0,4]]},"255":{"position":[[0,4]]},"259":{"position":[[0,4]]},"263":{"position":[[0,4]]},"267":{"position":[[0,4]]},"274":{"position":[[0,4]]},"355":{"position":[[0,4]]},"361":{"position":[[24,4]]},"385":{"position":[[0,4]]},"386":{"position":[[0,4]]},"387":{"position":[[0,4]]},"388":{"position":[[0,4]]},"389":{"position":[[0,4]]},"390":{"position":[[0,4]]},"391":{"position":[[0,4]]},"392":{"position":[[0,4]]},"393":{"position":[[0,4]]},"394":{"position":[[0,4]]},"395":{"position":[[0,4]]},"396":{"position":[[0,4]]},"397":{"position":[[0,4]]},"398":{"position":[[0,4]]},"425":{"position":[[0,4]]},"426":{"position":[[0,4]]},"427":{"position":[[0,4]]},"428":{"position":[[0,4]]},"429":{"position":[[0,4]]},"430":{"position":[[0,4]]},"431":{"position":[[0,4]]},"432":{"position":[[0,4]]},"433":{"position":[[0,4]]},"434":{"position":[[0,4]]},"435":{"position":[[0,4]]},"436":{"position":[[0,4]]},"437":{"position":[[0,4]]},"438":{"position":[[0,4]]},"462":{"position":[[0,4]]},"463":{"position":[[0,4]]},"464":{"position":[[0,4]]},"465":{"position":[[0,4]]},"466":{"position":[[0,4]]},"467":{"position":[[0,4]]},"468":{"position":[[0,4]]},"469":{"position":[[0,4]]},"470":{"position":[[0,4]]},"471":{"position":[[0,4]]},"472":{"position":[[0,4]]},"473":{"position":[[0,4]]},"474":{"position":[[0,4]]},"475":{"position":[[0,4]]},"494":{"position":[[0,4]]},"495":{"position":[[0,4]]},"496":{"position":[[0,4]]},"497":{"position":[[0,4]]},"498":{"position":[[0,4]]},"499":{"position":[[0,4]]},"500":{"position":[[0,4]]},"501":{"position":[[0,4]]},"502":{"position":[[0,4]]},"503":{"position":[[0,4]]},"504":{"position":[[0,4]]},"505":{"position":[[0,4]]}},"content":{"8":{"position":[[461,8]]},"16":{"position":[[2030,4]]},"27":{"position":[[41,4]]},"30":{"position":[[54,4]]},"96":{"position":[[54,4]]},"163":{"position":[[554,4]]},"225":{"position":[[863,4]]},"229":{"position":[[218,4]]},"261":{"position":[[212,4]]},"281":{"position":[[258,4],[305,4],[475,4],[562,4],[756,4],[894,4],[1019,4]]},"282":{"position":[[1,4],[29,4],[114,4],[180,4],[231,4],[272,4],[512,4]]},"322":{"position":[[1345,4]]},"324":{"position":[[767,4],[863,4]]},"361":{"position":[[61,4],[338,4],[378,4],[549,4]]},"389":{"position":[[76,4]]},"416":{"position":[[229,4]]},"425":{"position":[[58,4]]},"429":{"position":[[36,4]]},"441":{"position":[[30,6]]},"447":{"position":[[58,4]]},"496":{"position":[[159,4]]}},"keywords":{}}],["http(",{"_index":1168,"title":{},"content":{"168":{"position":[[142,7]]},"170":{"position":[[311,7]]},"171":{"position":[[1156,7]]}},"keywords":{}}],["httpcontentencod",{"_index":1666,"title":{},"content":{"249":{"position":[[109,19]]},"250":{"position":[[109,19]]}},"keywords":{}}],["httpcontentencodingmiddlewar",{"_index":631,"title":{},"content":{"31":{"position":[[244,29]]},"43":{"position":[[244,29]]},"46":{"position":[[295,29]]},"97":{"position":[[244,29]]},"150":{"position":[[244,29]]}},"keywords":{}}],["httpcontentnegoti",{"_index":1572,"title":{},"content":{"226":{"position":[[40,22],[830,24]]},"249":{"position":[[40,22]]},"250":{"position":[[40,22]]}},"keywords":{}}],["httpcontentnegotiationmiddlewar",{"_index":629,"title":{},"content":{"31":{"position":[[165,32],[1558,34]]},"43":{"position":[[165,32],[1558,34]]},"46":{"position":[[216,32],[1683,34]]},"97":{"position":[[165,32],[1583,34]]},"150":{"position":[[165,32],[1570,34]]}},"keywords":{}}],["httpcontentnegotiationmiddlewarebefor",{"_index":552,"title":{},"content":{"21":{"position":[[1567,38]]}},"keywords":{}}],["httpcorsmiddlewar",{"_index":632,"title":{},"content":{"31":{"position":[[317,18]]},"43":{"position":[[317,18]]},"46":{"position":[[368,18]]},"97":{"position":[[317,18]]},"150":{"position":[[317,18]]}},"keywords":{}}],["httpcorsmiddlewareaft",{"_index":561,"title":{},"content":{"21":{"position":[[1759,23]]}},"keywords":{}}],["httperror.expos",{"_index":2323,"title":{},"content":{"496":{"position":[[28,17]]}},"keywords":{}}],["httperrorhandl",{"_index":246,"title":{},"content":{"16":{"position":[[359,16]]},"226":{"position":[[174,16]]},"230":{"position":[[40,16]]},"240":{"position":[[1376,16]]}},"keywords":{}}],["httperrorhandlermiddlewar",{"_index":634,"title":{},"content":{"31":{"position":[[367,26]]},"43":{"position":[[367,26]]},"46":{"position":[[418,26]]},"97":{"position":[[367,26]]},"150":{"position":[[367,26]]}},"keywords":{}}],["httpeventnorm",{"_index":1603,"title":{},"content":{"233":{"position":[[40,19]]}},"keywords":{}}],["httpeventnormalizermiddlewar",{"_index":635,"title":{},"content":{"31":{"position":[[434,29]]},"43":{"position":[[434,29]]},"46":{"position":[[485,29]]},"97":{"position":[[434,29]]},"150":{"position":[[434,29]]}},"keywords":{}}],["httpeventnormalizermiddlewarebefor",{"_index":542,"title":{},"content":{"21":{"position":[[1319,35]]}},"keywords":{}}],["httpheadernorm",{"_index":1573,"title":{},"content":{"226":{"position":[[109,20]]},"237":{"position":[[40,20]]},"245":{"position":[[40,20]]},"254":{"position":[[40,20]]},"266":{"position":[[40,20]]},"361":{"position":[[18,20]]}},"keywords":{}}],["httpheadernormalizermiddlewar",{"_index":637,"title":{},"content":{"31":{"position":[[507,30]]},"43":{"position":[[507,30]]},"46":{"position":[[558,30]]},"97":{"position":[[507,30]]},"150":{"position":[[519,30]]}},"keywords":{}}],["httpheadernormalizermiddlewarebefor",{"_index":544,"title":{},"content":{"21":{"position":[[1367,36]]}},"keywords":{}}],["httpjsonbodypars",{"_index":1644,"title":{},"content":{"245":{"position":[[105,18]]},"368":{"position":[[1543,18]]}},"keywords":{}}],["httpjsonbodyparsermiddlewar",{"_index":639,"title":{},"content":{"31":{"position":[[582,28]]},"43":{"position":[[582,28]]},"46":{"position":[[633,28]]},"97":{"position":[[582,28]]},"150":{"position":[[594,28]]}},"keywords":{}}],["httpjsonbodyparsermiddlewarebefor",{"_index":550,"title":{},"content":{"21":{"position":[[1520,34]]}},"keywords":{}}],["httpmultipartbodypars",{"_index":1696,"title":{},"content":{"254":{"position":[[105,23]]}},"keywords":{}}],["httpmultipartbodyparsermiddlewar",{"_index":640,"title":{},"content":{"31":{"position":[[654,33]]},"43":{"position":[[654,33]]},"46":{"position":[[705,33]]},"97":{"position":[[654,33]]},"150":{"position":[[666,33]]}},"keywords":{}}],["httppartialrespons",{"_index":1706,"title":{},"content":{"258":{"position":[[40,19]]}},"keywords":{}}],["httppartialresponsemiddlewar",{"_index":642,"title":{},"content":{"31":{"position":[[736,29]]},"43":{"position":[[736,29]]},"46":{"position":[[787,29]]},"97":{"position":[[736,29]]},"150":{"position":[[748,29]]}},"keywords":{}}],["httpresponseseri",{"_index":1775,"title":{},"content":{"273":{"position":[[40,22],[248,24]]}},"keywords":{}}],["httpresponseserializermiddlewar",{"_index":644,"title":{},"content":{"31":{"position":[[809,32],[1990,34]]},"43":{"position":[[809,32],[1990,34]]},"46":{"position":[[860,32],[2115,34]]},"97":{"position":[[809,32],[2015,34]]},"150":{"position":[[821,32],[2002,34]]}},"keywords":{}}],["httprouterhandl",{"_index":703,"title":{},"content":{"46":{"position":[[40,17]]},"358":{"position":[[40,17]]}},"keywords":{}}],["https://ajv.js.org/json",{"_index":2157,"title":{},"content":{"368":{"position":[[1985,23]]}},"keywords":{}}],["https://aws.amazon.com/about",{"_index":2252,"title":{},"content":{"406":{"position":[[39,28]]}},"keywords":{}}],["https://docs.aws.amazon.com/amazonrds/latest/userguide/usingwithrds.ssl.html",{"_index":859,"title":{},"content":{"151":{"position":[[561,76]]}},"keywords":{}}],["https://github.com/aws/aw",{"_index":1886,"title":{},"content":{"305":{"position":[[695,26]]}},"keywords":{}}],["https://github.com/evanw/esbuild/pull/2067",{"_index":48,"title":{},"content":{"5":{"position":[[42,42]]}},"keywords":{}}],["https://github.com/middyjs/middy/issues/945",{"_index":2291,"title":{},"content":{"468":{"position":[[212,43]]}},"keywords":{}}],["httpscaptur",{"_index":799,"title":{},"content":{"122":{"position":[[276,13]]}},"keywords":{}}],["httpsecurityhead",{"_index":1746,"title":{},"content":{"262":{"position":[[40,19]]}},"keywords":{}}],["httpsecurityheadersmiddlewar",{"_index":645,"title":{},"content":{"31":{"position":[[888,29]]},"43":{"position":[[888,29]]},"46":{"position":[[939,29]]},"97":{"position":[[888,29]]},"150":{"position":[[900,29]]}},"keywords":{}}],["httpsecurityheadersmiddlewareaft",{"_index":559,"title":{},"content":{"21":{"position":[[1713,34]]}},"keywords":{}}],["httpurlencodebodypars",{"_index":1749,"title":{},"content":{"266":{"position":[[105,23]]}},"keywords":{}}],["httpurlencodebodyparsermiddlewar",{"_index":646,"title":{},"content":{"31":{"position":[[961,33]]},"43":{"position":[[961,33]]},"46":{"position":[[1012,33]]},"97":{"position":[[961,33]]},"150":{"position":[[973,33]]}},"keywords":{}}],["httpurlencodebodyparsermiddlewarebefor",{"_index":548,"title":{},"content":{"21":{"position":[[1468,39]]}},"keywords":{}}],["httpurlencodepathparametersparsermiddlewar",{"_index":648,"title":{},"content":{"31":{"position":[[1043,43]]},"43":{"position":[[1043,43]]},"46":{"position":[[1094,43]]},"97":{"position":[[1043,43]]},"150":{"position":[[1055,43]]}},"keywords":{}}],["httpurlencodepathpars",{"_index":1784,"title":{},"content":{"277":{"position":[[40,23]]}},"keywords":{}}],["httpurlencodepathparsermiddlewarebefor",{"_index":546,"title":{},"content":{"21":{"position":[[1416,39]]}},"keywords":{}}],["hydrat",{"_index":1790,"title":{},"content":{"280":{"position":[[21,8]]}},"keywords":{}}],["i.",{"_index":1435,"title":{},"content":{"196":{"position":[[81,5]]},"207":{"position":[[79,5]]},"236":{"position":[[226,4]]},"286":{"position":[[63,5]]},"294":{"position":[[67,5]]},"305":{"position":[[67,5]]},"311":{"position":[[95,5]]},"317":{"position":[[91,5]]},"327":{"position":[[69,5]]},"333":{"position":[[69,5]]},"346":{"position":[[103,5]]}},"keywords":{}}],["i18n",{"_index":2127,"title":{},"content":{"365":{"position":[[621,4]]},"366":{"position":[[71,5]]},"371":{"position":[[228,5],[242,5]]},"484":{"position":[[994,5]]},"515":{"position":[[334,4]]}},"keywords":{}}],["i18n/localize/.eslintrc.yml",{"_index":394,"title":{},"content":{"18":{"position":[[567,27]]}},"keywords":{}}],["i18nen",{"_index":2297,"title":{},"content":{"484":{"position":[[216,11]]}},"keywords":{}}],["iam",{"_index":1454,"title":{},"content":{"196":{"position":[[1102,3]]},"207":{"position":[[1097,3]]},"283":{"position":[[151,3],[519,3]]},"286":{"position":[[830,3]]},"294":{"position":[[1074,3]]},"305":{"position":[[797,3]]},"311":{"position":[[1124,3]]},"317":{"position":[[1577,3]]},"327":{"position":[[1107,3]]},"333":{"position":[[935,3]]},"346":{"position":[[731,3]]},"507":{"position":[[66,3]]}},"keywords":{}}],["iam_rol",{"_index":765,"title":{},"content":{"106":{"position":[[430,11]]},"287":{"position":[[383,11]]}},"keywords":{}}],["icon",{"_index":1030,"title":{},"content":{"161":{"position":[[695,4]]}},"keywords":{}}],["id",{"_index":501,"title":{},"content":{"21":{"position":[[181,4],[245,4]]},"22":{"position":[[203,4],[267,4]]},"159":{"position":[[686,2]]},"167":{"position":[[1491,2]]},"179":{"position":[[435,3]]},"182":{"position":[[916,2]]},"357":{"position":[[270,7]]}},"keywords":{}}],["idea",{"_index":1334,"title":{},"content":{"186":{"position":[[284,5]]},"199":{"position":[[398,4]]},"214":{"position":[[430,4]]},"297":{"position":[[387,4]]},"320":{"position":[[406,4]]},"330":{"position":[[386,4]]}},"keywords":{}}],["idempot",{"_index":1057,"title":{"176":{"position":[[0,12]]}},"content":{"163":{"position":[[836,10]]},"176":{"position":[[230,11],[457,11],[595,10],[718,10]]},"178":{"position":[[234,11]]},"322":{"position":[[622,11],[634,11]]}},"keywords":{}}],["idempotencyconfig",{"_index":1262,"title":{},"content":{"178":{"position":[[140,19]]}},"keywords":{}}],["idempotencytablenam",{"_index":1270,"title":{},"content":{"179":{"position":[[318,23]]}},"keywords":{}}],["identifi",{"_index":592,"title":{},"content":{"21":{"position":[[2430,8]]},"167":{"position":[[2062,8]]}},"keywords":{}}],["ie",{"_index":466,"title":{},"content":{"19":{"position":[[482,2]]},"353":{"position":[[128,2]]}},"keywords":{}}],["ie8+nosniff",{"_index":1737,"title":{},"content":{"261":{"position":[[279,11]]}},"keywords":{}}],["ignored.middi",{"_index":1939,"title":{},"content":{"322":{"position":[[386,13]]}},"keywords":{}}],["illustr",{"_index":1472,"title":{},"content":{"199":{"position":[[915,11]]},"214":{"position":[[967,11]]},"297":{"position":[[912,11]]},"320":{"position":[[927,11]]},"330":{"position":[[911,11]]}},"keywords":{}}],["imag",{"_index":1317,"title":{},"content":{"185":{"position":[[378,5]]}},"keywords":{}}],["immedi",{"_index":960,"title":{},"content":{"159":{"position":[[96,12]]},"182":{"position":[[126,12]]}},"keywords":{}}],["impact",{"_index":1203,"title":{},"content":{"172":{"position":[[327,6]]},"175":{"position":[[1050,6]]},"253":{"position":[[836,6]]}},"keywords":{}}],["implement",{"_index":323,"title":{},"content":{"17":{"position":[[131,12]]},"153":{"position":[[178,11]]},"156":{"position":[[151,12]]}},"keywords":{}}],["import",{"_index":73,"title":{"302":{"position":[[0,10]]}},"content":{"6":{"position":[[125,6],[183,6]]},"8":{"position":[[79,6],[108,6]]},"16":{"position":[[145,6],[157,6],[270,6],[294,6],[352,6],[409,6],[450,6]]},"19":{"position":[[180,6],[212,6]]},"22":{"position":[[1,6]]},"26":{"position":[[1,6]]},"28":{"position":[[1,6]]},"31":{"position":[[1,6],[33,6],[89,6],[158,6],[237,6],[310,6],[360,6],[427,6],[500,6],[575,6],[647,6],[729,6],[802,6],[881,6],[954,6],[1036,6],[1128,6],[1172,6],[1210,6],[1279,6]]},"34":{"position":[[1,6]]},"37":{"position":[[1,6],[33,6],[101,6],[155,6],[202,6],[268,6],[340,6]]},"40":{"position":[[1,6]]},"43":{"position":[[1,6],[33,6],[89,6],[158,6],[237,6],[310,6],[360,6],[427,6],[500,6],[575,6],[647,6],[729,6],[802,6],[881,6],[954,6],[1036,6],[1128,6],[1172,6],[1210,6],[1279,6]]},"46":{"position":[[1,6],[33,6],[84,6],[140,6],[209,6],[288,6],[361,6],[411,6],[478,6],[551,6],[626,6],[698,6],[780,6],[853,6],[932,6],[1005,6],[1087,6],[1179,6],[1217,6],[1280,6]]},"49":{"position":[[1,6]]},"52":{"position":[[1,6],[33,6]]},"55":{"position":[[1,6]]},"58":{"position":[[1,6]]},"61":{"position":[[1,6],[33,6]]},"64":{"position":[[1,6],[33,6]]},"67":{"position":[[1,6],[33,6]]},"70":{"position":[[1,6]]},"73":{"position":[[1,6]]},"76":{"position":[[1,6]]},"79":{"position":[[1,6]]},"82":{"position":[[1,6]]},"85":{"position":[[1,6]]},"88":{"position":[[1,6]]},"91":{"position":[[1,6],[33,6]]},"94":{"position":[[1,6],[33,6]]},"97":{"position":[[1,6],[33,6],[89,6],[158,6],[237,6],[310,6],[360,6],[427,6],[500,6],[575,6],[647,6],[729,6],[802,6],[881,6],[954,6],[1036,6],[1128,6],[1172,6],[1210,6],[1279,6]]},"100":{"position":[[1,6],[33,6]]},"103":{"position":[[1,6],[33,6]]},"105":{"position":[[1,6],[33,6],[101,6],[157,6],[226,6],[270,6],[308,6],[377,6]]},"106":{"position":[[1,6],[33,6],[75,6],[127,6],[189,6],[228,6]]},"107":{"position":[[1,6],[33,6],[75,6],[126,6],[163,6],[212,6]]},"110":{"position":[[1,6],[33,6]]},"113":{"position":[[1,6],[33,6]]},"116":{"position":[[1,6],[33,6]]},"119":{"position":[[1,6]]},"122":{"position":[[1,6],[33,6],[100,6]]},"125":{"position":[[1,6],[33,6]]},"128":{"position":[[1,6]]},"131":{"position":[[1,6],[33,6]]},"134":{"position":[[1,6]]},"137":{"position":[[1,6]]},"140":{"position":[[144,6],[176,6],[233,6],[291,6],[342,6]]},"143":{"position":[[1,6],[33,6],[97,6]]},"150":{"position":[[1,6],[33,6],[89,6],[158,6],[237,6],[310,6],[360,6],[427,6],[512,6],[587,6],[659,6],[741,6],[814,6],[893,6],[966,6],[1048,6],[1140,6],[1184,6],[1222,6],[1291,6]]},"151":{"position":[[536,6]]},"157":{"position":[[1,6],[33,6],[78,6],[123,6],[479,6],[511,6],[556,6],[601,6]]},"167":{"position":[[1,6],[34,6]]},"171":{"position":[[1,6],[34,6],[112,6]]},"175":{"position":[[1,6],[34,6]]},"179":{"position":[[1,6],[34,6],[76,6],[163,6]]},"182":{"position":[[804,6]]},"189":{"position":[[852,9]]},"191":{"position":[[1,6],[33,6]]},"192":{"position":[[1,6],[33,6]]},"193":{"position":[[1,6]]},"197":{"position":[[1,6],[33,6]]},"199":{"position":[[953,6],[985,6]]},"200":{"position":[[259,6],[291,6],[343,6]]},"211":{"position":[[1,6],[33,6]]},"212":{"position":[[1,6],[33,6]]},"214":{"position":[[1004,6],[1036,6]]},"218":{"position":[[1,6],[33,6]]},"222":{"position":[[1,6],[33,6]]},"226":{"position":[[1,6],[33,6],[102,6],[167,6]]},"230":{"position":[[1,6],[33,6]]},"233":{"position":[[1,6],[33,6]]},"237":{"position":[[1,6],[33,6]]},"240":{"position":[[1337,6],[1369,6],[1426,6]]},"241":{"position":[[1,6],[33,6]]},"245":{"position":[[1,6],[33,6],[98,6],[424,9]]},"248":{"position":[[373,9]]},"249":{"position":[[1,6],[33,6],[102,6],[165,6]]},"250":{"position":[[1,6],[33,6],[102,6],[165,6],[203,6]]},"254":{"position":[[1,6],[33,6],[98,6]]},"258":{"position":[[1,6],[33,6]]},"262":{"position":[[1,6],[33,6]]},"266":{"position":[[1,6],[33,6],[98,6]]},"273":{"position":[[1,6],[33,6]]},"277":{"position":[[1,6],[33,6]]},"287":{"position":[[1,6],[33,6]]},"290":{"position":[[276,6]]},"291":{"position":[[1,6],[33,6],[338,6],[370,6],[429,6]]},"295":{"position":[[1,6],[33,6]]},"297":{"position":[[943,6],[975,6]]},"301":{"position":[[1,6],[33,6]]},"307":{"position":[[1,6],[25,6],[57,6]]},"308":{"position":[[1,6],[25,6],[57,6]]},"312":{"position":[[1,6],[33,6]]},"318":{"position":[[1,6],[33,6]]},"320":{"position":[[959,6],[991,6]]},"328":{"position":[[1,6],[33,6],[501,6],[533,6],[575,6]]},"330":{"position":[[945,6],[977,6],[1019,6]]},"334":{"position":[[1,6],[33,6]]},"343":{"position":[[1,6],[33,6],[101,6]]},"348":{"position":[[1,6],[33,6]]},"349":{"position":[[1,6],[33,6]]},"354":{"position":[[1,6],[33,6],[80,6],[134,6]]},"358":{"position":[[1,6],[33,6],[84,6]]},"368":{"position":[[32,6],[64,6],[105,6],[797,6],[829,6],[870,6],[1504,6],[1536,6],[1598,6],[1639,6]]},"369":{"position":[[615,6],[647,6],[688,6],[732,6],[757,6]]},"370":{"position":[[1,6],[45,6],[77,6],[118,6],[196,6]]},"371":{"position":[[1,6],[45,6],[77,6],[118,6],[196,6],[265,6]]},"484":{"position":[[590,6],[647,6],[670,6],[884,6],[941,6],[962,6]]},"490":{"position":[[962,6],[994,6]]},"518":{"position":[[415,6]]},"520":{"position":[[462,6]]},"521":{"position":[[123,6],[155,6]]},"522":{"position":[[545,6]]}},"keywords":{}}],["improp",{"_index":1408,"title":{},"content":{"189":{"position":[[1397,8]]}},"keywords":{}}],["improv",{"_index":594,"title":{},"content":{"21":{"position":[[2460,7]]},"384":{"position":[[66,12]]},"387":{"position":[[94,12]]},"394":{"position":[[49,7]]},"521":{"position":[[968,12]]}},"keywords":{}}],["in.disableprefetch",{"_index":1881,"title":{},"content":{"305":{"position":[[332,18]]},"346":{"position":[[547,18]]}},"keywords":{}}],["in.fetchdata",{"_index":1441,"title":{},"content":{"196":{"position":[[497,12]]},"207":{"position":[[493,12]]},"294":{"position":[[476,12]]},"311":{"position":[[525,12]]},"317":{"position":[[491,12]]},"327":{"position":[[456,12]]},"333":{"position":[[336,12]]}},"keywords":{}}],["incas",{"_index":471,"title":{},"content":{"19":{"position":[[599,6]]}},"keywords":{}}],["includ",{"_index":576,"title":{},"content":{"21":{"position":[[2004,8]]},"158":{"position":[[663,9]]},"167":{"position":[[1188,8],[1834,7],[1982,7]]},"290":{"position":[[115,7]]},"333":{"position":[[985,8]]},"379":{"position":[[23,8]]},"484":{"position":[[533,9]]},"515":{"position":[[161,8],[284,8]]}},"keywords":{}}],["inclus",{"_index":2243,"title":{},"content":{"396":{"position":[[95,9]]},"449":{"position":[[8,9]]}},"keywords":{}}],["incom",{"_index":1625,"title":{},"content":{"240":{"position":[[761,8]]},"281":{"position":[[1090,8]]}},"keywords":{}}],["incomplet",{"_index":115,"title":{},"content":{"7":{"position":[[63,10]]}},"keywords":{}}],["increas",{"_index":2024,"title":{},"content":{"327":{"position":[[1307,10]]}},"keywords":{}}],["independ",{"_index":349,"title":{"360":{"position":[[0,11]]}},"content":{"17":{"position":[[838,11]]},"163":{"position":[[58,13]]},"186":{"position":[[247,11]]},"360":{"position":[[41,11]]}},"keywords":{}}],["index",{"_index":1872,"title":{},"content":{"301":{"position":[[192,6]]}},"keywords":{}}],["index.bundle.rollup.mj",{"_index":84,"title":{},"content":{"6":{"position":[[365,26]]}},"keywords":{}}],["index.bundle.webpack.mj",{"_index":132,"title":{},"content":{"8":{"position":[[321,27]]}},"keywords":{}}],["index.handl",{"_index":1187,"title":{},"content":{"171":{"position":[[592,13]]}},"keywords":{}}],["index.j",{"_index":50,"title":{},"content":{"5":{"position":[[111,8]]},"6":{"position":[[337,11]]},"8":{"position":[[287,13]]},"10":{"position":[[75,8]]},"11":{"position":[[89,8]]},"12":{"position":[[51,8]]}},"keywords":{}}],["index.transpile.babel.cj",{"_index":154,"title":{},"content":{"10":{"position":[[95,25]]}},"keywords":{}}],["index.transpile.swc.cj",{"_index":166,"title":{},"content":{"12":{"position":[[71,23]]}},"keywords":{}}],["indic",{"_index":1147,"title":{},"content":{"167":{"position":[[1371,9]]},"171":{"position":[[788,8]]},"317":{"position":[[713,9]]}},"keywords":{}}],["inevit",{"_index":1692,"title":{},"content":{"253":{"position":[[692,10]]}},"keywords":{}}],["infinit",{"_index":2280,"title":{},"content":{"444":{"position":[[76,8]]}},"keywords":{}}],["influenc",{"_index":1328,"title":{"186":{"position":[[0,9]]}},"content":{"186":{"position":[[0,9]]}},"keywords":{}}],["info",{"_index":1078,"title":{},"content":{"166":{"position":[[133,5],[199,5]]},"167":{"position":[[255,4],[876,4]]}},"keywords":{}}],["inform",{"_index":1683,"title":{},"content":{"253":{"position":[[182,11]]}},"keywords":{}}],["inherits/inherits_browser.j",{"_index":412,"title":{},"content":{"18":{"position":[[880,31]]}},"keywords":{}}],["initi",{"_index":577,"title":{},"content":{"21":{"position":[[2017,7]]},"153":{"position":[[769,10]]},"161":{"position":[[70,9]]}},"keywords":{}}],["injectlambdacontext",{"_index":1098,"title":{},"content":{"167":{"position":[[51,19]]}},"keywords":{}}],["inlin",{"_index":944,"title":{"518":{"position":[[0,6]]}},"content":{"157":{"position":[[850,6]]},"468":{"position":[[60,6]]},"518":{"position":[[0,6],[265,6],[368,6],[905,6]]}},"keywords":{}}],["inpath",{"_index":2077,"title":{},"content":{"357":{"position":[[196,6]]}},"keywords":{}}],["input",{"_index":80,"title":{"278":{"position":[[0,5]]},"399":{"position":[[0,5]]},"439":{"position":[[0,5]]},"476":{"position":[[0,5]]},"506":{"position":[[0,5]]}},"content":{"6":{"position":[[313,7],[330,6]]},"16":{"position":[[1981,5]]},"17":{"position":[[289,5]]},"176":{"position":[[577,5]]},"272":{"position":[[572,6]]},"294":{"position":[[1220,5]]},"365":{"position":[[106,5],[257,5]]}},"keywords":{}}],["inputoutputlogg",{"_index":1855,"title":{},"content":{"291":{"position":[[40,17],[377,17],[584,19]]}},"keywords":{}}],["inputoutputloggermiddlewar",{"_index":627,"title":{},"content":{"31":{"position":[[96,27]]},"43":{"position":[[96,27]]},"46":{"position":[[147,27]]},"97":{"position":[[96,27]]},"105":{"position":[[164,27]]},"150":{"position":[[96,27]]}},"keywords":{}}],["inputoutputloggermiddlewareaft",{"_index":563,"title":{},"content":{"21":{"position":[[1795,32]]}},"keywords":{}}],["inputoutputloggermiddlewarebefor",{"_index":540,"title":{},"content":{"21":{"position":[[1273,33]]}},"keywords":{}}],["inputschema",{"_index":2259,"title":{},"content":{"409":{"position":[[160,11]]},"484":{"position":[[153,11]]}},"keywords":{}}],["insert",{"_index":301,"title":{},"content":{"16":{"position":[[1640,6]]}},"keywords":{}}],["insid",{"_index":1498,"title":{},"content":{"200":{"position":[[1346,6]]}},"keywords":{}}],["instal",{"_index":913,"title":{"155":{"position":[[0,8]]},"165":{"position":[[0,8]]},"169":{"position":[[0,8]]},"173":{"position":[[0,8]]},"177":{"position":[[0,8]]},"195":{"position":[[0,8]]},"202":{"position":[[0,8]]},"206":{"position":[[0,8]]},"209":{"position":[[0,8]]},"216":{"position":[[0,8]]},"220":{"position":[[0,8]]},"224":{"position":[[0,8]]},"228":{"position":[[0,8]]},"232":{"position":[[0,8]]},"235":{"position":[[0,8]]},"239":{"position":[[0,8]]},"243":{"position":[[0,8]]},"247":{"position":[[0,8]]},"252":{"position":[[0,8]]},"256":{"position":[[0,8]]},"260":{"position":[[0,8]]},"264":{"position":[[0,8]]},"268":{"position":[[0,8]]},"275":{"position":[[0,8]]},"285":{"position":[[0,8]]},"289":{"position":[[0,8]]},"293":{"position":[[0,8]]},"299":{"position":[[0,8]]},"304":{"position":[[0,8]]},"310":{"position":[[0,8]]},"316":{"position":[[0,8]]},"326":{"position":[[0,8]]},"332":{"position":[[0,8]]},"337":{"position":[[0,8]]},"341":{"position":[[0,8]]},"345":{"position":[[0,8]]},"352":{"position":[[0,8]]},"356":{"position":[[0,8]]},"364":{"position":[[0,8]]}},"content":{"155":{"position":[[4,7],[53,7],[157,9],[223,7]]},"165":{"position":[[17,7]]},"169":{"position":[[17,7]]},"173":{"position":[[17,7]]},"177":{"position":[[17,7]]},"195":{"position":[[4,7],[62,7],[98,7]]},"202":{"position":[[4,7],[62,7]]},"206":{"position":[[4,7],[62,7],[97,7]]},"209":{"position":[[4,7],[62,7]]},"216":{"position":[[4,7],[62,7]]},"220":{"position":[[4,7],[62,7]]},"224":{"position":[[4,7],[62,7]]},"228":{"position":[[4,7],[62,7]]},"232":{"position":[[4,7],[62,7]]},"235":{"position":[[4,7],[62,7]]},"239":{"position":[[4,7],[62,7]]},"243":{"position":[[4,7],[62,7]]},"247":{"position":[[4,7],[62,7]]},"252":{"position":[[4,7],[62,7]]},"256":{"position":[[4,7],[62,7]]},"260":{"position":[[4,7],[62,7]]},"264":{"position":[[4,7],[62,7]]},"268":{"position":[[4,7],[62,7]]},"275":{"position":[[4,7],[62,7]]},"285":{"position":[[4,7],[62,7],[99,7]]},"289":{"position":[[4,7],[62,7]]},"293":{"position":[[4,7],[62,7],[91,7]]},"299":{"position":[[4,7],[62,7],[140,7]]},"304":{"position":[[4,7],[62,7],[107,7]]},"310":{"position":[[4,7],[62,7],[106,7]]},"316":{"position":[[4,7],[62,7],[104,7]]},"326":{"position":[[4,7],[62,7],[92,7]]},"332":{"position":[[4,7],[62,7],[92,7]]},"337":{"position":[[4,7],[62,7]]},"341":{"position":[[4,7],[50,7]]},"345":{"position":[[4,7],[62,7],[100,7]]},"352":{"position":[[4,7],[50,7]]},"356":{"position":[[4,7],[62,7]]},"360":{"position":[[257,7]]},"364":{"position":[[4,7],[62,7],[98,7]]}},"keywords":{}}],["instanc",{"_index":928,"title":{},"content":{"156":{"position":[[333,8]]},"166":{"position":[[548,8]]},"170":{"position":[[442,8]]},"174":{"position":[[364,8]]},"253":{"position":[[110,8]]},"280":{"position":[[72,8]]},"283":{"position":[[359,9]]},"312":{"position":[[323,10]]},"317":{"position":[[1030,9]]},"361":{"position":[[116,8]]},"518":{"position":[[807,8]]}},"keywords":{}}],["instead",{"_index":1547,"title":{},"content":{"221":{"position":[[82,7]]},"379":{"position":[[228,7]]},"399":{"position":[[27,7]]},"423":{"position":[[41,7]]},"425":{"position":[[36,7]]},"447":{"position":[[36,7]]}},"keywords":{}}],["instruct",{"_index":1061,"title":{},"content":{"164":{"position":[[150,10]]},"171":{"position":[[527,9]]}},"keywords":{}}],["instrument",{"_index":1436,"title":{},"content":{"196":{"position":[[101,12]]},"207":{"position":[[99,12]]},"286":{"position":[[83,12]]},"294":{"position":[[87,12]]},"305":{"position":[[87,12]]},"311":{"position":[[115,12]]},"317":{"position":[[111,12]]},"327":{"position":[[89,12]]},"333":{"position":[[89,12]]},"346":{"position":[[123,12]]}},"keywords":{}}],["instrumentation.support",{"_index":1173,"title":{},"content":{"168":{"position":[[267,26]]}},"keywords":{}}],["integ",{"_index":292,"title":{},"content":{"16":{"position":[[1373,10],[1431,10]]}},"keywords":{}}],["integr",{"_index":839,"title":{"144":{"position":[[0,12]]}},"content":{"144":{"position":[[0,12]]}},"keywords":{}}],["interact",{"_index":1259,"title":{},"content":{"178":{"position":[[99,8]]}},"keywords":{}}],["intern",{"_index":451,"title":{"19":{"position":[[0,8]]},"522":{"position":[[0,8]]}},"content":{"19":{"position":[[0,8],[95,9],[336,9],[635,8],[851,8]]},"196":{"position":[[319,8],[542,8]]},"199":{"position":[[589,11],[874,8]]},"207":{"position":[[315,8],[538,8]]},"214":{"position":[[630,11],[926,8]]},"253":{"position":[[94,8],[514,10]]},"286":{"position":[[269,8]]},"294":{"position":[[298,8],[521,8]]},"297":{"position":[[581,11],[871,8]]},"311":{"position":[[347,8],[570,8]]},"317":{"position":[[322,8],[536,8],[678,8]]},"320":{"position":[[598,11],[886,8]]},"327":{"position":[[278,8],[501,8]]},"330":{"position":[[582,11],[870,8]]},"333":{"position":[[381,8]]},"346":{"position":[[369,8]]},"378":{"position":[[618,9]]},"522":{"position":[[0,8],[46,8],[292,8]]}},"keywords":{}}],["internalkey",{"_index":2382,"title":{},"content":{"522":{"position":[[653,12],[925,11]]}},"keywords":{}}],["internation",{"_index":2304,"title":{},"content":{"484":{"position":[[494,20]]}},"keywords":{}}],["internet",{"_index":730,"title":{"80":{"position":[[0,8]]}},"content":{},"keywords":{}}],["into"steps"",{"_index":346,"title":{},"content":{"17":{"position":[[726,21]]}},"keywords":{}}],["intro",{"_index":175,"title":{"13":{"position":[[0,5]]},"163":{"position":[[0,6]]}},"content":{"13":{"position":[[0,5]]}},"keywords":{}}],["introduct",{"_index":190,"title":{"14":{"position":[[0,12]]}},"content":{},"keywords":{}}],["intuit",{"_index":2108,"title":{},"content":{"361":{"position":[[451,9]]}},"keywords":{}}],["invalid",{"_index":1643,"title":{},"content":{"244":{"position":[[193,8]]},"253":{"position":[[378,8]]},"265":{"position":[[86,8]]}},"keywords":{}}],["invert",{"_index":1324,"title":{},"content":{"185":{"position":[[620,8]]}},"keywords":{}}],["invoc",{"_index":14,"title":{},"content":{"0":{"position":[[210,12]]},"163":{"position":[[541,12]]},"164":{"position":[[127,10],[230,11]]},"166":{"position":[[697,10],[811,11]]},"167":{"position":[[1509,11],[1732,10],[2110,11],[2185,10],[2313,11]]},"170":{"position":[[602,10]]},"171":{"position":[[938,10]]},"181":{"position":[[365,11],[446,11],[645,10]]},"322":{"position":[[672,11],[728,10],[1129,10]]},"379":{"position":[[110,10]]}},"keywords":{}}],["invok",{"_index":961,"title":{},"content":{"159":{"position":[[140,6],[487,7]]},"229":{"position":[[65,7]]},"245":{"position":[[333,7]]},"254":{"position":[[348,7]]},"368":{"position":[[542,7]]}},"keywords":{}}],["invokewithresponsestream",{"_index":1418,"title":{"192":{"position":[[7,24]]}},"content":{},"keywords":{}}],["invokewithresponsestreamcommand",{"_index":1420,"title":{},"content":{"193":{"position":[[24,31],[157,33]]}},"keywords":{}}],["iot",{"_index":732,"title":{"80":{"position":[[19,5]]},"83":{"position":[[0,3]]}},"content":{"81":{"position":[[27,3]]},"84":{"position":[[27,3]]}},"keywords":{}}],["isbase64encod",{"_index":1702,"title":{},"content":{"254":{"position":[[675,16]]}},"keywords":{}}],["isol",{"_index":345,"title":{},"content":{"17":{"position":[[686,7]]}},"keywords":{}}],["issu",{"_index":186,"title":{},"content":{"13":{"position":[[116,7]]},"152":{"position":[[130,6]]},"189":{"position":[[1116,6]]}},"keywords":{}}],["iswarmingup",{"_index":2054,"title":{},"content":{"338":{"position":[[1,12]]},"339":{"position":[[147,11],[247,11]]}},"keywords":{}}],["it'",{"_index":307,"title":{},"content":{"16":{"position":[[1865,4]]},"19":{"position":[[52,4]]},"158":{"position":[[32,4]]},"159":{"position":[[1065,4]]},"181":{"position":[[663,4]]},"182":{"position":[[524,4],[1370,4]]},"199":{"position":[[63,4]]},"214":{"position":[[62,4]]},"253":{"position":[[788,4]]},"282":{"position":[[360,4]]},"297":{"position":[[66,4]]},"320":{"position":[[75,4]]},"330":{"position":[[53,4]]},"338":{"position":[[139,4]]},"441":{"position":[[102,4]]},"515":{"position":[[18,4],[189,4]]}},"keywords":{}}],["item",{"_index":1878,"title":{},"content":{"302":{"position":[[135,4]]},"323":{"position":[[256,5]]}},"keywords":{}}],["iter",{"_index":1798,"title":{},"content":{"281":{"position":[[34,9]]}},"keywords":{}}],["itself",{"_index":2116,"title":{},"content":{"362":{"position":[[132,6]]}},"keywords":{}}],["javascript",{"_index":1022,"title":{},"content":{"161":{"position":[[575,10]]},"221":{"position":[[119,10]]},"324":{"position":[[1002,10]]},"366":{"position":[[29,11]]}},"keywords":{}}],["jest",{"_index":1403,"title":{},"content":{"189":{"position":[[1210,4]]}},"keywords":{}}],["jmespath",{"_index":1242,"title":{},"content":{"176":{"position":[[252,8]]}},"keywords":{}}],["john",{"_index":1708,"title":{},"content":{"258":{"position":[[198,7],[573,7]]}},"keywords":{}}],["joi",{"_index":1963,"title":{},"content":{"322":{"position":[[1314,4],[1319,3]]},"324":{"position":[[269,3]]}},"keywords":{}}],["js",{"_index":2265,"title":{},"content":{"416":{"position":[[32,2]]}},"keywords":{}}],["js.map",{"_index":436,"title":{},"content":{"18":{"position":[[1370,8]]}},"keywords":{}}],["js/dist/esnext",{"_index":431,"title":{},"content":{"18":{"position":[[1283,14]]}},"keywords":{}}],["jsawardsi",{"_index":1020,"title":{},"content":{"161":{"position":[[547,10]]}},"keywords":{}}],["json",{"_index":233,"title":{"242":{"position":[[5,4]]},"308":{"position":[[0,5]]},"340":{"position":[[3,4]]},"391":{"position":[[5,4]]},"405":{"position":[[4,4]]},"411":{"position":[[3,4]]},"431":{"position":[[5,4]]},"449":{"position":[[3,4]]},"468":{"position":[[5,4]]},"486":{"position":[[3,4]]},"499":{"position":[[5,4]]},"511":{"position":[[4,4]]}},"content":{"16":{"position":[[99,4],[334,4],[1872,4]]},"18":{"position":[[595,7],[612,7],[912,7],[944,7]]},"31":{"position":[[629,4],[1270,6],[1345,6]]},"37":{"position":[[83,4]]},"43":{"position":[[629,4],[1270,6],[1345,6]]},"46":{"position":[[680,4]]},"97":{"position":[[629,4],[1270,6],[1345,6]]},"105":{"position":[[368,6],[443,6]]},"140":{"position":[[540,4]]},"150":{"position":[[641,4],[1282,6],[1357,6]]},"167":{"position":[[2415,4]]},"243":{"position":[[89,4]]},"245":{"position":[[142,4]]},"253":{"position":[[757,4]]},"281":{"position":[[523,4],[581,4],[660,4],[1155,4],[1218,4]]},"283":{"position":[[18,4],[171,4]]},"324":{"position":[[836,4],[1106,4],[1542,4]]},"330":{"position":[[40,4]]},"341":{"position":[[75,4]]},"343":{"position":[[83,4]]},"360":{"position":[[855,4],[958,4]]},"365":{"position":[[1197,4]]},"366":{"position":[[11,4],[168,4]]},"368":{"position":[[1580,4]]},"474":{"position":[[37,4]]},"515":{"position":[[42,4]]}},"keywords":{}}],["json.log",{"_index":1060,"title":{},"content":{"164":{"position":[[107,12]]}},"keywords":{}}],["json.pars",{"_index":1639,"title":{},"content":{"244":{"position":[[85,13]]},"342":{"position":[[94,13]]}},"keywords":{}}],["json.stringifi",{"_index":1424,"title":{},"content":{"193":{"position":[[231,21]]},"197":{"position":[[315,16]]},"199":{"position":[[1136,16]]},"200":{"position":[[883,16]]},"212":{"position":[[174,16]]},"214":{"position":[[1194,16]]},"226":{"position":[[669,16]]},"245":{"position":[[489,16]]},"287":{"position":[[177,16]]},"291":{"position":[[194,16]]},"295":{"position":[[190,16]]},"297":{"position":[[1143,16]]},"312":{"position":[[191,16]]},"320":{"position":[[1185,16]]},"334":{"position":[[164,16]]},"368":{"position":[[619,16]]},"506":{"position":[[151,16]]}},"keywords":{}}],["json.stringify(bodi",{"_index":677,"title":{},"content":{"31":{"position":[[2101,20]]},"43":{"position":[[2101,20]]},"46":{"position":[[2226,20]]},"97":{"position":[[2126,20]]},"150":{"position":[[2113,20]]},"270":{"position":[[244,20]]},"273":{"position":[[453,20]]},"308":{"position":[[265,20]]}},"keywords":{}}],["json.stringify(respons",{"_index":277,"title":{},"content":{"16":{"position":[[996,24]]}},"keywords":{}}],["jsonapi",{"_index":1952,"title":{},"content":{"322":{"position":[[939,8],[948,7]]}},"keywords":{}}],["jsonbodypars",{"_index":243,"title":{},"content":{"16":{"position":[[301,14]]}},"keywords":{}}],["jsonmiddi",{"_index":2011,"title":{},"content":{"324":{"position":[[1582,9]]}},"keywords":{}}],["jump",{"_index":230,"title":{},"content":{"16":{"position":[[44,4]]}},"keywords":{}}],["jwtmiddi",{"_index":2000,"title":{},"content":{"324":{"position":[[1163,8]]}},"keywords":{}}],["kafka",{"_index":734,"title":{"89":{"position":[[0,6]]},"92":{"position":[[0,6]]}},"content":{"93":{"position":[[39,5]]}},"keywords":{}}],["keep",{"_index":16,"title":{"139":{"position":[[10,4]]}},"content":{"0":{"position":[[252,4]]},"253":{"position":[[615,4],[801,4]]},"261":{"position":[[294,4]]},"324":{"position":[[643,4]]},"360":{"position":[[301,4]]}},"keywords":{}}],["key",{"_index":482,"title":{"401":{"position":[[3,3]]},"508":{"position":[[3,3]]}},"content":{"19":{"position":[[865,4],[992,4],[1340,4]]},"107":{"position":[[478,4],[568,4]]},"163":{"position":[[301,3]]},"164":{"position":[[1,3],[26,3],[302,4]]},"166":{"position":[[634,5]]},"167":{"position":[[1677,4],[1812,4],[1886,3],[1995,4],[2055,3]]},"168":{"position":[[1,3]]},"170":{"position":[[528,5]]},"171":{"position":[[646,3]]},"172":{"position":[[1,3]]},"174":{"position":[[451,5]]},"176":{"position":[[1,3],[242,3]]},"196":{"position":[[328,3],[551,3],[775,3]]},"207":{"position":[[324,3],[547,3],[770,3]]},"212":{"position":[[326,4]]},"214":{"position":[[1390,4]]},"257":{"position":[[74,3]]},"286":{"position":[[278,3],[503,3]]},"294":{"position":[[307,3],[530,3],[747,3]]},"295":{"position":[[333,4]]},"297":{"position":[[1325,4]]},"311":{"position":[[356,3],[579,3],[797,3]]},"317":{"position":[[331,3],[545,3],[687,3],[1254,3]]},"318":{"position":[[502,5]]},"320":{"position":[[648,3]]},"323":{"position":[[267,3]]},"327":{"position":[[287,3],[510,3],[780,3]]},"328":{"position":[[326,3],[951,3]]},"333":{"position":[[390,3],[608,3]]},"346":{"position":[[378,3]]},"353":{"position":[[123,4]]},"360":{"position":[[1006,3]]},"361":{"position":[[139,3],[272,5]]},"375":{"position":[[320,5],[362,5]]},"490":{"position":[[236,5]]},"519":{"position":[[90,5]]}},"keywords":{}}],["keyword",{"_index":2124,"title":{},"content":{"365":{"position":[[338,7]]},"366":{"position":[[117,9]]},"515":{"position":[[133,8],[237,7]]}},"keywords":{}}],["kinesi",{"_index":740,"title":{"98":{"position":[[0,7]]},"114":{"position":[[0,7]]}},"content":{"99":{"position":[[30,7]]},"115":{"position":[[30,7]]}},"keywords":{}}],["kms:decrypt.ssm",{"_index":2021,"title":{},"content":{"327":{"position":[[1223,15]]}},"keywords":{}}],["knex",{"_index":1958,"title":{},"content":{"322":{"position":[[1243,4]]}},"keywords":{}}],["know",{"_index":189,"title":{},"content":{"13":{"position":[[154,5]]},"55":{"position":[[104,4]]},"186":{"position":[[401,5]]},"199":{"position":[[84,4]]},"214":{"position":[[83,4]]},"297":{"position":[[87,4]]},"320":{"position":[[96,4]]},"330":{"position":[[74,4]]}},"keywords":{}}],["lambda",{"_index":13,"title":{"1":{"position":[[9,6]]},"105":{"position":[[33,7]]},"139":{"position":[[3,6]]},"162":{"position":[[19,6]]},"191":{"position":[[0,6]]},"192":{"position":[[0,6]]},"193":{"position":[[11,7]]}},"content":{"0":{"position":[[203,6]]},"15":{"position":[[79,6],[347,6]]},"16":{"position":[[612,6]]},"17":{"position":[[49,6],[1072,6]]},"21":{"position":[[1840,6]]},"25":{"position":[[11,6]]},"27":{"position":[[18,6],[81,6]]},"30":{"position":[[11,6]]},"33":{"position":[[11,6]]},"36":{"position":[[11,6]]},"39":{"position":[[11,6]]},"42":{"position":[[11,6]]},"45":{"position":[[11,6]]},"48":{"position":[[11,6]]},"51":{"position":[[7,6]]},"54":{"position":[[11,6]]},"57":{"position":[[11,6]]},"60":{"position":[[11,6]]},"63":{"position":[[11,6]]},"66":{"position":[[11,6]]},"69":{"position":[[11,6]]},"72":{"position":[[11,6]]},"75":{"position":[[11,6]]},"78":{"position":[[7,6]]},"81":{"position":[[11,6]]},"84":{"position":[[11,6]]},"87":{"position":[[11,6]]},"90":{"position":[[7,6]]},"93":{"position":[[7,6]]},"96":{"position":[[11,6]]},"99":{"position":[[11,6]]},"102":{"position":[[7,6]]},"109":{"position":[[11,6]]},"110":{"position":[[185,6]]},"112":{"position":[[11,6]]},"115":{"position":[[11,6]]},"118":{"position":[[11,6],[46,6]]},"121":{"position":[[82,6]]},"124":{"position":[[11,6]]},"125":{"position":[[194,6]]},"127":{"position":[[11,6]]},"130":{"position":[[11,6]]},"133":{"position":[[11,6]]},"136":{"position":[[17,6]]},"140":{"position":[[225,7]]},"142":{"position":[[11,6]]},"149":{"position":[[11,6]]},"153":{"position":[[712,6]]},"155":{"position":[[182,6],[253,6]]},"156":{"position":[[106,6]]},"159":{"position":[[350,6]]},"161":{"position":[[44,6],[153,8]]},"163":{"position":[[321,6],[819,6]]},"164":{"position":[[46,6],[120,6]]},"165":{"position":[[37,6]]},"166":{"position":[[690,6]]},"167":{"position":[[84,6],[570,6],[772,6],[1393,6],[1502,6],[2103,6],[2178,6],[2306,6]]},"168":{"position":[[395,6]]},"169":{"position":[[37,6]]},"170":{"position":[[595,6]]},"171":{"position":[[85,6],[931,6],[1055,6],[1185,6]]},"172":{"position":[[337,6]]},"173":{"position":[[37,6]]},"175":{"position":[[89,6],[1060,6]]},"176":{"position":[[24,6],[122,6],[398,6]]},"177":{"position":[[37,6]]},"179":{"position":[[120,6],[210,6]]},"181":{"position":[[51,6],[358,6],[439,6],[562,6]]},"182":{"position":[[845,6]]},"186":{"position":[[156,7]]},"187":{"position":[[271,6],[362,6]]},"189":{"position":[[214,6],[306,6],[348,6]]},"193":{"position":[[80,7],[94,6]]},"196":{"position":[[1075,6]]},"200":{"position":[[175,6],[408,7]]},"207":{"position":[[1070,6]]},"225":{"position":[[180,6],[378,6],[576,6],[780,6]]},"230":{"position":[[269,6]]},"240":{"position":[[1656,6]]},"241":{"position":[[202,6]]},"253":{"position":[[708,7]]},"266":{"position":[[396,6]]},"271":{"position":[[452,6]]},"277":{"position":[[255,6]]},"280":{"position":[[285,6]]},"286":{"position":[[803,6]]},"290":{"position":[[127,6]]},"294":{"position":[[1047,6]]},"302":{"position":[[153,6]]},"311":{"position":[[1097,6]]},"317":{"position":[[1550,6]]},"322":{"position":[[6,6],[110,6],[513,6],[721,6],[1115,6]]},"323":{"position":[[5,6],[64,6],[286,6],[650,6]]},"324":{"position":[[515,6],[653,7],[1026,6]]},"327":{"position":[[1080,6]]},"333":{"position":[[908,6]]},"346":{"position":[[704,6]]},"360":{"position":[[311,6]]},"362":{"position":[[117,6]]},"365":{"position":[[135,6],[288,6],[550,6]]},"378":{"position":[[551,6],[736,6]]},"406":{"position":[[94,6]]},"516":{"position":[[64,7]]},"520":{"position":[[23,6],[346,6]]},"521":{"position":[[81,6],[220,7]]}},"keywords":{}}],["lambda'",{"_index":1791,"title":{},"content":{"280":{"position":[[30,8]]},"302":{"position":[[57,8]]}},"keywords":{}}],["lambda.send",{"_index":1422,"title":{},"content":{"193":{"position":[[140,12]]}},"keywords":{}}],["lambda:writegetobjectrespons",{"_index":1889,"title":{},"content":{"305":{"position":[[826,29]]}},"keywords":{}}],["lambda@edg",{"_index":721,"title":{"53":{"position":[[11,11]]}},"content":{"54":{"position":[[34,11]]}},"keywords":{}}],["lambda_proxi",{"_index":1997,"title":{},"content":{"324":{"position":[[1074,12]]}},"keywords":{}}],["lambdacli",{"_index":1419,"title":{},"content":{"193":{"position":[[10,13],[107,14]]}},"keywords":{}}],["lambdahand",{"_index":1604,"title":{},"content":{"233":{"position":[[102,12]]}},"keywords":{}}],["lambdahandl",{"_index":255,"title":{},"content":{"16":{"position":[[625,13]]},"19":{"position":[[258,13]]},"157":{"position":[[174,13],[652,13]]},"159":{"position":[[1362,13]]},"167":{"position":[[182,13]]},"171":{"position":[[329,13]]},"175":{"position":[[211,13]]},"191":{"position":[[95,13]]},"192":{"position":[[95,13]]},"199":{"position":[[1050,13]]},"204":{"position":[[107,13]]},"211":{"position":[[120,13]]},"212":{"position":[[78,13]]},"218":{"position":[[85,13]]},"222":{"position":[[93,13]]},"226":{"position":[[230,13]]},"230":{"position":[[96,13]]},"237":{"position":[[104,13]]},"240":{"position":[[1468,13]]},"241":{"position":[[75,13]]},"245":{"position":[[166,13]]},"250":{"position":[[265,13]]},"254":{"position":[[176,13]]},"258":{"position":[[102,13]]},"262":{"position":[[102,13]]},"266":{"position":[[176,13]]},"273":{"position":[[108,13]]},"287":{"position":[[81,13]]},"291":{"position":[[98,13],[481,13]]},"295":{"position":[[66,13]]},"301":{"position":[[95,13]]},"307":{"position":[[120,13]]},"308":{"position":[[120,13]]},"312":{"position":[[95,13]]},"318":{"position":[[91,13]]},"320":{"position":[[1061,13]]},"328":{"position":[[68,13],[610,13]]},"330":{"position":[[1068,13]]},"334":{"position":[[68,13]]},"339":{"position":[[84,13]]},"343":{"position":[[161,13]]},"349":{"position":[[83,13]]},"353":{"position":[[320,13],[523,13]]},"357":{"position":[[552,13],[755,13]]},"368":{"position":[[172,13],[937,13],[1706,13]]},"369":{"position":[[788,13]]},"370":{"position":[[248,13]]},"371":{"position":[[317,13]]},"378":{"position":[[476,13]]},"490":{"position":[[1051,13]]},"518":{"position":[[453,13]]},"520":{"position":[[500,13]]}},"keywords":{}}],["lambdatransform",{"_index":792,"title":{},"content":{"121":{"position":[[40,18]]}},"keywords":{}}],["land",{"_index":364,"title":{},"content":{"17":{"position":[[1168,5]]}},"keywords":{}}],["langaug",{"_index":2307,"title":{},"content":{"484":{"position":[[1135,10]]}},"keywords":{}}],["languag",{"_index":1561,"title":{},"content":{"225":{"position":[[459,9],[549,9],[966,9]]},"281":{"position":[[229,8]]},"365":{"position":[[686,8],[711,8]]},"367":{"position":[[144,8]]},"369":{"position":[[903,10]]},"370":{"position":[[503,10]]},"371":{"position":[[462,10]]},"386":{"position":[[59,8]]},"484":{"position":[[293,9]]},"515":{"position":[[386,9]]}},"keywords":{}}],["larg",{"_index":2333,"title":{},"content":{"515":{"position":[[202,5]]},"520":{"position":[[427,5]]}},"keywords":{}}],["last",{"_index":1327,"title":{},"content":{"185":{"position":[[764,4]]},"200":{"position":[[1041,4],[1115,5]]}},"keywords":{}}],["lastchangedd",{"_index":1909,"title":{},"content":{"317":{"position":[[928,16]]}},"keywords":{}}],["lastnam",{"_index":1709,"title":{},"content":{"258":{"position":[[206,9],[581,9]]}},"keywords":{}}],["lastrotationd",{"_index":1908,"title":{},"content":{"317":{"position":[[908,16]]}},"keywords":{}}],["latenc",{"_index":1234,"title":{},"content":{"175":{"position":[[1076,8]]}},"keywords":{}}],["latency.cr",{"_index":1204,"title":{},"content":{"172":{"position":[[353,16]]}},"keywords":{}}],["later",{"_index":583,"title":{},"content":{"21":{"position":[[2205,5]]},"353":{"position":[[374,5]]},"357":{"position":[[606,5]]},"378":{"position":[[431,5]]}},"keywords":{}}],["lattic",{"_index":845,"title":{"148":{"position":[[4,7]]}},"content":{"149":{"position":[[34,7]]}},"keywords":{}}],["le",{"_index":1580,"title":{},"content":{"226":{"position":[[402,2]]}},"keywords":{}}],["leak",{"_index":1406,"title":{},"content":{"189":{"position":[[1382,7],[1461,6]]}},"keywords":{}}],["learn",{"_index":1208,"title":{},"content":{"172":{"position":[[585,5]]}},"keywords":{}}],["left",{"_index":597,"title":{},"content":{"21":{"position":[[2542,4]]}},"keywords":{}}],["legaci",{"_index":2049,"title":{},"content":{"333":{"position":[[998,6]]}},"keywords":{}}],["legal",{"_index":60,"title":{},"content":{"5":{"position":[[302,5]]}},"keywords":{}}],["lesslog",{"_index":1947,"title":{},"content":{"322":{"position":[[852,8],[876,8],[982,8],[1006,8]]},"324":{"position":[[1592,8],[1616,8]]}},"keywords":{}}],["let",{"_index":1771,"title":{},"content":{"272":{"position":[[326,4]]},"324":{"position":[[979,4]]}},"keywords":{}}],["let'",{"_index":229,"title":{},"content":{"16":{"position":[[38,5],[67,5],[1691,5]]},"518":{"position":[[354,5]]}},"keywords":{}}],["level",{"_index":963,"title":{},"content":{"159":{"position":[[357,6]]},"166":{"position":[[107,5]]},"167":{"position":[[1718,6],[1743,6],[1772,6]]},"248":{"position":[[422,6],[491,5]]},"322":{"position":[[271,5],[342,6]]},"323":{"position":[[439,5]]}},"keywords":{}}],["leverag",{"_index":1466,"title":{},"content":{"199":{"position":[[236,10]]},"214":{"position":[[270,10]]},"297":{"position":[[239,10]]},"320":{"position":[[245,10]]},"330":{"position":[[236,10]]}},"keywords":{}}],["lex",{"_index":788,"title":{"117":{"position":[[0,3]]}},"content":{"118":{"position":[[74,3]]}},"keywords":{}}],["lexus",{"_index":789,"title":{},"content":{"118":{"position":[[30,8]]}},"keywords":{}}],["librari",{"_index":1934,"title":{},"content":{"322":{"position":[[77,9]]}},"keywords":{}}],["licens",{"_index":448,"title":{},"content":{"18":{"position":[[1526,7]]}},"keywords":{}}],["life",{"_index":1492,"title":{},"content":{"200":{"position":[[815,5]]}},"keywords":{}}],["lifev6",{"_index":1357,"title":{},"content":{"187":{"position":[[444,6]]}},"keywords":{}}],["likewis",{"_index":1299,"title":{},"content":{"182":{"position":[[476,9]]}},"keywords":{}}],["limit",{"_index":2023,"title":{},"content":{"327":{"position":[[1254,12]]}},"keywords":{}}],["link",{"_index":1305,"title":{},"content":{"182":{"position":[[728,6]]}},"keywords":{}}],["list",{"_index":1461,"title":{},"content":{"198":{"position":[[66,5]]},"213":{"position":[[65,5]]},"225":{"position":[[146,4],[343,4],[541,4],[743,4]]},"240":{"position":[[800,4]]},"288":{"position":[[60,5]]},"296":{"position":[[59,5]]},"313":{"position":[[73,5]]},"314":{"position":[[59,5]]},"319":{"position":[[72,5]]},"329":{"position":[[60,5]]},"335":{"position":[[60,5]]},"350":{"position":[[80,5]]},"360":{"position":[[346,4]]},"521":{"position":[[1084,4]]}},"keywords":{}}],["lmammino2020",{"_index":1002,"title":{},"content":{"161":{"position":[[356,13]]}},"keywords":{}}],["lmammino2022",{"_index":1011,"title":{},"content":{"161":{"position":[[472,13]]}},"keywords":{}}],["load",{"_index":701,"title":{"44":{"position":[[12,4]]}},"content":{"45":{"position":[[38,4]]}},"keywords":{}}],["local",{"_index":2130,"title":{},"content":{"365":{"position":[[769,12],[1111,7]]},"367":{"position":[[25,12]]},"369":{"position":[[471,6],[527,6],[534,9],[595,6]]},"484":{"position":[[276,13],[948,13],[1118,13]]}},"keywords":{}}],["locale=$(basenam",{"_index":2170,"title":{},"content":{"369":{"position":[[483,17]]}},"keywords":{}}],["lock.json",{"_index":437,"title":{},"content":{"18":{"position":[[1387,9]]}},"keywords":{}}],["log",{"_index":539,"title":{"50":{"position":[[12,4]]}},"content":{"21":{"position":[[1248,3]]},"51":{"position":[[30,4]]},"163":{"position":[[252,7]]},"164":{"position":[[89,7],[200,4],[246,3],[321,4],[366,3],[417,4],[473,7]]},"166":{"position":[[103,3],[294,3],[430,8],[463,9],[682,3]]},"167":{"position":[[260,3],[435,4],[881,3],[1178,3],[1326,3],[1600,4],[1689,3],[1768,3],[1849,3],[2020,3],[2170,3],[2371,3],[2395,4],[2491,4]]},"170":{"position":[[142,3]]},"174":{"position":[[142,3]]},"181":{"position":[[406,3]]},"200":{"position":[[791,3]]},"217":{"position":[[111,7]]},"229":{"position":[[40,7],[153,7]]},"280":{"position":[[201,4],[233,4]]},"290":{"position":[[40,7],[287,6],[366,4]]},"322":{"position":[[221,4],[247,7],[292,7],[353,3],[918,7],[1048,7]]},"323":{"position":[[103,8],[204,7],[252,3]]},"324":{"position":[[198,4],[1658,7]]},"506":{"position":[[18,4]]},"520":{"position":[[204,3]]}},"keywords":{}}],["logev",{"_index":1092,"title":{},"content":{"166":{"position":[[640,8]]},"181":{"position":[[835,9]]},"182":{"position":[[1791,9]]}},"keywords":{}}],["logger",{"_index":495,"title":{"164":{"position":[[0,7]]},"215":{"position":[[6,6]]},"278":{"position":[[13,6]]},"383":{"position":[[6,7]]},"399":{"position":[[13,7]]},"423":{"position":[[6,7]]},"439":{"position":[[13,7]]},"460":{"position":[[6,7]]},"476":{"position":[[13,7]]},"506":{"position":[[13,7]]}},"content":{"21":{"position":[[21,7],[105,7]]},"22":{"position":[[65,7],[136,6]]},"31":{"position":[[81,7],[150,7]]},"43":{"position":[[81,7],[150,7]]},"46":{"position":[[132,7],[201,7]]},"97":{"position":[[81,7],[150,7]]},"105":{"position":[[149,7],[218,7]]},"150":{"position":[[81,7],[150,7]]},"163":{"position":[[232,6]]},"166":{"position":[[517,6],[524,8],[564,6],[787,6]]},"167":{"position":[[43,7],[117,6],[130,8],[1251,6],[1627,6],[2160,6],[2334,6]]},"181":{"position":[[250,6],[385,6]]},"216":{"position":[[90,6]]},"217":{"position":[[1,6]]},"218":{"position":[[71,7]]},"229":{"position":[[1,6]]},"280":{"position":[[193,7],[225,7]]},"289":{"position":[[97,6]]},"290":{"position":[[1,6]]},"291":{"position":[[84,7],[421,7],[459,6],[604,7]]},"300":{"position":[[1,6]]},"322":{"position":[[188,7]]},"323":{"position":[[185,7]]},"324":{"position":[[122,7]]},"423":{"position":[[8,6]]}},"keywords":{}}],["logger(id",{"_index":505,"title":{},"content":{"21":{"position":[[279,10]]},"22":{"position":[[280,10]]}},"keywords":{}}],["logger.child(request.context",{"_index":1858,"title":{},"content":{"291":{"position":[[644,29]]}},"keywords":{}}],["logger.info('thi",{"_index":1103,"title":{},"content":{"167":{"position":[[231,17]]}},"keywords":{}}],["loggeromitpath",{"_index":1845,"title":{},"content":{"290":{"position":[[156,15]]}},"keywords":{}}],["logic",{"_index":210,"title":{},"content":{"15":{"position":[[333,5],[527,6]]},"16":{"position":[[1084,5]]},"17":{"position":[[153,6],[277,6],[435,5],[780,5],[958,5]]},"156":{"position":[[182,5]]},"157":{"position":[[232,5],[710,5]]},"217":{"position":[[119,6]]},"218":{"position":[[142,5]]},"301":{"position":[[236,5]]},"518":{"position":[[321,5]]},"521":{"position":[[499,5],[658,5]]}},"keywords":{}}],["loglevel",{"_index":1076,"title":{},"content":{"166":{"position":[[75,8]]}},"keywords":{}}],["logmetr",{"_index":1216,"title":{},"content":{"175":{"position":[[65,10]]}},"keywords":{}}],["long",{"_index":607,"title":{},"content":{"21":{"position":[[2808,4]]},"183":{"position":[[102,4]]},"187":{"position":[[315,4]]},"196":{"position":[[887,4]]},"207":{"position":[[882,4]]},"286":{"position":[[615,4]]},"294":{"position":[[859,4]]},"311":{"position":[[909,4]]},"317":{"position":[[1366,4]]},"327":{"position":[[892,4]]},"333":{"position":[[720,4]]}},"keywords":{}}],["longer",{"_index":1379,"title":{},"content":{"187":{"position":[[831,6]]},"362":{"position":[[25,6]]},"388":{"position":[[4,6]]},"389":{"position":[[32,6]]},"406":{"position":[[151,6]]},"416":{"position":[[10,6]]},"429":{"position":[[9,6]]},"447":{"position":[[98,6]]},"496":{"position":[[86,6]]},"503":{"position":[[4,6]]}},"keywords":{}}],["look",{"_index":567,"title":{},"content":{"21":{"position":[[1883,5],[1970,4],[2736,6]]},"152":{"position":[[221,4]]},"490":{"position":[[929,4]]}},"keywords":{}}],["loop",{"_index":807,"title":{"208":{"position":[[28,4]]},"382":{"position":[[28,5]]},"422":{"position":[[28,5]]},"459":{"position":[[28,5]]},"492":{"position":[[28,5]]}},"content":{"139":{"position":[[19,4],[152,5]]},"209":{"position":[[112,4]]},"211":{"position":[[108,5]]},"280":{"position":[[128,5]]},"322":{"position":[[406,4]]},"444":{"position":[[85,5]]}},"keywords":{}}],["loophttpcontentnegoti",{"_index":2092,"title":{},"content":{"360":{"position":[[591,26]]}},"keywords":{}}],["lose",{"_index":1303,"title":{},"content":{"182":{"position":[[671,6]]}},"keywords":{}}],["lot",{"_index":580,"title":{},"content":{"21":{"position":[[2155,3]]},"484":{"position":[[13,3]]}},"keywords":{}}],["low",{"_index":2191,"title":{},"content":{"375":{"position":[[33,3]]},"491":{"position":[[33,3]]}},"keywords":{}}],["lower",{"_index":1664,"title":{},"content":{"248":{"position":[[465,5]]}},"keywords":{}}],["lowercas",{"_index":1612,"title":{},"content":{"236":{"position":[[121,9]]},"361":{"position":[[235,9],[580,9]]},"390":{"position":[[41,9]]}},"keywords":{}}],["ls0tls0tv2vis2l0rm9ybujvdw5kyxj5chbzuuv3zjjcvkplq2uwtq0kq29udgvudc1eaxnwb3npdglvbjogzm9ybs1kyxrhoybuyw1lpsjmb28idqoncmjhcg0kls0tls0tv2vis2l0rm9ybujvdw5kyxj5chbzuuv3zjjcvkplq2uwts0t",{"_index":1701,"title":{},"content":{"254":{"position":[[491,183]]}},"keywords":{}}],["lt",{"_index":1354,"title":{},"content":{"187":{"position":[[333,5]]}},"keywords":{}}],["lt;message>${body}</message>",{"_index":1762,"title":{},"content":{"270":{"position":[[138,41]]},"273":{"position":[[348,40]]}},"keywords":{}}],["lt;message>${message}</message>",{"_index":1584,"title":{},"content":{"226":{"position":[[522,43]]}},"keywords":{}}],["lt;message>hello",{"_index":1782,"title":{},"content":{"273":{"position":[[763,21]]}},"keywords":{}}],["lysé",{"_index":1718,"title":{},"content":{"258":{"position":[[286,9]]}},"keywords":{}}],["made",{"_index":1037,"title":{},"content":{"163":{"position":[[260,4]]},"171":{"position":[[1173,4],[1444,4]]},"323":{"position":[[212,4]]}},"keywords":{}}],["magic",{"_index":581,"title":{},"content":{"21":{"position":[[2162,5]]}},"keywords":{}}],["main",{"_index":223,"title":{},"content":{"15":{"position":[[513,4]]},"17":{"position":[[12,4],[766,4],[944,4]]},"333":{"position":[[1077,4]]}},"keywords":{}}],["maintain",{"_index":339,"title":{},"content":{"17":{"position":[[502,9],[1011,9]]},"394":{"position":[[57,15]]},"520":{"position":[[117,9]]}},"keywords":{}}],["mainten",{"_index":1311,"title":{},"content":{"183":{"position":[[112,12]]},"187":{"position":[[152,11],[838,11]]}},"keywords":{}}],["major",{"_index":1340,"title":{},"content":{"187":{"position":[[19,5]]},"244":{"position":[[247,5]]},"253":{"position":[[432,5]]},"265":{"position":[[140,5]]}},"keywords":{}}],["make",{"_index":336,"title":{},"content":{"17":{"position":[[464,6]]},"140":{"position":[[81,4]]},"144":{"position":[[80,4]]},"145":{"position":[[72,4]]},"146":{"position":[[88,4]]},"147":{"position":[[84,4]]},"151":{"position":[[105,4]]},"152":{"position":[[201,4]]},"155":{"position":[[133,4]]},"161":{"position":[[225,6]]},"163":{"position":[[809,4]]},"171":{"position":[[1232,5]]},"176":{"position":[[712,5]]},"182":{"position":[[247,4],[361,4]]},"188":{"position":[[77,4]]},"189":{"position":[[75,4],[1015,4]]},"200":{"position":[[1189,5]]},"322":{"position":[[92,4]]},"323":{"position":[[86,5]]},"361":{"position":[[499,4]]},"484":{"position":[[30,6]]},"490":{"position":[[37,4]]}},"keywords":{}}],["makehandleridempot",{"_index":1266,"title":{},"content":{"179":{"position":[[85,21],[755,23]]}},"keywords":{}}],["male",{"_index":1712,"title":{},"content":{"258":{"position":[[231,7]]}},"keywords":{}}],["manag",{"_index":102,"title":{"89":{"position":[[7,7]]},"92":{"position":[[12,7]]},"132":{"position":[[8,7]]},"315":{"position":[[8,7]]},"403":{"position":[[8,8]]},"442":{"position":[[8,8]]},"479":{"position":[[8,8]]},"491":{"position":[[3,8]]},"510":{"position":[[8,8]]}},"content":{"6":{"position":[[664,7]]},"8":{"position":[[871,7]]},"93":{"position":[[24,7]]},"106":{"position":[[180,8]]},"133":{"position":[[31,7]]},"153":{"position":[[689,7]]},"171":{"position":[[174,9]]},"200":{"position":[[250,8],[334,8]]},"283":{"position":[[261,8],[459,7]]},"316":{"position":[[92,7],[147,7]]},"317":{"position":[[1238,9]]},"318":{"position":[[76,8],[410,7]]},"319":{"position":[[49,7]]},"320":{"position":[[1046,8]]},"323":{"position":[[517,7],[554,8]]},"324":{"position":[[1411,10]]},"507":{"position":[[100,8]]}},"keywords":{}}],["manager.awsclientopt",{"_index":1903,"title":{},"content":{"317":{"position":[[177,24]]}},"keywords":{}}],["manager.servic",{"_index":1830,"title":{},"content":{"283":{"position":[[306,15]]}},"keywords":{}}],["managerssm",{"_index":2101,"title":{},"content":{"360":{"position":[[1056,10]]}},"keywords":{}}],["manipul",{"_index":1767,"title":{},"content":{"271":{"position":[[397,10]]}},"keywords":{}}],["manual",{"_index":1172,"title":{},"content":{"168":{"position":[[260,6]]}},"keywords":{}}],["map",{"_index":483,"title":{},"content":{"19":{"position":[[883,3],[1009,3]]},"171":{"position":[[1386,4]]},"196":{"position":[[531,7]]},"207":{"position":[[527,7]]},"286":{"position":[[258,7]]},"294":{"position":[[510,7]]},"311":{"position":[[559,7]]},"317":{"position":[[525,7],[667,7]]},"327":{"position":[[490,7]]},"333":{"position":[[370,7]]}},"keywords":{}}],["mask",{"_index":2245,"title":{},"content":{"399":{"position":[[22,4]]}},"keywords":{}}],["mask/bin",{"_index":395,"title":{},"content":{"18":{"position":[[603,8]]}},"keywords":{}}],["mask/build",{"_index":396,"title":{},"content":{"18":{"position":[[620,10]]}},"keywords":{}}],["match",{"_index":1290,"title":{},"content":{"181":{"position":[[526,7]]},"240":{"position":[[780,7]]},"271":{"position":[[8,8]]},"272":{"position":[[493,8]]},"305":{"position":[[524,5]]},"357":{"position":[[169,5]]},"378":{"position":[[44,5]]},"417":{"position":[[87,5]]}},"keywords":{}}],["max",{"_index":1200,"title":{},"content":{"172":{"position":[[185,3],[201,3]]},"240":{"position":[[988,3]]}},"keywords":{}}],["maximum",{"_index":295,"title":{},"content":{"16":{"position":[[1396,8],[1457,8]]}},"keywords":{}}],["maxlength",{"_index":289,"title":{},"content":{"16":{"position":[[1318,10],[1511,10]]}},"keywords":{}}],["maxretri",{"_index":2025,"title":{},"content":{"327":{"position":[[1318,10]]}},"keywords":{}}],["md",{"_index":449,"title":{},"content":{"18":{"position":[[1534,4]]}},"keywords":{}}],["mean",{"_index":1249,"title":{},"content":{"176":{"position":[[469,5]]},"200":{"position":[[1062,5]]},"210":{"position":[[111,7]]}},"keywords":{}}],["media",{"_index":1564,"title":{},"content":{"225":{"position":[[658,5],[751,5]]},"281":{"position":[[242,5]]}},"keywords":{}}],["meet",{"_index":2164,"title":{},"content":{"369":{"position":[[128,4]]}},"keywords":{}}],["memori",{"_index":609,"title":{"22":{"position":[[0,7]]}},"content":{"253":{"position":[[667,7],[765,6]]}},"keywords":{}}],["memoryplugin",{"_index":612,"title":{},"content":{"22":{"position":[[93,12]]}},"keywords":{}}],["memwatch",{"_index":610,"title":{},"content":{"22":{"position":[[8,8],[36,9]]}},"keywords":{}}],["memwatch.heapdiff",{"_index":613,"title":{},"content":{"22":{"position":[[232,19]]}},"keywords":{}}],["messag",{"_index":272,"title":{"371":{"position":[[41,9]]}},"content":{"16":{"position":[[923,8]]},"179":{"position":[[643,8]]},"189":{"position":[[1189,7]]},"197":{"position":[[332,8]]},"199":{"position":[[1153,8]]},"200":{"position":[[900,8]]},"212":{"position":[[191,8]]},"214":{"position":[[1211,8]]},"226":{"position":[[275,8],[340,7],[383,7],[427,7],[619,11],[686,7],[719,7]]},"229":{"position":[[286,7]]},"281":{"position":[[1223,7],[1248,7]]},"287":{"position":[[194,8]]},"291":{"position":[[211,8]]},"295":{"position":[[207,8]]},"297":{"position":[[1160,8]]},"301":{"position":[[217,7]]},"312":{"position":[[208,8]]},"320":{"position":[[1202,8]]},"334":{"position":[[181,8]]},"348":{"position":[[138,9]]},"349":{"position":[[160,9]]},"366":{"position":[[358,9]]},"367":{"position":[[108,8]]},"406":{"position":[[180,7]]},"444":{"position":[[45,8]]},"484":{"position":[[524,8]]},"515":{"position":[[364,8]]}},"keywords":{}}],["metadata",{"_index":1180,"title":{},"content":{"170":{"position":[[339,9],[631,9]]},"171":{"position":[[979,9]]}},"keywords":{}}],["metadata.automat",{"_index":1167,"title":{},"content":{"168":{"position":[[111,22]]}},"keywords":{}}],["method",{"_index":708,"title":{},"content":{"46":{"position":[[1363,7],[1423,7]]},"182":{"position":[[389,6],[570,6]]},"200":{"position":[[1108,6]]},"240":{"position":[[427,7],[1192,7]]},"322":{"position":[[255,8],[300,6]]},"357":{"position":[[77,6],[182,6]]},"358":{"position":[[465,7],[525,7]]},"378":{"position":[[930,6]]}},"keywords":{}}],["methods/modul",{"_index":1954,"title":{},"content":{"322":{"position":[[1155,15]]}},"keywords":{}}],["methodsexposeheadersrequestheadersrequestmethod",{"_index":2321,"title":{},"content":{"495":{"position":[[44,48]]}},"keywords":{}}],["metric",{"_index":746,"title":{"172":{"position":[[0,8]]},"201":{"position":[[11,7]]},"381":{"position":[[11,8]]},"421":{"position":[[11,8]]},"458":{"position":[[11,8]]}},"content":{"105":{"position":[[92,8]]},"163":{"position":[[639,7],[734,7]]},"172":{"position":[[38,7],[99,7],[122,6],[164,6],[380,6],[565,7],[651,8]]},"174":{"position":[[248,8],[332,7],[340,8],[380,7],[531,7],[648,7]]},"175":{"position":[[43,8],[123,7],[137,9],[1090,7],[1131,7],[1162,8],[1241,7],[1297,6]]},"182":{"position":[[507,7],[589,7],[618,7]]},"202":{"position":[[95,7]]},"203":{"position":[[57,8],[111,7],[352,7],[443,7]]},"204":{"position":[[91,9]]},"280":{"position":[[12,8]]},"323":{"position":[[128,7],[316,7],[371,6]]}},"keywords":{}}],["metricloggerdo",{"_index":1793,"title":{},"content":{"280":{"position":[[88,14]]}},"keywords":{}}],["metrics).metr",{"_index":1202,"title":{},"content":{"172":{"position":[[205,16]]}},"keywords":{}}],["metrics.addmetric('successfulbook",{"_index":1219,"title":{},"content":{"175":{"position":[[299,38]]}},"keywords":{}}],["metricunit",{"_index":1215,"title":{},"content":{"175":{"position":[[52,12]]}},"keywords":{}}],["metricunits.count",{"_index":1220,"title":{},"content":{"175":{"position":[[338,18]]}},"keywords":{}}],["middi",{"_index":191,"title":{"15":{"position":[[8,6]]},"161":{"position":[[19,6]]}},"content":{"15":{"position":[[1,5],[213,5]]},"16":{"position":[[164,5],[214,5],[1802,7]]},"17":{"position":[[1110,6]]},"19":{"position":[[17,5],[187,5]]},"21":{"position":[[2714,5]]},"26":{"position":[[8,5],[56,7]]},"28":{"position":[[8,5]]},"31":{"position":[[8,5],[1377,7]]},"34":{"position":[[8,5]]},"37":{"position":[[8,5],[605,7]]},"40":{"position":[[8,5],[56,7]]},"43":{"position":[[8,5],[1377,7]]},"46":{"position":[[8,5],[1502,7]]},"49":{"position":[[8,5],[56,7]]},"52":{"position":[[8,5],[120,7]]},"55":{"position":[[8,5],[56,7]]},"58":{"position":[[8,5],[56,7]]},"61":{"position":[[8,5],[120,7]]},"64":{"position":[[8,5],[120,7]]},"67":{"position":[[8,5],[120,7]]},"70":{"position":[[8,5],[56,7]]},"73":{"position":[[8,5],[56,7]]},"76":{"position":[[8,5]]},"79":{"position":[[8,5],[56,7]]},"82":{"position":[[8,5],[56,7]]},"85":{"position":[[8,5],[56,7]]},"88":{"position":[[8,5]]},"91":{"position":[[8,5],[120,7]]},"94":{"position":[[8,5],[120,7]]},"97":{"position":[[8,5],[1377,7]]},"100":{"position":[[8,5],[120,7]]},"103":{"position":[[8,5],[120,7]]},"105":{"position":[[8,5],[468,7]]},"106":{"position":[[8,5],[290,7]]},"107":{"position":[[8,5],[274,7]]},"110":{"position":[[8,5],[120,7]]},"113":{"position":[[8,5],[120,7]]},"116":{"position":[[8,5],[120,7]]},"119":{"position":[[8,5],[56,7]]},"122":{"position":[[8,5],[196,7]]},"125":{"position":[[8,5],[120,7]]},"128":{"position":[[8,5],[56,7]]},"131":{"position":[[8,5],[120,7]]},"134":{"position":[[8,5],[56,7]]},"137":{"position":[[8,5],[56,7]]},"140":{"position":[[151,5]]},"143":{"position":[[8,5],[190,7]]},"150":{"position":[[8,5],[1389,7]]},"155":{"position":[[12,6]]},"156":{"position":[[44,5],[204,5],[275,7]]},"157":{"position":[[8,5],[266,7],[486,5],[744,7]]},"158":{"position":[[6,5]]},"159":{"position":[[1438,7]]},"161":{"position":[[1,5]]},"163":{"position":[[224,6]]},"167":{"position":[[8,5]]},"171":{"position":[[8,5]]},"175":{"position":[[8,5]]},"179":{"position":[[8,5],[510,6]]},"181":{"position":[[735,8]]},"183":{"position":[[14,5]]},"186":{"position":[[10,5],[170,5]]},"187":{"position":[[860,6]]},"189":{"position":[[144,5],[377,5],[776,5],[923,5]]},"191":{"position":[[8,5],[277,7]]},"192":{"position":[[8,5],[209,7]]},"197":{"position":[[8,5],[90,7]]},"199":{"position":[[960,5],[1207,7]]},"200":{"position":[[20,5],[147,5],[266,5]]},"204":{"position":[[7,5],[324,7]]},"211":{"position":[[8,5],[196,7]]},"212":{"position":[[8,5],[260,7]]},"214":{"position":[[1011,5]]},"218":{"position":[[8,5]]},"222":{"position":[[8,5]]},"226":{"position":[[8,5],[787,7]]},"230":{"position":[[8,5]]},"233":{"position":[[8,5]]},"237":{"position":[[8,5],[180,7]]},"240":{"position":[[1344,5],[1578,7]]},"241":{"position":[[8,5]]},"245":{"position":[[8,5],[242,7]]},"249":{"position":[[8,5],[226,7]]},"250":{"position":[[8,5],[395,7]]},"254":{"position":[[8,5],[252,7]]},"258":{"position":[[8,5]]},"262":{"position":[[8,5]]},"266":{"position":[[8,5],[295,7]]},"273":{"position":[[8,5],[234,7]]},"277":{"position":[[8,5]]},"287":{"position":[[8,5],[263,7]]},"291":{"position":[[8,5],[345,5],[570,7]]},"295":{"position":[[8,5],[276,7]]},"297":{"position":[[950,5]]},"301":{"position":[[8,5]]},"307":{"position":[[32,5]]},"308":{"position":[[32,5]]},"312":{"position":[[8,5],[277,7]]},"318":{"position":[[8,5],[167,7]]},"320":{"position":[[966,5],[1271,7]]},"322":{"position":[[846,5]]},"324":{"position":[[1,5],[454,5],[622,5],[1430,5]]},"328":{"position":[[8,5],[168,7],[508,5],[710,7]]},"330":{"position":[[952,5],[1168,7]]},"334":{"position":[[8,5],[250,7]]},"339":{"position":[[7,5],[225,7]]},"343":{"position":[[8,5],[244,7]]},"348":{"position":[[8,5]]},"349":{"position":[[8,5],[197,7]]},"354":{"position":[[8,5],[208,7],[347,7],[612,7]]},"358":{"position":[[8,5],[154,7],[310,7],[604,7]]},"360":{"position":[[16,5],[89,6]]},"361":{"position":[[4,5],[167,5],[488,5],[620,5]]},"362":{"position":[[16,5],[286,5]]},"368":{"position":[[39,5],[447,7],[804,5],[1180,7],[1511,5],[2067,7]]},"369":{"position":[[622,5],[864,7]]},"370":{"position":[[52,5],[434,7]]},"371":{"position":[[52,5],[393,7]]},"378":{"position":[[90,8]]},"416":{"position":[[1,5]]},"454":{"position":[[1,5]]},"484":{"position":[[754,10],[1023,10]]},"490":{"position":[[969,5],[1145,7]]},"491":{"position":[[62,5]]},"518":{"position":[[422,5],[531,7],[801,5]]},"520":{"position":[[84,6],[111,5],[469,5],[632,7]]},"521":{"position":[[130,5],[729,5]]}},"keywords":{}}],["middlewar",{"_index":194,"title":{"105":{"position":[[0,11]]},"279":{"position":[[9,11]]},"321":{"position":[[12,11]]},"374":{"position":[[0,11]]},"380":{"position":[[0,11]]},"419":{"position":[[0,11]]},"457":{"position":[[0,11]]},"490":{"position":[[13,11]]},"518":{"position":[[7,11]]},"519":{"position":[[7,11]]}},"content":{"15":{"position":[[24,10],[272,10]]},"16":{"position":[[282,11],[726,10],[1170,11],[1761,11]]},"17":{"position":[[631,10],[792,10],[1125,10]]},"19":{"position":[[63,11]]},"21":{"position":[[1913,10],[2065,12],[2260,10],[2444,11],[2626,10],[2778,12]]},"153":{"position":[[161,11],[271,10],[379,11],[398,10],[508,11],[612,11],[678,10]]},"156":{"position":[[222,11],[408,11],[444,11]]},"157":{"position":[[382,10],[408,12],[448,11],[857,11],[985,10]]},"158":{"position":[[121,11],[195,11],[418,10],[487,11]]},"159":{"position":[[18,11],[171,11],[240,11],[372,11],[631,11],[791,10]]},"163":{"position":[[279,10],[485,10],[669,10],[795,10]]},"166":{"position":[[474,10]]},"168":{"position":[[244,11]]},"170":{"position":[[368,10]]},"174":{"position":[[289,10]]},"178":{"position":[[1,10]]},"181":{"position":[[94,11],[187,10],[216,10],[271,12],[312,10],[698,12]]},"182":{"position":[[48,11],[181,10],[1021,10]]},"185":{"position":[[1,11],[346,11],[592,11]]},"186":{"position":[[80,11]]},"189":{"position":[[275,10]]},"195":{"position":[[17,10]]},"200":{"position":[[730,11],[1015,10],[1153,11],[1220,12],[1330,11],[1463,11]]},"202":{"position":[[17,10]]},"206":{"position":[[17,10]]},"209":{"position":[[17,10]]},"210":{"position":[[16,10]]},"216":{"position":[[17,10]]},"220":{"position":[[17,10]]},"224":{"position":[[17,10]]},"228":{"position":[[17,10]]},"232":{"position":[[17,10]]},"235":{"position":[[17,10]]},"239":{"position":[[17,10]]},"243":{"position":[[17,10]]},"247":{"position":[[17,10]]},"252":{"position":[[17,10]]},"253":{"position":[[459,10]]},"256":{"position":[[17,10]]},"260":{"position":[[17,10]]},"264":{"position":[[17,10]]},"268":{"position":[[17,10]]},"270":{"position":[[5,10]]},"272":{"position":[[36,10],[371,10]]},"275":{"position":[[17,10]]},"281":{"position":[[19,10]]},"285":{"position":[[17,10]]},"289":{"position":[[17,10]]},"293":{"position":[[17,10]]},"299":{"position":[[17,10]]},"304":{"position":[[17,10]]},"310":{"position":[[17,10]]},"316":{"position":[[17,10]]},"318":{"position":[[375,10]]},"322":{"position":[[41,12],[196,10],[419,10],[646,10],[684,10],[861,10],[956,10],[991,10],[1079,10]]},"323":{"position":[[231,10]]},"324":{"position":[[130,10],[460,10],[543,10],[601,10],[798,10],[892,11],[963,10],[1135,10],[1211,10],[1274,10],[1601,10]]},"326":{"position":[[17,10]]},"328":{"position":[[1043,10]]},"330":{"position":[[1538,10]]},"332":{"position":[[17,10]]},"337":{"position":[[17,10]]},"341":{"position":[[17,10]]},"345":{"position":[[17,10]]},"352":{"position":[[17,10]]},"353":{"position":[[296,10],[334,10],[403,10],[441,12],[478,10],[537,10]]},"356":{"position":[[17,10]]},"357":{"position":[[528,10],[566,10],[635,10],[673,12],[710,10],[769,10]]},"360":{"position":[[116,10],[182,11],[403,11],[430,10]]},"361":{"position":[[39,10]]},"364":{"position":[[17,10]]},"368":{"position":[[1457,11]]},"373":{"position":[[111,10],[167,10],[187,10],[289,10],[342,10]]},"378":{"position":[[9,10],[99,11],[179,11],[437,10]]},"388":{"position":[[53,10]]},"462":{"position":[[63,10],[86,10]]},"468":{"position":[[67,10]]},"484":{"position":[[42,10],[374,10],[578,10]]},"490":{"position":[[13,11],[42,11],[184,10],[906,10]]},"506":{"position":[[49,10]]},"507":{"position":[[5,10]]},"509":{"position":[[5,10]]},"514":{"position":[[5,10]]},"516":{"position":[[373,12]]},"517":{"position":[[42,11],[93,11]]},"518":{"position":[[7,11],[272,11],[375,11],[912,12]]},"519":{"position":[[7,11],[21,10]]},"521":{"position":[[64,10],[234,10],[488,10],[647,10],[708,10],[1069,10]]},"522":{"position":[[112,11],[205,10],[436,10],[502,10]]}},"keywords":{}}],["middleware.beforemiddleware/aftermiddleware(fctnam",{"_index":952,"title":{},"content":{"158":{"position":[[308,53]]}},"keywords":{}}],["middleware.cacheexpiri",{"_index":1447,"title":{},"content":{"196":{"position":[[837,22]]},"207":{"position":[[832,22]]},"286":{"position":[[565,22]]},"294":{"position":[[809,22]]},"311":{"position":[[859,22]]},"317":{"position":[[1316,22]]},"327":{"position":[[842,22]]},"333":{"position":[[670,22]]}},"keywords":{}}],["middleware.disableprefetch",{"_index":1913,"title":{},"content":{"317":{"position":[[1048,26]]}},"keywords":{}}],["middleware1",{"_index":932,"title":{},"content":{"157":{"position":[[40,11],[65,12],[518,11],[543,12]]},"185":{"position":[[434,11]]}},"keywords":{}}],["middleware2",{"_index":934,"title":{},"content":{"157":{"position":[[85,11],[110,12],[563,11],[588,12],[773,14]]}},"keywords":{}}],["middleware3",{"_index":935,"title":{},"content":{"157":{"position":[[130,11],[155,12],[608,11],[633,12],[788,15]]}},"keywords":{}}],["middleware@sharecov",{"_index":1993,"title":{},"content":{"324":{"position":[[736,21]]}},"keywords":{}}],["middlewaremiddi",{"_index":1961,"title":{},"content":{"322":{"position":[[1291,15]]},"324":{"position":[[31,15],[298,15]]}},"keywords":{}}],["middlewareshttp",{"_index":2204,"title":{},"content":{"377":{"position":[[15,15]]}},"keywords":{}}],["middlewaresmiddi",{"_index":1995,"title":{},"content":{"324":{"position":[[925,16]]}},"keywords":{}}],["middy<apigatewayproxyev",{"_index":1481,"title":{},"content":{"200":{"position":[[439,30]]}},"keywords":{}}],["middy'",{"_index":988,"title":{},"content":{"161":{"position":[[182,7]]},"518":{"position":[[332,7]]}},"keywords":{}}],["middy((ev",{"_index":1308,"title":{},"content":{"182":{"position":[[1677,13]]},"214":{"position":[[1108,13]]},"277":{"position":[[121,13]]},"297":{"position":[[1029,13]]},"348":{"position":[[100,13]]}},"keywords":{}}],["middy().handler((ev",{"_index":623,"title":{},"content":{"28":{"position":[[56,23]]},"34":{"position":[[56,23]]},"76":{"position":[[56,23]]},"88":{"position":[[56,23]]}},"keywords":{}}],["middy().handler(graphql.createhandl",{"_index":834,"title":{},"content":{"140":{"position":[[617,40]]}},"keywords":{}}],["middy().use(cors()).handler(lambdahandl",{"_index":1637,"title":{},"content":{"241":{"position":[[151,42]]}},"keywords":{}}],["middy().use(errorlogger()).handler(lambdahandl",{"_index":1545,"title":{},"content":{"218":{"position":[[173,49]]}},"keywords":{}}],["middy().use(eventnormalizer()).handler(lambdahandl",{"_index":1553,"title":{},"content":{"222":{"position":[[226,53]]}},"keywords":{}}],["middy().use(httperrorhandler()).handler(lambdahandl",{"_index":1597,"title":{},"content":{"230":{"position":[[206,54]]}},"keywords":{}}],["middy().use(httpeventnormalizer()).handler(lambdahand",{"_index":1608,"title":{},"content":{"233":{"position":[[292,56]]}},"keywords":{}}],["middy().use(httppartialresponse()).handler(lambdahandl",{"_index":1721,"title":{},"content":{"258":{"position":[[357,57]]}},"keywords":{}}],["middy().use(httpsecurityheaders()).handler(lambdahandl",{"_index":1747,"title":{},"content":{"262":{"position":[[178,57]]}},"keywords":{}}],["middy().use(inputoutputlogger()).handler(lambdahandl",{"_index":1856,"title":{},"content":{"291":{"position":[[280,55]]}},"keywords":{}}],["middy().use(s3objectresponse()).handler(lambdahandl",{"_index":1896,"title":{},"content":{"307":{"position":[[360,54]]},"308":{"position":[[313,54]]}},"keywords":{}}],["middy().use(sqsbatch()).handler(lambdahandl",{"_index":1874,"title":{},"content":{"301":{"position":[[329,46]]}},"keywords":{}}],["middy(config",{"_index":470,"title":{},"content":{"19":{"position":[[582,13]]}},"keywords":{}}],["middy(handl",{"_index":1387,"title":{},"content":{"189":{"position":[[448,14],[557,14]]}},"keywords":{}}],["middy(lambdahandl",{"_index":1107,"title":{},"content":{"167":{"position":[[336,20]]},"171":{"position":[[453,20]]},"175":{"position":[[387,20]]},"414":{"position":[[59,20]]}},"keywords":{}}],["middy(lambdahandler).before((request",{"_index":2340,"title":{},"content":{"516":{"position":[[230,37]]}},"keywords":{}}],["middy(memoryplugin",{"_index":615,"title":{},"content":{"22":{"position":[[766,21]]}},"keywords":{}}],["middy(timeplugin",{"_index":527,"title":{},"content":{"21":{"position":[[906,19]]}},"keywords":{}}],["middy.j",{"_index":385,"title":{},"content":{"18":{"position":[[346,8]]}},"keywords":{}}],["middy.middlewarefn<apigatewayproxyev",{"_index":2367,"title":{},"content":{"521":{"position":[[344,43],[520,43]]}},"keywords":{}}],["middy.middlewareobj<apigatewayproxyev",{"_index":2366,"title":{},"content":{"521":{"position":[[251,44]]}},"keywords":{}}],["middy/appconfig",{"_index":775,"title":{},"content":{"107":{"position":[[107,18]]},"195":{"position":[[77,16]]},"197":{"position":[[55,18]]},"199":{"position":[[1025,18]]}},"keywords":{}}],["middy/cachecor",{"_index":2090,"title":{},"content":{"360":{"position":[[484,16]]}},"keywords":{}}],["middy/cloudwatch",{"_index":745,"title":{},"content":{"105":{"position":[[73,18]]},"202":{"position":[[77,17]]}},"keywords":{}}],["middy/cor",{"_index":138,"title":{},"content":{"8":{"position":[[449,11]]},"16":{"position":[[175,13]]},"19":{"position":[[198,13]]},"26":{"position":[[19,13]]},"28":{"position":[[19,13]]},"31":{"position":[[19,13]]},"34":{"position":[[19,13]]},"37":{"position":[[19,13]]},"40":{"position":[[19,13]]},"43":{"position":[[19,13]]},"46":{"position":[[19,13]]},"49":{"position":[[19,13]]},"52":{"position":[[19,13]]},"55":{"position":[[19,13]]},"58":{"position":[[19,13]]},"61":{"position":[[19,13]]},"64":{"position":[[19,13]]},"67":{"position":[[19,13]]},"70":{"position":[[19,13]]},"73":{"position":[[19,13]]},"76":{"position":[[19,13]]},"79":{"position":[[19,13]]},"82":{"position":[[19,13]]},"85":{"position":[[19,13]]},"88":{"position":[[19,13]]},"91":{"position":[[19,13]]},"94":{"position":[[19,13]]},"97":{"position":[[19,13]]},"100":{"position":[[19,13]]},"103":{"position":[[19,13]]},"105":{"position":[[19,13]]},"106":{"position":[[19,13]]},"107":{"position":[[19,13]]},"110":{"position":[[19,13]]},"113":{"position":[[19,13]]},"116":{"position":[[19,13]]},"119":{"position":[[19,13]]},"122":{"position":[[19,13]]},"125":{"position":[[19,13]]},"128":{"position":[[19,13]]},"131":{"position":[[19,13]]},"134":{"position":[[19,13]]},"137":{"position":[[19,13]]},"140":{"position":[[162,13]]},"143":{"position":[[19,13]]},"150":{"position":[[19,13]]},"155":{"position":[[68,11]]},"157":{"position":[[19,13],[497,13]]},"167":{"position":[[19,14]]},"171":{"position":[[19,14]]},"175":{"position":[[19,14]]},"179":{"position":[[19,14]]},"191":{"position":[[19,13]]},"192":{"position":[[19,13]]},"197":{"position":[[19,13]]},"199":{"position":[[971,13]]},"200":{"position":[[277,13]]},"211":{"position":[[19,13]]},"212":{"position":[[19,13]]},"214":{"position":[[1022,13]]},"218":{"position":[[19,13]]},"222":{"position":[[19,13]]},"226":{"position":[[19,13]]},"230":{"position":[[19,13]]},"233":{"position":[[19,13]]},"237":{"position":[[19,13]]},"240":{"position":[[1355,13]]},"241":{"position":[[19,13]]},"245":{"position":[[19,13]]},"249":{"position":[[19,13]]},"250":{"position":[[19,13]]},"254":{"position":[[19,13]]},"258":{"position":[[19,13]]},"262":{"position":[[19,13]]},"266":{"position":[[19,13]]},"273":{"position":[[19,13]]},"277":{"position":[[19,13]]},"287":{"position":[[19,13]]},"291":{"position":[[19,13],[356,13]]},"295":{"position":[[19,13]]},"297":{"position":[[961,13]]},"301":{"position":[[19,13]]},"307":{"position":[[43,13]]},"308":{"position":[[43,13]]},"312":{"position":[[19,13]]},"318":{"position":[[19,13]]},"320":{"position":[[977,13]]},"328":{"position":[[19,13],[519,13]]},"330":{"position":[[963,13]]},"334":{"position":[[19,13]]},"343":{"position":[[19,13]]},"348":{"position":[[19,13]]},"349":{"position":[[19,13]]},"354":{"position":[[19,13]]},"358":{"position":[[19,13]]},"360":{"position":[[152,11]]},"368":{"position":[[50,13],[815,13],[1522,13]]},"369":{"position":[[633,13]]},"370":{"position":[[63,13]]},"371":{"position":[[63,13]]},"490":{"position":[[980,13]]},"518":{"position":[[433,13]]},"520":{"position":[[480,13]]},"521":{"position":[[141,13]]}},"keywords":{}}],["middy/corecach",{"_index":2089,"title":{},"content":{"360":{"position":[[461,16]]}},"keywords":{}}],["middy/do",{"_index":813,"title":{},"content":{"139":{"position":[[117,9]]},"209":{"position":[[77,9]]},"211":{"position":[[72,10]]},"360":{"position":[[556,9]]}},"keywords":{}}],["middy/dynamodb",{"_index":778,"title":{},"content":{"107":{"position":[[194,17]]},"206":{"position":[[77,15]]},"212":{"position":[[54,17]]},"214":{"position":[[1074,17]]}},"keywords":{}}],["middy/error",{"_index":626,"title":{},"content":{"31":{"position":[[67,13]]},"43":{"position":[[67,13]]},"46":{"position":[[118,13]]},"97":{"position":[[67,13]]},"105":{"position":[[135,13]]},"150":{"position":[[67,13]]},"216":{"position":[[77,12]]},"218":{"position":[[57,13]]}},"keywords":{}}],["middy/ev",{"_index":718,"title":{},"content":{"52":{"position":[[71,13]]},"61":{"position":[[71,13]]},"64":{"position":[[71,13]]},"67":{"position":[[71,13]]},"91":{"position":[[71,13]]},"94":{"position":[[71,13]]},"100":{"position":[[71,13]]},"103":{"position":[[71,13]]},"110":{"position":[[71,13]]},"113":{"position":[[71,13]]},"116":{"position":[[71,13]]},"125":{"position":[[71,13]]},"131":{"position":[[71,13]]},"143":{"position":[[71,13]]},"220":{"position":[[77,12]]},"222":{"position":[[61,13]]}},"keywords":{}}],["middy/http",{"_index":141,"title":{},"content":{"8":{"position":[[512,11],[578,11],[618,11]]},"16":{"position":[[321,12],[381,12]]},"31":{"position":[[203,12],[279,12],[341,12],[399,12],[469,12],[543,12],[616,12],[693,12],[771,12],[847,12],[923,12],[1000,12],[1092,12]]},"43":{"position":[[203,12],[279,12],[341,12],[399,12],[469,12],[543,12],[616,12],[693,12],[771,12],[847,12],[923,12],[1000,12],[1092,12]]},"46":{"position":[[63,12],[254,12],[330,12],[392,12],[450,12],[520,12],[594,12],[667,12],[744,12],[822,12],[898,12],[974,12],[1051,12],[1143,12]]},"97":{"position":[[203,12],[279,12],[341,12],[399,12],[469,12],[543,12],[616,12],[693,12],[771,12],[847,12],[923,12],[1000,12],[1092,12]]},"140":{"position":[[527,12]]},"150":{"position":[[203,12],[279,12],[341,12],[399,12],[469,12],[555,12],[628,12],[705,12],[783,12],[859,12],[935,12],[1012,12],[1104,12]]},"224":{"position":[[77,11]]},"226":{"position":[[68,12],[135,12],[196,12]]},"228":{"position":[[77,11]]},"230":{"position":[[62,12]]},"232":{"position":[[77,11]]},"233":{"position":[[65,12]]},"235":{"position":[[77,11]]},"237":{"position":[[66,12]]},"239":{"position":[[77,11]]},"240":{"position":[[1398,12],[1443,12]]},"241":{"position":[[50,12]]},"243":{"position":[[77,11]]},"245":{"position":[[66,12],[129,12]]},"247":{"position":[[77,11]]},"249":{"position":[[68,12],[134,12]]},"250":{"position":[[68,12],[134,12]]},"252":{"position":[[77,11]]},"254":{"position":[[66,12],[134,12]]},"256":{"position":[[77,11]]},"258":{"position":[[65,12]]},"260":{"position":[[77,11]]},"262":{"position":[[65,12]]},"264":{"position":[[77,11]]},"266":{"position":[[66,12],[134,12]]},"268":{"position":[[77,11]]},"273":{"position":[[68,12]]},"275":{"position":[[77,11]]},"277":{"position":[[69,12]]},"356":{"position":[[77,11]]},"358":{"position":[[63,12]]},"360":{"position":[[507,11],[624,11],[678,11],[729,11],[784,11],[843,11],[897,11],[946,11],[1141,11]]},"368":{"position":[[1567,12]]}},"keywords":{}}],["middy/input",{"_index":628,"title":{},"content":{"31":{"position":[[129,13]]},"43":{"position":[[129,13]]},"46":{"position":[[180,13]]},"97":{"position":[[129,13]]},"105":{"position":[[197,13]]},"150":{"position":[[129,13]]},"289":{"position":[[77,12]]},"291":{"position":[[63,13],[400,13]]}},"keywords":{}}],["middy/rd",{"_index":95,"title":{},"content":{"6":{"position":[[542,10]]},"8":{"position":[[749,10]]},"106":{"position":[[107,11]]},"285":{"position":[[77,10]]},"287":{"position":[[55,11]]}},"keywords":{}}],["middy/s3",{"_index":98,"title":{},"content":{"6":{"position":[[585,9]]},"8":{"position":[[473,9],[541,9],[792,9]]},"107":{"position":[[151,11]]},"122":{"position":[[72,10]]},"293":{"position":[[77,9]]},"295":{"position":[[48,11]]},"297":{"position":[[1001,11]]},"304":{"position":[[77,9]]},"307":{"position":[[86,10]]},"308":{"position":[[86,10]]},"360":{"position":[[996,9]]}},"keywords":{}}],["middy/secret",{"_index":755,"title":{},"content":{"106":{"position":[[164,15]]},"200":{"position":[[318,15]]},"316":{"position":[[77,14]]},"318":{"position":[[60,15]]},"320":{"position":[[1030,15]]},"360":{"position":[[1041,14]]}},"keywords":{}}],["middy/sercret",{"_index":101,"title":{},"content":{"6":{"position":[[648,15]]},"8":{"position":[[855,15]]}},"keywords":{}}],["middy/servic",{"_index":104,"title":{},"content":{"6":{"position":[[711,14]]},"8":{"position":[[918,14]]},"310":{"position":[[77,14]]},"312":{"position":[[62,15]]}},"keywords":{}}],["middy/sq",{"_index":836,"title":{},"content":{"143":{"position":[[132,11]]},"299":{"position":[[77,10]]},"301":{"position":[[54,11]]}},"keywords":{}}],["middy/ssm",{"_index":107,"title":{},"content":{"6":{"position":[[762,10]]},"8":{"position":[[969,10]]},"106":{"position":[[215,12]]},"107":{"position":[[238,12]]},"326":{"position":[[77,10]]},"328":{"position":[[49,12],[591,12]]},"330":{"position":[[1049,12]]}},"keywords":{}}],["middy/ssmvalid",{"_index":2102,"title":{},"content":{"360":{"position":[[1073,19]]}},"keywords":{}}],["middy/st",{"_index":109,"title":{},"content":{"6":{"position":[[798,10]]},"8":{"position":[[1005,10]]},"106":{"position":[[254,12]]},"196":{"position":[[362,10]]},"207":{"position":[[358,10]]},"294":{"position":[[341,10]]},"311":{"position":[[390,10]]},"317":{"position":[[365,10]]},"327":{"position":[[325,10]]},"332":{"position":[[77,10]]},"334":{"position":[[49,12]]},"346":{"position":[[412,10]]}},"keywords":{}}],["middy/util",{"_index":456,"title":{},"content":{"19":{"position":[[238,13]]},"106":{"position":[[61,13]]},"107":{"position":[[61,13]]},"328":{"position":[[561,13]]},"330":{"position":[[1005,13]]},"522":{"position":[[600,13]]}},"keywords":{}}],["middy/valid",{"_index":249,"title":{},"content":{"16":{"position":[[431,18]]},"354":{"position":[[166,18]]},"358":{"position":[[116,18]]},"364":{"position":[[77,16]]},"368":{"position":[[86,18],[851,18],[1620,18]]},"369":{"position":[[669,18]]},"370":{"position":[[99,18]]},"371":{"position":[[99,18]]},"484":{"position":[[622,18],[916,18]]}},"keywords":{}}],["middy/validator/transpil",{"_index":251,"title":{},"content":{"16":{"position":[[482,28]]},"368":{"position":[[137,28],[902,28],[1671,28]]},"370":{"position":[[167,28]]},"371":{"position":[[167,28]]},"484":{"position":[[702,28]]}},"keywords":{}}],["middy/validatorurlencodebodypars",{"_index":2103,"title":{},"content":{"360":{"position":[[1099,35]]}},"keywords":{}}],["middy/w",{"_index":92,"title":{},"content":{"6":{"position":[[497,9]]},"8":{"position":[[704,9]]},"37":{"position":[[72,10],[134,10],[183,10]]},"341":{"position":[[65,9]]},"343":{"position":[[72,10],[134,10]]},"345":{"position":[[77,9]]},"348":{"position":[[56,10]]},"349":{"position":[[56,10]]},"352":{"position":[[65,9]]},"354":{"position":[[61,10],[113,10]]}},"keywords":{}}],["middy/warmup",{"_index":2053,"title":{},"content":{"337":{"position":[[77,13]]},"360":{"position":[[1187,13]]}},"keywords":{}}],["middymiddi",{"_index":1945,"title":{},"content":{"322":{"position":[[661,10],[971,10]]}},"keywords":{}}],["millisecond",{"_index":1511,"title":{},"content":{"204":{"position":[[200,15]]}},"keywords":{}}],["mime",{"_index":1739,"title":{},"content":{"261":{"position":[[325,4]]}},"keywords":{}}],["mind",{"_index":1689,"title":{},"content":{"253":{"position":[[623,4],[814,4]]},"490":{"position":[[892,5]]}},"keywords":{}}],["minifi",{"_index":54,"title":{},"content":{"5":{"position":[[178,6]]}},"keywords":{}}],["minimum",{"_index":293,"title":{},"content":{"16":{"position":[[1384,8],[1442,8]]}},"keywords":{}}],["minlength",{"_index":287,"title":{},"content":{"16":{"position":[[1303,10],[1497,10]]}},"keywords":{}}],["misc",{"_index":1789,"title":{"280":{"position":[[0,5]]}},"content":{},"keywords":{}}],["miss",{"_index":187,"title":{},"content":{"13":{"position":[[131,4]]},"236":{"position":[[217,8]]},"368":{"position":[[589,7]]},"384":{"position":[[21,7]]},"456":{"position":[[95,7]]},"516":{"position":[[41,7]]}},"keywords":{}}],["missing.http",{"_index":1803,"title":{},"content":{"281":{"position":[[432,12]]}},"keywords":{}}],["mistak",{"_index":1198,"title":{},"content":{"172":{"position":[[141,8]]}},"keywords":{}}],["misus",{"_index":2247,"title":{},"content":{"400":{"position":[[53,6]]},"403":{"position":[[53,6]]}},"keywords":{}}],["mock",{"_index":406,"title":{},"content":{"18":{"position":[[784,5]]},"520":{"position":[[337,4]]}},"keywords":{}}],["mode",{"_index":128,"title":{},"content":{"8":{"position":[[259,5]]}},"keywords":{}}],["modif",{"_index":2359,"title":{},"content":{"519":{"position":[[843,12]]}},"keywords":{}}],["modifi",{"_index":1294,"title":{},"content":{"181":{"position":[[680,8]]},"185":{"position":[[777,6]]},"236":{"position":[[39,8]]},"378":{"position":[[453,9]]},"387":{"position":[[18,6]]},"390":{"position":[[1,8]]},"394":{"position":[[107,6]]},"396":{"position":[[18,6]]}},"keywords":{}}],["modul",{"_index":136,"title":{},"content":{"8":{"position":[[428,7]]},"17":{"position":[[850,7]]},"282":{"position":[[243,6]]},"361":{"position":[[631,7]]}},"keywords":{}}],["modular",{"_index":219,"title":{},"content":{"15":{"position":[[470,7]]}},"keywords":{}}],["module';const",{"_index":57,"title":{},"content":{"5":{"position":[[235,14]]}},"keywords":{}}],["module.export",{"_index":2194,"title":{},"content":{"375":{"position":[[133,14]]}},"keywords":{}}],["modules.upd",{"_index":2266,"title":{},"content":{"416":{"position":[[35,14]]}},"keywords":{}}],["mond",{"_index":1581,"title":{},"content":{"226":{"position":[[405,6]]}},"keywords":{}}],["mondo",{"_index":1577,"title":{},"content":{"226":{"position":[[356,6]]}},"keywords":{}}],["mongodb",{"_index":2003,"title":{},"content":{"324":{"position":[[1192,7]]}},"keywords":{}}],["mongoos",{"_index":2001,"title":{},"content":{"324":{"position":[[1172,8]]}},"keywords":{}}],["mongoose.js@ematipico/middi",{"_index":2004,"title":{},"content":{"324":{"position":[[1226,27]]}},"keywords":{}}],["monitor",{"_index":947,"title":{},"content":{"158":{"position":[[55,11]]}},"keywords":{}}],["month",{"_index":1342,"title":{},"content":{"187":{"position":[[47,5],[75,5],[179,7]]}},"keywords":{}}],["moos",{"_index":1760,"title":{},"content":{"266":{"position":[[693,7]]}},"keywords":{}}],["more",{"_index":909,"title":{"517":{"position":[[0,4]]}},"content":{"153":{"position":[[873,6]]},"157":{"position":[[929,4]]},"163":{"position":[[354,5]]},"172":{"position":[[591,4]]},"176":{"position":[[54,4],[548,4]]},"253":{"position":[[177,4]]},"317":{"position":[[958,4]]},"361":{"position":[[299,4],[446,4]]},"441":{"position":[[80,4]]},"484":{"position":[[122,4]]},"495":{"position":[[30,4]]},"512":{"position":[[49,4]]},"517":{"position":[[0,4],[61,4]]},"521":{"position":[[996,4]]}},"keywords":{}}],["more.metr",{"_index":1050,"title":{},"content":{"163":{"position":[[592,12]]}},"keywords":{}}],["more.trac",{"_index":1042,"title":{},"content":{"163":{"position":[[408,11]]}},"keywords":{}}],["mostli",{"_index":320,"title":{},"content":{"17":{"position":[[109,6]]},"156":{"position":[[141,6]]}},"keywords":{}}],["move",{"_index":891,"title":{},"content":{"153":{"position":[[139,5]]},"360":{"position":[[143,5],[198,5]]},"362":{"position":[[220,4]]},"426":{"position":[[1,5]]}},"keywords":{}}],["mq",{"_index":742,"title":{"101":{"position":[[0,2]]}},"content":{"102":{"position":[[26,2]]}},"keywords":{}}],["ms",{"_index":509,"title":{},"content":{"21":{"position":[[367,5],[1316,2],[1364,2],[1413,2],[1465,2],[1517,2],[1564,2],[1615,2],[1653,2],[1673,2],[1710,2],[1756,2],[1792,2],[1837,2],[1857,2]]}},"keywords":{}}],["ms.settocontext",{"_index":1451,"title":{},"content":{"196":{"position":[[985,15]]},"207":{"position":[[980,15]]},"286":{"position":[[713,15]]},"294":{"position":[[957,15]]},"311":{"position":[[1007,15]]},"317":{"position":[[1464,15]]},"327":{"position":[[990,15]]},"333":{"position":[[818,15]]}},"keywords":{}}],["msk",{"_index":735,"title":{"89":{"position":[[25,5]]}},"content":{"90":{"position":[[26,3]]}},"keywords":{}}],["muffin",{"_index":1756,"title":{},"content":{"266":{"position":[[658,9]]}},"keywords":{}}],["multi",{"_index":1237,"title":{},"content":{"175":{"position":[[1150,5]]},"367":{"position":[[138,5]]}},"keywords":{}}],["multipart",{"_index":641,"title":{"251":{"position":[[5,9]]},"392":{"position":[[5,9]]},"432":{"position":[[5,9]]},"469":{"position":[[5,9]]},"500":{"position":[[5,9]]}},"content":{"31":{"position":[[706,9]]},"43":{"position":[[706,9]]},"46":{"position":[[757,9]]},"97":{"position":[[706,9]]},"150":{"position":[[718,9]]},"252":{"position":[[89,9]]},"254":{"position":[[147,9]]},"281":{"position":[[712,9]]}},"keywords":{}}],["multipart/form",{"_index":1698,"title":{},"content":{"254":{"position":[[411,15]]},"281":{"position":[[788,14]]}},"keywords":{}}],["multipl",{"_index":942,"title":{"181":{"position":[[6,8]]}},"content":{"157":{"position":[[439,8]]},"176":{"position":[[666,8]]},"181":{"position":[[13,8]]},"272":{"position":[[419,8]]},"317":{"position":[[1021,8]]},"323":{"position":[[474,8]]},"416":{"position":[[220,8]]},"515":{"position":[[377,8]]},"522":{"position":[[427,8]]}},"keywords":{}}],["multivaluequerystringparamet",{"_index":1802,"title":{},"content":{"281":{"position":[[370,31]]}},"keywords":{}}],["mutat",{"_index":2227,"title":{},"content":{"379":{"position":[[170,7]]}},"keywords":{}}],["myapplict",{"_index":1519,"title":{},"content":{"204":{"position":[[369,15]]}},"keywords":{}}],["mîddi",{"_index":1788,"title":{},"content":{"277":{"position":[[437,7]]}},"keywords":{}}],["n",{"_index":1450,"title":{},"content":{"196":{"position":[[970,2],[983,1]]},"207":{"position":[[965,2],[978,1]]},"286":{"position":[[698,2],[711,1]]},"294":{"position":[[942,2],[955,1]]},"311":{"position":[[992,2],[1005,1]]},"317":{"position":[[1449,2],[1462,1]]},"327":{"position":[[975,2],[988,1]]},"333":{"position":[[803,2],[816,1]]}},"keywords":{}}],["name",{"_index":485,"title":{},"content":{"19":{"position":[[897,4],[1020,4]]},"21":{"position":[[2657,5],[2697,4],[2834,5]]},"158":{"position":[[452,4],[513,6]]},"166":{"position":[[257,4]]},"168":{"position":[[54,4]]},"170":{"position":[[105,4]]},"171":{"position":[[583,5],[700,4],[753,5],[902,4]]},"174":{"position":[[105,4]]},"189":{"position":[[1143,6]]},"193":{"position":[[215,6]]},"196":{"position":[[555,4]]},"207":{"position":[[551,4]]},"236":{"position":[[332,4]]},"277":{"position":[[336,5],[431,5]]},"281":{"position":[[487,5]]},"286":{"position":[[282,4]]},"290":{"position":[[395,5]]},"294":{"position":[[534,4]]},"311":{"position":[[583,4]]},"317":{"position":[[549,4],[691,4]]},"327":{"position":[[514,4]]},"333":{"position":[[394,4]]},"361":{"position":[[73,5],[226,5]]},"368":{"position":[[1865,8],[1898,5]]},"417":{"position":[[66,4]]}},"keywords":{}}],["namemiddlewar",{"_index":2355,"title":{},"content":{"519":{"position":[[367,14],[748,14]]}},"keywords":{}}],["namemiddlewareaft",{"_index":2357,"title":{},"content":{"519":{"position":[[513,19],[677,20]]}},"keywords":{}}],["namemiddlewarebefor",{"_index":2356,"title":{},"content":{"519":{"position":[[451,20],[648,21]]}},"keywords":{}}],["namemiddlewareonerror",{"_index":2358,"title":{},"content":{"519":{"position":[[574,21],[707,21]]}},"keywords":{}}],["nameoncard",{"_index":265,"title":{},"content":{"16":{"position":[[817,11],[1544,11]]}},"keywords":{}}],["names/path",{"_index":2014,"title":{},"content":{"327":{"position":[[544,11]]}},"keywords":{}}],["namespac",{"_index":1206,"title":{},"content":{"172":{"position":[[478,10]]},"174":{"position":[[223,9]]},"175":{"position":[[147,10]]},"203":{"position":[[1,9],[86,9]]},"204":{"position":[[358,10]]},"360":{"position":[[96,10]]}},"keywords":{}}],["namespacenam",{"_index":1902,"title":{},"content":{"312":{"position":[[336,14]]}},"keywords":{}}],["nativ",{"_index":421,"title":{},"content":{"18":{"position":[[1053,6],[1095,6],[1133,6],[1180,6],[1211,6]]},"221":{"position":[[112,6]]}},"keywords":{}}],["nativeattributevalue>",{"_index":1535,"title":{},"content":{"214":{"position":[[208,25]]}},"keywords":{}}],["natur",{"_index":2377,"title":{},"content":{"522":{"position":[[387,6]]}},"keywords":{}}],["near",{"_index":2214,"title":{},"content":{"378":{"position":[[301,4]]}},"keywords":{}}],["necessari",{"_index":331,"title":{},"content":{"17":{"position":[[384,9]]}},"keywords":{}}],["necessarili",{"_index":2345,"title":{},"content":{"518":{"position":[[103,11]]}},"keywords":{}}],["need",{"_index":258,"title":{"106":{"position":[[0,4]]}},"content":{"16":{"position":[[684,4]]},"19":{"position":[[169,4],[1183,4],[1232,4]]},"151":{"position":[[179,4]]},"153":{"position":[[580,7]]},"156":{"position":[[460,4]]},"159":{"position":[[36,4]]},"172":{"position":[[287,4]]},"175":{"position":[[1010,4]]},"182":{"position":[[66,4]]},"189":{"position":[[390,4],[1248,4]]},"200":{"position":[[1169,5]]},"210":{"position":[[161,7]]},"305":{"position":[[672,4]]},"322":{"position":[[779,4]]},"360":{"position":[[287,6],[385,4]]},"365":{"position":[[932,4]]},"368":{"position":[[2102,4]]},"369":{"position":[[138,5]]},"375":{"position":[[83,7]]},"414":{"position":[[14,4]]},"416":{"position":[[277,4]]},"447":{"position":[[161,4]]},"516":{"position":[[155,4],[221,7]]},"518":{"position":[[81,4],[159,4]]},"519":{"position":[[295,4]]},"522":{"position":[[325,7]]}},"keywords":{}}],["need.attach",{"_index":930,"title":{},"content":{"156":{"position":[[424,11]]}},"keywords":{}}],["neededwil",{"_index":2237,"title":{},"content":{"389":{"position":[[39,10]]}},"keywords":{}}],["negoti",{"_index":630,"title":{"223":{"position":[[13,11]]},"272":{"position":[[13,12]]},"386":{"position":[[13,12]]},"426":{"position":[[13,12]]},"463":{"position":[[13,12]]},"494":{"position":[[13,12]]}},"content":{"31":{"position":[[224,12]]},"43":{"position":[[224,12]]},"46":{"position":[[275,12]]},"97":{"position":[[224,12]]},"150":{"position":[[224,12]]},"224":{"position":[[97,11]]},"225":{"position":[[907,11]]},"226":{"position":[[89,12]]},"249":{"position":[[89,12]]},"250":{"position":[[89,12]]},"281":{"position":[[125,12],[197,11]]},"425":{"position":[[71,13]]}},"keywords":{}}],["negotiation).ajv",{"_index":2281,"title":{},"content":{"447":{"position":[[71,16]]}},"keywords":{}}],["negotiationhttperrorhandl",{"_index":2093,"title":{},"content":{"360":{"position":[[644,27]]}},"keywords":{}}],["nest",{"_index":1799,"title":{},"content":{"281":{"position":[[98,6]]},"506":{"position":[[92,6]]}},"keywords":{}}],["net",{"_index":1335,"title":{},"content":{"186":{"position":[[311,4]]}},"keywords":{}}],["never",{"_index":1449,"title":{},"content":{"196":{"position":[[957,5]]},"207":{"position":[[952,5]]},"286":{"position":[[685,5]]},"294":{"position":[[929,5]]},"311":{"position":[[979,5]]},"317":{"position":[[1436,5]]},"327":{"position":[[962,5]]},"333":{"position":[[790,5]]}},"keywords":{}}],["new",{"_index":458,"title":{},"content":{"19":{"position":[[346,3],[1016,3]]},"22":{"position":[[228,3]]},"140":{"position":[[413,3]]},"153":{"position":[[917,3]]},"156":{"position":[[320,3]]},"167":{"position":[[126,3]]},"171":{"position":[[199,3],[291,3]]},"172":{"position":[[425,3]]},"175":{"position":[[133,3]]},"179":{"position":[[276,3],[707,3]]},"181":{"position":[[337,3]]},"193":{"position":[[103,3],[153,3],[274,3]]},"230":{"position":[[143,3]]},"240":{"position":[[1515,3]]},"361":{"position":[[283,3],[680,3]]},"362":{"position":[[260,3]]},"373":{"position":[[133,3],[255,3]]},"377":{"position":[[1,3]]},"378":{"position":[[645,3],[890,3]]},"385":{"position":[[1,5]]},"395":{"position":[[1,5]]},"396":{"position":[[108,3]]},"399":{"position":[[8,3]]},"404":{"position":[[1,5]]},"409":{"position":[[104,3]]},"411":{"position":[[1,5]]},"412":{"position":[[1,5]]},"413":{"position":[[1,5]]},"416":{"position":[[144,3]]},"417":{"position":[[51,3],[93,3]]},"456":{"position":[[72,3]]},"462":{"position":[[59,3]]},"469":{"position":[[5,3]]},"495":{"position":[[7,3]]},"496":{"position":[[131,3]]},"507":{"position":[[1,3]]},"509":{"position":[[1,3]]},"514":{"position":[[1,3]]}},"keywords":{}}],["new/2021/11/aw",{"_index":2254,"title":{},"content":{"406":{"position":[[78,15]]}},"keywords":{}}],["newer",{"_index":2274,"title":{},"content":{"420":{"position":[[19,5]]}},"keywords":{}}],["newkey",{"_index":490,"title":{},"content":{"19":{"position":[[1124,7]]}},"keywords":{}}],["next",{"_index":898,"title":{},"content":{"153":{"position":[[374,4]]},"156":{"position":[[24,4]]},"187":{"position":[[194,4]]},"244":{"position":[[242,4]]},"253":{"position":[[427,4]]},"265":{"position":[[135,4]]}},"keywords":{}}],["next(err",{"_index":2186,"title":{},"content":{"373":{"position":[[198,9]]}},"keywords":{}}],["nextrotationd",{"_index":1907,"title":{},"content":{"317":{"position":[[847,17]]}},"keywords":{}}],["nextrotationdate/lastrotationdate/lastchangedd",{"_index":1906,"title":{},"content":{"317":{"position":[[769,50]]}},"keywords":{}}],["nice",{"_index":1499,"title":{},"content":{"200":{"position":[[1386,4]]}},"keywords":{}}],["nine",{"_index":1348,"title":{},"content":{"187":{"position":[[170,4]]}},"keywords":{}}],["nmessag",{"_index":1586,"title":{},"content":{"226":{"position":[[608,10]]}},"keywords":{}}],["node",{"_index":67,"title":{},"content":{"6":{"position":[[32,4],[169,4]]},"16":{"position":[[196,4],[257,4]]},"493":{"position":[[34,4]]},"522":{"position":[[397,4]]}},"keywords":{}}],["node.j",{"_index":18,"title":{"362":{"position":[[0,7],[34,7]]}},"content":{"0":{"position":[[266,7]]},"15":{"position":[[102,8]]},"163":{"position":[[470,7]]},"186":{"position":[[210,7]]},"187":{"position":[[307,7]]},"361":{"position":[[325,7]]},"362":{"position":[[41,7],[172,7],[228,7]]}},"keywords":{}}],["node.js.auto",{"_index":1175,"title":{},"content":{"168":{"position":[[342,12]]}},"keywords":{}}],["node/issues/531#issuecom",{"_index":1887,"title":{},"content":{"305":{"position":[[731,28]]}},"keywords":{}}],["node:crypto",{"_index":1265,"title":{},"content":{"179":{"position":[[61,14]]}},"keywords":{}}],["node:fs/promis",{"_index":2178,"title":{},"content":{"370":{"position":[[26,18]]},"371":{"position":[[26,18]]}},"keywords":{}}],["node:path",{"_index":121,"title":{},"content":{"8":{"position":[[96,11]]}},"keywords":{}}],["node:url",{"_index":123,"title":{},"content":{"8":{"position":[[138,10]]}},"keywords":{}}],["node:zlib",{"_index":1668,"title":{},"content":{"249":{"position":[[191,11]]},"250":{"position":[[191,11]]}},"keywords":{}}],["node_modul",{"_index":366,"title":{"18":{"position":[[6,12]]}},"content":{"18":{"position":[[6,12],[158,12]]}},"keywords":{}}],["node_modules/.bin/babel",{"_index":152,"title":{},"content":{"10":{"position":[[51,23]]}},"keywords":{}}],["node_modules/.bin/esbuild",{"_index":49,"title":{},"content":{"5":{"position":[[85,25]]},"11":{"position":[[18,25]]}},"keywords":{}}],["node_modules/.bin/rollup",{"_index":70,"title":{},"content":{"6":{"position":[[69,24]]}},"keywords":{}}],["node_modules/.bin/spack",{"_index":113,"title":{},"content":{"7":{"position":[[29,23]]}},"keywords":{}}],["node_modules/.bin/swc",{"_index":165,"title":{},"content":{"12":{"position":[[29,21]]}},"keywords":{}}],["node_modules/.bin/tsc",{"_index":25,"title":{},"content":{"3":{"position":[[21,21]]}},"keywords":{}}],["node_modules/.bin/webpack",{"_index":118,"title":{},"content":{"8":{"position":[[30,25]]}},"keywords":{}}],["nodej",{"_index":135,"title":{},"content":{"8":{"position":[[421,6]]},"187":{"position":[[278,6]]},"248":{"position":[[399,6]]}},"keywords":{}}],["noderesolv",{"_index":74,"title":{},"content":{"6":{"position":[[134,11],[246,14]]}},"keywords":{}}],["non",{"_index":1591,"title":{},"content":{"229":{"position":[[214,3]]},"496":{"position":[[155,3]]}},"keywords":{}}],["none",{"_index":1570,"title":{},"content":{"225":{"position":[[954,4]]},"276":{"position":[[1,4]]},"452":{"position":[[1,4]]},"489":{"position":[[1,4]]}},"keywords":{}}],["normal",{"_index":636,"title":{"219":{"position":[[6,10]]},"231":{"position":[[11,10]]},"234":{"position":[[12,10]]},"361":{"position":[[7,13],[36,11]]},"384":{"position":[[6,11]]},"389":{"position":[[11,11]]},"390":{"position":[[12,11]]},"401":{"position":[[7,11]]},"424":{"position":[[6,11]]},"429":{"position":[[11,11]]},"430":{"position":[[12,11]]},"461":{"position":[[6,11]]},"466":{"position":[[11,11]]},"467":{"position":[[12,11]]},"497":{"position":[[11,11]]},"498":{"position":[[12,11]]},"508":{"position":[[7,11]]}},"content":{"31":{"position":[[488,11],[563,11]]},"43":{"position":[[488,11],[563,11]]},"46":{"position":[[539,11],[614,11]]},"52":{"position":[[85,11]]},"61":{"position":[[85,11]]},"64":{"position":[[85,11]]},"67":{"position":[[85,11]]},"91":{"position":[[85,11]]},"94":{"position":[[85,11]]},"97":{"position":[[488,11],[563,11]]},"100":{"position":[[85,11]]},"103":{"position":[[85,11]]},"110":{"position":[[85,11]]},"113":{"position":[[85,11]]},"116":{"position":[[85,11]]},"125":{"position":[[85,11]]},"131":{"position":[[85,11]]},"143":{"position":[[85,11]]},"150":{"position":[[488,11],[575,11]]},"220":{"position":[[90,10]]},"222":{"position":[[75,11]]},"226":{"position":[[155,11]]},"232":{"position":[[95,10]]},"233":{"position":[[84,11]]},"235":{"position":[[96,10]]},"236":{"position":[[107,10]]},"237":{"position":[[86,11]]},"245":{"position":[[86,11]]},"254":{"position":[[86,11]]},"266":{"position":[[86,11]]},"281":{"position":[[7,11],[86,11],[282,11],[294,10],[452,11],[464,10]]},"361":{"position":[[50,10]]},"401":{"position":[[31,11]]},"405":{"position":[[31,11]]}},"keywords":{}}],["normalizeheaderkey",{"_index":1614,"title":{},"content":{"236":{"position":[[253,21]]}},"keywords":{}}],["normalizerespons",{"_index":2286,"title":{},"content":{"456":{"position":[[1,17]]}},"keywords":{}}],["normalizerhttpheadernorm",{"_index":2095,"title":{},"content":{"360":{"position":[[747,30]]}},"keywords":{}}],["normalizerhttpmultipartbodypars",{"_index":2096,"title":{},"content":{"360":{"position":[[803,33]]}},"keywords":{}}],["normalizersecretsmanag",{"_index":2100,"title":{},"content":{"360":{"position":[[1010,24]]}},"keywords":{}}],["notabl",{"_index":2203,"title":{"377":{"position":[[0,7]]},"416":{"position":[[0,7]]},"454":{"position":[[0,7]]}},"content":{},"keywords":{}}],["notaccept",{"_index":1567,"title":{},"content":{"225":{"position":[[868,13]]}},"keywords":{}}],["note",{"_index":962,"title":{"414":{"position":[[0,6]]},"452":{"position":[[0,6]]},"489":{"position":[[0,6]]}},"content":{"159":{"position":[[183,5]]},"196":{"position":[[1067,6]]},"200":{"position":[[950,4]]},"207":{"position":[[1062,6]]},"248":{"position":[[365,6]]},"253":{"position":[[448,5]]},"286":{"position":[[795,6]]},"294":{"position":[[1039,6]]},"305":{"position":[[481,6]]},"311":{"position":[[1089,6]]},"317":{"position":[[1542,6]]},"327":{"position":[[1072,6]]},"333":{"position":[[900,6]]},"346":{"position":[[696,6]]},"353":{"position":[[241,6]]},"357":{"position":[[366,6]]},"365":{"position":[[793,6]]},"368":{"position":[[563,4]]},"521":{"position":[[719,5]]}},"keywords":{}}],["notic",{"_index":278,"title":{},"content":{"16":{"position":[[1028,6]]},"21":{"position":[[2609,6]]},"185":{"position":[[560,6]]},"361":{"position":[[143,7]]}},"keywords":{}}],["now",{"_index":584,"title":{"362":{"position":[[18,3],[50,3]]}},"content":{"21":{"position":[[2274,3]]},"377":{"position":[[105,3]]},"378":{"position":[[490,3],[604,3]]},"379":{"position":[[19,3],[148,3]]},"388":{"position":[[94,3]]},"389":{"position":[[50,3]]},"441":{"position":[[45,3]]},"444":{"position":[[6,3]]},"454":{"position":[[7,3]]},"456":{"position":[[19,3]]},"474":{"position":[[1,3]]},"484":{"position":[[248,3]]},"506":{"position":[[1,3]]}},"keywords":{}}],["npm",{"_index":23,"title":{},"content":{"3":{"position":[[1,3]]},"5":{"position":[[1,3]]},"6":{"position":[[1,3]]},"7":{"position":[[1,3]]},"8":{"position":[[1,3]]},"10":{"position":[[1,3]]},"11":{"position":[[1,3]]},"12":{"position":[[1,3]]},"155":{"position":[[31,4],[49,3],[219,3]]},"165":{"position":[[13,3]]},"169":{"position":[[13,3]]},"173":{"position":[[13,3]]},"177":{"position":[[13,3]]},"195":{"position":[[40,4],[58,3],[94,3]]},"202":{"position":[[40,4],[58,3]]},"206":{"position":[[40,4],[58,3],[93,3]]},"209":{"position":[[40,4],[58,3]]},"216":{"position":[[40,4],[58,3]]},"220":{"position":[[40,4],[58,3]]},"224":{"position":[[40,4],[58,3]]},"228":{"position":[[40,4],[58,3]]},"232":{"position":[[40,4],[58,3]]},"235":{"position":[[40,4],[58,3]]},"239":{"position":[[40,4],[58,3]]},"243":{"position":[[40,4],[58,3]]},"247":{"position":[[40,4],[58,3]]},"252":{"position":[[40,4],[58,3]]},"256":{"position":[[40,4],[58,3]]},"260":{"position":[[40,4],[58,3]]},"264":{"position":[[40,4],[58,3]]},"268":{"position":[[40,4],[58,3]]},"275":{"position":[[40,4],[58,3]]},"285":{"position":[[40,4],[58,3],[95,3]]},"289":{"position":[[40,4],[58,3]]},"293":{"position":[[40,4],[58,3],[87,3]]},"299":{"position":[[40,4],[58,3],[136,3]]},"304":{"position":[[40,4],[58,3],[103,3]]},"310":{"position":[[40,4],[58,3],[102,3]]},"316":{"position":[[40,4],[58,3],[100,3]]},"326":{"position":[[40,4],[58,3],[88,3]]},"332":{"position":[[40,4],[58,3],[88,3]]},"337":{"position":[[40,4],[58,3]]},"341":{"position":[[40,4],[46,3]]},"345":{"position":[[40,4],[58,3],[96,3]]},"352":{"position":[[40,4],[46,3]]},"356":{"position":[[40,4],[58,3]]},"360":{"position":[[75,3]]},"364":{"position":[[40,4],[58,3],[94,3]]},"447":{"position":[[173,3]]}},"keywords":{}}],["npmignor",{"_index":447,"title":{},"content":{"18":{"position":[[1507,10]]}},"keywords":{}}],["npmyarnpnpm",{"_index":914,"title":{},"content":{"155":{"position":[[37,11],[207,11]]},"165":{"position":[[1,11]]},"169":{"position":[[1,11]]},"173":{"position":[[1,11]]},"177":{"position":[[1,11]]},"195":{"position":[[46,11]]},"202":{"position":[[46,11]]},"206":{"position":[[46,11]]},"209":{"position":[[46,11]]},"216":{"position":[[46,11]]},"220":{"position":[[46,11]]},"224":{"position":[[46,11]]},"228":{"position":[[46,11]]},"232":{"position":[[46,11]]},"235":{"position":[[46,11]]},"239":{"position":[[46,11]]},"243":{"position":[[46,11]]},"247":{"position":[[46,11]]},"252":{"position":[[46,11]]},"256":{"position":[[46,11]]},"260":{"position":[[46,11]]},"264":{"position":[[46,11]]},"268":{"position":[[46,11]]},"275":{"position":[[46,11]]},"285":{"position":[[46,11]]},"289":{"position":[[46,11]]},"293":{"position":[[46,11]]},"299":{"position":[[46,11]]},"304":{"position":[[46,11]]},"310":{"position":[[46,11]]},"316":{"position":[[46,11]]},"326":{"position":[[46,11]]},"332":{"position":[[46,11]]},"337":{"position":[[46,11]]},"345":{"position":[[46,11]]},"356":{"position":[[46,11]]},"364":{"position":[[46,11]]}},"keywords":{}}],["null",{"_index":1634,"title":{},"content":{"240":{"position":[[1330,5]]},"368":{"position":[[1302,5]]}},"keywords":{}}],["null)requesthead",{"_index":1629,"title":{},"content":{"240":{"position":[[1013,19]]}},"keywords":{}}],["number",{"_index":300,"title":{},"content":{"16":{"position":[[1592,8]]},"166":{"position":[[356,9],[366,6]]},"196":{"position":[[860,8]]},"199":{"position":[[1509,8]]},"207":{"position":[[855,8]]},"214":{"position":[[1586,8]]},"221":{"position":[[62,7],[130,8],[188,7]]},"286":{"position":[[588,8]]},"294":{"position":[[832,8]]},"297":{"position":[[1532,8]]},"311":{"position":[[882,8]]},"317":{"position":[[1339,8]]},"327":{"position":[[865,8]]},"333":{"position":[[693,8]]},"368":{"position":[[1141,8]]}},"keywords":{}}],["number.parseint((process.hrtime.bigint",{"_index":506,"title":{},"content":{"21":{"position":[[290,40]]}},"keywords":{}}],["number}>",{"_index":1542,"title":{},"content":{"214":{"position":[[1359,13]]},"297":{"position":[[1296,13]]}},"keywords":{}}],["o",{"_index":2166,"title":{},"content":{"369":{"position":[[394,1],[545,1]]}},"keywords":{}}],["obj",{"_index":464,"title":{},"content":{"19":{"position":[[448,5]]}},"keywords":{}}],["obj[prop",{"_index":469,"title":{},"content":{"19":{"position":[[522,9]]}},"keywords":{}}],["object",{"_index":99,"title":{"120":{"position":[[3,6]]},"303":{"position":[[3,6]]},"402":{"position":[[3,6]]},"441":{"position":[[3,6]]},"478":{"position":[[3,6]]},"509":{"position":[[3,6]]}},"content":{"6":{"position":[[595,6]]},"8":{"position":[[483,6],[551,6],[802,6]]},"16":{"position":[[1205,9],[1243,9],[1899,6]]},"121":{"position":[[17,7],[33,6],[59,7],[75,6]]},"122":{"position":[[83,6]]},"166":{"position":[[584,8],[608,6]]},"170":{"position":[[478,8],[502,6]]},"174":{"position":[[401,8],[425,6]]},"175":{"position":[[481,6],[923,6]]},"178":{"position":[[186,6]]},"196":{"position":[[11,8],[186,8],[510,8]]},"207":{"position":[[11,8],[183,8],[506,8]]},"214":{"position":[[558,7]]},"217":{"position":[[148,6]]},"236":{"position":[[161,8]]},"248":{"position":[[4,8],[71,8],[129,8]]},"253":{"position":[[8,8]]},"271":{"position":[[149,7],[197,7],[285,6],[347,6]]},"281":{"position":[[336,6],[621,7],[1264,7]]},"282":{"position":[[434,7]]},"283":{"position":[[202,6],[237,6]]},"286":{"position":[[11,8],[162,8],[237,8]]},"290":{"position":[[142,6],[294,8]]},"294":{"position":[[11,8],[172,8],[489,8]]},"297":{"position":[[15,6],[515,7]]},"304":{"position":[[87,6]]},"305":{"position":[[11,8],[165,8],[819,6]]},"307":{"position":[[97,6]]},"308":{"position":[[97,6]]},"311":{"position":[[11,8],[207,8],[538,8]]},"317":{"position":[[11,8],[202,8],[504,8]]},"320":{"position":[[534,7]]},"324":{"position":[[1013,7]]},"327":{"position":[[11,8],[169,8],[469,8]]},"328":{"position":[[308,6],[933,6]]},"330":{"position":[[1407,6]]},"333":{"position":[[11,8],[168,8],[349,8]]},"338":{"position":[[48,6],[210,6]]},"346":{"position":[[11,8],[222,8]]},"353":{"position":[[64,8]]},"357":{"position":[[68,8]]},"365":{"position":[[745,8]]},"366":{"position":[[147,8],[197,8]]},"368":{"position":[[248,9],[731,6],[1037,9],[1109,8],[1336,6],[1787,9],[1845,9]]},"456":{"position":[[76,6]]},"490":{"position":[[139,7],[195,6]]},"509":{"position":[[43,6]]},"519":{"position":[[38,6]]},"522":{"position":[[55,6]]}},"keywords":{}}],["object.assign(request.context",{"_index":486,"title":{},"content":{"19":{"position":[[902,30],[1025,30],[1253,30]]},"328":{"position":[[1180,30]]},"522":{"position":[[1424,30]]}},"keywords":{}}],["object.assign(request.intern",{"_index":2390,"title":{},"content":{"522":{"position":[[1285,31]]}},"keywords":{}}],["object.http",{"_index":1808,"title":{},"content":{"281":{"position":[[838,11]]}},"keywords":{}}],["object.keys(options.fetchdata",{"_index":2384,"title":{},"content":{"522":{"position":[[940,31]]}},"keywords":{}}],["object.valid",{"_index":1195,"title":{},"content":{"172":{"position":[[76,17]]}},"keywords":{}}],["objectajvopt",{"_index":2141,"title":{},"content":{"366":{"position":[[180,16]]}},"keywords":{}}],["objectawscontext",{"_index":1844,"title":{},"content":{"290":{"position":[[73,16]]}},"keywords":{}}],["objects@marcosantonocito/middi",{"_index":2007,"title":{},"content":{"324":{"position":[[1325,30]]}},"keywords":{}}],["obvious",{"_index":1490,"title":{},"content":{"200":{"position":[[770,9]]}},"keywords":{}}],["occur",{"_index":1593,"title":{},"content":{"229":{"position":[[257,5]]}},"keywords":{}}],["offici",{"_index":1477,"title":{"279":{"position":[[0,8]]}},"content":{"200":{"position":[[85,8]]},"253":{"position":[[150,8]]}},"keywords":{}}],["ofhttperrorhandler.http",{"_index":1807,"title":{},"content":{"281":{"position":[[688,23]]}},"keywords":{}}],["omit",{"_index":1852,"title":{},"content":{"290":{"position":[[456,7]]},"399":{"position":[[38,4]]},"506":{"position":[[77,7]]}},"keywords":{}}],["omitted***replac",{"_index":1853,"title":{},"content":{"290":{"position":[[486,21]]}},"keywords":{}}],["on",{"_index":316,"title":{},"content":{"17":{"position":[[1,3]]},"167":{"position":[[2447,4]]},"172":{"position":[[372,3]]},"175":{"position":[[1289,3]]},"185":{"position":[[679,3]]},"186":{"position":[[25,3]]},"187":{"position":[[67,3]]},"225":{"position":[[929,3]]},"323":{"position":[[467,3]]},"357":{"position":[[105,3]]},"365":{"position":[[810,3]]},"369":{"position":[[133,4]]},"515":{"position":[[233,3]]},"518":{"position":[[182,3]]}},"keywords":{}}],["onc",{"_index":949,"title":{},"content":{"158":{"position":[[183,4]]},"176":{"position":[[64,4],[558,4]]}},"keywords":{}}],["oneof",{"_index":668,"title":{},"content":{"31":{"position":[[1741,5],[1875,5]]},"43":{"position":[[1741,5],[1875,5]]},"46":{"position":[[1866,5],[2000,5]]},"97":{"position":[[1766,5],[1900,5]]},"150":{"position":[[1753,5],[1887,5]]}},"keywords":{}}],["onerror",{"_index":896,"title":{},"content":{"153":{"position":[[213,8],[263,7]]},"157":{"position":[[912,9]]},"158":{"position":[[410,7]]},"159":{"position":[[281,8]]},"373":{"position":[[159,7],[281,7]]},"378":{"position":[[1,7],[196,7]]},"387":{"position":[[1,7]]},"388":{"position":[[103,7]]},"396":{"position":[[1,7]]},"490":{"position":[[225,7],[799,8]]},"506":{"position":[[41,7]]},"518":{"position":[[228,9]]},"519":{"position":[[277,7],[698,8]]}},"keywords":{}}],["onerror(async",{"_index":2350,"title":{},"content":{"518":{"position":[[679,14]]}},"keywords":{}}],["onerrormethod",{"_index":2351,"title":{},"content":{"518":{"position":[[851,14]]}},"keywords":{}}],["op.set",{"_index":1393,"title":{},"content":{"189":{"position":[[669,6]]}},"keywords":{}}],["open",{"_index":811,"title":{},"content":{"139":{"position":[[90,4]]},"152":{"position":[[30,4]]},"161":{"position":[[238,4],[586,4]]}},"keywords":{}}],["oper",{"_index":787,"title":{},"content":{"112":{"position":[[39,10]]},"176":{"position":[[483,9],[606,10],[729,10]]}},"keywords":{}}],["opinion",{"_index":1043,"title":{},"content":{"163":{"position":[[425,11]]}},"keywords":{}}],["opt",{"_index":499,"title":{},"content":{"21":{"position":[[77,5],[140,7]]},"22":{"position":[[108,5],[162,7]]},"375":{"position":[[150,6],[439,7]]},"484":{"position":[[110,6]]},"490":{"position":[[315,6],[361,7]]},"519":{"position":[[384,5],[435,7]]},"522":{"position":[[783,5],[834,7]]}},"keywords":{}}],["optim",{"_index":367,"title":{},"content":{"18":{"position":[[42,7]]},"322":{"position":[[149,9]]}},"keywords":{}}],["option",{"_index":973,"title":{"166":{"position":[[0,8]]},"170":{"position":[[0,8]]},"174":{"position":[[0,8]]},"178":{"position":[[0,8]]},"196":{"position":[[0,8]]},"203":{"position":[[0,8]]},"207":{"position":[[0,8]]},"210":{"position":[[0,8]]},"217":{"position":[[0,8]]},"221":{"position":[[0,8]]},"225":{"position":[[0,8]]},"229":{"position":[[0,8]]},"236":{"position":[[0,8]]},"240":{"position":[[0,8]]},"244":{"position":[[0,8]]},"248":{"position":[[0,8]]},"253":{"position":[[0,8]]},"257":{"position":[[0,8]]},"261":{"position":[[0,8]]},"265":{"position":[[0,8]]},"269":{"position":[[0,8]]},"276":{"position":[[0,8]]},"286":{"position":[[0,8]]},"290":{"position":[[0,8]]},"294":{"position":[[0,8]]},"300":{"position":[[0,8]]},"305":{"position":[[0,8]]},"311":{"position":[[0,8]]},"317":{"position":[[0,8]]},"327":{"position":[[0,8]]},"333":{"position":[[0,8]]},"338":{"position":[[0,8]]},"342":{"position":[[0,8]]},"346":{"position":[[0,8]]},"353":{"position":[[0,8]]},"357":{"position":[[0,8]]},"365":{"position":[[0,8]]}},"content":{"159":{"position":[[826,9]]},"166":{"position":[[41,8],[64,9],[507,8],[593,11],[659,11],[754,11]]},"170":{"position":[[41,8],[64,9],[401,8],[487,11],[560,11]]},"174":{"position":[[41,8],[64,9],[322,8],[410,11],[487,11],[602,11]]},"178":{"position":[[34,8],[160,11]]},"182":{"position":[[1056,9]]},"189":{"position":[[929,7]]},"196":{"position":[[216,7]]},"199":{"position":[[457,7]]},"203":{"position":[[20,11],[217,11]]},"207":{"position":[[213,7]]},"210":{"position":[[206,8]]},"214":{"position":[[489,7]]},"236":{"position":[[18,11],[170,11],[286,11]]},"240":{"position":[[20,11],[132,11],[288,11],[378,11],[494,9],[504,11],[636,11],[716,11],[855,11],[945,11],[1042,11],[1141,11],[1238,11],[1301,9]]},"244":{"position":[[20,11],[142,11]]},"248":{"position":[[227,11]]},"253":{"position":[[17,11],[327,11]]},"257":{"position":[[27,11]]},"261":{"position":[[267,7]]},"265":{"position":[[35,11]]},"269":{"position":[[20,11]]},"272":{"position":[[401,7]]},"286":{"position":[[171,11],[183,7]]},"294":{"position":[[202,7]]},"297":{"position":[[446,7]]},"300":{"position":[[19,11]]},"305":{"position":[[174,11],[186,7],[260,11]]},"311":{"position":[[237,7]]},"317":{"position":[[211,11],[223,7],[310,11],[419,11]]},"320":{"position":[[465,7]]},"327":{"position":[[178,11],[190,7],[266,11],[379,11]]},"330":{"position":[[447,7]]},"333":{"position":[[177,11],[189,7],[264,11]]},"334":{"position":[[336,8]]},"346":{"position":[[252,7]]},"357":{"position":[[143,7]]},"364":{"position":[[127,9]]},"365":{"position":[[603,6]]},"366":{"position":[[227,7]]},"368":{"position":[[1977,7]]},"375":{"position":[[414,7]]},"389":{"position":[[1,6]]},"394":{"position":[[17,6]]},"396":{"position":[[83,7]]},"399":{"position":[[12,6]]},"400":{"position":[[21,6]]},"403":{"position":[[21,6]]},"407":{"position":[[21,6]]},"409":{"position":[[108,7]]},"469":{"position":[[9,6]]},"484":{"position":[[182,7],[427,6]]},"490":{"position":[[336,7]]},"495":{"position":[[11,7]]},"496":{"position":[[135,6]]},"504":{"position":[[17,7],[73,7]]},"512":{"position":[[10,6],[54,7]]},"519":{"position":[[410,7]]},"522":{"position":[[809,7]]}},"keywords":{}}],["option.origin",{"_index":1623,"title":{},"content":{"240":{"position":[[613,13]]}},"keywords":{}}],["option1",{"_index":2316,"title":{},"content":{"490":{"position":[[1178,8]]}},"keywords":{}}],["option2",{"_index":2317,"title":{},"content":{"490":{"position":[[1194,8]]}},"keywords":{}}],["options.calculatecacheid(request.ev",{"_index":976,"title":{},"content":{"159":{"position":[[922,39]]},"182":{"position":[[1152,39]]},"375":{"position":[[546,39]]}},"keywords":{}}],["options.charset",{"_index":1684,"title":{},"content":{"253":{"position":[[211,15]]}},"keywords":{}}],["options.fetchdata[internalkey]).then",{"_index":2386,"title":{},"content":{"522":{"position":[[1009,37]]}},"keywords":{}}],["options.getvalue(cachekey",{"_index":2200,"title":{},"content":{"375":{"position":[[609,26]]}},"keywords":{}}],["options.settocontext",{"_index":2391,"title":{},"content":{"522":{"position":[[1327,22]]}},"keywords":{}}],["options.setvalue(request.internal.cachekey",{"_index":2202,"title":{},"content":{"375":{"position":[[768,43]]}},"keywords":{}}],["options.storage.hasownproperty(cachekey",{"_index":977,"title":{},"content":{"159":{"position":[[965,42]]},"182":{"position":[[1195,42]]}},"keywords":{}}],["options.storage[cachekey",{"_index":979,"title":{},"content":{"159":{"position":[[1091,25],[1221,25]]},"182":{"position":[[1396,25],[1526,25]]}},"keywords":{}}],["order",{"_index":848,"title":{"185":{"position":[[10,6]]}},"content":{"151":{"position":[[210,5]]},"153":{"position":[[241,5]]},"158":{"position":[[136,5]]},"175":{"position":[[192,8]]},"185":{"position":[[413,5],[629,6]]},"248":{"position":[[271,6]]},"272":{"position":[[133,6],[458,5]]},"324":{"position":[[489,5]]},"378":{"position":[[26,5]]},"388":{"position":[[132,6]]},"490":{"position":[[28,5]]}},"keywords":{}}],["organ",{"_index":1310,"title":{},"content":{"183":{"position":[[55,12]]},"187":{"position":[[807,12]]}},"keywords":{}}],["organization'",{"_index":1161,"title":{},"content":{"167":{"position":[[2540,14]]}},"keywords":{}}],["organization’",{"_index":1071,"title":{},"content":{"164":{"position":[[458,14]]}},"keywords":{}}],["origin",{"_index":929,"title":{},"content":{"156":{"position":[[350,8]]},"240":{"position":[[565,7],[595,6],[605,7],[648,6],[748,8],[770,6],[1765,9]]},"241":{"position":[[311,9]]},"365":{"position":[[1018,8]]}},"keywords":{}}],["otherwis",{"_index":1611,"title":{},"content":{"236":{"position":[[81,9]]},"322":{"position":[[369,10]]}},"keywords":{}}],["ourself",{"_index":260,"title":{},"content":{"16":{"position":[[713,7]]}},"keywords":{}}],["out",{"_index":153,"title":{"139":{"position":[[22,3]]}},"content":{"10":{"position":[[86,3]]},"12":{"position":[[62,3]]},"18":{"position":[[287,3]]},"21":{"position":[[1252,3],[2547,3],[2680,3]]},"176":{"position":[[420,3]]},"187":{"position":[[880,4]]},"189":{"position":[[227,3]]},"484":{"position":[[367,3]]},"491":{"position":[[58,3]]},"520":{"position":[[36,3]]},"522":{"position":[[469,3]]}},"keywords":{}}],["outfile=index.cj",{"_index":163,"title":{},"content":{"11":{"position":[[100,17]]}},"keywords":{}}],["outfile=index.mj",{"_index":64,"title":{},"content":{"5":{"position":[[369,17]]}},"keywords":{}}],["outgo",{"_index":1179,"title":{},"content":{"170":{"position":[[302,8]]},"171":{"position":[[1147,8]]},"281":{"position":[[1110,8]]}},"keywords":{}}],["output",{"_index":82,"title":{"278":{"position":[[6,6]]},"399":{"position":[[6,6]]},"439":{"position":[[6,6]]},"476":{"position":[[6,6]]},"506":{"position":[[6,6]]}},"content":{"6":{"position":[[349,7]]},"8":{"position":[[301,7]]},"17":{"position":[[319,6]]},"31":{"position":[[143,6]]},"43":{"position":[[143,6]]},"46":{"position":[[194,6]]},"97":{"position":[[143,6]]},"105":{"position":[[211,6]]},"150":{"position":[[143,6]]},"159":{"position":[[425,6]]},"164":{"position":[[97,6],[410,6]]},"167":{"position":[[414,6],[2388,6],[2484,6]]},"175":{"position":[[457,6]]},"280":{"position":[[218,6]]},"289":{"position":[[90,6]]},"291":{"position":[[77,6],[414,6]]},"365":{"position":[[517,6]]}},"keywords":{}}],["outputmodul",{"_index":134,"title":{},"content":{"8":{"position":[[383,13]]}},"keywords":{}}],["outputschema",{"_index":2260,"title":{},"content":{"409":{"position":[[176,12]]},"484":{"position":[[169,12]]}},"keywords":{}}],["outsid",{"_index":330,"title":{},"content":{"17":{"position":[[260,7]]},"379":{"position":[[91,7]]}},"keywords":{}}],["over",{"_index":1658,"title":{},"content":{"248":{"position":[[304,4]]},"322":{"position":[[234,4]]},"441":{"position":[[25,4],[93,4]]}},"keywords":{}}],["overrid",{"_index":910,"title":{},"content":{"153":{"position":[[883,8]]},"203":{"position":[[240,9]]},"210":{"position":[[127,8]]},"248":{"position":[[239,8]]},"272":{"position":[[194,8],[300,8]]},"365":{"position":[[782,9]]},"367":{"position":[[82,10]]},"520":{"position":[[312,8]]}},"keywords":{}}],["overridepreferredencod",{"_index":1679,"title":{},"content":{"249":{"position":[[435,26]]},"250":{"position":[[631,26]]}},"keywords":{}}],["overwrit",{"_index":63,"title":{},"content":{"5":{"position":[[357,9]]}},"keywords":{}}],["packag",{"_index":20,"title":{"1":{"position":[[16,8]]},"360":{"position":[[12,8]]}},"content":{"18":{"position":[[1379,7]]},"200":{"position":[[94,8]]},"360":{"position":[[53,8],[219,8],[372,8]]},"361":{"position":[[343,7]]},"515":{"position":[[208,7]]}},"keywords":{}}],["package.defaultlanguag",{"_index":2128,"title":{},"content":{"365":{"position":[[634,23]]}},"keywords":{}}],["package:'@middi",{"_index":2269,"title":{},"content":{"416":{"position":[[176,21]]}},"keywords":{}}],["packagesupd",{"_index":2267,"title":{},"content":{"416":{"position":[[101,14]]}},"keywords":{}}],["page",{"_index":816,"title":{},"content":{"140":{"position":[[27,4],[91,4]]},"144":{"position":[[26,4],[90,4]]},"145":{"position":[[18,4],[82,4]]},"146":{"position":[[34,4],[98,4]]},"147":{"position":[[30,4],[94,4]]},"151":{"position":[[51,4],[115,4]]},"188":{"position":[[23,4],[87,4]]},"189":{"position":[[21,4],[85,4]]}},"keywords":{}}],["pair",{"_index":2005,"title":{},"content":{"324":{"position":[[1300,4]]}},"keywords":{}}],["param",{"_index":1671,"title":{},"content":{"249":{"position":[[298,7]]},"250":{"position":[[494,7]]},"522":{"position":[[666,6]]}},"keywords":{}}],["paramet",{"_index":1252,"title":{},"content":{"176":{"position":[[583,11],[695,11]]},"199":{"position":[[165,10],[496,9],[752,10]]},"214":{"position":[[164,10],[528,9]]},"217":{"position":[[173,10]]},"236":{"position":[[342,9]]},"244":{"position":[[42,9]]},"283":{"position":[[278,10],[431,10],[467,9]]},"297":{"position":[[168,10],[485,9]]},"305":{"position":[[542,10]]},"317":{"position":[[569,9]]},"320":{"position":[[504,9]]},"323":{"position":[[406,10],[483,9],[525,9],[607,9]]},"327":{"position":[[534,9],[1289,9]]},"330":{"position":[[117,10],[165,10],[370,10],[410,9],[486,9],[748,10]]},"338":{"position":[[60,9]]},"342":{"position":[[51,9]]}},"keywords":{}}],["parameterpath",{"_index":2040,"title":{},"content":{"330":{"position":[[634,13]]}},"keywords":{}}],["parameters.disableprefetch",{"_index":1442,"title":{},"content":{"196":{"position":[[575,26]]},"207":{"position":[[571,26]]},"286":{"position":[[302,26]]},"294":{"position":[[554,26]]},"311":{"position":[[603,26]]},"333":{"position":[[414,26]]}},"keywords":{}}],["parameters.http",{"_index":1819,"title":{},"content":{"282":{"position":[[475,15]]}},"keywords":{}}],["pari",{"_index":1720,"title":{},"content":{"258":{"position":[[302,7]]}},"keywords":{}}],["pars",{"_index":305,"title":{},"content":{"16":{"position":[[1836,6]]},"17":{"position":[[295,7]]},"253":{"position":[[574,5]]},"281":{"position":[[74,7],[138,6],[555,6],[749,6],[887,6],[1012,6],[1187,6]]},"324":{"position":[[1560,5]]},"368":{"position":[[2110,5]]},"411":{"position":[[7,5]]},"474":{"position":[[31,5]]}},"keywords":{}}],["parsecharset",{"_index":1554,"title":{},"content":{"225":{"position":[[1,13]]},"226":{"position":[[855,14]]}},"keywords":{}}],["parseencod",{"_index":1587,"title":{},"content":{"226":{"position":[[877,15]]}},"keywords":{}}],["parser",{"_index":245,"title":{"242":{"position":[[15,6]]},"251":{"position":[[20,6]]},"263":{"position":[[20,6]]},"274":{"position":[[20,6]]},"340":{"position":[[13,6]]},"391":{"position":[[15,7]]},"392":{"position":[[20,7]]},"397":{"position":[[20,7]]},"398":{"position":[[20,7]]},"405":{"position":[[14,7]]},"411":{"position":[[13,7]]},"431":{"position":[[15,7]]},"432":{"position":[[20,7]]},"437":{"position":[[20,7]]},"438":{"position":[[20,7]]},"449":{"position":[[13,7]]},"468":{"position":[[15,7]]},"469":{"position":[[20,7]]},"474":{"position":[[20,7]]},"475":{"position":[[20,7]]},"486":{"position":[[13,7]]},"499":{"position":[[15,7]]},"500":{"position":[[20,7]]},"504":{"position":[[20,7]]},"505":{"position":[[20,7]]},"511":{"position":[[14,7]]}},"content":{"16":{"position":[[344,7]]},"31":{"position":[[639,7],[721,7],[1028,7],[1120,7]]},"37":{"position":[[93,7]]},"43":{"position":[[639,7],[721,7],[1028,7],[1120,7]]},"46":{"position":[[690,7],[772,7],[1079,7],[1171,7]]},"97":{"position":[[639,7],[721,7],[1028,7],[1120,7]]},"140":{"position":[[550,7]]},"150":{"position":[[651,7],[733,7],[1040,7],[1132,7]]},"243":{"position":[[99,6]]},"245":{"position":[[152,7]]},"252":{"position":[[104,6]]},"254":{"position":[[162,7]]},"264":{"position":[[104,6]]},"266":{"position":[[162,7]]},"275":{"position":[[104,6]]},"277":{"position":[[97,7]]},"281":{"position":[[533,7],[727,7],[865,7],[990,7],[1165,7]]},"324":{"position":[[1552,7]]},"341":{"position":[[85,6]]},"343":{"position":[[93,7]]},"368":{"position":[[1590,7]]},"416":{"position":[[241,7]]},"504":{"position":[[45,7]]}},"keywords":{}}],["parserhttppartialrespons",{"_index":2097,"title":{},"content":{"360":{"position":[[865,25]]}},"keywords":{}}],["parsers3keynorm",{"_index":2099,"title":{},"content":{"360":{"position":[[968,21]]}},"keywords":{}}],["parserwarmup",{"_index":2104,"title":{},"content":{"360":{"position":[[1168,12]]}},"keywords":{}}],["parsingavailablecharset",{"_index":1557,"title":{},"content":{"225":{"position":[[75,24]]}},"keywords":{}}],["parsingavailableencod",{"_index":1559,"title":{},"content":{"225":{"position":[[271,25]]}},"keywords":{}}],["parsingavailablelanguag",{"_index":1562,"title":{},"content":{"225":{"position":[[469,25]]}},"keywords":{}}],["parsingavailablemediatyp",{"_index":1565,"title":{},"content":{"225":{"position":[[670,26]]}},"keywords":{}}],["part",{"_index":383,"title":{},"content":{"18":{"position":[[302,4]]},"294":{"position":[[1208,4]]},"353":{"position":[[277,4]]},"357":{"position":[[509,4]]},"365":{"position":[[902,4]]}},"keywords":{}}],["parti",{"_index":1929,"title":{"321":{"position":[[6,5]]}},"content":{},"keywords":{}}],["partial",{"_index":643,"title":{"255":{"position":[[5,7]]},"298":{"position":[[4,7]]},"393":{"position":[[5,7]]},"406":{"position":[[4,7]]},"433":{"position":[[5,7]]},"444":{"position":[[4,7]]},"470":{"position":[[5,7]]},"481":{"position":[[4,7]]},"501":{"position":[[5,7]]},"512":{"position":[[4,7]]}},"content":{"31":{"position":[[784,7]]},"43":{"position":[[784,7]]},"46":{"position":[[835,7]]},"97":{"position":[[784,7]]},"143":{"position":[[144,7]]},"150":{"position":[[796,7]]},"256":{"position":[[89,7]]},"258":{"position":[[78,7]]},"282":{"position":[[400,7],[541,7],[572,9]]},"299":{"position":[[88,7]]},"301":{"position":[[66,7]]},"360":{"position":[[909,7]]},"406":{"position":[[101,7]]}},"keywords":{}}],["particular",{"_index":1846,"title":{},"content":{"290":{"position":[[258,10]]}},"keywords":{}}],["pass",{"_index":586,"title":{},"content":{"21":{"position":[[2286,7],[2702,6]]},"151":{"position":[[187,4]]},"158":{"position":[[460,6]]},"196":{"position":[[227,4],[452,7]]},"207":{"position":[[224,4],[448,7]]},"229":{"position":[[120,4]]},"244":{"position":[[59,6]]},"253":{"position":[[66,4]]},"271":{"position":[[122,6]]},"286":{"position":[[194,4]]},"294":{"position":[[213,4],[431,7]]},"305":{"position":[[197,4],[287,7]]},"311":{"position":[[248,4],[480,7]]},"317":{"position":[[234,4],[446,7]]},"322":{"position":[[787,7]]},"327":{"position":[[201,4],[411,7]]},"330":{"position":[[1352,5],[1449,5],[1723,5]]},"333":{"position":[[200,4],[291,7]]},"342":{"position":[[68,6]]},"346":{"position":[[263,4],[502,7]]},"357":{"position":[[189,6]]},"366":{"position":[[238,4]]},"368":{"position":[[312,4]]},"378":{"position":[[494,6]]},"423":{"position":[[31,6]]},"484":{"position":[[252,4]]},"506":{"position":[[139,6]]}},"keywords":{}}],["password",{"_index":847,"title":{},"content":{"151":{"position":[[197,9],[370,8]]},"318":{"position":[[523,10],[610,11]]},"320":{"position":[[1352,9]]}},"keywords":{}}],["patch",{"_index":2075,"title":{},"content":{"357":{"position":[[128,6]]}},"keywords":{}}],["path",{"_index":120,"title":{"274":{"position":[[15,4]]},"398":{"position":[[15,4]]},"438":{"position":[[15,4]]},"475":{"position":[[15,4]]},"505":{"position":[[15,4]]}},"content":{"8":{"position":[[86,4],[349,5]]},"31":{"position":[[1115,4]]},"43":{"position":[[1115,4]]},"46":{"position":[[1166,4],[1378,5],[1439,5]]},"97":{"position":[[1115,4]]},"150":{"position":[[1127,4]]},"199":{"position":[[506,4]]},"275":{"position":[[99,4]]},"277":{"position":[[92,4]]},"281":{"position":[[985,4]]},"290":{"position":[[224,5]]},"322":{"position":[[1350,4],[1433,5]]},"328":{"position":[[339,4],[964,4]]},"330":{"position":[[496,4]]},"357":{"position":[[24,5],[238,4]]},"358":{"position":[[480,5],[541,5]]},"399":{"position":[[45,5]]}},"keywords":{}}],["path.dirname(__filenam",{"_index":127,"title":{},"content":{"8":{"position":[[217,24]]}},"keywords":{}}],["path.valid",{"_index":1811,"title":{},"content":{"281":{"position":[[1050,15]]}},"keywords":{}}],["pathparamet",{"_index":1786,"title":{},"content":{"277":{"position":[[318,15]]},"281":{"position":[[405,14]]}},"keywords":{}}],["pattern",{"_index":291,"title":{},"content":{"16":{"position":[[1333,8],[1525,8]]},"17":{"position":[[642,8],[657,7]]},"522":{"position":[[338,7],[536,8]]}},"keywords":{}}],["pattern.beforehandler/afterhandl",{"_index":955,"title":{},"content":{"158":{"position":[[520,37]]}},"keywords":{}}],["payload",{"_index":1059,"title":{},"content":{"163":{"position":[[888,7]]},"176":{"position":[[87,7],[321,7]]},"193":{"position":[[222,8]]}},"keywords":{}}],["payloadformatvers",{"_index":2236,"title":{},"content":{"389":{"position":[[8,20]]}},"keywords":{}}],["payloadselect",{"_index":1240,"title":{},"content":{"176":{"position":[[187,13]]}},"keywords":{}}],["payment",{"_index":236,"title":{},"content":{"16":{"position":[[121,8],[932,8]]},"179":{"position":[[418,7],[561,7],[733,10]]}},"keywords":{}}],["payment.id",{"_index":1277,"title":{},"content":{"179":{"position":[[631,11]]}},"keywords":{}}],["paymentid",{"_index":1276,"title":{},"content":{"179":{"position":[[620,10]]}},"keywords":{}}],["peer",{"_index":917,"title":{},"content":{"155":{"position":[[189,4]]}},"keywords":{}}],["percent",{"_index":1956,"title":{},"content":{"322":{"position":[[1184,7]]}},"keywords":{}}],["percentag",{"_index":1064,"title":{},"content":{"164":{"position":[[216,10]]}},"keywords":{}}],["perform",{"_index":184,"title":{},"content":{"13":{"position":[[92,11]]},"248":{"position":[[471,11],[596,12]]},"333":{"position":[[1039,11]]},"365":{"position":[[1152,11]]},"384":{"position":[[54,11]]},"387":{"position":[[82,11]]}},"keywords":{}}],["performancemiddi",{"_index":1936,"title":{},"content":{"322":{"position":[[163,16]]}},"keywords":{}}],["period",{"_index":1344,"title":{},"content":{"187":{"position":[[59,7],[231,6],[850,6]]}},"keywords":{}}],["permiss",{"_index":1455,"title":{},"content":{"196":{"position":[[1106,10]]},"207":{"position":[[1101,10]]},"286":{"position":[[834,10]]},"294":{"position":[[1078,10]]},"305":{"position":[[801,10]]},"311":{"position":[[1128,10]]},"317":{"position":[[1581,10]]},"324":{"position":[[1364,11],[1400,10]]},"327":{"position":[[1111,10]]},"333":{"position":[[939,10]]},"346":{"position":[[735,10]]}},"keywords":{}}],["persist",{"_index":1260,"title":{},"content":{"178":{"position":[[115,11]]}},"keywords":{}}],["persistencestor",{"_index":1257,"title":{},"content":{"178":{"position":[[44,16]]},"179":{"position":[[257,16],[779,17]]}},"keywords":{}}],["perspect",{"_index":319,"title":{},"content":{"17":{"position":[[82,12]]}},"keywords":{}}],["pgmiddi",{"_index":1959,"title":{},"content":{"322":{"position":[[1251,7]]}},"keywords":{}}],["phase",{"_index":894,"title":{},"content":{"153":{"position":[[200,5]]},"159":{"position":[[259,5]]},"185":{"position":[[22,7],[60,6],[209,6],[585,6]]},"210":{"position":[[104,6]]},"518":{"position":[[203,6],[601,5],[670,5],[744,5]]},"519":{"position":[[916,7]]}},"keywords":{}}],["phaseaft",{"_index":2352,"title":{},"content":{"519":{"position":[[146,11]]}},"keywords":{}}],["phaseonerror",{"_index":2353,"title":{},"content":{"519":{"position":[[199,13]]}},"keywords":{}}],["pino",{"_index":840,"title":{"145":{"position":[[0,4]]}},"content":{"145":{"position":[[0,4]]},"291":{"position":[[436,4],[446,6],[468,6]]}},"keywords":{}}],["pk",{"_index":1533,"title":{},"content":{"212":{"position":[[333,3]]},"214":{"position":[[1397,3]]}},"keywords":{}}],["place",{"_index":1286,"title":{},"content":{"181":{"position":[[170,5]]},"324":{"position":[[394,7]]}},"keywords":{}}],["placement",{"_index":1288,"title":{},"content":{"181":{"position":[[468,9]]}},"keywords":{}}],["plan",{"_index":1774,"title":{},"content":{"272":{"position":[[536,8]]}},"keywords":{}}],["platform=nod",{"_index":51,"title":{},"content":{"5":{"position":[[124,13]]},"11":{"position":[[46,13]]}},"keywords":{}}],["pleas",{"_index":818,"title":{},"content":{"140":{"position":[[104,6]]},"144":{"position":[[103,6]]},"145":{"position":[[95,6]]},"146":{"position":[[111,6]]},"147":{"position":[[107,6]]},"151":{"position":[[128,6]]},"187":{"position":[[867,6]]},"188":{"position":[[100,6]]},"189":{"position":[[98,6]]}},"keywords":{}}],["plug",{"_index":350,"title":{},"content":{"17":{"position":[[867,7]]}},"keywords":{}}],["plugin",{"_index":76,"title":{},"content":{"6":{"position":[[236,7],[419,8]]},"324":{"position":[[471,7],[628,6]]},"338":{"position":[[257,6]]},"366":{"position":[[53,7]]},"515":{"position":[[23,7],[122,6]]},"516":{"position":[[317,6]]}},"keywords":{}}],["plugin.timeoutearlyrespons",{"_index":2271,"title":{},"content":{"417":{"position":[[9,32]]}},"keywords":{}}],["point",{"_index":1067,"title":{},"content":{"164":{"position":[[333,5]]}},"keywords":{}}],["pollut",{"_index":334,"title":{},"content":{"17":{"position":[[407,9],[930,9]]}},"keywords":{}}],["polyfil",{"_index":2283,"title":{},"content":{"455":{"position":[[8,8],[42,8]]}},"keywords":{}}],["pond",{"_index":1759,"title":{},"content":{"266":{"position":[[687,5]]}},"keywords":{}}],["popular",{"_index":1331,"title":{},"content":{"186":{"position":[[192,10]]}},"keywords":{}}],["port",{"_index":766,"title":{},"content":{"106":{"position":[[442,5]]},"186":{"position":[[316,4],[351,4]]},"282":{"position":[[378,4]]},"287":{"position":[[395,5]]}},"keywords":{}}],["possibl",{"_index":948,"title":{},"content":{"158":{"position":[[103,8]]},"199":{"position":[[72,8]]},"214":{"position":[[71,8]]},"297":{"position":[[75,8]]},"320":{"position":[[84,8]]},"330":{"position":[[62,8]]},"400":{"position":[[35,8]]},"403":{"position":[[35,8]]},"491":{"position":[[77,8]]},"519":{"position":[[81,8]]}},"keywords":{}}],["post",{"_index":710,"title":{},"content":{"46":{"position":[[1431,7]]},"357":{"position":[[117,5]]},"358":{"position":[[533,7]]},"412":{"position":[[7,4]]}},"keywords":{}}],["posthandl",{"_index":707,"title":{},"content":{"46":{"position":[[1300,11],[1463,11]]},"358":{"position":[[296,11],[565,11]]}},"keywords":{}}],["potenti",{"_index":1293,"title":{},"content":{"181":{"position":[[668,11]]}},"keywords":{}}],["power",{"_index":1733,"title":{},"content":{"261":{"position":[[186,7]]},"324":{"position":[[273,7]]},"369":{"position":[[146,7]]}},"keywords":{}}],["powertool",{"_index":1032,"title":{"162":{"position":[[0,10]]}},"content":{"163":{"position":[[1,10],[155,10]]},"172":{"position":[[640,10]]},"181":{"position":[[22,10],[134,10]]},"182":{"position":[[216,10],[1256,10]]},"322":{"position":[[13,11]]},"323":{"position":[[12,10]]}},"keywords":{}}],["powertools/common",{"_index":1307,"title":{},"content":{"182":{"position":[[852,20]]}},"keywords":{}}],["powertools/idempot",{"_index":1255,"title":{},"content":{"177":{"position":[[44,22]]}},"keywords":{}}],["powertools/idempotency/dynamodb",{"_index":1269,"title":{},"content":{"179":{"position":[[217,33]]}},"keywords":{}}],["powertools/idempotency/middlewar",{"_index":1267,"title":{},"content":{"179":{"position":[[127,35]]}},"keywords":{}}],["powertools/logg",{"_index":1073,"title":{},"content":{"165":{"position":[[44,17]]},"167":{"position":[[91,19]]}},"keywords":{}}],["powertools/metr",{"_index":1209,"title":{},"content":{"173":{"position":[[44,18]]},"175":{"position":[[96,20]]}},"keywords":{}}],["powertools/trac",{"_index":1176,"title":{},"content":{"169":{"position":[[44,17]]},"171":{"position":[[92,19]]}},"keywords":{}}],["practic",{"_index":1281,"title":{"180":{"position":[[5,10]]}},"content":{"182":{"position":[[536,8]]},"186":{"position":[[124,9]]},"282":{"position":[[320,8]]},"333":{"position":[[1105,10]]}},"keywords":{}}],["pre",{"_index":1632,"title":{"369":{"position":[[0,3]]}},"content":{"240":{"position":[[1290,3]]},"280":{"position":[[274,3]]},"364":{"position":[[141,3]]},"378":{"position":[[850,3]]},"447":{"position":[[138,3]]},"484":{"position":[[415,3]]}},"keywords":{}}],["precompil",{"_index":2139,"title":{},"content":{"365":{"position":[[1211,12]]}},"keywords":{}}],["prefer",{"_index":1655,"title":{},"content":{"248":{"position":[[252,9],[292,6]]},"272":{"position":[[467,11]]},"426":{"position":[[7,10]]}},"keywords":{}}],["preferbuiltin",{"_index":77,"title":{},"content":{"6":{"position":[[261,15]]}},"keywords":{}}],["preferredlanguag",{"_index":2275,"title":{},"content":{"425":{"position":[[5,17]]},"447":{"position":[[5,17]]}},"keywords":{}}],["prefetch",{"_index":950,"title":{},"content":{"158":{"position":[[224,10]]},"305":{"position":[[470,9]]},"346":{"position":[[685,9]]}},"keywords":{}}],["prefetch.cachekey",{"_index":1444,"title":{},"content":{"196":{"position":[[721,17]]},"207":{"position":[[717,17]]},"286":{"position":[[448,17]]},"294":{"position":[[700,17]]},"311":{"position":[[749,17]]},"317":{"position":[[1194,17]]},"327":{"position":[[732,17]]},"333":{"position":[[560,17]]}},"keywords":{}}],["prefetchingexpectct",{"_index":1727,"title":{},"content":{"261":{"position":[[41,19]]}},"keywords":{}}],["prefix",{"_index":1189,"title":{},"content":{"171":{"position":[[770,6]]},"357":{"position":[[419,6]]}},"keywords":{}}],["preflight",{"_index":1618,"title":{},"content":{"240":{"position":[[184,9]]}},"keywords":{}}],["present.exposehead",{"_index":1626,"title":{},"content":{"240":{"position":[[824,21]]}},"keywords":{}}],["prevent",{"_index":1058,"title":{},"content":{"163":{"position":[[851,7]]},"176":{"position":[[16,7]]},"261":{"position":[[129,7]]},"444":{"position":[[65,10]]}},"keywords":{}}],["print",{"_index":605,"title":{},"content":{"21":{"position":[[2671,8]]},"322":{"position":[[226,7],[360,8]]}},"keywords":{}}],["prioriti",{"_index":1326,"title":{},"content":{"185":{"position":[[700,8]]}},"keywords":{}}],["probabl",{"_index":2347,"title":{},"content":{"518":{"position":[[145,8]]}},"keywords":{}}],["problem",{"_index":343,"title":{},"content":{"17":{"position":[[597,7]]},"167":{"position":[[1566,7],[2253,7]]}},"keywords":{}}],["process",{"_index":235,"title":{},"content":{"16":{"position":[[111,7],[941,9]]},"18":{"position":[[321,8]]},"189":{"position":[[1057,10],[1286,7]]},"253":{"position":[[504,9]]},"300":{"position":[[88,10]]},"301":{"position":[[225,10]]}},"keywords":{}}],["process.env.aws_region",{"_index":761,"title":{},"content":{"106":{"position":[[360,23]]}},"keywords":{}}],["process.env.node_env",{"_index":476,"title":{},"content":{"19":{"position":[[712,20]]},"414":{"position":[[182,20]]}},"keywords":{}}],["process.env.rds_hostnam",{"_index":763,"title":{},"content":{"106":{"position":[[394,25]]}},"keywords":{}}],["process.hrtime.bigint",{"_index":503,"title":{},"content":{"21":{"position":[[206,23]]}},"keywords":{}}],["processcach",{"_index":2381,"title":{},"content":{"522":{"position":[[580,12]]}},"keywords":{}}],["processcache(opt",{"_index":2389,"title":{},"content":{"522":{"position":[[1143,21],[1247,21]]}},"keywords":{}}],["prod",{"_index":1116,"title":{},"content":{"167":{"position":[[577,4],[779,4],[1919,4]]}},"keywords":{}}],["produc",{"_index":1607,"title":{},"content":{"233":{"position":[[208,7]]}},"keywords":{}}],["product",{"_index":1034,"title":{},"content":{"163":{"position":[[102,10]]}},"keywords":{}}],["productid",{"_index":1272,"title":{},"content":{"179":{"position":[[453,10]]}},"keywords":{}}],["profil",{"_index":493,"title":{"20":{"position":[[0,9]]}},"content":{"158":{"position":[[692,9]]},"322":{"position":[[1069,9],[1094,9]]}},"keywords":{}}],["progress",{"_index":817,"title":{},"content":{"140":{"position":[[45,9]]},"144":{"position":[[44,9]]},"145":{"position":[[36,9]]},"146":{"position":[[52,9]]},"147":{"position":[[48,9]]},"151":{"position":[[69,9]]},"176":{"position":[[371,8]]},"188":{"position":[[41,9]]},"189":{"position":[[39,9]]}},"keywords":{}}],["project",{"_index":885,"title":{},"content":{"152":{"position":[[192,8]]},"161":{"position":[[132,7],[726,8]]},"183":{"position":[[44,7]]},"186":{"position":[[42,8],[259,8],[385,8]]}},"keywords":{}}],["project.2017",{"_index":990,"title":{},"content":{"161":{"position":[[250,12]]}},"keywords":{}}],["project2023",{"_index":1023,"title":{},"content":{"161":{"position":[[598,11]]}},"keywords":{}}],["promis",{"_index":454,"title":{},"content":{"19":{"position":[[83,8]]},"122":{"position":[[320,9]]},"324":{"position":[[185,8],[579,8]]},"522":{"position":[[234,9],[264,8]]}},"keywords":{}}],["promise<apigatewayproxyresult>",{"_index":2368,"title":{},"content":{"521":{"position":[[435,36]]}},"keywords":{}}],["promise<void>",{"_index":1218,"title":{},"content":{"175":{"position":[[271,19]]},"521":{"position":[[611,19]]}},"keywords":{}}],["promise.allsettled(recordpromis",{"_index":1873,"title":{},"content":{"301":{"position":[[269,34]]}},"keywords":{}}],["prop",{"_index":461,"title":{},"content":{"19":{"position":[[376,5],[454,5],[488,6]]}},"keywords":{}}],["propag",{"_index":899,"title":{},"content":{"153":{"position":[[474,10]]},"266":{"position":[[238,10]]},"277":{"position":[[173,10]]}},"keywords":{}}],["proper",{"_index":314,"title":{},"content":{"16":{"position":[[2054,6]]},"153":{"position":[[326,6]]},"245":{"position":[[459,6]]},"282":{"position":[[173,6],[265,6]]}},"keywords":{}}],["properli",{"_index":1297,"title":{},"content":{"182":{"position":[[419,8]]},"520":{"position":[[218,9]]}},"keywords":{}}],["properti",{"_index":285,"title":{},"content":{"16":{"position":[[1215,11],[1253,11],[1671,10]]},"176":{"position":[[445,8]]},"210":{"position":[[67,8],[254,8]]},"217":{"position":[[8,9]]},"280":{"position":[[55,8],[170,8]]},"290":{"position":[[195,8]]},"338":{"position":[[230,8]]},"368":{"position":[[285,11],[573,8],[1081,11],[1817,11],[1884,11]]}},"keywords":{}}],["protect",{"_index":1745,"title":{},"content":{"261":{"position":[[405,11]]}},"keywords":{}}],["provid",{"_index":946,"title":{},"content":{"158":{"position":[[12,8]]},"163":{"position":[[166,8]]},"199":{"position":[[209,7],[482,9],[702,7]]},"203":{"position":[[315,7]]},"214":{"position":[[243,7],[514,9],[742,7]]},"281":{"position":[[166,8]]},"297":{"position":[[212,7],[471,9],[687,7]]},"320":{"position":[[218,7],[490,9],[702,7]]},"323":{"position":[[425,8]]},"324":{"position":[[323,8]]},"330":{"position":[[209,7],[472,9],[698,7]]},"361":{"position":[[211,7]]}},"keywords":{}}],["provis",{"_index":2337,"title":{},"content":{"516":{"position":[[104,11]]}},"keywords":{}}],["proxi",{"_index":459,"title":{},"content":{"19":{"position":[[350,9]]},"324":{"position":[[362,8]]},"378":{"position":[[649,7]]}},"keywords":{}}],["proxy+}handl",{"_index":2079,"title":{},"content":{"357":{"position":[[288,16]]}},"keywords":{}}],["publish",{"_index":1502,"title":{},"content":{"203":{"position":[[129,9]]},"360":{"position":[[62,9]]}},"keywords":{}}],["pull",{"_index":883,"title":{},"content":{"152":{"position":[[150,4]]}},"keywords":{}}],["pure",{"_index":335,"title":{},"content":{"17":{"position":[[421,4]]}},"keywords":{}}],["put",{"_index":379,"title":{},"content":{"18":{"position":[[242,3]]},"240":{"position":[[309,3],[399,3],[658,3],[876,3],[966,3],[1063,3],[1162,3],[1259,3]]},"357":{"position":[[123,4]]},"484":{"position":[[7,3]]}},"keywords":{}}],["q=0.8",{"_index":1779,"title":{},"content":{"273":{"position":[[681,6]]}},"keywords":{}}],["qs",{"_index":2327,"title":{},"content":{"504":{"position":[[35,2]]}},"keywords":{}}],["qs/.editorconfig",{"_index":400,"title":{},"content":{"18":{"position":[[667,19]]}},"keywords":{}}],["qs/.eslintrc",{"_index":401,"title":{},"content":{"18":{"position":[[687,15]]}},"keywords":{}}],["qs/.github",{"_index":397,"title":{},"content":{"18":{"position":[[631,13]]}},"keywords":{}}],["qs/.nycrc",{"_index":402,"title":{},"content":{"18":{"position":[[703,12]]}},"keywords":{}}],["qs/changelog.md",{"_index":403,"title":{},"content":{"18":{"position":[[716,18]]}},"keywords":{}}],["qs/dist",{"_index":398,"title":{},"content":{"18":{"position":[[645,10]]}},"keywords":{}}],["qs/test",{"_index":399,"title":{},"content":{"18":{"position":[[656,10]]}},"keywords":{}}],["queri",{"_index":1818,"title":{},"content":{"282":{"position":[[462,5]]}},"keywords":{}}],["querystr",{"_index":1704,"title":{},"content":{"257":{"position":[[62,11]]}},"keywords":{}}],["querystring/test",{"_index":419,"title":{},"content":{"18":{"position":[[1024,19]]}},"keywords":{}}],["querystringparamet",{"_index":1722,"title":{},"content":{"258":{"position":[[431,22]]},"281":{"position":[[347,22]]}},"keywords":{}}],["queue",{"_index":1942,"title":{},"content":{"322":{"position":[[491,5]]}},"keywords":{}}],["quick",{"_index":224,"title":{"16":{"position":[[2,5]]}},"content":{},"keywords":{}}],["quickli",{"_index":206,"title":{},"content":{"15":{"position":[[260,8]]},"518":{"position":[[882,7]]}},"keywords":{}}],["quit",{"_index":2332,"title":{},"content":{"515":{"position":[[194,5]]}},"keywords":{}}],["quot;*")origin",{"_index":1624,"title":{},"content":{"240":{"position":[[686,21]]}},"keywords":{}}],["quot;./"",{"_index":30,"title":{},"content":{"3":{"position":[[115,15]]}},"keywords":{}}],["quot;16"",{"_index":160,"title":{},"content":{"10":{"position":[[244,14]]}},"keywords":{}}],["quot;2021",{"_index":1140,"title":{},"content":{"167":{"position":[[1040,10]]}},"keywords":{}}],["quot;@babel/preset",{"_index":157,"title":{},"content":{"10":{"position":[[170,19]]}},"keywords":{}}],["quot;_aws"",{"_index":1224,"title":{},"content":{"175":{"position":[[553,17]]}},"keywords":{}}],["quot;abcdef123456abcdef123456abcdef123456"",{"_index":1143,"title":{},"content":{"167":{"position":[[1105,48]]}},"keywords":{}}],["quot;allowjs"",{"_index":35,"title":{},"content":{"3":{"position":[[240,20]]}},"keywords":{}}],["quot;arn:aws:lambda:eu",{"_index":1112,"title":{},"content":{"167":{"position":[[499,23]]}},"keywords":{}}],["quot;bar"",{"_index":1135,"title":{},"content":{"167":{"position":[[929,16]]}},"keywords":{}}],["quot;baseurl"",{"_index":29,"title":{},"content":{"3":{"position":[[94,20]]}},"keywords":{}}],["quot;baz"",{"_index":1136,"title":{},"content":{"167":{"position":[[946,15]]}},"keywords":{}}],["quot;c6af9ac6",{"_index":1122,"title":{},"content":{"167":{"position":[[671,14]]}},"keywords":{}}],["quot;cloudwatchmetrics"",{"_index":1226,"title":{},"content":{"175":{"position":[[611,30]]}},"keywords":{}}],["quot;cold_start"",{"_index":1110,"title":{},"content":{"167":{"position":[[443,23]]}},"keywords":{}}],["quot;commonjs"",{"_index":174,"title":{},"content":{"12":{"position":[[277,20]]}},"keywords":{}}],["quot;compileroptions"",{"_index":28,"title":{},"content":{"3":{"position":[[63,28]]}},"keywords":{}}],["quot;count"",{"_index":1232,"title":{},"content":{"175":{"position":[[843,17]]}},"keywords":{}}],["quot;dimensions"",{"_index":1228,"title":{},"content":{"175":{"position":[[699,23]]}},"keywords":{}}],["quot;ecmascript"",{"_index":171,"title":{},"content":{"12":{"position":[[169,22]]}},"keywords":{}}],["quot;es2021"",{"_index":38,"title":{},"content":{"3":{"position":[[288,19]]},"12":{"position":[[215,18]]}},"keywords":{}}],["quot;esmoduleinterop"",{"_index":31,"title":{},"content":{"3":{"position":[[131,28]]}},"keywords":{}}],["quot;foo"",{"_index":1134,"title":{},"content":{"167":{"position":[[910,16]]}},"keywords":{}}],["quot;function_arn"",{"_index":1111,"title":{},"content":{"167":{"position":[[473,25]]}},"keywords":{}}],["quot;function_memory_size"",{"_index":1119,"title":{},"content":{"167":{"position":[[599,33]]}},"keywords":{}}],["quot;function_name"",{"_index":1127,"title":{},"content":{"167":{"position":[[721,26]]}},"keywords":{}}],["quot;function_request_id"",{"_index":1121,"title":{},"content":{"167":{"position":[[638,32]]}},"keywords":{}}],["quot;info"",{"_index":1130,"title":{},"content":{"167":{"position":[[820,17]]}},"keywords":{}}],["quot;jsc"",{"_index":168,"title":{},"content":{"12":{"position":[[108,16]]}},"keywords":{}}],["quot;level"",{"_index":1129,"title":{},"content":{"167":{"position":[[801,18]]}},"keywords":{}}],["quot;message"",{"_index":1131,"title":{},"content":{"167":{"position":[[838,20]]}},"keywords":{}}],["quot;metrics"",{"_index":1229,"title":{},"content":{"175":{"position":[[752,20]]}},"keywords":{}}],["quot;middyfy"",{"_index":303,"title":{},"content":{"16":{"position":[[1697,19]]}},"keywords":{}}],["quot;module"",{"_index":172,"title":{},"content":{"12":{"position":[[237,19]]}},"keywords":{}}],["quot;moduleresolution"",{"_index":42,"title":{},"content":{"3":{"position":[[403,29]]}},"keywords":{}}],["quot;name"",{"_index":1230,"title":{},"content":{"175":{"position":[[776,17]]}},"keywords":{}}],["quot;namespace"",{"_index":1227,"title":{},"content":{"175":{"position":[[645,22]]}},"keywords":{}}],["quot;node"",{"_index":43,"title":{},"content":{"3":{"position":[[433,16]]},"10":{"position":[[226,17]]}},"keywords":{}}],["quot;node_modules/@types"",{"_index":40,"title":{},"content":{"3":{"position":[[331,34]]}},"keywords":{}}],["quot;orders"",{"_index":1233,"title":{},"content":{"175":{"position":[[889,18]]}},"keywords":{}}],["quot;parser"",{"_index":169,"title":{},"content":{"12":{"position":[[127,19]]}},"keywords":{}}],["quot;preserveconstenums"",{"_index":33,"title":{},"content":{"3":{"position":[[166,31]]}},"keywords":{}}],["quot;presets"",{"_index":156,"title":{},"content":{"10":{"position":[[145,20]]}},"keywords":{}}],["quot;resolvejsonmodule"",{"_index":41,"title":{},"content":{"3":{"position":[[366,30]]}},"keywords":{}}],["quot;serverlessairline"",{"_index":1138,"title":{},"content":{"167":{"position":[[986,30]]}},"keywords":{}}],["quot;service"",{"_index":1137,"title":{},"content":{"167":{"position":[[965,20]]},"175":{"position":[[727,19],[868,20]]}},"keywords":{}}],["quot;shop",{"_index":1128,"title":{},"content":{"167":{"position":[[748,14]]}},"keywords":{}}],["quot;strictnullchecks"",{"_index":34,"title":{},"content":{"3":{"position":[[204,29]]}},"keywords":{}}],["quot;successfulbooking"",{"_index":1222,"title":{},"content":{"175":{"position":[[517,30],[668,30],[794,30]]}},"keywords":{}}],["quot;syntax"",{"_index":170,"title":{},"content":{"12":{"position":[[149,19]]}},"keywords":{}}],["quot;target"",{"_index":37,"title":{},"content":{"3":{"position":[[268,19]]},"12":{"position":[[195,19]]}},"keywords":{}}],["quot;targets"",{"_index":159,"title":{},"content":{"10":{"position":[[203,20]]}},"keywords":{}}],["quot;thi",{"_index":1132,"title":{},"content":{"167":{"position":[[859,10]]}},"keywords":{}}],["quot;timestamp"",{"_index":1139,"title":{},"content":{"167":{"position":[[1017,22]]},"175":{"position":[[573,22]]}},"keywords":{}}],["quot;type"",{"_index":173,"title":{},"content":{"12":{"position":[[259,17]]}},"keywords":{}}],["quot;typeof":"function".responseschema",{"_index":2125,"title":{},"content":{"365":{"position":[[369,54]]}},"keywords":{}}],["quot;typeroots"",{"_index":39,"title":{},"content":{"3":{"position":[[308,22]]}},"keywords":{}}],["quot;unit"",{"_index":1231,"title":{},"content":{"175":{"position":[[825,17]]}},"keywords":{}}],["quot;xray_trace_id"",{"_index":1142,"title":{},"content":{"167":{"position":[[1078,26]]}},"keywords":{}}],["rais",{"_index":881,"title":{},"content":{"152":{"position":[[124,5]]}},"keywords":{}}],["random",{"_index":422,"title":{},"content":{"18":{"position":[[1064,6],[1106,6],[1144,6],[1191,6],[1222,6]]}},"keywords":{}}],["randomuuid",{"_index":1264,"title":{},"content":{"179":{"position":[[43,10],[439,13]]}},"keywords":{}}],["rate",{"_index":1088,"title":{},"content":{"166":{"position":[[415,4]]}},"keywords":{}}],["rawbodi",{"_index":2282,"title":{},"content":{"449":{"position":[[21,7]]}},"keywords":{}}],["ray",{"_index":1047,"title":{},"content":{"163":{"position":[[458,3]]},"167":{"position":[[1481,3]]},"168":{"position":[[330,3]]},"171":{"position":[[1042,3]]},"182":{"position":[[471,4]]},"323":{"position":[[174,3]]},"324":{"position":[[724,3]]},"327":{"position":[[113,5],[404,3]]},"379":{"position":[[76,3]]}},"keywords":{}}],["rd",{"_index":94,"title":{"108":{"position":[[0,3]]},"151":{"position":[[32,5]]},"284":{"position":[[0,3]]},"400":{"position":[[0,3]]},"440":{"position":[[0,3]]},"477":{"position":[[0,3]]},"507":{"position":[[0,3]]}},"content":{"6":{"position":[[533,5]]},"8":{"position":[[740,5]]},"109":{"position":[[30,3]]},"110":{"position":[[165,3]]},"151":{"position":[[32,5],[438,3]]},"283":{"position":[[142,3]]},"286":{"position":[[484,3],[849,3]]},"322":{"position":[[1209,4],[1222,3]]},"491":{"position":[[68,3]]},"507":{"position":[[25,3]]}},"keywords":{}}],["rds.amazonaws.com",{"_index":1842,"title":{},"content":{"287":{"position":[[348,24]]}},"keywords":{}}],["rds.parametergroup",{"_index":871,"title":{},"content":{"151":{"position":[[948,19]]}},"keywords":{}}],["rds.signer",{"_index":849,"title":{},"content":{"151":{"position":[[243,11]]}},"keywords":{}}],["rdssigner",{"_index":759,"title":{},"content":{"106":{"position":[[339,10],[876,10]]},"287":{"position":[[40,9],[277,11]]}},"keywords":{}}],["rdssignermiddlewar",{"_index":753,"title":{},"content":{"106":{"position":[[82,19],[304,21]]}},"keywords":{}}],["rdstoken",{"_index":1840,"title":{},"content":{"287":{"position":[[302,9]]}},"keywords":{}}],["re",{"_index":1421,"title":{},"content":{"193":{"position":[[128,3]]},"368":{"position":[[693,4]]},"395":{"position":[[13,2]]},"413":{"position":[[13,2]]},"518":{"position":[[115,2]]},"522":{"position":[[1047,5]]}},"keywords":{}}],["reach",{"_index":1380,"title":{},"content":{"187":{"position":[[874,5]]},"522":{"position":[[460,8]]}},"keywords":{}}],["react",{"_index":420,"title":{},"content":{"18":{"position":[[1044,8],[1086,8],[1124,8],[1171,8]]}},"keywords":{}}],["read",{"_index":338,"title":{},"content":{"17":{"position":[[490,4]]},"361":{"position":[[601,4]]}},"keywords":{}}],["readabl",{"_index":357,"title":{},"content":{"17":{"position":[[989,9]]}},"keywords":{}}],["readfil",{"_index":2177,"title":{},"content":{"370":{"position":[[10,8]]},"371":{"position":[[10,8]]}},"keywords":{}}],["readfile('./en.ftl",{"_index":2181,"title":{},"content":{"370":{"position":[[334,21]]}},"keywords":{}}],["readfile('./fr.ftl",{"_index":2182,"title":{},"content":{"370":{"position":[[389,21]]}},"keywords":{}}],["readi",{"_index":582,"title":{},"content":{"21":{"position":[[2195,5]]},"163":{"position":[[113,5]]},"322":{"position":[[912,5],[1042,5]]},"324":{"position":[[1652,5]]}},"keywords":{}}],["readstream",{"_index":1891,"title":{},"content":{"307":{"position":[[167,10]]}},"keywords":{}}],["readstream.pipe(transformstream",{"_index":1895,"title":{},"content":{"307":{"position":[[300,32]]}},"keywords":{}}],["real",{"_index":1491,"title":{},"content":{"200":{"position":[[810,4]]}},"keywords":{}}],["realli",{"_index":491,"title":{},"content":{"19":{"position":[[1176,6]]},"253":{"position":[[870,6]]}},"keywords":{}}],["reason",{"_index":2050,"title":{},"content":{"333":{"position":[[1064,8]]},"468":{"position":[[275,10]]}},"keywords":{}}],["recaptcha",{"_index":1960,"title":{},"content":{"322":{"position":[[1259,10],[1270,9]]}},"keywords":{}}],["receiv",{"_index":462,"title":{},"content":{"19":{"position":[[382,9]]},"199":{"position":[[655,9]]},"200":{"position":[[182,9]]},"214":{"position":[[695,9]]},"217":{"position":[[129,8]]},"297":{"position":[[640,9]]},"320":{"position":[[655,9]]},"330":{"position":[[651,9]]},"521":{"position":[[88,9],[1015,7]]}},"keywords":{}}],["recent",{"_index":1911,"title":{},"content":{"317":{"position":[[963,7]]}},"keywords":{}}],["recommend",{"_index":1285,"title":{"369":{"position":[[24,14]]}},"content":{"181":{"position":[[150,10]]},"248":{"position":[[535,11]]},"272":{"position":[[585,11]]},"365":{"position":[[1234,12]]}},"keywords":{}}],["record",{"_index":1245,"title":{},"content":{"176":{"position":[[299,7]]},"203":{"position":[[341,6]]},"222":{"position":[[142,7],[171,6],[181,8]]},"281":{"position":[[65,8]]},"300":{"position":[[69,6]]},"301":{"position":[[183,8],[252,6]]}},"keywords":{}}],["record<str",{"_index":1504,"title":{},"content":{"203":{"position":[[153,18],[185,17]]},"214":{"position":[[190,17]]}},"keywords":{}}],["recordpromis",{"_index":1870,"title":{},"content":{"301":{"position":[[142,14]]}},"keywords":{}}],["redact",{"_index":1848,"title":{},"content":{"290":{"position":[[339,6]]}},"keywords":{}}],["redi",{"_index":1976,"title":{},"content":{"324":{"position":[[7,6],[14,5]]}},"keywords":{}}],["redirect",{"_index":1983,"title":{},"content":{"324":{"position":[[340,9]]}},"keywords":{}}],["refactor",{"_index":2235,"title":{},"content":{"387":{"position":[[69,8]]},"416":{"position":[[84,8]]},"441":{"position":[[1,10]]},"510":{"position":[[1,11]]},"513":{"position":[[1,11]]}},"keywords":{}}],["refer",{"_index":1742,"title":{},"content":{"261":{"position":[[361,7]]},"361":{"position":[[535,10]]},"519":{"position":[[784,9]]}},"keywords":{}}],["reflect.get(...argu",{"_index":463,"title":{},"content":{"19":{"position":[[414,25]]}},"keywords":{}}],["regex",{"_index":675,"title":{},"content":{"31":{"position":[[2042,6]]},"43":{"position":[[2042,6]]},"46":{"position":[[2167,6]]},"97":{"position":[[2067,6]]},"150":{"position":[[2054,6]]},"270":{"position":[[80,6],[185,6],[270,6]]},"273":{"position":[[290,6],[394,6],[479,6]]}},"keywords":{}}],["region",{"_index":760,"title":{},"content":{"106":{"position":[[352,7]]},"200":{"position":[[583,7]]},"287":{"position":[[314,7]]},"318":{"position":[[260,7]]}},"keywords":{}}],["regular",{"_index":887,"title":{},"content":{"153":{"position":[[86,7]]},"338":{"position":[[146,7]]}},"keywords":{}}],["reject",{"_index":1979,"title":{},"content":{"324":{"position":[[176,8]]}},"keywords":{}}],["rejectunauthor",{"_index":863,"title":{},"content":{"151":{"position":[[717,19]]}},"keywords":{}}],["relat",{"_index":846,"title":{"151":{"position":[[4,10]]}},"content":{"151":{"position":[[4,10]]}},"keywords":{}}],["releas",{"_index":989,"title":{"187":{"position":[[0,7]]}},"content":{"161":{"position":[[206,8],[651,8]]},"187":{"position":[[0,7],[25,7],[101,7],[134,7],[199,7],[293,9],[339,8],[414,7],[429,7]]}},"keywords":{}}],["release2020",{"_index":997,"title":{},"content":{"161":{"position":[[307,11]]}},"keywords":{}}],["released2020",{"_index":1000,"title":{},"content":{"161":{"position":[[333,12]]}},"keywords":{}}],["released2021",{"_index":1008,"title":{},"content":{"161":{"position":[[435,12]]}},"keywords":{}}],["released2022",{"_index":1014,"title":{},"content":{"161":{"position":[[500,12]]}},"keywords":{}}],["released2023",{"_index":1018,"title":{},"content":{"161":{"position":[[527,12]]}},"keywords":{}}],["released2024",{"_index":1025,"title":{},"content":{"161":{"position":[[624,12]]}},"keywords":{}}],["remain",{"_index":355,"title":{},"content":{"17":{"position":[[974,7]]}},"keywords":{}}],["remov",{"_index":373,"title":{},"content":{"18":{"position":[[128,6]]},"161":{"position":[[93,6]]},"203":{"position":[[276,6]]},"261":{"position":[[166,6]]},"290":{"position":[[251,6]]},"373":{"position":[[46,7],[217,7]]},"449":{"position":[[1,6]]},"455":{"position":[[1,6]]},"462":{"position":[[1,7]]},"504":{"position":[[1,6]]},"515":{"position":[[142,7],[271,7]]},"516":{"position":[[142,8]]}},"keywords":{}}],["renam",{"_index":2240,"title":{},"content":{"394":{"position":[[1,7]]}},"keywords":{}}],["replac",{"_index":902,"title":{},"content":{"153":{"position":[[556,7]]},"271":{"position":[[357,9]]},"290":{"position":[[448,7],[528,8]]},"491":{"position":[[130,12]]},"506":{"position":[[124,8]]},"512":{"position":[[1,8]]}},"keywords":{}}],["repli",{"_index":1617,"title":{},"content":{"240":{"position":[[154,7]]}},"keywords":{}}],["report",{"_index":905,"title":{},"content":{"153":{"position":[[735,9]]},"302":{"position":[[119,9]]}},"keywords":{}}],["reportbatchitemfailur",{"_index":1875,"title":{},"content":{"302":{"position":[[11,23]]}},"keywords":{}}],["repositori",{"_index":878,"title":{},"content":{"152":{"position":[[99,11]]}},"keywords":{}}],["repres",{"_index":1815,"title":{},"content":{"282":{"position":[[254,10]]}},"keywords":{}}],["represent",{"_index":1615,"title":{},"content":{"236":{"position":[[378,15]]}},"keywords":{}}],["req",{"_index":1488,"title":{},"content":{"200":{"position":[[645,5],[937,3]]}},"keywords":{}}],["request",{"_index":306,"title":{"193":{"position":[[0,10]]},"281":{"position":[[0,7]]}},"content":{"16":{"position":[[1847,7]]},"19":{"position":[[668,9],[830,9],[960,9],[1092,9],[1215,7],[1308,9]]},"106":{"position":[[721,9],[789,8]]},"107":{"position":[[682,9],[750,8]]},"152":{"position":[[155,9]]},"158":{"position":[[283,7]]},"159":{"position":[[412,7],[893,9],[1156,9]]},"163":{"position":[[559,9]]},"170":{"position":[[319,8]]},"171":{"position":[[1164,8],[1240,7],[1329,7]]},"182":{"position":[[1123,9],[1461,9]]},"185":{"position":[[189,8],[301,7],[752,7]]},"196":{"position":[[567,7],[643,8]]},"199":{"position":[[384,8],[422,7],[1357,9],[1416,8]]},"207":{"position":[[563,7],[639,8]]},"214":{"position":[[416,8],[454,7],[806,8],[1434,9],[1493,8]]},"217":{"position":[[38,9]]},"225":{"position":[[976,9]]},"240":{"position":[[194,9],[1085,7],[1184,7],[1311,8]]},"245":{"position":[[443,7]]},"269":{"position":[[44,7]]},"272":{"position":[[335,7]]},"280":{"position":[[238,7]]},"281":{"position":[[567,8],[761,8],[899,8],[1024,8],[1204,8]]},"286":{"position":[[294,7],[370,8]]},"291":{"position":[[612,9]]},"294":{"position":[[546,7],[622,8]]},"297":{"position":[[373,8],[411,7],[751,8],[1380,9],[1439,8]]},"305":{"position":[[392,8]]},"311":{"position":[[595,7],[671,8]]},"317":{"position":[[561,7],[1116,8]]},"320":{"position":[[392,8],[430,7],[766,8],[1436,9],[1499,8]]},"324":{"position":[[1254,7]]},"327":{"position":[[526,7],[654,8],[1200,11]]},"328":{"position":[[1079,9],[1170,7]]},"330":{"position":[[1574,9],[1652,8]]},"333":{"position":[[406,7],[482,8]]},"346":{"position":[[607,8]]},"375":{"position":[[505,9],[744,9]]},"379":{"position":[[158,7]]},"414":{"position":[[108,9],[173,8]]},"423":{"position":[[23,7]]},"490":{"position":[[408,9],[453,7],[506,9],[545,7],[628,9]]},"509":{"position":[[54,7]]},"518":{"position":[[553,9],[623,9],[694,9]]},"519":{"position":[[480,9],[541,9],[604,9],[770,8],[878,10]]},"521":{"position":[[424,7],[600,7]]},"522":{"position":[[226,7],[1211,9],[1276,8],[1415,8]]}},"keywords":{}}],["request.context",{"_index":1453,"title":{},"content":{"196":{"position":[[1049,16]]},"207":{"position":[[1044,16]]},"286":{"position":[[777,16]]},"294":{"position":[[1021,16]]},"311":{"position":[[1071,16]]},"317":{"position":[[1524,16]]},"327":{"position":[[1054,16]]},"333":{"position":[[882,16]]},"365":{"position":[[263,17]]},"423":{"position":[[93,15]]}},"keywords":{}}],["request.context.config",{"_index":783,"title":{},"content":{"107":{"position":[[700,23]]}},"keywords":{}}],["request.context.defaults.glob",{"_index":2034,"title":{},"content":{"328":{"position":[[440,31]]}},"keywords":{}}],["request.context.secret",{"_index":771,"title":{},"content":{"106":{"position":[[739,23]]}},"keywords":{}}],["request.context.somesecret.password",{"_index":1927,"title":{},"content":{"320":{"position":[[1667,35]]}},"keywords":{}}],["request.context.somesecret.us",{"_index":1926,"title":{},"content":{"320":{"position":[[1623,31]]}},"keywords":{}}],["request.error",{"_index":911,"title":{},"content":{"153":{"position":[[901,13]]},"423":{"position":[[52,13]]}},"keywords":{}}],["request.error.caus",{"_index":2256,"title":{},"content":{"409":{"position":[[63,19]]}},"keywords":{}}],["request.error.cause.data",{"_index":2134,"title":{},"content":{"365":{"position":[[988,25]]}},"keywords":{}}],["request.error.detail",{"_index":2255,"title":{},"content":{"409":{"position":[[38,21]]}},"keywords":{}}],["request.error.response.import",{"_index":2135,"title":{},"content":{"365":{"position":[[1052,32]]}},"keywords":{}}],["request.ev",{"_index":2121,"title":{},"content":{"365":{"position":[[112,15]]},"423":{"position":[[113,13]]}},"keywords":{}}],["request.event.bodi",{"_index":2290,"title":{},"content":{"468":{"position":[[147,18]]}},"keywords":{}}],["request.event.rawbodi",{"_index":2289,"title":{},"content":{"468":{"position":[[123,21]]}},"keywords":{}}],["request.event.sourc",{"_index":2341,"title":{},"content":{"516":{"position":[[279,21]]}},"keywords":{}}],["request.intern",{"_index":475,"title":{},"content":{"19":{"position":[[686,16]]}},"keywords":{}}],["request.internal.cachekey",{"_index":2201,"title":{},"content":{"375":{"position":[[670,25]]}},"keywords":{}}],["request.respons",{"_index":907,"title":{},"content":{"153":{"position":[[789,16],[808,16],[961,16]]},"159":{"position":[[1249,16]]},"182":{"position":[[1554,16]]},"291":{"position":[[702,17]]},"365":{"position":[[524,18]]},"375":{"position":[[812,17]]},"490":{"position":[[560,16],[649,17]]}},"keywords":{}}],["request.response.add",{"_index":908,"title":{},"content":{"153":{"position":[[850,20]]}},"keywords":{}}],["request.support",{"_index":1171,"title":{},"content":{"168":{"position":[[191,18]]}},"keywords":{}}],["request/respons",{"_index":2006,"title":{},"content":{"324":{"position":[[1308,16]]}},"keywords":{}}],["requestend",{"_index":525,"title":{},"content":{"21":{"position":[[729,10],[868,10]]},"22":{"position":[[589,10],[728,10]]}},"keywords":{}}],["requestid",{"_index":1513,"title":{},"content":{"204":{"position":[[245,12]]}},"keywords":{}}],["requestrout",{"_index":1883,"title":{},"content":{"305":{"position":[[594,12]]}},"keywords":{}}],["requestshttp",{"_index":1801,"title":{},"content":{"281":{"position":[[263,12]]}},"keywords":{}}],["requeststart",{"_index":515,"title":{},"content":{"21":{"position":[[458,12],[790,13]]},"22":{"position":[[363,12],[650,13]]}},"keywords":{}}],["requesttoken.xray",{"_index":1884,"title":{},"content":{"305":{"position":[[611,17]]}},"keywords":{}}],["requir",{"_index":58,"title":{},"content":{"5":{"position":[[250,7]]},"16":{"position":[[1606,9],[1656,8]]},"150":{"position":[[503,8]]},"156":{"position":[[69,8]]},"166":{"position":[[533,11]]},"167":{"position":[[2555,13]]},"170":{"position":[[427,11]]},"174":{"position":[[349,11]]},"187":{"position":[[820,8]]},"196":{"position":[[519,11],[1085,8]]},"207":{"position":[[515,11],[1080,8]]},"286":{"position":[[246,11],[813,8]]},"294":{"position":[[498,11],[1057,8]]},"299":{"position":[[112,8]]},"305":{"position":[[780,8]]},"311":{"position":[[547,11],[1107,8]]},"317":{"position":[[513,11],[1560,8]]},"327":{"position":[[478,11],[1090,8],[1383,9]]},"333":{"position":[[358,11],[918,8]]},"346":{"position":[[714,8]]},"353":{"position":[[37,11],[91,11],[181,11]]},"357":{"position":[[41,11],[93,11],[212,11],[316,11],[407,8]]},"366":{"position":[[156,11]]},"367":{"position":[[183,11]]},"368":{"position":[[258,9],[1047,9],[1797,9],[1855,9]]},"447":{"position":[[107,8]]},"521":{"position":[[1117,8]]},"522":{"position":[[452,7]]}},"keywords":{}}],["require('@middy/cloudwatch",{"_index":1509,"title":{},"content":{"204":{"position":[[64,26]]}},"keywords":{}}],["require('@middy/cor",{"_index":241,"title":{},"content":{"16":{"position":[[222,22]]},"204":{"position":[[15,22]]},"339":{"position":[[15,22]]}},"keywords":{}}],["require('@middy/warmup",{"_index":2055,"title":{},"content":{"339":{"position":[[53,24]]}},"keywords":{}}],["require('crypto",{"_index":2193,"title":{},"content":{"375":{"position":[[115,17]]}},"keywords":{}}],["required.if",{"_index":2131,"title":{},"content":{"365":{"position":[[850,11]]}},"keywords":{}}],["requiredthi",{"_index":2209,"title":{},"content":{"378":{"position":[[131,12]]}},"keywords":{}}],["rerout",{"_index":1982,"title":{},"content":{"324":{"position":[[314,8]]}},"keywords":{}}],["res.bodi",{"_index":1893,"title":{},"content":{"307":{"position":[[223,9]]}},"keywords":{}}],["res.eventstream",{"_index":1429,"title":{},"content":{"193":{"position":[[339,16]]}},"keywords":{}}],["res.json",{"_index":1898,"title":{},"content":{"308":{"position":[[223,11]]}},"keywords":{}}],["res.text",{"_index":2387,"title":{},"content":{"522":{"position":[[1059,10]]}},"keywords":{}}],["resolut",{"_index":1236,"title":{},"content":{"175":{"position":[[1120,10]]}},"keywords":{}}],["resolv",{"_index":68,"title":{},"content":{"6":{"position":[[37,7],[174,8]]},"19":{"position":[[137,8]]},"140":{"position":[[300,9],[496,9]]},"522":{"position":[[306,8]]}},"keywords":{}}],["resourc",{"_index":1837,"title":{},"content":{"286":{"position":[[871,8]]}},"keywords":{}}],["respect",{"_index":1283,"title":{},"content":{"181":{"position":[[83,10]]}},"keywords":{}}],["respond",{"_index":806,"title":{"139":{"position":[[34,11]]}},"content":{"373":{"position":[[363,8]]},"509":{"position":[[29,7]]}},"keywords":{}}],["respons",{"_index":93,"title":{"190":{"position":[[10,8]]},"255":{"position":[[13,8]]},"267":{"position":[[5,8]]},"282":{"position":[[0,8]]},"303":{"position":[[10,8]]},"344":{"position":[[3,8]]},"393":{"position":[[13,9]]},"394":{"position":[[5,8]]},"402":{"position":[[10,9]]},"412":{"position":[[3,9]]},"433":{"position":[[13,9]]},"434":{"position":[[5,8]]},"441":{"position":[[10,9]]},"450":{"position":[[3,9]]},"470":{"position":[[13,9]]},"471":{"position":[[5,8]]},"478":{"position":[[10,9]]},"487":{"position":[[3,9]]},"501":{"position":[[13,9]]},"502":{"position":[[5,8]]},"509":{"position":[[10,9]]}},"content":{"6":{"position":[[507,8],[602,8]]},"8":{"position":[[490,8],[558,8],[714,8],[809,8]]},"16":{"position":[[891,8],[2061,9]]},"31":{"position":[[792,9],[860,8]]},"37":{"position":[[145,9]]},"43":{"position":[[792,9],[860,8]]},"46":{"position":[[843,9],[911,8]]},"97":{"position":[[792,9],[860,8]]},"122":{"position":[[90,9]]},"150":{"position":[[804,9],[872,8]]},"153":{"position":[[333,8],[441,9],[568,8],[638,8],[780,8],[841,8]]},"158":{"position":[[641,8]]},"159":{"position":[[87,8],[154,8],[311,8],[1199,8]]},"168":{"position":[[79,9]]},"182":{"position":[[117,8],[1504,8]]},"185":{"position":[[124,8],[317,9],[788,8]]},"196":{"position":[[800,10],[903,9]]},"197":{"position":[[266,8],[367,8]]},"207":{"position":[[795,10],[898,9]]},"212":{"position":[[125,8],[226,8]]},"214":{"position":[[1145,8],[1246,8]]},"230":{"position":[[316,9]]},"240":{"position":[[232,8],[1703,9]]},"241":{"position":[[249,9]]},"256":{"position":[[97,8]]},"257":{"position":[[110,9]]},"258":{"position":[[86,9],[149,8],[323,8],[512,9]]},"266":{"position":[[261,8]]},"268":{"position":[[89,8]]},"271":{"position":[[140,8],[257,8],[338,8],[459,9]]},"273":{"position":[[81,8],[725,9]]},"277":{"position":[[196,8]]},"281":{"position":[[1119,9]]},"282":{"position":[[61,8],[85,8],[185,8],[349,10],[408,9],[425,8],[491,8],[517,8],[604,9],[623,8]]},"283":{"position":[[209,9]]},"286":{"position":[[528,10],[631,9]]},"287":{"position":[[128,8],[229,8]]},"291":{"position":[[145,8],[246,8],[536,8]]},"294":{"position":[[772,10],[875,9],[1170,8]]},"295":{"position":[[141,8],[242,8]]},"297":{"position":[[1094,8],[1195,8]]},"304":{"position":[[94,8]]},"305":{"position":[[493,8]]},"307":{"position":[[104,9]]},"308":{"position":[[104,9]]},"311":{"position":[[822,10],[925,9]]},"312":{"position":[[142,8],[243,8]]},"317":{"position":[[1279,10],[1382,9]]},"318":{"position":[[446,9]]},"320":{"position":[[1136,8],[1237,8]]},"324":{"position":[[772,8],[824,8],[1262,9]]},"327":{"position":[[805,10],[908,9]]},"333":{"position":[[633,10],[736,9]]},"334":{"position":[[115,8],[216,8]]},"343":{"position":[[145,9]]},"345":{"position":[[87,8]]},"346":{"position":[[882,8]]},"348":{"position":[[67,9]]},"349":{"position":[[67,9]]},"354":{"position":[[124,9]]},"365":{"position":[[914,9],[1027,8]]},"368":{"position":[[775,8],[1273,9],[1326,9],[1421,8]]},"373":{"position":[[26,9],[85,8],[312,8]]},"375":{"position":[[592,8],[639,10],[659,8]]},"378":{"position":[[374,9],[412,8],[467,8]]},"379":{"position":[[178,8]]},"385":{"position":[[57,8]]},"387":{"position":[[25,8]]},"388":{"position":[[23,8]]},"394":{"position":[[114,8]]},"396":{"position":[[25,8]]},"406":{"position":[[115,8]]},"412":{"position":[[12,9]]},"490":{"position":[[532,8],[579,8]]},"496":{"position":[[104,8]]},"503":{"position":[[48,9]]},"506":{"position":[[23,8]]},"519":{"position":[[893,8]]}},"keywords":{}}],["response.secret",{"_index":1829,"title":{},"content":{"283":{"position":[[244,16]]}},"keywords":{}}],["response@seedrs/middyj",{"_index":1994,"title":{},"content":{"324":{"position":[[868,23]]}},"keywords":{}}],["responsecontenttyp",{"_index":1864,"title":{},"content":{"294":{"position":[[1185,19]]}},"keywords":{}}],["responsehttp",{"_index":1814,"title":{},"content":{"282":{"position":[[135,12]]}},"keywords":{}}],["responsejsonbodypars",{"_index":2098,"title":{},"content":{"360":{"position":[[917,22]]}},"keywords":{}}],["responseschema",{"_index":654,"title":{},"content":{"31":{"position":[[1286,14],[2238,14]]},"43":{"position":[[1286,14],[2249,14]]},"97":{"position":[[1286,14],[2263,14]]},"105":{"position":[[384,14],[643,14]]},"150":{"position":[[1298,14],[2250,14]]},"365":{"position":[[832,14]]},"368":{"position":[[996,14],[1205,14]]},"409":{"position":[[144,15]]}},"keywords":{}}],["responseschema.json",{"_index":655,"title":{},"content":{"31":{"position":[[1306,23]]},"43":{"position":[[1306,23]]},"97":{"position":[[1306,23]]},"105":{"position":[[404,23]]},"150":{"position":[[1318,23]]}},"keywords":{}}],["responsesjwt",{"_index":1998,"title":{},"content":{"324":{"position":[[1087,12]]}},"keywords":{}}],["responsewarmup",{"_index":1796,"title":{},"content":{"280":{"position":[[250,15]]}},"keywords":{}}],["rest",{"_index":282,"title":{"41":{"position":[[12,6]]}},"content":{"16":{"position":[[1160,4]]},"42":{"position":[[54,4]]}},"keywords":{}}],["result",{"_index":270,"title":{},"content":{"16":{"position":[[904,7]]},"170":{"position":[[613,6]]},"171":{"position":[[949,6]]},"176":{"position":[[154,6],[638,6]]},"281":{"position":[[945,6]]}},"keywords":{}}],["retri",{"_index":1254,"title":{},"content":{"176":{"position":[[748,6]]}},"keywords":{}}],["retriev",{"_index":1972,"title":{},"content":{"323":{"position":[[458,8]]}},"keywords":{}}],["retrydelayoptions.bas",{"_index":2026,"title":{},"content":{"327":{"position":[[1333,22]]}},"keywords":{}}],["return",{"_index":274,"title":{"159":{"position":[[6,6]]},"182":{"position":[[21,8]]}},"content":{"16":{"position":[[964,6],[2046,7]]},"19":{"position":[[407,6],[540,6]]},"21":{"position":[[272,6],[765,6],[2856,9]]},"22":{"position":[[625,6]]},"31":{"position":[[1418,6]]},"43":{"position":[[1418,6]]},"46":{"position":[[1543,6]]},"97":{"position":[[1418,6]]},"150":{"position":[[1430,6]]},"151":{"position":[[913,6]]},"153":{"position":[[650,8],[954,6]]},"156":{"position":[[311,6]]},"158":{"position":[[653,9]]},"159":{"position":[[6,6],[78,6],[147,6],[294,7],[549,7],[1029,7],[1084,6],[1268,6]]},"176":{"position":[[137,7],[622,6]]},"179":{"position":[[426,6],[611,6]]},"182":{"position":[[27,6],[108,6],[290,10],[1284,9],[1334,7],[1389,6],[1573,6]]},"191":{"position":[[136,6]]},"192":{"position":[[136,6]]},"197":{"position":[[360,6]]},"199":{"position":[[638,6],[1091,6]]},"200":{"position":[[851,6]]},"211":{"position":[[161,6]]},"212":{"position":[[219,6]]},"214":{"position":[[678,6],[1239,6]]},"221":{"position":[[55,6]]},"226":{"position":[[729,6]]},"229":{"position":[[320,8]]},"233":{"position":[[257,6]]},"236":{"position":[[356,7]]},"237":{"position":[[145,6]]},"240":{"position":[[556,8],[812,8]]},"241":{"position":[[116,6]]},"245":{"position":[[207,6]]},"249":{"position":[[525,6]]},"250":{"position":[[306,6]]},"254":{"position":[[217,6]]},"258":{"position":[[316,6]]},"262":{"position":[[143,6]]},"266":{"position":[[217,6]]},"271":{"position":[[168,6],[221,9],[317,9]]},"273":{"position":[[176,6]]},"277":{"position":[[152,6]]},"287":{"position":[[222,6]]},"291":{"position":[[239,6],[529,6]]},"295":{"position":[[235,6]]},"297":{"position":[[623,6],[1188,6]]},"301":{"position":[[245,6],[262,6]]},"307":{"position":[[285,6]]},"308":{"position":[[250,6]]},"312":{"position":[[236,6]]},"318":{"position":[[132,6]]},"320":{"position":[[641,6],[1230,6]]},"324":{"position":[[505,9],[988,6]]},"328":{"position":[[109,6],[651,6]]},"330":{"position":[[627,6],[1109,6]]},"334":{"position":[[209,6]]},"338":{"position":[[74,7]]},"343":{"position":[[193,6]]},"348":{"position":[[131,6]]},"349":{"position":[[124,6]]},"354":{"position":[[299,6],[438,6]]},"358":{"position":[[245,6],[401,6]]},"368":{"position":[[213,6],[978,6],[1747,6]]},"369":{"position":[[829,6]]},"370":{"position":[[289,6]]},"371":{"position":[[358,6]]},"373":{"position":[[78,6],[421,8]]},"375":{"position":[[652,6],[832,6]]},"378":{"position":[[367,6],[841,6]]},"379":{"position":[[218,6]]},"388":{"position":[[11,7]]},"428":{"position":[[6,6]]},"441":{"position":[[49,7]]},"490":{"position":[[173,6],[682,6],[728,6],[1110,6]]},"516":{"position":[[386,6]]},"519":{"position":[[631,6]]},"520":{"position":[[412,7],[699,6]]},"521":{"position":[[666,6]]},"522":{"position":[[1099,6],[1465,6]]}},"keywords":{}}],["reus",{"_index":1,"title":{"0":{"position":[[11,5]]}},"content":{"0":{"position":[[11,5],[157,5],[227,7]]},"186":{"position":[[109,5]]}},"keywords":{}}],["reusabl",{"_index":220,"title":{},"content":{"15":{"position":[[482,8]]}},"keywords":{}}],["revers",{"_index":2208,"title":{},"content":{"378":{"position":[[32,8]]},"388":{"position":[[124,7]]}},"keywords":{}}],["review",{"_index":1001,"title":{},"content":{"161":{"position":[[346,6],[370,6],[460,6]]},"378":{"position":[[286,7]]}},"keywords":{}}],["reviv",{"_index":1638,"title":{},"content":{"244":{"position":[[1,7],[34,7]]},"342":{"position":[[1,7],[43,7]]}},"keywords":{}}],["rewrit",{"_index":1984,"title":{},"content":{"324":{"position":[[350,7]]},"396":{"position":[[72,7]]},"406":{"position":[[10,7]]}},"keywords":{}}],["rfc",{"_index":1072,"title":{},"content":{"164":{"position":[[481,4]]}},"keywords":{}}],["right",{"_index":573,"title":{},"content":{"21":{"position":[[1975,6]]},"158":{"position":[[624,5]]},"248":{"position":[[561,5]]}},"keywords":{}}],["role",{"_index":770,"title":{},"content":{"106":{"position":[[687,10]]},"283":{"position":[[523,5]]},"286":{"position":[[762,4]]},"324":{"position":[[1394,5]]},"327":{"position":[[297,4],[1039,4]]},"507":{"position":[[70,6]]},"514":{"position":[[32,4]]}},"keywords":{}}],["rolearn",{"_index":769,"title":{},"content":{"106":{"position":[[678,8]]},"334":{"position":[[297,8]]}},"keywords":{}}],["rolesessionnam",{"_index":2052,"title":{},"content":{"334":{"position":[[313,16]]}},"keywords":{}}],["rollup",{"_index":65,"title":{"6":{"position":[[0,7]]}},"content":{"6":{"position":[[10,6]]}},"keywords":{}}],["rollup.config.mj",{"_index":72,"title":{},"content":{"6":{"position":[[105,18]]}},"keywords":{}}],["rollup/plugin",{"_index":66,"title":{},"content":{"6":{"position":[[17,14],[45,14],[153,15],[204,15]]}},"keywords":{}}],["room",{"_index":2373,"title":{},"content":{"521":{"position":[[959,4]]}},"keywords":{}}],["rotat",{"_index":852,"title":{},"content":{"151":{"position":[[379,8]]},"317":{"position":[[997,8]]}},"keywords":{}}],["round",{"_index":1548,"title":{},"content":{"221":{"position":[[164,5]]},"516":{"position":[[29,5]]}},"keywords":{}}],["rout",{"_index":693,"title":{},"content":{"37":{"position":[[412,6]]},"46":{"position":[[1350,6]]},"322":{"position":[[1363,6]]},"353":{"position":[[1,6],[58,5],[117,5]]},"354":{"position":[[469,6]]},"357":{"position":[[1,6],[62,5]]},"358":{"position":[[452,6]]},"395":{"position":[[16,7]]},"413":{"position":[[16,7]]}},"keywords":{}}],["routekey",{"_index":694,"title":{},"content":{"37":{"position":[[425,9],[476,9],[533,9]]},"353":{"position":[[73,8]]},"354":{"position":[[482,9],[533,9]]}},"keywords":{}}],["router",{"_index":686,"title":{"351":{"position":[[3,6]]},"355":{"position":[[5,6]]},"395":{"position":[[5,7]]},"413":{"position":[[3,7]]},"435":{"position":[[5,7]]},"451":{"position":[[3,7]]},"472":{"position":[[5,7]]},"488":{"position":[[3,7]]}},"content":{"37":{"position":[[194,7]]},"46":{"position":[[76,7]]},"322":{"position":[[1355,7]]},"352":{"position":[[75,6]]},"353":{"position":[[289,6],[471,6]]},"354":{"position":[[72,7]]},"356":{"position":[[89,6]]},"357":{"position":[[521,6],[703,6]]},"358":{"position":[[76,7]]}},"keywords":{}}],["routers!bett",{"_index":2205,"title":{},"content":{"377":{"position":[[47,14]]}},"keywords":{}}],["routes[].path",{"_index":2080,"title":{},"content":{"357":{"position":[[426,13]]}},"keywords":{}}],["rule",{"_index":1986,"title":{},"content":{"324":{"position":[[404,5]]}},"keywords":{}}],["run",{"_index":510,"title":{},"content":{"21":{"position":[[383,3],[2184,3]]},"168":{"position":[[380,7]]},"189":{"position":[[1420,7]]},"210":{"position":[[270,7]]},"230":{"position":[[276,4]]},"240":{"position":[[1663,4]]},"241":{"position":[[209,4]]},"266":{"position":[[403,4]]},"271":{"position":[[100,4]]},"277":{"position":[[262,4]]},"318":{"position":[[341,7]]},"353":{"position":[[508,3]]},"357":{"position":[[740,3]]},"369":{"position":[[1,3],[30,7]]},"447":{"position":[[169,3]]}},"keywords":{}}],["runonbefor",{"_index":1527,"title":{},"content":{"210":{"position":[[216,11]]}},"keywords":{}}],["runonerror",{"_index":1532,"title":{},"content":{"211":{"position":[[238,11]]}},"keywords":{}}],["runtim",{"_index":1353,"title":{},"content":{"187":{"position":[[285,7],[369,8]]},"362":{"position":[[124,7]]}},"keywords":{}}],["s3",{"_index":97,"title":{"111":{"position":[[0,2]]},"120":{"position":[[0,2]]},"123":{"position":[[0,2]]},"292":{"position":[[0,2]]},"303":{"position":[[0,2]]},"401":{"position":[[0,2]]},"402":{"position":[[0,2]]},"441":{"position":[[0,2]]},"478":{"position":[[0,2]]},"508":{"position":[[0,2]]},"509":{"position":[[0,2]]}},"content":{"6":{"position":[[577,4]]},"8":{"position":[[784,4]]},"107":{"position":[[457,3],[858,3]]},"112":{"position":[[30,2]]},"121":{"position":[[14,2],[30,2],[72,2]]},"124":{"position":[[30,2]]},"125":{"position":[[165,2]]},"253":{"position":[[994,2]]},"283":{"position":[[234,2]]},"293":{"position":[[126,2]]},"294":{"position":[[736,4]]},"295":{"position":[[40,2],[290,4]]},"296":{"position":[[41,2]]},"297":{"position":[[12,2],[370,2],[982,3],[1220,4]]},"304":{"position":[[142,2]]},"305":{"position":[[816,2]]},"314":{"position":[[41,2]]},"324":{"position":[[425,2]]},"509":{"position":[[40,2]]}},"keywords":{}}],["s3.awsclientopt",{"_index":1879,"title":{},"content":{"305":{"position":[[145,19]]}},"keywords":{}}],["s3.s3",{"_index":1828,"title":{},"content":{"283":{"position":[[196,5]]}},"keywords":{}}],["s3.writegetobjectrespons",{"_index":1882,"title":{},"content":{"305":{"position":[[557,26]]}},"keywords":{}}],["s3:getobjectif",{"_index":1862,"title":{},"content":{"294":{"position":[[1093,14]]}},"keywords":{}}],["s3client",{"_index":1861,"title":{},"content":{"294":{"position":[[29,10],[40,8],[221,8]]},"305":{"position":[[29,10],[40,8],[205,8]]}},"keywords":{}}],["s3middlewar",{"_index":776,"title":{},"content":{"107":{"position":[[133,12],[429,14]]}},"keywords":{}}],["s3objectfetch",{"_index":2279,"title":{},"content":{"441":{"position":[[57,13]]}},"keywords":{}}],["s3objectrespons",{"_index":1890,"title":{},"content":{"307":{"position":[[64,16]]},"308":{"position":[[64,16]]}},"keywords":{}}],["s3objectresponsemiddlewar",{"_index":793,"title":{},"content":{"122":{"position":[[40,26]]}},"keywords":{}}],["s3req",{"_index":1866,"title":{},"content":{"297":{"position":[[254,5],[593,5],[935,6],[988,5]]}},"keywords":{}}],["s3req<paramtype>(config",{"_index":1867,"title":{},"content":{"297":{"position":[[544,30]]}},"keywords":{}}],["s3req<{field1",{"_index":1868,"title":{},"content":{"297":{"position":[[1246,17]]}},"keywords":{}}],["safe",{"_index":1253,"title":{},"content":{"176":{"position":[[740,4]]},"189":{"position":[[256,6]]},"221":{"position":[[159,4]]},"386":{"position":[[54,4]]}},"keywords":{}}],["same",{"_index":484,"title":{},"content":{"19":{"position":[[892,4]]},"153":{"position":[[236,4]]},"171":{"position":[[1477,4]]},"176":{"position":[[76,4],[149,4],[182,4],[316,4],[572,4],[633,4],[690,4]]},"186":{"position":[[279,4]]},"416":{"position":[[256,4]]}},"keywords":{}}],["sampl",{"_index":933,"title":{"167":{"position":[[0,6]]},"171":{"position":[[0,6]]},"175":{"position":[[0,6]]},"179":{"position":[[0,6]]},"197":{"position":[[0,6]]},"204":{"position":[[0,6]]},"211":{"position":[[0,6]]},"212":{"position":[[0,6]]},"218":{"position":[[0,6]]},"222":{"position":[[0,6]]},"226":{"position":[[0,6]]},"230":{"position":[[0,6]]},"233":{"position":[[0,6]]},"237":{"position":[[0,6]]},"241":{"position":[[0,6]]},"245":{"position":[[0,6]]},"249":{"position":[[0,6]]},"254":{"position":[[0,6]]},"258":{"position":[[0,6]]},"262":{"position":[[0,6]]},"266":{"position":[[0,6]]},"273":{"position":[[0,6]]},"277":{"position":[[0,6]]},"287":{"position":[[0,6]]},"291":{"position":[[0,6]]},"295":{"position":[[0,6]]},"301":{"position":[[0,6]]},"306":{"position":[[0,6]]},"312":{"position":[[0,6]]},"318":{"position":[[0,6]]},"328":{"position":[[0,6]]},"334":{"position":[[0,6]]},"339":{"position":[[0,6]]},"343":{"position":[[0,6]]},"347":{"position":[[0,6]]},"354":{"position":[[0,6]]},"358":{"position":[[0,6]]},"368":{"position":[[0,6]]}},"content":{"157":{"position":[[57,7],[102,7],[147,7],[535,7],[580,7],[625,7]]},"159":{"position":[[616,6],[1343,6]]},"164":{"position":[[250,8]]},"166":{"position":[[408,6]]},"182":{"position":[[1648,6]]},"266":{"position":[[427,6]]},"277":{"position":[[286,6]]}},"keywords":{}}],["save",{"_index":915,"title":{},"content":{"155":{"position":[[63,4],[233,4]]},"165":{"position":[[27,4]]},"169":{"position":[[27,4]]},"173":{"position":[[27,4]]},"177":{"position":[[27,4]]},"195":{"position":[[72,4],[108,4]]},"202":{"position":[[72,4]]},"206":{"position":[[72,4],[107,4]]},"209":{"position":[[72,4]]},"216":{"position":[[72,4]]},"220":{"position":[[72,4]]},"224":{"position":[[72,4]]},"228":{"position":[[72,4]]},"232":{"position":[[72,4]]},"235":{"position":[[72,4]]},"239":{"position":[[72,4]]},"243":{"position":[[72,4]]},"247":{"position":[[72,4]]},"252":{"position":[[72,4]]},"256":{"position":[[72,4]]},"260":{"position":[[72,4]]},"264":{"position":[[72,4]]},"268":{"position":[[72,4]]},"275":{"position":[[72,4]]},"285":{"position":[[72,4],[109,4]]},"289":{"position":[[72,4]]},"293":{"position":[[72,4],[101,4]]},"299":{"position":[[72,4],[150,4]]},"304":{"position":[[72,4],[117,4]]},"310":{"position":[[72,4],[116,4]]},"316":{"position":[[72,4],[114,4]]},"326":{"position":[[72,4],[102,4]]},"332":{"position":[[72,4],[102,4]]},"337":{"position":[[72,4]]},"341":{"position":[[60,4]]},"345":{"position":[[72,4],[110,4]]},"352":{"position":[[60,4]]},"356":{"position":[[72,4]]},"364":{"position":[[72,4],[108,4]]}},"keywords":{}}],["schedul",{"_index":1912,"title":{},"content":{"317":{"position":[[1006,10]]}},"keywords":{}}],["schema",{"_index":283,"title":{},"content":{"16":{"position":[[1188,6]]},"18":{"position":[[920,6],[952,6]]},"21":{"position":[[2211,6],[2306,6]]},"140":{"position":[[432,7]]},"365":{"position":[[1097,7],[1202,8]]},"366":{"position":[[16,6],[140,6],[173,6]]},"368":{"position":[[231,6],[1970,6]]},"484":{"position":[[803,7]]},"515":{"position":[[47,6]]}},"keywords":{}}],["schema.event.j",{"_index":2174,"title":{},"content":{"369":{"position":[[712,19]]}},"keywords":{}}],["schema.event.json",{"_index":2179,"title":{},"content":{"370":{"position":[[220,21]]},"371":{"position":[[289,21]]}},"keywords":{}}],["schema.html#json",{"_index":2158,"title":{},"content":{"368":{"position":[[2009,16]]}},"keywords":{}}],["schemas.w",{"_index":1812,"title":{},"content":{"281":{"position":[[1144,10]]}},"keywords":{}}],["scone",{"_index":1758,"title":{},"content":{"266":{"position":[[678,8]]}},"keywords":{}}],["scope",{"_index":1358,"title":{},"content":{"187":{"position":[[451,7]]}},"keywords":{}}],["scopenormalizehttprespons",{"_index":2226,"title":{},"content":{"379":{"position":[[121,26]]}},"keywords":{}}],["script",{"_index":2160,"title":{},"content":{"369":{"position":[[13,6]]}},"keywords":{}}],["sdk",{"_index":89,"title":{},"content":{"6":{"position":[[447,3]]},"8":{"position":[[654,3]]},"122":{"position":[[163,3]]},"163":{"position":[[462,3],[577,3]]},"168":{"position":[[306,3],[334,3]]},"171":{"position":[[1434,3]]},"196":{"position":[[493,3]]},"198":{"position":[[17,3]]},"207":{"position":[[489,3]]},"213":{"position":[[17,3]]},"288":{"position":[[17,3]]},"294":{"position":[[472,3]]},"296":{"position":[[17,3]]},"305":{"position":[[328,3],[727,3]]},"311":{"position":[[521,3]]},"313":{"position":[[17,3]]},"314":{"position":[[17,3]]},"317":{"position":[[487,3]]},"319":{"position":[[17,3]]},"327":{"position":[[452,3]]},"329":{"position":[[17,3]]},"333":{"position":[[332,3]]},"335":{"position":[[17,3]]},"346":{"position":[[543,3]]},"350":{"position":[[17,3]]},"420":{"position":[[8,3]]},"454":{"position":[[20,3]]},"477":{"position":[[20,3]]},"478":{"position":[[20,3]]},"479":{"position":[[20,3]]},"480":{"position":[[20,3]]},"482":{"position":[[20,3]]},"483":{"position":[[20,3]]},"487":{"position":[[20,3]]}},"keywords":{}}],["sdk/client",{"_index":90,"title":{},"content":{"6":{"position":[[457,10],[522,10],[566,10],[617,10],[678,10],[742,10],[779,10]]},"8":{"position":[[664,10],[729,10],[773,10],[824,10],[885,10],[949,10],[986,10]]},"171":{"position":[[155,10]]},"177":{"position":[[72,10]]},"193":{"position":[[69,10]]},"195":{"position":[[122,10]]},"196":{"position":[[148,10]]},"198":{"position":[[30,10]]},"206":{"position":[[121,10]]},"207":{"position":[[146,10]]},"213":{"position":[[30,10]]},"293":{"position":[[115,10]]},"294":{"position":[[134,10]]},"296":{"position":[[30,10]]},"299":{"position":[[164,10]]},"304":{"position":[[131,10]]},"305":{"position":[[134,10]]},"310":{"position":[[130,10]]},"311":{"position":[[162,10]]},"313":{"position":[[30,10]]},"314":{"position":[[30,10]]},"316":{"position":[[128,10]]},"317":{"position":[[158,10]]},"319":{"position":[[30,10]]},"326":{"position":[[116,10]]},"327":{"position":[[137,10]]},"329":{"position":[[30,10]]},"332":{"position":[[116,10]]},"333":{"position":[[136,10]]},"335":{"position":[[30,10]]},"345":{"position":[[124,10]]},"346":{"position":[[170,10]]},"350":{"position":[[30,10]]}},"keywords":{}}],["sdk/lib",{"_index":1256,"title":{},"content":{"177":{"position":[[97,7]]}},"keywords":{}}],["sdk/rd",{"_index":1833,"title":{},"content":{"285":{"position":[[123,7]]},"286":{"position":[[130,7]]},"288":{"position":[[30,7]]}},"keywords":{}}],["sdk/util",{"_index":1522,"title":{},"content":{"206":{"position":[[146,8]]}},"keywords":{}}],["se",{"_index":802,"title":{"126":{"position":[[0,3]]}},"content":{"127":{"position":[[30,3]]}},"keywords":{}}],["sec",{"_index":2105,"title":{},"content":{"361":{"position":[[125,3],[258,3]]}},"keywords":{}}],["secret",{"_index":751,"title":{"106":{"position":[[5,8]]},"132":{"position":[[0,7]]},"315":{"position":[[0,7]]},"403":{"position":[[0,7]]},"442":{"position":[[0,7]]},"479":{"position":[[0,7]]},"510":{"position":[[0,7]]}},"content":{"133":{"position":[[23,7]]},"171":{"position":[[166,7]]},"196":{"position":[[338,7]]},"200":{"position":[[229,7],[242,7],[800,6]]},"207":{"position":[[334,7]]},"283":{"position":[[298,7]]},"294":{"position":[[317,7]]},"311":{"position":[[366,7]]},"316":{"position":[[139,7]]},"317":{"position":[[169,7],[341,7],[728,7],[974,7],[1230,7],[1513,7]]},"318":{"position":[[402,7]]},"319":{"position":[[41,7]]},"320":{"position":[[177,7],[260,6],[610,6],[950,7],[1016,6]]},"323":{"position":[[546,7]]},"328":{"position":[[1016,8]]},"330":{"position":[[1511,8]]},"346":{"position":[[388,7]]}},"keywords":{}}],["secret<paramtype>(key",{"_index":1919,"title":{},"content":{"320":{"position":[[563,28]]}},"keywords":{}}],["secret<{us",{"_index":1921,"title":{},"content":{"320":{"position":[[1327,16]]}},"keywords":{}}],["secretid.fetchrotationd",{"_index":1904,"title":{},"content":{"317":{"position":[[579,26]]}},"keywords":{}}],["secretsmanag",{"_index":100,"title":{},"content":{"6":{"position":[[628,16]]},"8":{"position":[[835,16]]},"106":{"position":[[508,15],[887,15]]},"151":{"position":[[255,15],[334,14]]},"200":{"position":[[298,14],[504,16],[715,14]]},"318":{"position":[[40,14],[181,16]]},"320":{"position":[[16,14],[377,14],[998,15],[1285,16]]}},"keywords":{}}],["secretsmanager:describesecret",{"_index":1916,"title":{},"content":{"317":{"position":[[1658,29]]}},"keywords":{}}],["secretsmanager:getsecretvalu",{"_index":1914,"title":{},"content":{"317":{"position":[[1596,30]]}},"keywords":{}}],["secretsmanagercli",{"_index":1183,"title":{},"content":{"171":{"position":[[121,20],[295,24]]},"317":{"position":[[29,22],[52,20],[242,20]]}},"keywords":{}}],["secretsmanagermiddlewar",{"_index":754,"title":{},"content":{"106":{"position":[[134,24],[468,26]]}},"keywords":{}}],["section",{"_index":176,"title":{},"content":{"13":{"position":[[14,7]]},"157":{"position":[[996,8]]},"182":{"position":[[34,8],[735,8]]}},"keywords":{}}],["secur",{"_index":185,"title":{"259":{"position":[[5,8]]},"396":{"position":[[5,8]]},"436":{"position":[[5,8]]},"473":{"position":[[5,8]]},"503":{"position":[[5,8]]}},"content":{"13":{"position":[[107,8]]},"31":{"position":[[936,8]]},"43":{"position":[[936,8]]},"46":{"position":[[987,8]]},"97":{"position":[[936,8]]},"150":{"position":[[948,8]]},"151":{"position":[[226,6],[324,6]]},"260":{"position":[[89,8]]},"262":{"position":[[78,8]]},"282":{"position":[[289,8],[329,8]]},"333":{"position":[[1055,8]]},"400":{"position":[[44,8]]},"403":{"position":[[44,8]]},"522":{"position":[[95,8]]}},"keywords":{}}],["securestr",{"_index":2015,"title":{},"content":{"327":{"position":[[556,12]]}},"keywords":{}}],["securestring.ssm",{"_index":850,"title":{},"content":{"151":{"position":[[281,16]]}},"keywords":{}}],["securityienoopen",{"_index":1735,"title":{},"content":{"261":{"position":[[234,16]]}},"keywords":{}}],["see",{"_index":15,"title":{},"content":{"0":{"position":[[223,3]]},"21":{"position":[[2798,3]]},"156":{"position":[[13,3]]},"158":{"position":[[688,3]]},"167":{"position":[[1169,4],[2273,3]]},"172":{"position":[[615,3]]},"181":{"position":[[603,3]]},"196":{"position":[[358,3]]},"203":{"position":[[422,3]]},"207":{"position":[[354,3]]},"294":{"position":[[337,3]]},"302":{"position":[[115,3]]},"305":{"position":[[691,3]]},"311":{"position":[[386,3]]},"317":{"position":[[361,3]]},"327":{"position":[[321,3]]},"333":{"position":[[1073,3]]},"346":{"position":[[408,3]]},"360":{"position":[[338,3]]},"378":{"position":[[204,4]]},"425":{"position":[[53,4]]},"447":{"position":[[53,4]]},"468":{"position":[[208,3]]},"510":{"position":[[13,3]]},"513":{"position":[[13,3]]},"517":{"position":[[57,3]]},"518":{"position":[[360,3],[788,3]]},"521":{"position":[[1040,3]]}},"keywords":{}}],["seen",{"_index":1333,"title":{},"content":{"186":{"position":[[237,4]]}},"keywords":{}}],["segment",{"_index":1170,"title":{},"content":{"168":{"position":[[173,8]]},"170":{"position":[[331,7],[623,7]]},"171":{"position":[[575,7],[692,7],[819,8],[993,7],[1312,7]]},"181":{"position":[[341,7],[505,7]]},"182":{"position":[[446,7]]}},"keywords":{}}],["self",{"_index":736,"title":{"92":{"position":[[7,4]]}},"content":{"93":{"position":[[19,4]]}},"keywords":{}}],["send",{"_index":1298,"title":{},"content":{"182":{"position":[[458,4]]}},"keywords":{}}],["sensit",{"_index":1849,"title":{},"content":{"290":{"position":[[346,9]]}},"keywords":{}}],["sent",{"_index":1190,"title":{},"content":{"171":{"position":[[1028,4]]},"175":{"position":[[938,4]]},"185":{"position":[[812,4]]}},"keywords":{}}],["separ",{"_index":2133,"title":{},"content":{"365":{"position":[[951,11]]}},"keywords":{}}],["sequenc",{"_index":903,"title":{},"content":{"153":{"position":[[624,9]]}},"keywords":{}}],["serial",{"_index":217,"title":{"267":{"position":[[14,10]]},"271":{"position":[[0,10]]},"394":{"position":[[14,11]]},"434":{"position":[[14,11]]},"471":{"position":[[14,11]]},"502":{"position":[[14,11]]}},"content":{"15":{"position":[[445,14]]},"17":{"position":[[326,14]]},"31":{"position":[[869,11],[2025,12],[2072,11]]},"43":{"position":[[869,11],[2025,12],[2072,11]]},"46":{"position":[[920,11],[2150,12],[2197,11]]},"97":{"position":[[869,11],[2050,12],[2097,11]]},"150":{"position":[[881,11],[2037,12],[2084,11]]},"159":{"position":[[432,14]]},"268":{"position":[[98,10]]},"270":{"position":[[47,12],[63,12],[109,11],[215,11],[294,11]]},"271":{"position":[[17,10],[77,10]]},"272":{"position":[[61,10],[502,10]]},"273":{"position":[[90,11],[273,12],[319,11],[424,11],[503,11]]},"282":{"position":[[500,11]]},"324":{"position":[[781,11],[809,10]]}},"keywords":{}}],["serializer.sq",{"_index":1820,"title":{},"content":{"282":{"position":[[526,14]]}},"keywords":{}}],["serv",{"_index":1847,"title":{},"content":{"290":{"position":[[314,5]]},"518":{"position":[[62,5]]}},"keywords":{}}],["server",{"_index":815,"title":{"140":{"position":[[7,6]]}},"content":{"140":{"position":[[7,6],[218,6]]}},"keywords":{}}],["server/x",{"_index":1732,"title":{},"content":{"261":{"position":[[177,8]]}},"keywords":{}}],["serverless",{"_index":318,"title":{"146":{"position":[[0,10]]},"147":{"position":[[0,10]]}},"content":{"17":{"position":[[30,10],[1150,10]]},"146":{"position":[[0,10],[170,10]]},"147":{"position":[[0,10]]},"161":{"position":[[121,10]]},"163":{"position":[[119,10]]},"338":{"position":[[246,10]]},"516":{"position":[[305,11]]}},"keywords":{}}],["serverless/ev",{"_index":405,"title":{},"content":{"18":{"position":[[763,20]]}},"keywords":{}}],["serverlessairlin",{"_index":1100,"title":{},"content":{"167":{"position":[[152,19]]},"171":{"position":[[225,19]]},"175":{"position":[[158,20]]}},"keywords":{}}],["servic",{"_index":8,"title":{"151":{"position":[[24,7]]},"309":{"position":[[0,7]]},"404":{"position":[[0,7]]},"443":{"position":[[0,7]]},"480":{"position":[[0,7]]}},"content":{"0":{"position":[[90,9]]},"151":{"position":[[24,7]]},"166":{"position":[[249,7]]},"168":{"position":[[46,7]]},"170":{"position":[[97,7]]},"171":{"position":[[894,7],[1378,7]]},"172":{"position":[[267,8]]},"174":{"position":[[97,7]]},"175":{"position":[[990,8]]},"283":{"position":[[341,7],[557,9]]}},"keywords":{}}],["service_undefined.defaultnamespac",{"_index":1210,"title":{},"content":{"174":{"position":[[170,34]]}},"keywords":{}}],["service_undefined.en",{"_index":1177,"title":{},"content":{"170":{"position":[[170,25]]}},"keywords":{}}],["service_undefined.sampleratevalu",{"_index":1084,"title":{},"content":{"166":{"position":[[322,33]]}},"keywords":{}}],["servicediscoveri",{"_index":103,"title":{},"content":{"6":{"position":[[689,18]]},"8":{"position":[[896,18]]},"310":{"position":[[141,16]]},"312":{"position":[[40,16],[291,18]]},"313":{"position":[[41,16]]}},"keywords":{}}],["servicediscovery.awsclientopt",{"_index":1900,"title":{},"content":{"311":{"position":[[173,33]]}},"keywords":{}}],["servicediscovery:discoverinst",{"_index":1901,"title":{},"content":{"311":{"position":[[1143,34]]}},"keywords":{}}],["servicediscoverycli",{"_index":1899,"title":{},"content":{"311":{"position":[[29,24],[54,22],[256,22]]}},"keywords":{}}],["servicenam",{"_index":1099,"title":{},"content":{"167":{"position":[[139,12]]},"170":{"position":[[75,11]]},"171":{"position":[[212,12]]},"174":{"position":[[75,11]]},"175":{"position":[[179,12]]},"312":{"position":[[358,12]]}},"keywords":{}}],["services.ssm",{"_index":1831,"title":{},"content":{"283":{"position":[[409,13]]}},"keywords":{}}],["set",{"_index":3,"title":{},"content":{"0":{"position":[[28,3]]},"19":{"position":[[79,3],[443,4]]},"21":{"position":[[2846,4]]},"151":{"position":[[985,3]]},"189":{"position":[[444,3],[910,7]]},"196":{"position":[[379,3],[684,7]]},"203":{"position":[[66,4]]},"207":{"position":[[375,3],[680,7]]},"210":{"position":[[27,4],[177,3],[249,4]]},"225":{"position":[[834,3]]},"229":{"position":[[271,3]]},"240":{"position":[[41,4],[204,3]]},"261":{"position":[[251,4]]},"271":{"position":[[65,3]]},"280":{"position":[[134,4]]},"282":{"position":[[24,4],[109,4]]},"286":{"position":[[411,7]]},"294":{"position":[[358,3],[663,7],[1156,3]]},"305":{"position":[[433,7]]},"311":{"position":[[407,3],[712,7]]},"317":{"position":[[382,3],[1157,7]]},"327":{"position":[[342,3],[695,7]]},"333":{"position":[[523,7]]},"338":{"position":[[239,3]]},"346":{"position":[[429,3],[648,7],[815,3],[830,3],[930,3]]},"357":{"position":[[823,3],[842,3]]},"378":{"position":[[854,3]]},"379":{"position":[[38,3]]},"390":{"position":[[34,3]]},"416":{"position":[[285,3]]},"444":{"position":[[37,3]]},"456":{"position":[[28,3]]},"469":{"position":[[19,3]]},"520":{"position":[[236,3],[364,3]]}},"keywords":{}}],["setprototypeof/test",{"_index":428,"title":{},"content":{"18":{"position":[[1244,22]]}},"keywords":{}}],["settocontext",{"_index":1487,"title":{},"content":{"200":{"position":[[606,13]]},"295":{"position":[[349,13]]},"297":{"position":[[1342,13]]},"318":{"position":[[283,13]]},"320":{"position":[[1398,13],[1599,14]]},"328":{"position":[[373,13]]},"522":{"position":[[736,13]]}},"keywords":{}}],["settoenv",{"_index":2246,"title":{},"content":{"400":{"position":[[12,8]]},"403":{"position":[[12,8]]},"407":{"position":[[12,8]]},"414":{"position":[[19,8]]}},"keywords":{}}],["setup",{"_index":371,"title":{},"content":{"18":{"position":[[97,6]]},"21":{"position":[[2025,5]]},"158":{"position":[[67,6]]}},"keywords":{}}],["setvalu",{"_index":2198,"title":{},"content":{"375":{"position":[[346,9]]}},"keywords":{}}],["sever",{"_index":1144,"title":{},"content":{"167":{"position":[[1197,7]]}},"keywords":{}}],["severless",{"_index":1950,"title":{},"content":{"322":{"position":[[902,9],[1032,9]]},"324":{"position":[[1642,9]]}},"keywords":{}}],["shake",{"_index":2303,"title":{},"content":{"484":{"position":[[403,7]]}},"keywords":{}}],["shape",{"_index":1464,"title":{},"content":{"199":{"position":[[105,5]]},"214":{"position":[[104,5]]},"297":{"position":[[108,5]]},"320":{"position":[[117,5]]},"330":{"position":[[95,5]]}},"keywords":{}}],["shield",{"_index":2319,"title":{"493":{"position":[[9,7]]}},"content":{},"keywords":{}}],["shift",{"_index":321,"title":{},"content":{"17":{"position":[[116,7]]}},"keywords":{}}],["ship",{"_index":378,"title":{},"content":{"18":{"position":[[223,7]]}},"keywords":{}}],["short",{"_index":2188,"title":{},"content":{"373":{"position":[[324,5]]},"378":{"position":[[394,5]]},"388":{"position":[[35,5]]}},"keywords":{}}],["shortcut",{"_index":2348,"title":{},"content":{"518":{"position":[[294,8]]}},"keywords":{}}],["shortli",{"_index":1383,"title":{},"content":{"189":{"position":[[197,7]]}},"keywords":{}}],["show",{"_index":603,"title":{},"content":{"21":{"position":[[2637,5]]},"322":{"position":[[1144,5]]}},"keywords":{}}],["shown",{"_index":1663,"title":{},"content":{"248":{"position":[[451,5]]}},"keywords":{}}],["side",{"_index":1251,"title":{},"content":{"176":{"position":[[519,4]]}},"keywords":{}}],["signal",{"_index":457,"title":{},"content":{"19":{"position":[[299,6]]},"26":{"position":[[90,9]]},"28":{"position":[[91,6]]},"31":{"position":[[2320,6]]},"34":{"position":[[91,6]]},"40":{"position":[[90,9]]},"43":{"position":[[2331,6]]},"49":{"position":[[90,9]]},"52":{"position":[[188,9]]},"55":{"position":[[160,9]]},"58":{"position":[[90,9]]},"61":{"position":[[188,9]]},"64":{"position":[[188,9]]},"67":{"position":[[188,9]]},"70":{"position":[[90,9]]},"73":{"position":[[90,9]]},"76":{"position":[[91,6]]},"79":{"position":[[90,9]]},"82":{"position":[[90,9]]},"85":{"position":[[90,9]]},"88":{"position":[[91,6]]},"91":{"position":[[188,9]]},"94":{"position":[[188,9]]},"97":{"position":[[2345,6]]},"100":{"position":[[188,9]]},"103":{"position":[[188,9]]},"105":{"position":[[696,6]]},"106":{"position":[[835,6]]},"107":{"position":[[796,6]]},"110":{"position":[[218,9]]},"113":{"position":[[188,9]]},"116":{"position":[[188,9]]},"119":{"position":[[90,9]]},"122":{"position":[[360,9]]},"125":{"position":[[227,9]]},"128":{"position":[[90,9]]},"131":{"position":[[188,9]]},"134":{"position":[[90,9]]},"137":{"position":[[90,9]]},"143":{"position":[[289,9]]},"150":{"position":[[2332,6]]},"189":{"position":[[190,6],[1236,7]]},"353":{"position":[[221,9]]},"378":{"position":[[501,8]]},"520":{"position":[[158,9],[535,6]]}},"keywords":{}}],["signal.onabort",{"_index":2364,"title":{},"content":{"520":{"position":[[553,14]]}},"keywords":{}}],["signatur",{"_index":2354,"title":{},"content":{"519":{"position":[[322,10]]}},"keywords":{}}],["signer",{"_index":96,"title":{"284":{"position":[[4,6]]},"400":{"position":[[4,7]]},"440":{"position":[[4,7]]},"477":{"position":[[4,7]]},"507":{"position":[[4,7]]}},"content":{"6":{"position":[[553,6]]},"8":{"position":[[760,6]]},"106":{"position":[[119,7]]},"283":{"position":[[102,7]]},"285":{"position":[[88,6],[131,6]]},"286":{"position":[[29,8],[38,6],[202,6],[488,8]]},"287":{"position":[[67,7]]},"288":{"position":[[38,6]]}},"keywords":{}}],["signer.awsclientopt",{"_index":1834,"title":{},"content":{"286":{"position":[[138,23]]}},"keywords":{}}],["significantli",{"_index":1687,"title":{},"content":{"253":{"position":[[580,13]]}},"keywords":{}}],["silent",{"_index":1079,"title":{},"content":{"166":{"position":[[184,7]]}},"keywords":{}}],["similar",{"_index":360,"title":{},"content":{"17":{"position":[[1047,7]]},"175":{"position":[[488,7]]},"186":{"position":[[377,7]]}},"keywords":{}}],["simpl",{"_index":193,"title":{},"content":{"15":{"position":[[17,6]]},"156":{"position":[[58,6]]},"290":{"position":[[325,6]]},"324":{"position":[[995,6]]},"365":{"position":[[1190,6]]},"518":{"position":[[399,6],[898,6]]}},"keywords":{}}],["simpli",{"_index":1985,"title":{},"content":{"324":{"position":[[387,6]]}},"keywords":{}}],["simplifi",{"_index":196,"title":{},"content":{"15":{"position":[[61,8]]},"186":{"position":[[95,8]]},"282":{"position":[[367,10]]}},"keywords":{}}],["singl",{"_index":940,"title":{},"content":{"157":{"position":[[375,6],[465,6]]},"167":{"position":[[1761,6]]},"172":{"position":[[54,6]]},"328":{"position":[[251,6],[877,6]]},"330":{"position":[[1275,6]]}},"keywords":{}}],["size",{"_index":1551,"title":{},"content":{"221":{"position":[[209,5]]}},"keywords":{}}],["skip",{"_index":1641,"title":{},"content":{"244":{"position":[[154,4]]},"253":{"position":[[339,4]]},"265":{"position":[[47,4]]}},"keywords":{}}],["slow",{"_index":593,"title":{},"content":{"21":{"position":[[2439,4]]}},"keywords":{}}],["small",{"_index":365,"title":{"18":{"position":[[0,5]]}},"content":{"18":{"position":[[0,5]]},"261":{"position":[[395,5]]},"360":{"position":[[331,6]]},"518":{"position":[[75,5]]}},"keywords":{}}],["smaller",{"_index":2294,"title":{},"content":{"484":{"position":[[60,7]]}},"keywords":{}}],["smarter",{"_index":2218,"title":{},"content":{"378":{"position":[[661,7]]}},"keywords":{}}],["sn",{"_index":785,"title":{"129":{"position":[[0,3]]}},"content":{"110":{"position":[[175,3]]},"125":{"position":[[174,3]]},"130":{"position":[[30,3]]}},"keywords":{}}],["snif",{"_index":1738,"title":{},"content":{"261":{"position":[[312,8]]}},"keywords":{}}],["softwar",{"_index":875,"title":{},"content":{"152":{"position":[[42,9]]}},"keywords":{}}],["solut",{"_index":368,"title":{},"content":{"18":{"position":[[50,9]]}},"keywords":{}}],["solv",{"_index":344,"title":{},"content":{"17":{"position":[[614,6]]}},"keywords":{}}],["somesecret",{"_index":1920,"title":{},"content":{"320":{"position":[[1315,11]]}},"keywords":{}}],["someth",{"_index":188,"title":{},"content":{"13":{"position":[[136,10]]},"19":{"position":[[512,9]]},"21":{"position":[[1256,9]]},"368":{"position":[[636,10]]},"373":{"position":[[408,9]]},"414":{"position":[[39,9]]},"518":{"position":[[577,9],[647,9],[718,9]]}},"keywords":{}}],["somethingels",{"_index":2150,"title":{},"content":{"368":{"position":[[647,15]]}},"keywords":{}}],["sometim",{"_index":2344,"title":{},"content":{"518":{"position":[[19,9]]}},"keywords":{}}],["somewhat",{"_index":1691,"title":{},"content":{"253":{"position":[[683,8]]}},"keywords":{}}],["soon2021",{"_index":1006,"title":{},"content":{"161":{"position":[[412,8]]}},"keywords":{}}],["sourc",{"_index":874,"title":{},"content":{"152":{"position":[[35,6]]},"161":{"position":[[190,6],[243,6],[591,6]]},"338":{"position":[[223,6]]},"406":{"position":[[134,8]]}},"keywords":{}}],["sourcemap=extern",{"_index":62,"title":{},"content":{"5":{"position":[[328,18]]}},"keywords":{}}],["spark",{"_index":1962,"title":{},"content":{"322":{"position":[[1307,6]]}},"keywords":{}}],["special",{"_index":893,"title":{},"content":{"153":{"position":[[192,7]]}},"keywords":{}}],["specif",{"_index":964,"title":{},"content":{"159":{"position":[[389,8]]},"167":{"position":[[2011,8]]},"515":{"position":[[68,14]]}},"keywords":{}}],["specifi",{"_index":1468,"title":{},"content":{"199":{"position":[[310,7],[430,9]]},"214":{"position":[[343,7],[462,9]]},"269":{"position":[[70,7]]},"272":{"position":[[440,9]]},"297":{"position":[[306,7],[419,9]]},"320":{"position":[[313,7],[438,9]]},"330":{"position":[[306,7],[420,9]]}},"keywords":{}}],["spirit",{"_index":873,"title":{},"content":{"152":{"position":[[20,6]]}},"keywords":{}}],["sponsor",{"_index":1309,"title":{"183":{"position":[[0,10]]}},"content":{"183":{"position":[[0,10],[136,7],[178,8]]}},"keywords":{}}],["sq",{"_index":801,"title":{"141":{"position":[[0,3]]},"298":{"position":[[0,3]]},"405":{"position":[[0,3]]},"406":{"position":[[0,3]]},"444":{"position":[[0,3]]},"481":{"position":[[0,3]]},"511":{"position":[[0,3]]},"512":{"position":[[0,3]]}},"content":{"125":{"position":[[184,3]]},"142":{"position":[[30,3]]},"282":{"position":[[589,3]]},"299":{"position":[[175,3]]},"324":{"position":[[1570,3]]},"406":{"position":[[124,3]]},"512":{"position":[[17,3]]}},"keywords":{}}],["sqsbatch",{"_index":1869,"title":{},"content":{"301":{"position":[[40,8]]}},"keywords":{}}],["sqspartialbatchfailur",{"_index":835,"title":{},"content":{"143":{"position":[[104,22]]}},"keywords":{}}],["ssl",{"_index":862,"title":{},"content":{"151":{"position":[[710,4]]}},"keywords":{}}],["ssm",{"_index":106,"title":{"325":{"position":[[0,3]]},"407":{"position":[[0,4]]},"445":{"position":[[0,4]]},"482":{"position":[[0,4]]},"513":{"position":[[0,4]]}},"content":{"6":{"position":[[753,5]]},"8":{"position":[[960,5]]},"106":{"position":[[595,4],[903,4]]},"107":{"position":[[627,4],[862,3]]},"151":{"position":[[271,3]]},"326":{"position":[[127,3]]},"327":{"position":[[768,5]]},"328":{"position":[[40,3],[182,5],[582,3],[724,5],[782,4],[808,5],[1011,4]]},"329":{"position":[[41,3]]},"330":{"position":[[9,3],[113,3],[1026,4],[1182,5],[1506,4]]}},"keywords":{}}],["ssm.awsclientopt",{"_index":2013,"title":{},"content":{"327":{"position":[[148,20]]}},"keywords":{}}],["ssm:getparamet",{"_index":2017,"title":{},"content":{"327":{"position":[[1126,17]]}},"keywords":{}}],["ssm:getparametersbypath",{"_index":2019,"title":{},"content":{"327":{"position":[[1151,23]]}},"keywords":{}}],["ssmclient",{"_index":2012,"title":{},"content":{"327":{"position":[[29,11],[41,9],[209,9]]}},"keywords":{}}],["ssmmiddlewar",{"_index":756,"title":{},"content":{"106":{"position":[[196,13],[566,15]]},"107":{"position":[[219,13],[598,15]]}},"keywords":{}}],["ssmparam",{"_index":2038,"title":{},"content":{"330":{"position":[[251,8],[594,8],[934,9],[1033,8]]}},"keywords":{}}],["ssmparam<",{"_index":2042,"title":{},"content":{"330":{"position":[[1324,13]]}},"keywords":{}}],["ssmparam<paramtype>(parameterpath",{"_index":2039,"title":{},"content":{"330":{"position":[[535,40]]}},"keywords":{}}],["ssmparam<string>('/dev/service_name/access_token",{"_index":2041,"title":{},"content":{"330":{"position":[[1214,57]]}},"keywords":{}}],["st",{"_index":108,"title":{"331":{"position":[[0,3]]},"408":{"position":[[0,4]]},"446":{"position":[[0,4]]},"483":{"position":[[0,4]]},"514":{"position":[[0,4]]}},"content":{"6":{"position":[[790,4]]},"8":{"position":[[997,4]]},"106":{"position":[[671,4],[908,3]]},"311":{"position":[[785,5]]},"332":{"position":[[127,3]]},"333":{"position":[[596,5]]},"334":{"position":[[40,3],[264,5]]},"335":{"position":[[41,3]]}},"keywords":{}}],["stabl",{"_index":1346,"title":{},"content":{"187":{"position":[[121,7],[422,6],[495,6]]}},"keywords":{}}],["stack",{"_index":843,"title":{"147":{"position":[[11,5]]}},"content":{"147":{"position":[[11,5]]},"172":{"position":[[303,7]]},"175":{"position":[[1026,7]]},"353":{"position":[[307,5],[345,6],[414,5],[489,6],[548,6]]},"357":{"position":[[539,5],[577,6],[646,5],[721,6]]},"373":{"position":[[178,5],[353,5]]},"378":{"position":[[20,5]]},"388":{"position":[[64,5]]}},"keywords":{}}],["stack.pathparamet",{"_index":2083,"title":{},"content":{"357":{"position":[[780,20]]}},"keywords":{}}],["stackreturn",{"_index":2187,"title":{},"content":{"373":{"position":[[300,11]]}},"keywords":{}}],["stacksupport",{"_index":2329,"title":{},"content":{"506":{"position":[[60,12]]}},"keywords":{}}],["stackthrow",{"_index":2185,"title":{},"content":{"373":{"position":[[122,10]]}},"keywords":{}}],["stacktrac",{"_index":1941,"title":{},"content":{"322":{"position":[[466,11]]}},"keywords":{}}],["stage",{"_index":2081,"title":{},"content":{"357":{"position":[[445,8]]}},"keywords":{}}],["start",{"_index":205,"title":{"154":{"position":[[8,7]]},"370":{"position":[[22,6]]},"371":{"position":[[22,5]]}},"content":{"15":{"position":[[247,7]]},"21":{"position":[[173,5],[399,5],[594,5],[2045,5]]},"22":{"position":[[195,5],[454,5]]},"31":{"position":[[1735,5]]},"43":{"position":[[1735,5]]},"46":{"position":[[1860,5]]},"97":{"position":[[1760,5]]},"150":{"position":[[1747,5]]},"151":{"position":[[527,8]]},"161":{"position":[[11,7]]},"163":{"position":[[342,7],[714,7]]},"164":{"position":[[67,7]]},"167":{"position":[[1418,7]]},"168":{"position":[[36,5]]},"171":{"position":[[884,5]]},"172":{"position":[[549,5]]},"174":{"position":[[642,5]]},"186":{"position":[[176,7]]},"196":{"position":[[637,5]]},"207":{"position":[[633,5]]},"286":{"position":[[364,5]]},"294":{"position":[[616,5]]},"305":{"position":[[386,5]]},"311":{"position":[[665,5]]},"317":{"position":[[1110,5]]},"327":{"position":[[648,5]]},"333":{"position":[[476,5]]},"346":{"position":[[601,5]]},"357":{"position":[[243,8]]},"365":{"position":[[1180,5]]},"522":{"position":[[890,5]]}},"keywords":{}}],["start('handl",{"_index":522,"title":{},"content":{"21":{"position":[[660,16]]},"22":{"position":[[520,16]]}},"keywords":{}}],["start('tot",{"_index":514,"title":{},"content":{"21":{"position":[[437,14],[550,14]]},"22":{"position":[[342,14]]}},"keywords":{}}],["state",{"_index":1097,"title":{},"content":{"166":{"position":[[794,5]]}},"keywords":{}}],["statement",{"_index":1083,"title":{},"content":{"166":{"position":[[298,11]]},"170":{"position":[[146,11]]},"174":{"position":[[146,11]]}},"keywords":{}}],["static",{"_index":1965,"title":{},"content":{"322":{"position":[[1414,6]]}},"keywords":{}}],["statu",{"_index":1356,"title":{},"content":{"187":{"position":[[401,6]]},"229":{"position":[[340,6]]}},"keywords":{}}],["statuscod",{"_index":275,"title":{},"content":{"16":{"position":[[973,11]]},"31":{"position":[[1427,11]]},"43":{"position":[[1427,11]]},"46":{"position":[[1552,11]]},"97":{"position":[[1427,11]]},"150":{"position":[[1439,11]]},"179":{"position":[[663,11]]},"191":{"position":[[145,11]]},"197":{"position":[[279,11]]},"199":{"position":[[1100,11]]},"200":{"position":[[860,11]]},"212":{"position":[[138,11]]},"214":{"position":[[1158,11]]},"226":{"position":[[738,11]]},"229":{"position":[[245,11]]},"230":{"position":[[358,11]]},"240":{"position":[[1804,11]]},"249":{"position":[[534,11]]},"250":{"position":[[315,11]]},"258":{"position":[[162,11]]},"273":{"position":[[185,11]]},"287":{"position":[[141,11]]},"291":{"position":[[158,11]]},"295":{"position":[[154,11]]},"297":{"position":[[1107,11]]},"312":{"position":[[155,11]]},"320":{"position":[[1149,11]]},"334":{"position":[[128,11]]},"358":{"position":[[254,11],[410,11]]},"368":{"position":[[1066,14],[1121,11]]},"456":{"position":[[36,10]]},"496":{"position":[[58,10],[168,10]]},"520":{"position":[[708,11]]}},"keywords":{}}],["statuscode:500",{"_index":2325,"title":{},"content":{"503":{"position":[[16,14]]}},"keywords":{}}],["step",{"_index":353,"title":{},"content":{"17":{"position":[[915,5]]},"21":{"position":[[2383,5]]},"156":{"position":[[87,6]]},"210":{"position":[[191,5]]}},"keywords":{}}],["still",{"_index":326,"title":{},"content":{"17":{"position":[[205,5]]},"139":{"position":[[84,5]]},"153":{"position":[[468,5]]},"189":{"position":[[1086,5]]},"414":{"position":[[8,5]]}},"keywords":{}}],["stop",{"_index":504,"title":{},"content":{"21":{"position":[[238,4],[624,4]]},"22":{"position":[[260,4],[484,4]]},"153":{"position":[[110,7]]},"159":{"position":[[44,4],[207,4]]},"182":{"position":[[74,4]]},"189":{"position":[[263,4]]}},"keywords":{}}],["stop('handl",{"_index":524,"title":{},"content":{"21":{"position":[[707,15]]},"22":{"position":[[567,15]]}},"keywords":{}}],["stop('init",{"_index":518,"title":{},"content":{"21":{"position":[[528,12]]},"22":{"position":[[414,12]]}},"keywords":{}}],["stop('tot",{"_index":526,"title":{},"content":{"21":{"position":[[751,13]]},"22":{"position":[[611,13]]}},"keywords":{}}],["storag",{"_index":971,"title":{"522":{"position":[[9,7]]}},"content":{"159":{"position":[[775,7],[1488,7]]},"182":{"position":[[1005,7],[1912,7]]},"199":{"position":[[883,8]]},"214":{"position":[[935,8]]},"297":{"position":[[880,8]]},"320":{"position":[[895,8]]},"330":{"position":[[879,8]]},"375":{"position":[[171,7]]},"522":{"position":[[9,7]]}},"keywords":{}}],["storage[key",{"_index":2197,"title":{},"content":{"375":{"position":[[332,13],[383,12]]}},"keywords":{}}],["store",{"_index":500,"title":{},"content":{"21":{"position":[[156,5]]},"22":{"position":[[178,5]]},"159":{"position":[[1177,6]]},"182":{"position":[[636,6],[1482,6]]},"196":{"position":[[350,7],[1028,5]]},"199":{"position":[[26,6],[860,6]]},"207":{"position":[[346,7],[1023,5]]},"214":{"position":[[25,6],[912,6]]},"286":{"position":[[756,5]]},"294":{"position":[[329,7],[1000,5],[1120,6]]},"297":{"position":[[29,6],[857,6]]},"311":{"position":[[378,7],[1050,5]]},"317":{"position":[[353,7],[1507,5]]},"320":{"position":[[6,6],[38,6],[872,6]]},"323":{"position":[[535,6]]},"327":{"position":[[313,7],[1033,5]]},"330":{"position":[[20,6],[856,6]]},"333":{"position":[[861,5]]},"346":{"position":[[400,7]]},"409":{"position":[[25,7]]},"522":{"position":[[82,5],[220,5],[280,6]]}},"keywords":{}}],["store.config",{"_index":1261,"title":{},"content":{"178":{"position":[[127,12]]}},"keywords":{}}],["store.init",{"_index":516,"title":{},"content":{"21":{"position":[[487,13],[503,10]]},"22":{"position":[[389,10]]}},"keywords":{}}],["store.st",{"_index":1832,"title":{},"content":{"283":{"position":[[477,10]]}},"keywords":{}}],["store.tot",{"_index":517,"title":{},"content":{"21":{"position":[[516,11]]},"22":{"position":[[402,11]]}},"keywords":{}}],["store.trac",{"_index":1973,"title":{},"content":{"323":{"position":[[617,13]]}},"keywords":{}}],["store[id",{"_index":502,"title":{},"content":{"21":{"position":[[194,9]]},"22":{"position":[[216,9]]}},"keywords":{}}],["store[id]).tostr",{"_index":507,"title":{},"content":{"21":{"position":[[333,22]]}},"keywords":{}}],["store[id].end",{"_index":614,"title":{},"content":{"22":{"position":[[291,16]]}},"keywords":{}}],["stream",{"_index":140,"title":{"89":{"position":[[15,9]]},"114":{"position":[[8,7]]},"250":{"position":[[6,8]]},"307":{"position":[[0,7]]}},"content":{"8":{"position":[[499,9]]},"462":{"position":[[17,6]]}},"keywords":{}}],["streamifi",{"_index":1414,"title":{"190":{"position":[[0,9]]}},"content":{},"keywords":{}}],["streamifyrespons",{"_index":739,"title":{},"content":{"97":{"position":[[1448,18]]},"191":{"position":[[285,18]]},"192":{"position":[[217,18]]},"250":{"position":[[403,18]]}},"keywords":{}}],["street",{"_index":1714,"title":{},"content":{"258":{"position":[[259,7]]}},"keywords":{}}],["strength",{"_index":317,"title":{},"content":{"17":{"position":[[17,9]]}},"keywords":{}}],["strict",{"_index":208,"title":{},"content":{"15":{"position":[[317,6]]},"261":{"position":[[217,6]]},"366":{"position":[[283,7]]},"369":{"position":[[224,6],[319,6]]}},"keywords":{}}],["string",{"_index":286,"title":{},"content":{"16":{"position":[[1293,9],[1487,9],[1564,8]]},"166":{"position":[[239,9]]},"170":{"position":[[87,9]]},"174":{"position":[[87,9],[205,9]]},"191":{"position":[[243,6]]},"192":{"position":[[177,6]]},"196":{"position":[[289,8],[739,8]]},"199":{"position":[[516,7],[1447,8],[1478,8]]},"203":{"position":[[11,8]]},"207":{"position":[[285,8],[735,8]]},"214":{"position":[[1327,7],[1343,7],[1524,8],[1555,8]]},"221":{"position":[[75,6]]},"240":{"position":[[279,8],[369,8],[627,8],[846,8],[936,8],[1033,8],[1132,8],[1229,8]]},"253":{"position":[[227,8]]},"257":{"position":[[18,8]]},"271":{"position":[[184,6],[211,6]]},"282":{"position":[[468,6]]},"286":{"position":[[466,8]]},"290":{"position":[[172,8],[430,7],[438,6]]},"294":{"position":[[268,8],[718,8]]},"297":{"position":[[1264,7],[1280,7],[1470,8],[1501,8]]},"311":{"position":[[317,8],[767,8]]},"317":{"position":[[301,8],[1212,8]]},"320":{"position":[[1344,7],[1532,8],[1569,8],[1655,8],[1703,8]]},"327":{"position":[[257,8],[750,8]]},"330":{"position":[[506,7],[1306,7],[1344,7],[1358,6],[1441,7],[1455,8],[1681,8],[1715,7],[1729,8]]},"333":{"position":[[578,8]]},"346":{"position":[[339,8]]},"353":{"position":[[82,8]]},"357":{"position":[[84,8],[203,8]]},"365":{"position":[[658,8]]},"367":{"position":[[174,8]]},"368":{"position":[[342,8],[409,8],[1912,8],[1939,9]]}},"keywords":{}}],["string>",{"_index":1505,"title":{},"content":{"203":{"position":[[172,10],[203,13]]}},"keywords":{}}],["stringifi",{"_index":1854,"title":{},"content":{"290":{"position":[[518,9]]}},"keywords":{}}],["string|loglevel",{"_index":1077,"title":{},"content":{"166":{"position":[[84,18]]}},"keywords":{}}],["string}>('somehiddensecret",{"_index":1922,"title":{},"content":{"320":{"position":[[1362,31]]}},"keywords":{}}],["structur",{"_index":1036,"title":{"360":{"position":[[21,10]]}},"content":{"163":{"position":[[241,10]]},"164":{"position":[[79,9],[310,10],[427,9]]},"167":{"position":[[2420,9],[2501,9]]},"199":{"position":[[46,10]]},"214":{"position":[[45,10]]},"297":{"position":[[49,10]]},"320":{"position":[[58,10]]},"323":{"position":[[92,10],[193,10]]}},"keywords":{}}],["structuredclon",{"_index":2278,"title":{},"content":{"439":{"position":[[16,15]]}},"keywords":{}}],["sts.awsclientopt",{"_index":2047,"title":{},"content":{"333":{"position":[[147,20]]}},"keywords":{}}],["sts:assumerolesettocontext",{"_index":2048,"title":{},"content":{"333":{"position":[[954,26]]}},"keywords":{}}],["stsclient",{"_index":2046,"title":{},"content":{"333":{"position":[[29,11],[41,9],[208,9]]}},"keywords":{}}],["stsmiddlewar",{"_index":757,"title":{},"content":{"106":{"position":[[235,13],[642,15]]}},"keywords":{}}],["stuff",{"_index":268,"title":{},"content":{"16":{"position":[[857,5]]},"490":{"position":[[1104,5]]},"518":{"position":[[500,5]]}},"keywords":{}}],["sub",{"_index":569,"title":{},"content":{"21":{"position":[[1895,3]]}},"keywords":{}}],["sub[/sub",{"_index":407,"title":{},"content":{"18":{"position":[[793,9]]}},"keywords":{}}],["subject",{"_index":1378,"title":{},"content":{"187":{"position":[[780,7]]}},"keywords":{}}],["submit",{"_index":882,"title":{},"content":{"152":{"position":[[143,6]]}},"keywords":{}}],["submit).http",{"_index":1810,"title":{},"content":{"281":{"position":[[962,12]]}},"keywords":{}}],["subset",{"_index":1241,"title":{},"content":{"176":{"position":[[203,6]]}},"keywords":{}}],["succe",{"_index":1402,"title":{},"content":{"189":{"position":[[1092,8]]}},"keywords":{}}],["success",{"_index":271,"title":{},"content":{"16":{"position":[[912,10]]},"159":{"position":[[229,10]]},"179":{"position":[[652,10]]}},"keywords":{}}],["successfulbook",{"_index":1188,"title":{},"content":{"171":{"position":[[650,17]]}},"keywords":{}}],["such",{"_index":1156,"title":{},"content":{"167":{"position":[[1862,4],[2031,4]]},"518":{"position":[[129,4]]}},"keywords":{}}],["sudo",{"_index":857,"title":{},"content":{"151":{"position":[[506,4]]}},"keywords":{}}],["suit",{"_index":1968,"title":{},"content":{"323":{"position":[[37,5]]}},"keywords":{}}],["support",{"_index":585,"title":{"362":{"position":[[22,9]]}},"content":{"21":{"position":[[2278,7],[2768,9]]},"175":{"position":[[1106,8]]},"183":{"position":[[90,7]]},"187":{"position":[[325,7],[382,10]]},"225":{"position":[[163,9],[361,9],[559,9],[763,9],[990,9]]},"253":{"position":[[201,9]]},"305":{"position":[[637,7]]},"333":{"position":[[1005,7]]},"361":{"position":[[668,7]]},"362":{"position":[[32,8],[147,9],[264,9]]},"365":{"position":[[319,7]]},"367":{"position":[[126,7]]},"373":{"position":[[70,7],[241,7]]},"378":{"position":[[608,9]]},"384":{"position":[[5,7]]},"416":{"position":[[17,7]]},"462":{"position":[[24,8]]},"493":{"position":[[18,9]]},"495":{"position":[[22,7]]},"496":{"position":[[10,7]]},"506":{"position":[[112,7]]},"515":{"position":[[34,7]]}},"keywords":{}}],["supportpul",{"_index":2301,"title":{},"content":{"484":{"position":[[337,13]]}},"keywords":{}}],["sure",{"_index":2,"title":{},"content":{"0":{"position":[[20,4]]},"152":{"position":[[206,4]]},"155":{"position":[[138,4]]},"182":{"position":[[252,4],[366,4]]},"200":{"position":[[1195,4]]},"361":{"position":[[504,4]]}},"keywords":{}}],["swc",{"_index":164,"title":{"12":{"position":[[0,4]]}},"content":{},"keywords":{}}],["swc/cli",{"_index":111,"title":{},"content":{"7":{"position":[[10,8]]},"12":{"position":[[10,8]]}},"keywords":{}}],["swc/core",{"_index":112,"title":{},"content":{"7":{"position":[[19,9]]},"12":{"position":[[19,9]]}},"keywords":{}}],["swc/pack",{"_index":110,"title":{"7":{"position":[[0,9]]}},"content":{},"keywords":{}}],["swcrc",{"_index":167,"title":{},"content":{"12":{"position":[[97,7]]}},"keywords":{}}],["switch",{"_index":1574,"title":{},"content":{"226":{"position":[[289,6],[453,6]]},"327":{"position":[[1267,9]]},"361":{"position":[[566,6]]}},"keywords":{}}],["synchron",{"_index":1974,"title":{},"content":{"323":{"position":[[685,11]]}},"keywords":{}}],["system",{"_index":853,"title":{},"content":{"151":{"position":[[388,7]]},"200":{"position":[[1242,6]]},"283":{"position":[[451,7]]},"323":{"position":[[509,7]]}},"keywords":{}}],["t.deepequal(bodi",{"_index":1754,"title":{},"content":{"266":{"position":[[626,17]]},"277":{"position":[[411,17]]}},"keywords":{}}],["t.deepequal(respons",{"_index":1599,"title":{},"content":{"230":{"position":[[334,21]]},"240":{"position":[[1780,21]]}},"keywords":{}}],["t.is(bodi",{"_index":1646,"title":{},"content":{"245":{"position":[[559,10]]},"254":{"position":[[736,10]]}},"keywords":{}}],["t.is(context.apitoken.password",{"_index":1918,"title":{},"content":{"318":{"position":[[578,31]]}},"keywords":{}}],["t.is(context.apitoken.usernam",{"_index":1917,"title":{},"content":{"318":{"position":[[534,31]]}},"keywords":{}}],["t.is(err.messag",{"_index":2152,"title":{},"content":{"368":{"position":[[706,17],[1308,17]]}},"keywords":{}}],["t.is(response.bodi",{"_index":1781,"title":{},"content":{"273":{"position":[[743,19]]}},"keywords":{}}],["t.is(response.headers['access",{"_index":1636,"title":{},"content":{"240":{"position":[[1721,29]]},"241":{"position":[[267,29]]}},"keywords":{}}],["t.not(err",{"_index":2153,"title":{},"content":{"368":{"position":[[1291,10]]}},"keywords":{}}],["tablenam",{"_index":782,"title":{},"content":{"107":{"position":[[550,10]]},"179":{"position":[[307,10]]},"212":{"position":[[308,10]]},"214":{"position":[[1373,10]]}},"keywords":{}}],["take",{"_index":939,"title":{},"content":{"157":{"position":[[367,5]]},"163":{"position":[[685,5]]},"186":{"position":[[268,6]]},"240":{"position":[[516,4]]},"379":{"position":[[152,5]]},"406":{"position":[[21,4]]},"522":{"position":[[359,4]]}},"keywords":{}}],["target",{"_index":460,"title":{},"content":{"19":{"position":[[367,8]]}},"keywords":{}}],["target=node16",{"_index":161,"title":{},"content":{"11":{"position":[[62,13]]}},"keywords":{}}],["target=node18",{"_index":53,"title":{},"content":{"5":{"position":[[153,13]]}},"keywords":{}}],["task",{"_index":965,"title":{},"content":{"159":{"position":[[398,4]]},"322":{"position":[[449,5]]}},"keywords":{}}],["team",{"_index":1284,"title":{},"content":{"181":{"position":[[145,4]]},"521":{"position":[[740,4]]}},"keywords":{}}],["teardown",{"_index":1409,"title":{},"content":{"189":{"position":[[1406,9]]}},"keywords":{}}],["technic",{"_index":328,"title":{},"content":{"17":{"position":[[241,9],[707,9]]}},"keywords":{}}],["teeni",{"_index":1948,"title":{},"content":{"322":{"position":[[887,5],[1017,5]]},"324":{"position":[[1627,5]]}},"keywords":{}}],["term",{"_index":1205,"title":{},"content":{"172":{"position":[[467,5],[608,6]]},"183":{"position":[[107,4]]},"187":{"position":[[320,4]]}},"keywords":{}}],["termin",{"_index":1384,"title":{},"content":{"189":{"position":[[313,11]]}},"keywords":{}}],["test",{"_index":1381,"title":{"189":{"position":[[0,7]]}},"content":{"189":{"position":[[0,7],[338,5],[812,5],[896,4],[1024,5],[1220,5],[1376,5]]},"248":{"position":[[524,7]]},"369":{"position":[[38,5]]},"520":{"position":[[328,8]]}},"keywords":{}}],["text",{"_index":1676,"title":{},"content":{"249":{"position":[[389,4]]},"250":{"position":[[585,4]]}},"keywords":{}}],["text/csv",{"_index":1417,"title":{},"content":{"191":{"position":[[189,10]]}},"keywords":{}}],["text/plain",{"_index":1588,"title":{},"content":{"226":{"position":[[1028,12]]}},"keywords":{}}],["text/x",{"_index":1777,"title":{},"content":{"273":{"position":[[669,6],[688,6]]}},"keywords":{}}],["text\\/plain",{"_index":1763,"title":{},"content":{"270":{"position":[[277,16]]},"273":{"position":[[486,16]]}},"keywords":{}}],["textdecoder('utf",{"_index":1426,"title":{},"content":{"193":{"position":[[278,16]]}},"keywords":{}}],["them.import",{"_index":924,"title":{},"content":{"156":{"position":[[192,11]]}},"keywords":{}}],["thing",{"_index":731,"title":{"80":{"position":[[12,6]]}},"content":{"378":{"position":[[276,6]]}},"keywords":{}}],["third",{"_index":1928,"title":{"321":{"position":[[0,5]]}},"content":{},"keywords":{}}],["this.awsclientcaptur",{"_index":1440,"title":{},"content":{"196":{"position":[[383,21]]},"207":{"position":[[379,21]]},"294":{"position":[[362,21]]},"311":{"position":[[411,21]]},"317":{"position":[[386,21]]},"327":{"position":[[346,21]]},"346":{"position":[[433,21]]}},"keywords":{}}],["those",{"_index":1592,"title":{},"content":{"229":{"position":[[230,6]]}},"keywords":{}}],["though",{"_index":1659,"title":{},"content":{"248":{"position":[[318,6]]}},"keywords":{}}],["three",{"_index":1316,"title":{},"content":{"185":{"position":[[340,5]]}},"keywords":{}}],["through",{"_index":1248,"title":{},"content":{"176":{"position":[[432,7]]},"281":{"position":[[44,7]]},"322":{"position":[[826,7]]}},"keywords":{}}],["throughput",{"_index":2022,"title":{},"content":{"327":{"position":[[1243,10]]}},"keywords":{}}],["throw",{"_index":1213,"title":{},"content":{"174":{"position":[[510,5]]},"179":{"position":[[701,5]]},"225":{"position":[[854,5]]},"230":{"position":[[137,5]]},"240":{"position":[[1509,5]]},"244":{"position":[[159,8]]},"253":{"position":[[344,8]]},"265":{"position":[[52,8]]},"373":{"position":[[249,5],[387,6]]},"378":{"position":[[817,5],[884,5]]},"389":{"position":[[54,5]]},"406":{"position":[[158,5]]},"417":{"position":[[45,5]]},"429":{"position":[[16,5]]},"474":{"position":[[5,6]]},"520":{"position":[[43,6]]}},"keywords":{}}],["thrown",{"_index":957,"title":{},"content":{"158":{"position":[[673,6]]},"171":{"position":[[969,6]]},"189":{"position":[[651,6]]},"324":{"position":[[154,6]]},"428":{"position":[[42,6]]}},"keywords":{}}],["throwonemptymetr",{"_index":1212,"title":{},"content":{"174":{"position":[[457,19]]}},"keywords":{}}],["thu",{"_index":354,"title":{},"content":{"17":{"position":[[921,4]]}},"keywords":{}}],["time",{"_index":494,"title":{"21":{"position":[[0,5]]},"139":{"position":[[15,6]]}},"content":{"21":{"position":[[2031,4],[2051,5]]},"176":{"position":[[104,4],[278,4],[414,5],[675,5]]},"187":{"position":[[226,4]]},"189":{"position":[[221,5]]},"253":{"position":[[131,5]]},"520":{"position":[[30,5],[183,4]]}},"keywords":{}}],["time.provid",{"_index":1068,"title":{},"content":{"164":{"position":[[342,14]]}},"keywords":{}}],["timemiddi",{"_index":1957,"title":{},"content":{"322":{"position":[[1199,9]]}},"keywords":{}}],["timeout",{"_index":1392,"title":{"520":{"position":[[7,8]]}},"content":{"189":{"position":[[626,7],[1127,7]]},"322":{"position":[[529,9],[600,7]]},"378":{"position":[[574,7],[743,7]]},"520":{"position":[[7,8]]}},"keywords":{}}],["timeoutearlyinmilli",{"_index":1388,"title":{},"content":{"189":{"position":[[465,21]]},"520":{"position":[[240,20],[640,21]]}},"keywords":{}}],["timeoutearlyrespons",{"_index":656,"title":{},"content":{"31":{"position":[[1385,21]]},"43":{"position":[[1385,21]]},"46":{"position":[[1510,21]]},"97":{"position":[[1385,21]]},"150":{"position":[[1397,21]]},"189":{"position":[[574,21]]},"520":{"position":[[666,21]]}},"keywords":{}}],["timeouterror",{"_index":2272,"title":{},"content":{"417":{"position":[[71,12]]}},"keywords":{}}],["timeplugin",{"_index":498,"title":{},"content":{"21":{"position":[[64,10]]}},"keywords":{}}],["timer",{"_index":1412,"title":{},"content":{"189":{"position":[[1475,6]]}},"keywords":{}}],["timers/promis",{"_index":2285,"title":{},"content":{"455":{"position":[[55,15]]}},"keywords":{}}],["tini",{"_index":1949,"title":{},"content":{"322":{"position":[[893,4],[1023,4]]},"324":{"position":[[1633,4]]}},"keywords":{}}],["tip",{"_index":179,"title":{},"content":{"13":{"position":[[48,4]]}},"keywords":{}}],["tl",{"_index":858,"title":{},"content":{"151":{"position":[[543,3],[552,5],[1000,3]]}},"keywords":{}}],["tls.checkserveridentity(host",{"_index":867,"title":{},"content":{"151":{"position":[[803,29]]}},"keywords":{}}],["to.dimens",{"_index":1503,"title":{},"content":{"203":{"position":[[139,13]]}},"keywords":{}}],["to.languag",{"_index":2129,"title":{},"content":{"365":{"position":[[732,12]]}},"keywords":{}}],["todo",{"_index":841,"title":{},"content":{"146":{"position":[[151,4]]}},"keywords":{}}],["togeth",{"_index":380,"title":{},"content":{"18":{"position":[[246,8]]},"19":{"position":[[146,8]]},"163":{"position":[[75,8]]},"181":{"position":[[106,9]]}},"keywords":{}}],["token",{"_index":1826,"title":{},"content":{"283":{"position":[[118,5]]},"286":{"position":[[767,6]]},"324":{"position":[[1115,5]]},"327":{"position":[[302,6],[1044,6]]}},"keywords":{}}],["ton",{"_index":986,"title":{},"content":{"161":{"position":[[145,4]]}},"keywords":{}}],["top",{"_index":1287,"title":{},"content":{"181":{"position":[[205,3]]}},"keywords":{}}],["total",{"_index":572,"title":{},"content":{"21":{"position":[[1956,5],[1998,5]]},"159":{"position":[[199,7]]}},"keywords":{}}],["toward",{"_index":322,"title":{},"content":{"17":{"position":[[124,6]]}},"keywords":{}}],["trace",{"_index":1049,"title":{},"content":{"163":{"position":[[521,6]]},"167":{"position":[[1485,5],[1614,7]]},"168":{"position":[[134,7],[210,7],[294,7],[363,7]]},"170":{"position":[[225,8]]},"171":{"position":[[1136,6],[1363,5]]},"305":{"position":[[645,7]]},"323":{"position":[[155,7],[644,5]]},"324":{"position":[[709,8],[728,7]]}},"keywords":{}}],["tracer",{"_index":1162,"title":{"168":{"position":[[0,7]]}},"content":{"170":{"position":[[411,6],[418,8],[458,6]]},"171":{"position":[[43,7],[190,6],[203,8],[541,6],[832,6],[1097,6],[1269,6]]},"181":{"position":[[180,6],[305,6]]},"182":{"position":[[336,6],[408,6]]},"322":{"position":[[411,7]]}},"keywords":{}}],["tracer.captureawsv3cli",{"_index":1184,"title":{},"content":{"171":{"position":[[264,26]]}},"keywords":{}}],["tracer.putannotation('successfulbook",{"_index":1185,"title":{},"content":{"171":{"position":[[378,41]]}},"keywords":{}}],["transform",{"_index":791,"title":{"281":{"position":[[8,15]]},"282":{"position":[[9,15]]}},"content":{"121":{"position":[[1,12]]}},"keywords":{}}],["transformstream",{"_index":1894,"title":{},"content":{"307":{"position":[[239,15]]}},"keywords":{}}],["transpar",{"_index":1728,"title":{},"content":{"261":{"position":[[86,12]]}},"keywords":{}}],["transpil",{"_index":146,"title":{"9":{"position":[[0,12]]},"369":{"position":[[4,11]]},"370":{"position":[[0,9]]},"371":{"position":[[0,9]]}},"content":{"364":{"position":[[145,11]]},"365":{"position":[[1085,11]]},"366":{"position":[[1,9]]},"367":{"position":[[1,9],[225,11]]},"369":{"position":[[300,9]]},"447":{"position":[[142,11]]},"521":{"position":[[1131,11]]}},"keywords":{}}],["transpilelocal",{"_index":2146,"title":{"367":{"position":[[0,16]]}},"content":{"370":{"position":[[144,15]]},"371":{"position":[[144,15]]},"484":{"position":[[458,15]]}},"keywords":{}}],["transpilelocale(await",{"_index":2180,"title":{},"content":{"370":{"position":[[312,21],[367,21]]}},"keywords":{}}],["transpileschema",{"_index":250,"title":{"366":{"position":[[0,16]]}},"content":{"16":{"position":[[459,15]]},"368":{"position":[[114,15],[879,15],[1013,17],[1648,15]]},"370":{"position":[[127,16]]},"371":{"position":[[127,16]]},"484":{"position":[[351,15],[654,15],[679,15],[816,15]]}},"keywords":{}}],["transpileschema(eventjsonschema",{"_index":2306,"title":{},"content":{"484":{"position":[[845,32],[1074,33]]}},"keywords":{}}],["transpileschema(eventschema",{"_index":2159,"title":{},"content":{"368":{"position":[[2183,28]]},"370":{"position":[[473,29]]},"371":{"position":[[432,29]]}},"keywords":{}}],["transpileschema(schema",{"_index":311,"title":{},"content":{"16":{"position":[[1936,23]]},"368":{"position":[[486,23]]}},"keywords":{}}],["transport",{"_index":1550,"title":{},"content":{"221":{"position":[[175,9]]},"261":{"position":[[224,9]]}},"keywords":{}}],["traverse/.github",{"_index":413,"title":{},"content":{"18":{"position":[[927,16]]}},"keywords":{}}],["traverse/spec",{"_index":414,"title":{},"content":{"18":{"position":[[959,13]]}},"keywords":{}}],["travis.yml",{"_index":439,"title":{},"content":{"18":{"position":[[1407,11]]}},"keywords":{}}],["treat",{"_index":1471,"title":{},"content":{"199":{"position":[[806,5]]},"214":{"position":[[858,5]]},"297":{"position":[[803,5]]},"320":{"position":[[818,5]]},"330":{"position":[[802,5]]}},"keywords":{}}],["tree",{"_index":2302,"title":{},"content":{"484":{"position":[[398,4]]}},"keywords":{}}],["tri",{"_index":1274,"title":{},"content":{"179":{"position":[[549,3]]},"189":{"position":[[1416,3]]},"521":{"position":[[839,5]]}},"keywords":{}}],["trick",{"_index":180,"title":{},"content":{"13":{"position":[[57,6]]}},"keywords":{}}],["trickl",{"_index":2210,"title":{},"content":{"378":{"position":[[155,7]]}},"keywords":{}}],["trigger",{"_index":468,"title":{},"content":{"19":{"position":[[504,7]]},"158":{"position":[[173,9],[264,9],[362,9],[558,9],[614,9]]},"167":{"position":[[2089,9],[2292,9]]},"181":{"position":[[425,9],[622,9]]},"189":{"position":[[173,7]]},"196":{"position":[[657,7]]},"207":{"position":[[653,7]]},"286":{"position":[[384,7]]},"294":{"position":[[636,7]]},"305":{"position":[[406,7]]},"311":{"position":[[685,7]]},"317":{"position":[[1130,7]]},"327":{"position":[[668,7]]},"333":{"position":[[496,7]]},"346":{"position":[[621,7]]},"353":{"position":[[385,7]]},"357":{"position":[[617,7]]},"373":{"position":[[97,7],[151,7],[273,7]]},"378":{"position":[[323,9],[669,10],[754,7]]}},"keywords":{}}],["trip",{"_index":1549,"title":{},"content":{"221":{"position":[[170,4]]}},"keywords":{}}],["troubleshoot",{"_index":1150,"title":{},"content":{"167":{"position":[[1548,15],[2235,15]]}},"keywords":{}}],["true",{"_index":32,"title":{},"content":{"3":{"position":[[160,5],[198,5],[234,5],[397,5]]},"6":{"position":[[277,4]]},"8":{"position":[[397,4]]},"19":{"position":[[547,4]]},"21":{"position":[[51,4]]},"97":{"position":[[1467,4]]},"151":{"position":[[737,5]]},"167":{"position":[[467,5]]},"170":{"position":[[361,5],[653,5]]},"171":{"position":[[420,6],[682,5]]},"174":{"position":[[668,5]]},"181":{"position":[[845,4],[905,4]]},"182":{"position":[[1801,4],[1861,4]]},"191":{"position":[[304,4]]},"192":{"position":[[236,4]]},"200":{"position":[[620,4]]},"210":{"position":[[153,4],[241,5]]},"211":{"position":[[250,4]]},"225":{"position":[[28,5],[223,5],[421,5],[620,5],[823,5],[841,4]]},"236":{"position":[[33,5]]},"240":{"position":[[35,5],[211,4]]},"244":{"position":[[211,5]]},"250":{"position":[[422,4]]},"253":{"position":[[396,5]]},"254":{"position":[[692,4]]},"265":{"position":[[104,5]]},"291":{"position":[[735,4]]},"295":{"position":[[363,4]]},"297":{"position":[[1356,4]]},"318":{"position":[[297,4]]},"320":{"position":[[1412,4],[1614,5]]},"328":{"position":[[387,4]]},"338":{"position":[[82,4]]},"339":{"position":[[197,4]]},"365":{"position":[[596,6]]},"366":{"position":[[291,5],[330,5],[368,4]]},"369":{"position":[[231,4],[270,4],[326,4],[365,4]]},"504":{"position":[[92,6]]}},"keywords":{}}],["true)head",{"_index":1619,"title":{},"content":{"240":{"position":[[266,12]]}},"keywords":{}}],["true.capturehttpsrequest",{"_index":1178,"title":{},"content":{"170":{"position":[[246,25]]}},"keywords":{}}],["ts",{"_index":435,"title":{},"content":{"18":{"position":[[1351,4]]}},"keywords":{}}],["tsconfig.json",{"_index":26,"title":{},"content":{"3":{"position":[[45,14]]},"18":{"position":[[1356,13]]}},"keywords":{}}],["tslib",{"_index":429,"title":{},"content":{"18":{"position":[[1267,8]]}},"keywords":{}}],["two",{"_index":1314,"title":{},"content":{"185":{"position":[[18,3]]},"187":{"position":[[39,3]]},"318":{"position":[[498,3]]}},"keywords":{}}],["txt",{"_index":450,"title":{},"content":{"18":{"position":[[1539,5]]}},"keywords":{}}],["type",{"_index":284,"title":{"272":{"position":[[8,4]]}},"content":{"16":{"position":[[1199,5],[1237,5],[1287,5],[1367,5],[1425,5],[1481,5],[1558,5],[1586,5]]},"18":{"position":[[753,9]]},"31":{"position":[[1264,5],[1339,5]]},"43":{"position":[[1264,5],[1339,5]]},"97":{"position":[[1264,5],[1339,5]]},"105":{"position":[[362,5],[437,5]]},"150":{"position":[[1276,5],[1351,5]]},"191":{"position":[[182,6]]},"199":{"position":[[186,4],[222,4],[338,4],[710,4],[738,4]]},"200":{"position":[[59,7],[683,4],[1237,4],[1391,4]]},"214":{"position":[[185,4],[256,4],[371,4],[750,4],[792,4]]},"225":{"position":[[664,5],[757,5]]},"236":{"position":[[239,4]]},"244":{"position":[[185,4]]},"245":{"position":[[389,6],[474,5]]},"253":{"position":[[370,4]]},"254":{"position":[[404,6]]},"265":{"position":[[78,4]]},"266":{"position":[[479,6]]},"269":{"position":[[83,4]]},"271":{"position":[[50,4]]},"272":{"position":[[97,4],[428,5]]},"281":{"position":[[248,5],[783,4]]},"297":{"position":[[189,4],[225,4],[334,4],[695,4],[737,4]]},"299":{"position":[[125,5]]},"320":{"position":[[195,4],[231,4],[341,4],[710,4],[752,4]]},"324":{"position":[[1507,4]]},"327":{"position":[[1299,4]]},"330":{"position":[[186,4],[222,4],[334,4],[706,4],[734,4],[1297,5],[1424,6]]},"368":{"position":[[242,5],[336,5],[403,5],[1031,5],[1103,5],[1135,5],[1781,5],[1839,5],[1906,5],[1933,5],[2031,4]]},"369":{"position":[[245,5],[340,5]]},"429":{"position":[[41,4]]},"521":{"position":[[870,4]]}},"keywords":{}}],["typedef",{"_index":830,"title":{},"content":{"140":{"position":[[463,9]]}},"keywords":{}}],["typeof",{"_index":2123,"title":{},"content":{"365":{"position":[[331,6]]}},"keywords":{}}],["typereferrerpolici",{"_index":1740,"title":{},"content":{"261":{"position":[[330,18]]}},"keywords":{}}],["types/aw",{"_index":916,"title":{},"content":{"155":{"position":[[171,10],[242,10]]}},"keywords":{}}],["typescript",{"_index":22,"title":{"3":{"position":[[0,11]]},"199":{"position":[[11,11]]},"200":{"position":[[9,10]]},"214":{"position":[[11,11]]},"297":{"position":[[11,11]]},"320":{"position":[[11,11]]},"330":{"position":[[11,11]]},"521":{"position":[[5,10]]}},"content":{"3":{"position":[[10,10]]},"155":{"position":[[99,11]]},"199":{"position":[[773,10]]},"200":{"position":[[9,10],[43,10],[158,10],[971,11],[1480,11]]},"214":{"position":[[825,10]]},"297":{"position":[[770,10]]},"320":{"position":[[785,10]]},"323":{"position":[[23,11]]},"330":{"position":[[769,10]]},"416":{"position":[[57,10]]},"521":{"position":[[5,10],[758,10],[816,10],[904,10],[1143,11]]}},"keywords":{}}],["typic",{"_index":1809,"title":{},"content":{"281":{"position":[[930,10]]}},"keywords":{}}],["unabl",{"_index":2292,"title":{},"content":{"474":{"position":[[21,6]]}},"keywords":{}}],["undefin",{"_index":1438,"title":{},"content":{"196":{"position":[[204,11],[307,11],[425,11]]},"207":{"position":[[201,11],[303,11],[421,11]]},"221":{"position":[[32,11]]},"225":{"position":[[113,10],[310,10],[508,10],[710,10]]},"229":{"position":[[196,10]]},"233":{"position":[[228,11]]},"294":{"position":[[190,11],[286,11],[404,11]]},"311":{"position":[[225,11],[335,11],[453,11]]},"342":{"position":[[29,11]]},"346":{"position":[[240,11],[357,11],[475,11]]},"365":{"position":[[33,11],[184,11],[444,11]]},"366":{"position":[[215,11]]},"379":{"position":[[239,9]]},"490":{"position":[[671,10]]}},"keywords":{}}],["under",{"_index":2087,"title":{},"content":{"360":{"position":[[79,5]]}},"keywords":{}}],["understand",{"_index":1145,"title":{},"content":{"167":{"position":[[1296,10]]},"199":{"position":[[788,10]]},"200":{"position":[[1249,11]]},"214":{"position":[[840,10]]},"297":{"position":[[785,10]]},"320":{"position":[[800,10]]},"322":{"position":[[550,10]]},"330":{"position":[[784,10]]},"378":{"position":[[953,13]]}},"keywords":{}}],["unfinish",{"_index":1399,"title":{},"content":{"189":{"position":[[1039,10]]}},"keywords":{}}],["unhandl",{"_index":2276,"title":{},"content":{"428":{"position":[[25,9]]},"444":{"position":[[16,9]]}},"keywords":{}}],["uniqu",{"_index":1446,"title":{},"content":{"196":{"position":[[819,6]]},"207":{"position":[[814,6]]},"286":{"position":[[547,6]]},"294":{"position":[[791,6]]},"311":{"position":[[841,6]]},"317":{"position":[[1298,6]]},"327":{"position":[[824,6]]},"333":{"position":[[652,6]]}},"keywords":{}}],["unit",{"_index":1199,"title":{},"content":{"172":{"position":[[171,5],[501,5]]},"189":{"position":[[807,4],[1215,4]]}},"keywords":{}}],["unknown",{"_index":1217,"title":{},"content":{"175":{"position":[[242,8],[261,9]]},"199":{"position":[[191,8]]},"297":{"position":[[194,8]]},"320":{"position":[[200,8]]},"330":{"position":[[191,8]]}},"keywords":{}}],["unless",{"_index":2233,"title":{},"content":{"387":{"position":[[34,6]]},"394":{"position":[[123,6]]},"396":{"position":[[34,6]]}},"keywords":{}}],["unmanag",{"_index":906,"title":{},"content":{"153":{"position":[[749,9]]}},"keywords":{}}],["unprocess",{"_index":1601,"title":{},"content":{"230":{"position":[[381,14]]},"240":{"position":[[1827,14]]}},"keywords":{}}],["unref",{"_index":1413,"title":{},"content":{"189":{"position":[[1515,8]]}},"keywords":{}}],["up",{"_index":333,"title":{"182":{"position":[[9,2]]}},"content":{"17":{"position":[[404,2]]},"172":{"position":[[28,2]]},"182":{"position":[[266,2],[758,2],[1249,2]]},"189":{"position":[[268,2]]},"493":{"position":[[28,2]]},"520":{"position":[[197,2]]},"521":{"position":[[862,2]]}},"keywords":{}}],["updat",{"_index":901,"title":{},"content":{"153":{"position":[[546,6]]},"271":{"position":[[269,8]]},"361":{"position":[[476,8],[657,7]]},"417":{"position":[[1,7]]},"420":{"position":[[1,6]]},"439":{"position":[[1,7]]},"477":{"position":[[1,7]]},"478":{"position":[[1,7]]},"479":{"position":[[1,7]]},"480":{"position":[[1,7]]},"482":{"position":[[1,7]]},"483":{"position":[[1,7]]},"484":{"position":[[564,6]]},"487":{"position":[[1,7]]}},"keywords":{}}],["upgrad",{"_index":2084,"title":{"359":{"position":[[0,7]]},"372":{"position":[[0,7]]},"376":{"position":[[0,7]]},"415":{"position":[[0,7]]},"453":{"position":[[0,7]]}},"content":{"515":{"position":[[1,8]]}},"keywords":{}}],["upload",{"_index":1695,"title":{},"content":{"253":{"position":[[978,6]]}},"keywords":{}}],["uri",{"_index":430,"title":{},"content":{"18":{"position":[[1276,6]]}},"keywords":{}}],["url",{"_index":738,"title":{"95":{"position":[[9,3]]},"191":{"position":[[16,3]]}},"content":{"281":{"position":[[913,3],[1038,3]]}},"keywords":{}}],["url/.zuul.yml",{"_index":432,"title":{},"content":{"18":{"position":[[1298,16]]}},"keywords":{}}],["url/test.j",{"_index":433,"title":{},"content":{"18":{"position":[[1315,14]]}},"keywords":{}}],["urlencod",{"_index":647,"title":{"263":{"position":[[5,9]]},"274":{"position":[[5,9]]},"397":{"position":[[5,9]]},"398":{"position":[[5,9]]},"437":{"position":[[5,9]]},"438":{"position":[[5,9]]},"474":{"position":[[5,9]]},"475":{"position":[[5,9]]},"504":{"position":[[5,9]]},"505":{"position":[[5,9]]}},"content":{"31":{"position":[[1013,9],[1105,9]]},"43":{"position":[[1013,9],[1105,9]]},"46":{"position":[[1064,9],[1156,9]]},"97":{"position":[[1013,9],[1105,9]]},"150":{"position":[[1025,9],[1117,9]]},"264":{"position":[[89,9]]},"266":{"position":[[147,9],[510,11]]},"275":{"position":[[89,9]]},"277":{"position":[[82,9]]},"281":{"position":[[850,9],[975,9]]},"360":{"position":[[1153,9]]}},"keywords":{}}],["us",{"_index":198,"title":{"181":{"position":[[0,5]]},"200":{"position":[[0,3]]},"250":{"position":[[0,5]]}},"content":{"15":{"position":[[96,5],[124,4]]},"16":{"position":[[581,4],[745,4]]},"17":{"position":[[621,5]]},"18":{"position":[[19,5],[295,3]]},"21":{"position":[[2365,3]]},"25":{"position":[[1,5]]},"30":{"position":[[1,5]]},"31":{"position":[[1552,5],[1984,5]]},"33":{"position":[[1,5]]},"36":{"position":[[1,5]]},"39":{"position":[[1,5]]},"42":{"position":[[1,5]]},"43":{"position":[[1552,5],[1984,5]]},"45":{"position":[[1,5]]},"46":{"position":[[1677,5],[2109,5]]},"48":{"position":[[1,5]]},"51":{"position":[[1,5]]},"54":{"position":[[1,5]]},"55":{"position":[[100,3]]},"57":{"position":[[1,5]]},"60":{"position":[[1,5]]},"63":{"position":[[1,5]]},"66":{"position":[[1,5]]},"69":{"position":[[1,5]]},"72":{"position":[[1,5]]},"75":{"position":[[1,5]]},"78":{"position":[[1,5]]},"81":{"position":[[1,5]]},"84":{"position":[[1,5]]},"87":{"position":[[1,5]]},"90":{"position":[[1,5]]},"93":{"position":[[1,5]]},"96":{"position":[[1,5]]},"97":{"position":[[1577,5],[2009,5]]},"99":{"position":[[1,5]]},"102":{"position":[[1,5]]},"106":{"position":[[298,5],[462,5],[560,5],[636,5]]},"107":{"position":[[282,5],[423,5],[498,5],[592,5]]},"109":{"position":[[1,5]]},"112":{"position":[[1,5]]},"115":{"position":[[1,5]]},"118":{"position":[[1,5]]},"124":{"position":[[1,5]]},"127":{"position":[[1,5]]},"130":{"position":[[1,5]]},"133":{"position":[[1,5]]},"140":{"position":[[522,4]]},"142":{"position":[[1,5]]},"149":{"position":[[1,5]]},"150":{"position":[[1564,5],[1996,5]]},"151":{"position":[[275,5],[497,3]]},"155":{"position":[[27,3],[93,5]]},"156":{"position":[[38,5],[465,5]]},"157":{"position":[[360,6],[872,5],[943,3]]},"158":{"position":[[499,3]]},"159":{"position":[[581,3],[1446,5]]},"161":{"position":[[85,4]]},"163":{"position":[[53,4]]},"166":{"position":[[116,4],[151,3],[265,3],[282,4]]},"167":{"position":[[1529,6],[2216,6],[2460,6]]},"170":{"position":[[113,3],[130,4]]},"171":{"position":[[780,4]]},"172":{"position":[[46,5],[555,5]]},"174":{"position":[[113,3],[130,4],[236,3]]},"175":{"position":[[1225,4]]},"176":{"position":[[246,5]]},"178":{"position":[[91,4]]},"179":{"position":[[748,6]]},"181":{"position":[[9,3]]},"182":{"position":[[326,5],[497,5],[1870,5]]},"189":{"position":[[658,5],[770,5]]},"195":{"position":[[36,3]]},"197":{"position":[[98,5]]},"199":{"position":[[686,3],[934,3],[1215,5]]},"200":{"position":[[0,3],[33,4],[141,5],[498,5],[965,5],[994,3]]},"202":{"position":[[36,3]]},"204":{"position":[[332,5]]},"206":{"position":[[36,3]]},"209":{"position":[[36,3]]},"212":{"position":[[268,5]]},"214":{"position":[[726,3],[986,3]]},"216":{"position":[[36,3]]},"217":{"position":[[92,4]]},"220":{"position":[[36,3]]},"224":{"position":[[36,3]]},"226":{"position":[[824,5]]},"228":{"position":[[36,3]]},"229":{"position":[[300,5]]},"232":{"position":[[36,3]]},"235":{"position":[[36,3]]},"236":{"position":[[201,4]]},"239":{"position":[[36,3]]},"240":{"position":[[585,5]]},"243":{"position":[[36,3]]},"244":{"position":[[80,4]]},"247":{"position":[[36,3]]},"252":{"position":[[36,3]]},"253":{"position":[[58,4],[262,4],[551,5]]},"256":{"position":[[36,3]]},"257":{"position":[[91,4]]},"260":{"position":[[36,3]]},"264":{"position":[[36,3]]},"268":{"position":[[36,3]]},"269":{"position":[[32,4]]},"271":{"position":[[375,6]]},"272":{"position":[[548,3]]},"273":{"position":[[242,5]]},"275":{"position":[[36,3]]},"280":{"position":[[266,4]]},"281":{"position":[[668,4]]},"283":{"position":[[375,4]]},"285":{"position":[[36,3]]},"287":{"position":[[271,5]]},"289":{"position":[[36,3]]},"290":{"position":[[243,4]]},"291":{"position":[[578,5]]},"293":{"position":[[36,3]]},"294":{"position":[[1179,5]]},"295":{"position":[[284,5]]},"297":{"position":[[671,3],[931,3]]},"299":{"position":[[36,3]]},"304":{"position":[[36,3]]},"310":{"position":[[36,3]]},"312":{"position":[[285,5]]},"316":{"position":[[36,3]]},"317":{"position":[[843,3],[1017,3],[1630,5]]},"318":{"position":[[175,5]]},"320":{"position":[[686,3],[946,3],[1279,5]]},"322":{"position":[[1237,5]]},"324":{"position":[[84,5],[918,6]]},"326":{"position":[[36,3]]},"328":{"position":[[176,5],[718,5],[802,5]]},"330":{"position":[[682,3],[930,3],[1176,5]]},"332":{"position":[[36,3]]},"334":{"position":[[258,5]]},"337":{"position":[[36,3]]},"341":{"position":[[36,3]]},"342":{"position":[[89,4]]},"345":{"position":[[36,3]]},"346":{"position":[[834,5]]},"349":{"position":[[205,5]]},"352":{"position":[[36,3]]},"356":{"position":[[36,3]]},"357":{"position":[[379,5],[472,3]]},"360":{"position":[[419,4]]},"364":{"position":[[36,3]]},"365":{"position":[[85,4],[236,4],[496,4]]},"366":{"position":[[61,5]]},"368":{"position":[[455,5],[1443,4],[2152,5]]},"369":{"position":[[277,3],[372,3],[872,5]]},"370":{"position":[[442,5]]},"371":{"position":[[260,4],[401,5]]},"375":{"position":[[62,3]]},"377":{"position":[[109,3]]},"378":{"position":[[86,3],[638,3],[692,3]]},"386":{"position":[[71,3]]},"388":{"position":[[90,3]]},"414":{"position":[[80,13]]},"416":{"position":[[53,3],[214,5]]},"420":{"position":[[15,3]]},"425":{"position":[[1,3]]},"439":{"position":[[12,3]]},"441":{"position":[[15,3],[107,5]]},"447":{"position":[[1,3]]},"454":{"position":[[11,4]]},"477":{"position":[[12,3]]},"478":{"position":[[12,3]]},"479":{"position":[[12,3]]},"480":{"position":[[12,3]]},"482":{"position":[[12,3]]},"483":{"position":[[12,3]]},"484":{"position":[[571,3]]},"487":{"position":[[12,3]]},"490":{"position":[[898,5],[1153,5]]},"504":{"position":[[30,4]]},"507":{"position":[[40,4]]},"516":{"position":[[100,3],[200,3]]},"518":{"position":[[261,3]]},"521":{"position":[[754,3]]},"522":{"position":[[74,4],[349,6],[525,5]]}},"keywords":{}}],["usabl",{"_index":2346,"title":{},"content":{"518":{"position":[[118,7]]}},"keywords":{}}],["usag",{"_index":919,"title":{"156":{"position":[[0,6]]},"167":{"position":[[7,6]]},"171":{"position":[[7,6]]},"175":{"position":[[7,6]]},"179":{"position":[[7,6]]},"197":{"position":[[7,6]]},"199":{"position":[[0,5]]},"204":{"position":[[7,6]]},"211":{"position":[[7,6]]},"212":{"position":[[7,6]]},"214":{"position":[[0,5]]},"218":{"position":[[7,6]]},"222":{"position":[[7,6]]},"226":{"position":[[7,6]]},"230":{"position":[[7,6]]},"233":{"position":[[7,6]]},"237":{"position":[[7,6]]},"241":{"position":[[7,6]]},"245":{"position":[[7,6]]},"249":{"position":[[7,6]]},"254":{"position":[[7,6]]},"258":{"position":[[7,6]]},"262":{"position":[[7,6]]},"266":{"position":[[7,6]]},"273":{"position":[[7,6]]},"277":{"position":[[7,6]]},"287":{"position":[[7,6]]},"291":{"position":[[7,6]]},"295":{"position":[[7,6]]},"297":{"position":[[0,5]]},"301":{"position":[[7,6]]},"306":{"position":[[7,6]]},"312":{"position":[[7,6]]},"318":{"position":[[7,6]]},"320":{"position":[[0,5]]},"328":{"position":[[7,6]]},"330":{"position":[[0,5]]},"334":{"position":[[7,6]]},"339":{"position":[[7,6]]},"343":{"position":[[7,6]]},"347":{"position":[[7,6]]},"354":{"position":[[7,6]]},"358":{"position":[[7,6]]},"368":{"position":[[7,6]]}},"content":{"158":{"position":[[714,6]]},"159":{"position":[[1350,5]]},"182":{"position":[[1655,5]]},"375":{"position":[[37,6]]},"491":{"position":[[37,6]]}},"keywords":{}}],["use([middleware1",{"_index":943,"title":{},"content":{"157":{"position":[[752,20]]}},"keywords":{}}],["use(capturelambdahandler(trac",{"_index":1186,"title":{},"content":{"171":{"position":[[474,35]]},"181":{"position":[[765,34]]},"182":{"position":[[1721,34]]}},"keywords":{}}],["use(cfheadernorm",{"_index":722,"title":{},"content":{"55":{"position":[[64,28]]}},"keywords":{}}],["use(cloudwatchmetricsmiddlewar",{"_index":747,"title":{},"content":{"105":{"position":[[501,35]]}},"keywords":{}}],["use(cor",{"_index":1635,"title":{},"content":{"240":{"position":[[1611,12]]}},"keywords":{}}],["use(donotwaitforemptyeventloop",{"_index":1531,"title":{},"content":{"211":{"position":[[204,33]]}},"keywords":{}}],["use(errorlogg",{"_index":529,"title":{},"content":{"21":{"position":[[946,19]]},"22":{"position":[[808,19]]}},"keywords":{}}],["use(errorloggermiddlewar",{"_index":749,"title":{},"content":{"105":{"position":[[573,29]]}},"keywords":{}}],["use(eventlogg",{"_index":528,"title":{},"content":{"21":{"position":[[926,19]]},"22":{"position":[[788,19]]}},"keywords":{}}],["use(eventnormalizermiddlewar",{"_index":719,"title":{},"content":{"52":{"position":[[128,33]]},"61":{"position":[[128,33]]},"64":{"position":[[128,33]]},"67":{"position":[[128,33]]},"91":{"position":[[128,33]]},"94":{"position":[[128,33]]},"100":{"position":[[128,33]]},"103":{"position":[[128,33]]},"110":{"position":[[128,33]]},"113":{"position":[[128,33]]},"116":{"position":[[128,33]]},"125":{"position":[[128,33]]},"131":{"position":[[128,33]]},"143":{"position":[[198,33]]}},"keywords":{}}],["use(httpcontentencod",{"_index":1670,"title":{},"content":{"249":{"position":[[265,26]]},"250":{"position":[[461,26]]}},"keywords":{}}],["use(httpcontentencodingmiddlewar",{"_index":674,"title":{},"content":{"31":{"position":[[1946,37]]},"43":{"position":[[1946,37]]},"46":{"position":[[2071,37]]},"97":{"position":[[1971,37]]},"150":{"position":[[1958,37]]}},"keywords":{}}],["use(httpcontentnegoti",{"_index":1669,"title":{},"content":{"249":{"position":[[234,30]]},"250":{"position":[[430,30]]}},"keywords":{}}],["use(httpcor",{"_index":535,"title":{},"content":{"21":{"position":[[1124,16]]},"22":{"position":[[986,16]]}},"keywords":{}}],["use(httpcorsmiddlewar",{"_index":673,"title":{},"content":{"31":{"position":[[1919,26]]},"43":{"position":[[1919,26]]},"46":{"position":[[2044,26]]},"97":{"position":[[1944,26]]},"150":{"position":[[1931,26]]}},"keywords":{}}],["use(httperrorhandl",{"_index":312,"title":{},"content":{"16":{"position":[[1987,24]]},"226":{"position":[[1048,24]]},"240":{"position":[[1586,24]]}},"keywords":{}}],["use(httperrorhandlermiddlewar",{"_index":680,"title":{},"content":{"31":{"position":[[2257,34]]},"43":{"position":[[2268,34]]},"46":{"position":[[2323,34]]},"97":{"position":[[2282,34]]},"150":{"position":[[2269,34]]}},"keywords":{}}],["use(httpeventnorm",{"_index":530,"title":{},"content":{"21":{"position":[[966,27]]},"22":{"position":[[828,27]]}},"keywords":{}}],["use(httpeventnormalizermiddlewar",{"_index":659,"title":{},"content":{"31":{"position":[[1475,37]]},"43":{"position":[[1475,37]]},"46":{"position":[[1600,37]]},"97":{"position":[[1500,37]]},"150":{"position":[[1487,37]]}},"keywords":{}}],["use(httpheadernorm",{"_index":531,"title":{},"content":{"21":{"position":[[994,28]]},"22":{"position":[[856,28]]},"226":{"position":[[795,28]]},"237":{"position":[[188,28]]},"245":{"position":[[250,28]]},"254":{"position":[[260,28]]},"266":{"position":[[303,28]]},"358":{"position":[[612,28]]}},"keywords":{}}],["use(httpheadernormalizermiddlewar",{"_index":660,"title":{},"content":{"31":{"position":[[1513,38]]},"43":{"position":[[1513,38]]},"46":{"position":[[1638,38]]},"97":{"position":[[1538,38]]},"150":{"position":[[1525,38]]}},"keywords":{}}],["use(httpjsonbodypars",{"_index":534,"title":{},"content":{"21":{"position":[[1097,26]]},"22":{"position":[[959,26]]},"245":{"position":[[279,26]]},"368":{"position":[[2125,26]]}},"keywords":{}}],["use(httpjsonbodyparsermiddlewar",{"_index":670,"title":{},"content":{"31":{"position":[[1789,36]]},"43":{"position":[[1789,36]]},"46":{"position":[[1914,36]]},"97":{"position":[[1814,36]]},"150":{"position":[[1801,36]]},"468":{"position":[[169,36]]}},"keywords":{}}],["use(httpmultipartbodypars",{"_index":1697,"title":{},"content":{"254":{"position":[[289,31]]}},"keywords":{}}],["use(httpmultipartbodyparsermiddlewar",{"_index":671,"title":{},"content":{"31":{"position":[[1826,41]]},"43":{"position":[[1826,41]]},"46":{"position":[[1951,41]]},"97":{"position":[[1851,41]]},"150":{"position":[[1838,41]]}},"keywords":{}}],["use(httppartialresponsemiddlewar",{"_index":678,"title":{},"content":{"31":{"position":[[2160,37]]},"43":{"position":[[2171,37]]},"46":{"position":[[2285,37]]},"97":{"position":[[2185,37]]},"150":{"position":[[2172,37]]}},"keywords":{}}],["use(httpsecurityhead",{"_index":536,"title":{},"content":{"21":{"position":[[1141,27]]},"22":{"position":[[1003,27]]}},"keywords":{}}],["use(httpsecurityheadersmiddlewar",{"_index":672,"title":{},"content":{"31":{"position":[[1881,37]]},"43":{"position":[[1881,37]]},"46":{"position":[[2006,37]]},"97":{"position":[[1906,37]]},"150":{"position":[[1893,37]]}},"keywords":{}}],["use(httpurlencodebodypars",{"_index":533,"title":{},"content":{"21":{"position":[[1065,31]]},"22":{"position":[[927,31]]},"266":{"position":[[332,31]]}},"keywords":{}}],["use(httpurlencodebodyparsermiddlewar",{"_index":669,"title":{},"content":{"31":{"position":[[1747,41]]},"43":{"position":[[1747,41]]},"46":{"position":[[1872,41]]},"97":{"position":[[1772,41]]},"150":{"position":[[1759,41]]}},"keywords":{}}],["use(httpurlencodepathparameterspars",{"_index":532,"title":{},"content":{"21":{"position":[[1023,41]]},"22":{"position":[[885,41]]}},"keywords":{}}],["use(httpurlencodepathparametersparsermiddlewar",{"_index":667,"title":{},"content":{"31":{"position":[[1680,51]]},"43":{"position":[[1680,51]]},"46":{"position":[[1805,51]]},"97":{"position":[[1705,51]]},"150":{"position":[[1692,51]]}},"keywords":{}}],["use(injectlambdacontext(logg",{"_index":1108,"title":{},"content":{"167":{"position":[[357,34]]},"181":{"position":[[800,32]]},"182":{"position":[[1756,32]]}},"keywords":{}}],["use(inputoutputloggermiddlewar",{"_index":748,"title":{},"content":{"105":{"position":[[537,35]]}},"keywords":{}}],["use(jsonbodypars",{"_index":304,"title":{},"content":{"16":{"position":[[1810,22]]}},"keywords":{}}],["use(logmetrics(metr",{"_index":1221,"title":{},"content":{"175":{"position":[[408,26]]},"181":{"position":[[854,24]]},"182":{"position":[[1810,24]]}},"keywords":{}}],["use(middleware1",{"_index":936,"title":{},"content":{"157":{"position":[[274,19]]}},"keywords":{}}],["use(middleware2",{"_index":937,"title":{},"content":{"157":{"position":[[294,19]]}},"keywords":{}}],["use(middleware3",{"_index":938,"title":{},"content":{"157":{"position":[[314,19]]}},"keywords":{}}],["use(rdssign",{"_index":479,"title":{},"content":{"19":{"position":[[769,20]]}},"keywords":{}}],["use(s3objectresponsemiddlewar",{"_index":797,"title":{},"content":{"122":{"position":[[204,33]]}},"keywords":{}}],["use(secretsmanag",{"_index":480,"title":{},"content":{"19":{"position":[[790,25]]}},"keywords":{}}],["use(somemiddlewar",{"_index":931,"title":{},"content":{"156":{"position":[[484,22]]}},"keywords":{}}],["use(sqspartialbatchfailur",{"_index":838,"title":{},"content":{"143":{"position":[[232,30]]}},"keywords":{}}],["use(ssm",{"_index":478,"title":{},"content":{"19":{"position":[[754,14]]}},"keywords":{}}],["use(st",{"_index":477,"title":{},"content":{"19":{"position":[[739,14]]}},"keywords":{}}],["use(valid",{"_index":309,"title":{},"content":{"16":{"position":[[1906,16]]},"368":{"position":[[1188,16]]}},"keywords":{}}],["use(validator({eventschema",{"_index":537,"title":{},"content":{"21":{"position":[[1169,30]]},"22":{"position":[[1031,30]]}},"keywords":{}}],["use(validatormiddlewar",{"_index":679,"title":{},"content":{"31":{"position":[[2198,26]]},"43":{"position":[[2209,26]]},"97":{"position":[[2223,26]]},"105":{"position":[[603,26]]},"150":{"position":[[2210,26]]},"484":{"position":[[765,26],[1034,26]]}},"keywords":{}}],["use(validatormiddleware({eventschema",{"_index":2073,"title":{},"content":{"354":{"position":[[216,38],[355,38]]},"358":{"position":[[162,38],[318,38]]}},"keywords":{}}],["use(warmup",{"_index":2058,"title":{},"content":{"339":{"position":[[233,13]]}},"keywords":{}}],["use(warmupmiddlewar",{"_index":658,"title":{},"content":{"31":{"position":[[1450,24]]},"43":{"position":[[1450,24]]},"46":{"position":[[1575,24]]},"97":{"position":[[1475,24]]},"105":{"position":[[476,24]]},"150":{"position":[[1462,24]]}},"keywords":{}}],["use(wsjsonbodyparsermiddlewar",{"_index":696,"title":{},"content":{"37":{"position":[[613,34]]},"343":{"position":[[252,34]]}},"keywords":{}}],["use(wsresponsemiddlewar",{"_index":697,"title":{},"content":{"37":{"position":[[648,28]]},"343":{"position":[[287,28]]},"354":{"position":[[620,28]]}},"keywords":{}}],["use.wrap",{"_index":925,"title":{},"content":{"156":{"position":[[246,8]]}},"keywords":{}}],["used.plugin",{"_index":2334,"title":{},"content":{"515":{"position":[[248,11]]}},"keywords":{}}],["usedefault",{"_index":2145,"title":{},"content":{"366":{"position":[[336,12]]}},"keywords":{}}],["user",{"_index":711,"title":{},"content":{"46":{"position":[[1445,8]]},"153":{"position":[[666,5]]},"185":{"position":[[824,5]]},"233":{"position":[[161,4],[223,4]]},"253":{"position":[[960,5]]},"330":{"position":[[1338,5],[1434,6],[1707,7]]},"358":{"position":[[547,8]]},"521":{"position":[[915,5]]}},"keywords":{}}],["user.j",{"_index":706,"title":{},"content":{"46":{"position":[[1271,8],[1335,8]]}},"keywords":{}}],["user.nam",{"_index":1850,"title":{},"content":{"290":{"position":[[401,10]]}},"keywords":{}}],["user/{id",{"_index":709,"title":{},"content":{"46":{"position":[[1384,13]]},"358":{"position":[[486,13]]}},"keywords":{}}],["userland",{"_index":2111,"title":{},"content":{"361":{"position":[[728,8]]}},"keywords":{}}],["usernam",{"_index":764,"title":{},"content":{"106":{"position":[[420,9]]},"287":{"position":[[373,9]]},"318":{"position":[[508,10],[566,11]]}},"keywords":{}}],["users.[].namemask",{"_index":1851,"title":{},"content":{"290":{"position":[[412,17]]}},"keywords":{}}],["users.s3",{"_index":1827,"title":{},"content":{"283":{"position":[[155,9]]}},"keywords":{}}],["usr/bin/env",{"_index":2162,"title":{},"content":{"369":{"position":[[63,14]]}},"keywords":{}}],["usual",{"_index":921,"title":{},"content":{"156":{"position":[[125,6]]},"515":{"position":[[220,7]]}},"keywords":{}}],["utf",{"_index":1675,"title":{},"content":{"249":{"position":[[383,3]]},"250":{"position":[[579,3]]},"392":{"position":[[46,3]]}},"keywords":{}}],["utf8",{"_index":1685,"title":{},"content":{"253":{"position":[[245,6]]}},"keywords":{}}],["util",{"_index":144,"title":{"181":{"position":[[15,10]]},"188":{"position":[[0,9]]},"379":{"position":[[0,5]]},"418":{"position":[[0,5]]},"456":{"position":[[0,5]]}},"content":{"8":{"position":[[567,7]]},"163":{"position":[[31,9],[189,9]]},"167":{"position":[[1258,8],[1634,7]]},"171":{"position":[[548,7],[839,7],[1276,7]]},"172":{"position":[[573,8]]},"175":{"position":[[1098,7]]},"181":{"position":[[33,9]]},"182":{"position":[[227,10],[273,9],[343,8],[515,8],[597,7],[769,9],[1267,9]]},"188":{"position":[[0,9]]},"199":{"position":[[264,7]]},"214":{"position":[[297,7]]},"281":{"position":[[175,9]]},"297":{"position":[[260,7]]},"320":{"position":[[267,7]]},"323":{"position":[[46,9],[417,7],[631,9]]},"324":{"position":[[1666,7]]},"330":{"position":[[260,7]]}},"keywords":{}}],["utilitymiddi",{"_index":1951,"title":{},"content":{"322":{"position":[[926,12],[1056,12]]}},"keywords":{}}],["uuid/bin",{"_index":434,"title":{},"content":{"18":{"position":[[1330,11]]}},"keywords":{}}],["v0",{"_index":1376,"title":{},"content":{"187":{"position":[[723,2]]}},"keywords":{}}],["v0.2.1",{"_index":996,"title":{},"content":{"161":{"position":[[294,6]]}},"keywords":{}}],["v1",{"_index":1372,"title":{},"content":{"187":{"position":[[676,2]]}},"keywords":{}}],["v1.0.0",{"_index":999,"title":{},"content":{"161":{"position":[[326,6]]}},"keywords":{}}],["v1.x",{"_index":2190,"title":{},"content":{"373":{"position":[[372,4]]}},"keywords":{}}],["v10",{"_index":2320,"title":{},"content":{"493":{"position":[[39,4]]}},"keywords":{}}],["v12",{"_index":242,"title":{},"content":{"16":{"position":[[262,4]]}},"keywords":{}}],["v14",{"_index":240,"title":{},"content":{"16":{"position":[[201,4]]}},"keywords":{}}],["v2",{"_index":790,"title":{},"content":{"118":{"position":[[78,2]]},"168":{"position":[[310,2]]},"187":{"position":[[629,2]]}},"keywords":{}}],["v2.0.0",{"_index":1004,"title":{},"content":{"161":{"position":[[398,6],[428,6]]}},"keywords":{}}],["v2.x",{"_index":2249,"title":{},"content":{"401":{"position":[[43,4]]},"405":{"position":[[43,4]]}},"keywords":{}}],["v3",{"_index":1174,"title":{},"content":{"168":{"position":[[317,2]]},"187":{"position":[[582,2]]},"189":{"position":[[150,3]]},"401":{"position":[[64,2]]},"405":{"position":[[64,2]]},"454":{"position":[[24,2]]},"477":{"position":[[24,2]]},"478":{"position":[[24,2]]},"479":{"position":[[24,2]]},"480":{"position":[[24,2]]},"482":{"position":[[24,2]]},"483":{"position":[[24,2]]},"487":{"position":[[24,2]]}},"keywords":{}}],["v3.0.0",{"_index":1013,"title":{},"content":{"161":{"position":[[493,6]]}},"keywords":{}}],["v4",{"_index":1367,"title":{},"content":{"187":{"position":[[535,2]]}},"keywords":{}}],["v4.0.0",{"_index":1017,"title":{},"content":{"161":{"position":[[520,6]]}},"keywords":{}}],["v5",{"_index":1364,"title":{},"content":{"187":{"position":[[492,2]]},"416":{"position":[[68,2]]}},"keywords":{}}],["v5.0.0",{"_index":1024,"title":{},"content":{"161":{"position":[[617,6]]}},"keywords":{}}],["v6.0.0",{"_index":1026,"title":{},"content":{"161":{"position":[[644,6]]}},"keywords":{}}],["valid",{"_index":216,"title":{"363":{"position":[[0,9]]},"409":{"position":[[0,10]]},"447":{"position":[[0,10]]},"484":{"position":[[0,10]]},"515":{"position":[[0,10]]}},"content":{"15":{"position":[[433,11]]},"16":{"position":[[416,9],[1114,10],[1967,9]]},"17":{"position":[[307,11]]},"21":{"position":[[2091,9],[2218,12],[2250,9]]},"31":{"position":[[1160,11]]},"43":{"position":[[1160,11]]},"97":{"position":[[1160,11]]},"105":{"position":[[258,11]]},"150":{"position":[[1172,11]]},"272":{"position":[[600,8]]},"281":{"position":[[1080,9]]},"322":{"position":[[139,9],[1280,10]]},"324":{"position":[[258,10],[287,10],[1494,8]]},"365":{"position":[[62,9],[93,8],[213,9],[244,8],[355,10],[473,9],[504,8]]},"368":{"position":[[19,11],[71,9],[317,10],[461,11],[745,12],[784,11],[836,9],[1350,12],[1491,11],[1605,9],[2081,8],[2158,11]]},"369":{"position":[[198,8],[214,5],[654,9],[878,11]]},"370":{"position":[[84,9],[448,11]]},"371":{"position":[[84,9],[407,11]]}},"keywords":{}}],["validator@iress/middi",{"_index":1964,"title":{},"content":{"322":{"position":[[1323,21]]}},"keywords":{}}],["validatormiddlewar",{"_index":649,"title":{},"content":{"31":{"position":[[1135,19]]},"43":{"position":[[1135,19]]},"97":{"position":[[1135,19]]},"105":{"position":[[233,19]]},"150":{"position":[[1147,19]]},"354":{"position":[[141,19]]},"358":{"position":[[91,19]]},"484":{"position":[[597,19],[891,19]]}},"keywords":{}}],["validatormiddlewareaft",{"_index":557,"title":{},"content":{"21":{"position":[[1676,24]]}},"keywords":{}}],["validatormiddlewarebefor",{"_index":554,"title":{},"content":{"21":{"position":[[1618,25]]}},"keywords":{}}],["valu",{"_index":465,"title":{},"content":{"19":{"position":[[460,6],[534,5],[622,6],[870,7],[997,8],[1132,8],[1156,7],[1345,8]]},"55":{"position":[[128,5]]},"151":{"position":[[968,6]]},"159":{"position":[[1041,5]]},"161":{"position":[[568,6]]},"166":{"position":[[176,7]]},"171":{"position":[[676,5]]},"172":{"position":[[177,7]]},"175":{"position":[[1156,5]]},"182":{"position":[[1346,5]]},"183":{"position":[[30,5]]},"214":{"position":[[786,5]]},"240":{"position":[[300,5],[390,5],[867,5],[957,5],[1054,5],[1153,5],[1250,5]]},"272":{"position":[[632,6]]},"290":{"position":[[464,6]]},"297":{"position":[[731,5]]},"302":{"position":[[5,5]]},"317":{"position":[[881,5]]},"320":{"position":[[746,5]]},"323":{"position":[[493,6]]},"328":{"position":[[258,5],[318,7],[884,5],[943,7]]},"330":{"position":[[45,7],[1282,5],[1417,6]]},"375":{"position":[[368,6],[398,5]]},"378":{"position":[[858,6]]},"414":{"position":[[132,6]]},"520":{"position":[[433,5]]},"522":{"position":[[88,6],[875,6],[1106,6],[1237,5],[1317,6]]}},"keywords":{}}],["values.node_env",{"_index":2263,"title":{},"content":{"414":{"position":[[205,15]]}},"keywords":{}}],["values.podspec",{"_index":427,"title":{},"content":{"18":{"position":[[1229,14]]}},"keywords":{}}],["values/android",{"_index":423,"title":{},"content":{"18":{"position":[[1071,14]]}},"keywords":{}}],["values/index.web.j",{"_index":425,"title":{},"content":{"18":{"position":[[1151,19]]}},"keywords":{}}],["values/io",{"_index":424,"title":{},"content":{"18":{"position":[[1113,10]]}},"keywords":{}}],["values/react",{"_index":426,"title":{},"content":{"18":{"position":[[1198,12]]}},"keywords":{}}],["values[internalkey",{"_index":2385,"title":{},"content":{"522":{"position":[[974,19]]}},"keywords":{}}],["variabl",{"_index":6,"title":{},"content":{"0":{"position":[[58,8]]},"21":{"position":[[2825,8]]},"357":{"position":[[260,9]]}},"keywords":{}}],["variablessq",{"_index":2010,"title":{},"content":{"324":{"position":[[1529,12]]}},"keywords":{}}],["variou",{"_index":1497,"title":{},"content":{"200":{"position":[[1322,7]]}},"keywords":{}}],["verbos",{"_index":954,"title":{},"content":{"158":{"position":[[505,7]]}},"keywords":{}}],["veri",{"_index":192,"title":{},"content":{"15":{"position":[[12,4],[255,4]]},"17":{"position":[[363,4]]},"152":{"position":[[64,4]]},"156":{"position":[[53,4]]},"518":{"position":[[70,4]]},"520":{"position":[[422,4]]}},"keywords":{}}],["verifi",{"_index":854,"title":{},"content":{"151":{"position":[[427,6]]}},"keywords":{}}],["version",{"_index":1355,"title":{"322":{"position":[[0,7]]},"323":{"position":[[0,7]]},"324":{"position":[[0,7]]}},"content":{"187":{"position":[[393,7]]},"244":{"position":[[253,8]]},"253":{"position":[[438,8]]},"265":{"position":[[146,8]]},"360":{"position":[[1,7]]},"361":{"position":[[590,7]]},"362":{"position":[[1,7],[49,8],[79,8],[274,8]]}},"keywords":{}}],["vesper",{"_index":1338,"title":{},"content":{"186":{"position":[[356,6]]}},"keywords":{}}],["vgaltesgolang",{"_index":1337,"title":{},"content":{"186":{"position":[[336,14]]}},"keywords":{}}],["via",{"_index":1065,"title":{},"content":{"164":{"position":[[242,3]]},"168":{"position":[[228,3],[320,3]]},"272":{"position":[[236,3]]},"323":{"position":[[347,3]]},"516":{"position":[[362,3]]}},"keywords":{}}],["volum",{"_index":1688,"title":{},"content":{"253":{"position":[[598,7]]}},"keywords":{}}],["voxel.middynet",{"_index":1336,"title":{},"content":{"186":{"position":[[321,14]]}},"keywords":{}}],["vpc",{"_index":844,"title":{"148":{"position":[[0,3]]}},"content":{"149":{"position":[[30,3]]}},"keywords":{}}],["wait",{"_index":571,"title":{"208":{"position":[[7,4]]},"382":{"position":[[7,4]]},"422":{"position":[[7,4]]},"459":{"position":[[7,4]]},"492":{"position":[[7,4]]}},"content":{"21":{"position":[[1945,5]]},"139":{"position":[[131,4]]},"209":{"position":[[91,4]]},"211":{"position":[[87,4]]},"280":{"position":[[107,4]]},"360":{"position":[[570,4]]}},"keywords":{}}],["want",{"_index":472,"title":{},"content":{"19":{"position":[[610,4]]},"21":{"position":[[2357,4]]},"140":{"position":[[62,4]]},"144":{"position":[[61,4]]},"145":{"position":[[53,4]]},"146":{"position":[[69,4]]},"147":{"position":[[65,4]]},"151":{"position":[[86,4],[419,4]]},"155":{"position":[[125,4]]},"156":{"position":[[238,4]]},"159":{"position":[[116,4]]},"167":{"position":[[1578,4],[1826,4],[1974,4],[2265,4],[2476,4]]},"181":{"position":[[398,4]]},"188":{"position":[[58,4]]},"189":{"position":[[56,4]]},"229":{"position":[[144,4]]},"253":{"position":[[926,4]]},"269":{"position":[[91,7]]},"271":{"position":[[389,4]]},"518":{"position":[[33,4]]},"520":{"position":[[304,4]]}},"keywords":{}}],["ware",{"_index":1989,"title":{},"content":{"324":{"position":[[535,5]]}},"keywords":{}}],["warm",{"_index":1797,"title":{},"content":{"280":{"position":[[278,4]]},"324":{"position":[[661,4]]}},"keywords":{}}],["warmup",{"_index":651,"title":{"336":{"position":[[0,6]]},"410":{"position":[[0,7]]},"448":{"position":[[0,7]]},"485":{"position":[[0,7]]},"516":{"position":[[0,7]]}},"content":{"31":{"position":[[1201,8]]},"43":{"position":[[1201,8]]},"46":{"position":[[1208,8]]},"97":{"position":[[1201,8]]},"105":{"position":[[299,8]]},"146":{"position":[[181,6]]},"150":{"position":[[1213,8]]},"324":{"position":[[612,7]]},"338":{"position":[[113,6],[264,7]]},"339":{"position":[[44,6]]},"516":{"position":[[324,8],[366,6],[393,8]]}},"keywords":{}}],["warmupmiddlewar",{"_index":650,"title":{},"content":{"31":{"position":[[1179,16]]},"43":{"position":[[1179,16]]},"46":{"position":[[1186,16]]},"97":{"position":[[1179,16]]},"105":{"position":[[277,16]]},"150":{"position":[[1191,16]]}},"keywords":{}}],["warn",{"_index":1081,"title":{},"content":{"166":{"position":[[205,5]]}},"keywords":{}}],["watch",{"_index":715,"title":{"50":{"position":[[6,5]]}},"content":{},"keywords":{}}],["way",{"_index":221,"title":{},"content":{"15":{"position":[[491,3]]},"16":{"position":[[549,3]]},"183":{"position":[[155,3]]},"185":{"position":[[641,3]]},"199":{"position":[[769,3]]},"214":{"position":[[821,3]]},"240":{"position":[[253,3]]},"272":{"position":[[28,3]]},"290":{"position":[[332,3]]},"297":{"position":[[766,3]]},"320":{"position":[[781,3]]},"330":{"position":[[765,3]]}},"keywords":{}}],["we'v",{"_index":2293,"title":{},"content":{"484":{"position":[[1,5]]}},"keywords":{}}],["web",{"_index":199,"title":{},"content":{"15":{"position":[[129,3]]},"17":{"position":[[545,3]]},"324":{"position":[[1111,3]]}},"keywords":{}}],["webkitformboundaryppsqewf2bvjece0m",{"_index":1700,"title":{},"content":{"254":{"position":[[446,35]]}},"keywords":{}}],["webpack",{"_index":116,"title":{"8":{"position":[[0,8]]}},"content":{"8":{"position":[[10,7],[22,7]]}},"keywords":{}}],["webpack.config.mj",{"_index":119,"title":{},"content":{"8":{"position":[[58,19]]}},"keywords":{}}],["websocket",{"_index":682,"title":{"35":{"position":[[12,11]]}},"content":{"36":{"position":[[54,9]]},"281":{"position":[[1194,9]]},"282":{"position":[[635,9]]},"361":{"position":[[129,9],[262,9]]},"377":{"position":[[5,9],[37,9]]},"411":{"position":[[23,9]]},"412":{"position":[[25,9]]}},"keywords":{}}],["welcom",{"_index":877,"title":{},"content":{"152":{"position":[[69,7]]}},"keywords":{}}],["well",{"_index":773,"title":{"107":{"position":[[48,5]]}},"content":{"175":{"position":[[1142,4]]},"317":{"position":[[1694,5]]},"360":{"position":[[231,5]]}},"keywords":{}}],["west",{"_index":1113,"title":{},"content":{"167":{"position":[[523,4],[585,4],[787,4]]}},"keywords":{}}],["what'",{"_index":1469,"title":{},"content":{"199":{"position":[[318,6]]},"214":{"position":[[351,6]]},"297":{"position":[[314,6]]},"320":{"position":[[321,6]]},"330":{"position":[[314,6]]}},"keywords":{}}],["whether",{"_index":1094,"title":{},"content":{"166":{"position":[[671,7],[766,7]]},"167":{"position":[[1381,7]]},"170":{"position":[[207,7],[283,7],[572,7]]},"174":{"position":[[499,7],[614,7]]},"221":{"position":[[44,7]]}},"keywords":{}}],["whichev",{"_index":1910,"title":{},"content":{"317":{"position":[[945,9]]}},"keywords":{}}],["whole",{"_index":959,"title":{},"content":{"159":{"position":[[53,5]]},"182":{"position":[[83,5]]}},"keywords":{}}],["wildcard",{"_index":2078,"title":{},"content":{"357":{"position":[[278,9]]}},"keywords":{}}],["willfarrell2021",{"_index":1003,"title":{},"content":{"161":{"position":[[380,17]]}},"keywords":{}}],["window",{"_index":1244,"title":{},"content":{"176":{"position":[[283,6]]}},"keywords":{}}],["windowensur",{"_index":1239,"title":{},"content":{"176":{"position":[[109,12]]}},"keywords":{}}],["winter@sharecov",{"_index":1991,"title":{},"content":{"324":{"position":[[673,17]]}},"keywords":{}}],["within",{"_index":833,"title":{},"content":{"140":{"position":[[580,6]]},"158":{"position":[[112,6]]},"186":{"position":[[134,6]]},"506":{"position":[[85,6]]}},"keywords":{}}],["without",{"_index":805,"title":{"139":{"position":[[26,7]]}},"content":{"203":{"position":[[360,7]]},"229":{"position":[[237,7]]},"294":{"position":[[1127,7]]},"322":{"position":[[771,7]]}},"keywords":{}}],["won't",{"_index":966,"title":{},"content":{"159":{"position":[[478,5]]},"368":{"position":[[362,5],[374,5]]}},"keywords":{}}],["word",{"_index":228,"title":{},"content":{"16":{"position":[[28,6]]}},"keywords":{}}],["work",{"_index":620,"title":{"184":{"position":[[7,5]]}},"content":{"27":{"position":[[1,7]]},"140":{"position":[[37,4]]},"144":{"position":[[36,4]]},"145":{"position":[[28,4]]},"146":{"position":[[44,4]]},"147":{"position":[[40,4]]},"151":{"position":[[61,4]]},"182":{"position":[[202,4]]},"188":{"position":[[33,4]]},"189":{"position":[[31,4]]},"322":{"position":[[97,7]]},"324":{"position":[[568,5],[1451,5]]},"484":{"position":[[20,4]]},"516":{"position":[[24,4],[169,4]]},"518":{"position":[[387,4]]},"520":{"position":[[94,4]]}},"keywords":{}}],["workaround",{"_index":1885,"title":{},"content":{"305":{"position":[[679,11]]},"468":{"position":[[83,11]]}},"keywords":{}}],["worker",{"_index":1400,"title":{},"content":{"189":{"position":[[1050,6],[1279,6]]}},"keywords":{}}],["workmail",{"_index":803,"title":{"135":{"position":[[0,8]]}},"content":{"136":{"position":[[35,8]]}},"keywords":{}}],["world",{"_index":1459,"title":{},"content":{"197":{"position":[[348,6]]},"199":{"position":[[1169,6]]},"212":{"position":[[207,6]]},"214":{"position":[[1227,6]]},"226":{"position":[[444,6]]},"273":{"position":[[169,6]]},"287":{"position":[[210,6]]},"291":{"position":[[227,6]]},"295":{"position":[[223,6]]},"297":{"position":[[1176,6]]},"312":{"position":[[224,6]]},"320":{"position":[[1218,6]]},"334":{"position":[[197,6]]}},"keywords":{}}],["world</message>",{"_index":1783,"title":{},"content":{"273":{"position":[[785,23]]}},"keywords":{}}],["worri",{"_index":2110,"title":{},"content":{"361":{"position":[[706,5]]}},"keywords":{}}],["wrap",{"_index":1385,"title":{},"content":{"189":{"position":[[364,7]]},"199":{"position":[[532,4]]},"214":{"position":[[574,4]]},"297":{"position":[[531,4]]},"320":{"position":[[550,4]]},"324":{"position":[[845,5]]},"330":{"position":[[522,4]]},"484":{"position":[[798,4]]}},"keywords":{}}],["wrapnumb",{"_index":1546,"title":{},"content":{"221":{"position":[[1,11]]}},"keywords":{}}],["wrapper",{"_index":1044,"title":{},"content":{"163":{"position":[[437,7]]},"324":{"position":[[554,7]]}},"keywords":{}}],["write",{"_index":325,"title":{},"content":{"17":{"position":[[182,7]]},"156":{"position":[[95,5]]},"157":{"position":[[975,7]]},"182":{"position":[[164,7]]},"189":{"position":[[330,7]]},"200":{"position":[[1450,5]]},"283":{"position":[[228,5]]},"517":{"position":[[85,5]]},"521":{"position":[[49,5]]}},"keywords":{}}],["written",{"_index":348,"title":{},"content":{"17":{"position":[[827,7]]}},"keywords":{}}],["ws",{"_index":2059,"title":{"340":{"position":[[0,2]]},"344":{"position":[[0,2]]},"351":{"position":[[0,2]]},"411":{"position":[[0,2]]},"412":{"position":[[0,2]]},"413":{"position":[[0,2]]},"449":{"position":[[0,2]]},"450":{"position":[[0,2]]},"451":{"position":[[0,2]]},"486":{"position":[[0,2]]},"487":{"position":[[0,2]]},"488":{"position":[[0,2]]}},"content":{},"keywords":{}}],["wsjsonbodyparsermiddlewar",{"_index":683,"title":{},"content":{"37":{"position":[[40,26]]},"343":{"position":[[40,26]]}},"keywords":{}}],["wsrespons",{"_index":2068,"title":{},"content":{"348":{"position":[[40,10]]},"349":{"position":[[40,10],[211,12]]}},"keywords":{}}],["wsresponsemiddlewar",{"_index":684,"title":{},"content":{"37":{"position":[[108,20]]},"343":{"position":[[108,20]]},"354":{"position":[[87,20]]}},"keywords":{}}],["wsrouterhandl",{"_index":685,"title":{},"content":{"37":{"position":[[162,15]]},"354":{"position":[[40,15]]}},"keywords":{}}],["www",{"_index":1751,"title":{},"content":{"266":{"position":[[501,3]]}},"keywords":{}}],["x",{"_index":1046,"title":{},"content":{"163":{"position":[[456,1]]},"167":{"position":[[1479,1]]},"168":{"position":[[328,1]]},"171":{"position":[[1040,1]]},"182":{"position":[[469,1]]},"261":{"position":[[256,1]]},"323":{"position":[[172,1]]},"324":{"position":[[722,1]]},"327":{"position":[[111,1],[402,1]]},"379":{"position":[[74,1]]}},"keywords":{}}],["xray",{"_index":796,"title":{},"content":{"122":{"position":[[158,4]]},"196":{"position":[[123,6],[444,4],[488,4]]},"207":{"position":[[121,6],[440,4],[484,4]]},"286":{"position":[[105,6]]},"294":{"position":[[109,6],[423,4],[467,4]]},"305":{"position":[[109,6],[279,4],[323,4],[722,4]]},"311":{"position":[[137,6],[472,4],[516,4]]},"317":{"position":[[133,6],[438,4],[482,4]]},"324":{"position":[[704,4]]},"327":{"position":[[447,4]]},"333":{"position":[[111,6],[283,4],[327,4]]},"346":{"position":[[145,6],[494,4],[538,4]]}},"keywords":{}}],["xray_trace_id",{"_index":1148,"title":{},"content":{"167":{"position":[[1442,13]]}},"keywords":{}}],["xss",{"_index":1744,"title":{},"content":{"261":{"position":[[401,3]]}},"keywords":{}}],["yarn.lock",{"_index":438,"title":{},"content":{"18":{"position":[[1397,9]]}},"keywords":{}}],["yarnclean",{"_index":381,"title":{},"content":{"18":{"position":[[257,10],[330,10]]}},"keywords":{}}],["you'd",{"_index":2132,"title":{},"content":{"365":{"position":[[862,5]]}},"keywords":{}}],["you'll",{"_index":601,"title":{},"content":{"21":{"position":[[2602,6],[2791,6]]},"189":{"position":[[383,6]]},"416":{"position":[[270,6]]},"447":{"position":[[154,6]]}},"keywords":{}}],["you'r",{"_index":574,"title":{},"content":{"21":{"position":[[1982,6]]},"167":{"position":[[1541,6],[2228,6]]},"172":{"position":[[418,6]]},"327":{"position":[[1193,6]]},"378":{"position":[[230,6]]},"447":{"position":[[131,6]]}},"keywords":{}}],["you'v",{"_index":606,"title":{},"content":{"21":{"position":[[2729,6]]}},"keywords":{}}],["yourself",{"_index":2213,"title":{},"content":{"378":{"position":[[253,8]]}},"keywords":{}}],["zlib",{"_index":145,"title":{},"content":{"8":{"position":[[607,7]]},"307":{"position":[[8,4],[18,6]]},"308":{"position":[[8,4],[18,6]]}},"keywords":{}}],["zlib.createbrotlicompress",{"_index":1648,"title":{},"content":{"248":{"position":[[27,25]]},"307":{"position":[[257,27]]}},"keywords":{}}],["zlib.createdefl",{"_index":1652,"title":{},"content":{"248":{"position":[[152,18]]}},"keywords":{}}],["zlib.creategzip",{"_index":1650,"title":{},"content":{"248":{"position":[[94,15]]}},"keywords":{}}]],"pipeline":["stemmer"]} \ No newline at end of file diff --git a/lunr-index.json b/lunr-index.json index 598924d48..04b404b1d 100644 --- a/lunr-index.json +++ b/lunr-index.json @@ -1 +1 @@ -{"version":"2.3.9","fields":["title","content","keywords"],"fieldVectors":[["title/0",[0,681.627,1,958.472]],["content/0",[0,12.242,1,16.114,2,9.681,3,5.767,4,7.174,5,9.009,6,10.66,7,2.498,8,7.581,9,12.496,10,6.043,11,8.083,12,12.496,13,3.124,14,8.28,15,6.358,16,9.319,17,12.496,18,8.738]],["keywords/0",[]],["title/1",[19,1216.752]],["content/1",[19,12.324,20,12.324,21,12.324,22,10.774,23,14.446,24,14.446,25,11.192,26,11.694,27,13.166,28,10.774,29,8.154,30,12.324,31,10.774,32,10.415,33,12.324]],["keywords/1",[]],["title/2",[34,668.638,35,300.711]],["content/2",[3,3.279,10,1.998,32,2.978,34,7.445,35,3.348,36,2.227,37,3.524,38,2.506,39,3.765,40,2.737,41,2.672,42,1.142,43,3.081,44,3.201,45,3.344,46,3.344,47,4.89,48,1.832,49,1.127,50,3.081,51,3.201,52,1.798,53,2.889,54,4.812,55,3.174,56,3.524,57,4.131,58,9.35,59,3.344,60,3.862,61,2.278,62,4.131,63,4.131,64,8.196,65,3.765,66,1.364,67,2.294,68,4.131,69,1.865,70,1.325,71,1.604,72,4.131,73,2.224,74,2.074,75,3.524,76,4.131,77,5.688,78,4.131,79,3.524,80,3.765,81,4.131,82,4.131,83,4.131,84,4.131,85,3.081,86,4.221,87,4.709,88,3.201,89,3.665,90,7.976,91,5.788,92,4.131,93,4.131,94,4.131,95,3.765,96,3.524,97,3.344,98,1.325,99,1.687]],["keywords/2",[]],["title/3",[100,1426.251]],["content/3",[]],["keywords/3",[]],["title/4",[36,339.698]],["content/4",[7,1.857,10,6.578,13,3.4,18,6.497,22,6.929,36,3.24,42,3.759,101,10.144,102,6.929,103,12.398,104,7.926,105,5.244,106,2.583,107,7.926,108,6.929,109,7.521,110,9.291,111,9.291,112,8.468,113,4.241,114,8.468,115,8.468,116,7.521,117,10.538,118,9.014,119,6.698,120,7.198,121,9.291,122,9.291,123,7.198,124,4.929,125,5.079,126,7.926,127,9.291,128,9.291,129,6.698,130,7.926,131,7.926]],["keywords/4",[]],["title/5",[132,1123.5,133,384.981]],["content/5",[7,0.583,13,0.729,22,3.902,26,2.361,35,0.781,36,1.694,38,1.769,40,1.933,41,1.887,42,2.397,47,1.525,48,3.115,49,0.796,52,2.812,54,4.693,60,0.729,61,1.678,71,2.509,74,1.464,77,1.214,98,1.678,105,1.646,106,0.994,117,2.259,118,1.933,119,2.103,124,3.774,129,2.103,133,0.999,134,1.887,135,2.916,136,2.916,137,6.484,138,2.916,139,2.361,140,2.103,141,3.247,142,1.446,143,3.902,144,4.768,145,2.916,146,2.916,147,4.235,148,2.916,149,2.488,150,2.658,151,2.916,152,2.916,153,2.242,154,3.476,155,1.214,156,2.361,157,2.639,158,1.933,159,2.175,160,2.259,161,2.039,162,2.488,163,2.658,164,1.805,165,5.232,166,2.916,167,7.114,168,5.232,169,5.232,170,5.232,171,5.232,172,5.232,173,2.488,174,2.488,175,1.547,176,1.474,177,2.259,178,2.488,179,1.547,180,2.916,181,1.41,182,1.62,183,2.916,184,2.361,185,1.844,186,1.933,187,2.488,188,1.983,189,6.33,190,2.777,191,4.838,192,3.44,193,5.232,194,3.658,195,5.232,196,2.916,197,4.463,198,3.558,199,5.232,200,5.232,201,1.646,202,5.232,203,2.488,204,2.916,205,2.658,206,2.916,207,1.844,208,2.594,209,2.916,210,2.488,211,2.916,212,2.916,213,2.039,214,2.361,215,2.916,216,1.805,217,2.658,218,1.887,219,2.488,220,1.646,221,0.956,222,2.361,223,2.916]],["keywords/5",[]],["title/6",[]],["content/6",[7,2.268,10,2.605,13,2.222,21,4.595,22,6.628,35,1.442,36,1.283,42,3.135,44,4.173,71,2.561,101,4.017,105,8.222,106,1.023,107,4.595,108,6.628,109,4.361,115,4.909,117,11.285,118,9.653,124,2.858,125,2.945,126,7.581,130,4.595,131,9.678,157,1.998,197,7.581,213,3.767,218,3.484,220,3.04,224,3.268,225,5.386,226,6.043,227,7.581,228,5.386,229,4.909,230,5.386,231,5.386,232,4.595,233,5.386,234,3.663,235,4.173,236,4.595,237,8.887,238,8.887,239,4.909,240,2.9,241,5.386,242,3.484,243,3.767,244,8.887,245,5.386,246,2.9,247,5.386,248,4.909,249,7.581,250,6.043,251,4.909,252,5.386,253,4.909,254,5.386,255,5.386,256,5.386,257,1.998,258,5.386,259,4.173,260,4.361,261,5.386,262,3.767,263,3.268,264,4.361,265,5.386,266,5.386,267,3.884,268,5.386,269,4.909,270,5.386,271,4.595,272,4.595,273,3.268,274,5.386]],["keywords/6",[]],["title/7",[275,870.438,276,1024.007]],["content/7",[7,0.917,22,3.42,25,3.553,46,3.712,54,3.061,106,1.475,123,3.553,140,3.306,141,5.429,143,3.42,188,5.282,189,2.245,275,3.553,276,7.08,277,4.18,278,4.18,279,4.586,280,4.18,281,7.537,282,3.912,283,2.967,284,2.967,285,7.768,286,5.282,287,4.586,288,3.912,289,4.586,290,4.586,291,3.712,292,7.768,293,3.207,294,2.9,295,3.553,296,4.18,297,4.586,298,4.586,299,4.586,300,9.351,301,4.586,302,4.586,303,6.537,304,4.586,305,4.586,306,4.586,307,4.586,308,4.586,309,4.586,310,4.586,311,4.586,312,4.586,313,4.586,314,4.586,315,4.586,316,4.586,317,4.18,318,4.586,319,4.18,320,4.586,321,4.586,322,4.586,323,4.586,324,4.586,325,4.586,326,4.586,327,4.586,328,7.768,329,7.768,330,4.586,331,4.586,332,4.586,333,11.895,334,12.131,335,13.31,336,4.586,337,4.586,338,4.586,339,4.586,340,4.586,341,4.586,342,4.586,343,4.586,344,4.586,345,4.586,346,4.586,347,4.586,348,4.586,349,4.18,350,4.586,351,3.306,352,4.586,353,4.586,354,4.586,355,4.586,356,2.729,357,4.586,358,4.586,359,4.586,360,4.586,361,4.586,362,4.586,363,4.586,364,4.586,365,4.586]],["keywords/7",[]],["title/8",[13,231.678,351,668.192,366,562.273]],["content/8",[]],["keywords/8",[]],["title/9",[367,1154.613]],["content/9",[]],["keywords/9",[]],["title/10",[368,997.361]],["content/10",[54,4.172,69,8.895,198,8.016,349,10.745,368,8.244,369,4.685,370,11.788,371,11.788,372,11.788,373,11.788,374,11.788,375,11.788,376,11.788,377,11.788,378,6.08,379,10.745,380,10.745,381,11.788,382,11.788,383,11.788,384,11.788,385,10.745]],["keywords/10",[]],["title/11",[277,1299.947]],["content/11",[]],["keywords/11",[]],["title/12",[386,1154.613]],["content/12",[10,5.395,54,4.636,198,7.587,208,5.531,366,6.769,369,4.434,386,9.032,387,11.157,388,11.157,389,11.157,390,10.169,391,8.321,392,10.169,393,11.157,394,11.157,395,11.157,396,11.157,397,11.157,398,11.157,399,11.157,400,11.157,401,11.157,402,11.157,403,11.157,404,11.157]],["keywords/12",[]],["title/13",[405,1299.947]],["content/13",[7,3.616,45,7.865,48,2.505,52,1.52,53,4.201,54,4.595,60,1.502,69,2.712,70,1.926,147,7.865,150,12.808,176,2.737,190,2.345,198,4.085,218,6.285,240,3.235,286,4.085,303,3.886,369,2.387,391,4.481,405,5.476,406,14.052,407,6.008,408,6.008,409,9.716,410,7.246,411,6.008,412,2.09,413,6.008,414,9.716,415,6.008,416,4.864,417,2.804,418,8.02,419,4.655,420,3.981,421,3.51,422,4.655,423,3.8,424,2.941,425,3.981,426,4.655,427,5.476,428,3.142,429,4.655,430,4.864,431,4.201,432,3.719,433,4.481,434,3.8,435,3.8]],["keywords/13",[]],["title/14",[436,1426.251]],["content/14",[198,11.405,369,6.665,437,15.287,438,15.287,439,16.772,440,11.405,441,16.772]],["keywords/14",[]],["title/15",[442,1299.947]],["content/15",[7,3.404,48,2.209,49,1.406,52,2.168,54,4.67,69,2.327,70,1.652,98,1.652,153,4.713,176,3.609,190,4.292,198,3.504,221,1.689,227,4.396,240,2.775,260,4.172,369,2.048,391,3.843,412,1.793,416,4.172,417,2.405,418,7.505,419,3.992,420,3.415,421,3.011,422,3.992,423,3.259,424,2.523,425,7.286,426,3.992,427,4.697,428,2.695,429,3.992,430,4.172,431,3.604,432,3.19,433,3.843,434,3.259,435,3.259,442,7.808,443,5.153,444,5.153,445,5.153,446,4.758,447,5.153,448,5.153,449,5.153,450,5.153,451,5.153,452,8.567,453,5.153,454,5.153,455,4.697,456,5.153,457,5.153,458,4.396,459,5.153,460,4.396,461,3.604,462,5.018,463,6.312,464,3.011,465,4.396]],["keywords/15",[]],["title/16",[466,945.114]],["content/16",[]],["keywords/16",[]],["title/17",[467,1426.251]],["content/17",[54,4.819,79,10.057,198,8.016,286,8.016,294,7.455,369,4.685,385,10.745,391,8.792,468,11.788,469,11.788,470,11.788,471,11.788,472,11.788,473,11.788,474,11.788,475,11.788,476,11.788,477,11.788,478,11.788]],["keywords/17",[]],["title/18",[386,1154.613]],["content/18",[198,10.964,369,6.407,386,13.052,390,14.695,391,12.025,392,14.695,479,16.123,480,16.123,481,16.123]],["keywords/18",[]],["title/19",[482,1426.251]],["content/19",[54,4.713,198,8.131,286,8.131,294,7.562,369,4.752,379,10.899,380,10.899,391,8.918,437,10.899,438,10.899,483,11.958,484,11.958,485,11.958,486,11.958,487,11.958,488,11.958,489,11.958,490,11.958,491,11.958,492,11.958]],["keywords/19",[]],["title/20",[493,1216.752]],["content/20",[]],["keywords/20",[]],["title/21",[494,997.361]],["content/21",[3,1.188,6,2.196,11,1.665,13,0.643,15,1.31,32,1.856,36,0.613,41,1.665,42,2.832,52,3.933,54,4.507,60,3.01,61,2.059,69,1.162,70,0.825,71,1.782,73,1.386,89,3.311,91,1.594,105,1.453,106,0.489,113,3.603,124,3.406,133,0.882,140,1.856,184,2.084,188,3.178,227,2.196,257,0.955,264,2.084,282,2.196,283,3.024,288,2.196,294,4.06,300,1.665,367,3.784,412,2.234,458,2.196,494,3.268,495,2.182,496,2.196,497,4.06,498,2.574,499,3.37,500,1.504,501,3.37,502,2.346,503,2.574,504,3.486,505,2.346,506,2.574,507,2.574,508,2.574,509,15.956,510,2.782,511,1.75,512,2.555,513,3.987,514,4.26,515,4.26,516,4.26,517,2.346,518,2.346,519,4.26,520,4.26,521,4.26,522,2.346,523,4.26,524,2.346,525,4.26,526,2.346,527,2.574,528,2.346,529,2.196,530,2.346,531,1.994,532,2.346,533,2.346,534,2.346,535,2.346,536,2.196,537,2.346,538,2.346,539,1.429,540,2.574,541,2.574,542,2.574,543,2.574,544,2.574,545,2.574,546,2.574,547,2.574,548,2.574,549,2.574,550,2.574,551,2.574,552,2.574,553,2.574,554,2.574,555,2.574,556,2.574,557,2.574,558,2.574,559,2.574,560,2.574,561,2.574,562,2.574,563,2.574,564,2.574,565,2.574,566,2.346,567,5.477,568,2.084,569,2.574,570,2.574,571,1.706,572,4.26,573,2.196,574,1.994,575,2.574,576,1.8,577,2.196,578,2.574,579,1.532,580,2.346,581,2.574,582,2.084,583,2.084,584,1.665,585,2.517,586,2.378,587,2.574,588,2.196,589,2.574,590,1.8,591,1.594,592,2.346,593,2.574,594,1.994,595,2.574,596,2.084,597,2.574,598,2.574,599,2.196,600,1.994,601,4.26,602,1.856,603,2.346,604,4.674,605,2.346,606,2.574,607,1.665,608,2.084]],["keywords/21",[]],["title/22",[609,1299.947]],["content/22",[48,1.289,52,4.974,54,4.877,55,2.233,60,4.203,61,1.603,70,1.603,71,1.886,91,3.095,113,3.812,412,2.906,495,3.899,496,4.264,499,6.022,500,2.921,501,6.022,502,4.556,504,6.229,505,4.556,513,7.125,514,4.556,515,7.613,516,4.556,517,4.556,518,4.556,519,7.613,520,7.613,521,7.613,522,4.556,523,7.613,524,4.556,525,7.613,526,4.556,528,4.556,529,4.264,530,4.556,531,3.873,532,4.556,533,4.556,534,4.556,535,4.556,536,4.264,537,4.556,538,4.556,610,8.352,611,4.999,612,4.999,613,4.999,614,4.999,615,4.999]],["keywords/22",[]],["title/23",[123,718.023,142,459.441,616,599.516]],["content/23",[]],["keywords/23",[]],["title/24",[7,224.61,617,463.223]],["content/24",[7,3.103,13,4.816,123,14.924,142,7.695,221,5.086,616,10.041,618,8.911,619,15.522,620,7.599]],["keywords/24",[]],["title/25",[133,488.722]],["content/25",[35,3.737,36,3.325,48,3.599,49,3.809,52,3.533,54,4.812,60,3.49,70,4.477,71,3.152,99,5.703,621,11.302]],["keywords/25",[]],["title/26",[622,1299.947]],["content/26",[]],["keywords/26",[]],["title/27",[7,224.61,617,463.223]],["content/27",[7,3.569,13,4.462,106,3.39,622,16.27]],["keywords/27",[]],["title/28",[133,488.722]],["content/28",[35,3.801,36,4.337,48,3.661,49,3.874,52,3.593,54,4.643,60,3.55,70,4.553,71,3.206,99,5.8,623,5.968]],["keywords/28",[]],["title/29",[142,459.441,616,599.516,624,648.082]],["content/29",[]],["keywords/29",[]],["title/30",[7,224.61,617,463.223]],["content/30",[7,3.287,13,4.11,106,3.122,142,9.893,620,8.049,624,11.497,625,13.31]],["keywords/30",[]],["title/31",[133,488.722]],["content/31",[0,4.651,36,2.805,48,4.919,49,2.091,52,2.98,54,4.696,70,2.458,71,4.308,141,3.499,154,2.668,155,3.191,176,2.16,412,2.668,420,9.501,626,6.987,627,6.54,628,6.987,629,4.563,630,10.733,631,7.666,632,10.733,633,7.666,634,10.733,635,7.666,636,5.361,637,12.232,638,6.54,639,6.987,640,6.54,641,7.666]],["keywords/31",[]],["title/32",[142,459.441,221,303.691,616,599.516]],["content/32",[]],["keywords/32",[]],["title/33",[7,224.61,617,463.223]],["content/33",[7,3.287,13,4.11,106,3.122,142,9.893,221,5.388,620,8.049,625,13.31]],["keywords/33",[]],["title/34",[133,488.722]],["content/34",[29,2.112,35,1.001,36,1.553,48,5.075,49,1.021,52,0.947,54,4.506,60,2.167,61,1.2,70,1.2,71,1.472,98,1.2,99,1.528,106,1.239,113,1.708,124,1.985,125,4.739,141,3.957,153,7.529,154,3.611,155,4.319,157,1.388,176,1.837,181,1.809,189,3.193,216,4.037,240,2.014,242,2.42,412,1.302,446,2.078,462,2.977,463,2.148,495,3.044,623,1.572,642,2.79,643,2.616,644,2.79,645,2.616,646,5.053,647,2.186,648,2.899,649,2.899,650,2.316,651,2.899,652,2.899,653,2.592,654,2.899,655,2.715,656,2.899,657,2.899,658,2.366,659,2.899,660,2.014,661,5.053,662,2.899,663,2.899,664,3.622,665,2.899,666,2.616,667,2.79,668,2.227,669,2.899,670,5.053,671,4.56,672,2.899,673,2.698,674,2.79,675,2.79,676,2.899,677,2.899,678,2.79,679,2.42,680,4.702,681,2.479,682,2.79,683,4.435,684,2.899,685,5.053,686,2.899,687,2.79,688,2.899,689,2.899,690,2.899,691,2.899,692,2.698,693,2.698,694,2.616,695,2.899,696,2.79,697,2.899]],["keywords/34",[]],["title/35",[262,648.082,698,844.701,699,790.642]],["content/35",[]],["keywords/35",[]],["title/36",[7,224.61,617,463.223]],["content/36",[7,3.422,13,4.279,106,3.251,262,11.97,698,15.601,699,14.603]],["keywords/36",[]],["title/37",[133,488.722]],["content/37",[29,2.057,36,1.518,48,5.04,49,0.994,52,1.613,54,4.483,60,1.593,61,1.168,70,1.168,71,2.873,98,1.168,106,1.21,113,1.663,125,4.642,141,1.663,153,7.628,154,3.544,155,4.24,157,1.351,176,1.795,181,1.762,240,1.962,242,2.357,412,1.268,446,4.716,462,2.908,463,2.092,495,2.974,629,2.168,636,2.548,642,2.717,643,2.548,644,2.717,645,2.548,646,4.937,647,2.129,648,2.823,649,2.823,650,2.256,651,2.823,652,2.823,653,2.532,654,2.823,655,2.652,656,2.823,657,2.823,658,2.304,659,2.823,660,1.962,661,4.937,662,2.823,663,2.823,664,3.539,665,2.823,667,2.717,668,2.168,673,2.627,674,2.717,675,2.717,676,2.823,677,2.823,678,2.717,679,2.357,680,4.594,681,2.414,682,2.717,683,4.333,684,2.823,685,4.937,686,2.823,687,2.717,688,2.823,689,2.823,690,2.823,691,2.823,692,2.627,693,2.627,694,2.548,695,2.823,697,2.823,700,3.321,701,5.808,702,6.372,703,6.372,704,5.808,705,4.594,706,3.321,707,2.949,708,2.627,709,3.321]],["keywords/37",[]],["title/38",[710,1299.947]],["content/38",[]],["keywords/38",[]],["title/39",[7,224.61,617,463.223]],["content/39",[7,3.569,13,4.462,106,3.39,710,16.27]],["keywords/39",[]],["title/40",[133,488.722]],["content/40",[35,3.737,36,3.325,48,3.599,49,3.809,52,3.533,54,4.812,60,3.49,70,4.477,71,3.152,99,5.703,621,11.302]],["keywords/40",[]],["title/41",[142,459.441,187,790.642,616,599.516]],["content/41",[]],["keywords/41",[]],["title/42",[7,224.61,617,463.223]],["content/42",[7,3.287,13,4.11,106,3.122,142,9.893,187,14.026,620,8.049,625,13.31]],["keywords/42",[]],["title/43",[133,488.722]],["content/43",[29,2.112,35,1.001,36,1.553,48,5.075,49,1.021,52,0.947,54,4.506,60,2.167,61,1.2,70,1.2,71,1.472,98,1.2,99,1.528,106,1.239,113,1.708,124,1.985,125,4.739,141,3.957,153,7.529,154,3.611,155,4.319,157,1.388,176,1.837,181,1.809,189,3.193,216,4.037,240,2.014,242,2.42,446,2.078,462,2.977,463,2.148,495,3.044,623,1.572,642,2.79,643,2.616,644,2.79,645,2.616,646,5.053,647,2.186,648,2.899,649,2.899,650,2.316,651,2.899,652,2.899,653,2.592,654,2.899,655,2.715,656,2.899,657,2.899,658,2.366,659,2.899,660,2.014,661,5.053,662,2.899,663,2.899,664,3.622,665,2.899,666,2.616,667,2.79,668,2.227,669,2.899,670,5.053,671,4.56,672,2.899,673,2.698,674,2.79,675,2.79,676,2.899,677,2.899,678,2.79,679,2.42,680,4.702,681,2.479,682,2.79,683,4.435,684,2.899,685,5.053,686,2.899,687,2.79,688,2.899,689,2.899,690,2.899,691,2.899,692,2.698,693,2.698,694,2.616,695,2.899,696,2.79,697,2.899,711,3.192]],["keywords/43",[]],["title/44",[712,1024.007,713,1024.007]],["content/44",[]],["keywords/44",[]],["title/45",[7,224.61,617,463.223]],["content/45",[7,3.494,13,4.369,106,3.319,712,15.928,713,15.928]],["keywords/45",[]],["title/46",[133,488.722]],["content/46",[33,11.163,35,3.502,36,4.113,48,3.373,49,3.57,52,3.311,54,4.647,60,3.271,64,6.942,70,4.196,71,2.954,99,5.344,106,2.485,623,5.499,714,13.084]],["keywords/46",[]],["title/47",[715,1299.947]],["content/47",[]],["keywords/47",[]],["title/48",[7,224.61,617,463.223]],["content/48",[7,4.138,13,4.369,106,3.319,715,15.928]],["keywords/48",[]],["title/49",[133,488.722]],["content/49",[35,3.801,36,4.337,48,3.661,49,3.874,52,3.593,54,4.643,60,3.55,70,4.553,71,3.206,99,5.8,623,5.968]],["keywords/49",[]],["title/50",[716,1299.947]],["content/50",[]],["keywords/50",[]],["title/51",[7,224.61,617,463.223]],["content/51",[7,4.138,13,4.369,106,3.319,716,15.928]],["keywords/51",[]],["title/52",[133,488.722]],["content/52",[35,3.801,36,4.337,48,3.661,49,3.874,52,3.593,54,4.643,60,3.55,70,4.553,71,3.206,99,5.8,623,5.968]],["keywords/52",[]],["title/53",[717,1299.947]],["content/53",[]],["keywords/53",[]],["title/54",[7,224.61,617,463.223]],["content/54",[7,4.138,13,4.369,106,3.319,717,15.928]],["keywords/54",[]],["title/55",[133,488.722]],["content/55",[35,3.502,36,4.113,48,4.451,49,3.57,52,3.311,54,4.524,60,3.271,70,4.196,71,2.954,99,5.344,623,5.499,653,5.2,718,7.938,719,7.645,720,7.938]],["keywords/55",[]],["title/56",[721,1216.752]],["content/56",[]],["keywords/56",[]],["title/57",[7,224.61,617,463.223]],["content/57",[7,3.494,13,4.369,106,3.319,620,8.555,721,14.909]],["keywords/57",[]],["title/58",[133,488.722]],["content/58",[35,3.801,36,4.337,48,3.661,49,3.874,52,3.593,54,4.643,60,3.55,70,4.553,71,3.206,99,5.8,623,5.968]],["keywords/58",[]],["title/59",[105,634.177,722,1024.007]],["content/59",[]],["keywords/59",[]],["title/60",[7,224.61,617,463.223]],["content/60",[7,4.138,13,4.369,106,3.319,723,17.476]],["keywords/60",[]],["title/61",[133,488.722]],["content/61",[35,3.801,36,4.337,48,3.661,49,3.874,52,3.593,54,4.643,60,3.55,70,4.553,71,3.206,99,5.8,623,5.968]],["keywords/61",[]],["title/62",[539,514.673,724,926.774,725,926.774]],["content/62",[]],["keywords/62",[]],["title/63",[7,224.61,617,463.223]],["content/63",[13,4.462,106,3.39,539,9.913,726,11.547]],["keywords/63",[]],["title/64",[133,488.722]],["content/64",[35,3.502,36,4.113,48,4.451,49,3.57,52,3.311,54,4.524,60,3.271,70,4.196,71,2.954,99,5.344,623,5.499,653,5.2,718,7.938,719,7.645,720,7.938]],["keywords/64",[]],["title/65",[727,1299.947]],["content/65",[]],["keywords/65",[]],["title/66",[0,865.306]],["content/66",[]],["keywords/66",[]],["title/67",[7,224.61,617,463.223]],["content/67",[0,10.83,13,4.462,106,3.39,620,8.739]],["keywords/67",[]],["title/68",[133,488.722]],["content/68",[35,3.801,36,4.337,48,3.661,49,3.874,52,3.593,54,4.643,60,3.55,70,4.553,71,3.206,99,5.8,623,5.968]],["keywords/68",[]],["title/69",[7,224.61,617,463.223]],["content/69",[7,3.494,13,4.369,106,3.319,620,8.555,727,15.928]],["keywords/69",[]],["title/70",[133,488.722]],["content/70",[35,3.737,36,3.325,48,3.599,49,3.809,52,3.533,54,4.812,60,3.49,70,4.477,71,3.152,99,5.703,621,11.302]],["keywords/70",[]],["title/71",[53,997.361]],["content/71",[]],["keywords/71",[]],["title/72",[7,224.61,617,463.223]],["content/72",[7,4.138,13,4.369,53,12.221,106,3.319]],["keywords/72",[]],["title/73",[133,488.722]],["content/73",[35,3.502,36,4.113,48,4.451,49,3.57,52,3.311,54,4.524,60,3.271,70,4.196,71,2.954,99,5.344,623,5.499,653,5.2,718,7.938,719,7.645,720,7.938]],["keywords/73",[]],["title/74",[728,1299.947]],["content/74",[]],["keywords/74",[]],["title/75",[729,1299.947]],["content/75",[]],["keywords/75",[]],["title/76",[7,224.61,617,463.223]],["content/76",[7,3.494,13,4.369,106,3.319,620,8.555,729,15.928]],["keywords/76",[]],["title/77",[133,488.722]],["content/77",[35,3.801,36,4.337,48,3.661,49,3.874,52,3.593,54,4.643,60,3.55,70,4.553,71,3.206,99,5.8,623,5.968]],["keywords/77",[]],["title/78",[7,224.61,617,463.223]],["content/78",[7,3.353,13,4.193,98,5.378,106,3.185,620,8.211,726,10.85,728,15.287]],["keywords/78",[]],["title/79",[133,488.722]],["content/79",[35,3.737,36,3.325,48,3.599,49,3.809,52,3.533,54,4.812,60,3.49,70,4.477,71,3.152,99,5.703,621,11.302]],["keywords/79",[]],["title/80",[730,922.62]],["content/80",[]],["keywords/80",[]],["title/81",[7,224.61,617,463.223]],["content/81",[7,3.494,13,4.369,106,3.319,620,8.555,730,11.305]],["keywords/81",[]],["title/82",[133,488.722]],["content/82",[35,3.502,36,4.113,48,4.451,49,3.57,52,3.311,54,4.524,60,3.271,70,4.196,71,2.954,99,5.344,623,5.499,653,5.2,718,7.938,719,7.645,720,7.938]],["keywords/82",[]],["title/83",[731,926.774,732,844.701,733,750.264]],["content/83",[]],["keywords/83",[]],["title/84",[7,224.61,617,463.223]],["content/84",[7,4.138,13,4.369,106,3.319,733,14.148]],["keywords/84",[]],["title/85",[133,488.722]],["content/85",[35,3.801,36,4.337,48,3.661,49,3.874,52,3.593,54,4.643,60,3.55,70,4.553,71,3.206,99,5.8,623,5.968]],["keywords/85",[]],["title/86",[98,360.258,733,909.523]],["content/86",[]],["keywords/86",[]],["title/87",[7,224.61,617,463.223]],["content/87",[7,4.087,13,4.279,98,5.489,106,3.251,733,13.857]],["keywords/87",[]],["title/88",[133,488.722]],["content/88",[35,3.801,36,4.337,48,3.661,49,3.874,52,3.593,54,4.643,60,3.55,70,4.553,71,3.206,99,5.8,623,5.968]],["keywords/88",[]],["title/89",[257,416.721,734,958.472]],["content/89",[]],["keywords/89",[]],["title/90",[7,224.61,617,463.223]],["content/90",[7,3.287,13,4.11,106,3.122,142,9.893,221,5.388,620,8.049,625,13.31]],["keywords/90",[]],["title/91",[133,488.722]],["content/91",[29,2.093,35,0.993,36,1.541,48,5.063,49,1.012,52,0.938,54,4.498,60,2.152,61,1.189,69,1.674,70,1.189,71,1.461,98,1.189,99,1.515,106,1.229,113,1.693,124,1.967,125,4.706,141,3.929,153,7.505,154,3.588,155,4.293,157,1.375,176,1.823,181,1.793,189,3.168,216,4.006,240,1.997,242,2.399,412,1.29,446,2.059,462,2.954,463,2.129,495,3.021,623,1.558,642,2.766,643,2.593,644,2.766,645,2.593,646,5.013,647,2.167,648,2.873,649,2.873,650,2.296,651,2.873,652,2.873,653,2.571,654,2.873,655,2.693,656,2.873,657,2.873,658,2.345,659,2.873,660,1.997,661,5.013,662,2.873,663,2.873,664,3.594,665,2.873,666,2.593,667,2.766,668,2.207,669,2.873,670,5.013,671,4.525,672,2.873,673,2.674,674,2.766,675,2.766,676,2.873,677,2.873,678,2.766,679,2.399,680,4.665,681,2.457,682,2.766,683,4.4,684,2.873,685,5.013,686,2.873,687,2.766,688,2.873,689,2.873,690,2.873,691,2.873,692,2.674,693,2.674,694,2.593,695,2.873,696,2.766,697,2.873,735,3.002]],["keywords/91",[]],["title/92",[428,412.471,461,551.512,736,672.828,737,718.833]],["content/92",[]],["keywords/92",[]],["title/93",[7,224.61,617,463.223]],["content/93",[13,4.462,106,3.39,620,8.739,737,16.27]],["keywords/93",[]],["title/94",[133,488.722]],["content/94",[35,3.502,36,4.113,48,4.451,49,3.57,52,3.311,54,4.524,60,3.271,70,4.196,71,2.954,99,5.344,623,5.499,653,5.2,718,7.938,719,7.645,720,7.938]],["keywords/94",[]],["title/95",[428,484.695,736,790.642,738,844.701]],["content/95",[]],["keywords/95",[]],["title/96",[7,224.61,617,463.223]],["content/96",[13,4.279,106,3.251,428,8.952,736,14.603,738,15.601,739,17.117]],["keywords/96",[]],["title/97",[133,488.722]],["content/97",[35,3.502,36,4.113,48,4.451,49,3.57,52,3.311,54,4.524,60,3.271,70,4.196,71,2.954,99,5.344,623,5.499,653,5.2,718,7.938,719,7.645,720,7.938]],["keywords/97",[]],["title/98",[740,909.523,741,1024.007]],["content/98",[]],["keywords/98",[]],["title/99",[7,224.61,617,463.223]],["content/99",[7,3.353,13,4.193,106,3.185,175,8.898,620,8.211,740,13.578,741,15.287]],["keywords/99",[]],["title/100",[133,488.722]],["content/100",[35,3.502,36,4.113,48,4.451,49,3.57,52,3.311,54,4.524,60,3.271,70,4.196,71,2.954,99,5.344,623,5.499,653,5.2,718,7.938,719,7.645,720,7.938]],["keywords/100",[]],["title/101",[7,224.61,98,360.258]],["content/101",[]],["keywords/101",[]],["title/102",[13,231.678,42,256.091,742,926.774]],["content/102",[35,2.151,36,2.907,48,5.153,49,2.192,52,2.034,54,4.555,60,2.009,71,1.814,97,6.506,98,2.577,99,3.282,124,4.263,141,5.572,189,5.976,216,7.557,240,4.327,495,5.698,642,5.993,643,5.62,644,5.993,645,5.62,666,5.62,667,5.993,668,4.783,669,6.226,670,9.458,671,8.536,672,6.226,675,5.993,696,5.993,743,8.036,744,7.324,745,4.783,746,8.036,747,8.036,748,8.036]],["keywords/102",[]],["title/103",[47,484.695,749,506.638,750,844.701]],["content/103",[35,1.51,36,2.199,48,4.133,49,1.539,50,4.208,51,4.371,52,1.428,54,4.873,60,2.308,70,1.809,71,1.274,77,3.843,85,4.208,91,3.493,96,4.813,97,4.567,98,1.809,99,2.304,106,2.571,422,4.371,423,3.568,426,7.152,428,2.951,432,5.715,433,4.208,434,5.838,435,3.568,751,9.231,752,9.231,753,4.567,754,8.414,755,9.231,756,8.758,757,8.414,758,4.813,759,5.642,760,5.142,761,5.642,762,4.813,763,5.142,764,7.152,765,4.567,766,5.642,767,8.414,768,5.142,769,4.068,770,5.642,771,5.642]],["keywords/103",[]],["title/104",[53,648.082,750,844.701,772,750.264]],["content/104",[5,3.934,35,1.461,36,2.139,48,4.068,49,1.489,50,4.07,51,4.228,52,1.381,54,4.979,60,2.245,70,1.75,71,1.232,77,3.739,85,4.07,86,4.055,91,3.378,96,4.655,97,4.418,98,1.75,99,2.229,106,2.52,262,3.816,263,3.311,424,4.397,425,3.616,432,5.561,433,4.07,730,5.811,754,8.187,756,8.584,767,4.974,773,8.983,774,4.655,775,8.983,776,8.983,777,4.655,778,6.281,779,4.974,780,4.974,781,4.655,782,5.457,783,5.457]],["keywords/104",[]],["title/105",[784,1299.947]],["content/105",[]],["keywords/105",[]],["title/106",[7,224.61,617,463.223]],["content/106",[7,3.851,13,4.816,106,2.948,257,5.757,620,9.43,784,14.148,785,15.522,786,13.242]],["keywords/106",[]],["title/107",[133,488.722]],["content/107",[35,3.801,36,4.337,48,3.661,49,3.874,52,3.593,54,4.643,60,3.55,70,4.553,71,3.206,99,5.8,623,5.968]],["keywords/107",[]],["title/108",[787,1299.947]],["content/108",[]],["keywords/108",[]],["title/109",[7,224.61,617,463.223]],["content/109",[13,4.462,106,3.39,620,8.739,787,16.27]],["keywords/109",[]],["title/110",[133,488.722]],["content/110",[35,3.502,36,4.113,48,4.451,49,3.57,52,3.311,54,4.524,60,3.271,70,4.196,71,2.954,99,5.344,623,5.499,653,5.2,718,7.938,719,7.645,720,7.938]],["keywords/110",[]],["title/111",[424,698.222]],["content/111",[]],["keywords/111",[]],["title/112",[7,224.61,617,463.223]],["content/112",[7,3.494,13,4.369,106,3.319,424,8.555,620,8.555]],["keywords/112",[]],["title/113",[133,488.722]],["content/113",[13,2.906,35,3.111,36,3.798,48,4.111,49,3.171,52,2.942,54,4.489,60,4.896,70,3.727,71,2.625,99,4.748,424,5.691,623,4.885,653,4.619,718,7.052,719,6.792,720,7.052,788,9.41,789,7.052]],["keywords/113",[]],["title/114",[421,833.358]],["content/114",[]],["keywords/114",[]],["title/115",[7,224.61,617,463.223]],["content/115",[7,3.494,13,4.369,106,3.319,421,10.211,620,8.555]],["keywords/115",[]],["title/116",[133,488.722]],["content/116",[13,2.989,35,3.201,36,3.872,48,4.191,49,3.262,52,3.026,54,4.527,60,4.617,70,3.834,71,2.7,99,4.884,421,6.987,623,5.026,653,4.752,718,7.255,719,6.987,720,7.255,788,9.68]],["keywords/116",[]],["title/117",[424,550.01,790,710.535]],["content/117",[]],["keywords/117",[]],["title/118",[7,224.61,617,463.223]],["content/118",[7,3.353,13,4.193,106,3.185,424,8.211,620,8.211,790,10.607,791,15.287]],["keywords/118",[]],["title/119",[133,488.722]],["content/119",[35,3.502,36,4.113,48,4.451,49,3.57,52,3.311,54,4.524,60,3.271,70,4.196,71,2.954,99,5.344,623,5.499,653,5.2,718,7.938,719,7.645,720,7.938]],["keywords/119",[]],["title/120",[461,785.651,740,909.523]],["content/120",[]],["keywords/120",[]],["title/121",[7,224.61,617,463.223]],["content/121",[7,3.494,13,4.369,106,3.319,620,8.555,740,14.148]],["keywords/121",[]],["title/122",[133,488.722]],["content/122",[35,3.502,36,4.113,48,4.451,49,3.57,52,3.311,54,4.524,60,3.271,70,4.196,71,2.954,99,5.344,623,5.499,653,5.2,718,7.938,719,7.645,720,7.938]],["keywords/122",[]],["title/123",[428,587.582,749,614.183]],["content/123",[]],["keywords/123",[]],["title/124",[7,224.61,617,463.223]],["content/124",[7,3.494,13,4.369,106,3.319,428,9.14,749,9.554]],["keywords/124",[]],["title/125",[133,488.722]],["content/125",[35,3.801,36,4.337,48,3.661,49,3.874,52,3.593,54,4.643,60,3.55,70,4.553,71,3.206,99,5.8,623,5.968]],["keywords/125",[]],["title/126",[190,438.587,424,550.01]],["content/126",[]],["keywords/126",[]],["title/127",[7,224.61,617,463.223]],["content/127",[13,3.954,190,8.607,424,10.341,792,13.494,793,15.817]],["keywords/127",[]],["title/128",[133,488.722]],["content/128",[7,2.117,35,2.834,36,3.559,41,6.85,43,7.898,48,4.464,49,2.889,52,2.68,54,4.36,60,2.647,70,3.396,71,2.391,99,4.325,176,2.984,190,4.134,417,4.943,425,7.017,623,4.451,794,10.59,795,9.903,796,13.621,797,6.697,798,10.59,799,10.59,800,10.59,801,8.573]],["keywords/128",[]],["title/129",[802,1299.947]],["content/129",[]],["keywords/129",[]],["title/130",[7,224.61,617,463.223]],["content/130",[7,3.494,13,4.369,106,3.319,620,8.555,802,15.928]],["keywords/130",[]],["title/131",[133,488.722]],["content/131",[35,3.801,36,4.337,48,3.661,49,3.874,52,3.593,54,4.643,60,3.55,70,4.553,71,3.206,99,5.8,623,5.968]],["keywords/131",[]],["title/132",[788,1154.613]],["content/132",[]],["keywords/132",[]],["title/133",[7,224.61,617,463.223]],["content/133",[7,3.494,13,4.369,106,3.319,620,8.555,788,14.148]],["keywords/133",[]],["title/134",[133,488.722]],["content/134",[35,3.502,36,4.113,48,4.451,49,3.57,52,3.311,54,4.524,60,3.271,70,4.196,71,2.954,99,5.344,623,5.499,653,5.2,718,7.938,719,7.645,720,7.938]],["keywords/134",[]],["title/135",[803,1426.251]],["content/135",[]],["keywords/135",[]],["title/136",[13,151.89,16,453.144,294,384.264,494,424.887,804,470.741,805,518.35]],["content/136",[0,8.764,98,5.904,133,4.95,235,11.192,571,9.573,764,11.192,806,12.201,807,11.399,808,12.324,809,12.324,810,13.166,811,11.694]],["keywords/136",[]],["title/137",[789,865.306]],["content/137",[]],["keywords/137",[]],["title/138",[7,224.61,617,463.223]],["content/138",[7,3.494,13,4.369,106,3.319,620,8.555,789,10.603]],["keywords/138",[]],["title/139",[133,488.722]],["content/139",[35,3.155,36,3.834,48,4.726,49,3.216,52,2.983,54,4.367,60,2.947,70,3.78,71,2.662,99,4.815,623,4.954,653,4.685,660,6.347,718,7.152,719,6.888,720,7.152,790,7.455,812,11.788,813,10.057,814,8.016,815,11.788]],["keywords/139",[]],["title/140",[816,1299.947]],["content/140",[]],["keywords/140",[]],["title/141",[7,224.61,617,463.223]],["content/141",[7,3.494,13,4.369,263,10.603,620,8.555,816,15.928]],["keywords/141",[]],["title/142",[133,488.722]],["content/142",[35,3.801,36,4.337,48,3.661,49,3.874,52,3.593,54,4.643,60,3.55,70,4.553,71,3.206,99,5.8,623,5.968]],["keywords/142",[]],["title/143",[817,1299.947]],["content/143",[73,7.915,134,9.51,246,7.915,440,9.997,591,9.101,618,8.44,817,13.399,818,13.019,819,9.997,820,9.997,821,9.51,822,9.51,823,9.741]],["keywords/143",[]],["title/144",[824,1024.007,825,1024.007]],["content/144",[]],["keywords/144",[]],["title/145",[7,224.61,617,463.223]],["content/145",[7,3.422,13,4.279,106,3.251,620,8.38,824,15.601,825,15.601]],["keywords/145",[]],["title/146",[133,488.722]],["content/146",[29,2.093,35,0.993,36,1.541,48,5.063,49,1.012,52,0.938,54,4.522,60,2.152,61,1.189,70,1.189,71,1.461,98,1.189,99,1.515,106,1.229,113,1.693,124,1.967,125,4.706,141,3.929,153,7.505,154,3.588,155,4.293,157,1.375,176,1.823,181,1.793,189,3.168,208,1.838,216,4.006,240,1.997,242,2.399,412,1.29,446,2.059,462,2.954,463,2.129,495,3.021,623,1.558,642,2.766,643,2.593,644,2.766,645,2.593,646,5.013,647,2.167,648,2.873,649,2.873,650,2.296,651,2.873,652,2.873,653,2.571,654,2.873,655,2.693,656,2.873,657,2.873,658,2.345,659,2.873,660,1.997,661,5.013,662,2.873,663,2.873,664,3.594,665,2.873,666,2.593,667,2.766,668,2.207,669,2.873,670,5.013,671,4.525,672,2.873,673,2.674,674,2.766,675,2.766,676,2.873,677,2.873,678,2.766,679,2.399,680,4.665,681,2.457,682,2.766,683,4.4,684,2.873,685,5.013,686,2.873,687,2.766,688,2.873,689,2.873,690,2.873,691,2.873,692,2.674,693,2.674,694,2.593,695,2.873,696,2.766,697,2.873]],["keywords/146",[]],["title/147",[826,1216.752]],["content/147",[73,7.915,134,9.51,246,7.915,440,9.997,591,9.101,618,8.44,818,13.019,819,9.997,820,9.997,821,9.51,822,9.51,823,9.741,826,12.541]],["keywords/147",[]],["title/148",[827,1024.007,828,1024.007]],["content/148",[13,1.882,36,1.793,45,9.4,48,4.438,49,2.054,52,2.939,54,4.545,55,3.362,70,2.414,71,1.7,73,4.053,106,1.43,134,4.87,141,3.436,153,3.227,154,2.619,155,3.133,188,5.119,220,4.249,246,4.053,440,5.119,591,4.66,618,4.322,818,8.12,819,5.119,820,5.119,821,4.87,822,4.87,823,4.988,827,12.92,828,10.583,829,11.612,830,7.528,831,11.612,832,7.528,833,7.528,834,7.528,835,7.528,836,7.528,837,7.528,838,7.528,839,5.427,840,6.094,841,7.528]],["keywords/148",[]],["title/149",[108,837.901,226,763.987]],["content/149",[73,7.273,108,10.075,134,8.739,226,11.99,246,7.273,440,9.186,591,8.363,618,7.755,668,8.04,818,12.33,819,9.186,820,9.186,821,8.739,822,8.739,823,8.952,842,13.509,843,13.509]],["keywords/149",[]],["title/150",[226,763.987,844,763.987]],["content/150",[73,7.778,134,9.345,226,9.823,246,7.778,440,9.823,591,8.943,618,8.293,818,12.875,819,9.823,820,9.823,821,9.345,822,9.345,823,9.573,844,9.823]],["keywords/150",[]],["title/151",[7,137.224,8,416.436,421,401.061,764,531.789,845,625.611]],["content/151",[0,5.86,3,2.753,7,1.192,8,3.619,11,3.859,29,5.452,47,3.12,48,1.538,52,2.444,54,4.511,60,1.491,61,1.913,64,3.165,69,2.693,73,5.201,105,3.367,106,1.834,113,2.723,134,3.859,157,4.515,246,3.212,421,5.644,426,7.484,432,3.693,440,4.056,586,3.035,591,3.693,600,4.621,618,3.424,680,6.964,764,4.621,818,6.755,819,4.056,820,4.056,821,6.249,822,3.859,823,3.953,845,5.437,846,8.804,847,3.772,848,5.965,849,5.965,850,5.437,851,5.437,852,5.089,853,5.965,854,8.804,855,5.965,856,5.965,857,12.173,858,5.965,859,5.965,860,5.965,861,5.965,862,5.965,863,5.965,864,5.965,865,9.66,866,5.965,867,5.965,868,5.965,869,5.965,870,5.965,871,5.965]],["keywords/151",[]],["title/152",[822,922.62]],["content/152",[2,9.538,30,10.503,77,5.124,101,9.182,105,6.949,246,6.628,567,10.503,809,10.503,822,12.127,872,12.311,873,9.966,874,12.311,875,12.311,876,12.311,877,12.311,878,12.311,879,12.311,880,12.311,881,12.311,882,12.311,883,6.439,884,9.966,885,12.311]],["keywords/152",[]],["title/153",[61,360.258,886,634.177]],["content/153",[13,1.075,35,1.151,38,4.463,40,2.851,42,3.86,47,2.25,52,3.536,54,4.714,60,3.204,61,5.047,64,2.282,71,0.971,73,2.316,75,3.67,77,4.012,98,2.359,106,1.397,125,2.352,133,1.474,140,3.101,157,2.729,176,3.214,178,3.67,186,2.851,220,4.153,240,2.316,257,1.596,267,3.101,283,2.783,356,6.789,500,2.513,501,3.101,504,5.487,572,3.921,839,3.101,883,5.041,886,5.44,887,3.921,888,4.463,889,3.482,890,3.921,891,5.7,892,2.352,893,3.208,894,2.663,895,3.208,896,3.67,897,3.921,898,3.921,899,3.921,900,3.005,901,6.705,902,3.008,903,6.276,904,5.7,905,6.705,906,1.244,907,5.7,908,6.276,909,3.67,910,3.921,911,3.482,912,6.705,913,6.276,914,3.101,915,1.774,916,2.031]],["keywords/153",[]],["title/154",[113,512.798,917,909.523]],["content/154",[]],["keywords/154",[]],["title/155",[918,444.573]],["content/155",[2,9.399,13,4.104,36,2.889,49,3.31,73,6.532,106,3.118,246,6.532,281,9.048,368,8.484,369,7.394,918,6.215,919,7.256,920,7.108,921,16.417,922,12.132,923,7.36]],["keywords/155",[]],["title/156",[915,588.048]],["content/156",[13,2.431,15,4.948,36,3.934,42,4.564,47,5.086,55,4.344,61,3.118,71,3.729,73,5.236,101,7.252,102,7.252,106,2.67,117,7.534,118,6.444,119,7.011,133,3.332,208,4.821,229,8.863,232,8.296,234,6.613,257,5.216,264,7.872,924,7.252,925,8.296,926,8.863,927,9.725,928,9.725,929,9.725,930,9.725,931,9.725,932,9.725,933,6.291,934,7.872,935,9.725,936,8.863]],["keywords/156",[]],["title/157",[133,488.722]],["content/157",[20,4.913,35,2.513,36,2.236,42,4.473,48,4.589,49,1.571,52,3.82,54,4.258,60,2.347,70,3.01,71,2.683,98,3.01,106,2.257,117,7.273,118,6.221,119,6.768,133,1.973,164,5.812,234,3.916,257,2.136,283,3.725,293,4.027,883,3.012,894,3.565,900,4.854,937,12.492,938,13.706,939,13.706,940,6.384,941,5.759,942,5.759,943,5.759,944,4.152,945,7.6,946,3.916,947,3.916,948,3.916,949,5.759,950,11.884,951,5.759,952,5.759,953,5.759,954,5.759,955,4.662,956,3.494,957,4.913]],["keywords/157",[]],["title/158",[958,1299.947]],["content/158",[]],["keywords/158",[]],["title/159",[36,220.735,958,844.701,959,926.774]],["content/159",[7,1.452,11,7.308,13,2.824,36,1.73,105,4.101,106,1.38,113,3.316,163,6.622,185,4.595,194,5.081,203,6.198,226,4.94,246,3.912,284,4.7,577,6.198,722,6.622,809,6.198,823,4.814,873,9.145,884,9.145,886,4.101,960,7.265,961,6.622,962,6.622,963,7.265,964,7.265,965,6.622,966,9.637,967,7.265,968,6.622,969,6.198,970,7.265,971,6.622,972,12.633,973,7.265,974,7.265,975,6.622,976,7.265,977,7.265,978,12.633,979,7.265,980,7.265,981,11.297,982,6.622,983,7.265,984,6.622,985,7.265,986,11.297,987,6.622,988,7.265,989,6.622,990,7.265,991,7.265,992,6.198,993,6.622,994,7.265,995,7.265,996,7.265,997,7.265,998,7.265,999,7.265]],["keywords/159",[]],["title/160",[157,416.721,220,634.177]],["content/160",[4,3.605,13,1.57,42,4.889,47,3.284,54,4.017,55,2.805,61,3.228,74,3.153,88,4.865,157,7.629,176,4.745,220,8.138,222,5.084,232,5.357,235,4.865,242,4.062,272,5.357,273,6.108,428,3.284,504,4.683,577,5.357,708,4.527,808,5.357,847,3.971,888,7.646,889,5.084,893,4.683,894,6.233,914,9.086,924,4.683,948,4.27,956,3.81,1000,5.723,1001,4.683,1002,5.357,1003,5.723,1004,6.28,1005,6.28,1006,5.357,1007,6.28,1008,4.062,1009,4.683,1010,6.28,1011,4.527,1012,5.723,1013,6.28,1014,6.28,1015,4.391,1016,6.28]],["keywords/160",[]],["title/161",[596,1154.613]],["content/161",[10,4.042,11,5.407,15,4.253,36,1.991,40,5.539,41,5.407,42,4.647,61,2.68,67,10.016,77,3.479,89,6.486,106,1.587,119,6.026,133,2.864,157,3.1,176,2.355,257,4.664,267,6.026,282,7.131,493,7.131,513,7.131,573,7.131,576,5.845,586,4.253,596,10.181,840,6.767,847,5.286,883,8.796,888,5.071,894,5.175,915,3.446,1017,6.026,1018,8.359,1019,6.476,1020,7.618,1021,7.131,1022,8.359,1023,8.359,1024,12.576,1025,8.359,1026,8.359,1027,8.359,1028,6.767]],["keywords/161",[]],["title/162",[618,818.809]],["content/162",[]],["keywords/162",[]],["title/163",[847,710.535,888,681.627]],["content/163",[11,7.897,42,4.079,66,2.653,71,3.333,77,6.144,105,6.891,119,8.801,129,5.794,176,4.159,184,6.506,224,4.876,273,4.876,708,5.794,808,10.414,847,7.72,883,8.622,888,10.002,893,12.295,917,6.506,937,7.324,1029,6.856,1030,9.104,1031,6.506,1032,8.036,1033,8.036,1034,6.226,1035,7.324,1036,8.036,1037,8.036,1038,8.036,1039,8.036,1040,8.036,1041,8.036,1042,8.036,1043,8.036,1044,8.036,1045,5.62,1046,6.856]],["keywords/163",[]],["title/164",[1047,1299.947]],["content/164",[1,8.81,11,6.681,13,2.582,18,7.222,33,8.81,35,2.764,36,3.497,42,2.854,88,8.001,104,8.81,105,5.829,112,9.413,113,4.714,224,6.266,259,8.001,271,8.81,765,11.885,840,8.36,884,13.828,944,7.446,1047,9.413,1048,9.413,1049,8.001,1050,8.001,1051,10.327,1052,10.327,1053,14.681,1054,10.327,1055,10.327,1056,10.327,1057,10.327,1058,10.327,1059,10.327]],["keywords/164",[]],["title/165",[1060,1299.947]],["content/165",[36,3.382,64,7.533,129,10.238,185,8.98,585,7.645,607,9.185,823,9.409,884,11.495,1060,18.323,1061,12.942,1062,12.114,1063,12.942,1064,12.114,1065,14.2]],["keywords/165",[]],["title/166",[966,958.472,1066,1024.007]],["content/166",[7,1.59,13,1.988,18,3.298,36,1.123,66,1.557,194,7.213,201,2.662,203,6.785,208,2.338,224,2.861,242,3.05,294,2.982,460,4.023,494,3.298,585,4.282,602,5.734,607,3.05,786,4.023,820,3.207,883,2.466,924,3.517,966,14.562,968,4.298,969,4.023,971,9.401,972,14.227,975,7.249,984,13.369,987,9.401,989,9.401,992,6.785,993,7.249,1029,4.023,1061,4.298,1062,4.023,1063,7.249,1064,4.023,1066,4.298,1067,3.818,1068,4.298,1069,10.314,1070,10.314,1071,10.314,1072,4.716,1073,4.023,1074,10.314,1075,4.716,1076,4.716,1077,4.716,1078,4.716,1079,4.716,1080,4.716,1081,7.249,1082,4.716,1083,3.125,1084,4.298,1085,4.716,1086,4.716,1087,10.314,1088,4.716,1089,4.716,1090,4.298,1091,4.716,1092,14.668,1093,3.818,1094,4.716,1095,2.982,1096,7.66,1097,4.716,1098,4.716,1099,4.716,1100,4.716,1101,7.249,1102,4.716,1103,4.716,1104,4.716,1105,3.4,1106,4.298]],["keywords/166",[]],["title/167",[1107,1104.996]],["content/167",[3,3.38,4,4.205,5,3.086,10,2.07,13,2.4,21,3.651,25,3.316,30,3.651,36,2.708,42,1.183,44,3.316,47,3.831,48,1.103,54,3.6,60,1.07,67,2.377,71,1.654,73,2.304,89,2.207,99,2.992,105,2.416,106,1.391,133,1.466,134,2.768,143,5.462,157,2.717,179,2.27,234,2.91,235,3.316,242,2.768,243,2.993,246,3.943,250,2.91,257,1.587,267,3.086,283,2.768,294,2.707,296,3.901,356,4.359,378,2.207,412,1.489,440,2.91,494,2.993,504,3.192,510,2.547,591,2.649,601,3.901,608,3.465,618,2.457,673,3.086,818,5.122,819,2.91,820,2.91,821,2.768,822,2.768,823,2.836,883,3.831,906,1.238,911,5.929,925,3.651,948,2.91,1011,5.281,1028,3.465,1031,3.465,1095,2.707,1107,11.537,1108,4.28,1109,4.28,1110,3.465,1111,4.28,1112,3.651,1113,4.28,1114,7.324,1115,3.901,1116,4.738,1117,3.901,1118,6.766,1119,6.676,1120,4.28,1121,5.675,1122,4.28,1123,4.28,1124,4.28,1125,3.651,1126,5.929,1127,6.676,1128,4.28,1129,3.086,1130,4.28,1131,7.324,1132,4.28,1133,4.28,1134,7.438,1135,4.28,1136,3.901,1137,4.28,1138,7.324,1139,3.651,1140,4.28,1141,4.28,1142,3.651,1143,4.28,1144,3.901,1145,4.28,1146,4.28]],["keywords/167",[]],["title/168",[106,213.37,368,785.651]],["content/168",[7,1.561,13,2.986,36,3.454,37,6.663,38,4.738,42,2.158,48,3.079,49,2.131,54,4.195,59,6.323,61,3.83,70,2.504,71,2.697,98,3.83,106,2.755,133,2.676,142,3.872,154,2.718,164,4.835,176,2.2,181,3.777,182,4.337,189,5.847,234,5.311,257,2.897,293,5.462,351,5.631,368,11.359,412,2.718,616,5.052,936,7.118,940,5.311,1147,6.663,1148,7.118,1149,10.887,1150,10.887,1151,7.118,1152,6.323,1153,5.052,1154,7.81,1155,7.81,1156,4.27]],["keywords/168",[]],["title/169",[7,185.28,13,231.678,1157,668.192]],["content/169",[]],["keywords/169",[]],["title/170",[19,1216.752]],["content/170",[4,3.688,7,2.05,13,2.563,14,4.257,18,4.493,35,1.72,36,1.53,42,4.036,46,5.201,77,2.674,86,2.901,106,1.22,113,4.68,140,4.632,186,4.257,221,2.105,226,4.369,246,3.459,257,3.803,259,4.978,262,4.493,273,3.898,303,4.156,417,4.786,462,2.932,464,5.991,495,2.999,512,5.606,539,3.568,582,5.201,591,3.978,620,5.02,726,8.278,745,6.103,888,3.898,902,4.493,944,4.632,948,4.369,956,3.898,961,5.856,1017,4.632,1129,4.632,1156,3.512,1157,7.393,1158,5.481,1159,6.425,1160,7.647,1161,4.978,1162,5.481,1163,5.201,1164,9.226,1165,6.425,1166,6.425,1167,6.425,1168,5.856,1169,5.481,1170,4.257,1171,4.369,1172,4.632,1173,4.632,1174,6.425,1175,5.201,1176,6.425,1177,6.425,1178,5.481,1179,6.425,1180,4.978,1181,5.481,1182,5.481]],["keywords/170",[]],["title/171",[495,665.748]],["content/171",[13,3.457,14,9.163,35,2.543,86,7.36,98,3.047,113,4.337,120,7.362,240,7.445,512,5.195,539,11.379,590,6.645,900,3.881,1118,8.23,1129,6.851,1156,5.195,1160,7.087,1161,12.63,1164,6.851,1183,9.503,1184,8.661,1185,9.503,1186,9.503,1187,7.362,1188,9.503,1189,9.503,1190,9.503,1191,12.603,1192,9.503,1193,9.503,1194,9.503]],["keywords/171",[]],["title/172",[918,444.573]],["content/172",[7,3.353,13,4.193,369,6.665,918,5.228,919,7.413,920,7.262,1195,15.287]],["keywords/172",[]],["title/173",[906,412.531]],["content/173",[4,8.651,8,4.12,13,1.698,14,7.101,42,1.877,64,3.603,86,3.066,89,3.503,98,2.178,106,2.862,157,2.519,190,4.183,192,3.284,201,3.834,207,6.777,208,3.367,378,3.503,412,5.707,495,7.034,539,9.109,579,4.042,602,4.897,895,5.065,900,2.774,906,5.041,933,4.393,1116,4.393,1196,4.12,1197,6.932,1198,6.791,1199,6.791,1200,9.767,1201,6.791,1202,10.716,1203,6.791,1204,6.791,1205,5.794,1206,6.791,1207,5.794,1208,6.791,1209,6.19,1210,6.791,1211,6.791,1212,5.794,1213,5.794,1214,5.951,1215,8.302,1216,6.791,1217,6.791,1218,6.791]],["keywords/173",[]],["title/174",[900,458.894,915,463.223]],["content/174",[4,1.761,5,3.945,7,1.094,10,2.646,13,3.323,14,6.85,15,2.784,35,1.465,36,0.73,38,1.861,48,1.411,49,0.837,52,1.875,54,3.694,55,1.37,60,0.767,67,3.039,69,1.385,70,0.983,71,0.692,73,5.566,86,4.667,98,1.755,105,1.731,106,1.407,113,1.4,133,1.875,134,1.984,141,1.4,142,2.713,161,2.144,164,1.899,194,2.144,208,1.52,224,1.861,240,3.989,253,4.988,257,1.137,263,1.861,283,1.984,412,1.067,455,9.422,464,3.197,495,5.809,501,2.211,512,1.676,539,9.275,574,4.24,576,5.181,591,1.899,592,2.795,600,2.376,895,5.526,896,2.616,923,1.861,940,2.085,945,2.483,1031,2.483,1034,2.376,1129,5.342,1156,2.991,1160,2.287,1161,4.24,1164,2.211,1170,2.032,1171,2.085,1172,2.211,1173,3.945,1191,2.795,1195,2.795,1200,4.988,1207,2.616,1215,2.376,1219,3.067,1220,2.287,1221,2.616,1222,2.616,1223,2.483,1224,3.067,1225,2.376,1226,2.483,1227,3.067,1228,2.616,1229,3.067,1230,3.067,1231,3.067,1232,7.409,1233,3.067,1234,5.472,1235,7.409,1236,5.472,1237,5.472,1238,3.067,1239,3.067,1240,3.067,1241,3.067,1242,3.067,1243,3.067,1244,3.067,1245,3.067,1246,3.067,1247,3.067,1248,3.067,1249,3.067,1250,3.067,1251,3.067,1252,3.067,1253,3.067,1254,3.067,1255,3.067,1256,2.795,1257,3.067,1258,2.795,1259,3.067,1260,3.067,1261,3.067,1262,3.067,1263,3.067,1264,2.616,1265,3.067,1266,2.616,1267,3.067,1268,2.483,1269,5.472,1270,3.067,1271,3.067,1272,3.067,1273,3.067,1274,4.988,1275,3.067,1276,3.067,1277,3.067,1278,2.483,1279,3.067]],["keywords/174",[]],["title/175",[1280,1063.691]],["content/175",[5,7.011,7,2.811,8,5.9,13,2.431,42,2.687,86,4.39,89,5.016,113,4.439,130,8.296,176,2.74,250,6.613,257,3.607,417,6.564,510,5.787,512,5.316,590,6.8,602,7.011,786,8.296,1073,8.296,1095,6.15,1118,5.787,1164,7.011,1170,6.444,1171,6.613,1173,13.048,1187,10.894,1281,9.725,1282,8.863,1283,8.296,1284,9.725,1285,8.296,1286,7.872,1287,7.534,1288,9.725,1289,9.725,1290,9.725,1291,9.725]],["keywords/175",[]],["title/176",[918,444.573]],["content/176",[7,3.353,13,4.193,369,6.665,918,5.228,919,7.413,920,7.262,1292,15.287]],["keywords/176",[]],["title/177",[906,412.531]],["content/177",[4,8.576,8,4.971,13,2.048,14,5.43,42,2.264,69,5.593,77,3.411,86,3.699,89,4.226,106,2.353,177,6.348,190,4.836,192,3.962,208,4.062,412,5.794,497,5.182,539,4.551,579,4.877,906,5.172,933,5.301,1164,8.932,1173,5.908,1196,4.971,1197,8.014,1205,6.991,1212,6.991,1214,8.295,1215,11.573,1220,6.111,1280,11.14,1285,6.991,1287,9.598,1293,8.194,1294,8.194,1295,6.991,1296,11.292,1297,8.194]],["keywords/177",[]],["title/178",[900,458.894,915,463.223]],["content/178",[7,2.353,8,4.648,13,2.942,14,2.989,36,1.074,38,2.737,48,2.574,49,1.231,52,2.978,54,4.04,55,3.422,60,1.128,64,2.393,69,3.459,70,1.447,71,1.73,74,2.265,77,4.156,86,2.037,87,2.989,88,3.495,89,6.07,105,2.547,106,0.857,113,2.059,133,1.546,142,2.236,157,1.673,164,2.793,175,4.064,177,3.495,186,2.989,246,2.429,250,3.068,257,4.365,273,4.648,417,2.106,418,2.082,428,2.359,464,5.834,512,2.466,600,3.495,749,2.466,888,2.737,940,3.068,948,3.068,1028,3.652,1034,3.495,1046,3.849,1156,5.458,1162,6.536,1164,7.199,1170,2.989,1171,3.068,1172,9.505,1173,5.523,1184,4.112,1220,3.365,1221,3.849,1222,3.849,1223,3.652,1266,3.849,1280,11.397,1282,6.983,1285,3.849,1286,3.652,1287,10.214,1292,4.112,1295,3.849,1296,4.112,1298,4.511,1299,6.983,1300,4.511,1301,4.511,1302,3.849,1303,4.511,1304,4.511,1305,4.112,1306,4.112,1307,4.511]],["keywords/178",[]],["title/179",[745,848.816]],["content/179",[8,4.783,13,1.971,15,4.012,22,5.88,47,4.123,55,3.521,64,4.183,86,3.559,106,2.285,113,3.598,126,6.726,133,2.702,161,5.513,224,4.783,243,5.513,257,2.924,273,4.783,464,4.607,574,6.108,590,5.513,617,3.251,620,3.86,726,9.437,745,11.469,844,5.361,883,4.123,925,6.726,945,6.382,956,4.783,1062,10.264,1127,10.965,1152,6.382,1156,4.31,1157,5.684,1175,6.382,1178,6.726,1308,7.884,1309,7.186,1310,7.884,1311,7.186,1312,7.884,1313,10.965,1314,11.81,1315,7.884,1316,6.726,1317,7.884,1318,5.88,1319,7.884,1320,7.884]],["keywords/179",[]],["title/180",[918,444.573]],["content/180",[7,3.353,13,4.193,369,6.665,918,5.228,919,7.413,920,7.262,1321,15.287]],["keywords/180",[]],["title/181",[906,412.531]],["content/181",[4,8.679,8,5.071,42,2.31,69,3.774,86,3.774,89,4.311,106,2.871,113,3.815,157,3.1,185,5.286,190,4.909,192,6.081,208,4.144,412,6.275,512,4.569,539,4.642,579,4.975,745,11.277,906,5.481,933,5.407,1164,6.026,1196,5.071,1197,8.135,1205,7.131,1212,7.131,1214,6.984,1215,9.743,1220,6.234,1318,6.234,1322,8.359,1323,8.359,1324,8.359,1325,5.071,1326,8.359]],["keywords/181",[]],["title/182",[900,458.894,915,463.223]],["content/182",[4,2.995,7,1.043,8,3.166,10,2.523,13,2.164,36,1.243,38,3.166,47,2.729,48,2.231,49,1.423,52,2.807,54,4.504,55,2.331,60,1.304,64,2.768,70,1.673,71,1.178,74,2.62,105,2.945,106,0.991,161,3.649,164,3.23,190,3.379,201,2.945,224,3.166,240,2.809,257,1.935,262,3.649,271,4.451,273,3.166,412,1.816,464,3.049,585,2.809,726,7.176,745,10.185,772,4.224,844,3.548,847,3.3,940,3.548,1034,4.042,1046,4.451,1156,2.852,1175,4.224,1178,7.384,1220,3.891,1221,4.451,1222,4.451,1223,4.224,1256,7.889,1258,4.756,1314,7.007,1316,4.451,1318,3.891,1321,4.756,1327,5.218,1328,5.218,1329,8.656,1330,4.756,1331,5.218,1332,5.218,1333,4.451,1334,11.092,1335,5.218,1336,5.218,1337,5.218,1338,5.218,1339,5.218,1340,5.218,1341,5.218,1342,5.218,1343,5.218,1344,5.218,1345,5.218,1346,5.218,1347,4.756,1348,5.218,1349,4.756,1350,4.756]],["keywords/182",[]],["title/183",[1180,1104.996]],["content/183",[13,3.446,61,3.598,71,2.533,86,5.066,88,14.453,98,3.598,106,1.368,120,5.58,177,8.693,191,4.898,218,4.659,246,3.878,257,2.671,294,4.555,494,10.882,511,4.898,590,5.037,599,6.144,791,12.563,819,4.898,821,4.659,888,6.808,947,4.898,948,9.373,956,6.808,1020,10.227,1110,5.831,1134,5.58,1180,12.056,1181,6.144,1182,9.573,1351,7.202,1352,7.202,1353,7.202,1354,7.202,1355,7.202,1356,7.202,1357,5.372,1358,7.202,1359,7.202,1360,5.831,1361,6.565,1362,7.202,1363,7.258,1364,7.202]],["keywords/183",[]],["title/184",[918,444.573]],["content/184",[7,4.119,13,3.741,369,5.947,418,6.907,730,12.18,918,4.665,919,6.614,920,6.479,1365,14.965,1366,14.965]],["keywords/184",[]],["title/185",[906,412.531]],["content/185",[4,7.632,42,3.673,106,2.525,190,5.189,263,8.065,412,4.625,590,9.296,906,5.047,1156,7.267,1180,10.299,1196,8.065,1197,8.599,1367,12.116,1368,13.293,1369,13.293,1370,13.293,1371,13.293,1372,13.293,1373,12.116]],["keywords/185",[]],["title/186",[900,458.894,915,463.223]],["content/186",[7,1.977,13,2.472,36,2.355,38,6,48,3.669,49,1.675,52,3.602,54,4.85,55,4.417,60,2.472,61,3.171,70,1.969,71,1.386,91,3.802,98,3.171,106,1.166,144,11.315,157,2.278,178,5.239,179,3.258,181,2.969,182,3.41,273,6,501,4.427,781,5.239,1142,5.239,1223,4.971,1325,3.726,1367,9.013,1374,9.889,1375,6.141,1376,9.889,1377,6.141,1378,9.889,1379,6.141,1380,6.141,1381,6.141,1382,6.141,1383,6.141,1384,6.141,1385,6.141,1386,6.141,1387,4.971,1388,6.141]],["keywords/186",[]],["title/187",[1049,870.438,1050,870.438]],["content/187",[]],["keywords/187",[]],["title/188",[106,176.008,464,541.513,947,630.212]],["content/188",[4,3.964,13,3.801,14,8.889,15,3.513,36,1.644,40,4.575,42,4.85,46,5.589,52,1.747,54,4.24,55,3.084,60,1.726,67,6.028,69,4.901,70,2.214,71,1.559,73,3.717,98,3.481,106,1.311,162,5.89,257,4.975,273,4.189,464,4.034,495,5.067,539,3.834,602,4.978,883,3.611,947,4.695,1045,4.828,1157,7.826,1213,5.89,1228,5.89,1280,8.096,1287,8.41,1302,5.89,1333,5.89,1389,10.855,1390,6.904,1391,6.293,1392,5.349,1393,6.293,1394,6.904,1395,6.904,1396,6.293,1397,4.978,1398,6.904,1399,6.904,1400,6.904,1401,6.293]],["keywords/188",[]],["title/189",[61,252.894,243,551.512,267,568.625,886,445.18]],["content/189",[2,4.755,4,3.523,7,0.698,13,0.873,20,5.236,35,0.934,38,3.723,40,4.067,42,2.269,47,1.826,48,0.9,52,3.141,54,4.69,60,2.815,61,4.293,64,1.852,69,2.771,71,0.788,77,2.555,98,1.968,106,1.56,133,2.103,162,2.978,175,1.852,176,1.729,186,2.313,234,2.374,243,5.743,246,3.304,257,1.295,267,5.921,283,2.258,356,4.888,464,7.822,500,3.586,501,2.517,504,2.603,568,2.826,618,2.004,705,4.425,745,4.888,839,2.517,883,4.295,886,3.464,887,3.182,888,2.118,889,2.826,890,3.182,900,1.426,901,5.594,902,4.292,903,5.236,904,4.755,905,5.594,906,1.01,907,4.755,908,5.236,909,2.978,910,3.182,911,2.826,912,5.594,913,5.236,914,2.517,915,1.439,916,1.648,948,4.173,1050,2.704,1157,4.425,1170,2.313,1171,2.374,1213,2.978,1228,2.978,1280,4.577,1287,2.704,1302,2.978,1333,2.978,1350,3.182,1396,5.594,1401,3.182,1402,3.182,1403,2.978,1404,3.491,1405,3.491,1406,3.491,1407,3.182,1408,2.978,1409,3.491,1410,3.491,1411,3.491,1412,6.137,1413,3.491]],["keywords/189",[]],["title/190",[464,833.358]],["content/190",[73,7.915,134,9.51,246,7.915,440,9.997,464,8.59,591,9.101,618,8.44,818,13.019,819,9.997,820,9.997,821,9.51,822,9.51,823,9.741]],["keywords/190",[]],["title/191",[176,316.539,1414,1123.5]],["content/191",[]],["keywords/191",[]],["title/192",[13,197.156,133,270.249,257,292.53,734,672.828]],["content/192",[35,2.799,36,3.528,48,3.818,49,2.853,52,2.646,54,4.757,60,2.614,61,3.353,69,4.721,70,3.353,71,3.344,98,3.353,154,3.639,181,5.057,182,5.807,189,5.119,192,5.057,462,4.773,655,4.353,735,8.465,1415,12.636,1416,8.921,1417,10.457]],["keywords/192",[]],["title/193",[13,231.678,133,317.57,1418,926.774]],["content/193",[35,3.247,36,3.91,48,4.232,49,3.31,52,3.07,54,4.649,60,3.033,61,3.89,69,5.477,70,3.89,71,3.707,98,3.89,192,5.867,735,9.821,1415,14.005,1416,10.35]],["keywords/193",[]],["title/194",[13,280.856,77,467.65]],["content/194",[7,1.837,13,3.373,48,2.369,52,4.459,54,4.774,55,7.141,89,4.739,91,8.353,154,4.695,257,3.408,418,4.241,1182,7.839,1419,13.492,1420,13.492,1421,6.853,1422,9.188,1423,9.188,1424,5.811,1425,9.188,1426,9.188,1427,7.119,1428,9.188,1429,9.188,1430,9.188,1431,9.188]],["keywords/194",[]],["title/195",[778,997.361]],["content/195",[]],["keywords/195",[]],["title/196",[918,444.573]],["content/196",[7,2.839,42,3.924,106,2.697,369,7.989,418,6.553,774,12.114,778,9.93,918,6.267,919,6.276,920,7.885,923,8.615]],["keywords/196",[]],["title/197",[906,412.531]],["content/197",[3,4.261,7,2.342,13,1.41,15,2.871,34,5.494,67,3.133,77,3.843,86,5.29,87,3.739,89,2.91,113,2.575,142,2.797,175,4.898,176,2.601,190,4.574,192,4.464,201,5.211,207,3.568,208,4.576,257,2.093,356,8.887,378,4.761,412,6.144,417,2.633,418,2.604,435,3.568,497,3.568,500,5.394,512,3.084,579,3.358,586,4.697,607,3.65,749,3.084,778,3.945,795,3.739,797,7.41,886,3.185,892,3.084,906,1.632,1116,3.65,1118,3.358,1196,5.601,1214,5.127,1432,3.739,1433,11.716,1434,3.65,1435,3.739,1436,5.142,1437,7.253,1438,4.068,1439,4.068,1440,4.068,1441,4.208,1442,3.739,1443,3.945,1444,5.3,1445,3.945,1446,3.945,1447,3.945,1448,3.945,1449,6.455,1450,3.945,1451,3.836,1452,3.836,1453,3.568,1454,3.65,1455,5.642]],["keywords/197",[]],["title/198",[900,458.894,915,463.223]],["content/198",[5,6.552,35,2.432,36,2.165,48,3.45,49,2.479,52,3.387,53,6.355,54,4.888,60,2.272,61,2.914,71,2.052,154,3.162,176,3.771,179,4.821,181,4.395,182,5.047,262,6.355,263,5.514,655,3.783,756,5.879,774,7.753,778,9.359,779,8.283,916,4.291,1153,5.879,1424,5.748,1456,6.18,1457,5.626]],["keywords/198",[]],["title/199",[366,865.306]],["content/199",[7,3.942,74,8.096,417,7.526,418,7.441,778,11.275,1458,12.756,1459,9.782]],["keywords/199",[]],["title/200",[730,922.62]],["content/200",[]],["keywords/200",[]],["title/201",[918,444.573]],["content/201",[7,3.525,42,3.733,106,2.566,369,7.801,418,6.235,730,11.406,777,11.525,918,6.119,919,5.971,920,7.634,923,8.196,1460,13.509]],["keywords/201",[]],["title/202",[906,412.531]],["content/202",[3,4.261,7,2.342,13,1.41,15,2.871,34,5.494,67,3.133,77,3.843,86,5.29,87,3.739,89,2.91,113,2.575,142,2.797,175,4.898,176,2.601,190,4.574,192,4.464,201,5.211,207,3.568,208,4.576,257,2.093,356,8.887,378,4.761,412,6.144,417,2.633,418,2.604,435,3.568,497,3.568,500,5.394,512,3.084,579,3.358,586,4.697,607,3.65,730,3.65,749,3.084,795,3.739,797,7.41,886,3.185,892,3.084,906,1.632,1116,3.65,1118,3.358,1196,5.601,1214,5.127,1432,3.739,1434,3.65,1435,3.739,1437,7.253,1438,4.068,1439,4.068,1440,4.068,1441,4.208,1442,3.739,1443,3.945,1444,5.3,1445,3.945,1446,3.945,1447,3.945,1448,3.945,1449,6.455,1450,3.945,1451,3.836,1452,3.836,1453,3.568,1454,3.65,1461,11.716,1462,5.642,1463,5.642]],["keywords/202",[]],["title/203",[900,458.894,915,463.223]],["content/203",[35,2.459,36,2.188,48,3.478,49,2.507,52,3.414,53,6.425,54,4.87,60,2.297,61,2.946,71,2.075,86,4.148,154,3.197,176,3.801,179,4.875,181,4.443,182,5.103,655,3.825,730,8.728,756,5.944,777,7.839,781,7.839,916,4.339,1153,5.944,1424,5.811,1456,6.248,1457,5.688,1464,9.188,1465,9.188]],["keywords/203",[]],["title/204",[366,865.306]],["content/204",[7,3.942,74,8.096,417,7.526,418,7.441,730,10.43,1458,12.756,1459,9.782]],["keywords/204",[]],["title/205",[726,726.775,745,668.638]],["content/205",[]],["keywords/205",[]],["title/206",[918,444.573]],["content/206",[42,4.371,106,3.004,369,7.744,744,14.416,745,9.413,918,6.075,919,6.991,920,6.848]],["keywords/206",[]],["title/207",[906,412.531]],["content/207",[3,4.595,7,2.859,15,5.066,54,2.108,192,4.815,263,6.041,284,6.441,412,5.824,726,6.441,745,10.888,804,7.714,807,6.164,906,4.137,946,6.771,1015,6.963,1017,7.179,1314,14.811,1318,10.667,1357,7.426,1466,13.036,1467,9.075,1468,9.075,1469,9.957,1470,14.303,1471,14.303,1472,9.957,1473,9.957]],["keywords/207",[]],["title/208",[900,458.894,915,463.223]],["content/208",[35,2.73,36,2.43,52,4.293,54,4.678,60,2.55,71,2.303,149,8.702,745,6.071,916,4.817,1309,9.297,1314,8.258,1318,7.608,1457,6.315,1474,14.553,1475,10.201,1476,10.201,1477,10.201,1478,10.201,1479,10.201,1480,10.201,1481,10.201,1482,10.201,1483,10.201,1484,10.201,1485,10.201,1486,10.201,1487,10.201]],["keywords/208",[]],["title/209",[98,252.894,571,522.62,806,522.62,807,488.259]],["content/209",[]],["keywords/209",[]],["title/210",[918,444.573]],["content/210",[42,4.135,98,4.799,106,2.842,369,7.482,571,9.916,806,9.916,807,9.264,811,12.115,918,5.869,919,6.614,920,6.479]],["keywords/210",[]],["title/211",[906,412.531]],["content/211",[3,8.462,42,3.257,47,6.165,69,7.268,71,2.662,191,10.948,264,9.543,378,8.304,412,6.855,510,7.016,883,8.42,893,8.792,906,3.41,1015,8.244,1361,10.745,1488,10.057,1489,11.788,1490,11.788,1491,11.788]],["keywords/211",[]],["title/212",[900,458.894,915,463.223]],["content/212",[3,4.595,13,2.489,35,4.48,36,2.371,48,3.687,49,2.716,52,2.52,54,4.503,60,3.575,61,3.193,69,4.495,71,3.229,98,3.193,176,2.805,191,6.771,378,5.135,510,5.926,571,6.598,806,6.598,807,6.164,811,8.061,916,4.702,917,8.061,1488,8.494,1492,9.957,1493,9.957,1494,6.441,1495,6.441,1496,9.957]],["keywords/212",[]],["title/213",[157,416.721,495,524.429]],["content/213",[]],["keywords/213",[]],["title/214",[918,444.573]],["content/214",[42,4.371,106,3.004,369,7.744,495,7.383,643,11.061,918,6.075,919,6.991,920,6.848]],["keywords/214",[]],["title/215",[906,412.531]],["content/215",[11,9.51,59,11.901,106,2.792,118,9.741,157,5.453,190,5.739,191,9.997,257,5.453,412,5.115,495,6.862,539,8.164,1278,11.901,1363,9.51,1497,12.541]],["keywords/215",[]],["title/216",[900,458.894,915,463.223]],["content/216",[35,3.558,36,3.166,48,4.498,49,3.626,52,3.364,54,4.379,60,3.323,71,4.398,118,8.809,495,6.205,529,11.341,643,9.296,916,6.277,1498,13.293]],["keywords/216",[]],["title/217",[221,303.691,462,423.006,463,532.06]],["content/217",[]],["keywords/217",[]],["title/218",[918,444.573]],["content/218",[42,4.289,106,2.948,153,6.653,369,7.655,462,7.085,463,8.911,918,6.005,919,6.86,920,6.721]],["keywords/218",[]],["title/219",[906,412.531]],["content/219",[25,6.348,28,9.239,39,7.469,48,2.112,54,3.526,190,5.831,412,6.222,460,6.991,463,7.112,573,6.991,699,6.991,847,5.182,892,4.48,895,9.239,906,2.37,992,10.569,1015,5.73,1093,6.634,1107,6.348,1392,6.348,1499,14.204,1500,7.469,1501,8.194,1502,8.194,1503,8.194,1504,8.194,1505,8.194,1506,8.194,1507,11.292,1508,7.469,1509,6.634,1510,7.469,1511,8.194,1512,7.469,1513,12.743,1514,10.029,1515,8.194,1516,8.194,1517,6.111]],["keywords/219",[]],["title/220",[900,458.894,915,463.223]],["content/220",[35,2.237,36,2.995,48,4.336,49,2.28,52,2.115,54,4.692,60,2.09,61,2.68,70,2.68,71,1.887,153,5.39,154,2.908,181,4.042,182,4.642,462,5.74,463,4.799,623,3.513,647,4.884,1427,6.476,1499,10.728,1509,6.767,1518,7.131,1519,7.618,1520,7.618,1521,7.618,1522,7.131,1523,7.618,1524,7.131,1525,7.618,1526,7.618,1527,7.618,1528,7.131,1529,7.618,1530,7.618,1531,7.618,1532,7.618,1533,7.131]],["keywords/220",[]],["title/221",[106,213.37,461,785.651]],["content/221",[35,2.071,36,2.825,48,4.494,49,2.111,52,1.958,54,4.704,60,1.934,61,2.481,69,3.493,70,2.481,71,1.747,153,5.083,154,2.692,181,3.742,182,4.297,462,5.413,463,4.442,623,3.252,647,4.521,735,6.264,1415,10.118,1416,6.601,1427,5.995,1499,10.118,1509,6.264,1518,6.601,1519,7.052,1520,7.052,1521,7.052,1522,6.601,1523,7.052,1524,6.601,1525,7.052,1526,7.052,1527,7.052,1528,6.601,1529,7.052,1530,7.052,1531,7.052,1532,7.052,1533,6.601]],["keywords/221",[]],["title/222",[98,360.258,653,446.458]],["content/222",[]],["keywords/222",[]],["title/223",[918,444.573]],["content/223",[42,4.371,106,3.004,369,7.744,653,6.285,719,9.242,918,6.075,919,6.991,920,6.848]],["keywords/223",[]],["title/224",[906,412.531]],["content/224",[10,6.135,61,4.068,98,4.068,192,6.135,207,12.037,214,10.27,334,11.563,412,4.414,730,8.206,1110,10.27,1214,7.045,1215,9.829,1437,7.854,1534,12.686,1535,10.823,1536,10.823,1537,11.563,1538,12.686,1539,11.563,1540,12.686,1541,12.686]],["keywords/224",[]],["title/225",[900,458.894,915,463.223]],["content/225",[35,2.986,36,2.657,48,3.996,49,3.044,52,4.871,54,4.816,60,2.789,71,2.519,98,4.97,164,6.907,653,4.434,719,6.519,1357,13.284,1542,11.157,1543,11.157]],["keywords/225",[]],["title/226",[221,303.691,462,423.006,647,541.513]],["content/226",[]],["keywords/226",[]],["title/227",[918,444.573]],["content/227",[42,4.289,106,2.948,153,6.653,369,7.655,462,7.085,647,9.07,918,6.005,919,6.86,920,6.721]],["keywords/227",[]],["title/228",[906,412.531]],["content/228",[3,3.084,10,9.093,13,3.733,69,7.814,77,2.782,189,5.179,221,2.19,224,4.054,412,6.737,463,6.074,585,8.762,647,3.905,655,2.782,1011,4.818,1278,12.09,1283,5.701,1325,4.054,1437,9.245,1459,9.06,1544,6.091,1545,14.934,1546,8.565,1547,6.683,1548,6.683,1549,6.683,1550,6.683,1551,8.702,1552,6.683,1553,6.683,1554,9.643,1555,6.683,1556,6.683,1557,6.683,1558,6.683,1559,5.41,1560,5.701,1561,6.683]],["keywords/228",[]],["title/229",[900,458.894,915,463.223]],["content/229",[35,1.49,36,1.326,48,3.462,49,1.519,52,1.409,54,4.526,60,1.391,61,1.785,70,1.785,71,2.621,153,4.975,154,5.543,156,4.506,157,2.065,179,8.926,181,2.692,182,3.091,219,4.749,283,9.591,378,4.709,412,3.177,462,2.541,531,4.313,647,3.252,653,2.212,655,2.317,678,4.151,679,3.601,681,8.899,682,4.151,683,6.209,916,2.628,1153,3.601,1424,3.52,1456,3.785,1518,4.749,1522,4.749,1544,5.073,1562,4.151,1563,7.789,1564,5.566,1565,5.566,1566,5.566,1567,7.544,1568,5.566,1569,5.566,1570,5.566,1571,5.566,1572,9.13,1573,5.566,1574,9.13,1575,5.566,1576,5.566,1577,5.566]],["keywords/229",[]],["title/230",[221,368.156,650,695.545]],["content/230",[]],["keywords/230",[]],["title/231",[918,444.573]],["content/231",[42,4.371,106,3.004,153,6.78,369,7.744,650,9.792,918,6.075,919,6.991,920,6.848]],["keywords/231",[]],["title/232",[906,412.531]],["content/232",[3,2.987,10,5.659,13,0.927,35,0.993,36,0.883,48,2.219,49,1.012,52,0.938,54,3.392,55,1.656,60,1.618,61,2.075,64,7.338,69,2.921,71,2.328,77,4.293,106,0.704,129,2.674,153,2.774,154,1.29,156,3.002,157,1.375,176,1.823,181,1.793,192,7.092,220,2.093,250,2.522,291,11.873,356,2.207,378,1.913,412,5.767,510,2.207,588,3.163,650,5.33,655,5.352,705,4.665,906,5.179,916,1.751,934,11.198,944,2.674,946,4.4,1001,11.947,1030,10.316,1073,3.163,1152,3.002,1156,2.027,1172,2.674,1313,3.38,1325,2.25,1397,2.674,1451,4.4,1459,2.25,1495,2.399,1578,5.898,1579,3.708,1580,3.708,1581,3.708,1582,3.708,1583,3.708,1584,3.708,1585,3.708,1586,3.708,1587,3.708,1588,3.38,1589,3.708,1590,3.708,1591,3.38,1592,3.708,1593,3.708,1594,3.708,1595,2.766,1596,3.708,1597,3.163,1598,3.38,1599,3.708,1600,3.38,1601,3.38,1602,3.163,1603,3.38,1604,3.38]],["keywords/232",[]],["title/233",[900,458.894,915,463.223]],["content/233",[10,5.254,13,2.716,35,2.908,36,2.588,48,3.923,49,2.964,52,2.75,54,4.68,60,3.804,61,3.484,71,3.965,153,4.658,176,3.061,510,6.467,650,9.421,916,5.131,934,8.796,1001,8.104,1495,7.029,1600,9.904,1605,10.866]],["keywords/233",[]],["title/234",[98,297.177,221,303.691,653,368.282]],["content/234",[]],["keywords/234",[]],["title/235",[918,444.573]],["content/235",[42,4.289,98,4.977,106,2.948,153,6.653,369,7.655,653,6.168,918,6.005,919,6.86,920,6.721]],["keywords/235",[]],["title/236",[900,458.894,915,463.223]],["content/236",[35,3.155,36,2.808,48,4.15,49,3.216,52,2.983,54,4.367,60,2.947,61,3.78,71,2.662,98,3.78,153,5.053,157,4.373,653,4.685,708,11.607,916,5.567,1153,7.626,1437,7.298,1606,11.788,1607,11.788,1608,11.788,1609,11.788,1610,11.788]],["keywords/236",[]],["title/237",[221,303.691,653,368.282,655,385.763]],["content/237",[]],["keywords/237",[]],["title/238",[918,444.573]],["content/238",[42,4.289,106,2.948,153,6.653,369,7.655,653,6.168,655,6.461,918,6.005,919,6.86,920,6.721]],["keywords/238",[]],["title/239",[906,412.531]],["content/239",[31,7.999,61,3.439,69,4.843,89,5.532,106,2.037,189,5.251,190,4.187,257,5.593,303,6.939,412,6.068,462,4.896,653,4.262,655,7.875,906,5.044,1045,7.501,1197,6.939,1363,6.939,1434,6.939,1578,9.776,1611,14.877,1612,9.776,1613,9.151,1614,10.726,1615,10.726,1616,10.726]],["keywords/239",[]],["title/240",[900,458.894,915,463.223]],["content/240",[35,3.558,36,4.156,48,4.498,49,3.626,52,3.364,54,4.379,60,3.323,61,4.263,71,3.001,153,5.698,531,10.299,623,5.587,653,5.282,655,5.533,1562,9.914]],["keywords/240",[]],["title/241",[71,209.254,157,343.752,221,303.691]],["content/241",[]],["keywords/241",[]],["title/242",[918,444.573]],["content/242",[42,4.289,71,3.505,106,2.948,153,6.653,157,5.757,369,7.655,918,6.005,919,6.86,920,6.721]],["keywords/242",[]],["title/243",[906,412.531]],["content/243",[3,5.081,26,8.913,61,3.53,73,5.928,105,6.215,106,2.091,157,5.696,179,5.841,181,5.324,221,3.608,257,4.084,378,5.678,412,5.344,495,5.139,539,8.529,586,5.602,804,8.53,891,8.53,902,7.699,1084,10.035,1387,8.913,1497,9.392,1597,9.392,1617,9.392,1618,11.01,1619,10.035,1620,11.01,1621,11.01,1622,9.392,1623,9.392]],["keywords/243",[]],["title/244",[900,458.894,915,463.223]],["content/244",[13,2.55,35,2.73,36,2.43,48,3.752,49,2.783,52,2.581,54,4.532,55,4.556,60,3.638,71,4.416,153,4.372,154,3.549,156,8.258,157,3.784,176,2.874,181,4.933,219,8.702,510,6.071,916,4.817,1325,6.189,1495,6.599,1598,9.297,1601,9.297,1602,8.702,1603,9.297,1604,9.297]],["keywords/244",[]],["title/245",[141,359.974,154,274.424,155,328.281,221,258.438]],["content/245",[]],["keywords/245",[]],["title/246",[918,444.573]],["content/246",[42,4.211,106,2.894,141,6.955,153,6.532,154,5.302,155,6.343,369,7.567,918,5.936,919,6.735,920,6.598]],["keywords/246",[]],["title/247",[906,412.531]],["content/247",[69,5.642,106,2.373,189,6.117,257,4.635,378,6.445,412,5.827,462,5.703,586,6.358,906,4.844,924,9.319,1067,10.116,1083,8.28,1214,6.939,1325,7.581,1363,8.083,1624,15.264,1625,11.389,1626,12.496,1627,10.66,1628,10.66,1629,10.66]],["keywords/247",[]],["title/248",[900,458.894,915,463.223]],["content/248",[35,2.13,36,1.896,48,4.229,49,2.171,52,3.067,54,4.761,60,3.029,61,2.552,71,2.736,77,3.313,98,2.552,141,3.633,153,5.194,154,5.106,155,3.313,189,5.933,222,6.443,462,5.531,653,3.163,655,5.044,683,5.412,891,6.167,916,3.758,1225,9.389,1226,9.81,1424,5.034,1494,5.149,1495,5.149,1562,5.936,1630,7.254,1631,7.959,1632,7.254]],["keywords/248",[]],["title/249",[154,274.424,155,328.281,221,258.438,658,498.782]],["content/249",[]],["keywords/249",[]],["title/250",[918,444.573]],["content/250",[42,4.211,106,2.894,153,6.532,154,5.302,155,6.343,369,7.567,658,9.637,918,5.936,919,6.735,920,6.598]],["keywords/250",[]],["title/251",[906,412.531]],["content/251",[10,3.06,13,1.582,16,7.554,34,6.028,40,4.193,42,1.748,44,4.902,54,1.34,66,2.089,69,2.857,73,3.407,75,5.398,95,5.767,106,2.406,141,2.888,143,4.719,175,7.682,189,3.098,190,2.47,192,3.06,213,4.425,236,5.398,262,4.425,286,6.888,378,3.263,412,5.512,424,3.098,462,2.888,463,3.632,494,4.425,568,5.122,585,3.407,586,3.22,609,9.232,617,2.609,708,4.562,810,5.767,821,4.093,839,4.562,892,3.459,906,2.93,924,4.719,933,4.093,956,3.839,962,9.232,1067,5.122,1083,4.193,1119,5.767,1147,5.398,1214,3.514,1316,5.398,1325,3.839,1407,5.767,1627,5.398,1628,5.398,1629,5.398,1633,12.666,1634,6.327,1635,6.327,1636,6.327,1637,6.327,1638,6.327,1639,6.327,1640,6.327,1641,9.232,1642,6.327,1643,6.327,1644,6.327,1645,6.327,1646,6.327,1647,6.327]],["keywords/251",[]],["title/252",[900,458.894,915,463.223]],["content/252",[35,2.215,36,1.971,48,3.874,49,2.258,52,3.159,54,4.724,60,3.12,61,2.654,69,3.736,71,2.818,98,2.654,153,5.35,154,5.229,155,3.445,175,4.39,189,4.051,462,3.777,653,3.289,655,5.195,658,5.234,891,6.412,916,3.908,1225,6.412,1226,6.699,1494,5.353,1495,5.353,1562,6.172,1632,7.543,1648,8.276,1649,8.276,1650,7.543,1651,8.276,1652,8.276,1653,8.276,1654,8.276]],["keywords/252",[]],["title/253",[29,523.131,221,303.691,655,385.763]],["content/253",[]],["keywords/253",[]],["title/254",[918,444.573]],["content/254",[29,8.762,42,4.289,106,2.948,153,6.653,369,7.655,655,6.461,918,6.005,919,6.86,920,6.721]],["keywords/254",[]],["title/255",[906,412.531]],["content/255",[3,4.826,16,7.799,74,5.251,116,8.465,220,5.903,221,3.427,275,8.101,284,6.764,854,9.531,906,3.025,1001,7.799,1170,6.929,1181,8.921,1286,8.465,1508,9.531,1539,9.531,1655,10.457,1656,10.457,1657,10.457,1658,10.457,1659,9.531,1660,10.457,1661,10.457,1662,10.457,1663,8.921,1664,10.457,1665,10.457,1666,10.457,1667,10.457,1668,10.457,1669,10.457,1670,10.457,1671,10.457,1672,8.921,1673,10.457,1674,10.457,1675,10.457]],["keywords/255",[]],["title/256",[900,458.894,915,463.223]],["content/256",[29,7.504,35,3.558,36,3.166,48,4.498,49,3.626,52,3.364,54,4.379,60,3.323,61,4.263,71,3.94,153,5.698,536,11.341,655,5.533,916,6.277,1676,13.293]],["keywords/256",[]],["title/257",[176,261.112,221,303.691,660,498.986]],["content/257",[]],["keywords/257",[]],["title/258",[918,444.573]],["content/258",[42,4.289,106,2.948,153,6.653,176,4.373,369,7.655,660,8.357,918,6.005,919,6.86,920,6.721]],["keywords/258",[]],["title/259",[906,412.531]],["content/259",[86,7.141,106,3.004,176,4.456,192,7.649,412,5.504,906,4.575,1129,11.404,1677,15.817,1678,15.817,1679,13.494]],["keywords/259",[]],["title/260",[900,458.894,915,463.223]],["content/260",[35,1.979,36,1.761,48,2.952,49,2.017,52,3.547,54,4.765,60,2.863,61,2.371,71,1.67,98,2.371,153,3.169,154,2.573,176,4.447,181,3.576,182,4.106,660,3.981,916,3.492,1090,6.739,1129,5.331,1494,4.783,1495,4.783,1591,6.739,1680,7.394,1681,11.452,1682,11.452,1683,11.452,1684,11.452,1685,7.394,1686,7.394,1687,7.394,1688,7.394,1689,7.394,1690,7.394,1691,7.394,1692,7.394,1693,7.394,1694,7.394,1695,7.394,1696,6.739,1697,7.394,1698,7.394]],["keywords/260",[]],["title/261",[125,506.638,176,261.112,221,303.691]],["content/261",[]],["keywords/261",[]],["title/262",[918,444.573]],["content/262",[42,4.289,106,2.948,125,8.486,153,6.653,176,4.373,369,7.655,918,6.005,919,6.86,920,6.721]],["keywords/262",[]],["title/263",[263,865.306]],["content/263",[26,7.2,42,2.458,54,4.817,60,3.922,71,2.008,73,4.789,77,3.702,106,1.689,125,10.122,154,6.035,189,4.354,263,5.396,412,4.583,683,6.048,692,11.31,693,6.412,694,6.219,906,3.81,1278,7.2,1699,8.106,1700,8.106,1701,8.106,1702,8.106]],["keywords/263",[]],["title/264",[125,614.183,257,416.721]],["content/264",[3,4.595,13,2.489,61,5.367,73,5.361,74,5,106,1.891,120,7.714,125,7.819,154,4.977,176,5.155,189,4.874,190,7.142,192,6.916,257,5.305,462,4.545,510,5.926,586,5.066,655,5.953,1008,6.441,1009,7.426,1397,7.179,1703,8.494,1704,14.303,1705,15.256,1706,9.957]],["keywords/264",[]],["title/265",[189,453.702,462,423.006,647,541.513]],["content/265",[4,5.106,10,7.586,11,5.753,42,3.64,64,4.719,71,2.974,77,3.702,106,1.689,124,4.719,125,7.201,129,6.412,189,6.448,218,5.753,263,5.396,272,7.588,412,3.095,416,7.2,462,4.059,566,8.106,655,5.483,847,8.33,888,7.992,906,2.573,947,6.048,1015,9.211,1035,8.106,1187,6.891,1197,8.521,1209,8.106,1392,6.891,1397,6.412,1507,8.106,1702,8.106,1707,8.894,1708,8.894,1709,8.894,1710,8.106,1711,8.894,1712,8.894,1713,8.894]],["keywords/265",[]],["title/266",[900,458.894,915,463.223]],["content/266",[35,1.694,36,1.507,48,2.611,49,1.726,52,3.205,54,4.869,60,3.96,61,2.029,71,2.287,98,2.029,125,8.659,153,2.712,154,5.88,176,2.854,181,3.06,182,3.514,655,2.634,683,4.303,692,9.132,693,4.562,694,4.425,711,5.398,916,2.988,1153,4.093,1197,4.093,1456,4.303,1494,4.093,1495,4.093,1699,5.767,1700,5.767,1701,5.767,1714,6.327,1715,6.327,1716,6.327,1717,10.129,1718,6.327,1719,6.327,1720,6.327,1721,6.327,1722,6.327]],["keywords/266",[]],["title/267",[155,328.281,221,258.438,446,437.982,664,437.982]],["content/267",[]],["keywords/267",[]],["title/268",[918,444.573]],["content/268",[42,4.211,106,2.894,153,6.532,155,6.343,369,7.567,446,8.462,664,8.462,918,5.936,919,6.735,920,6.598]],["keywords/268",[]],["title/269",[906,412.531]],["content/269",[1560,16.274]],["keywords/269",[]],["title/270",[900,458.894,915,463.223]],["content/270",[13,2.2,35,2.355,36,2.096,48,3.369,49,2.401,52,3.307,54,4.775,60,3.267,61,2.822,71,2.951,89,6.74,98,4.191,153,3.772,154,4.547,155,3.663,173,7.507,176,2.479,446,4.887,510,5.237,664,4.887,900,3.594,916,4.155,1006,7.507,1494,5.693,1495,5.693,1723,8.8,1724,8.8,1725,8.021,1726,8.8,1727,8.021,1728,8.8]],["keywords/270",[]],["title/271",[154,274.424,155,328.281,221,258.438,664,437.982]],["content/271",[]],["keywords/271",[]],["title/272",[918,444.573]],["content/272",[42,4.211,106,2.894,153,6.532,154,5.302,155,6.343,369,7.567,664,8.462,918,5.936,919,6.735,920,6.598]],["keywords/272",[]],["title/273",[906,412.531]],["content/273",[69,6.411,189,6.951,378,7.324,412,6.337,462,6.481,906,4.107,924,10.59,1067,11.495,1083,9.409,1214,7.886,1325,8.615,1627,12.114,1628,12.114,1629,12.114,1729,14.2]],["keywords/273",[]],["title/274",[900,458.894,915,463.223]],["content/274",[13,1.899,35,2.033,36,1.809,48,3.675,49,2.072,52,2.959,54,4.649,60,2.923,61,2.436,71,2.64,98,3.749,153,5.012,154,5.571,155,3.162,173,6.481,176,2.14,189,3.719,462,3.467,510,4.521,653,3.019,655,4.867,664,6.494,900,3.103,916,3.587,1006,6.481,1494,4.914,1495,4.914,1562,5.665,1727,6.924,1730,7.596,1731,7.596,1732,7.596,1733,7.596,1734,6.924,1735,7.596,1736,7.596,1737,7.596,1738,7.596,1739,7.596,1740,7.596,1741,7.596]],["keywords/274",[]],["title/275",[218,599.516,240,498.986,495,432.601]],["content/275",[]],["keywords/275",[]],["title/276",[918,444.573]],["content/276",[42,4.289,106,2.948,240,8.357,369,7.655,495,7.246,645,10.855,918,6.005,919,6.86,920,6.721]],["keywords/276",[]],["title/277",[906,412.531]],["content/277",[7,1.705,13,2.132,35,2.283,48,2.199,54,2.704,64,4.525,89,4.399,102,6.361,106,1.62,129,6.15,133,4.375,175,4.525,190,4.984,191,5.8,192,7.4,257,6.302,284,5.518,378,4.399,412,5.912,446,4.737,495,3.982,496,7.277,539,8.498,576,5.965,946,5.8,1009,9.523,1129,6.15,1197,8.26,1214,4.737,1742,8.53,1743,8.53,1744,8.53,1745,7.774,1746,8.53,1747,8.53,1748,8.53,1749,8.53,1750,7.277,1751,8.53,1752,8.53]],["keywords/277",[]],["title/278",[900,458.894,915,463.223]],["content/278",[35,2.887,36,2.569,48,4.245,49,2.942,52,4.167,54,4.734,60,3.335,61,3.458,69,3.091,71,2.435,77,2.85,154,2.383,176,3.759,179,3.633,181,3.311,182,3.803,240,5.807,495,7.066,645,7.542,655,2.85,826,11.383,914,4.937,916,5.093,1153,4.429,1424,4.33,1456,4.656,1457,4.239,1753,13.343,1754,6.847,1755,6.847,1756,6.847,1757,6.847,1758,6.847]],["keywords/278",[]],["title/279",[42,310.452,1147,958.472]],["content/279",[]],["keywords/279",[]],["title/280",[1759,1426.251]],["content/280",[3,5.291,7,2.292,13,2.866,77,4.772,98,3.676,106,2.177,191,10.74,240,6.172,257,4.252,495,7.372,539,8.771,571,7.597,726,7.416,745,6.823,806,7.597,807,7.097,933,7.416,1488,9.78,1595,8.55,1760,11.464,1761,10.449,1762,11.464,1763,11.464,1764,11.464,1765,11.464,1766,11.464,1767,10.449]],["keywords/280",[]],["title/281",[77,467.65,792,958.472]],["content/281",[7,0.982,42,1.357,54,1.04,77,5.761,89,2.533,98,4.438,106,0.933,124,2.605,141,6.317,154,5.806,155,5.761,175,2.605,176,1.383,177,3.804,179,4.365,185,3.105,189,4.028,190,4.146,213,11.124,214,8.598,220,2.772,221,5.212,446,2.727,462,4.848,463,6.098,464,2.869,624,3.434,647,4.808,653,5.951,655,4.421,658,3.105,664,4.57,734,7.02,807,3.04,1017,3.54,1136,4.475,1152,3.975,1156,2.684,1172,10.797,1197,3.176,1295,4.189,1357,3.662,1360,3.975,1546,3.975,1551,3.254,1554,4.475,1588,4.475,1611,4.189,1650,4.475,1696,4.475,1725,4.475,1734,4.475,1768,4.91,1769,4.475,1770,4.91,1771,4.91,1772,4.91,1773,4.91,1774,4.91,1775,4.91,1776,4.91,1777,4.91,1778,4.91,1779,4.91,1780,4.91,1781,4.91,1782,4.91]],["keywords/281",[]],["title/282",[176,316.539,792,958.472]],["content/282",[3,5.179,29,6.334,40,4.773,71,1.626,104,6.144,125,3.937,157,5.113,176,5.71,186,4.773,190,2.812,192,3.483,220,4.066,221,6.113,222,9.084,260,5.831,273,6.808,462,5.121,463,6.442,624,5.037,650,6.947,655,6.477,660,7.422,765,5.831,789,4.37,790,4.555,814,4.898,1011,5.193,1049,5.58,1050,5.58,1513,6.144,1517,5.372,1679,6.144,1705,6.565,1783,7.202,1784,7.202,1785,7.202,1786,7.202,1787,7.202,1788,7.202,1789,7.202,1790,7.202,1791,7.202,1792,7.202,1793,6.565]],["keywords/282",[]],["title/283",[175,596.051,1444,645]],["content/283",[0,9.228,7,3.379,8,7.688,106,1.604,139,6.835,141,5.784,176,2.379,190,4.947,234,5.742,263,9.228,421,4.933,423,5.34,424,4.133,428,6.627,431,8.861,749,4.616,769,6.088,778,5.904,852,7.203,917,6.835,933,5.462,1363,9.839,1444,11.65,1451,5.742,1453,8.014,1794,8.443,1795,8.443,1796,6.835,1797,8.443,1798,8.443,1799,8.443,1800,8.443,1801,8.443,1802,8.443]],["keywords/283",[]],["title/284",[421,656.46,423,710.535]],["content/284",[]],["keywords/284",[]],["title/285",[918,444.573]],["content/285",[7,2.791,42,3.858,106,2.652,369,7.925,422,10.817,423,11.393,918,6.217,919,6.171,920,7.799,923,8.47,1803,11.911]],["keywords/285",[]],["title/286",[906,412.531]],["content/286",[3,2.943,7,2.037,13,1.594,34,3.794,67,3.541,77,4.242,86,4.601,87,4.225,89,3.288,113,2.91,142,3.161,175,5.407,176,2.871,190,4.97,192,3.083,201,5.753,207,4.032,208,5.052,356,9.463,378,5.256,412,5.533,421,5.955,423,9.197,500,3.725,512,3.485,579,3.794,586,3.244,607,4.124,769,4.597,797,4.032,886,3.599,892,3.485,906,2.948,1116,4.124,1118,3.794,1196,6.183,1214,5.66,1432,4.225,1434,4.124,1435,4.225,1441,4.755,1442,4.225,1443,4.458,1444,5.851,1445,4.458,1446,4.458,1447,4.458,1448,4.458,1449,7.127,1450,4.458,1452,4.335,1453,4.032,1454,4.124,1796,5.161,1803,5.439,1804,6.376,1805,6.376,1806,6.376,1807,6.376,1808,6.376,1809,6.376]],["keywords/286",[]],["title/287",[900,458.894,915,463.223]],["content/287",[35,2.307,36,2.053,48,3.317,49,2.351,52,3.256,54,4.719,60,2.154,61,2.763,71,1.946,154,2.999,176,3.625,179,4.572,181,4.167,182,4.786,201,4.865,422,6.677,423,5.45,655,3.587,680,6.213,756,5.575,757,11.728,758,7.352,760,7.855,762,7.352,763,7.855,764,6.677,765,6.977,916,4.069,1153,5.575,1424,5.45,1456,5.86,1457,5.335,1810,8.618,1811,8.618,1812,8.618,1813,8.618,1814,8.618]],["keywords/287",[]],["title/288",[366,865.306]],["content/288",[7,3.942,74,8.096,417,7.526,423,10.197,1458,12.756,1459,9.782,1803,13.755]],["keywords/288",[]],["title/289",[176,261.112,190,361.79,424,453.702]],["content/289",[]],["keywords/289",[]],["title/290",[918,444.573]],["content/290",[7,2.745,42,3.794,106,2.608,176,3.869,190,5.36,369,7.862,418,6.337,424,6.722,425,9.099,918,6.167,919,6.069,920,7.716,923,8.331]],["keywords/290",[]],["title/291",[906,412.531]],["content/291",[3,3.186,7,3.04,10,3.339,67,3.834,71,2.451,77,2.874,113,3.151,176,1.945,190,5.936,192,3.339,208,5.381,257,4.026,378,3.561,412,3.777,417,5.067,418,3.186,424,5.314,461,4.828,497,6.865,512,3.774,579,4.109,586,7.738,795,4.575,796,6.293,797,10.455,801,5.589,886,3.897,892,3.774,906,4.398,1021,5.89,1118,4.109,1196,6.586,1214,3.834,1360,5.589,1363,4.466,1397,4.978,1434,4.466,1435,4.575,1442,4.575,1453,4.366,1454,4.466,1458,4.466,1815,6.904,1816,12.226,1817,6.904,1818,6.293,1819,6.904,1820,6.293,1821,6.904,1822,6.904,1823,6.904,1824,6.904]],["keywords/291",[]],["title/292",[900,458.894,915,463.223]],["content/292",[]],["keywords/292",[]],["title/293",[461,997.361]],["content/293",[35,2.764,36,2.46,48,4.403,49,2.817,52,4.323,54,4.625,60,2.582,61,3.311,71,2.332,154,3.593,176,2.91,190,4.031,425,6.843,461,7.222,465,12.524,801,8.36,916,4.877,1457,6.393,1500,9.413,1825,13.381,1826,10.327,1827,9.413,1828,10.327,1829,10.327]],["keywords/293",[]],["title/294",[43,1063.691]],["content/294",[35,2.764,36,2.46,43,7.702,48,4.403,49,2.817,52,2.613,54,4.625,60,2.582,61,3.311,66,3.409,71,2.332,91,6.393,98,3.311,154,5.943,176,2.91,190,4.031,425,6.843,465,12.524,694,7.222,801,8.36,1457,6.393,1825,13.381,1827,9.413,1830,10.327]],["keywords/294",[]],["title/295",[366,865.306]],["content/295",[7,3.942,74,8.096,417,7.526,418,7.441,424,7.893,1458,12.756,1459,9.782]],["keywords/295",[]],["title/296",[428,587.582,749,614.183]],["content/296",[]],["keywords/296",[]],["title/297",[918,444.573]],["content/297",[7,2.745,42,3.794,106,2.608,369,7.862,418,6.337,428,9.32,749,7.507,753,11.116,918,6.167,919,6.069,920,7.716,923,8.331]],["keywords/297",[]],["title/298",[906,412.531]],["content/298",[3,3.488,7,1.972,13,1.11,15,2.259,34,5.872,64,2.355,67,2.465,74,2.229,77,3.145,86,5.258,87,5.008,89,3.898,106,1.874,113,2.026,142,2.201,161,3.104,175,4.009,176,2.129,185,2.808,186,2.942,190,3.852,192,3.654,201,5.569,207,2.808,208,3.746,257,1.647,356,8.456,378,5.089,412,4.944,417,2.072,418,2.049,428,2.322,435,2.808,497,2.808,500,4.415,512,2.427,579,2.642,586,3.845,607,2.872,749,7.768,772,3.594,795,2.942,797,6.24,851,4.046,886,2.506,892,2.427,906,3.369,933,2.872,947,3.019,956,2.693,1116,2.872,1118,2.642,1126,3.594,1196,4.585,1214,6.468,1266,3.787,1299,8.993,1363,2.872,1432,2.942,1434,2.872,1435,2.942,1438,3.201,1439,3.201,1440,3.201,1442,2.942,1443,3.104,1444,5.664,1445,3.104,1446,3.104,1447,3.104,1448,3.104,1449,5.284,1450,3.104,1452,3.019,1453,2.808,1454,2.872,1517,3.311,1831,4.439,1832,4.439,1833,4.439,1834,4.439,1835,4.439,1836,4.439,1837,4.439,1838,4.439,1839,4.439,1840,4.439,1841,4.439,1842,4.439,1843,4.439,1844,4.439]],["keywords/298",[]],["title/299",[900,458.894,915,463.223]],["content/299",[35,3.267,36,1.914,42,2.221,48,3.147,49,2.192,52,2.034,54,4.657,60,3.052,61,2.577,69,3.628,71,2.756,86,3.628,139,6.506,176,2.264,201,4.536,257,2.981,426,9.458,428,6.384,510,4.783,749,4.393,753,6.506,756,5.198,758,6.856,762,10.414,846,11.126,883,4.203,916,3.795,1029,6.856,1444,4.614,1457,4.975,1494,5.198,1495,5.198,1845,8.036,1846,12.207,1847,6.856,1848,8.036,1849,6.506,1850,8.036,1851,8.036]],["keywords/299",[]],["title/300",[366,865.306]],["content/300",[7,3.896,74,7.943,417,7.383,418,7.3,428,8.272,749,8.647,1458,12.607,1459,9.596]],["keywords/300",[]],["title/301",[424,698.222]],["content/301",[]],["keywords/301",[]],["title/302",[918,444.573]],["content/302",[7,2.839,42,3.924,106,2.697,369,7.989,418,6.553,424,6.951,425,9.409,918,6.267,919,6.276,920,7.885,923,8.615]],["keywords/302",[]],["title/303",[906,412.531]],["content/303",[3,5.165,7,2.237,13,1.321,15,2.689,34,5.206,67,2.934,77,3.641,86,5.053,87,3.501,89,2.725,106,1.003,113,2.412,142,2.619,175,4.64,176,3.153,190,4.369,192,4.23,201,4.937,207,3.342,208,4.336,218,3.418,257,1.96,286,3.593,295,4.094,356,8.579,378,4.511,412,5.986,417,2.466,418,2.439,424,2.587,435,3.342,497,3.342,500,6.539,512,2.889,579,3.145,586,4.451,607,3.418,749,2.889,795,3.501,797,7.078,804,4.094,886,2.983,892,2.889,906,1.528,1116,3.418,1118,3.145,1196,5.307,1214,4.857,1432,3.501,1434,3.418,1435,3.501,1436,4.816,1437,6.929,1438,3.81,1439,3.81,1440,3.81,1441,3.941,1442,3.501,1443,3.695,1444,5.022,1445,3.695,1446,3.695,1447,3.695,1448,3.695,1449,6.117,1450,3.695,1451,3.593,1452,3.593,1453,3.342,1454,3.418,1816,10.201,1852,5.284,1853,5.284,1854,5.284]],["keywords/303",[]],["title/304",[900,458.894,915,463.223]],["content/304",[35,2.459,36,2.188,48,3.478,49,2.507,52,3.414,53,6.425,54,4.841,60,2.297,61,2.946,69,4.148,71,2.075,86,4.148,154,3.197,176,3.801,179,4.875,181,4.443,182,5.103,424,6.605,425,6.089,655,3.825,756,5.944,780,8.375,916,4.339,1153,5.944,1424,5.811,1456,6.248,1457,5.688,1849,7.438,1855,9.188]],["keywords/304",[]],["title/305",[366,865.306]],["content/305",[7,3.942,74,8.096,417,7.526,418,7.441,424,7.893,1458,12.756,1459,9.782]],["keywords/305",[]],["title/306",[8,681.627,431,785.651]],["content/306",[]],["keywords/306",[]],["title/307",[918,444.573]],["content/307",[7,2.791,42,3.858,106,2.652,369,7.925,418,6.444,429,10.817,430,11.302,431,9.763,918,6.217,919,6.171,920,7.799,923,8.47]],["keywords/307",[]],["title/308",[906,412.531]],["content/308",[3,4.261,7,2.342,13,1.41,15,2.871,34,5.494,67,3.133,77,3.843,86,5.29,87,3.739,89,2.91,113,2.575,142,2.797,175,4.898,176,2.601,190,4.574,192,4.464,201,5.211,207,3.568,208,4.576,257,2.093,356,8.887,378,4.761,412,6.144,417,2.633,418,2.604,434,3.568,435,3.568,497,3.568,500,5.394,512,3.084,579,3.358,586,4.697,607,3.65,749,3.084,795,3.739,797,7.41,886,3.185,892,3.084,906,1.632,1116,3.65,1118,3.358,1196,5.601,1214,5.127,1432,3.739,1434,3.65,1435,3.739,1437,7.253,1438,4.068,1439,4.068,1440,4.068,1441,4.208,1442,3.739,1443,3.945,1444,5.3,1445,3.945,1446,3.945,1447,3.945,1448,3.945,1449,6.455,1450,3.945,1451,3.836,1452,3.836,1453,3.568,1454,3.65,1856,11.716,1857,5.642,1858,5.642]],["keywords/308",[]],["title/309",[900,458.894,915,463.223]],["content/309",[35,2.515,36,2.238,48,3.535,49,2.563,52,3.471,54,4.858,60,2.349,61,3.013,71,2.121,154,3.269,176,3.864,179,4.985,181,4.543,182,5.218,429,10.625,430,7.606,431,6.57,655,3.911,756,6.078,916,4.437,933,6.078,1153,6.078,1220,7.007,1424,5.942,1456,6.389,1457,5.817,1859,9.396]],["keywords/309",[]],["title/310",[366,865.306]],["content/310",[7,3.942,74,8.096,417,7.526,418,7.441,429,12.491,1458,12.756,1459,9.782]],["keywords/310",[]],["title/311",[660,424.632,789,478.489,790,498.782,814,536.304]],["content/311",[]],["keywords/311",[]],["title/312",[918,444.573]],["content/312",[7,2.575,42,3.56,54,2.728,106,2.447,189,6.306,208,6.386,369,7.621,418,5.945,660,6.936,789,7.816,790,8.147,813,10.99,814,8.76,918,5.978,919,5.694,920,7.399,923,7.816]],["keywords/312",[]],["title/313",[906,412.531]],["content/313",[143,11.796,257,7.229,412,5.504,495,7.383,906,4.575,948,10.756,1011,11.404,1357,11.796,1497,13.494]],["keywords/313",[]],["title/314",[900,458.894,915,463.223]],["content/314",[35,2.665,36,2.371,48,3.687,49,2.716,52,4.236,54,4.585,60,3.575,61,4.586,70,3.193,71,2.248,98,3.193,118,6.598,143,7.426,164,6.164,179,5.282,660,5.361,790,6.297,813,8.494,814,6.771,1156,5.443,1357,10.667,1860,9.957,1861,9.957,1862,9.957,1863,9.957,1864,9.957,1865,9.957]],["keywords/314",[]],["title/315",[48,367.678]],["content/315",[13,3.124,15,6.358,25,9.681,64,6.629,106,2.373,157,4.635,158,8.28,185,7.903,220,7.053,608,10.116,790,7.903,806,8.28,814,8.497,1012,11.389,1403,10.66,1408,10.66,1761,11.389,1866,12.496,1867,12.496,1868,16.747,1869,11.389,1870,11.389,1871,12.496]],["keywords/315",[]],["title/316",[434,902.004]],["content/316",[]],["keywords/316",[]],["title/317",[918,444.573]],["content/317",[7,2.839,42,3.924,106,2.697,369,7.989,418,6.553,434,8.98,435,8.98,918,6.267,919,6.276,920,7.885,923,8.615]],["keywords/317",[]],["title/318",[906,412.531]],["content/318",[3,2.622,7,2.353,13,1.42,15,2.89,28,4.236,29,3.206,34,3.38,67,3.154,77,3.864,86,4.191,87,3.764,89,2.93,113,2.593,131,4.846,142,2.816,175,4.925,176,2.615,190,4.595,192,2.747,201,5.24,207,3.592,208,4.602,257,2.107,356,8.919,378,4.788,412,5.214,417,2.651,418,2.622,434,3.592,497,3.592,500,3.319,512,3.105,576,3.972,579,3.38,585,3.058,586,4.723,607,3.674,617,2.342,795,3.764,797,7.445,886,3.206,892,3.105,906,3.405,1049,4.401,1050,4.401,1116,3.674,1118,3.38,1196,5.632,1214,5.155,1408,4.846,1432,3.764,1434,3.674,1435,3.764,1440,4.095,1441,4.236,1442,3.764,1443,3.972,1444,5.329,1445,3.972,1446,3.972,1447,3.972,1448,3.972,1449,6.491,1450,3.972,1451,3.863,1452,3.863,1453,3.592,1454,3.674,1818,5.177,1872,11.772,1873,5.68,1874,5.68,1875,5.68,1876,5.177]],["keywords/318",[]],["title/319",[900,458.894,915,463.223]],["content/319",[35,2.487,36,2.213,48,3.507,49,2.535,52,3.442,54,4.878,60,2.323,61,2.979,71,2.098,154,3.233,176,3.832,179,4.929,181,4.493,182,5.16,434,8.602,435,5.876,655,3.867,756,6.01,768,8.468,906,2.687,916,4.387,1153,6.01,1424,5.876,1456,6.318,1457,5.752,1877,9.291,1878,9.291]],["keywords/319",[]],["title/320",[366,865.306]],["content/320",[7,3.942,74,8.096,417,7.526,418,7.441,434,10.197,1458,12.756,1459,9.782]],["keywords/320",[]],["title/321",[42,256.091,1879,926.774,1880,926.774]],["content/321",[]],["keywords/321",[]],["title/322",[1083,614.132,1881,750.264,1882,844.701]],["content/322",[0,2.665,7,2.595,13,3.244,14,6.487,35,2.004,36,1.046,42,4.581,47,2.297,71,0.992,98,4.162,105,2.479,106,0.834,124,3.973,142,2.178,186,2.911,221,1.439,246,2.365,257,2.778,263,2.665,273,2.665,278,4.003,300,4.844,421,4.376,446,4.159,493,6.389,495,2.05,511,2.987,539,7.846,582,6.063,586,2.235,603,4.003,605,6.826,616,2.841,618,2.522,629,2.614,636,3.072,705,5.399,804,3.403,806,2.911,850,4.003,883,2.297,895,5.585,897,4.003,902,3.072,1030,3.276,1121,5.802,1144,4.003,1157,3.167,1158,3.747,1180,5.802,1264,3.747,1280,3.276,1286,3.556,1360,3.556,1510,4.003,1612,4.003,1617,3.747,1679,3.747,1883,4.392,1884,4.392,1885,4.392,1886,4.392,1887,4.392,1888,9.789,1889,4.392,1890,4.392,1891,4.392,1892,4.392,1893,4.392,1894,4.392,1895,4.392,1896,7.489,1897,4.392,1898,10.541,1899,6.826,1900,6.826,1901,6.826,1902,7.489,1903,7.489,1904,7.489,1905,4.392,1906,4.392,1907,4.392,1908,4.392,1909,4.392,1910,4.392,1911,7.489,1912,4.003,1913,4.392,1914,6.826,1915,4.392,1916,4.392,1917,4.392]],["keywords/322",[]],["title/323",[1083,614.132,1881,750.264,1918,790.642]],["content/323",[7,3.509,13,3.801,42,1.908,64,3.663,71,1.559,86,3.117,224,4.189,246,3.717,257,5.64,273,6.586,303,4.466,368,4.828,428,5.677,464,7.838,495,3.223,500,4.034,539,7.449,620,3.38,726,4.466,730,4.466,745,7.983,749,3.774,778,4.828,852,5.89,895,5.149,947,4.695,957,5.89,1017,4.978,1031,5.589,1156,5.934,1157,4.978,1161,8.41,1162,5.89,1163,8.788,1170,4.575,1171,4.695,1173,7.826,1175,10.859,1187,5.349,1347,6.293,1363,9.837,1466,6.293,1869,6.293,1919,6.904,1920,6.904,1921,6.904,1922,6.904,1923,6.904,1924,6.904,1925,6.904]],["keywords/323",[]],["title/324",[1083,744.494,1926,837.901]],["content/324",[0,4.239,5,2.921,7,1.397,13,2.303,16,3.021,36,2.61,42,4.743,43,5.21,54,0.858,56,3.456,61,2.24,71,0.915,77,1.686,79,3.456,98,2.954,102,3.021,106,1.327,107,3.456,108,3.021,109,3.279,123,5.413,124,4.887,125,3.819,141,4.205,154,2.431,155,1.686,157,1.502,175,2.149,176,2.595,182,2.25,186,2.684,189,1.983,190,1.581,213,2.833,214,5.656,221,2.289,257,2.591,273,2.458,280,3.692,286,2.755,410,5.21,424,1.983,428,2.119,464,2.367,495,1.891,511,2.755,539,3.88,582,3.279,591,2.508,618,4.011,620,1.983,668,2.411,721,3.456,769,2.921,789,2.458,797,2.562,847,2.562,899,3.692,1017,2.921,1028,3.279,1112,3.456,1158,3.456,1168,3.692,1170,2.684,1171,2.755,1173,5.037,1283,3.456,1387,3.279,1393,3.692,1444,2.326,1454,4.519,1467,3.692,1512,3.692,1536,3.456,1663,3.456,1710,3.692,1767,3.692,1796,3.279,1898,6.368,1899,3.692,1900,3.692,1901,3.692,1912,6.368,1914,3.692,1927,6.986,1928,4.051,1929,4.051,1930,4.051,1931,4.051,1932,4.051,1933,4.051,1934,4.051,1935,3.456,1936,4.051,1937,4.051,1938,4.051,1939,4.051,1940,4.051,1941,4.051,1942,4.051,1943,6.986,1944,4.051,1945,4.051,1946,4.051,1947,4.051,1948,4.051,1949,4.051,1950,4.051,1951,4.051,1952,4.051,1953,4.051,1954,4.051,1955,4.051,1956,4.051,1957,4.051,1958,4.051,1959,4.051,1960,3.692,1961,4.051,1962,4.051]],["keywords/324",[]],["title/325",[432,882.975]],["content/325",[]],["keywords/325",[]],["title/326",[918,444.573]],["content/326",[7,2.839,42,3.924,106,2.697,369,7.989,418,6.553,432,8.791,433,10.59,918,6.267,919,6.276,920,7.885,923,8.615]],["keywords/326",[]],["title/327",[906,412.531]],["content/327",[3,3.761,7,2.466,13,1.213,15,2.469,34,4.849,67,2.695,77,4.384,86,4.755,87,3.216,89,2.503,113,2.215,142,2.406,175,4.323,176,2.296,189,2.376,190,4.111,192,3.94,201,4.599,207,3.069,208,5.221,257,1.8,281,3.619,356,8.183,378,4.202,412,4.784,417,2.265,418,2.24,432,3.004,435,3.069,497,3.069,500,4.761,512,2.653,574,3.76,579,2.888,586,4.146,607,3.139,769,5.875,795,3.216,797,3.069,886,2.739,892,2.653,906,3.568,1116,3.139,1118,2.888,1170,5.399,1171,5.541,1172,3.499,1196,4.943,1214,4.525,1363,5.271,1432,3.216,1434,3.139,1435,3.216,1438,3.499,1439,3.499,1440,3.499,1442,3.216,1443,3.394,1444,4.678,1445,3.394,1446,3.394,1447,3.394,1448,3.394,1449,5.698,1450,3.394,1452,3.3,1453,3.069,1454,3.139,1563,4.14,1796,6.596,1847,4.14,1963,10.532,1964,4.853,1965,4.853,1966,4.853,1967,4.853,1968,4.853,1969,4.853,1970,4.853,1971,4.853,1972,4.853,1973,4.853,1974,4.853,1975,4.423,1976,4.853,1977,4.853,1978,4.853]],["keywords/327",[]],["title/328",[900,458.894,915,463.223]],["content/328",[35,2.089,36,1.859,42,1.274,48,3.442,49,2.129,50,5.821,51,3.573,52,2.568,54,4.843,60,2.984,61,2.503,64,6.334,69,2.082,71,2.695,77,3.249,85,3.439,86,3.524,90,3.934,91,2.855,106,1.927,175,4.141,190,3.047,412,4.154,432,9.561,433,5.821,446,4.334,602,5.627,749,2.521,756,6.564,907,6.047,916,3.685,945,6.318,1126,3.733,1444,2.647,1849,3.733,1979,10.147,1980,10.147,1981,7.805,1982,10.147,1983,7.805,1984,7.805,1985,3.934,1986,4.611,1987,4.611,1988,4.611,1989,4.611]],["keywords/328",[]],["title/329",[366,865.306]],["content/329",[7,3.942,74,8.096,417,7.526,418,7.441,432,9.982,1458,12.756,1459,9.782]],["keywords/329",[]],["title/330",[668,848.816]],["content/330",[]],["keywords/330",[]],["title/331",[918,444.573]],["content/331",[42,4.455,106,3.062,369,7.836,918,6.147,919,7.126,920,6.981,1990,14.695]],["keywords/331",[]],["title/332",[906,412.531]],["content/332",[3,5.519,40,7.924,61,3.834,69,5.399,98,6.355,190,6.346,191,8.131,226,8.131,257,6.03,293,8.362,378,6.167,410,8.918,412,4.161,668,9.675,873,9.68,888,7.255,902,8.362,1000,10.899,1197,7.735,1363,7.735,1991,10.899]],["keywords/332",[]],["title/333",[900,458.894,915,463.223]],["content/333",[35,2.871,36,2.555,52,5.045,54,4.825,60,3.77,69,4.843,71,2.422,98,4.835,149,9.151,668,6.384,1991,13.744,1992,10.726,1993,10.726,1994,10.726,1995,10.726,1996,10.726,1997,10.726]],["keywords/333",[]],["title/334",[141,359.974,154,274.424,155,328.281,1998,536.304]],["content/334",[]],["keywords/334",[]],["title/335",[918,444.573]],["content/335",[42,4.289,106,2.948,141,7.085,154,5.401,155,6.461,369,7.655,420,10.286,918,6.005,920,6.721]],["keywords/335",[]],["title/336",[906,412.531]],["content/336",[106,3.004,154,5.504,257,5.867,412,5.504,586,8.048,1363,10.232,1437,9.792,1624,17.763,1625,14.416]],["keywords/336",[]],["title/337",[900,458.894,915,463.223]],["content/337",[36,3.91,48,4.797,49,3.31,52,3.07,54,3.94,60,3.033,61,3.89,70,3.89,71,2.739,141,5.537,154,4.221,155,5.05,176,3.418,420,10.879,623,5.099,626,11.057,627,10.35,639,11.057,640,10.35,1999,12.132]],["keywords/337",[]],["title/338",[176,316.539,1998,763.987]],["content/338",[]],["keywords/338",[]],["title/339",[918,444.573]],["content/339",[7,2.791,42,3.858,106,2.652,176,3.934,369,7.925,418,6.444,419,10.817,420,9.252,918,6.217,919,6.171,920,7.799,923,8.47]],["keywords/339",[]],["title/340",[906,412.531]],["content/340",[3,7.784,7,2.756,13,1.8,15,3.665,34,4.286,67,4,77,2.998,86,3.252,106,1.368,113,3.287,176,2.029,190,4.38,192,3.483,208,3.571,257,2.671,378,3.715,412,5.869,417,3.362,418,3.324,419,5.58,435,4.555,497,4.555,500,4.208,512,3.937,579,4.286,586,5.709,749,3.937,795,4.773,797,8.717,886,4.066,888,4.37,892,3.937,906,2.083,1021,6.144,1118,4.286,1196,6.808,1214,4,1268,5.831,1432,4.773,1434,4.659,1435,4.773,1437,8.534,1438,5.193,1439,5.193,1442,4.773,1453,4.555,1454,4.659,1820,6.565,2000,11.221,2001,7.202,2002,7.202,2003,7.202,2004,7.202,2005,7.202,2006,7.202]],["keywords/340",[]],["title/341",[900,458.894,915,463.223]],["content/341",[]],["keywords/341",[]],["title/342",[142,556.967,616,726.775]],["content/342",[35,3.616,36,3.217,48,4.546,49,3.685,52,3.419,54,4.157,60,3.377,61,4.332,70,4.332,71,3.05,176,3.806,179,7.167,420,8.952,916,6.379,2007,12.312,2008,13.509]],["keywords/342",[]],["title/343",[250,969.86]],["content/343",[35,2.986,36,2.657,48,3.996,49,3.044,52,2.823,54,4.816,60,2.789,61,3.578,70,3.578,71,2.519,175,5.919,176,3.143,179,5.919,420,7.393,916,5.268,1457,6.907,1793,10.169,1847,9.518,2007,14.128,2009,11.157]],["keywords/343",[]],["title/344",[366,865.306]],["content/344",[7,3.942,74,8.096,417,7.526,418,7.441,419,12.491,1458,12.756,1459,9.782]],["keywords/344",[]],["title/345",[221,368.156,629,668.638]],["content/345",[]],["keywords/345",[]],["title/346",[918,444.573]],["content/346",[42,4.371,106,3.004,153,6.78,369,7.744,629,9.413,918,6.075,919,6.991,920,6.848]],["keywords/346",[]],["title/347",[906,412.531]],["content/347",[0,4.224,3,5.043,6,5.939,7,1.392,35,1.863,42,4.867,54,1.474,67,3.866,71,1.572,106,2.075,113,3.178,142,3.451,157,2.582,164,6.764,190,2.718,192,5.284,208,8.228,220,6.168,224,4.224,257,4.053,281,5.192,291,5.636,295,5.394,303,4.503,446,6.068,501,5.019,510,4.143,583,5.636,586,3.542,616,4.503,629,6.503,636,7.641,705,7.878,707,5.636,839,5.019,844,10.388,883,3.641,892,3.806,906,2.014,946,4.734,1172,5.019,1305,6.345,1397,5.019,1494,4.503,2010,6.962,2011,6.962,2012,6.962,2013,6.962,2014,6.962,2015,6.962,2016,6.962,2017,6.962,2018,6.962,2019,6.345,2020,6.962]],["keywords/347",[]],["title/348",[900,458.894,915,463.223]],["content/348",[35,2.963,36,3.672,48,3.515,49,1.931,52,3.902,54,4.852,60,2.768,61,3.55,70,2.27,71,3.078,153,3.035,154,3.852,158,4.692,181,5.354,182,6.148,446,6.148,531,5.485,623,4.653,629,4.214,636,4.951,666,4.951,700,6.453,701,10.091,704,10.091,705,7.982,706,6.453,707,5.732,708,5.105,709,6.453,2021,10.091]],["keywords/348",[]],["title/349",[629,668.638,1998,763.987]],["content/349",[]],["keywords/349",[]],["title/350",[918,444.573]],["content/350",[42,4.455,106,3.062,369,7.836,420,10.684,629,9.595,918,6.147,920,6.981]],["keywords/350",[]],["title/351",[906,412.531]],["content/351",[0,7.992,7,1.778,35,2.381,42,5.358,65,8.106,67,4.939,71,2.008,86,4.015,99,3.633,157,4.886,164,8.155,190,3.472,192,4.301,208,7.777,220,7.435,257,4.886,295,6.891,303,5.753,510,5.293,583,7.2,629,7.839,634,8.106,636,10.97,637,7.588,638,7.588,844,12.591,883,4.651,892,4.862,946,6.048,1494,5.753,2019,8.106,2022,8.894]],["keywords/351",[]],["title/352",[900,458.894,915,463.223]],["content/352",[0,7.352,35,3.244,36,3.907,48,4.229,49,2.171,52,3.714,54,4.728,60,3.029,61,3.886,70,2.552,71,3.313,158,5.274,176,2.242,420,8.03,623,5.093,627,6.79,628,7.254,629,4.737,630,11.045,632,11.045,637,10.338,638,10.338,640,6.79,666,5.566,2021,11.045,2023,7.959]],["keywords/352",[]],["title/353",[54,167.008,1926,588.19,2024,611.031,2025,718.833]],["content/353",[]],["keywords/353",[]],["title/354",[259,718.023,351,668.192,1161,718.023]],["content/354",[10,2.785,13,1.44,15,2.93,16,4.295,36,2.236,41,6.073,42,3.787,47,4.91,49,1.571,60,5.285,86,2.6,98,3.01,103,5.249,106,1.094,141,4.285,153,7.891,154,4.135,157,2.136,186,3.816,257,2.136,259,4.462,275,4.462,281,4.295,293,4.027,351,8.568,369,2.288,425,3.816,462,2.628,571,3.816,590,6.565,655,2.397,660,3.101,664,3.198,753,4.662,772,4.662,807,3.565,811,4.662,918,1.795,1002,8.009,1083,3.816,1318,4.295,1459,3.494,1468,5.249,1926,4.295,1990,5.249,2026,5.759,2027,5.759,2028,5.249,2029,5.759,2030,5.759,2031,5.759,2032,5.759,2033,5.759,2034,5.759,2035,5.759,2036,5.759,2037,5.759,2038,5.759,2039,5.759,2040,5.759,2041,5.759,2042,5.759,2043,5.759,2044,5.759]],["keywords/354",[]],["title/355",[221,224.922,653,429.395,655,449.777]],["content/355",[2,5.678,18,5.125,36,3.741,41,7.358,42,2.025,44,5.678,55,5.08,66,2.419,86,5.135,89,5.866,105,4.137,108,5.466,109,5.933,184,5.933,221,5.147,246,3.946,248,6.68,251,6.68,260,5.933,283,4.741,293,5.125,303,9.016,351,5.284,585,3.946,624,7.954,653,2.912,655,5.802,821,4.741,839,5.284,933,4.741,956,6.901,1008,7.358,1017,5.284,1083,4.857,1373,10.367,1559,5.933,1562,5.466,1563,6.253,1611,6.253,1613,9.703,1672,6.253,1926,8.483,2025,6.68,2045,11.374,2046,7.329,2047,7.329,2048,7.329,2049,7.329,2050,7.329,2051,7.329]],["keywords/355",[]],["title/356",[18,468.612,54,81.744,194,269.943,584,433.495,585,207.841,1093,312.504,1427,299.075,2052,386.025,2053,351.84]],["content/356",[7,2.292,13,2.866,18,12.636,36,3.762,55,5.121,194,8.017,585,9.729,1002,9.78,1048,10.449,1081,10.449,1083,12.903,1093,9.281,1105,8.265,1926,11.779,2053,10.449,2054,11.464,2055,11.464,2056,11.464,2057,11.464,2058,11.464,2059,10.449]],["keywords/356",[]],["title/357",[124,756.67]],["content/357",[]],["keywords/357",[]],["title/358",[918,444.573]],["content/358",[42,3.733,54,2.861,106,2.566,158,8.952,300,8.739,369,7.801,466,8.952,906,3.907,918,6.119,919,5.971,920,7.634,923,8.196,1595,10.075,2060,12.312]],["keywords/358",[]],["title/359",[906,412.531]],["content/359",[10,2.766,13,2.957,27,5.213,28,4.265,47,2.991,54,1.211,69,2.582,71,1.291,102,4.265,106,2.246,113,2.61,120,4.431,124,9.03,141,2.61,157,2.121,176,2.63,188,6.348,190,2.233,192,2.766,216,5.779,218,6.039,220,3.228,224,3.47,240,3.079,257,4.387,295,4.431,300,7.651,367,9.575,412,5.923,466,3.79,511,3.889,512,3.126,585,3.079,671,3.999,679,3.7,892,3.126,906,1.654,914,4.123,934,4.63,957,4.879,1015,3.999,1030,4.265,1118,3.404,1134,4.431,1214,3.176,1392,4.431,1437,7.322,1452,3.889,1514,4.63,1551,6.186,1622,4.879,1703,7.964,2059,5.213,2061,5.719,2062,5.719,2063,5.719,2064,4.879,2065,5.719,2066,5.719,2067,4.431,2068,5.719,2069,5.719,2070,7.557,2071,5.719,2072,5.719,2073,5.719,2074,5.213,2075,5.719,2076,5.719,2077,5.213,2078,5.719,2079,5.719]],["keywords/359",[]],["title/360",[159,1063.691]],["content/360",[54,2.928,69,7.36,106,1.805,116,7.693,141,6.312,157,3.525,179,5.041,188,11.085,190,5.398,208,4.711,300,12.842,303,8.945,410,7.087,412,5.672,466,6.297,579,5.655,586,4.835,807,5.883,906,2.749,946,6.462,1437,5.883,1536,8.107,2064,8.107,2067,7.362,2080,9.503,2081,9.503,2082,9.503,2083,9.503,2084,9.503,2085,9.503]],["keywords/360",[]],["title/361",[2086,1154.613]],["content/361",[10,6.043,74,6.275,179,6.629,192,6.043,208,6.195,286,11.388,300,8.083,303,8.083,412,4.348,462,5.703,466,11.097,585,6.728,1015,8.738,1160,9.319,1349,11.389,1551,8.28,2070,10.116,2087,12.496,2088,15.291,2089,12.496]],["keywords/361",[]],["title/362",[900,458.894,915,463.223]],["content/362",[11,1.88,31,2.167,32,2.095,35,1.899,36,1.69,42,0.803,47,1.52,48,3.69,49,1.935,52,3.052,54,4.833,60,2.491,61,2.275,71,2.25,89,2.69,98,2.774,106,0.552,124,8.188,133,2.431,141,1.326,153,1.246,154,4.98,155,1.21,158,4.701,159,6.453,160,5.496,175,1.542,176,2.438,181,2.522,188,4.824,189,7.296,190,4.707,191,6.777,192,4.184,207,1.838,208,4.289,213,2.032,216,3.229,217,4.753,288,2.479,303,1.88,586,1.479,671,3.647,891,2.252,892,1.589,898,4.753,906,0.841,916,3.35,1011,3.76,1225,5.496,1421,2.167,1424,1.838,1457,1.799,1494,1.88,1597,2.479,1630,2.649,2090,2.906,2091,5.215,2092,5.215,2093,2.906,2094,2.906,2095,2.906,2096,2.906,2097,7.094,2098,2.906,2099,2.906,2100,2.906]],["keywords/362",[]],["title/363",[133,270.249,466,522.62,1392,611.031,1595,588.19]],["content/363",[35,1.371,36,2.03,47,2.678,48,3.653,49,1.397,52,1.296,54,4.523,60,1.28,61,1.642,69,5.761,70,1.642,71,1.156,106,2.079,116,6.9,124,6.77,133,1.755,140,3.693,157,3.161,158,3.394,189,4.172,201,6.179,216,5.277,224,3.107,286,8.678,300,9.166,366,5.171,412,2.966,466,3.394,510,5.072,591,3.171,623,2.152,679,5.513,681,5.648,807,5.277,883,2.678,946,5.796,1107,3.968,1156,2.8,1514,4.146,1551,3.394,1663,4.369,2060,4.668,2070,10.331,2088,4.146,2101,5.121,2102,5.121,2103,5.121,2104,5.121,2105,5.121,2106,8.523,2107,8.523,2108,5.121,2109,5.121,2110,8.523,2111,5.121,2112,5.121,2113,5.121,2114,5.121,2115,5.121,2116,5.121,2117,5.121]],["keywords/363",[]],["title/364",[113,359.974,466,522.62,511,536.304,512,431.144]],["content/364",[35,2.331,36,3.088,48,4.731,49,2.376,52,3.921,54,4.728,60,2.177,61,2.792,70,2.792,71,1.966,106,1.654,124,6.879,158,5.77,159,6.494,160,6.747,216,8.028,623,3.66,679,8.388,681,8.593,1551,5.77,2086,7.05,2118,7.937,2119,7.937,2120,7.937,2121,12.967,2122,8.708,2123,8.708,2124,7.937]],["keywords/364",[]],["title/365",[113,277.326,179,322.35,412,211.418,466,402.629,511,413.171,512,332.156]],["content/365",[35,2.283,36,3.041,48,4.922,49,2.327,52,2.159,54,4.749,60,2.132,61,2.735,70,2.735,71,1.926,106,2.425,124,6.774,158,5.652,159,6.361,160,6.608,216,7.905,300,8.26,623,3.585,679,8.26,681,8.461,1551,5.652,2067,9.892,2086,6.905,2088,6.905,2118,7.774,2119,7.774,2120,7.774,2124,7.774]],["keywords/365",[]],["title/366",[54,167.008,1881,638.467,1926,588.19,2024,611.031]],["content/366",[]],["keywords/366",[]],["title/367",[41,922.62]],["content/367",[32,7.179,42,5.354,55,6.388,61,4.586,67,9.295,71,2.248,157,6.208,176,4.716,284,9.252,585,7.701,805,8.494,844,9.726,894,8.855,902,6.963,1325,8.678,2125,9.957,2126,14.303,2127,9.957,2128,9.957,2129,9.957,2130,8.494,2131,8.494,2132,9.957]],["keywords/367",[]],["title/368",[42,394.11]],["content/368",[]],["keywords/368",[]],["title/369",[356,848.816]],["content/369",[4,3.376,38,9.258,47,3.076,52,4.541,54,4.84,60,4.086,61,3.062,64,5.066,77,3.975,86,4.311,91,7.463,98,1.886,106,1.117,176,3.397,250,3.999,412,3.323,499,6.885,883,3.076,903,5.017,904,4.556,906,1.701,907,7.398,908,8.146,909,5.017,913,8.146,914,4.24,915,2.425,1096,3.719,2133,5.36,2134,5.881,2135,5.881,2136,5.881,2137,5.881,2138,5.881,2139,9.549,2140,5.881,2141,5.881,2142,5.881,2143,5.881,2144,5.881]],["keywords/369",[]],["title/370",[428,587.582,2145,1024.007]],["content/370",[36,3.564,133,5.128,140,10.789,250,10.176,293,10.465,294,9.464,421,8.744,915,6.17,1009,11.161,1019,11.594,1096,9.464,1117,13.639,2133,13.639]],["keywords/370",[]],["title/371",[98,252.894,571,522.62,806,522.62,807,488.259]],["content/371",[66,6.297]],["keywords/371",[]],["title/372",[257,416.721,2146,1123.5]],["content/372",[147,14.148,243,12.221,585,9.409,1096,11.052,2147,17.476]],["keywords/372",[]],["title/373",[221,303.691,462,423.006,647,541.513]],["content/373",[66,6.297]],["keywords/373",[]],["title/374",[221,368.156,650,695.545]],["content/374",[55,7.491,185,10.607,585,9.03,655,6.981,906,4.851,956,10.176,2148,16.772]],["keywords/374",[]],["title/375",[71,209.254,157,343.752,221,303.691]],["content/375",[55,5.666,60,4.229,157,6.275,176,3.574,181,8.18,185,10.699,221,4.157,412,4.414,585,6.83,906,3.669,1105,9.146,1387,10.27,1517,9.461,1619,11.563,1623,14.432,2149,12.686,2150,12.686,2151,12.686]],["keywords/375",[]],["title/376",[98,297.177,221,303.691,653,368.282]],["content/376",[66,6.297]],["keywords/376",[]],["title/377",[221,303.691,653,368.282,655,385.763]],["content/377",[66,6.297]],["keywords/377",[]],["title/378",[141,359.974,154,274.424,155,328.281,221,258.438]],["content/378",[66,6.297]],["keywords/378",[]],["title/379",[154,274.424,155,328.281,221,258.438,658,498.782]],["content/379",[66,6.297]],["keywords/379",[]],["title/380",[176,261.112,221,303.691,660,498.986]],["content/380",[66,6.297]],["keywords/380",[]],["title/381",[125,506.638,176,261.112,221,303.691]],["content/381",[66,6.297]],["keywords/381",[]],["title/382",[29,523.131,221,303.691,655,385.763]],["content/382",[74,8.964,176,5.029,1105,12.87,2152,17.85]],["keywords/382",[]],["title/383",[154,274.424,155,328.281,221,258.438,664,437.982]],["content/383",[69,7.008,106,2.948,155,6.461,284,10.041,497,9.817,906,5.572,2153,19.263,2154,15.522,2155,15.522]],["keywords/383",[]],["title/384",[155,328.281,221,258.438,446,437.982,664,437.982]],["content/384",[66,6.297]],["keywords/384",[]],["title/385",[218,599.516,240,498.986,495,432.601]],["content/385",[42,3.992,176,4.07,539,8.022,584,9.345,585,7.778,586,7.35,600,11.192,840,11.694,894,8.943,1009,10.774,1424,9.136,1750,12.324,1769,13.166,2156,14.446,2157,14.446]],["keywords/385",[]],["title/386",[421,656.46,423,710.535]],["content/386",[0,9.245,37,13,42,4.211,55,6.806,106,2.894,421,8.904,428,7.97,769,10.987,1444,8.748,1451,10.362,1453,9.637,2145,13.889]],["keywords/386",[]],["title/387",[86,418.415,424,453.702,653,368.282]],["content/387",[66,6.297]],["keywords/387",[]],["title/388",[176,261.112,190,361.79,424,453.702]],["content/388",[42,4.543,55,7.344,77,6.844,98,5.272,190,6.418,424,8.049,805,14.026,1444,9.439]],["keywords/388",[]],["title/389",[428,587.582,749,614.183]],["content/389",[15,9.282,617,7.521,2158,15.562]],["keywords/389",[]],["title/390",[141,359.974,154,274.424,155,328.281,789,478.489]],["content/390",[66,6.297]],["keywords/390",[]],["title/391",[660,424.632,789,478.489,790,498.782,814,536.304]],["content/391",[185,10.398,789,9.975,906,5.772,956,9.975,1001,12.262,1009,12.262,1432,10.895]],["keywords/391",[]],["title/392",[432,882.975]],["content/392",[15,9.282,617,7.521,2158,15.562]],["keywords/392",[]],["title/393",[434,902.004]],["content/393",[42,4.73,55,7.645,139,13.857,769,12.341,1444,9.827,1451,11.64]],["keywords/393",[]],["title/394",[124,756.67]],["content/394",[40,9.478,66,3.287,141,4.545,157,3.693,179,5.282,188,6.771,194,6.963,224,6.041,236,8.494,284,9.252,300,11.835,351,7.179,410,10.667,412,5.824,576,10.002,585,5.361,608,8.061,896,8.494,926,9.075,947,6.771,1101,9.075,1156,5.443,1551,6.598,2024,7.714,2064,12.202,2067,7.714,2159,9.957,2160,9.957,2161,9.075,2162,9.957,2163,9.957]],["keywords/394",[]],["title/395",[668,848.816]],["content/395",[4,5.649,7,2.835,13,2.46,31,7.338,42,2.719,47,7.417,54,4.084,60,2.46,61,3.155,106,2.693,185,6.223,194,6.881,226,6.691,284,6.365,410,7.338,590,6.881,618,8.141,668,9.895,886,5.554,940,6.691,969,8.394,1096,6.223,1169,8.394,1187,7.623,1537,8.968,1985,8.394,2164,9.839,2165,9.839,2166,9.839,2167,9.839,2168,9.839,2169,9.839]],["keywords/395",[]],["title/396",[54,167.008,1881,638.467,1918,672.828,2024,611.031]],["content/396",[]],["keywords/396",[]],["title/397",[66,370.861,2170,1024.007]],["content/397",[35,3.737,54,3.815,55,6.236,106,2.652,134,9.032,157,6.682,584,9.032,624,12.597,1134,10.817,1514,11.302,2171,13.962,2172,13.962,2173,13.962,2174,13.962]],["keywords/397",[]],["title/398",[41,922.62]],["content/398",[3,2.569,10,5.613,11,3.601,13,2.282,15,2.832,34,3.313,36,1.326,42,3.711,54,2.458,55,4.078,56,4.749,60,1.391,61,2.928,64,2.953,66,4.433,67,6.446,71,1.257,99,2.274,106,2.204,119,4.013,157,3.387,164,3.446,176,3.27,185,3.52,210,4.749,220,5.154,242,5.906,257,2.065,412,3.177,574,4.313,583,4.506,584,5.906,585,2.997,586,2.832,599,4.749,705,4.013,732,5.073,839,4.013,844,3.785,847,3.52,883,2.911,886,5.154,888,3.377,894,5.652,911,4.506,978,5.073,1045,3.892,1121,7.074,1125,4.749,1156,3.043,1163,4.506,1264,4.749,1325,5.539,1397,4.013,1567,4.646,1595,4.151,1617,4.749,1975,5.073,2028,5.073,2130,4.749,2131,4.749,2175,5.073,2176,5.566,2177,5.566,2178,5.566,2179,5.566,2180,5.566,2181,5.566,2182,5.566,2183,5.566,2184,5.566,2185,5.566,2186,5.566,2187,5.566,2188,5.566,2189,5.566,2190,5.566,2191,5.566]],["keywords/398",[]],["title/399",[464,833.358]],["content/399",[3,5.365,14,7.703,50,8.669,54,2.461,61,3.727,66,3.837,71,2.625,77,4.838,157,4.311,176,3.275,239,10.595,576,8.129,584,10.315,944,8.381,946,7.904,1134,9.006,1170,7.703,1171,7.904,1437,7.196,1517,8.669,1535,9.917,1567,8.113,1703,9.917,2192,11.624,2193,11.624,2194,11.624,2195,11.624]],["keywords/399",[]],["title/400",[42,394.11]],["content/400",[]],["keywords/400",[]],["title/401",[726,726.775,745,668.638]],["content/401",[66,6.297]],["keywords/401",[]],["title/402",[98,252.894,571,522.62,806,522.62,807,488.259]],["content/402",[66,6.297]],["keywords/402",[]],["title/403",[157,416.721,495,524.429]],["content/403",[66,6.297]],["keywords/403",[]],["title/404",[98,360.258,653,446.458]],["content/404",[7,3.353,28,12.509,31,12.509,74,8.422,585,9.03,594,12.994,2196,16.772]],["keywords/404",[]],["title/405",[221,303.691,462,423.006,463,532.06]],["content/405",[55,7.202,154,5.61,176,4.543,1509,13.052,1513,13.755,1517,12.025,1533,13.755,2197,16.123,2198,16.123]],["keywords/405",[]],["title/406",[221,303.691,462,423.006,647,541.513]],["content/406",[10,8.111,74,8.422,106,3.185,1110,13.578,1551,11.114,1622,14.309,2199,16.772]],["keywords/406",[]],["title/407",[221,368.156,650,695.545]],["content/407",[28,12.025,157,5.98,176,4.543,594,12.491,894,9.982,1045,11.275,2158,13.755,2200,13.755,2201,16.123]],["keywords/407",[]],["title/408",[71,209.254,157,343.752,221,303.691]],["content/408",[10,6.986,42,3.992,61,4.632,106,2.743,176,4.07,584,9.345,844,9.823,847,9.136,894,8.943,948,9.823,1105,10.415,1163,11.694,2130,12.324,2131,12.324,2175,13.166]],["keywords/408",[]],["title/409",[98,297.177,221,303.691,653,368.282]],["content/409",[66,5.124,98,4.977,157,5.757,221,5.086,584,10.041,906,4.49,1105,11.191,1325,9.417,1567,7.898,2202,15.522,2203,15.522]],["keywords/409",[]],["title/410",[221,303.691,653,368.282,655,385.763]],["content/410",[3,7.741,66,5.536,655,6.981,1045,11.729,1567,8.534,1613,14.309,2204,16.772]],["keywords/410",[]],["title/411",[141,359.974,154,274.424,155,328.281,221,258.438]],["content/411",[66,6.297]],["keywords/411",[]],["title/412",[154,274.424,155,328.281,221,258.438,658,498.782]],["content/412",[66,6.587,412,5.721,1427,12.738,1528,14.026,1546,13.31,1567,8.366,2205,16.441]],["keywords/412",[]],["title/413",[176,261.112,221,303.691,660,498.986]],["content/413",[66,6.297]],["keywords/413",[]],["title/414",[125,506.638,176,261.112,221,303.691]],["content/414",[157,5.551,176,4.216,220,8.447,249,12.767,412,5.207,594,11.594,711,12.767,906,4.328,1045,10.465,1567,7.615,2200,12.767,2206,14.965,2207,14.965]],["keywords/414",[]],["title/415",[221,368.156,629,668.638]],["content/415",[10,8.111,55,7.491,71,3.787,98,5.378,161,11.729,636,11.729,1421,12.509]],["keywords/415",[]],["title/416",[29,523.131,221,303.691,655,385.763]],["content/416",[55,6.566,66,4.853,157,5.453,176,4.142,655,6.119,894,9.101,906,4.252,1045,10.28,1567,7.48,1935,12.541,2200,12.541,2208,14.701,2209,14.701,2210,14.701]],["keywords/416",[]],["title/417",[154,274.424,155,328.281,221,258.438,664,437.982]],["content/417",[66,6.297]],["keywords/417",[]],["title/418",[155,328.281,221,258.438,446,437.982,664,437.982]],["content/418",[66,6.297]],["keywords/418",[]],["title/419",[218,599.516,240,498.986,495,432.601]],["content/419",[55,7.491,74,8.422,446,9.314,906,4.851,1535,14.309,1750,14.309,2211,16.772]],["keywords/419",[]],["title/420",[421,656.46,423,710.535]],["content/420",[29,9.101,66,5.322,906,4.663,1019,12.491,1096,10.197,1139,13.755,1567,8.204,2212,13.052,2213,14.695]],["keywords/420",[]],["title/421",[86,418.415,424,453.702,653,368.282]],["content/421",[98,5.378,653,6.665,1095,10.607,1096,10.607,1160,12.509,2214,15.287,2215,15.287]],["keywords/421",[]],["title/422",[176,261.112,190,361.79,424,453.702]],["content/422",[66,6.297]],["keywords/422",[]],["title/423",[428,587.582,749,614.183]],["content/423",[29,9.101,66,5.322,906,4.663,1019,12.491,1096,10.197,1139,13.755,1567,8.204,2212,13.052,2213,14.695]],["keywords/423",[]],["title/424",[8,681.627,431,785.651]],["content/424",[10,8.451,55,7.806,269,15.928,1030,13.033,2216,17.476]],["keywords/424",[]],["title/425",[141,359.974,154,274.424,155,328.281,789,478.489]],["content/425",[98,5.378,653,6.665,1095,10.607,1096,10.607,1160,12.509,2214,15.287,2215,15.287]],["keywords/425",[]],["title/426",[660,424.632,789,478.489,790,498.782,814,536.304]],["content/426",[13,3.271,66,4.319,98,4.196,157,4.853,176,3.686,179,6.942,660,7.045,789,7.938,790,8.275,873,10.592,944,9.434,1011,9.434,1105,9.434,1306,11.926,1325,7.938,1567,6.658,1935,11.163,2217,11.926,2218,13.084,2219,13.084,2220,13.084]],["keywords/426",[]],["title/427",[432,882.975]],["content/427",[66,5.769,906,5.055,1096,11.052,1567,8.892,2212,14.148]],["keywords/427",[]],["title/428",[434,902.004]],["content/428",[66,6.297]],["keywords/428",[]],["title/429",[124,756.67]],["content/429",[55,6.342,66,4.687,157,5.267,216,8.791,500,8.297,671,9.93,906,4.107,1064,12.114,1567,7.225,2074,12.942,2221,14.2,2222,14.2,2223,14.2,2224,12.942,2225,12.942,2226,14.2]],["keywords/429",[]],["title/430",[668,848.816]],["content/430",[66,6.297]],["keywords/430",[]],["title/431",[141,359.974,154,274.424,155,328.281,1998,536.304]],["content/431",[55,7.806,98,5.604,154,6.081,213,12.221,624,12.221]],["keywords/431",[]],["title/432",[176,316.539,1998,763.987]],["content/432",[55,7.645,142,8.486,176,4.823,616,11.073,624,11.97,707,13.857]],["keywords/432",[]],["title/433",[629,668.638,1998,763.987]],["content/433",[10,8.111,55,7.491,71,3.787,98,5.378,161,11.729,636,11.729,1421,12.509]],["keywords/433",[]],["title/434",[892,779.687]],["content/434",[32,9.584,47,6.952,52,3.364,54,4.379,60,3.323,64,7.052,77,7.263,80,12.116,85,9.914,91,8.23,106,2.525,235,10.299,940,9.039,2212,10.761,2227,13.293,2228,13.293]],["keywords/434",[]],["title/435",[54,167.008,1882,718.833,1918,672.828,2024,611.031]],["content/435",[]],["keywords/435",[]],["title/436",[66,370.861,2170,1024.007]],["content/436",[]],["keywords/436",[]],["title/437",[41,922.62]],["content/437",[284,11.305,2229,20.699,2230,17.476,2231,17.476]],["keywords/437",[]],["title/438",[464,833.358]],["content/438",[3,7.033,31,11.365,55,6.806,66,5.03,181,7.369,182,8.462,190,5.949,584,9.857,1567,7.754,1623,13,1960,13.889,2232,15.238]],["keywords/438",[]],["title/439",[42,394.11]],["content/439",[]],["keywords/439",[]],["title/440",[726,726.775,745,668.638]],["content/440",[66,6.297]],["keywords/440",[]],["title/441",[98,252.894,571,522.62,806,522.62,807,488.259]],["content/441",[66,6.297]],["keywords/441",[]],["title/442",[157,416.721,495,524.429]],["content/442",[66,6.297]],["keywords/442",[]],["title/443",[98,360.258,653,446.458]],["content/443",[66,6.297]],["keywords/443",[]],["title/444",[221,303.691,462,423.006,463,532.06]],["content/444",[42,5.262,55,6.806,66,5.03,154,5.302,284,9.857,461,10.656,585,8.205,1003,13.889,1567,7.754,1659,13.889,2233,15.238]],["keywords/444",[]],["title/445",[221,303.691,462,423.006,647,541.513]],["content/445",[66,6.297]],["keywords/445",[]],["title/446",[221,368.156,650,695.545]],["content/446",[66,6.297]],["keywords/446",[]],["title/447",[71,209.254,157,343.752,221,303.691]],["content/447",[66,6.297]],["keywords/447",[]],["title/448",[98,297.177,221,303.691,653,368.282]],["content/448",[66,6.297]],["keywords/448",[]],["title/449",[221,303.691,653,368.282,655,385.763]],["content/449",[66,6.297]],["keywords/449",[]],["title/450",[141,359.974,154,274.424,155,328.281,221,258.438]],["content/450",[15,6.764,42,3.673,54,4.124,60,3.323,66,4.388,74,6.675,687,9.914,955,10.761,1096,8.407,1402,12.116,1567,6.764,1876,12.116,1985,11.341,2234,13.293,2235,13.293,2236,13.293,2237,13.293,2238,13.293]],["keywords/450",[]],["title/451",[154,274.424,155,328.281,221,258.438,658,498.782]],["content/451",[3,8.066,55,7.806,74,8.776,906,5.055,1546,14.148]],["keywords/451",[]],["title/452",[176,261.112,221,303.691,660,498.986]],["content/452",[66,6.297]],["keywords/452",[]],["title/453",[125,506.638,176,261.112,221,303.691]],["content/453",[66,6.297]],["keywords/453",[]],["title/454",[221,368.156,629,668.638]],["content/454",[66,6.297]],["keywords/454",[]],["title/455",[29,523.131,221,303.691,655,385.763]],["content/455",[66,6.297]],["keywords/455",[]],["title/456",[154,274.424,155,328.281,221,258.438,664,437.982]],["content/456",[66,5.427,141,7.504,213,11.497,584,10.636,1325,9.975,1567,8.366,1602,14.026,2239,16.441]],["keywords/456",[]],["title/457",[155,328.281,221,258.438,446,437.982,664,437.982]],["content/457",[66,6.297]],["keywords/457",[]],["title/458",[218,599.516,240,498.986,495,432.601]],["content/458",[66,6.297]],["keywords/458",[]],["title/459",[421,656.46,423,710.535]],["content/459",[7,3.353,66,5.536,106,3.185,417,7.829,1008,10.85,1095,10.607,1567,8.534]],["keywords/459",[]],["title/460",[176,261.112,190,361.79,424,453.702]],["content/460",[7,3.353,66,5.536,106,3.185,417,7.829,1008,10.85,1095,10.607,1567,8.534]],["keywords/460",[]],["title/461",[428,587.582,749,614.183]],["content/461",[7,3.353,66,5.536,106,3.185,417,7.829,1008,10.85,1095,10.607,1567,8.534]],["keywords/461",[]],["title/462",[8,681.627,431,785.651]],["content/462",[7,3.353,66,5.536,106,3.185,417,7.829,1008,10.85,1095,10.607,1567,8.534]],["keywords/462",[]],["title/463",[660,424.632,789,478.489,790,498.782,814,536.304]],["content/463",[66,6.297]],["keywords/463",[]],["title/464",[432,882.975]],["content/464",[7,3.353,66,5.536,106,3.185,417,7.829,1008,10.85,1095,10.607,1567,8.534]],["keywords/464",[]],["title/465",[434,902.004]],["content/465",[7,3.353,66,5.536,106,3.185,417,7.829,1008,10.85,1095,10.607,1567,8.534]],["keywords/465",[]],["title/466",[124,756.67]],["content/466",[10,5.436,36,2.094,42,3.106,48,4.017,52,2.225,54,4.234,70,2.82,71,1.985,74,2.67,106,1.01,157,3.261,158,5.827,159,9.741,160,4.12,179,2.821,188,3.616,201,4.963,216,5.444,246,2.863,257,1.972,291,4.305,294,3.363,300,5.688,366,3.226,367,4.305,412,1.85,499,3.834,576,3.719,580,4.847,584,3.44,586,2.706,618,3.053,666,6.149,679,5.688,681,5.827,696,6.558,906,2.543,956,3.226,1008,3.44,1068,8.014,1096,3.363,1112,4.537,1156,2.907,1551,3.524,1567,6.646,1595,3.966,2067,4.12,2070,9.101,2086,4.305,2088,4.305,2224,4.847,2225,4.847,2240,5.318,2241,5.318,2242,5.318,2243,5.318,2244,5.318,2245,5.318,2246,5.318,2247,8.793,2248,5.318,2249,5.318,2250,5.318,2251,5.318,2252,5.318,2253,8.793,2254,5.318]],["keywords/466",[]],["title/467",[668,848.816]],["content/467",[66,6.297]],["keywords/467",[]],["title/468",[141,359.974,154,274.424,155,328.281,1998,536.304]],["content/468",[66,6.297]],["keywords/468",[]],["title/469",[176,316.539,1998,763.987]],["content/469",[7,3.353,66,5.536,106,3.185,417,7.829,1008,10.85,1095,10.607,1567,8.534]],["keywords/469",[]],["title/470",[629,668.638,1998,763.987]],["content/470",[66,6.297]],["keywords/470",[]],["title/471",[892,779.687]],["content/471",[1560,16.274]],["keywords/471",[]],["title/472",[42,310.452,263,681.627]],["content/472",[4,2.633,35,2.079,36,1.092,38,7.217,42,3.287,48,2.003,49,1.251,52,4.419,54,4.815,60,3.327,61,3.814,70,3.24,71,1.035,77,5.54,86,2.07,91,2.839,98,2.491,106,0.871,133,1.571,164,2.839,174,3.912,176,2.189,190,3.032,246,2.469,250,3.118,257,2.881,263,6.131,412,3.516,499,5.601,567,3.912,847,2.9,883,2.398,894,4.809,906,1.326,914,5.601,940,3.118,1197,2.967,1225,3.553,1226,3.712,1437,2.839,1559,3.712,1641,4.18,2255,4.586,2256,7.768,2257,9.211,2258,7.08,2259,7.768,2260,7.768,2261,4.586,2262,4.586,2263,4.586,2264,4.586,2265,4.586,2266,4.586]],["keywords/472",[]],["title/473",[42,310.452,955,909.523]],["content/473",[10,2.948,15,5.002,32,8.907,35,1.632,36,2.341,42,3.916,47,5.141,48,1.571,49,1.663,52,1.543,54,4.323,60,3.543,70,1.955,71,2.22,73,3.282,77,5.142,85,4.546,101,4.546,102,7.332,106,1.158,114,5.556,118,4.039,133,2.089,137,5.556,157,2.261,161,4.263,174,5.2,224,3.698,257,2.261,273,3.698,275,4.723,283,6.359,588,5.2,596,10.001,618,3.5,883,6.461,889,4.935,893,10.569,894,3.774,916,2.878,933,3.943,955,11.473,965,5.556,1001,4.546,1034,4.723,1274,5.556,1421,4.546,1745,5.556,2267,6.096,2268,6.096,2269,6.096,2270,6.096,2271,6.096,2272,6.096,2273,6.096,2274,6.096]],["keywords/473",[]],["title/474",[34,668.638,904,870.438]],["content/474",[29,2.243,34,5.403,38,4.169,42,2.988,43,5.125,45,3.217,47,2.078,48,1.024,50,2.963,51,3.078,52,4.018,54,4.764,60,2.703,61,2.203,64,6.481,70,1.274,71,0.897,77,4.502,90,3.39,91,2.46,98,1.274,106,1.724,113,1.814,142,1.97,147,3.217,175,3.645,190,1.551,197,5.862,201,2.243,208,1.97,210,3.39,242,4.445,294,2.513,356,2.365,378,3.544,412,3.159,416,3.217,499,4.954,500,5.304,511,2.702,756,2.57,883,3.594,904,3.078,906,1.149,907,3.078,944,2.865,947,2.702,1106,3.622,1126,3.217,1156,4.963,1207,3.39,1268,3.217,1421,2.963,1444,7.677,1524,3.39,1849,3.217,2217,3.622,2257,6.263,2258,6.263,2275,3.973,2276,3.973,2277,3.973,2278,3.973,2279,3.973,2280,3.973,2281,3.973,2282,6.871,2283,3.973,2284,3.973,2285,3.973,2286,3.973,2287,3.973,2288,3.973,2289,6.871,2290,3.973,2291,3.973,2292,3.973]],["keywords/474",[]],["title/475",[42,310.452,1156,614.183]],["content/475",[4,3.217,10,2.71,35,1.5,38,7.075,42,2.537,47,2.931,52,4.044,54,4.809,60,3.371,61,1.797,70,1.797,77,6.193,86,2.53,98,1.797,157,3.405,176,1.579,190,2.188,201,3.163,205,5.108,257,5.001,283,5.939,412,4.058,499,6.619,883,7.052,888,7.075,893,4.179,894,5.684,902,6.42,906,1.621,1019,4.342,1030,4.179,1156,3.063,1268,4.536,1672,4.781,2293,5.604,2294,5.604,2295,5.604,2296,9.181,2297,9.181,2298,9.181,2299,9.181,2300,5.604,2301,5.604]],["keywords/475",[]],["title/476",[220,634.177,1121,870.438]],["content/476",[3,4.704,10,3.083,13,2.548,35,2.728,36,3.032,48,1.644,49,1.739,52,2.579,54,4.646,60,3.636,61,3.268,64,3.382,70,2.044,71,1.44,73,3.433,98,3.268,99,4.163,101,4.755,157,3.78,164,3.947,181,3.083,220,3.599,243,4.458,249,5.439,257,3.78,267,4.597,294,4.032,319,5.811,494,7.127,511,4.335,539,3.541,618,3.66,673,4.597,674,4.755,886,3.599,940,4.335,1015,4.458,1107,4.94,1115,9.289,1116,4.124,1118,3.794,1121,4.94,1125,5.439,1169,5.439,1325,3.868,1403,5.439,1559,5.161,1870,5.811,2077,5.811,2161,5.811,2302,6.376,2303,6.376,2304,6.376,2305,6.376]],["keywords/476",[]],["title/477",[133,384.981,956,681.627]],["content/477",[15,7.898,42,5.323,105,8.762,133,6.601,234,10.555,293,10.855,956,11.687,2306,15.522]],["keywords/477",[]],["title/478",[368,997.361]],["content/478",[7,1.113,13,2.282,15,2.832,36,2.175,38,5.539,41,3.601,42,4.402,48,2.354,49,1.519,52,2.937,54,4.596,59,7.391,60,2.902,61,1.785,70,1.785,77,3.8,98,1.785,106,1.057,118,6.05,133,1.907,142,2.759,189,2.725,208,2.759,234,3.785,243,3.892,281,4.151,317,5.073,368,10.367,412,1.937,458,4.749,466,3.689,568,4.506,594,4.313,602,4.013,616,3.601,708,4.013,822,3.601,883,4.775,892,3.043,956,3.377,982,5.073,1049,4.313,1142,4.749,1148,5.073,1149,5.073,1150,5.073,1151,5.073,1156,3.043,1311,5.073,1330,5.073,1391,5.073,1459,3.377,2307,5.566,2308,11.608,2309,9.13,2310,5.566,2311,9.13,2312,5.566,2313,5.566,2314,5.566,2315,5.566,2316,5.566]],["keywords/478",[]]],"invertedIndex":[["",{"_index":54,"title":{"353":{"position":[[13,1]]},"356":{"position":[[32,1]]},"366":{"position":[[13,1]]},"396":{"position":[[13,1]]},"435":{"position":[[13,1]]}},"content":{"2":{"position":[[265,1],[267,1],[293,1],[331,1],[333,2],[336,3],[373,2],[406,1],[408,2],[411,3],[465,1],[485,1],[487,2],[490,1],[513,1],[523,2],[611,1],[630,1],[632,1],[660,1],[662,3],[773,1],[775,2],[787,2],[790,1],[805,1],[807,2],[897,2],[914,2],[917,1],[933,2],[1029,2],[1046,2],[1049,1],[1068,2],[1119,2],[1245,2],[1262,2],[1265,1],[1281,2],[1316,1],[1325,2],[1334,1],[1336,2]]},"5":{"position":[[139,2],[186,2],[217,1],[242,2],[264,2],[454,1],[472,1],[508,2],[636,1],[667,1],[669,2],[764,1],[833,1],[835,1],[848,2],[875,2],[878,3],[897,1],[899,1],[959,1],[968,1],[1018,1],[1020,1],[1022,2],[1108,2],[1192,1],[1194,1],[1224,1],[1232,1],[1262,1],[1282,1],[1346,2],[1362,1],[1405,2],[1420,1],[1468,2],[1476,1],[1538,2],[1553,1],[1570,2],[1581,1],[1598,1],[1600,2],[1634,2],[1679,1],[1681,1],[1683,1],[1685,2],[1790,1],[1823,2],[1950,3],[1954,2],[2002,2]]},"7":{"position":[[341,1],[358,1],[735,1],[790,2],[1342,1],[1419,1]]},"10":{"position":[[58,1],[89,1],[447,1],[449,1]]},"12":{"position":[[17,1],[119,1],[184,1],[211,1],[227,1],[257,1],[297,1],[346,1]]},"13":{"position":[[129,1],[143,1],[241,1],[279,3],[324,2],[354,1],[402,2],[413,2],[435,1],[437,2],[491,2],[536,2],[579,2],[642,2],[705,2],[756,2],[792,2],[806,1],[808,2]]},"15":{"position":[[112,1],[128,1],[163,1],[212,1],[254,1],[306,1],[362,2],[378,1],[399,2],[413,1],[415,2],[443,2],[467,2],[506,2],[572,2],[612,2],[644,2],[698,2],[743,2],[786,2],[849,2],[912,2],[963,2],[999,2],[1013,1],[1015,1]]},"17":{"position":[[140,1],[163,1],[165,1],[198,1],[221,1],[256,1],[258,1],[260,1],[262,1],[264,1]]},"19":{"position":[[103,1],[122,1],[144,1],[189,2],[231,2],[254,1],[295,1],[297,1]]},"21":{"position":[[16,1],[18,1],[55,1],[74,1],[82,1],[84,3],[94,1],[102,1],[120,1],[122,1],[124,1],[147,1],[161,1],[163,2],[178,1],[191,1],[203,1],[229,1],[242,1],[255,1],[355,1],[372,1],[374,2],[425,1],[427,2],[470,1],[472,2],[481,1],[500,1],[513,1],[540,1],[547,1],[564,1],[566,1],[591,1],[621,1],[648,1],[650,2],[695,1],[697,2],[739,1],[741,2],[771,1],[878,1],[880,1],[903,1]]},"22":{"position":[[60,1],[62,1],[84,1],[105,1],[113,1],[115,3],[125,1],[133,1],[142,1],[144,1],[146,1],[169,1],[183,1],[185,2],[200,1],[213,1],[225,1],[251,1],[264,1],[277,1],[307,1],[330,1],[332,2],[375,1],[377,2],[386,1],[399,1],[426,1],[451,1],[481,1],[508,1],[510,2],[555,1],[557,2],[599,1],[601,2],[631,1],[738,1],[740,1],[763,1]]},"25":{"position":[[53,1],[88,1],[97,2],[106,1],[108,2],[111,3],[115,2]]},"28":{"position":[[53,1],[105,1],[107,2],[110,3],[114,2]]},"31":{"position":[[208,1],[236,1],[274,1],[305,1],[346,1],[374,1],[418,1],[420,1],[422,1],[470,2],[473,1],[527,2],[530,1],[577,1],[579,1],[602,1]]},"34":{"position":[[1261,1],[1276,1],[1336,1],[1351,1],[1374,1],[1406,2],[1415,1],[1424,1],[1442,1],[1444,1],[1446,2],[1674,2],[1677,1],[1731,2],[1867,2],[2037,1],[2039,1],[2083,2],[2091,2],[2121,1],[2123,2],[2154,2],[2157,1],[2252,3],[2317,1],[2326,2],[2335,1],[2337,2],[2340,3],[2344,2]]},"37":{"position":[[1223,1],[1247,1],[1286,1],[1311,1],[1356,1],[1358,1],[1360,1],[1417,2],[1420,1],[1474,1],[1476,1],[1499,1],[1531,2],[1540,1],[1549,1],[1567,1],[1569,1],[1571,2],[1799,2],[1802,1],[1856,2],[1992,2],[2162,1],[2164,1],[2208,2],[2216,2],[2246,1],[2248,2],[2279,2],[2282,1]]},"40":{"position":[[53,1],[88,1],[97,2],[106,1],[108,2],[111,3],[115,2]]},"43":{"position":[[1261,1],[1276,1],[1336,1],[1351,1],[1374,1],[1406,2],[1415,1],[1424,1],[1442,1],[1444,1],[1446,2],[1674,2],[1677,1],[1731,2],[1867,2],[2037,1],[2039,1],[2083,2],[2091,2],[2121,1],[2123,2],[2165,2],[2168,1],[2263,3],[2328,1],[2337,2],[2346,1],[2348,2],[2351,3],[2355,2]]},"46":{"position":[[53,1],[92,2],[175,1],[177,2],[180,3],[184,2]]},"49":{"position":[[53,1],[105,1],[107,2],[110,3],[114,2]]},"52":{"position":[[53,1],[105,1],[107,2],[110,3],[114,2]]},"55":{"position":[[117,1],[203,1],[205,2],[208,3],[212,2]]},"58":{"position":[[53,1],[105,1],[107,2],[110,3],[114,2]]},"61":{"position":[[53,1],[105,1],[107,2],[110,3],[114,2]]},"64":{"position":[[117,1],[203,1],[205,2],[208,3],[212,2]]},"68":{"position":[[53,1],[105,1],[107,2],[110,3],[114,2]]},"70":{"position":[[53,1],[88,1],[97,2],[106,1],[108,2],[111,3],[115,2]]},"73":{"position":[[117,1],[203,1],[205,2],[208,3],[212,2]]},"77":{"position":[[53,1],[105,1],[107,2],[110,3],[114,2]]},"79":{"position":[[53,1],[88,1],[97,2],[106,1],[108,2],[111,3],[115,2]]},"82":{"position":[[117,1],[203,1],[205,2],[208,3],[212,2]]},"85":{"position":[[53,1],[105,1],[107,2],[110,3],[114,2]]},"88":{"position":[[53,1],[105,1],[107,2],[110,3],[114,2]]},"91":{"position":[[1261,1],[1276,1],[1336,1],[1351,1],[1374,1],[1406,2],[1415,1],[1424,1],[1442,1],[1444,2],[1471,2],[1699,2],[1702,1],[1756,2],[1892,2],[2062,1],[2064,1],[2108,2],[2116,2],[2146,1],[2148,2],[2179,2],[2182,1],[2277,3],[2342,1],[2351,2],[2360,1],[2362,2],[2365,3],[2369,2]]},"94":{"position":[[117,1],[203,1],[205,2],[208,3],[212,2]]},"97":{"position":[[117,1],[203,1],[205,2],[208,3],[212,2]]},"100":{"position":[[117,1],[203,1],[205,2],[208,3],[212,2]]},"102":{"position":[[359,1],[374,1],[434,1],[449,1],[465,1],[657,3],[693,1],[702,2],[711,1],[713,2],[716,3],[720,2]]},"103":{"position":[[39,1],[53,1],[287,1],[336,1],[349,1],[474,1],[476,1],[478,2],[481,1],[527,1],[574,1],[576,2],[579,1],[614,1],[650,1],[652,2],[655,1],[690,1],[697,1],[719,1],[721,1],[723,2],[726,1],[758,1],[784,1],[819,2],[854,1],[863,2],[872,1],[874,2],[893,1],[895,1],[933,1],[935,2]]},"104":{"position":[[39,1],[53,1],[271,1],[320,1],[333,1],[348,6],[365,6],[387,6],[407,5],[413,1],[415,1],[417,2],[420,1],[454,1],[460,1],[470,6],[482,5],[488,1],[490,1],[492,2],[495,1],[535,1],[547,1],[560,6],[572,1],[574,5],[580,1],[582,1],[584,1],[586,2],[589,1],[624,1],[660,1],[662,2],[665,1],[697,1],[723,1],[758,2],[793,1],[802,2],[811,1],[813,2],[832,1],[834,1],[865,1],[867,2]]},"107":{"position":[[53,1],[105,1],[107,2],[110,3],[114,2]]},"110":{"position":[[117,1],[203,1],[205,2],[208,3],[212,2]]},"113":{"position":[[117,1],[161,2],[242,1],[244,2],[247,3],[251,2]]},"116":{"position":[[117,1],[161,2],[233,1],[235,2],[238,3],[242,2]]},"119":{"position":[[117,1],[203,1],[205,2],[208,3],[212,2]]},"122":{"position":[[117,1],[203,1],[205,2],[208,3],[212,2]]},"125":{"position":[[53,1],[105,1],[107,2],[110,3],[114,2]]},"128":{"position":[[193,1],[329,3],[375,1],[377,2],[380,3],[384,2]]},"131":{"position":[[53,1],[105,1],[107,2],[110,3],[114,2]]},"134":{"position":[[117,1],[203,1],[205,2],[208,3],[212,2]]},"139":{"position":[[187,1],[304,1],[306,2],[309,3],[313,2]]},"142":{"position":[[53,1],[105,1],[107,2],[110,3],[114,2]]},"146":{"position":[[499,2],[1273,1],[1288,1],[1348,1],[1363,1],[1386,1],[1418,2],[1427,1],[1436,1],[1454,1],[1456,1],[1458,2],[1686,2],[1689,1],[1743,2],[1879,2],[2049,1],[2051,1],[2095,2],[2103,2],[2133,1],[2135,2],[2166,2],[2169,1],[2264,3],[2329,1],[2338,2],[2347,1],[2349,2],[2352,3],[2356,2]]},"148":{"position":[[183,1],[203,1],[240,1],[263,1],[298,1],[310,1],[349,1],[368,1],[411,1],[506,2],[509,2],[512,2],[615,1]]},"151":{"position":[[558,2],[647,1],[649,1],[678,4],[701,1],[703,1],[705,4],[715,1],[787,1],[801,1],[842,1],[909,1],[911,1],[926,1],[928,1],[930,1],[932,1]]},"153":{"position":[[643,2],[739,1],[755,1],[757,2],[760,3],[764,2],[767,1],[783,1],[785,2],[788,2],[824,1],[842,1],[885,1],[909,1],[920,1],[1008,1],[1010,2],[1117,1],[1119,1],[1148,1],[1172,1],[1174,2],[1247,1],[1266,1],[1275,1],[1336,1],[1338,1],[1340,2],[1370,1],[1401,1],[1403,2],[1406,3],[1410,2],[1465,2],[1468,1]]},"157":{"position":[[187,1],[212,1],[214,2],[237,2],[240,1],[263,1],[698,1],[766,1],[791,1],[793,2],[816,2],[819,2],[843,1]]},"160":{"position":[[766,2],[806,1],[825,2],[828,2],[831,2],[871,1],[880,2],[915,1],[934,2]]},"167":{"position":[[463,1],[489,2],[572,1],[596,2],[605,2],[608,2],[709,1],[956,1],[988,3],[992,1]]},"168":{"position":[[256,1],[302,1],[419,1],[421,2],[510,1],[562,1],[564,1],[578,1]]},"174":{"position":[[40,1],[70,1],[123,1],[171,3],[195,1],[228,1],[283,1],[290,1],[303,1],[305,3],[309,2],[333,1],[438,1],[924,1],[959,2],[1151,1]]},"178":{"position":[[40,1],[71,1],[118,1],[141,1],[196,1],[244,3],[261,1],[319,2],[342,1],[375,1],[426,2],[450,1],[587,2],[765,2]]},"182":{"position":[[40,1],[75,1],[130,1],[200,3],[224,1],[296,1],[360,2],[384,1],[512,1],[568,1],[639,2],[720,1],[722,1],[744,1],[746,2],[770,2],[858,2],[861,3],[905,1],[907,1]]},"186":{"position":[[40,1],[53,1],[82,1],[106,1],[169,1],[196,1],[273,1],[341,3],[377,1],[385,1],[393,1],[401,1],[403,2],[406,3],[432,1],[480,2],[483,2],[507,1],[546,1],[552,1],[568,1],[617,1],[679,2],[682,1],[698,1],[743,1],[745,1],[796,2],[799,2]]},"188":{"position":[[730,1],[747,1],[749,2],[752,3],[756,2],[759,2],[830,1],[847,3],[876,1],[907,4]]},"189":{"position":[[807,1],[828,1],[869,2],[965,1],[981,1],[983,2],[986,3],[990,2],[993,1],[1009,1],[1011,2],[1014,2],[1050,1],[1068,1],[1111,1],[1135,1],[1146,1],[1234,1],[1236,2],[1311,2],[1418,1],[1420,1],[1449,1],[1473,1],[1475,2],[1548,1],[1567,1],[1576,1],[1637,1],[1639,1],[1641,2],[1671,1],[1702,1],[1704,2],[1707,3],[1711,2],[1714,2],[1785,1],[1802,3],[1831,1],[1862,3],[1916,2],[1919,2]]},"192":{"position":[[39,1],[62,1],[109,1],[178,1],[187,1],[215,1],[244,2],[281,2],[294,1],[296,1],[298,1]]},"193":{"position":[[39,1],[62,1],[109,1],[178,1],[215,2],[228,1],[230,1]]},"194":{"position":[[7,1],[55,1],[100,1],[131,1],[252,2],[255,1],[271,1],[307,1],[309,2],[355,1],[391,1],[398,2],[457,1],[459,1]]},"198":{"position":[[87,1],[118,1],[135,1],[137,1],[165,3],[215,2],[218,1],[236,2],[275,1],[285,1],[300,6],[317,6],[339,6],[359,5],[365,1],[367,1],[369,2],[372,1]]},"203":{"position":[[85,1],[116,1],[133,1],[135,1],[163,3],[213,2],[216,1],[234,2],[272,1],[282,1],[295,5],[306,1],[319,1],[321,1],[323,1],[325,2],[328,1]]},"207":{"position":[[182,1]]},"208":{"position":[[12,1],[61,1],[114,1],[145,1],[296,1],[298,2],[373,2],[390,2],[393,2],[396,1]]},"212":{"position":[[127,1],[158,1],[167,2],[170,2],[233,2],[286,2],[386,1],[439,2]]},"216":{"position":[[92,1],[123,1],[125,2],[147,2]]},"219":{"position":[[21,4],[88,4],[146,4],[360,2]]},"220":{"position":[[171,1],[183,1],[223,1],[295,1],[305,1],[366,2],[429,1],[431,2],[487,2],[522,1],[531,1],[556,7],[564,1],[566,2]]},"221":{"position":[[171,1],[183,1],[209,1],[232,1],[279,1],[313,2],[378,1],[388,1],[449,2],[512,1],[514,2],[570,2],[605,1],[614,1],[669,1],[671,2]]},"225":{"position":[[106,1],[131,1],[139,1],[149,1],[151,1],[189,1],[191,2],[194,3],[198,1],[200,1],[216,1]]},"229":{"position":[[244,1],[275,1],[328,1],[352,1],[395,1],[439,1],[455,1],[491,1],[522,1],[604,1],[606,1],[669,1],[696,2],[719,1],[729,1],[738,1],[762,1],[764,2],[1020,3]]},"232":{"position":[[1474,1],[1505,1],[1551,2],[1598,2],[1645,3],[1669,1],[1725,4],[1752,1],[1800,2],[1803,2]]},"233":{"position":[[82,1],[113,1],[122,2],[125,2],[148,2],[195,3],[219,1],[275,4],[280,2]]},"236":{"position":[[109,1],[140,1],[199,2],[264,2],[267,2]]},"240":{"position":[[111,1],[182,1],[191,2],[194,2]]},"244":{"position":[[103,1],[134,1],[180,2],[216,2],[263,3],[287,1],[358,2],[361,2]]},"248":{"position":[[173,1],[204,1],[213,2],[216,2],[281,2],[316,1],[318,1],[329,1],[366,2],[431,2],[468,2],[471,1],[488,3],[508,1],[521,1],[534,2],[537,2]]},"251":{"position":[[40,2]]},"252":{"position":[[183,1],[214,1],[223,2],[226,2],[296,2],[331,1],[333,1],[344,1],[433,2],[648,1],[665,3],[685,1],[698,1],[711,2],[714,2]]},"256":{"position":[[109,1],[140,1],[149,2],[152,2]]},"260":{"position":[[109,1],[140,1],[157,1],[159,1],[184,1],[256,1],[309,1],[311,1],[313,1],[331,2],[381,1],[383,1],[408,1],[439,1],[441,1],[458,3],[482,1],[551,2],[554,2]]},"263":{"position":[[59,1],[74,1],[76,1],[119,2],[127,2],[178,2],[181,1],[225,2],[233,2],[263,2],[266,1],[304,2],[312,2],[326,1],[328,2],[359,1]]},"266":{"position":[[115,1],[146,1],[159,1],[182,1],[206,1],[208,2],[262,1],[264,1],[307,2],[315,2],[366,2],[369,1],[413,2],[421,2],[451,2],[454,1],[492,2],[500,2],[514,1],[516,2],[558,3],[574,1],[576,1],[587,1],[652,1],[654,1],[671,3],[695,1],[762,2]]},"270":{"position":[[118,1],[149,1],[169,2],[204,2],[246,2],[313,1],[315,1],[333,1],[369,1],[371,1],[388,3],[408,1],[428,1],[444,2],[447,2]]},"274":{"position":[[183,1],[214,1],[234,2],[269,2],[339,2],[406,1],[408,1],[419,1],[473,2],[538,1],[555,3],[575,1],[595,1],[652,2],[655,2]]},"277":{"position":[[189,4],[379,4]]},"278":{"position":[[105,1],[136,1],[153,1],[155,1],[183,3],[233,2],[236,1],[254,2],[419,1],[442,1],[473,1],[475,2],[478,3],[498,2],[558,1],[572,1],[629,2],[650,2],[670,2],[673,1]]},"281":{"position":[[151,1]]},"287":{"position":[[88,1],[119,1],[136,1],[138,1],[166,3],[216,2],[219,1],[237,2],[276,1],[288,1],[404,1],[406,1],[408,2],[411,1]]},"293":{"position":[[127,1],[158,1],[177,1],[218,1],[255,1],[296,1],[298,2],[352,2],[355,1]]},"294":{"position":[[127,1],[164,1],[175,1],[200,2],[222,1],[251,1],[253,2],[308,2],[311,1]]},"299":{"position":[[98,1],[129,1],[138,2],[141,2],[185,1],[213,2],[234,1],[256,2],[278,2],[281,1],[283,2],[414,1],[416,2],[574,2]]},"304":{"position":[[73,1],[104,1],[149,1],[151,1],[179,3],[229,2],[232,1],[250,2],[282,1],[292,1],[302,6],[314,5],[320,1],[322,2],[344,2],[347,1]]},"309":{"position":[[102,1],[133,1],[150,1],[152,1],[180,3],[230,2],[233,1],[251,2],[297,1],[310,1],[327,6],[347,5],[353,1],[355,1],[357,2],[360,1]]},"312":{"position":[[108,1]]},"314":{"position":[[108,1],[133,1],[156,1],[204,1],[206,2],[241,2],[258,2],[303,1],[326,1]]},"319":{"position":[[75,1],[106,1],[123,1],[125,1],[153,3],[203,2],[206,1],[224,2],[257,1],[271,1],[282,6],[306,2],[309,2],[321,1],[323,1],[325,2],[328,1]]},"324":{"position":[[587,1]]},"328":{"position":[[75,1],[106,1],[115,2],[118,2],[140,1],[142,2],[176,1],[225,2],[282,2],[347,2],[369,2],[372,1],[398,1],[415,1],[449,2],[492,1],[506,1],[570,1],[601,1],[610,2],[613,2],[635,1],[637,2],[671,1],[699,2],[727,2],[730,1],[755,1],[804,2],[860,2],[899,2],[918,1],[923,1],[955,2],[958,1],[960,2],[963,3],[1025,1],[1038,1],[1108,1],[1147,2]]},"333":{"position":[[12,1],[50,1],[95,1],[129,3],[160,1],[189,1],[191,2],[194,3],[198,2],[201,1],[217,1],[268,3]]},"337":{"position":[[175,1],[272,1],[300,2]]},"342":{"position":[[97,1],[128,1],[147,2]]},"343":{"position":[[97,1],[128,1],[137,1],[153,6],[176,1],[178,2],[225,1],[237,5],[243,1],[245,2],[248,1]]},"347":{"position":[[256,2]]},"348":{"position":[[151,1],[200,5],[206,3],[242,1],[251,1],[276,7],[284,1],[286,2],[307,1],[356,5],[362,3],[398,1],[407,1],[432,7],[440,1],[442,2],[458,1],[460,1],[462,1],[519,2],[522,1],[576,1],[578,1],[601,1]]},"352":{"position":[[205,1],[254,5],[260,3],[296,1],[317,2],[344,1],[393,5],[399,3],[435,1],[459,2],[483,1],[549,1],[597,2],[600,1],[654,1],[656,3]]},"358":{"position":[[123,1]]},"359":{"position":[[763,4]]},"360":{"position":[[279,1],[371,2]]},"362":{"position":[[110,1],[128,1],[178,1],[209,1],[218,2],[221,2],[237,1],[239,1],[296,1],[298,2],[333,1],[350,2],[353,2],[400,1],[417,1],[419,1],[421,1],[485,2],[488,1],[490,2],[560,1],[562,1],[614,2],[617,1],[634,3],[655,1],[709,2],[826,1],[844,1],[894,1],[925,1],[934,2],[937,2],[961,1],[1043,1],[1051,1],[1068,2],[1083,1],[1100,1],[1102,1],[1104,2],[1146,3],[1162,3],[1188,1],[1294,2],[1368,2],[1543,1],[1561,1],[1611,1],[1642,1],[1651,2],[1654,2],[1670,1],[1672,1],[1722,1],[1730,1],[1789,1],[1797,1],[1814,2],[1824,1],[1858,1],[1860,2],[1929,1],[1931,1],[1933,1],[1935,1],[1937,2],[2075,2],[2078,1]]},"363":{"position":[[81,1],[142,1],[165,1],[167,1],[187,2],[190,1],[218,1],[313,1],[389,1],[408,1],[476,2],[479,1],[558,1],[800,1],[852,1],[861,1],[863,2],[866,1],[900,1],[909,2],[912,2]]},"364":{"position":[[7,1],[18,1],[124,1],[159,1],[250,1],[305,1],[372,1],[454,1],[463,1],[465,2],[468,1],[502,1],[511,2],[514,2]]},"365":{"position":[[7,1],[18,1],[124,1],[159,1],[202,1],[211,1],[233,2],[331,1],[413,1],[422,1],[424,2],[427,1],[461,1],[470,2],[473,2]]},"369":{"position":[[95,1],[108,1],[110,1],[145,1],[160,1],[176,1],[178,2],[196,1],[198,1],[378,1],[393,1],[401,1],[403,1],[419,1],[421,1],[444,1],[494,1],[518,1],[535,1],[598,1],[647,1],[665,1],[693,1],[704,1],[733,1],[757,1],[827,1],[836,1],[897,1],[899,1]]},"395":{"position":[[272,1],[299,3],[331,1],[400,1],[402,2]]},"397":{"position":[[112,1],[120,1]]},"398":{"position":[[872,2],[881,1],[910,1]]},"399":{"position":[[224,2]]},"434":{"position":[[122,1],[137,1],[201,1],[219,2]]},"450":{"position":[[118,1],[142,1],[163,2]]},"466":{"position":[[637,2],[673,1],[691,1],[748,1],[788,2],[874,3],[930,2],[964,1],[973,1],[1016,1],[1103,2],[1141,1],[1150,1],[1152,3]]},"472":{"position":[[247,2],[285,1],[287,2],[313,1],[328,1],[344,1],[346,1],[369,1],[400,1],[424,1],[432,1],[449,1],[451,1],[461,2],[464,3],[468,1],[498,1],[522,1],[530,1],[541,1],[543,1],[553,2],[556,3],[577,1],[588,1],[620,1],[644,1],[667,3],[726,1],[735,1],[832,1],[834,1],[1065,1],[1096,1],[1098,2],[1117,2],[1120,1],[1143,1],[1221,3]]},"473":{"position":[[468,1],[499,1],[501,2],[513,2],[546,1],[548,2],[584,2],[616,1],[618,2],[653,2],[687,1],[689,2],[727,2]]},"474":{"position":[[552,1],[593,1],[629,1],[631,1],[644,3],[648,2],[651,1],[673,1],[756,1],[781,1],[789,1],[791,3],[801,1],[817,1],[819,1],[842,1],[856,1],[858,2],[867,1],[882,1],[884,2],[887,2],[972,1],[994,1],[1070,1],[1072,1],[1074,2],[1113,1],[1141,1],[1172,1],[1203,1],[1227,1],[1235,1],[1243,1],[1245,1],[1350,1],[1363,1],[1461,1],[1463,1],[1472,1],[1505,1],[1507,1]]},"475":{"position":[[348,1],[350,1],[352,2],[355,3],[359,1],[382,1],[390,1],[392,3],[402,1],[418,1],[420,1],[443,1],[472,1],[496,1],[498,2],[501,3],[505,1],[533,1],[557,1],[559,2],[562,3],[566,1],[596,1],[620,1],[622,2],[625,3],[629,1],[638,1],[729,1],[731,1]]},"476":{"position":[[445,2],[514,1],[549,1],[566,1],[568,2],[577,1],[579,2],[596,1],[598,2],[601,3],[605,1],[628,1],[651,1],[701,2],[710,1],[719,1],[737,1],[739,1],[741,2]]},"478":{"position":[[162,1],[208,1],[245,1],[247,3],[328,1],[414,1],[422,1],[432,2],[478,1],[480,2],[505,1],[590,1],[598,1],[608,2],[637,1],[639,2],[664,1],[673,1],[689,1],[691,1],[1037,2]]}},"keywords":{}}],["0",{"_index":1116,"title":{},"content":{"167":{"position":[[487,1],[985,2]]},"173":{"position":[[449,1]]},"197":{"position":[[953,2]]},"202":{"position":[[948,2]]},"286":{"position":[[681,2]]},"298":{"position":[[1432,2]]},"303":{"position":[[925,2]]},"308":{"position":[[975,2]]},"318":{"position":[[786,2]]},"327":{"position":[[958,2]]},"476":{"position":[[264,1]]}},"keywords":{}}],["0.0",{"_index":1208,"title":{},"content":{"173":{"position":[[379,3]]}},"keywords":{}}],["0.036255",{"_index":547,"title":{},"content":{"21":{"position":[[1453,8]]}},"keywords":{}}],["0.038809",{"_index":549,"title":{},"content":{"21":{"position":[[1505,8]]}},"keywords":{}}],["0.042311",{"_index":553,"title":{},"content":{"21":{"position":[[1603,8]]}},"keywords":{}}],["0.048383",{"_index":551,"title":{},"content":{"21":{"position":[[1552,8]]}},"keywords":{}}],["0.066886",{"_index":564,"title":{},"content":{"21":{"position":[[1825,8]]}},"keywords":{}}],["0.073921",{"_index":543,"title":{},"content":{"21":{"position":[[1352,8]]}},"keywords":{}}],["0.080532",{"_index":562,"title":{},"content":{"21":{"position":[[1780,8]]}},"keywords":{}}],["0.083366",{"_index":555,"title":{},"content":{"21":{"position":[[1641,8]]}},"keywords":{}}],["0.083601",{"_index":558,"title":{},"content":{"21":{"position":[[1698,8]]}},"keywords":{}}],["0.094875",{"_index":556,"title":{},"content":{"21":{"position":[[1661,8]]}},"keywords":{}}],["0.095098",{"_index":545,"title":{},"content":{"21":{"position":[[1401,8]]}},"keywords":{}}],["0.156033",{"_index":541,"title":{},"content":{"21":{"position":[[1304,8]]}},"keywords":{}}],["0.19702",{"_index":560,"title":{},"content":{"21":{"position":[[1745,7]]}},"keywords":{}}],["0.x",{"_index":2025,"title":{"353":{"position":[[8,3]]}},"content":{"355":{"position":[[9,3]]}},"keywords":{}}],["0000",{"_index":1465,"title":{},"content":{"203":{"position":[[312,6]]}},"keywords":{}}],["01",{"_index":984,"title":{},"content":{"159":{"position":[[423,3]]},"166":{"position":[[467,2],[478,2],[554,2],[601,2],[615,2],[673,2]]}},"keywords":{}}],["02",{"_index":986,"title":{},"content":{"159":{"position":[[447,2],[450,3]]}},"keywords":{}}],["03",{"_index":969,"title":{},"content":{"159":{"position":[[265,3]]},"166":{"position":[[698,2]]},"395":{"position":[[137,3]]}},"keywords":{}}],["04",{"_index":972,"title":{},"content":{"159":{"position":[[289,3],[318,2],[420,2]]},"166":{"position":[[486,2],[557,2],[612,2],[659,2],[670,2],[709,2],[717,2]]}},"keywords":{}}],["05",{"_index":989,"title":{},"content":{"159":{"position":[[485,2]]},"166":{"position":[[565,2],[623,2],[648,2]]}},"keywords":{}}],["06",{"_index":1088,"title":{},"content":{"166":{"position":[[464,2]]}},"keywords":{}}],["08",{"_index":968,"title":{},"content":{"159":{"position":[[262,2]]},"166":{"position":[[695,2]]}},"keywords":{}}],["09",{"_index":971,"title":{},"content":{"159":{"position":[[286,2]]},"166":{"position":[[475,2],[529,2],[706,2]]}},"keywords":{}}],["1",{"_index":201,"title":{},"content":{"5":{"position":[[1390,2]]},"166":{"position":[[71,3]]},"173":{"position":[[387,1]]},"182":{"position":[[356,3]]},"197":{"position":[[878,3],[935,2]]},"202":{"position":[[873,3],[930,2]]},"286":{"position":[[606,3],[663,2]]},"287":{"position":[[310,3]]},"298":{"position":[[835,1],[1357,3],[1414,2]]},"299":{"position":[[253,2]]},"303":{"position":[[850,3],[907,2]]},"308":{"position":[[900,3],[957,2]]},"318":{"position":[[711,3],[768,2]]},"327":{"position":[[883,3],[940,2]]},"363":{"position":[[205,4],[308,4],[518,4]]},"466":{"position":[[640,2],[933,2]]},"474":{"position":[[733,2]]},"475":{"position":[[74,1]]}},"keywords":{}}],["1%.ftl",{"_index":2112,"title":{},"content":{"363":{"position":[[499,10]]}},"keywords":{}}],["1%.ftl}.j",{"_index":2113,"title":{},"content":{"363":{"position":[[545,12]]}},"keywords":{}}],["1%.json}.j",{"_index":2108,"title":{},"content":{"363":{"position":[[394,13]]}},"keywords":{}}],["1"",{"_index":1237,"title":{},"content":{"174":{"position":[[587,8],[789,8]]}},"keywords":{}}],["1.0",{"_index":1335,"title":{},"content":{"182":{"position":[[545,4]]}},"keywords":{}}],["1.x",{"_index":1926,"title":{"324":{"position":[[8,4]]},"353":{"position":[[15,3]]},"366":{"position":[[8,3]]}},"content":{"354":{"position":[[8,3]]},"355":{"position":[[172,3],[493,4]]},"356":{"position":[[8,3],[291,4]]}},"keywords":{}}],["10",{"_index":1093,"title":{"356":{"position":[[8,2]]}},"content":{"166":{"position":[[507,2]]},"219":{"position":[[426,2]]},"356":{"position":[[241,3]]}},"keywords":{}}],["10,000",{"_index":135,"title":{},"content":{"5":{"position":[[20,6]]}},"keywords":{}}],["100",{"_index":1309,"title":{},"content":{"179":{"position":[[32,3]]},"208":{"position":[[194,4]]}},"keywords":{}}],["1000",{"_index":1989,"title":{},"content":{"328":{"position":[[925,5]]}},"keywords":{}}],["1000000",{"_index":508,"title":{},"content":{"21":{"position":[[357,8]]}},"keywords":{}}],["11",{"_index":992,"title":{},"content":{"159":{"position":[[512,2]]},"166":{"position":[[518,2],[532,2]]},"219":{"position":[[415,3],[435,2]]}},"keywords":{}}],["11e6",{"_index":1243,"title":{},"content":{"174":{"position":[[688,4]]}},"keywords":{}}],["12",{"_index":194,"title":{"356":{"position":[[15,2]]}},"content":{"5":{"position":[[1311,3],[1402,2]]},"159":{"position":[[488,3]]},"166":{"position":[[568,2],[576,2],[626,2]]},"174":{"position":[[1048,2]]},"356":{"position":[[235,2]]},"394":{"position":[[64,2]]},"395":{"position":[[134,2]]}},"keywords":{}}],["128",{"_index":1239,"title":{},"content":{"174":{"position":[[630,4]]}},"keywords":{}}],["12t21:21:08.921z"",{"_index":1260,"title":{},"content":{"174":{"position":[[1051,23]]}},"keywords":{}}],["15",{"_index":1987,"title":{},"content":{"328":{"position":[[915,2]]}},"keywords":{}}],["150m",{"_index":2078,"title":{},"content":{"359":{"position":[[1138,5]]}},"keywords":{}}],["1592234975665",{"_index":1337,"title":{},"content":{"182":{"position":[[593,14]]}},"keywords":{}}],["16f6",{"_index":1481,"title":{},"content":{"208":{"position":[[267,4]]}},"keywords":{}}],["17",{"_index":1094,"title":{},"content":{"166":{"position":[[510,2]]}},"keywords":{}}],["19",{"_index":196,"title":{},"content":{"5":{"position":[[1326,3]]}},"keywords":{}}],["1:123456789012:function:shop",{"_index":1233,"title":{},"content":{"174":{"position":[[525,32]]}},"keywords":{}}],["1m",{"_index":570,"title":{},"content":{"21":{"position":[[1895,3]]}},"keywords":{}}],["2",{"_index":1068,"title":{},"content":{"166":{"position":[[43,3]]},"466":{"position":[[791,2],[1106,2]]}},"keywords":{}}],["2.x",{"_index":1881,"title":{"322":{"position":[[8,3]]},"323":{"position":[[8,3]]},"366":{"position":[[15,3]]},"396":{"position":[[8,3]]}},"content":{},"keywords":{}}],["20",{"_index":1100,"title":{},"content":{"166":{"position":[[651,2]]}},"keywords":{}}],["200",{"_index":182,"title":{},"content":{"5":{"position":[[982,4]]},"168":{"position":[[524,4]]},"186":{"position":[[674,4]]},"192":{"position":[[201,4]]},"198":{"position":[[151,4]]},"203":{"position":[[149,4]]},"220":{"position":[[545,4]]},"221":{"position":[[628,4]]},"229":{"position":[[752,4]]},"260":{"position":[[173,4]]},"266":{"position":[[196,4]]},"278":{"position":[[169,4]]},"287":{"position":[[152,4]]},"304":{"position":[[165,4]]},"309":{"position":[[166,4]]},"319":{"position":[[139,4]]},"324":{"position":[[858,3]]},"348":{"position":[[265,4],[421,4]]},"438":{"position":[[49,3]]}},"keywords":{}}],["2016",{"_index":960,"title":{},"content":{"159":{"position":[[50,7]]}},"keywords":{}}],["2017",{"_index":203,"title":{},"content":{"5":{"position":[[1448,5]]},"159":{"position":[[176,4]]},"166":{"position":[[690,4],[701,4]]}},"keywords":{}}],["2018",{"_index":1099,"title":{},"content":{"166":{"position":[[643,4]]}},"keywords":{}}],["2019",{"_index":2167,"title":{},"content":{"395":{"position":[[129,4]]}},"keywords":{}}],["2020",{"_index":1101,"title":{},"content":{"166":{"position":[[654,4],[712,4]]},"394":{"position":[[59,4]]}},"keywords":{}}],["2021",{"_index":987,"title":{},"content":{"159":{"position":[[454,4]]},"166":{"position":[[596,4],[607,4],[665,4]]}},"keywords":{}}],["2022",{"_index":1092,"title":{},"content":{"166":{"position":[[502,4],[513,4],[549,4],[560,4],[571,4],[618,4]]}},"keywords":{}}],["2023",{"_index":1087,"title":{},"content":{"166":{"position":[[459,4],[470,4],[524,4]]}},"keywords":{}}],["2025",{"_index":1089,"title":{},"content":{"166":{"position":[[481,4]]}},"keywords":{}}],["2027",{"_index":204,"title":{},"content":{"5":{"position":[[1463,4]]}},"keywords":{}}],["24",{"_index":993,"title":{},"content":{"159":{"position":[[515,3]]},"166":{"position":[[521,2],[604,2]]}},"keywords":{}}],["25",{"_index":975,"title":{},"content":{"159":{"position":[[321,3]]},"166":{"position":[[662,2],[720,2]]}},"keywords":{}}],["2nd",{"_index":999,"title":{},"content":{"159":{"position":[[582,3]]}},"keywords":{}}],["3",{"_index":205,"title":{},"content":{"5":{"position":[[1505,2]]},"475":{"position":[[79,1]]}},"keywords":{}}],["3.x",{"_index":1918,"title":{"323":{"position":[[14,4]]},"396":{"position":[[15,3]]},"435":{"position":[[8,3]]}},"content":{},"keywords":{}}],["30",{"_index":1090,"title":{},"content":{"166":{"position":[[489,2]]},"260":{"position":[[243,3]]}},"keywords":{}}],["31",{"_index":1097,"title":{},"content":{"166":{"position":[[579,2]]}},"keywords":{}}],["4",{"_index":206,"title":{},"content":{"5":{"position":[[1519,2]]}},"keywords":{}}],["4.x",{"_index":1882,"title":{"322":{"position":[[14,4]]},"435":{"position":[[15,3]]}},"content":{},"keywords":{}}],["406",{"_index":1558,"title":{},"content":{"228":{"position":[[881,5]]}},"keywords":{}}],["408",{"_index":674,"title":{},"content":{"34":{"position":[[1438,3]]},"37":{"position":[[1563,3]]},"43":{"position":[[1438,3]]},"91":{"position":[[1438,3]]},"146":{"position":[[1450,3]]},"476":{"position":[[733,3]]}},"keywords":{}}],["415",{"_index":1628,"title":{},"content":{"247":{"position":[[167,3]]},"251":{"position":[[352,3]]},"273":{"position":[[60,3]]}},"keywords":{}}],["422",{"_index":1602,"title":{},"content":{"232":{"position":[[1766,4]]},"244":{"position":[[324,4]]},"456":{"position":[[11,3]]}},"keywords":{}}],["422b1569",{"_index":1480,"title":{},"content":{"208":{"position":[[257,9]]}},"keywords":{}}],["4a03",{"_index":1482,"title":{},"content":{"208":{"position":[[272,4]]}},"keywords":{}}],["50",{"_index":2077,"title":{},"content":{"359":{"position":[[1135,2]]},"476":{"position":[[675,3]]}},"keywords":{}}],["500",{"_index":1623,"title":{},"content":{"243":{"position":[[352,3]]},"375":{"position":[[74,3],[184,3]]},"438":{"position":[[85,3]]}},"keywords":{}}],["5432",{"_index":1814,"title":{},"content":{"287":{"position":[[399,4]]}},"keywords":{}}],["5555",{"_index":766,"title":{},"content":{"103":{"position":[[469,4]]}},"keywords":{}}],["5timeoutearlyrespons",{"_index":2187,"title":{},"content":{"398":{"position":[[781,22]]}},"keywords":{}}],["6",{"_index":2052,"title":{"356":{"position":[[42,1]]}},"content":{},"keywords":{}}],["6.x",{"_index":2054,"title":{},"content":{"356":{"position":[[57,3]]}},"keywords":{}}],["60",{"_index":1988,"title":{},"content":{"328":{"position":[[920,2]]}},"keywords":{}}],["66.141835",{"_index":565,"title":{},"content":{"21":{"position":[[1844,9]]}},"keywords":{}}],["7",{"_index":1531,"title":{},"content":{"220":{"position":[[427,1]]},"221":{"position":[[510,1]]}},"keywords":{}}],["7b61",{"_index":1242,"title":{},"content":{"174":{"position":[[683,4]]}},"keywords":{}}],["8",{"_index":1427,"title":{"356":{"position":[[48,1]]}},"content":{"194":{"position":[[294,3]]},"220":{"position":[[386,1]]},"221":{"position":[[469,1]]},"412":{"position":[[49,2]]}},"keywords":{}}],["8.x",{"_index":2055,"title":{},"content":{"356":{"position":[[65,3]]}},"keywords":{}}],["9",{"_index":1077,"title":{},"content":{"166":{"position":[[175,3]]}},"keywords":{}}],["93e812345678"",{"_index":1245,"title":{},"content":{"174":{"position":[[698,19]]}},"keywords":{}}],["99999",{"_index":2303,"title":{},"content":{"476":{"position":[[454,7]]}},"keywords":{}}],["9a41",{"_index":1244,"title":{},"content":{"174":{"position":[[693,4]]}},"keywords":{}}],["_",{"_index":1495,"title":{},"content":{"212":{"position":[[366,3]]},"232":{"position":[[1649,3]]},"233":{"position":[[199,3]]},"244":{"position":[[267,3]]},"248":{"position":[[492,3]]},"252":{"position":[[669,3]]},"260":{"position":[[462,3]]},"266":{"position":[[675,3]]},"270":{"position":[[392,3]]},"274":{"position":[[559,3]]},"299":{"position":[[394,3]]}},"keywords":{}}],["__dirnam",{"_index":452,"title":{},"content":{"15":{"position":[[202,9],[352,9]]}},"keywords":{}}],["__filenam",{"_index":450,"title":{},"content":{"15":{"position":[[152,10]]}},"keywords":{}}],["__middlewar",{"_index":2191,"title":{},"content":{"398":{"position":[[1020,13]]}},"keywords":{}}],["_context",{"_index":1223,"title":{},"content":{"174":{"position":[[212,9]]},"178":{"position":[[359,9]]},"182":{"position":[[250,9]]},"186":{"position":[[530,9]]}},"keywords":{}}],["_event",{"_index":1222,"title":{},"content":{"174":{"position":[[203,8]]},"178":{"position":[[350,8]]},"182":{"position":[[232,8]]}},"keywords":{}}],["abil",{"_index":2164,"title":{},"content":{"395":{"position":[[88,7]]}},"keywords":{}}],["abort",{"_index":1108,"title":{},"content":{"167":{"position":[[184,5]]}},"keywords":{}}],["abortcontrol",{"_index":1125,"title":{},"content":{"167":{"position":[[748,16]]},"398":{"position":[[514,15]]},"476":{"position":[[130,15]]}},"keywords":{}}],["abortcontrolerremov",{"_index":2230,"title":{},"content":{"437":{"position":[[20,20]]}},"keywords":{}}],["abortcontroller.set",{"_index":1120,"title":{},"content":{"167":{"position":[[537,19]]}},"keywords":{}}],["abov",{"_index":1034,"title":{},"content":{"163":{"position":[[380,7]]},"174":{"position":[[396,5]]},"178":{"position":[[514,5]]},"182":{"position":[[439,5]]},"473":{"position":[[745,6]]}},"keywords":{}}],["accept",{"_index":1197,"title":{},"content":{"173":{"position":[[18,7],[482,7]]},"177":{"position":[[18,7],[376,7]]},"181":{"position":[[18,7],[297,7]]},"185":{"position":[[11,7]]},"239":{"position":[[313,7]]},"265":{"position":[[217,6],[533,7]]},"266":{"position":[[589,9]]},"277":{"position":[[61,7],[203,7]]},"281":{"position":[[144,6]]},"332":{"position":[[29,7]]},"472":{"position":[[115,7]]}},"keywords":{}}],["acceptevent.preferredcontenttyp",{"_index":1709,"title":{},"content":{"265":{"position":[[235,32]]}},"keywords":{}}],["access",{"_index":1030,"title":{},"content":{"163":{"position":[[168,6],[279,6]]},"232":{"position":[[45,6],[315,6],[405,6],[882,6],[972,6],[1069,6],[1168,6]]},"322":{"position":[[698,9]]},"359":{"position":[[968,6]]},"424":{"position":[[17,6]]},"475":{"position":[[828,6]]}},"keywords":{}}],["accesstoken",{"_index":1980,"title":{},"content":{"328":{"position":[[178,12],[757,12],[1059,15]]}},"keywords":{}}],["account",{"_index":1113,"title":{},"content":{"167":{"position":[[398,7]]}},"keywords":{}}],["action",{"_index":1486,"title":{},"content":{"208":{"position":[[376,7]]}},"keywords":{}}],["activ",{"_index":1144,"title":{},"content":{"167":{"position":[[1468,6]]},"322":{"position":[[441,6]]}},"keywords":{}}],["actual",{"_index":1398,"title":{},"content":{"188":{"position":[[536,6]]}},"keywords":{}}],["ad",{"_index":185,"title":{},"content":{"5":{"position":[[1061,5]]},"159":{"position":[[549,6]]},"165":{"position":[[23,6]]},"181":{"position":[[540,6]]},"281":{"position":[[319,6]]},"298":{"position":[[894,5]]},"315":{"position":[[42,5]]},"374":{"position":[[0,5]]},"375":{"position":[[0,5],[124,5]]},"391":{"position":[[39,5]]},"395":{"position":[[75,5]]},"398":{"position":[[912,5]]}},"keywords":{}}],["add",{"_index":74,"title":{},"content":{"2":{"position":[[545,3]]},"5":{"position":[[1149,3]]},"160":{"position":[[834,3]]},"178":{"position":[[611,3]]},"182":{"position":[[1188,3]]},"199":{"position":[[20,3]]},"204":{"position":[[20,3]]},"255":{"position":[[384,4]]},"264":{"position":[[415,3]]},"288":{"position":[[20,3]]},"295":{"position":[[20,3]]},"298":{"position":[[1651,3]]},"300":{"position":[[20,3]]},"305":{"position":[[20,3]]},"310":{"position":[[20,3]]},"320":{"position":[[20,3]]},"329":{"position":[[20,3]]},"344":{"position":[[20,3]]},"361":{"position":[[120,4]]},"382":{"position":[[10,4]]},"404":{"position":[[0,3]]},"406":{"position":[[0,3]]},"419":{"position":[[0,3]]},"450":{"position":[[48,3]]},"451":{"position":[[0,3]]},"466":{"position":[[1109,3]]}},"keywords":{}}],["addit",{"_index":120,"title":{},"content":{"4":{"position":[[367,10]]},"171":{"position":[[289,10]]},"183":{"position":[[505,10]]},"264":{"position":[[419,10]]},"359":{"position":[[307,10]]}},"keywords":{}}],["addition",{"_index":600,"title":{},"content":{"21":{"position":[[2582,13]]},"151":{"position":[[396,13]]},"174":{"position":[[2117,13]]},"178":{"position":[[1388,13]]},"385":{"position":[[4,12]]}},"keywords":{}}],["address",{"_index":1687,"title":{},"content":{"260":{"position":[[247,8]]}},"keywords":{}}],["adjust",{"_index":1527,"title":{},"content":{"220":{"position":[[369,8]]},"221":{"position":[[452,8]]}},"keywords":{}}],["adopt",{"_index":112,"title":{},"content":{"4":{"position":[[200,7]]},"164":{"position":[[68,8]]}},"keywords":{}}],["advanc",{"_index":1975,"title":{},"content":{"327":{"position":[[1277,8]]},"398":{"position":[[682,8]]}},"keywords":{}}],["advantag",{"_index":2217,"title":{},"content":{"426":{"position":[[25,9]]},"474":{"position":[[364,9]]}},"keywords":{}}],["after(async",{"_index":2272,"title":{},"content":{"473":{"position":[[587,12]]}},"keywords":{}}],["after)middleware1",{"_index":1040,"title":{},"content":{"163":{"position":[[527,18]]}},"keywords":{}}],["after)middleware2",{"_index":1039,"title":{},"content":{"163":{"position":[[508,18]]}},"keywords":{}}],["afterhandl",{"_index":523,"title":{},"content":{"21":{"position":[[682,12],[853,13]]},"22":{"position":[[542,12],[713,13]]}},"keywords":{}}],["aftermiddlewar",{"_index":520,"title":{},"content":{"21":{"position":[[605,15],[821,16]]},"22":{"position":[[465,15],[681,16]]}},"keywords":{}}],["ag",{"_index":1591,"title":{},"content":{"232":{"position":[[991,3]]},"260":{"position":[[238,4]]}},"keywords":{}}],["against",{"_index":1152,"title":{},"content":{"168":{"position":[[462,7]]},"179":{"position":[[105,7]]},"232":{"position":[[787,7]]},"281":{"position":[[1128,7]]}},"keywords":{}}],["aggreg",{"_index":1308,"title":{},"content":{"179":{"position":[[14,11]]}},"keywords":{}}],["airbnb/nod",{"_index":611,"title":{},"content":{"22":{"position":[[21,13]]}},"keywords":{}}],["ajv",{"_index":300,"title":{},"content":{"7":{"position":[[411,6],[429,6],[448,6],[481,6],[521,6],[560,6]]},"21":{"position":[[2117,3]]},"322":{"position":[[129,4],[134,3]]},"358":{"position":[[115,3]]},"359":{"position":[[57,3],[208,3],[468,3]]},"360":{"position":[[48,3],[66,3],[76,3],[89,3],[112,3],[126,3]]},"361":{"position":[[47,3]]},"363":{"position":[[155,4],[169,3],[192,3],[294,3],[510,3]]},"365":{"position":[[218,4],[236,4]]},"394":{"position":[[9,3],[127,3],[258,3],[328,3]]},"466":{"position":[[325,3],[980,4]]}},"keywords":{}}],["ajv/.runkit_examples.j",{"_index":299,"title":{},"content":{"7":{"position":[[384,26]]}},"keywords":{}}],["ajv/lib",{"_index":298,"title":{},"content":{"7":{"position":[[373,10]]}},"keywords":{}}],["ajvclass",{"_index":2082,"title":{},"content":{"360":{"position":[[244,8]]}},"keywords":{}}],["alexa",{"_index":622,"title":{"26":{"position":[[0,5]]}},"content":{"27":{"position":[[22,5]]}},"keywords":{}}],["alias",{"_index":2226,"title":{},"content":{"429":{"position":[[195,8]]}},"keywords":{}}],["align",{"_index":1080,"title":{},"content":{"166":{"position":[[252,9]]}},"keywords":{}}],["aliv",{"_index":17,"title":{},"content":{"0":{"position":[[257,5]]}},"keywords":{}}],["allerror",{"_index":2084,"title":{},"content":{"360":{"position":[[317,10]]}},"keywords":{}}],["alloc",{"_index":1642,"title":{},"content":{"251":{"position":[[652,9]]}},"keywords":{}}],["allow",{"_index":10,"title":{},"content":{"0":{"position":[[143,6]]},"2":{"position":[[119,6]]},"4":{"position":[[46,6],[287,6]]},"6":{"position":[[660,6]]},"12":{"position":[[350,5]]},"161":{"position":[[45,5]]},"167":{"position":[[234,5]]},"174":{"position":[[1642,6],[2335,6]]},"182":{"position":[[1174,6]]},"224":{"position":[[143,6]]},"228":{"position":[[35,6],[125,6],[230,6],[322,6],[428,6],[520,6],[627,6],[722,6]]},"232":{"position":[[60,5],[330,5],[420,5],[739,7],[1709,5]]},"233":{"position":[[259,5]]},"251":{"position":[[944,8]]},"265":{"position":[[167,6],[271,6],[390,5]]},"291":{"position":[[735,7]]},"354":{"position":[[241,6]]},"359":{"position":[[348,5]]},"361":{"position":[[70,6]]},"398":{"position":[[533,5],[627,5],[939,5]]},"406":{"position":[[33,5]]},"408":{"position":[[72,5]]},"415":{"position":[[6,5]]},"424":{"position":[[6,5]]},"433":{"position":[[6,5]]},"466":{"position":[[96,8],[386,5],[475,5]]},"473":{"position":[[822,5]]},"475":{"position":[[821,6]]},"476":{"position":[[177,5]]}},"keywords":{}}],["along",{"_index":1971,"title":{},"content":{"327":{"position":[[1209,5]]}},"keywords":{}}],["alpha",{"_index":1070,"title":{},"content":{"166":{"position":[[53,5],[214,6],[408,5]]}},"keywords":{}}],["alreadi",{"_index":839,"title":{},"content":{"148":{"position":[[564,7]]},"153":{"position":[[1070,7]]},"189":{"position":[[1371,7]]},"251":{"position":[[730,7]]},"347":{"position":[[831,7]]},"355":{"position":[[648,7]]},"398":{"position":[[346,7]]}},"keywords":{}}],["altern",{"_index":1117,"title":{},"content":{"167":{"position":[[495,13]]},"370":{"position":[[85,11]]}},"keywords":{}}],["although",{"_index":1132,"title":{},"content":{"167":{"position":[[1068,8]]}},"keywords":{}}],["alway",{"_index":2263,"title":{},"content":{"472":{"position":[[922,6]]}},"keywords":{}}],["amazon",{"_index":620,"title":{},"content":{"24":{"position":[[61,6]]},"30":{"position":[[22,6]]},"33":{"position":[[22,6]]},"42":{"position":[[22,6]]},"57":{"position":[[22,6]]},"67":{"position":[[18,6]]},"69":{"position":[[22,6]]},"76":{"position":[[22,6]]},"78":{"position":[[22,6]]},"81":{"position":[[22,6]]},"90":{"position":[[22,6]]},"93":{"position":[[18,6]]},"99":{"position":[[22,6]]},"106":{"position":[[22,6],[66,6]]},"109":{"position":[[18,6]]},"112":{"position":[[22,6]]},"115":{"position":[[22,6]]},"118":{"position":[[22,6]]},"121":{"position":[[22,6]]},"130":{"position":[[22,6]]},"133":{"position":[[22,6]]},"138":{"position":[[22,6]]},"141":{"position":[[27,6]]},"145":{"position":[[22,6]]},"170":{"position":[[374,6],[612,6]]},"179":{"position":[[429,6]]},"323":{"position":[[577,6]]},"324":{"position":[[1461,6]]}},"keywords":{}}],["amount",{"_index":172,"title":{},"content":{"5":{"position":[[826,6],[1573,7]]}},"keywords":{}}],["amp",{"_index":1514,"title":{},"content":{"219":{"position":[[429,5],[587,5]]},"359":{"position":[[1097,5]]},"363":{"position":[[43,5]]},"397":{"position":[[30,5]]}},"keywords":{}}],["amp;&",{"_index":867,"title":{},"content":{"151":{"position":[[850,10]]}},"keywords":{}}],["and",{"_index":2198,"title":{},"content":{"405":{"position":[[28,4]]}},"keywords":{}}],["and/or",{"_index":1969,"title":{},"content":{"327":{"position":[[1141,6]]}},"keywords":{}}],["annot",{"_index":1282,"title":{},"content":{"175":{"position":[[60,12]]},"178":{"position":[[618,10],[908,12]]}},"keywords":{}}],["anymor",{"_index":2057,"title":{},"content":{"356":{"position":[[156,7]]}},"keywords":{}}],["anyth",{"_index":289,"title":{},"content":{"7":{"position":[[207,8]]}},"keywords":{}}],["anyway",{"_index":233,"title":{},"content":{"6":{"position":[[159,7]]}},"keywords":{}}],["anywher",{"_index":1897,"title":{},"content":{"322":{"position":[[761,8]]}},"keywords":{}}],["apach",{"_index":739,"title":{},"content":{"96":{"position":[[31,6]]}},"keywords":{}}],["api",{"_index":142,"title":{"23":{"position":[[0,3]]},"29":{"position":[[0,3]]},"32":{"position":[[0,3]]},"41":{"position":[[0,3]]},"342":{"position":[[0,3]]}},"content":{"5":{"position":[[102,3]]},"24":{"position":[[68,3]]},"30":{"position":[[29,3],[63,4]]},"33":{"position":[[29,3],[58,4]]},"42":{"position":[[29,3],[58,4]]},"90":{"position":[[29,3],[58,4]]},"168":{"position":[[204,3]]},"174":{"position":[[563,3],[765,3]]},"178":{"position":[[1257,4]]},"197":{"position":[[562,3]]},"202":{"position":[[558,3]]},"286":{"position":[[289,3]]},"298":{"position":[[556,3]]},"303":{"position":[[541,3]]},"308":{"position":[[590,3]]},"318":{"position":[[401,3]]},"322":{"position":[[1373,3]]},"327":{"position":[[521,3]]},"347":{"position":[[382,3]]},"432":{"position":[[34,3]]},"474":{"position":[[486,5]]},"478":{"position":[[110,3]]}},"keywords":{}}],["api:manageconnectionsif",{"_index":2002,"title":{},"content":{"340":{"position":[[755,23]]}},"keywords":{}}],["apigatewaymanagementapi",{"_index":419,"title":{},"content":{"13":{"position":[[465,25]]},"15":{"position":[[672,25]]},"339":{"position":[[133,23]]},"340":{"position":[[60,23]]},"344":{"position":[[40,23]]}},"keywords":{}}],["apigatewaymanagementapi.awsclientopt",{"_index":2001,"title":{},"content":{"340":{"position":[[180,40]]}},"keywords":{}}],["apigatewaymanagementapicli",{"_index":2000,"title":{},"content":{"340":{"position":[[28,31],[270,29]]}},"keywords":{}}],["apigatewayproxyev",{"_index":1149,"title":{},"content":{"168":{"position":[[258,21],[359,22]]},"478":{"position":[[164,21]]}},"keywords":{}}],["apigatewayproxyresult",{"_index":1150,"title":{},"content":{"168":{"position":[[280,21],[479,23]]},"478":{"position":[[186,21]]}},"keywords":{}}],["apigatewayproxyresult>",{"_index":2308,"title":{},"content":{"478":{"position":[[296,25],[388,25],[564,25]]}},"keywords":{}}],["apisinput",{"_index":619,"title":{},"content":{"24":{"position":[[45,9]]}},"keywords":{}}],["apitoken",{"_index":1845,"title":{},"content":{"299":{"position":[[187,9]]}},"keywords":{}}],["apollo",{"_index":827,"title":{"148":{"position":[[0,6]]}},"content":{"148":{"position":[[0,6],[210,7],[587,6]]}},"keywords":{}}],["apollo/feder",{"_index":832,"title":{},"content":{"148":{"position":[[270,20]]}},"keywords":{}}],["apolloserv",{"_index":829,"title":{},"content":{"148":{"position":[[185,13],[417,14]]}},"keywords":{}}],["app",{"_index":1561,"title":{},"content":{"228":{"position":[[1006,4]]}},"keywords":{}}],["appconfig",{"_index":778,"title":{"195":{"position":[[0,9]]}},"content":{"104":{"position":[[322,10],[836,10]]},"196":{"position":[[131,9]]},"197":{"position":[[756,11]]},"198":{"position":[[39,9],[252,11]]},"199":{"position":[[40,9]]},"283":{"position":[[0,10]]},"323":{"position":[[566,10]]}},"keywords":{}}],["appconfig.awsclientopt",{"_index":1436,"title":{},"content":{"197":{"position":[[158,26]]},"303":{"position":[[144,26]]}},"keywords":{}}],["appconfig.dynamodb",{"_index":1794,"title":{},"content":{"283":{"position":[[42,19]]}},"keywords":{}}],["appconfig:getconfigur",{"_index":1455,"title":{},"content":{"197":{"position":[[1118,26]]}},"keywords":{}}],["appconfigcli",{"_index":1433,"title":{},"content":{"197":{"position":[[28,17],[46,15],[234,15]]}},"keywords":{}}],["appconfigmiddlewar",{"_index":773,"title":{},"content":{"104":{"position":[[81,19],[287,21]]}},"keywords":{}}],["appear",{"_index":1307,"title":{},"content":{"178":{"position":[[1345,6]]}},"keywords":{}}],["append",{"_index":1271,"title":{},"content":{"174":{"position":[[1656,6]]}},"keywords":{}}],["appli",{"_index":1517,"title":{},"content":{"219":{"position":[[514,6]]},"282":{"position":[[306,7]]},"298":{"position":[[650,5]]},"375":{"position":[[92,7]]},"399":{"position":[[82,7]]},"405":{"position":[[6,7]]}},"keywords":{}}],["applic",{"_index":262,"title":{"35":{"position":[[0,11]]}},"content":{"6":{"position":[[879,11]]},"36":{"position":[[25,11]]},"104":{"position":[[335,12]]},"170":{"position":[[129,13]]},"182":{"position":[[1260,11]]},"198":{"position":[[287,12]]},"251":{"position":[[848,12]]}},"keywords":{}}],["application/json",{"_index":683,"title":{},"content":{"34":{"position":[[1653,20],[2135,18]]},"37":{"position":[[1778,20],[2260,18]]},"43":{"position":[[1653,20],[2146,18]]},"91":{"position":[[1678,20],[2160,18]]},"146":{"position":[[1665,20],[2147,18]]},"229":{"position":[[644,19],[986,19]]},"248":{"position":[[347,18]]},"263":{"position":[[340,18]]},"266":{"position":[[539,18]]}},"keywords":{}}],["application/x",{"_index":1732,"title":{},"content":{"274":{"position":[[437,14]]}},"keywords":{}}],["application/xml",{"_index":1572,"title":{},"content":{"229":{"position":[[498,18],[946,19]]}},"keywords":{}}],["application/xml;q=0.9",{"_index":1716,"title":{},"content":{"266":{"position":[[599,23]]}},"keywords":{}}],["application/yaml",{"_index":1574,"title":{},"content":{"229":{"position":[[579,19],[966,19]]}},"keywords":{}}],["application\\/json",{"_index":693,"title":{},"content":{"34":{"position":[[2048,22]]},"37":{"position":[[2173,22]]},"43":{"position":[[2048,22]]},"91":{"position":[[2073,22]]},"146":{"position":[[2060,22]]},"263":{"position":[[190,22]]},"266":{"position":[[378,22]]}},"keywords":{}}],["application\\/xml",{"_index":1699,"title":{},"content":{"263":{"position":[[85,21]]},"266":{"position":[[273,21]]}},"keywords":{}}],["applymiddlewar",{"_index":2190,"title":{},"content":{"398":{"position":[[998,17]]}},"keywords":{}}],["approach",{"_index":44,"title":{},"content":{"2":{"position":[[110,8]]},"6":{"position":[[1049,8]]},"167":{"position":[[432,11]]},"251":{"position":[[560,8]]},"355":{"position":[[460,9]]}},"keywords":{}}],["appsync",{"_index":710,"title":{"38":{"position":[[0,7]]}},"content":{"39":{"position":[[22,7]]}},"keywords":{}}],["arbitari",{"_index":1272,"title":{},"content":{"174":{"position":[[1663,8]]}},"keywords":{}}],["arbitrari",{"_index":1540,"title":{},"content":{"224":{"position":[[198,9]]}},"keywords":{}}],["argument",{"_index":1617,"title":{},"content":{"243":{"position":[[101,9]]},"322":{"position":[[815,9]]},"398":{"position":[[594,8]]}},"keywords":{}}],["arn:aws:rd",{"_index":1808,"title":{},"content":{"286":{"position":[[882,11]]}},"keywords":{}}],["around",{"_index":1169,"title":{},"content":{"170":{"position":[[443,6]]},"395":{"position":[[173,7]]},"476":{"position":[[99,6]]}},"keywords":{}}],["array",{"_index":946,"title":{},"content":{"157":{"position":[[394,5]]},"207":{"position":[[331,5]]},"232":{"position":[[707,7],[730,5]]},"277":{"position":[[214,5]]},"347":{"position":[[52,5]]},"351":{"position":[[48,5]]},"360":{"position":[[308,8]]},"363":{"position":[[249,5],[344,5]]},"399":{"position":[[47,5]]}},"keywords":{}}],["array[str",{"_index":1506,"title":{},"content":{"219":{"position":[[210,15]]}},"keywords":{}}],["array[{method",{"_index":2010,"title":{},"content":{"347":{"position":[[7,15]]}},"keywords":{}}],["array[{routekey",{"_index":2022,"title":{},"content":{"351":{"position":[[7,17]]}},"keywords":{}}],["arraysadd",{"_index":2157,"title":{},"content":{"385":{"position":[[98,9]]}},"keywords":{}}],["ask",{"_index":1711,"title":{},"content":{"265":{"position":[[336,3]]}},"keywords":{}}],["assert",{"_index":670,"title":{},"content":{"34":{"position":[[1254,6],[1329,6]]},"43":{"position":[[1254,6],[1329,6]]},"91":{"position":[[1254,6],[1329,6]]},"102":{"position":[[352,6],[427,6]]},"146":{"position":[[1266,6],[1341,6]]}},"keywords":{}}],["assum",{"_index":139,"title":{},"content":{"5":{"position":[[71,6]]},"283":{"position":[[510,7]]},"299":{"position":[[419,8]]},"393":{"position":[[24,6]]}},"keywords":{}}],["assumerol",{"_index":1877,"title":{},"content":{"319":{"position":[[259,11]]}},"keywords":{}}],["async",{"_index":38,"title":{},"content":{"2":{"position":[[38,5]]},"5":{"position":[[638,5]]},"153":{"position":[[887,5],[1150,5]]},"168":{"position":[[322,5]]},"174":{"position":[[197,5]]},"178":{"position":[[344,5]]},"182":{"position":[[226,5]]},"186":{"position":[[379,5],[516,5]]},"189":{"position":[[1113,5],[1451,5]]},"369":{"position":[[218,5],[311,5],[353,5],[496,5],[735,5]]},"472":{"position":[[402,5],[500,5],[622,5],[1067,5]]},"474":{"position":[[381,5],[1205,5]]},"475":{"position":[[474,5],[535,5],[598,5]]},"478":{"position":[[416,5],[592,5]]}},"keywords":{}}],["async/await",{"_index":2126,"title":{},"content":{"367":{"position":[[57,11],[228,11]]}},"keywords":{}}],["asynchron",{"_index":1175,"title":{},"content":{"170":{"position":[[645,14]]},"179":{"position":[[232,14]]},"182":{"position":[[953,14]]},"323":{"position":[[135,14],[331,14],[700,12]]}},"keywords":{}}],["asyncmiddi",{"_index":1941,"title":{},"content":{"324":{"position":[[589,10]]}},"keywords":{}}],["attach",{"_index":119,"title":{},"content":{"4":{"position":[[360,6]]},"5":{"position":[[1751,6]]},"156":{"position":[[395,6]]},"157":{"position":[[427,6],[905,6]]},"161":{"position":[[211,8]]},"163":{"position":[[354,8],[657,8]]},"398":{"position":[[293,6]]}},"keywords":{}}],["attribut",{"_index":1705,"title":{},"content":{"264":{"position":[[237,9],[300,9],[430,10]]},"282":{"position":[[441,10]]}},"keywords":{}}],["august",{"_index":964,"title":{},"content":{"159":{"position":[[169,6]]}},"keywords":{}}],["auth",{"_index":1950,"title":{},"content":{"324":{"position":[[1099,5]]}},"keywords":{}}],["authent",{"_index":122,"title":{},"content":{"4":{"position":[[399,15]]}},"keywords":{}}],["author",{"_index":123,"title":{"23":{"position":[[12,10]]}},"content":{"4":{"position":[[415,14]]},"7":{"position":[[1518,7]]},"24":{"position":[[24,11],[87,10]]},"324":{"position":[[1120,13],[1375,13]]}},"keywords":{}}],["auto",{"_index":1281,"title":{},"content":{"175":{"position":[[14,4]]}},"keywords":{}}],["automat",{"_index":1172,"title":{},"content":{"170":{"position":[[497,13]]},"174":{"position":[[1217,13]]},"178":{"position":[[706,13],[850,13],[1012,13],[1106,13],[1286,13]]},"232":{"position":[[161,13]]},"281":{"position":[[540,13],[734,13],[872,13],[997,13],[1065,13],[1172,13]]},"327":{"position":[[572,13]]},"347":{"position":[[803,13]]}},"keywords":{}}],["autoproxyrespons",{"_index":1947,"title":{},"content":{"324":{"position":[[941,18]]}},"keywords":{}}],["availablelanguag",{"_index":678,"title":{},"content":{"34":{"position":[[1592,19]]},"37":{"position":[[1717,19]]},"43":{"position":[[1592,19]]},"91":{"position":[[1617,19]]},"146":{"position":[[1604,19]]},"229":{"position":[[879,19]]}},"keywords":{}}],["availablemediatyp",{"_index":682,"title":{},"content":{"34":{"position":[[1632,20]]},"37":{"position":[[1757,20]]},"43":{"position":[[1632,20]]},"91":{"position":[[1657,20]]},"146":{"position":[[1644,20]]},"229":{"position":[[925,20]]}},"keywords":{}}],["avenu",{"_index":1689,"title":{},"content":{"260":{"position":[[266,7]]}},"keywords":{}}],["avoid",{"_index":1408,"title":{},"content":{"189":{"position":[[659,5]]},"315":{"position":[[266,5]]},"318":{"position":[[1024,7]]}},"keywords":{}}],["aw",{"_index":7,"title":{"24":{"position":[[0,3]]},"27":{"position":[[0,3]]},"30":{"position":[[0,3]]},"33":{"position":[[0,3]]},"36":{"position":[[0,3]]},"39":{"position":[[0,3]]},"42":{"position":[[0,3]]},"45":{"position":[[0,3]]},"48":{"position":[[0,3]]},"51":{"position":[[0,3]]},"54":{"position":[[0,3]]},"57":{"position":[[0,3]]},"60":{"position":[[0,3]]},"63":{"position":[[0,3]]},"67":{"position":[[0,3]]},"69":{"position":[[0,3]]},"72":{"position":[[0,3]]},"76":{"position":[[0,3]]},"78":{"position":[[0,3]]},"81":{"position":[[0,3]]},"84":{"position":[[0,3]]},"87":{"position":[[0,3]]},"90":{"position":[[0,3]]},"93":{"position":[[0,3]]},"96":{"position":[[0,3]]},"99":{"position":[[0,3]]},"101":{"position":[[4,3]]},"106":{"position":[[0,3]]},"109":{"position":[[0,3]]},"112":{"position":[[0,3]]},"115":{"position":[[0,3]]},"118":{"position":[[0,3]]},"121":{"position":[[0,3]]},"124":{"position":[[0,3]]},"127":{"position":[[0,3]]},"130":{"position":[[0,3]]},"133":{"position":[[0,3]]},"138":{"position":[[0,3]]},"141":{"position":[[0,3]]},"145":{"position":[[0,3]]},"151":{"position":[[0,3]]},"169":{"position":[[15,3]]}},"content":{"0":{"position":[[86,3]]},"4":{"position":[[74,3]]},"5":{"position":[[605,3]]},"6":{"position":[[44,3],[1062,3],[1158,3]]},"7":{"position":[[234,4]]},"13":{"position":[[440,3],[448,5],[513,5],[557,5],[608,5],[669,5],[733,5],[770,5]]},"15":{"position":[[647,3],[655,5],[720,5],[764,5],[815,5],[876,5],[940,5],[977,5]]},"24":{"position":[[13,3]]},"27":{"position":[[6,3]]},"30":{"position":[[6,3]]},"33":{"position":[[6,3]]},"36":{"position":[[6,3]]},"39":{"position":[[6,3]]},"42":{"position":[[6,3]]},"45":{"position":[[6,3]]},"48":{"position":[[6,3],[22,3]]},"51":{"position":[[6,3],[22,3]]},"54":{"position":[[6,3],[22,3]]},"57":{"position":[[6,3]]},"60":{"position":[[6,3],[22,3]]},"69":{"position":[[6,3]]},"72":{"position":[[6,3],[22,3]]},"76":{"position":[[6,3]]},"78":{"position":[[6,3]]},"81":{"position":[[6,3]]},"84":{"position":[[6,3],[22,3]]},"87":{"position":[[6,3],[22,3]]},"90":{"position":[[6,3]]},"99":{"position":[[6,3]]},"106":{"position":[[6,3],[41,3]]},"112":{"position":[[6,3]]},"115":{"position":[[6,3]]},"118":{"position":[[6,3]]},"121":{"position":[[6,3]]},"124":{"position":[[6,3]]},"128":{"position":[[152,4]]},"130":{"position":[[6,3]]},"133":{"position":[[6,3]]},"138":{"position":[[6,3]]},"141":{"position":[[12,3]]},"145":{"position":[[6,3]]},"151":{"position":[[0,3]]},"159":{"position":[[39,3]]},"166":{"position":[[267,3],[358,3]]},"168":{"position":[[309,4]]},"170":{"position":[[450,3],[571,3]]},"172":{"position":[[31,4]]},"174":{"position":[[77,5],[1471,3]]},"175":{"position":[[300,3],[322,3]]},"176":{"position":[[31,4]]},"178":{"position":[[78,5],[148,5],[1034,3],[1427,3]]},"180":{"position":[[31,4]]},"182":{"position":[[82,5]]},"184":{"position":[[31,4],[66,4],[91,4]]},"186":{"position":[[113,5],[203,5]]},"189":{"position":[[835,5]]},"194":{"position":[[62,5]]},"196":{"position":[[115,4]]},"197":{"position":[[118,3],[142,4],[483,3]]},"199":{"position":[[11,4],[24,4]]},"201":{"position":[[114,4],[139,4]]},"202":{"position":[[116,3],[140,4],[479,3]]},"204":{"position":[[11,4],[24,4]]},"207":{"position":[[43,3],[429,3]]},"277":{"position":[[122,3]]},"280":{"position":[[83,3]]},"281":{"position":[[54,3]]},"283":{"position":[[293,3],[404,3],[446,3],[552,3]]},"285":{"position":[[116,4]]},"286":{"position":[[100,3],[124,4]]},"288":{"position":[[11,4],[24,4]]},"290":{"position":[[124,4]]},"291":{"position":[[209,3],[233,4],[423,3],[522,3]]},"295":{"position":[[11,4],[24,4]]},"297":{"position":[[121,4]]},"298":{"position":[[128,3],[152,4],[477,3]]},"300":{"position":[[11,4],[24,4]]},"302":{"position":[[108,4]]},"303":{"position":[[104,3],[128,4],[462,3]]},"305":{"position":[[11,4],[24,4]]},"307":{"position":[[123,4]]},"308":{"position":[[132,3],[156,4],[511,3]]},"310":{"position":[[11,4],[24,4]]},"312":{"position":[[157,4]]},"317":{"position":[[109,4]]},"318":{"position":[[106,3],[130,4],[322,3]]},"320":{"position":[[11,4],[24,4]]},"322":{"position":[[53,3],[508,3],[716,3],[1110,3],[1369,3]]},"323":{"position":[[0,3],[59,3],[167,3],[504,3],[541,3],[562,3]]},"324":{"position":[[699,3],[717,3]]},"326":{"position":[[109,4]]},"327":{"position":[[106,3],[131,4],[397,3],[442,3]]},"329":{"position":[[11,4],[24,4]]},"339":{"position":[[117,4]]},"340":{"position":[[140,3],[164,4],[533,3]]},"344":{"position":[[11,4],[24,4]]},"347":{"position":[[223,3]]},"351":{"position":[[102,3]]},"356":{"position":[[112,3]]},"395":{"position":[[59,3],[71,3]]},"404":{"position":[[28,3]]},"459":{"position":[[15,3]]},"460":{"position":[[15,3]]},"461":{"position":[[15,3]]},"462":{"position":[[15,3]]},"464":{"position":[[15,3]]},"465":{"position":[[15,3]]},"469":{"position":[[15,3]]},"478":{"position":[[215,4]]}},"keywords":{}}],["await",{"_index":91,"title":{},"content":{"2":{"position":[[860,5],[983,5],[1211,5]]},"21":{"position":[[1219,5]]},"22":{"position":[[1081,5]]},"103":{"position":[[786,5]]},"104":{"position":[[725,5]]},"186":{"position":[[570,5]]},"194":{"position":[[133,5],[316,5]]},"294":{"position":[[177,5]]},"328":{"position":[[1040,5]]},"369":{"position":[[537,5],[600,5],[759,5]]},"434":{"position":[[139,5]]},"472":{"position":[[689,5]]},"474":{"position":[[1365,5]]}},"keywords":{}}],["awar",{"_index":1319,"title":{},"content":{"179":{"position":[[526,5]]}},"keywords":{}}],["aws/what",{"_index":2219,"title":{},"content":{"426":{"position":[[67,9]]}},"keywords":{}}],["aws_nodejs_connection_reuse_enabled=1",{"_index":9,"title":{},"content":{"0":{"position":[[100,37]]}},"keywords":{}}],["awsclient",{"_index":1432,"title":{},"content":{"197":{"position":[[0,9]]},"202":{"position":[[0,9]]},"286":{"position":[[0,9]]},"298":{"position":[[0,9]]},"303":{"position":[[0,9]]},"308":{"position":[[0,9]]},"318":{"position":[[0,9]]},"327":{"position":[[0,9]]},"340":{"position":[[0,9]]},"391":{"position":[[25,9]]}},"keywords":{}}],["awsclientassumerol",{"_index":1442,"title":{},"content":{"197":{"position":[[691,19]]},"202":{"position":[[687,19]]},"286":{"position":[[418,19]]},"291":{"position":[[644,19]]},"298":{"position":[[1164,19]]},"303":{"position":[[670,19]]},"308":{"position":[[719,19]]},"318":{"position":[[530,19]]},"327":{"position":[[702,19]]},"340":{"position":[[655,19]]}},"keywords":{}}],["awsclientcaptur",{"_index":799,"title":{},"content":{"128":{"position":[[237,17]]}},"keywords":{}}],["awsclientopt",{"_index":1847,"title":{},"content":{"299":{"position":[[216,17]]},"327":{"position":[[1356,16]]},"343":{"position":[[207,17]]}},"keywords":{}}],["awsclientoptions.endpoint",{"_index":2003,"title":{},"content":{"340":{"position":[[779,25]]}},"keywords":{}}],["awscontext",{"_index":1758,"title":{},"content":{"278":{"position":[[653,11]]}},"keywords":{}}],["b8f0",{"_index":1483,"title":{},"content":{"208":{"position":[[277,4]]}},"keywords":{}}],["babel",{"_index":467,"title":{"17":{"position":[[0,6]]}},"content":{},"keywords":{}}],["babel.config.json",{"_index":473,"title":{},"content":{"17":{"position":[[121,18]]}},"keywords":{}}],["babel/cli",{"_index":468,"title":{},"content":{"17":{"position":[[9,10]]}},"keywords":{}}],["babel/cor",{"_index":469,"title":{},"content":{"17":{"position":[[20,11]]}},"keywords":{}}],["babel/preset",{"_index":470,"title":{},"content":{"17":{"position":[[32,13]]}},"keywords":{}}],["back",{"_index":1003,"title":{},"content":{"160":{"position":[[145,4]]},"444":{"position":[[48,4]]}},"keywords":{}}],["balanc",{"_index":699,"title":{"35":{"position":[[17,8]]}},"content":{"36":{"position":[[42,8]]},"219":{"position":[[564,7]]}},"keywords":{}}],["banner:j",{"_index":387,"title":{},"content":{"12":{"position":[[21,9]]}},"keywords":{}}],["banner:js="import",{"_index":396,"title":{},"content":{"12":{"position":[[188,22]]}},"keywords":{}}],["bar",{"_index":1226,"title":{},"content":{"174":{"position":[[292,4]]},"248":{"position":[[462,5],[528,5]]},"252":{"position":[[705,5]]},"472":{"position":[[1215,5]]}},"keywords":{}}],["bare",{"_index":928,"title":{},"content":{"156":{"position":[[166,4]]}},"keywords":{}}],["base",{"_index":186,"title":{},"content":{"5":{"position":[[1067,4]]},"153":{"position":[[689,5]]},"170":{"position":[[877,5]]},"178":{"position":[[730,5]]},"189":{"position":[[915,5]]},"282":{"position":[[452,5]]},"298":{"position":[[759,5]]},"322":{"position":[[1404,5]]},"324":{"position":[[1145,5]]},"354":{"position":[[389,5]]}},"keywords":{}}],["base64",{"_index":1645,"title":{},"content":{"251":{"position":[[773,8]]}},"keywords":{}}],["basepersistencelay",{"_index":1368,"title":{},"content":{"185":{"position":[[59,23]]}},"keywords":{}}],["bash",{"_index":2104,"title":{},"content":{"363":{"position":[[76,4]]}},"keywords":{}}],["batch",{"_index":790,"title":{"117":{"position":[[3,5]]},"311":{"position":[[12,5]]},"391":{"position":[[12,5]]},"426":{"position":[[12,5]]},"463":{"position":[[12,5]]}},"content":{"118":{"position":[[32,5]]},"139":{"position":[[151,5]]},"282":{"position":[[548,5]]},"312":{"position":[[94,5]]},"314":{"position":[[73,5]]},"315":{"position":[[128,5]]},"426":{"position":[[108,5]]}},"keywords":{}}],["batches.idempot",{"_index":1179,"title":{},"content":{"170":{"position":[[771,19]]}},"keywords":{}}],["batches.w",{"_index":1791,"title":{},"content":{"282":{"position":[[592,10]]}},"keywords":{}}],["baz",{"_index":1227,"title":{},"content":{"174":{"position":[[297,5]]}},"keywords":{}}],["be",{"_index":608,"title":{},"content":{"21":{"position":[[2834,5]]},"167":{"position":[[645,5]]},"315":{"position":[[183,5]]},"394":{"position":[[153,5]]}},"keywords":{}}],["becom",{"_index":1064,"title":{},"content":{"165":{"position":[[125,8]]},"166":{"position":[[113,7]]},"429":{"position":[[188,6]]}},"keywords":{}}],["befor",{"_index":883,"title":{},"content":{"152":{"position":[[165,6]]},"153":{"position":[[265,8],[538,6],[1277,7]]},"157":{"position":[[954,8]]},"161":{"position":[[188,6],[291,6],[391,7],[630,6]]},"163":{"position":[[29,6],[51,6],[73,6],[791,6]]},"166":{"position":[[87,6]]},"167":{"position":[[205,6],[295,6]]},"179":{"position":[[535,6]]},"188":{"position":[[654,6]]},"189":{"position":[[282,6],[1273,6],[1578,7]]},"211":{"position":[[96,6],[261,6]]},"299":{"position":[[286,6]]},"322":{"position":[[501,6]]},"347":{"position":[[741,6]]},"351":{"position":[[509,6]]},"363":{"position":[[22,6]]},"369":{"position":[[838,7]]},"398":{"position":[[728,6]]},"472":{"position":[[737,7]]},"473":{"position":[[210,8],[571,6],[786,7]]},"474":{"position":[[251,6],[1474,7]]},"475":{"position":[[96,7],[139,6],[259,7],[640,7]]},"478":{"position":[[336,7],[675,7]]}},"keywords":{}}],["before((async",{"_index":76,"title":{},"content":{"2":{"position":[[580,14]]}},"keywords":{}}],["before((request",{"_index":1985,"title":{},"content":{"328":{"position":[[374,17]]},"395":{"position":[[248,17]]},"450":{"position":[[94,17]]}},"keywords":{}}],["before(async",{"_index":85,"title":{},"content":{"2":{"position":[[743,13]]},"103":{"position":[[728,13]]},"104":{"position":[[667,13]]},"328":{"position":[[995,13]]},"434":{"position":[[92,13]]},"473":{"position":[[516,13]]}},"keywords":{}}],["before)handlermiddleware3",{"_index":1038,"title":{},"content":{"163":{"position":[[481,26]]}},"keywords":{}}],["before)middleware2",{"_index":1036,"title":{},"content":{"163":{"position":[[441,19]]}},"keywords":{}}],["before)middleware3",{"_index":1037,"title":{},"content":{"163":{"position":[[461,19]]}},"keywords":{}}],["before,aft",{"_index":2255,"title":{},"content":{"472":{"position":[[207,13]]}},"keywords":{}}],["before/aft",{"_index":1024,"title":{},"content":{"161":{"position":[[372,12],[568,12]]}},"keywords":{}}],["beforehandl",{"_index":521,"title":{},"content":{"21":{"position":[[634,13],[838,14]]},"22":{"position":[[494,13],[698,14]]}},"keywords":{}}],["beforemiddlewar",{"_index":519,"title":{},"content":{"21":{"position":[[574,16],[803,17]]},"22":{"position":[[434,16],[663,17]]}},"keywords":{}}],["beforeprefetch",{"_index":513,"title":{},"content":{"21":{"position":[[410,14],[773,15]]},"22":{"position":[[315,14],[633,15]]},"161":{"position":[[155,17]]}},"keywords":{}}],["beforerequest",{"_index":595,"title":{},"content":{"21":{"position":[[2509,13]]}},"keywords":{}}],["begin",{"_index":859,"title":{},"content":{"151":{"position":[[655,5]]}},"keywords":{}}],["behavior",{"_index":1373,"title":{},"content":{"185":{"position":[[216,8]]},"355":{"position":[[181,8],[286,8]]}},"keywords":{}}],["below",{"_index":2028,"title":{},"content":{"354":{"position":[[350,5]]},"398":{"position":[[208,5]]}},"keywords":{}}],["benefit",{"_index":742,"title":{"102":{"position":[[21,7]]}},"content":{},"keywords":{}}],["best",{"_index":1049,"title":{"187":{"position":[[0,4]]}},"content":{"164":{"position":[[119,4]]},"282":{"position":[[314,4]]},"318":{"position":[[1097,4]]},"478":{"position":[[849,4]]}},"keywords":{}}],["beta",{"_index":1072,"title":{},"content":{"166":{"position":[[81,5]]}},"keywords":{}}],["better",{"_index":134,"title":{},"content":{"5":{"position":[[8,6]]},"143":{"position":[[95,7]]},"147":{"position":[[87,7]]},"148":{"position":[[96,7]]},"149":{"position":[[103,7]]},"150":{"position":[[99,7]]},"151":{"position":[[120,7]]},"167":{"position":[[90,7]]},"174":{"position":[[1285,6]]},"190":{"position":[[92,7]]},"397":{"position":[[126,6]]}},"keywords":{}}],["between",{"_index":1207,"title":{},"content":{"173":{"position":[[371,7]]},"174":{"position":[[1902,7]]},"474":{"position":[[104,7]]}},"keywords":{}}],["big",{"_index":962,"title":{},"content":{"159":{"position":[[116,3]]},"251":{"position":[[592,3],[893,3]]}},"keywords":{}}],["bigger",{"_index":1889,"title":{},"content":{"322":{"position":[[318,6]]}},"keywords":{}}],["bin",{"_index":355,"title":{},"content":{"7":{"position":[[1428,4]]}},"keywords":{}}],["binary/latin1",{"_index":2205,"title":{},"content":{"412":{"position":[[28,13]]}},"keywords":{}}],["block",{"_index":2183,"title":{},"content":{"398":{"position":[[424,5]]}},"keywords":{}}],["bodi",{"_index":154,"title":{"245":{"position":[[10,4]]},"249":{"position":[[15,4]]},"271":{"position":[[15,4]]},"334":{"position":[[8,4]]},"378":{"position":[[10,4]]},"379":{"position":[[15,4]]},"383":{"position":[[15,4]]},"390":{"position":[[9,4]]},"411":{"position":[[10,4]]},"412":{"position":[[15,4]]},"417":{"position":[[15,4]]},"425":{"position":[[9,4]]},"431":{"position":[[8,4]]},"450":{"position":[[10,4]]},"451":{"position":[[15,4]]},"456":{"position":[[15,4]]},"468":{"position":[[8,4]]}},"content":{"5":{"position":[[336,4],[705,4],[987,5],[1226,5],[1845,4]]},"31":{"position":[[87,4]]},"34":{"position":[[633,4],[715,4],[1022,4],[2086,4]]},"37":{"position":[[684,4],[766,4],[1073,4],[2211,4]]},"43":{"position":[[633,4],[715,4],[1022,4],[2086,4]]},"91":{"position":[[633,4],[715,4],[1022,4],[2111,4]]},"146":{"position":[[645,4],[727,4],[1034,4],[2098,4]]},"148":{"position":[[545,4]]},"168":{"position":[[529,5]]},"192":{"position":[[247,5]]},"194":{"position":[[302,4],[393,4]]},"198":{"position":[[169,5]]},"203":{"position":[[167,5]]},"220":{"position":[[550,5]]},"221":{"position":[[633,5]]},"229":{"position":[[290,4],[517,4],[599,4],[664,4],[714,4],[757,4]]},"232":{"position":[[1771,5]]},"244":{"position":[[329,5]]},"246":{"position":[[92,4]]},"248":{"position":[[146,4],[434,5],[496,5]]},"250":{"position":[[97,4]]},"252":{"position":[[156,4],[436,5],[673,5]]},"260":{"position":[[178,5]]},"263":{"position":[[122,4],[228,4],[307,4],[321,4]]},"264":{"position":[[232,4],[295,4]]},"266":{"position":[[154,4],[201,4],[310,4],[416,4],[495,4],[509,4]]},"270":{"position":[[187,4],[396,5]]},"272":{"position":[[97,4]]},"274":{"position":[[156,4],[252,4],[476,5],[563,5]]},"278":{"position":[[187,5]]},"281":{"position":[[527,4],[585,4],[607,4],[721,4],[824,4],[859,4],[924,4],[1159,4]]},"287":{"position":[[170,5]]},"293":{"position":[[257,5]]},"294":{"position":[[170,4],[210,4],[224,5]]},"304":{"position":[[183,5]]},"309":{"position":[[184,5]]},"319":{"position":[[157,5]]},"324":{"position":[[1546,4],[1573,4]]},"335":{"position":[[78,4]]},"336":{"position":[[111,5]]},"337":{"position":[[87,4]]},"348":{"position":[[270,5],[426,5]]},"354":{"position":[[858,4],[961,4],[1161,4]]},"362":{"position":[[267,8],[327,5],[564,5],[1007,8],[1045,5],[1384,4],[1482,4],[1700,9],[1724,5],[1956,4]]},"405":{"position":[[65,4]]},"431":{"position":[[12,4]]},"444":{"position":[[8,4]]}},"keywords":{}}],["body.disablecontenttypeerror",{"_index":1626,"title":{},"content":{"247":{"position":[[102,28]]}},"keywords":{}}],["bodyhttp",{"_index":1783,"title":{},"content":{"282":{"position":[[93,8]]}},"keywords":{}}],["bodytyp",{"_index":801,"title":{},"content":{"128":{"position":[[309,9]]},"291":{"position":[[0,8]]},"293":{"position":[[333,9]]},"294":{"position":[[288,9]]}},"keywords":{}}],["boilerpl",{"_index":2279,"title":{},"content":{"474":{"position":[[513,11]]}},"keywords":{}}],["bonjour",{"_index":1568,"title":{},"content":{"229":{"position":[[397,8]]}},"keywords":{}}],["bool",{"_index":1578,"title":{},"content":{"232":{"position":[[12,6],[124,6]]},"239":{"position":[[10,6]]}},"keywords":{}}],["boolean",{"_index":1214,"title":{},"content":{"173":{"position":[[645,9],[740,9]]},"177":{"position":[[194,10],[270,10],[546,9]]},"181":{"position":[[473,9],[588,9]]},"197":{"position":[[601,9],[1000,9]]},"202":{"position":[[597,9],[995,9]]},"224":{"position":[[12,9]]},"247":{"position":[[131,9]]},"251":{"position":[[316,9]]},"273":{"position":[[24,9]]},"277":{"position":[[89,7]]},"286":{"position":[[328,9],[728,9]]},"291":{"position":[[554,9]]},"298":{"position":[[639,7],[698,8],[1074,9],[1479,9]]},"303":{"position":[[580,9],[972,9]]},"308":{"position":[[629,9],[1022,9]]},"318":{"position":[[440,9],[833,9]]},"327":{"position":[[612,9],[1005,9]]},"340":{"position":[[565,9]]},"359":{"position":[[576,9]]}},"keywords":{}}],["boolean|object",{"_index":1833,"title":{},"content":{"298":{"position":[[605,16]]}},"keywords":{}}],["both",{"_index":1031,"title":{},"content":{"163":{"position":[[289,4]]},"167":{"position":[[918,4]]},"174":{"position":[[1697,4]]},"323":{"position":[[679,4]]}},"keywords":{}}],["boundari",{"_index":1651,"title":{},"content":{"252":{"position":[[384,9]]}},"keywords":{}}],["bowser/bundled.j",{"_index":322,"title":{},"content":{"7":{"position":[[830,20]]}},"keywords":{}}],["bowser/src",{"_index":321,"title":{},"content":{"7":{"position":[[816,13]]}},"keywords":{}}],["br",{"_index":1499,"title":{},"content":{"219":{"position":[[0,2],[308,3],[324,2],[384,2]]},"220":{"position":[[291,3],[461,6]]},"221":{"position":[[374,3],[544,6]]}},"keywords":{}}],["break",{"_index":1567,"title":{},"content":{"229":{"position":[[367,5],[416,5],[568,5],[633,5],[699,5]]},"398":{"position":[[55,9],[1034,9]]},"399":{"position":[[186,9],[263,9]]},"409":{"position":[[86,9]]},"410":{"position":[[71,9]]},"412":{"position":[[52,9]]},"414":{"position":[[72,9]]},"416":{"position":[[129,9]]},"420":{"position":[[59,9]]},"423":{"position":[[59,9]]},"426":{"position":[[193,9]]},"427":{"position":[[27,9]]},"429":{"position":[[82,9]]},"438":{"position":[[102,8]]},"444":{"position":[[96,8]]},"450":{"position":[[24,8]]},"456":{"position":[[41,8]]},"459":{"position":[[26,8]]},"460":{"position":[[26,8]]},"461":{"position":[[26,8]]},"462":{"position":[[26,8]]},"464":{"position":[[26,8]]},"465":{"position":[[26,8]]},"466":{"position":[[188,8],[226,8],[301,8],[432,8]]},"469":{"position":[[26,8]]}},"keywords":{}}],["brief",{"_index":959,"title":{"159":{"position":[[2,5]]}},"content":{},"keywords":{}}],["bring",{"_index":1192,"title":{},"content":{"171":{"position":[[378,6]]}},"keywords":{}}],["broken",{"_index":1775,"title":{},"content":{"281":{"position":[[652,6]]}},"keywords":{}}],["brotli",{"_index":2197,"title":{},"content":{"405":{"position":[[14,7]]}},"keywords":{}}],["brotlioptionsgzip",{"_index":1501,"title":{},"content":{"219":{"position":[[52,17]]}},"keywords":{}}],["brought",{"_index":2233,"title":{},"content":{"444":{"position":[[40,7]]}},"keywords":{}}],["browser",{"_index":1508,"title":{},"content":{"219":{"position":[[282,8]]},"255":{"position":[[28,7]]}},"keywords":{}}],["bucket",{"_index":780,"title":{},"content":{"104":{"position":[[462,7]]},"304":{"position":[[294,7]]}},"keywords":{}}],["bucketmiddytohof",{"_index":1938,"title":{},"content":{"324":{"position":[[427,17]]}},"keywords":{}}],["buffer",{"_index":1407,"title":{},"content":{"189":{"position":[[648,6]]},"251":{"position":[[473,6]]}},"keywords":{}}],["build",{"_index":140,"title":{},"content":{"5":{"position":[[86,8]]},"7":{"position":[[1344,6]]},"21":{"position":[[2373,5]]},"153":{"position":[[605,8]]},"170":{"position":[[95,5]]},"363":{"position":[[6,5]]},"370":{"position":[[111,8]]}},"keywords":{}}],["buildfederatedschema",{"_index":831,"title":{},"content":{"148":{"position":[[242,20],[440,22]]}},"keywords":{}}],["built",{"_index":37,"title":{},"content":{"2":{"position":[[26,5]]},"168":{"position":[[67,5]]},"386":{"position":[[85,5]]}},"keywords":{}}],["bundl",{"_index":366,"title":{"8":{"position":[[0,8]]},"199":{"position":[[0,9]]},"204":{"position":[[0,9]]},"288":{"position":[[0,9]]},"295":{"position":[[0,9]]},"300":{"position":[[0,9]]},"305":{"position":[[0,9]]},"310":{"position":[[0,9]]},"320":{"position":[[0,9]]},"329":{"position":[[0,9]]},"344":{"position":[[0,9]]}},"content":{"12":{"position":[[168,6]]},"363":{"position":[[180,6],[451,6]]},"466":{"position":[[52,6]]}},"keywords":{}}],["bundler",{"_index":277,"title":{"11":{"position":[[0,9]]}},"content":{"7":{"position":[[27,7]]}},"keywords":{}}],["busboy",{"_index":1633,"title":{},"content":{"251":{"position":[[0,6],[102,6],[526,7]]}},"keywords":{}}],["busi",{"_index":117,"title":{},"content":{"4":{"position":[[321,8],[515,8]]},"5":{"position":[[1072,8]]},"6":{"position":[[143,8],[266,8],[423,8],[766,8],[944,8]]},"156":{"position":[[171,8]]},"157":{"position":[[222,8],[801,8]]}},"keywords":{}}],["buy",{"_index":1487,"title":{},"content":{"208":{"position":[[384,5]]}},"keywords":{}}],["c",{"_index":1720,"title":{},"content":{"266":{"position":[[649,2]]}},"keywords":{}}],["ca",{"_index":680,"title":{},"content":{"34":{"position":[[1617,4],[1626,5]]},"37":{"position":[[1742,4],[1751,5]]},"43":{"position":[[1617,4],[1626,5]]},"91":{"position":[[1642,4],[1651,5]]},"146":{"position":[[1629,4],[1638,5]]},"151":{"position":[[644,2],[743,3]]},"287":{"position":[[298,3]]}},"keywords":{}}],["cach",{"_index":356,"title":{"369":{"position":[[0,6]]}},"content":{"7":{"position":[[1433,6]]},"153":{"position":[[623,7],[680,5],[1056,5],[1215,5]]},"167":{"position":[[782,5],[958,6]]},"189":{"position":[[906,5],[1357,5],[1516,5]]},"197":{"position":[[768,5],[922,6],[938,5],[962,6],[972,5]]},"202":{"position":[[763,5],[917,6],[933,5],[957,6],[967,5]]},"232":{"position":[[1265,5]]},"286":{"position":[[496,5],[650,6],[666,5],[690,6],[700,5]]},"298":{"position":[[752,6],[1247,5],[1401,6],[1417,5],[1441,6],[1451,5]]},"303":{"position":[[740,5],[894,6],[910,5],[934,6],[944,5]]},"308":{"position":[[790,5],[944,6],[960,5],[984,6],[994,5]]},"318":{"position":[[601,5],[755,6],[771,5],[795,6],[805,5]]},"327":{"position":[[773,5],[927,6],[943,5],[967,6],[977,5]]},"474":{"position":[[193,5]]}},"keywords":{}}],["cacheexpiri",{"_index":1126,"title":{},"content":{"167":{"position":[[792,11],[972,12]]},"298":{"position":[[819,11]]},"328":{"position":[[902,12]]},"474":{"position":[[719,12]]}},"keywords":{}}],["cachekey",{"_index":907,"title":{},"content":{"153":{"position":[[848,8],[911,8]]},"189":{"position":[[1074,8],[1137,8]]},"328":{"position":[[702,9],[931,9]]},"369":{"position":[[526,8],[695,8]]},"474":{"position":[[699,9]]}},"keywords":{}}],["cachemiddlewar",{"_index":905,"title":{},"content":{"153":{"position":[[808,15],[1421,17]]},"189":{"position":[[1034,15],[1872,17]]}},"keywords":{}}],["cachemiddlewareaft",{"_index":913,"title":{},"content":{"153":{"position":[[1127,20],[1315,20]]},"189":{"position":[[1428,20],[1616,20]]},"369":{"position":[[712,20],[876,20]]}},"keywords":{}}],["cachemiddlewarebefor",{"_index":908,"title":{},"content":{"153":{"position":[[863,21],[1285,22]]},"189":{"position":[[1089,21],[1586,22]]},"369":{"position":[[472,21],[846,22]]}},"keywords":{}}],["calcul",{"_index":901,"title":{},"content":{"153":{"position":[[665,10],[1188,10]]},"189":{"position":[[891,10],[1489,10]]}},"keywords":{}}],["calculatecacheid",{"_index":903,"title":{},"content":{"153":{"position":[[722,16],[1439,17]]},"189":{"position":[[948,16],[1890,17]]},"369":{"position":[[200,17]]}},"keywords":{}}],["call",{"_index":948,"title":{},"content":{"157":{"position":[[467,5]]},"160":{"position":[[206,6]]},"167":{"position":[[1528,6]]},"170":{"position":[[579,6]]},"178":{"position":[[1435,5]]},"183":{"position":[[164,6],[538,6],[656,6]]},"189":{"position":[[372,4],[546,4]]},"313":{"position":[[54,6]]},"408":{"position":[[113,6]]}},"keywords":{}}],["callback(err",{"_index":2125,"title":{},"content":{"367":{"position":[[11,13]]}},"keywords":{}}],["callbackwaitsforemptyeventloop",{"_index":1488,"title":{},"content":{"211":{"position":[[35,30]]},"212":{"position":[[289,30]]},"280":{"position":[[138,30]]}},"keywords":{}}],["can't",{"_index":2310,"title":{},"content":{"478":{"position":[[782,5]]}},"keywords":{}}],["cancel",{"_index":2305,"title":{},"content":{"476":{"position":[[582,6]]}},"keywords":{}}],["canon",{"_index":1611,"title":{},"content":{"239":{"position":[[0,9],[62,9],[367,9]]},"281":{"position":[[501,9]]},"355":{"position":[[93,9]]}},"keywords":{}}],["canonical:fals",{"_index":2204,"title":{},"content":{"410":{"position":[[55,15]]}},"keywords":{}}],["canprefetch",{"_index":2280,"title":{},"content":{"474":{"position":[[554,12]]}},"keywords":{}}],["canprefetch(opt",{"_index":2288,"title":{},"content":{"474":{"position":[[1118,22]]}},"keywords":{}}],["capabl",{"_index":899,"title":{},"content":{"153":{"position":[[590,10]]},"324":{"position":[[370,12]]}},"keywords":{}}],["captur",{"_index":1164,"title":{},"content":{"170":{"position":[[291,7],[511,7],[697,9]]},"171":{"position":[[14,9]]},"174":{"position":[[1231,8]]},"175":{"position":[[19,9]]},"177":{"position":[[292,7],[579,7]]},"178":{"position":[[864,8],[1120,8],[1415,7]]},"181":{"position":[[621,7]]}},"keywords":{}}],["captureawsv3cli",{"_index":795,"title":{},"content":{"128":{"position":[[106,20],[255,19]]},"197":{"position":[[459,18]]},"202":{"position":[[455,18]]},"291":{"position":[[399,18]]},"298":{"position":[[453,18]]},"303":{"position":[[438,18]]},"308":{"position":[[487,18]]},"318":{"position":[[298,18]]},"327":{"position":[[418,18]]},"340":{"position":[[509,18]]}},"keywords":{}}],["capturecoldstartmetr",{"_index":1401,"title":{},"content":{"188":{"position":[[878,23]]},"189":{"position":[[1833,23]]}},"keywords":{}}],["capturehttpsglob",{"_index":796,"title":{},"content":{"128":{"position":[[127,19],[289,19]]},"291":{"position":[[498,18]]}},"keywords":{}}],["capturelambdahandl",{"_index":1298,"title":{},"content":{"178":{"position":[[50,20]]}},"keywords":{}}],["capturerespons",{"_index":1297,"title":{},"content":{"177":{"position":[[530,15]]}},"keywords":{}}],["care",{"_index":1176,"title":{},"content":{"170":{"position":[[689,4]]}},"keywords":{}}],["cart",{"_index":1234,"title":{},"content":{"174":{"position":[[558,4],[760,4]]}},"keywords":{}}],["case",{"_index":283,"title":{},"content":{"7":{"position":[[112,4]]},"21":{"position":[[2082,4],[2344,4]]},"153":{"position":[[503,5]]},"157":{"position":[[1008,4]]},"167":{"position":[[901,5]]},"174":{"position":[[1953,5]]},"189":{"position":[[146,5]]},"229":{"position":[[330,4],[373,4],[493,4],[574,4],[639,4]]},"355":{"position":[[154,8]]},"473":{"position":[[134,6],[247,5]]},"475":{"position":[[244,4],[937,4]]}},"keywords":{}}],["case.error",{"_index":2018,"title":{},"content":{"347":{"position":[[473,11]]}},"keywords":{}}],["cases.timeoutearlyinmilli",{"_index":2186,"title":{},"content":{"398":{"position":[[695,27]]}},"keywords":{}}],["cast",{"_index":1960,"title":{},"content":{"324":{"position":[[1511,4]]},"438":{"position":[[58,7]]}},"keywords":{}}],["catch",{"_index":1387,"title":{},"content":{"186":{"position":[[684,5]]},"243":{"position":[[269,5]]},"324":{"position":[[145,7]]},"375":{"position":[[144,5]]}},"keywords":{}}],["caught",{"_index":1870,"title":{},"content":{"315":{"position":[[235,6]]},"476":{"position":[[74,6]]}},"keywords":{}}],["caus",{"_index":1134,"title":{},"content":{"167":{"position":[[1110,5],[1366,6],[1491,5]]},"183":{"position":[[499,5]]},"359":{"position":[[1127,5]]},"397":{"position":[[114,5]]},"399":{"position":[[31,5]]}},"keywords":{}}],["caution",{"_index":440,"title":{},"content":{"14":{"position":[[53,7]]},"143":{"position":[[13,7]]},"147":{"position":[[5,7]]},"148":{"position":[[14,7]]},"149":{"position":[[21,7]]},"150":{"position":[[17,7]]},"151":{"position":[[38,7]]},"167":{"position":[[8,7]]},"190":{"position":[[10,7]]}},"keywords":{}}],["cb",{"_index":1995,"title":{},"content":{"333":{"position":[[179,3]]}},"keywords":{}}],["central",{"_index":1811,"title":{},"content":{"287":{"position":[[302,7]]}},"keywords":{}}],["cert",{"_index":865,"title":{},"content":{"151":{"position":[[775,5],[833,5]]}},"keywords":{}}],["cert.subject.cn.endswith('.rds.amazonaws.com",{"_index":868,"title":{},"content":{"151":{"position":[[861,47]]}},"keywords":{}}],["certainli",{"_index":2311,"title":{},"content":{"478":{"position":[[788,9],[949,9]]}},"keywords":{}}],["certif",{"_index":854,"title":{},"content":{"151":{"position":[[442,11],[661,11]]},"255":{"position":[[73,11]]}},"keywords":{}}],["chain",{"_index":1389,"title":{},"content":{"188":{"position":[[69,8],[226,6]]}},"keywords":{}}],["champ",{"_index":1691,"title":{},"content":{"260":{"position":[[278,6]]}},"keywords":{}}],["chanc",{"_index":1007,"title":{},"content":{"160":{"position":[[536,6]]}},"keywords":{}}],["chang",{"_index":66,"title":{"397":{"position":[[8,8]]},"436":{"position":[[8,8]]}},"content":{"2":{"position":[[428,8]]},"163":{"position":[[735,6]]},"166":{"position":[[744,7]]},"251":{"position":[[269,6]]},"294":{"position":[[203,6]]},"355":{"position":[[199,7]]},"371":{"position":[[3,6]]},"373":{"position":[[3,6]]},"376":{"position":[[3,6]]},"377":{"position":[[3,6]]},"378":{"position":[[3,6]]},"379":{"position":[[3,6]]},"380":{"position":[[3,6]]},"381":{"position":[[3,6]]},"384":{"position":[[3,6]]},"387":{"position":[[3,6]]},"390":{"position":[[3,6]]},"394":{"position":[[96,6]]},"398":{"position":[[65,7],[113,6],[143,6],[1044,7]]},"399":{"position":[[273,7]]},"401":{"position":[[3,6]]},"402":{"position":[[3,6]]},"403":{"position":[[3,6]]},"409":{"position":[[96,7]]},"410":{"position":[[81,7]]},"411":{"position":[[3,6]]},"412":{"position":[[0,6],[62,7]]},"413":{"position":[[3,6]]},"416":{"position":[[139,7]]},"417":{"position":[[3,6]]},"418":{"position":[[3,6]]},"420":{"position":[[69,7]]},"422":{"position":[[3,6]]},"423":{"position":[[69,7]]},"426":{"position":[[203,7]]},"427":{"position":[[37,7]]},"428":{"position":[[3,6]]},"429":{"position":[[0,6]]},"430":{"position":[[3,6]]},"438":{"position":[[111,6]]},"440":{"position":[[3,6]]},"441":{"position":[[3,6]]},"442":{"position":[[3,6]]},"443":{"position":[[3,6]]},"444":{"position":[[105,6]]},"445":{"position":[[3,6]]},"446":{"position":[[3,6]]},"447":{"position":[[3,6]]},"448":{"position":[[3,6]]},"449":{"position":[[3,6]]},"450":{"position":[[33,6]]},"452":{"position":[[3,6]]},"453":{"position":[[3,6]]},"454":{"position":[[3,6]]},"455":{"position":[[3,6]]},"456":{"position":[[50,6]]},"457":{"position":[[3,6]]},"458":{"position":[[3,6]]},"459":{"position":[[35,6]]},"460":{"position":[[35,6]]},"461":{"position":[[35,6]]},"462":{"position":[[35,6]]},"463":{"position":[[3,6]]},"464":{"position":[[35,6]]},"465":{"position":[[35,6]]},"467":{"position":[[3,6]]},"468":{"position":[[3,6]]},"469":{"position":[[35,6]]},"470":{"position":[[3,6]]}},"keywords":{}}],["change]add",{"_index":2222,"title":{},"content":{"429":{"position":[[92,10]]}},"keywords":{}}],["change]getcach",{"_index":2195,"title":{},"content":{"399":{"position":[[196,15]]}},"keywords":{}}],["change]onerror",{"_index":2207,"title":{},"content":{"414":{"position":[[82,14]]}},"keywords":{}}],["changead",{"_index":2247,"title":{},"content":{"466":{"position":[[310,11],[441,11]]}},"keywords":{}}],["changedeprec",{"_index":2243,"title":{},"content":{"466":{"position":[[197,16]]}},"keywords":{}}],["changemust",{"_index":2245,"title":{},"content":{"466":{"position":[[235,10]]}},"keywords":{}}],["charset",{"_index":1546,"title":{},"content":{"228":{"position":[[65,8],[153,8]]},"281":{"position":[[208,9]]},"412":{"position":[[15,7]]},"451":{"position":[[22,7]]}},"keywords":{}}],["charset.disablecontenttypeerror",{"_index":1638,"title":{},"content":{"251":{"position":[[284,31]]}},"keywords":{}}],["check",{"_index":293,"title":{},"content":{"7":{"position":[[281,5]]},"157":{"position":[[1026,5]]},"168":{"position":[[454,7]]},"332":{"position":[[190,5]]},"354":{"position":[[359,5]]},"355":{"position":[[519,5]]},"370":{"position":[[51,5]]},"477":{"position":[[14,5]]}},"keywords":{}}],["checkout",{"_index":810,"title":{},"content":{"136":{"position":[[107,8]]},"251":{"position":[[136,8]]}},"keywords":{}}],["checkserverident",{"_index":863,"title":{},"content":{"151":{"position":[[747,20]]}},"keywords":{}}],["child",{"_index":1755,"title":{},"content":{"278":{"position":[[566,5]]}},"keywords":{}}],["child.info(request.ev",{"_index":1757,"title":{},"content":{"278":{"position":[[604,24]]}},"keywords":{}}],["chosen",{"_index":1079,"title":{},"content":{"166":{"position":[[241,6]]}},"keywords":{}}],["chunk",{"_index":1428,"title":{},"content":{"194":{"position":[[329,5]]}},"keywords":{}}],["chunk?.payloadchunk?.payload",{"_index":1430,"title":{},"content":{"194":{"position":[[360,30]]}},"keywords":{}}],["ci/cd",{"_index":296,"title":{},"content":{"7":{"position":[[315,5]]},"167":{"position":[[1153,5]]}},"keywords":{}}],["ciao",{"_index":1565,"title":{},"content":{"229":{"position":[[354,5]]}},"keywords":{}}],["circuit",{"_index":2131,"title":{},"content":{"367":{"position":[[329,7]]},"398":{"position":[[399,7]]},"408":{"position":[[40,7]]}},"keywords":{}}],["citi",{"_index":1693,"title":{},"content":{"260":{"position":[[295,5]]}},"keywords":{}}],["cj",{"_index":415,"title":{},"content":{"13":{"position":[[405,4]]}},"keywords":{}}],["claim",{"_index":2312,"title":{},"content":{"478":{"position":[[798,5]]}},"keywords":{}}],["class",{"_index":1196,"title":{},"content":{"173":{"position":[[0,5]]},"177":{"position":[[0,5]]},"181":{"position":[[0,5]]},"185":{"position":[[83,5]]},"197":{"position":[[62,5],[250,5]]},"202":{"position":[[60,5],[246,5]]},"286":{"position":[[44,5],[208,5]]},"291":{"position":[[153,5],[318,5]]},"298":{"position":[[72,5],[262,5]]},"303":{"position":[[48,5],[229,5]]},"308":{"position":[[76,5],[278,5]]},"318":{"position":[[50,5],[217,5]]},"327":{"position":[[50,5],[218,5]]},"340":{"position":[[84,5],[300,5]]}},"keywords":{}}],["class.opt",{"_index":1212,"title":{},"content":{"173":{"position":[[567,12]]},"177":{"position":[[461,12]]},"181":{"position":[[384,12]]}},"keywords":{}}],["clean",{"_index":267,"title":{"189":{"position":[[0,8]]}},"content":{"6":{"position":[[977,6]]},"153":{"position":[[465,6]]},"161":{"position":[[78,8]]},"167":{"position":[[289,5]]},"189":{"position":[[259,5],[749,5],[1239,5]]},"476":{"position":[[191,5]]}},"keywords":{}}],["cleanupmiddlewar",{"_index":1412,"title":{},"content":{"189":{"position":[[809,18],[1290,20]]}},"keywords":{}}],["clear",{"_index":1217,"title":{},"content":{"173":{"position":[[773,5]]}},"keywords":{}}],["clearmetr",{"_index":1406,"title":{},"content":{"189":{"position":[[555,12]]}},"keywords":{}}],["cli",{"_index":443,"title":{},"content":{"15":{"position":[[17,3]]}},"keywords":{}}],["clickjackinghidepoweredbi",{"_index":1661,"title":{},"content":{"255":{"position":[[136,25]]}},"keywords":{}}],["client",{"_index":1286,"title":{},"content":{"175":{"position":[[148,7]]},"178":{"position":[[254,6]]},"255":{"position":[[298,7]]},"322":{"position":[[57,7]]}},"keywords":{}}],["clientid",{"_index":779,"title":{},"content":{"104":{"position":[[355,9]]},"198":{"position":[[307,9]]}},"keywords":{}}],["close",{"_index":1396,"title":{},"content":{"188":{"position":[[516,7]]},"189":{"position":[[381,5],[426,5]]}},"keywords":{}}],["cloud",{"_index":724,"title":{"62":{"position":[[0,5]]}},"content":{},"keywords":{}}],["cloudform",{"_index":715,"title":{"47":{"position":[[0,14]]}},"content":{"48":{"position":[[26,14]]}},"keywords":{}}],["cloudfront",{"_index":712,"title":{"44":{"position":[[0,10]]}},"content":{"45":{"position":[[22,10]]}},"keywords":{}}],["cloudtrail",{"_index":716,"title":{"50":{"position":[[0,10]]}},"content":{"51":{"position":[[26,10]]}},"keywords":{}}],["cloudwatch",{"_index":726,"title":{"205":{"position":[[0,10]]},"401":{"position":[[0,10]]},"440":{"position":[[0,10]]}},"content":{"63":{"position":[[18,10]]},"78":{"position":[[41,11]]},"170":{"position":[[381,11],[619,10],[743,10]]},"179":{"position":[[59,10],[254,10],[436,11]]},"182":{"position":[[464,10],[942,10],[975,10]]},"207":{"position":[[74,10]]},"280":{"position":[[0,10]]},"323":{"position":[[350,10]]}},"keywords":{}}],["cloudwatchmetr",{"_index":1474,"title":{},"content":{"208":{"position":[[43,17],[314,19]]}},"keywords":{}}],["cloudwatchmetricsmiddlewar",{"_index":743,"title":{},"content":{"102":{"position":[[39,27]]}},"keywords":{}}],["cmd",{"_index":2060,"title":{},"content":{"358":{"position":[[119,3]]},"363":{"position":[[160,4]]}},"keywords":{}}],["co/middi",{"_index":1943,"title":{},"content":{"324":{"position":[[690,8],[757,8]]}},"keywords":{}}],["code",{"_index":105,"title":{"59":{"position":[[0,4]]}},"content":{"4":{"position":[[85,4]]},"5":{"position":[[0,4]]},"6":{"position":[[391,4],[438,4],[472,4],[781,5],[959,4]]},"21":{"position":[[2744,4]]},"151":{"position":[[511,4]]},"152":{"position":[[233,4]]},"159":{"position":[[196,4]]},"163":{"position":[[113,4],[260,4]]},"164":{"position":[[104,4]]},"167":{"position":[[840,5]]},"174":{"position":[[402,4]]},"178":{"position":[[520,4]]},"182":{"position":[[445,4]]},"243":{"position":[[363,5]]},"322":{"position":[[838,5]]},"355":{"position":[[736,5]]},"477":{"position":[[24,4]]}},"keywords":{}}],["codecommit",{"_index":723,"title":{},"content":{"60":{"position":[[26,10]]}},"keywords":{}}],["codepipelin",{"_index":717,"title":{"53":{"position":[[0,12]]}},"content":{"54":{"position":[[26,12]]}},"keywords":{}}],["coerc",{"_index":2106,"title":{},"content":{"363":{"position":[[236,6],[331,6]]}},"keywords":{}}],["coercetyp",{"_index":2083,"title":{},"content":{"360":{"position":[[295,12]]}},"keywords":{}}],["cognito",{"_index":721,"title":{"56":{"position":[[0,7]]}},"content":{"57":{"position":[[29,7]]},"324":{"position":[[1355,7]]}},"keywords":{}}],["cognitomiddi",{"_index":1959,"title":{},"content":{"324":{"position":[[1468,12]]}},"keywords":{}}],["cold",{"_index":512,"title":{"364":{"position":[[17,4]]},"365":{"position":[[17,4]]}},"content":{"21":{"position":[[393,4],[2036,4]]},"170":{"position":[[335,4],[707,4]]},"171":{"position":[[60,4]]},"174":{"position":[[1409,4]]},"175":{"position":[[29,4]]},"178":{"position":[[877,4]]},"181":{"position":[[633,4]]},"197":{"position":[[631,4]]},"202":{"position":[[627,4]]},"286":{"position":[[358,4]]},"291":{"position":[[584,4]]},"298":{"position":[[1104,4]]},"303":{"position":[[610,4]]},"308":{"position":[[659,4]]},"318":{"position":[[470,4]]},"327":{"position":[[642,4]]},"340":{"position":[[595,4]]},"359":{"position":[[1167,4]]}},"keywords":{}}],["cold_start",{"_index":1265,"title":{},"content":{"174":{"position":[[1350,10]]}},"keywords":{}}],["collect",{"_index":1158,"title":{},"content":{"170":{"position":[[16,10]]},"322":{"position":[[26,10]]},"324":{"position":[[903,10]]}},"keywords":{}}],["combin",{"_index":1776,"title":{},"content":{"281":{"position":[[675,11]]}},"keywords":{}}],["come",{"_index":982,"title":{},"content":{"159":{"position":[[404,6]]},"478":{"position":[[857,4]]}},"keywords":{}}],["comment",{"_index":843,"title":{},"content":{"149":{"position":[[156,7]]}},"keywords":{}}],["comments=extern",{"_index":401,"title":{},"content":{"12":{"position":[[307,17]]}},"keywords":{}}],["commit",{"_index":722,"title":{"59":{"position":[[5,6]]}},"content":{"159":{"position":[[586,6]]}},"keywords":{}}],["commit2017",{"_index":970,"title":{},"content":{"159":{"position":[[275,10]]}},"keywords":{}}],["common",{"_index":22,"title":{},"content":{"1":{"position":[[41,6]]},"4":{"position":[[378,6]]},"5":{"position":[[524,6],[2013,6]]},"6":{"position":[[232,6],[695,6]]},"7":{"position":[[1421,6]]},"179":{"position":[[113,6]]}},"keywords":{}}],["commonj",{"_index":150,"title":{},"content":{"5":{"position":[[245,8]]},"13":{"position":[[59,8],[187,8],[217,9],[283,11]]}},"keywords":{}}],["commun",{"_index":2058,"title":{},"content":{"356":{"position":[[179,10]]}},"keywords":{}}],["compat",{"_index":1160,"title":{},"content":{"170":{"position":[[207,10],[358,10]]},"171":{"position":[[435,10]]},"174":{"position":[[2513,10]]},"361":{"position":[[51,10]]},"421":{"position":[[47,10]]},"425":{"position":[[47,10]]}},"keywords":{}}],["compil",{"_index":367,"title":{"9":{"position":[[0,10]]}},"content":{"21":{"position":[[2137,8],[2332,8]]},"359":{"position":[[48,8],[199,8],[459,8]]},"466":{"position":[[417,7]]}},"keywords":{}}],["complet",{"_index":1306,"title":{},"content":{"178":{"position":[[1069,9]]},"426":{"position":[[0,8]]}},"keywords":{}}],["complex",{"_index":280,"title":{},"content":{"7":{"position":[[71,7]]},"324":{"position":[[331,7]]}},"keywords":{}}],["compli",{"_index":587,"title":{},"content":{"21":{"position":[[2293,8]]}},"keywords":{}}],["compliment",{"_index":2276,"title":{},"content":{"474":{"position":[[161,10]]}},"keywords":{}}],["comprehens",{"_index":1931,"title":{},"content":{"324":{"position":[[207,14]]}},"keywords":{}}],["compress",{"_index":1513,"title":{},"content":{"219":{"position":[[338,12],[497,11],[575,11]]},"282":{"position":[[73,10]]},"405":{"position":[[41,11]]}},"keywords":{}}],["concept",{"_index":111,"title":{},"content":{"4":{"position":[[191,8]]}},"keywords":{}}],["concern",{"_index":238,"title":{},"content":{"6":{"position":[[249,8],[712,8]]}},"keywords":{}}],["concurrencyon",{"_index":2166,"title":{},"content":{"395":{"position":[[115,13]]}},"keywords":{}}],["condition",{"_index":1128,"title":{},"content":{"167":{"position":[[865,13]]}},"keywords":{}}],["conduct",{"_index":885,"title":{},"content":{"152":{"position":[[241,8]]}},"keywords":{}}],["config",{"_index":53,"title":{"71":{"position":[[0,6]]},"104":{"position":[[10,8]]}},"content":{"2":{"position":[[258,6]]},"13":{"position":[[95,6]]},"72":{"position":[[26,6]]},"198":{"position":[[277,7]]},"203":{"position":[[274,7]]},"304":{"position":[[284,7]]}},"keywords":{}}],["configur",{"_index":263,"title":{"263":{"position":[[0,14]]},"472":{"position":[[0,12]]}},"content":{"6":{"position":[[896,13]]},"104":{"position":[[372,14]]},"141":{"position":[[0,11]]},"174":{"position":[[2144,9]]},"185":{"position":[[170,13]]},"198":{"position":[[324,14]]},"207":{"position":[[407,13]]},"263":{"position":[[18,10]]},"265":{"position":[[364,13]]},"283":{"position":[[22,14],[68,14],[175,14]]},"322":{"position":[[330,10]]},"472":{"position":[[0,12],[54,13],[125,13]]}},"keywords":{}}],["conflict",{"_index":2163,"title":{},"content":{"394":{"position":[[313,9]]}},"keywords":{}}],["connect",{"_index":0,"title":{"0":{"position":[[0,10]]},"66":{"position":[[0,7]]}},"content":{"0":{"position":[[0,10],[72,10],[173,10],[235,11]]},"31":{"position":[[434,11]]},"67":{"position":[[25,7]]},"136":{"position":[[75,7]]},"151":{"position":[[477,11],[1004,12]]},"283":{"position":[[127,10],[384,10],[532,10]]},"322":{"position":[[1225,10]]},"324":{"position":[[19,10],[1199,10]]},"347":{"position":[[683,9]]},"351":{"position":[[130,9],[451,9]]},"352":{"position":[[305,11],[561,11]]},"386":{"position":[[49,10]]}},"keywords":{}}],["connecthandl",{"_index":630,"title":{},"content":{"31":{"position":[[221,14],[455,14]]},"352":{"position":[[190,14],[582,14]]}},"keywords":{}}],["connectid",{"_index":2005,"title":{},"content":{"340":{"position":[[905,10]]}},"keywords":{}}],["connectionid",{"_index":2009,"title":{},"content":{"343":{"position":[[139,13]]}},"keywords":{}}],["connectionopt",{"_index":860,"title":{},"content":{"151":{"position":[[683,17]]}},"keywords":{}}],["connector",{"_index":1953,"title":{},"content":{"324":{"position":[[1180,10]]}},"keywords":{}}],["consid",{"_index":821,"title":{},"content":{"143":{"position":[[110,8]]},"147":{"position":[[102,8]]},"148":{"position":[[111,8]]},"149":{"position":[[118,8]]},"150":{"position":[[114,8]]},"151":{"position":[[135,8],[305,10]]},"167":{"position":[[105,8]]},"183":{"position":[[337,10]]},"190":{"position":[[107,8]]},"251":{"position":[[932,8]]},"355":{"position":[[432,10]]}},"keywords":{}}],["consist",{"_index":2046,"title":{},"content":{"355":{"position":[[303,10]]}},"keywords":{}}],["consol",{"_index":1888,"title":{},"content":{"322":{"position":[[179,7],[238,7],[283,7]]}},"keywords":{}}],["console.error",{"_index":1497,"title":{},"content":{"215":{"position":[[37,14]]},"243":{"position":[[20,14]]},"313":{"position":[[107,13]]}},"keywords":{}}],["console.log",{"_index":496,"title":{},"content":{"21":{"position":[[28,12]]},"22":{"position":[[72,11]]},"277":{"position":[[25,13]]}},"keywords":{}}],["console.log('exit",{"_index":2169,"title":{},"content":{"395":{"position":[[333,20]]}},"keywords":{}}],["console.log(`hello",{"_index":1607,"title":{},"content":{"236":{"position":[[142,18]]}},"keywords":{}}],["console.log(context.config",{"_index":1855,"title":{},"content":{"304":{"position":[[106,27]]}},"keywords":{}}],["console@keboola/middi",{"_index":1932,"title":{},"content":{"324":{"position":[[229,21]]}},"keywords":{}}],["const",{"_index":52,"title":{},"content":{"2":{"position":[[252,5],[499,5]]},"5":{"position":[[203,7],[616,5],[758,5],[882,5],[1179,5],[1776,5]]},"13":{"position":[[227,5]]},"15":{"position":[[146,5],[196,5]]},"21":{"position":[[1,5],[57,5],[96,5],[149,5],[166,5],[231,5],[404,5],[451,5],[568,5],[599,5],[628,5],[676,5],[722,5],[889,5]]},"22":{"position":[[45,5],[86,5],[127,5],[171,5],[188,5],[253,5],[309,5],[356,5],[428,5],[459,5],[488,5],[536,5],[582,5],[749,5]]},"25":{"position":[[39,5]]},"28":{"position":[[39,5]]},"31":{"position":[[405,5],[588,5]]},"34":{"position":[[1360,5]]},"37":{"position":[[1343,5],[1485,5]]},"40":{"position":[[39,5]]},"43":{"position":[[1360,5]]},"46":{"position":[[39,5]]},"49":{"position":[[39,5]]},"52":{"position":[[39,5]]},"55":{"position":[[103,5]]},"58":{"position":[[39,5]]},"61":{"position":[[39,5]]},"64":{"position":[[103,5]]},"68":{"position":[[39,5]]},"70":{"position":[[39,5]]},"73":{"position":[[103,5]]},"77":{"position":[[39,5]]},"79":{"position":[[39,5]]},"82":{"position":[[103,5]]},"85":{"position":[[39,5]]},"88":{"position":[[39,5]]},"91":{"position":[[1360,5]]},"94":{"position":[[103,5]]},"97":{"position":[[103,5]]},"100":{"position":[[103,5]]},"102":{"position":[[451,5]]},"103":{"position":[[273,5]]},"104":{"position":[[257,5]]},"107":{"position":[[39,5]]},"110":{"position":[[103,5]]},"113":{"position":[[103,5]]},"116":{"position":[[103,5]]},"119":{"position":[[103,5]]},"122":{"position":[[103,5]]},"125":{"position":[[39,5]]},"128":{"position":[[179,5]]},"131":{"position":[[39,5]]},"134":{"position":[[103,5]]},"139":{"position":[[173,5]]},"142":{"position":[[39,5]]},"146":{"position":[[1372,5]]},"148":{"position":[[397,5],[601,5]]},"151":{"position":[[638,5],[789,5]]},"153":{"position":[[716,5],[769,5],[802,5],[857,5],[1121,5],[1356,5]]},"157":{"position":[[167,5],[249,5],[680,5],[746,5],[829,5]]},"174":{"position":[[110,5],[175,5],[319,5]]},"178":{"position":[[183,5],[248,5],[322,5],[436,5]]},"182":{"position":[[116,5],[204,5],[370,5]]},"186":{"position":[[250,5],[345,5],[493,5],[554,5]]},"188":{"position":[[716,5]]},"189":{"position":[[942,5],[995,5],[1028,5],[1083,5],[1422,5],[1657,5]]},"192":{"position":[[95,5]]},"193":{"position":[[95,5]]},"194":{"position":[[87,5],[121,5],[257,5],[322,6]]},"198":{"position":[[73,5],[120,5]]},"203":{"position":[[71,5],[118,5]]},"208":{"position":[[0,5],[37,5],[100,5]]},"212":{"position":[[113,5]]},"216":{"position":[[78,5]]},"220":{"position":[[209,5]]},"221":{"position":[[265,5]]},"225":{"position":[[86,5],[133,5],[163,6],[202,5]]},"229":{"position":[[230,5]]},"232":{"position":[[1460,5]]},"233":{"position":[[68,5]]},"236":{"position":[[95,5]]},"240":{"position":[[97,5]]},"244":{"position":[[89,5]]},"248":{"position":[[159,5],[304,5]]},"252":{"position":[[169,5],[319,5]]},"256":{"position":[[95,5]]},"260":{"position":[[95,5],[142,5],[369,5]]},"266":{"position":[[101,5],[148,5],[562,5]]},"270":{"position":[[104,5],[301,5]]},"274":{"position":[[169,5],[394,5]]},"278":{"position":[[91,5],[138,5],[406,5],[428,5],[560,5]]},"287":{"position":[[74,5],[121,5]]},"293":{"position":[[113,5],[160,5],[196,5]]},"294":{"position":[[113,5]]},"299":{"position":[[84,5]]},"304":{"position":[[59,5],[134,5]]},"309":{"position":[[88,5],[135,5]]},"314":{"position":[[88,5],[135,5],[312,5]]},"319":{"position":[[61,5],[108,5]]},"328":{"position":[[61,5],[556,5],[1027,5]]},"333":{"position":[[0,5],[37,5],[77,5],[138,5],[203,5]]},"337":{"position":[[161,5]]},"342":{"position":[[83,5]]},"343":{"position":[[83,5]]},"348":{"position":[[134,5],[289,5],[445,5],[587,5]]},"352":{"position":[[184,5],[320,5],[469,5]]},"362":{"position":[[164,5],[224,5],[548,5],[880,5],[940,5],[1597,5],[1657,5]]},"363":{"position":[[786,5]]},"364":{"position":[[241,5],[296,5],[358,5]]},"365":{"position":[[317,5]]},"369":{"position":[[89,5],[162,5],[181,5],[405,5],[466,5],[520,5],[583,5],[706,5]]},"434":{"position":[[124,5]]},"466":{"position":[[734,5],[1002,5]]},"472":{"position":[[270,5],[290,5],[330,5],[371,5],[426,5],[470,5],[524,5],[590,5],[1045,5],[1129,5]]},"473":{"position":[[454,5]]},"474":{"position":[[614,5],[758,5],[803,5],[844,5],[869,5],[918,6],[1174,5],[1229,5],[1352,5]]},"475":{"position":[[333,5],[361,5],[404,5],[445,5],[507,5],[568,5]]},"476":{"position":[[494,5],[614,5]]},"478":{"position":[[228,5],[330,5],[507,5]]}},"keywords":{}}],["constant",{"_index":1520,"title":{},"content":{"220":{"position":[[173,9]]},"221":{"position":[[173,9]]}},"keywords":{}}],["constants.brotli_mode_text",{"_index":1526,"title":{},"content":{"220":{"position":[[338,27]]},"221":{"position":[[421,27]]}},"keywords":{}}],["constants.brotli_param_mod",{"_index":1525,"title":{},"content":{"220":{"position":[[307,30]]},"221":{"position":[[390,30]]}},"keywords":{}}],["constants.brotli_param_qu",{"_index":1530,"title":{},"content":{"220":{"position":[[393,33]]},"221":{"position":[[476,33]]}},"keywords":{}}],["constructor",{"_index":579,"title":{},"content":{"21":{"position":[[2121,11]]},"173":{"position":[[6,11]]},"177":{"position":[[6,11]]},"181":{"position":[[6,11]]},"197":{"position":[[68,11]]},"202":{"position":[[66,11]]},"286":{"position":[[50,11]]},"291":{"position":[[159,11]]},"298":{"position":[[78,11]]},"303":{"position":[[54,11]]},"308":{"position":[[82,11]]},"318":{"position":[[56,11]]},"327":{"position":[[56,11]]},"340":{"position":[[90,11]]},"360":{"position":[[253,12]]}},"keywords":{}}],["constructor.awsclientassumerol",{"_index":1438,"title":{},"content":{"197":{"position":[[256,31]]},"202":{"position":[[252,31]]},"298":{"position":[[268,31]]},"303":{"position":[[235,31]]},"308":{"position":[[284,31]]},"327":{"position":[[224,31]]},"340":{"position":[[306,31]]}},"keywords":{}}],["constructor.awsclientcaptur",{"_index":1818,"title":{},"content":{"291":{"position":[[324,28]]},"318":{"position":[[223,28]]}},"keywords":{}}],["constructor.fetchdata",{"_index":1805,"title":{},"content":{"286":{"position":[[214,21]]}},"keywords":{}}],["consum",{"_index":1906,"title":{},"content":{"322":{"position":[[1170,7]]}},"keywords":{}}],["contain",{"_index":1268,"title":{},"content":{"174":{"position":[[1458,8]]},"340":{"position":[[897,7]]},"474":{"position":[[34,8]]},"475":{"position":[[57,7]]}},"keywords":{}}],["content",{"_index":462,"title":{"217":{"position":[[5,7]]},"226":{"position":[[5,7]]},"265":{"position":[[0,7]]},"373":{"position":[[5,7]]},"405":{"position":[[5,7]]},"406":{"position":[[5,7]]},"444":{"position":[[5,7]]},"445":{"position":[[5,7]]}},"content":{"15":{"position":[[521,7],[587,7],[627,7]]},"34":{"position":[[215,7],[291,7]]},"37":{"position":[[266,7],[342,7]]},"43":{"position":[[215,7],[291,7]]},"91":{"position":[[215,7],[291,7]]},"146":{"position":[[215,7],[291,7]]},"170":{"position":[[894,8]]},"192":{"position":[[217,8]]},"218":{"position":[[87,7]]},"220":{"position":[[80,7],[146,7]]},"221":{"position":[[80,7],[146,7]]},"227":{"position":[[87,7]]},"229":{"position":[[80,7]]},"239":{"position":[[230,7]]},"247":{"position":[[176,7]]},"248":{"position":[[331,8],[417,7]]},"251":{"position":[[361,7]]},"252":{"position":[[346,8]]},"264":{"position":[[41,7]]},"265":{"position":[[87,7]]},"273":{"position":[[69,7]]},"274":{"position":[[421,8]]},"281":{"position":[[116,7],[188,7],[774,7]]},"282":{"position":[[5,7],[33,7]]},"354":{"position":[[634,7]]},"361":{"position":[[193,8]]}},"keywords":{}}],["contenttyp",{"_index":1853,"title":{},"content":{"303":{"position":[[1132,12]]}},"keywords":{}}],["context",{"_index":35,"title":{"2":{"position":[[9,7]]}},"content":{"2":{"position":[[9,7],[906,7],[1038,7],[1254,7],[1307,8]]},"5":{"position":[[652,8]]},"6":{"position":[[518,9]]},"25":{"position":[[79,8]]},"28":{"position":[[80,8]]},"34":{"position":[[2308,8]]},"40":{"position":[[79,8]]},"43":{"position":[[2319,8]]},"46":{"position":[[150,8]]},"49":{"position":[[80,8]]},"52":{"position":[[80,8]]},"55":{"position":[[178,8]]},"58":{"position":[[80,8]]},"61":{"position":[[80,8]]},"64":{"position":[[178,8]]},"68":{"position":[[80,8]]},"70":{"position":[[79,8]]},"73":{"position":[[178,8]]},"77":{"position":[[80,8]]},"79":{"position":[[79,8]]},"82":{"position":[[178,8]]},"85":{"position":[[80,8]]},"88":{"position":[[80,8]]},"91":{"position":[[2333,8]]},"94":{"position":[[178,8]]},"97":{"position":[[178,8]]},"100":{"position":[[178,8]]},"102":{"position":[[684,8]]},"103":{"position":[[845,8]]},"104":{"position":[[784,8]]},"107":{"position":[[80,8]]},"110":{"position":[[178,8]]},"113":{"position":[[217,8]]},"116":{"position":[[208,8]]},"119":{"position":[[178,8]]},"122":{"position":[[178,8]]},"125":{"position":[[80,8]]},"128":{"position":[[350,8]]},"131":{"position":[[80,8]]},"134":{"position":[[178,8]]},"139":{"position":[[279,8]]},"142":{"position":[[80,8]]},"146":{"position":[[2320,8]]},"153":{"position":[[1386,8]]},"157":{"position":[[197,8],[776,8]]},"164":{"position":[[145,7]]},"170":{"position":[[326,8]]},"171":{"position":[[51,8]]},"174":{"position":[[273,9],[1307,7]]},"189":{"position":[[1687,8]]},"192":{"position":[[163,8]]},"193":{"position":[[163,8]]},"198":{"position":[[103,8]]},"203":{"position":[[101,8]]},"208":{"position":[[130,8]]},"212":{"position":[[143,8],[273,7],[357,8]]},"216":{"position":[[108,8]]},"220":{"position":[[507,8]]},"221":{"position":[[590,8]]},"225":{"position":[[116,8]]},"229":{"position":[[260,8]]},"232":{"position":[[1490,8]]},"233":{"position":[[98,8]]},"236":{"position":[[125,8]]},"240":{"position":[[167,8]]},"244":{"position":[[119,8]]},"248":{"position":[[189,8]]},"252":{"position":[[199,8]]},"256":{"position":[[125,8]]},"260":{"position":[[125,8]]},"266":{"position":[[131,8]]},"270":{"position":[[134,8]]},"274":{"position":[[199,8]]},"277":{"position":[[133,7]]},"278":{"position":[[121,8],[458,8]]},"287":{"position":[[104,8]]},"293":{"position":[[143,8]]},"294":{"position":[[149,8]]},"299":{"position":[[114,8],[385,8]]},"304":{"position":[[89,8]]},"309":{"position":[[118,8]]},"314":{"position":[[118,8]]},"319":{"position":[[91,8]]},"322":{"position":[[748,7],[804,7]]},"328":{"position":[[91,8],[586,8]]},"333":{"position":[[170,8]]},"342":{"position":[[113,8]]},"343":{"position":[[113,8]]},"347":{"position":[[346,8]]},"348":{"position":[[227,8],[383,8]]},"351":{"position":[[211,8]]},"352":{"position":[[281,8],[420,8]]},"362":{"position":[[194,8],[910,8],[1627,8]]},"363":{"position":[[885,8]]},"364":{"position":[[487,8]]},"365":{"position":[[446,8]]},"397":{"position":[[133,7]]},"472":{"position":[[441,7],[1081,8]]},"473":{"position":[[484,8]]},"475":{"position":[[809,7]]},"476":{"position":[[353,7],[524,8]]}},"keywords":{}}],["context"",{"_index":1252,"title":{},"content":{"174":{"position":[[892,14]]}},"keywords":{}}],["context.config",{"_index":783,"title":{},"content":{"104":{"position":[[816,15]]}},"keywords":{}}],["context.getremainingtimeinmilli",{"_index":1123,"title":{},"content":{"167":{"position":[[676,32]]}},"keywords":{}}],["context.metr",{"_index":1762,"title":{},"content":{"280":{"position":[[38,15]]}},"keywords":{}}],["context.metrics.putmetric('processinglat",{"_index":1476,"title":{},"content":{"208":{"position":[[147,46]]}},"keywords":{}}],["context.metrics.setproperti",{"_index":1478,"title":{},"content":{"208":{"position":[[215,28]]}},"keywords":{}}],["context.s3object",{"_index":1827,"title":{},"content":{"293":{"position":[[179,16]]},"294":{"position":[[183,16]]}},"keywords":{}}],["context.secret",{"_index":771,"title":{},"content":{"103":{"position":[[877,15]]}},"keywords":{}}],["contextmetr",{"_index":1921,"title":{},"content":{"323":{"position":[[292,15]]}},"keywords":{}}],["contextschema",{"_index":2223,"title":{},"content":{"429":{"position":[[128,14]]}},"keywords":{}}],["contribut",{"_index":822,"title":{"152":{"position":[[0,12]]}},"content":{"143":{"position":[[119,12]]},"147":{"position":[[111,12]]},"148":{"position":[[120,12]]},"149":{"position":[[127,12]]},"150":{"position":[[123,12]]},"151":{"position":[[144,12]]},"152":{"position":[[0,12],[80,10],[172,12]]},"167":{"position":[[114,12]]},"190":{"position":[[116,12]]},"478":{"position":[[1023,13]]}},"keywords":{}}],["control",{"_index":1001,"title":{},"content":{"160":{"position":[[94,7]]},"232":{"position":[[52,7],[322,7],[412,7],[525,7],[889,7],[979,7],[1076,7],[1175,7],[1271,7],[1701,7]]},"233":{"position":[[251,7]]},"255":{"position":[[19,8]]},"391":{"position":[[65,8]]},"473":{"position":[[340,7]]}},"keywords":{}}],["convent",{"_index":2262,"title":{},"content":{"472":{"position":[[878,10]]}},"keywords":{}}],["convert",{"_index":214,"title":{},"content":{"5":{"position":[[1871,8]]},"224":{"position":[[92,10]]},"281":{"position":[[594,8],[811,8],[1234,8]]},"324":{"position":[[445,7],[1054,8]]}},"keywords":{}}],["cor",{"_index":650,"title":{"230":{"position":[[5,4]]},"374":{"position":[[5,5]]},"407":{"position":[[5,5]]},"446":{"position":[[5,5]]}},"content":{"34":{"position":[[353,5]]},"37":{"position":[[404,5]]},"43":{"position":[[353,5]]},"91":{"position":[[353,5]]},"146":{"position":[[353,5]]},"231":{"position":[[87,4]]},"232":{"position":[[178,4],[1431,4],[1454,5]]},"233":{"position":[[39,4],[62,5]]},"282":{"position":[[102,5],[118,4]]}},"keywords":{}}],["core",{"_index":41,"title":{"367":{"position":[[0,5]]},"398":{"position":[[0,5]]},"437":{"position":[[0,5]]}},"content":{"2":{"position":[[57,5]]},"5":{"position":[[149,4]]},"21":{"position":[[2714,5]]},"128":{"position":[[166,5]]},"161":{"position":[[37,4]]},"354":{"position":[[110,4],[423,4]]},"355":{"position":[[332,4],[625,4]]},"478":{"position":[[735,4]]}},"keywords":{}}],["correct",{"_index":575,"title":{},"content":{"21":{"position":[[1985,8]]}},"keywords":{}}],["correctli",{"_index":180,"title":{},"content":{"5":{"position":[[948,10]]}},"keywords":{}}],["correl",{"_index":1270,"title":{},"content":{"174":{"position":[[1582,9]]}},"keywords":{}}],["correspond",{"_index":869,"title":{},"content":{"151":{"position":[[934,13]]}},"keywords":{}}],["corsdonotwaitforemptyeventloop",{"_index":2031,"title":{},"content":{"354":{"position":[[517,30]]}},"keywords":{}}],["couldn't",{"_index":270,"title":{},"content":{"6":{"position":[[1025,8]]}},"keywords":{}}],["cover",{"_index":750,"title":{"103":{"position":[[26,7]]},"104":{"position":[[31,7]]}},"content":{},"keywords":{}}],["cpu",{"_index":1904,"title":{},"content":{"322":{"position":[[1103,3],[1194,3]]}},"keywords":{}}],["creat",{"_index":273,"title":{},"content":{"6":{"position":[[1097,6]]},"160":{"position":[[317,6],[431,7]]},"163":{"position":[[138,7]]},"170":{"position":[[605,6]]},"178":{"position":[[557,6],[1300,6]]},"179":{"position":[[224,7]]},"182":{"position":[[1275,6]]},"186":{"position":[[410,6],[723,8]]},"188":{"position":[[326,6]]},"282":{"position":[[162,7],[213,7]]},"322":{"position":[[1213,7]]},"323":{"position":[[111,8],[323,7]]},"324":{"position":[[1289,7]]},"473":{"position":[[41,6]]}},"keywords":{}}],["createerror.unprocessableent",{"_index":1598,"title":{},"content":{"232":{"position":[[1517,33]]},"244":{"position":[[146,33]]}},"keywords":{}}],["createhash",{"_index":2134,"title":{},"content":{"369":{"position":[[97,10]]}},"keywords":{}}],["createhash('md5').update(json.stringify(event)).digest('hex",{"_index":2137,"title":{},"content":{"369":{"position":[[238,62]]}},"keywords":{}}],["createreadablestream",{"_index":1415,"title":{},"content":{"192":{"position":[[41,20],[253,27]]},"193":{"position":[[41,20],[187,27]]},"221":{"position":[[211,20],[639,29]]}},"keywords":{}}],["createrequir",{"_index":397,"title":{},"content":{"12":{"position":[[213,13]]}},"keywords":{}}],["createrequire(import.meta.url);"",{"_index":399,"title":{},"content":{"12":{"position":[[259,37]]}},"keywords":{}}],["createsubscriptionpay",{"_index":1381,"title":{},"content":{"186":{"position":[[351,25]]}},"keywords":{}}],["createsubscriptionpayment(ev",{"_index":1384,"title":{},"content":{"186":{"position":[[576,33]]}},"keywords":{}}],["creation",{"_index":1119,"title":{},"content":{"167":{"position":[[521,8],[732,8]]},"251":{"position":[[121,8]]}},"keywords":{}}],["credenti",{"_index":1451,"title":{},"content":{"197":{"position":[[1033,11]]},"202":{"position":[[1028,11]]},"232":{"position":[[0,11],[66,11]]},"283":{"position":[[495,11]]},"303":{"position":[[1005,11]]},"308":{"position":[[1055,11]]},"318":{"position":[[866,11]]},"386":{"position":[[28,10]]},"393":{"position":[[36,12]]}},"keywords":{}}],["creditcardnumb",{"_index":167,"title":{},"content":{"5":{"position":[[766,17],[1264,17],[1613,20]]}},"keywords":{}}],["critical.servicenam",{"_index":1204,"title":{},"content":{"173":{"position":[[216,20]]}},"keywords":{}}],["culprit",{"_index":578,"title":{},"content":{"21":{"position":[[2104,8]]}},"keywords":{}}],["current",{"_index":902,"title":{},"content":{"153":{"position":[[702,7]]},"170":{"position":[[143,10]]},"189":{"position":[[436,7],[928,7]]},"243":{"position":[[81,7]]},"322":{"position":[[708,7]]},"332":{"position":[[93,7]]},"367":{"position":[[376,9]]},"475":{"position":[[801,7],[864,7]]}},"keywords":{}}],["currentcachekey",{"_index":2141,"title":{},"content":{"369":{"position":[[450,15]]}},"keywords":{}}],["custom",{"_index":1156,"title":{"475":{"position":[[0,6]]}},"content":{"168":{"position":[[690,6]]},"170":{"position":[[630,6]]},"171":{"position":[[357,6]]},"174":{"position":[[2070,8],[2358,6]]},"178":{"position":[[566,6],[810,6],[1250,6]]},"179":{"position":[[294,6]]},"182":{"position":[[1015,6]]},"185":{"position":[[194,9]]},"232":{"position":[[245,6]]},"281":{"position":[[1136,6]]},"314":{"position":[[209,6]]},"323":{"position":[[120,6],[308,6]]},"363":{"position":[[113,9]]},"394":{"position":[[355,6]]},"398":{"position":[[824,6]]},"466":{"position":[[485,6]]},"474":{"position":[[709,9],[901,6],[1086,6]]},"475":{"position":[[0,6]]},"478":{"position":[[57,6]]}},"keywords":{}}],["customer_id",{"_index":1276,"title":{},"content":{"174":{"position":[[2038,11]]}},"keywords":{}}],["custommiddlewar",{"_index":2257,"title":{},"content":{"472":{"position":[[296,16],[851,16],[1001,16]]},"474":{"position":[[764,16],[1524,16]]}},"keywords":{}}],["custommiddleware.j",{"_index":2256,"title":{},"content":{"472":{"position":[[250,19],[1023,21]]}},"keywords":{}}],["custommiddlewareaft",{"_index":2259,"title":{},"content":{"472":{"position":[[476,21],[776,22]]}},"keywords":{}}],["custommiddlewareafter(request",{"_index":2261,"title":{},"content":{"472":{"position":[[695,30]]}},"keywords":{}}],["custommiddlewarebefor",{"_index":2258,"title":{},"content":{"472":{"position":[[377,22],[745,23]]},"474":{"position":[[1180,22],[1482,22]]}},"keywords":{}}],["custommiddlewareonerror",{"_index":2260,"title":{},"content":{"472":{"position":[[596,23],[808,23]]}},"keywords":{}}],["cvc",{"_index":170,"title":{},"content":{"5":{"position":[[809,4],[1471,4]]}},"keywords":{}}],["cycl",{"_index":1066,"title":{"166":{"position":[[8,5]]}},"content":{"166":{"position":[[8,5]]}},"keywords":{}}],["cycledeprec",{"_index":2189,"title":{},"content":{"398":{"position":[[983,14]]}},"keywords":{}}],["d",{"_index":198,"title":{},"content":{"5":{"position":[[1339,6],[1531,6]]},"10":{"position":[[7,1]]},"12":{"position":[[7,1]]},"13":{"position":[[7,1]]},"14":{"position":[[7,1]]},"15":{"position":[[7,1]]},"17":{"position":[[7,1]]},"18":{"position":[[7,1]]},"19":{"position":[[7,1]]}},"keywords":{}}],["data",{"_index":175,"title":{"283":{"position":[[6,5]]}},"content":{"5":{"position":[[870,4]]},"99":{"position":[[37,4]]},"178":{"position":[[999,4],[1366,4]]},"189":{"position":[[680,5]]},"197":{"position":[[794,4],[897,4]]},"202":{"position":[[789,4],[892,4]]},"251":{"position":[[488,4],[607,5],[639,4],[722,4]]},"252":{"position":[[378,5]]},"277":{"position":[[355,4]]},"281":{"position":[[802,4]]},"286":{"position":[[522,4],[625,4]]},"298":{"position":[[1273,4],[1376,4]]},"303":{"position":[[766,4],[869,4]]},"308":{"position":[[816,4],[919,4]]},"318":{"position":[[627,4],[730,4]]},"324":{"position":[[66,4]]},"327":{"position":[[799,4],[902,4]]},"328":{"position":[[1033,4],[1141,5]]},"343":{"position":[[160,5]]},"362":{"position":[[1919,4]]},"474":{"position":[[1358,4],[1455,5]]}},"keywords":{}}],["databas",{"_index":764,"title":{"151":{"position":[[15,8]]}},"content":{"103":{"position":[[441,9],[451,11]]},"136":{"position":[[66,8]]},"151":{"position":[[15,8]]},"287":{"position":[[371,9]]}},"keywords":{}}],["datadog",{"_index":1165,"title":{},"content":{"170":{"position":[[393,8]]}},"keywords":{}}],["datastream/cor",{"_index":1416,"title":{},"content":{"192":{"position":[[69,18]]},"193":{"position":[[69,18]]},"221":{"position":[[239,18]]}},"keywords":{}}],["date",{"_index":1103,"title":{},"content":{"166":{"position":[[723,5]]}},"keywords":{}}],["day",{"_index":163,"title":{},"content":{"5":{"position":[[598,3]]},"159":{"position":[[31,4]]}},"keywords":{}}],["dazn",{"_index":1883,"title":{},"content":{"322":{"position":[[0,4]]}},"keywords":{}}],["db",{"_index":2145,"title":{"370":{"position":[[0,2]]}},"content":{"386":{"position":[[96,2]]}},"keywords":{}}],["db:#{aws::region}:#{aws::accountid}:dbuser:${database_resource}/${iam_rol",{"_index":1809,"title":{},"content":{"286":{"position":[[894,75]]}},"keywords":{}}],["db:connect",{"_index":1806,"title":{},"content":{"286":{"position":[[850,10]]}},"keywords":{}}],["dbparam",{"_index":1982,"title":{},"content":{"328":{"position":[[241,9],[820,9],[1075,11]]}},"keywords":{}}],["de",{"_index":1690,"title":{},"content":{"260":{"position":[[274,3]]}},"keywords":{}}],["deal",{"_index":236,"title":{},"content":{"6":{"position":[[217,4]]},"251":{"position":[[883,4]]},"394":{"position":[[342,7]]}},"keywords":{}}],["debub",{"_index":1211,"title":{},"content":{"173":{"position":[[455,5]]}},"keywords":{}}],["debug",{"_index":1202,"title":{},"content":{"173":{"position":[[190,6],[422,5]]}},"keywords":{}}],["decid",{"_index":272,"title":{},"content":{"6":{"position":[[1086,7]]},"160":{"position":[[286,6]]},"265":{"position":[[46,7]]}},"keywords":{}}],["decod",{"_index":1425,"title":{},"content":{"194":{"position":[[263,7]]}},"keywords":{}}],["decoder.decode(buffer.from(chunk.payloadchunk.payload",{"_index":1431,"title":{},"content":{"194":{"position":[[401,55]]}},"keywords":{}}],["decor",{"_index":130,"title":{},"content":{"4":{"position":[[495,10]]},"6":{"position":[[748,8]]},"175":{"position":[[230,11]]}},"keywords":{}}],["decoupl",{"_index":2026,"title":{},"content":{"354":{"position":[[30,9]]}},"keywords":{}}],["decrypted.disableprefetch",{"_index":1967,"title":{},"content":{"327":{"position":[[586,25]]}},"keywords":{}}],["deep",{"_index":329,"title":{},"content":{"7":{"position":[[981,4],[1004,4]]}},"keywords":{}}],["default",{"_index":412,"title":{"365":{"position":[[33,7]]}},"content":{"13":{"position":[[302,7]]},"15":{"position":[[246,7]]},"21":{"position":[[7,8],[126,12],[2324,7]]},"22":{"position":[[51,8],[148,12]]},"31":{"position":[[542,10]]},"34":{"position":[[2126,8]]},"37":{"position":[[2251,8]]},"91":{"position":[[2151,8]]},"146":{"position":[[2138,8]]},"167":{"position":[[157,7]]},"168":{"position":[[655,7]]},"173":{"position":[[119,8],[308,8],[437,8],[711,8],[819,8]]},"174":{"position":[[2433,7]]},"177":{"position":[[156,8],[232,8],[347,8],[637,8]]},"181":{"position":[[156,8],[213,7],[255,8],[547,8],[652,8]]},"182":{"position":[[1192,7]]},"185":{"position":[[208,7]]},"197":{"position":[[19,8],[194,8],[297,8],[415,8],[611,8],[747,8],[868,8],[1010,8]]},"202":{"position":[[19,8],[191,8],[293,8],[411,8],[607,8],[743,8],[863,8],[1005,8]]},"207":{"position":[[31,8],[286,7],[394,8]]},"211":{"position":[[3,7],[226,9],[299,9],[329,9]]},"215":{"position":[[28,8]]},"219":{"position":[[12,8],[79,8],[137,8],[351,8],[403,8]]},"224":{"position":[[22,8]]},"228":{"position":[[14,9],[99,9],[209,9],[296,9],[407,9],[494,9],[606,9],[696,9],[809,9]]},"229":{"position":[[422,8],[705,8]]},"232":{"position":[[78,8],[256,8],[344,9],[434,9],[572,8],[675,9],[912,9],[1002,9],[1100,9],[1199,9],[1319,9]]},"239":{"position":[[130,8],[181,7],[243,8]]},"243":{"position":[[7,9],[186,8]]},"247":{"position":[[201,8],[221,7]]},"251":{"position":[[28,8],[235,8],[276,7],[386,8],[406,7]]},"259":{"position":[[38,8]]},"263":{"position":[[331,8],[366,7]]},"265":{"position":[[306,8]]},"273":{"position":[[94,8],[114,7]]},"277":{"position":[[16,8],[97,8],[180,8],[370,8]]},"286":{"position":[[19,8],[338,8],[474,8],[596,8],[738,8]]},"291":{"position":[[124,8],[564,8]]},"298":{"position":[[19,8],[622,8],[1084,8],[1220,8],[1347,8],[1489,8]]},"303":{"position":[[19,8],[180,8],[276,8],[394,8],[590,8],[726,8],[840,8],[982,8]]},"308":{"position":[[19,8],[215,8],[325,8],[443,8],[639,8],[775,8],[890,8],[1032,8]]},"313":{"position":[[98,8]]},"318":{"position":[[19,8],[450,8],[586,8],[701,8],[843,8]]},"327":{"position":[[19,8],[622,8],[758,8],[873,8],[1015,8]]},"328":{"position":[[321,9],[673,9],[717,9],[1087,12]]},"332":{"position":[[168,7]]},"336":{"position":[[19,8]]},"340":{"position":[[19,8],[230,8],[347,8],[465,8],[575,8]]},"359":{"position":[[23,8],[174,8],[434,8],[586,8],[625,7],[666,8],[753,9]]},"360":{"position":[[40,7],[204,8],[266,8]]},"361":{"position":[[99,7]]},"363":{"position":[[279,8],[374,8]]},"369":{"position":[[187,8],[423,12]]},"375":{"position":[[115,8]]},"394":{"position":[[82,8],[171,7],[294,7]]},"398":{"position":[[773,7],[864,7]]},"412":{"position":[[7,7]]},"414":{"position":[[8,7]]},"466":{"position":[[81,8]]},"472":{"position":[[276,8],[348,12],[843,7]]},"474":{"position":[[620,8],[821,12],[1516,7]]},"475":{"position":[[339,8],[422,12],[740,7]]},"478":{"position":[[700,7]]}},"keywords":{}}],["default).append",{"_index":1188,"title":{},"content":{"171":{"position":[[270,18]]}},"keywords":{}}],["default).print",{"_index":1185,"title":{},"content":{"171":{"position":[[172,17]]}},"keywords":{}}],["default_namespac",{"_index":1323,"title":{},"content":{"181":{"position":[[267,18]]}},"keywords":{}}],["defaultcontenttyp",{"_index":711,"title":{},"content":{"43":{"position":[[2126,19]]},"266":{"position":[[519,19]]},"414":{"position":[[26,18]]}},"keywords":{}}],["defaulthandl",{"_index":634,"title":{},"content":{"31":{"position":[[359,14],[562,14]]},"351":{"position":[[153,15]]}},"keywords":{}}],["defaultlanguag",{"_index":2246,"title":{},"content":{"466":{"position":[[258,15]]}},"keywords":{}}],["defaulttofirstlanguag",{"_index":2199,"title":{},"content":{"406":{"position":[[7,22]]}},"keywords":{}}],["defin",{"_index":1278,"title":{},"content":{"174":{"position":[[2349,6]]},"215":{"position":[[68,6]]},"228":{"position":[[132,8],[329,8],[527,8],[729,8]]},"263":{"position":[[32,8]]}},"keywords":{}}],["definit",{"_index":1311,"title":{},"content":{"179":{"position":[[127,11]]},"478":{"position":[[875,11]]}},"keywords":{}}],["deflat",{"_index":1533,"title":{},"content":{"220":{"position":[[476,10]]},"221":{"position":[[559,10]]},"405":{"position":[[33,7]]}},"keywords":{}}],["deflateoptionsoverridepreferredencod",{"_index":1505,"title":{},"content":{"219":{"position":[[170,39]]}},"keywords":{}}],["deleg",{"_index":1005,"title":{},"content":{"160":{"position":[[348,8]]}},"keywords":{}}],["delet",{"_index":2012,"title":{},"content":{"347":{"position":[[134,7]]}},"keywords":{}}],["depend",{"_index":281,"title":{},"content":{"7":{"position":[[79,9],[360,12],[803,12]]},"155":{"position":[[191,11]]},"327":{"position":[[1172,9]]},"347":{"position":[[451,9]]},"354":{"position":[[317,12]]},"478":{"position":[[1092,12]]}},"keywords":{}}],["deploy",{"_index":2102,"title":{},"content":{"363":{"position":[[49,11]]}},"keywords":{}}],["deprec",{"_index":1096,"title":{},"content":{"166":{"position":[[538,10],[585,10],[632,10],[679,10]]},"369":{"position":[[0,11]]},"370":{"position":[[0,11]]},"372":{"position":[[0,11]]},"395":{"position":[[0,11]]},"420":{"position":[[0,10]]},"421":{"position":[[0,10]]},"423":{"position":[[0,10]]},"425":{"position":[[0,10]]},"427":{"position":[[0,10]]},"450":{"position":[[0,9]]},"466":{"position":[[141,9]]}},"keywords":{}}],["describ",{"_index":1410,"title":{},"content":{"189":{"position":[[708,9]]}},"keywords":{}}],["descript",{"_index":604,"title":{},"content":{"21":{"position":[[2639,11],[2807,11]]}},"keywords":{}}],["deseri",{"_index":165,"title":{},"content":{"5":{"position":[[689,11],[1091,16]]}},"keywords":{}}],["destroy",{"_index":2096,"title":{},"content":{"362":{"position":[[1308,7]]}},"keywords":{}}],["detail",{"_index":957,"title":{},"content":{"157":{"position":[[995,8]]},"323":{"position":[[270,7]]},"359":{"position":[[888,7]]}},"keywords":{}}],["details)if",{"_index":2179,"title":{},"content":{"398":{"position":[[218,10]]}},"keywords":{}}],["detectopenhandl",{"_index":1143,"title":{},"content":{"167":{"position":[[1435,17]]}},"keywords":{}}],["determin",{"_index":1209,"title":{},"content":{"173":{"position":[[392,9]]},"265":{"position":[[103,10]]}},"keywords":{}}],["dev",{"_index":923,"title":{},"content":{"155":{"position":[[234,3]]},"174":{"position":[[1923,3]]},"196":{"position":[[111,3]]},"201":{"position":[[110,3]]},"285":{"position":[[112,3]]},"290":{"position":[[120,3]]},"297":{"position":[[117,3]]},"302":{"position":[[104,3]]},"307":{"position":[[119,3]]},"312":{"position":[[153,3]]},"317":{"position":[[105,3]]},"326":{"position":[[105,3]]},"339":{"position":[[113,3]]},"358":{"position":[[111,3]]}},"keywords":{}}],["dev/api_token",{"_index":1846,"title":{},"content":{"299":{"position":[[197,15],[432,13]]}},"keywords":{}}],["dev/default",{"_index":1984,"title":{},"content":{"328":{"position":[[331,15],[683,15]]}},"keywords":{}}],["dev/service_name/access_token",{"_index":1981,"title":{},"content":{"328":{"position":[[191,33],[770,33]]}},"keywords":{}}],["dev/service_name/databas",{"_index":1983,"title":{},"content":{"328":{"position":[[251,30],[830,29]]}},"keywords":{}}],["dev/service_name/key_nam",{"_index":767,"title":{},"content":{"103":{"position":[[545,28],[621,28]]},"104":{"position":[[631,28]]}},"keywords":{}}],["devdepend",{"_index":317,"title":{},"content":{"7":{"position":[[737,15]]},"478":{"position":[[1044,15]]}},"keywords":{}}],["develop",{"_index":227,"title":{},"content":{"6":{"position":[[71,9],[667,10]]},"15":{"position":[[262,14]]},"21":{"position":[[2469,11]]}},"keywords":{}}],["dicer/bench",{"_index":323,"title":{},"content":{"7":{"position":[[851,14]]}},"keywords":{}}],["dicer/test",{"_index":324,"title":{},"content":{"7":{"position":[[866,13]]}},"keywords":{}}],["differ",{"_index":161,"title":{},"content":{"5":{"position":[[550,9]]},"174":{"position":[[2399,9]]},"179":{"position":[[390,9]]},"182":{"position":[[1304,9]]},"298":{"position":[[986,9]]},"415":{"position":[[36,9]]},"433":{"position":[[36,9]]},"473":{"position":[[193,9]]}},"keywords":{}}],["differenti",{"_index":1275,"title":{},"content":{"174":{"position":[[1888,13]]}},"keywords":{}}],["dimens",{"_index":1314,"title":{},"content":{"179":{"position":[[187,11],[400,11],[486,11]]},"182":{"position":[[1200,10],[1314,11]]},"207":{"position":[[253,11],[294,11],[367,11],[383,10]]},"208":{"position":[[361,11]]}},"keywords":{}}],["directli",{"_index":75,"title":{},"content":{"2":{"position":[[571,8]]},"153":{"position":[[334,8]]},"251":{"position":[[967,8]]}},"keywords":{}}],["directori",{"_index":287,"title":{},"content":{"7":{"position":[[171,9]]}},"keywords":{}}],["disabl",{"_index":1118,"title":{},"content":{"167":{"position":[[509,7],[614,7],[720,7],[879,7]]},"171":{"position":[[159,9],[257,9]]},"175":{"position":[[353,7]]},"197":{"position":[[711,8]]},"202":{"position":[[707,8]]},"286":{"position":[[438,8]]},"291":{"position":[[664,8]]},"298":{"position":[[1184,8]]},"303":{"position":[[690,8]]},"308":{"position":[[739,8]]},"318":{"position":[[550,8]]},"327":{"position":[[722,8]]},"340":{"position":[[675,8]]},"359":{"position":[[612,7]]},"476":{"position":[[269,7]]}},"keywords":{}}],["disablecontenttypeerror",{"_index":1729,"title":{},"content":{"273":{"position":[[0,23]]}},"keywords":{}}],["disableprefetch",{"_index":2283,"title":{},"content":{"474":{"position":[[675,16]]}},"keywords":{}}],["disconnect",{"_index":638,"title":{},"content":{"31":{"position":[[485,14]]},"351":{"position":[[140,12]]},"352":{"position":[[444,14],[612,14]]}},"keywords":{}}],["disconnecthandl",{"_index":632,"title":{},"content":{"31":{"position":[[287,17],[509,17]]},"352":{"position":[[326,17],[636,17]]}},"keywords":{}}],["discoveri",{"_index":431,"title":{"306":{"position":[[8,9]]},"424":{"position":[[8,10]]},"462":{"position":[[8,10]]}},"content":{"13":{"position":[[723,9]]},"15":{"position":[[930,9]]},"283":{"position":[[321,10],[348,9]]},"307":{"position":[[90,9]]},"309":{"position":[[77,10]]}},"keywords":{}}],["discoveryinst",{"_index":2216,"title":{},"content":{"424":{"position":[[27,18]]}},"keywords":{}}],["discuss",{"_index":1402,"title":{},"content":{"189":{"position":[[3,9]]},"450":{"position":[[256,10]]}},"keywords":{}}],["dn",{"_index":1656,"title":{},"content":{"255":{"position":[[36,3]]}},"keywords":{}}],["dnsprefetchcontrol",{"_index":1655,"title":{},"content":{"255":{"position":[[0,18]]}},"keywords":{}}],["do",{"_index":162,"title":{},"content":{"5":{"position":[[586,5]]},"188":{"position":[[120,5]]},"189":{"position":[[779,5]]}},"keywords":{}}],["doc",{"_index":1473,"title":{},"content":{"207":{"position":[[450,5]]}},"keywords":{}}],["document",{"_index":617,"title":{"24":{"position":[[4,14]]},"27":{"position":[[4,14]]},"30":{"position":[[4,14]]},"33":{"position":[[4,14]]},"36":{"position":[[4,14]]},"39":{"position":[[4,14]]},"42":{"position":[[4,14]]},"45":{"position":[[4,14]]},"48":{"position":[[4,14]]},"51":{"position":[[4,14]]},"54":{"position":[[4,14]]},"57":{"position":[[4,14]]},"60":{"position":[[4,14]]},"63":{"position":[[4,14]]},"67":{"position":[[4,14]]},"69":{"position":[[4,14]]},"72":{"position":[[4,14]]},"76":{"position":[[4,14]]},"78":{"position":[[4,14]]},"81":{"position":[[4,14]]},"84":{"position":[[4,14]]},"87":{"position":[[4,14]]},"90":{"position":[[4,14]]},"93":{"position":[[4,14]]},"96":{"position":[[4,14]]},"99":{"position":[[4,14]]},"106":{"position":[[4,14]]},"109":{"position":[[4,14]]},"112":{"position":[[4,14]]},"115":{"position":[[4,14]]},"118":{"position":[[4,14]]},"121":{"position":[[4,14]]},"124":{"position":[[4,14]]},"127":{"position":[[4,14]]},"130":{"position":[[4,14]]},"133":{"position":[[4,14]]},"138":{"position":[[4,14]]},"141":{"position":[[4,14]]},"145":{"position":[[4,14]]}},"content":{"179":{"position":[[620,13]]},"251":{"position":[[158,13]]},"318":{"position":[[1079,13]]},"389":{"position":[[16,13]]},"392":{"position":[[16,13]]}},"keywords":{}}],["documentdb",{"_index":727,"title":{"65":{"position":[[0,10]]}},"content":{"69":{"position":[[29,10]]}},"keywords":{}}],["doe",{"_index":1684,"title":{},"content":{"260":{"position":[[215,6],[545,5]]}},"keywords":{}}],["doesn't",{"_index":288,"title":{},"content":{"7":{"position":[[194,7]]},"21":{"position":[[1958,7]]},"362":{"position":[[1300,7]]}},"keywords":{}}],["domain",{"_index":855,"title":{},"content":{"151":{"position":[[462,6]]}},"keywords":{}}],["don't",{"_index":26,"title":{},"content":{"1":{"position":[[78,5]]},"5":{"position":[[675,5]]},"243":{"position":[[137,5]]},"263":{"position":[[427,5]]}},"keywords":{}}],["done",{"_index":2110,"title":{},"content":{"363":{"position":[[464,4],[606,4]]}},"keywords":{}}],["done)remov",{"_index":2182,"title":{},"content":{"398":{"position":[[354,11]]}},"keywords":{}}],["donotwaitforemptyeventloop",{"_index":1492,"title":{},"content":{"212":{"position":[[39,26]]}},"keywords":{}}],["doubl",{"_index":2049,"title":{},"content":{"355":{"position":[[512,6]]}},"keywords":{}}],["down",{"_index":2178,"title":{},"content":{"398":{"position":[[162,4]]}},"keywords":{}}],["download",{"_index":1666,"title":{},"content":{"255":{"position":[[257,8]]}},"keywords":{}}],["draft",{"_index":2159,"title":{},"content":{"394":{"position":[[53,5]]}},"keywords":{}}],["draft2019",{"_index":2080,"title":{},"content":{"360":{"position":[[101,10]]}},"keywords":{}}],["draft2019/.github",{"_index":304,"title":{},"content":{"7":{"position":[[463,17]]}},"keywords":{}}],["draft2019/.prettierrc.j",{"_index":305,"title":{},"content":{"7":{"position":[[496,24]]}},"keywords":{}}],["draft2019/index.test.j",{"_index":306,"title":{},"content":{"7":{"position":[[536,23]]}},"keywords":{}}],["dramat",{"_index":598,"title":{},"content":{"21":{"position":[[2565,8]]}},"keywords":{}}],["drop",{"_index":2053,"title":{"356":{"position":[[54,8]]}},"content":{"356":{"position":[[97,7]]}},"keywords":{}}],["due",{"_index":1139,"title":{},"content":{"167":{"position":[[1390,3]]},"420":{"position":[[27,3]]},"423":{"position":[[27,3]]}},"keywords":{}}],["dump",{"_index":1891,"title":{},"content":{"322":{"position":[[433,7]]}},"keywords":{}}],["duplic",{"_index":961,"title":{},"content":{"159":{"position":[[99,11]]},"170":{"position":[[857,9]]}},"keywords":{}}],["duplicatesexpir",{"_index":1358,"title":{},"content":{"183":{"position":[[348,17]]}},"keywords":{}}],["durat",{"_index":1399,"title":{},"content":{"188":{"position":[[543,8]]}},"keywords":{}}],["dure",{"_index":511,"title":{"364":{"position":[[10,6]]},"365":{"position":[[10,6]]}},"content":{"21":{"position":[[386,6]]},"183":{"position":[[93,6]]},"322":{"position":[[1121,6]]},"324":{"position":[[665,6]]},"359":{"position":[[1160,6]]},"474":{"position":[[244,6]]},"476":{"position":[[321,6]]}},"keywords":{}}],["dvi",{"_index":1718,"title":{},"content":{"266":{"position":[[630,4]]}},"keywords":{}}],["dynam",{"_index":1917,"title":{},"content":{"322":{"position":[[1424,7]]}},"keywords":{}}],["dynamodb",{"_index":730,"title":{"80":{"position":[[0,8]]},"200":{"position":[[0,8]]}},"content":{"81":{"position":[[29,8]]},"104":{"position":[[537,9],[847,9]]},"184":{"position":[[82,8],[104,8]]},"201":{"position":[[130,8],[153,8]]},"202":{"position":[[752,10]]},"203":{"position":[[39,8],[250,10]]},"204":{"position":[[40,8]]},"224":{"position":[[218,8]]},"323":{"position":[[584,9]]}},"keywords":{}}],["dynamodb.awsclientopt",{"_index":1462,"title":{},"content":{"202":{"position":[[156,25]]}},"keywords":{}}],["dynamodb.rd",{"_index":1795,"title":{},"content":{"283":{"position":[[88,12]]}},"keywords":{}}],["dynamodb:batchgetitemcommand",{"_index":1463,"title":{},"content":{"202":{"position":[[1113,28]]}},"keywords":{}}],["dynamodbcli",{"_index":1461,"title":{},"content":{"202":{"position":[[28,16],[45,14],[231,14]]}},"keywords":{}}],["dynamodbmiddlewar",{"_index":776,"title":{},"content":{"104":{"position":[[169,18],[503,20]]}},"keywords":{}}],["dynamodbpersistencelay",{"_index":1378,"title":{},"content":{"186":{"position":[[171,24],[279,26]]}},"keywords":{}}],["e.g",{"_index":1559,"title":{},"content":{"228":{"position":[[947,5]]},"355":{"position":[[251,5]]},"472":{"position":[[242,4]]},"476":{"position":[[439,5]]}},"keywords":{}}],["each",{"_index":602,"title":{},"content":{"21":{"position":[[2615,4]]},"166":{"position":[[14,4],[129,4]]},"173":{"position":[[802,4]]},"175":{"position":[[184,4]]},"188":{"position":[[351,4]]},"328":{"position":[[311,4],[889,4]]},"478":{"position":[[1064,4]]}},"keywords":{}}],["earli",{"_index":886,"title":{"153":{"position":[[0,5]]},"189":{"position":[[15,5]]}},"content":{"153":{"position":[[0,5],[305,5],[1019,5]]},"159":{"position":[[25,5]]},"189":{"position":[[20,5],[1320,5]]},"197":{"position":[[664,5]]},"202":{"position":[[660,5]]},"286":{"position":[[391,5]]},"291":{"position":[[617,5]]},"298":{"position":[[1137,5]]},"303":{"position":[[643,5]]},"308":{"position":[[692,5]]},"318":{"position":[[503,5]]},"327":{"position":[[675,5]]},"340":{"position":[[628,5]]},"395":{"position":[[354,5]]},"398":{"position":[[557,5],[761,5]]},"476":{"position":[[168,5]]}},"keywords":{}}],["easi",{"_index":269,"title":{},"content":{"6":{"position":[[998,4]]},"424":{"position":[[12,4]]}},"keywords":{}}],["easier",{"_index":1163,"title":{},"content":{"170":{"position":[[263,6]]},"323":{"position":[[177,6],[216,7]]},"398":{"position":[[945,6]]},"408":{"position":[[82,6]]}},"keywords":{}}],["easier.middi",{"_index":1886,"title":{},"content":{"322":{"position":[[116,12]]}},"keywords":{}}],["east",{"_index":1848,"title":{},"content":{"299":{"position":[[248,4]]}},"keywords":{}}],["ec2",{"_index":729,"title":{"75":{"position":[[0,3]]}},"content":{"76":{"position":[[29,3]]}},"keywords":{}}],["ecosystem",{"_index":1053,"title":{},"content":{"164":{"position":[[218,10],[299,11]]}},"keywords":{}}],["editorconfig",{"_index":357,"title":{},"content":{"7":{"position":[[1440,13]]}},"keywords":{}}],["effect",{"_index":599,"title":{},"content":{"21":{"position":[[2574,7]]},"183":{"position":[[521,7]]},"398":{"position":[[167,7]]}},"keywords":{}}],["element",{"_index":121,"title":{},"content":{"4":{"position":[[385,8]]}},"keywords":{}}],["elseth",{"_index":1708,"title":{},"content":{"265":{"position":[[209,7]]}},"keywords":{}}],["email",{"_index":2097,"title":{},"content":{"362":{"position":[[1767,9],[1817,6],[1850,7]]}},"keywords":{}}],["embed",{"_index":1466,"title":{},"content":{"207":{"position":[[47,8],[433,8]]},"323":{"position":[[361,8]]}},"keywords":{}}],["emf",{"_index":1178,"title":{},"content":{"170":{"position":[[757,3]]},"179":{"position":[[70,3]]},"182":{"position":[[475,3],[915,3]]}},"keywords":{}}],["emf)paramet",{"_index":1922,"title":{},"content":{"323":{"position":[[384,16]]}},"keywords":{}}],["emit",{"_index":1350,"title":{},"content":{"182":{"position":[[1244,7]]},"189":{"position":[[607,4]]}},"keywords":{}}],["emoji",{"_index":997,"title":{},"content":{"159":{"position":[[563,5]]}},"keywords":{}}],["empti",{"_index":807,"title":{"209":{"position":[[16,5]]},"371":{"position":[[16,5]]},"402":{"position":[[16,5]]},"441":{"position":[[16,5]]}},"content":{"136":{"position":[[30,6],[139,5]]},"207":{"position":[[325,5]]},"210":{"position":[[98,5]]},"212":{"position":[[95,5]]},"280":{"position":[[115,5]]},"281":{"position":[[329,5]]},"354":{"position":[[577,5]]},"360":{"position":[[347,8]]},"363":{"position":[[288,5],[383,5]]}},"keywords":{}}],["en",{"_index":679,"title":{},"content":{"34":{"position":[[1612,4]]},"37":{"position":[[1737,4]]},"43":{"position":[[1612,4]]},"91":{"position":[[1637,4]]},"146":{"position":[[1624,4]]},"229":{"position":[[918,6]]},"359":{"position":[[675,4]]},"363":{"position":[[736,2],[854,3]]},"364":{"position":[[247,2],[456,3]]},"365":{"position":[[204,3],[415,3]]},"466":{"position":[[966,3],[1143,3]]}},"keywords":{}}],["en.j",{"_index":2116,"title":{},"content":{"363":{"position":[[744,9]]}},"keywords":{}}],["enabl",{"_index":497,"title":{},"content":{"21":{"position":[[41,8],[112,7],[260,10]]},"177":{"position":[[216,6]]},"197":{"position":[[436,6]]},"202":{"position":[[432,6]]},"291":{"position":[[376,6],[475,6]]},"298":{"position":[[430,6]]},"303":{"position":[[415,6]]},"308":{"position":[[464,6]]},"318":{"position":[[275,6]]},"327":{"position":[[390,6]]},"340":{"position":[[486,6]]},"383":{"position":[[61,7]]}},"keywords":{}}],["enabling/dis",{"_index":1545,"title":{},"content":{"228":{"position":[[42,18],[237,18],[435,18],[634,18]]}},"keywords":{}}],["encod",{"_index":463,"title":{"217":{"position":[[13,8]]},"405":{"position":[[13,9]]},"444":{"position":[[13,9]]}},"content":{"15":{"position":[[529,8],[595,8],[635,8]]},"34":{"position":[[299,9]]},"37":{"position":[[350,9]]},"43":{"position":[[299,9]]},"91":{"position":[[299,9]]},"146":{"position":[[299,9]]},"218":{"position":[[95,8]]},"219":{"position":[[261,8],[387,8]]},"220":{"position":[[154,9]]},"221":{"position":[[154,9]]},"228":{"position":[[260,9],[350,9]]},"251":{"position":[[738,7]]},"281":{"position":[[218,9],[916,7],[1041,7]]},"282":{"position":[[13,9],[41,8]]}},"keywords":{}}],["encodeuricomponent('mîddi",{"_index":1726,"title":{},"content":{"270":{"position":[[341,27]]}},"keywords":{}}],["encourag",{"_index":1048,"title":{},"content":{"164":{"position":[[54,9]]},"356":{"position":[[205,10]]}},"keywords":{}}],["end",{"_index":242,"title":{},"content":{"6":{"position":[[396,4]]},"34":{"position":[[1870,3]]},"37":{"position":[[1995,3]]},"43":{"position":[[1870,3]]},"91":{"position":[[1895,3]]},"146":{"position":[[1882,3]]},"160":{"position":[[595,3]]},"166":{"position":[[437,3]]},"167":{"position":[[1030,3]]},"398":{"position":[[309,3],[543,6]]},"474":{"position":[[152,5],[1077,3]]}},"keywords":{}}],["endpoint",{"_index":1793,"title":{},"content":{"282":{"position":[[644,9]]},"343":{"position":[[227,9]]}},"keywords":{}}],["enforc",{"_index":871,"title":{},"content":{"151":{"position":[[992,7]]}},"keywords":{}}],["engin",{"_index":103,"title":{},"content":{"4":{"position":[[34,6],[280,6]]},"354":{"position":[[126,6]]}},"keywords":{}}],["enhanc",{"_index":932,"title":{},"content":{"156":{"position":[[322,8]]}},"keywords":{}}],["enrich",{"_index":1920,"title":{},"content":{"323":{"position":[[244,6]]}},"keywords":{}}],["ensur",{"_index":25,"title":{},"content":{"1":{"position":[[67,6]]},"7":{"position":[[184,6]]},"167":{"position":[[1503,6]]},"219":{"position":[[547,6]]},"315":{"position":[[217,6]]}},"keywords":{}}],["enter",{"_index":1078,"title":{},"content":{"166":{"position":[[207,6]]}},"keywords":{}}],["entir",{"_index":1704,"title":{},"content":{"264":{"position":[[131,6],[327,6]]}},"keywords":{}}],["entiti",{"_index":1604,"title":{},"content":{"232":{"position":[[1792,7]]},"244":{"position":[[350,7]]}},"keywords":{}}],["entri",{"_index":455,"title":{},"content":{"15":{"position":[[277,6]]},"174":{"position":[[1178,5],[1326,6],[1688,5],[1848,8],[2019,6]]}},"keywords":{}}],["env",{"_index":79,"title":{},"content":{"2":{"position":[[634,4]]},"17":{"position":[[46,3]]},"324":{"position":[[1481,4]]}},"keywords":{}}],["env"",{"_index":476,"title":{},"content":{"17":{"position":[[187,10]]}},"keywords":{}}],["environ",{"_index":5,"title":{},"content":{"0":{"position":[[46,11]]},"104":{"position":[[394,12]]},"167":{"position":[[1159,13]]},"174":{"position":[[1869,11],[1927,13]]},"175":{"position":[[400,12]]},"198":{"position":[[346,12]]},"324":{"position":[[1516,11]]}},"keywords":{}}],["equal",{"_index":850,"title":{},"content":{"151":{"position":[[316,7]]},"322":{"position":[[309,5]]}},"keywords":{}}],["equal/es6",{"_index":330,"title":{},"content":{"7":{"position":[[986,9]]}},"keywords":{}}],["equal/react.j",{"_index":331,"title":{},"content":{"7":{"position":[[1009,14]]}},"keywords":{}}],["err",{"_index":2091,"title":{},"content":{"362":{"position":[[638,5],[1166,5]]}},"keywords":{}}],["error",{"_index":157,"title":{"160":{"position":[[9,6]]},"213":{"position":[[0,5]]},"241":{"position":[[5,5]]},"375":{"position":[[5,5]]},"403":{"position":[[0,5]]},"408":{"position":[[5,5]]},"442":{"position":[[0,5]]},"447":{"position":[[5,5]]}},"content":{"5":{"position":[[391,5],[1125,5],[2025,6]]},"6":{"position":[[339,5]]},"34":{"position":[[411,5]]},"37":{"position":[[462,5]]},"43":{"position":[[411,5]]},"91":{"position":[[411,5]]},"146":{"position":[[411,5]]},"151":{"position":[[795,5],[844,5],[920,5]]},"153":{"position":[[327,6],[447,5]]},"160":{"position":[[9,6],[51,6],[75,6],[307,5],[361,5],[421,5],[502,5],[606,5],[701,6],[759,6],[895,5],[921,12],[948,5]]},"161":{"position":[[680,7]]},"167":{"position":[[634,5],[1135,7]]},"173":{"position":[[209,6]]},"178":{"position":[[961,5]]},"181":{"position":[[515,5]]},"186":{"position":[[690,7]]},"215":{"position":[[110,5]]},"229":{"position":[[208,5]]},"232":{"position":[[1409,5]]},"236":{"position":[[251,5]]},"242":{"position":[[87,5]]},"243":{"position":[[89,5],[220,6]]},"244":{"position":[[74,5]]},"282":{"position":[[147,5],[197,6],[235,6]]},"315":{"position":[[224,6]]},"324":{"position":[[115,5]]},"347":{"position":[[589,6]]},"351":{"position":[[246,6],[357,6]]},"354":{"position":[[688,5]]},"359":{"position":[[882,5]]},"360":{"position":[[130,7]]},"363":{"position":[[261,6],[356,6]]},"367":{"position":[[136,10],[258,10],[396,5]]},"375":{"position":[[45,6],[188,6]]},"394":{"position":[[262,6]]},"397":{"position":[[61,5],[83,5]]},"398":{"position":[[245,6],[831,5]]},"399":{"position":[[12,5]]},"407":{"position":[[40,5]]},"409":{"position":[[59,5]]},"414":{"position":[[129,5]]},"416":{"position":[[40,5]]},"426":{"position":[[166,5]]},"429":{"position":[[13,6]]},"466":{"position":[[329,5],[516,5]]},"473":{"position":[[715,5]]},"475":{"position":[[252,6],[948,7]]},"476":{"position":[[53,5],[212,5]]}},"keywords":{}}],["error('error",{"_index":1388,"title":{},"content":{"186":{"position":[[710,12]]}},"keywords":{}}],["error('timeout",{"_index":2188,"title":{},"content":{"398":{"position":[[893,16]]}},"keywords":{}}],["error(in",{"_index":2301,"title":{},"content":{"475":{"position":[[928,8]]}},"keywords":{}}],["errorlogg",{"_index":1498,"title":{},"content":{"216":{"position":[[39,11]]}},"keywords":{}}],["errorloggermiddlewar",{"_index":642,"title":{},"content":{"34":{"position":[[39,21]]},"37":{"position":[[90,21]]},"43":{"position":[[39,21]]},"91":{"position":[[39,21]]},"102":{"position":[[107,21]]},"146":{"position":[[39,21]]}},"keywords":{}}],["errormessag",{"_index":2252,"title":{},"content":{"466":{"position":[[541,12]]}},"keywords":{}}],["errors.http",{"_index":1786,"title":{},"content":{"282":{"position":[[276,11]]}},"keywords":{}}],["errors/src",{"_index":301,"title":{},"content":{"7":{"position":[[418,10]]}},"keywords":{}}],["errorscatch",{"_index":2192,"title":{},"content":{"399":{"position":[[56,11]]}},"keywords":{}}],["errorsinput",{"_index":1765,"title":{},"content":{"280":{"position":[[205,11]]}},"keywords":{}}],["errorsplugin",{"_index":2184,"title":{},"content":{"398":{"position":[[581,12]]}},"keywords":{}}],["errrormessag",{"_index":2089,"title":{},"content":{"361":{"position":[[152,15]]}},"keywords":{}}],["es",{"_index":414,"title":{},"content":{"13":{"position":[[397,4],[410,2]]}},"keywords":{}}],["esbuild",{"_index":386,"title":{"12":{"position":[[0,8]]},"18":{"position":[[0,8]]}},"content":{"12":{"position":[[9,7]]},"18":{"position":[[9,7]]}},"keywords":{}}],["eslintignor",{"_index":358,"title":{},"content":{"7":{"position":[[1454,13]]}},"keywords":{}}],["eslintrc",{"_index":359,"title":{},"content":{"7":{"position":[[1468,9]]}},"keywords":{}}],["eslintrc.yml",{"_index":360,"title":{},"content":{"7":{"position":[[1478,13]]}},"keywords":{}}],["esm",{"_index":146,"title":{},"content":{"5":{"position":[[189,3]]}},"keywords":{}}],["especi",{"_index":2278,"title":{},"content":{"474":{"position":[[402,10]]}},"keywords":{}}],["establish",{"_index":12,"title":{},"content":{"0":{"position":[[184,11]]}},"keywords":{}}],["etc",{"_index":126,"title":{},"content":{"4":{"position":[[457,4]]},"6":{"position":[[355,4],[581,6]]},"179":{"position":[[504,4]]}},"keywords":{}}],["eu",{"_index":1236,"title":{},"content":{"174":{"position":[[579,2],[781,2]]}},"keywords":{}}],["evalu",{"_index":1646,"title":{},"content":{"251":{"position":[[821,8]]}},"keywords":{}}],["even",{"_index":39,"title":{},"content":{"2":{"position":[[44,4]]},"219":{"position":[[312,4]]}},"keywords":{}}],["event",{"_index":98,"title":{"86":{"position":[[4,6]]},"101":{"position":[[8,6]]},"209":{"position":[[22,5]]},"222":{"position":[[0,5]]},"234":{"position":[[5,5]]},"371":{"position":[[22,5]]},"376":{"position":[[5,5]]},"402":{"position":[[22,5]]},"404":{"position":[[0,5]]},"409":{"position":[[5,5]]},"441":{"position":[[22,5]]},"443":{"position":[[0,5]]},"448":{"position":[[5,5]]}},"content":{"2":{"position":[[1299,7]]},"5":{"position":[[644,7],[1662,5]]},"15":{"position":[[433,9]]},"34":{"position":[[481,5]]},"37":{"position":[[532,5]]},"43":{"position":[[481,5]]},"78":{"position":[[53,7]]},"87":{"position":[[30,6]]},"91":{"position":[[481,5]]},"102":{"position":[[676,7]]},"103":{"position":[[837,7]]},"104":{"position":[[776,7]]},"136":{"position":[[12,5],[145,5]]},"146":{"position":[[481,5]]},"153":{"position":[[710,5],[741,7]]},"157":{"position":[[189,7],[768,7]]},"168":{"position":[[192,6],[351,7]]},"171":{"position":[[136,6]]},"173":{"position":[[704,6]]},"174":{"position":[[2190,6],[2275,5]]},"183":{"position":[[79,5],[215,5]]},"186":{"position":[[387,5],[522,7]]},"188":{"position":[[412,5],[609,5]]},"189":{"position":[[936,5],[967,7]]},"192":{"position":[[155,7]]},"193":{"position":[[155,7]]},"210":{"position":[[104,5]]},"212":{"position":[[101,5]]},"224":{"position":[[227,6]]},"225":{"position":[[108,7],[153,5]]},"235":{"position":[[87,5]]},"236":{"position":[[77,5]]},"248":{"position":[[310,5]]},"252":{"position":[[325,5]]},"260":{"position":[[375,5]]},"266":{"position":[[568,5]]},"270":{"position":[[292,8],[307,5]]},"274":{"position":[[385,8],[400,5]]},"280":{"position":[[121,5]]},"281":{"position":[[0,5],[58,5],[275,5],[309,6],[1098,6]]},"294":{"position":[[141,7]]},"314":{"position":[[110,7]]},"322":{"position":[[399,5],[484,5],[738,5],[794,5],[1385,6]]},"324":{"position":[[76,6],[251,5],[280,5]]},"332":{"position":[[41,5],[101,5],[119,5],[203,5]]},"333":{"position":[[97,7],[162,7]]},"354":{"position":[[583,5],[739,5]]},"362":{"position":[[12,5],[389,5],[554,5],[675,6]]},"369":{"position":[[224,7]]},"388":{"position":[[61,6]]},"409":{"position":[[80,5]]},"415":{"position":[[26,6]]},"421":{"position":[[24,5]]},"425":{"position":[[24,5]]},"426":{"position":[[127,5]]},"431":{"position":[[32,5]]},"433":{"position":[[26,6]]},"472":{"position":[[434,6],[1073,7]]},"474":{"position":[[146,5]]},"475":{"position":[[872,5]]},"476":{"position":[[516,7],[589,6]]},"478":{"position":[[98,6]]}},"keywords":{}}],["event.bodi",{"_index":173,"title":{},"content":{"5":{"position":[[837,10]]},"270":{"position":[[158,10]]},"274":{"position":[[223,10]]}},"keywords":{}}],["event.body.messag",{"_index":1999,"title":{},"content":{"337":{"position":[[281,18]]}},"keywords":{}}],["event.iswarmingup",{"_index":1993,"title":{},"content":{"333":{"position":[[111,17]]}},"keywords":{}}],["event.path",{"_index":1154,"title":{},"content":{"168":{"position":[[547,14]]}},"keywords":{}}],["event.pathparameters.userid",{"_index":1608,"title":{},"content":{"236":{"position":[[166,32]]}},"keywords":{}}],["event.preferredlanguag",{"_index":1564,"title":{},"content":{"229":{"position":[[302,25]]}},"keywords":{}}],["event.preferredmediatyp",{"_index":1571,"title":{},"content":{"229":{"position":[[464,26]]}},"keywords":{}}],["event.productid",{"_index":1383,"title":{},"content":{"186":{"position":[[463,16]]}},"keywords":{}}],["event.rawbodi",{"_index":2234,"title":{},"content":{"450":{"position":[[10,13]]}},"keywords":{}}],["event.records.map(async",{"_index":1862,"title":{},"content":{"314":{"position":[[158,23]]}},"keywords":{}}],["event.requestcontext.connectionid",{"_index":2006,"title":{},"content":{"340":{"position":[[936,33]]}},"keywords":{}}],["event.requestcontext.{domainname,stage}if",{"_index":2004,"title":{},"content":{"340":{"position":[[837,41]]}},"keywords":{}}],["event.requiredcontenttyp",{"_index":1707,"title":{},"content":{"265":{"position":[[138,25]]}},"keywords":{}}],["eventbridg",{"_index":728,"title":{"74":{"position":[[0,11]]}},"content":{"78":{"position":[[29,11]]}},"keywords":{}}],["eventnorm",{"_index":1542,"title":{},"content":{"225":{"position":[[39,15]]}},"keywords":{}}],["eventnormalizermiddlewar",{"_index":718,"title":{},"content":{"55":{"position":[[39,25]]},"64":{"position":[[39,25]]},"73":{"position":[[39,25]]},"82":{"position":[[39,25]]},"94":{"position":[[39,25]]},"97":{"position":[[39,25]]},"100":{"position":[[39,25]]},"110":{"position":[[39,25]]},"113":{"position":[[39,25]]},"116":{"position":[[39,25]]},"119":{"position":[[39,25]]},"122":{"position":[[39,25]]},"134":{"position":[[39,25]]},"139":{"position":[[39,25]]}},"keywords":{}}],["events.http",{"_index":1770,"title":{},"content":{"281":{"position":[[104,11]]}},"keywords":{}}],["eventschema",{"_index":216,"title":{},"content":{"5":{"position":[[1913,12]]},"34":{"position":[[1216,11],[2224,12]]},"43":{"position":[[1216,11],[2235,12]]},"91":{"position":[[1216,11],[2249,12]]},"102":{"position":[[314,11],[629,12]]},"146":{"position":[[1228,11],[2236,12]]},"359":{"position":[[0,11],[814,11]]},"362":{"position":[[448,12],[2038,12]]},"363":{"position":[[692,11],[828,12]]},"364":{"position":[[202,11],[400,12]]},"365":{"position":[[271,11],[359,12]]},"429":{"position":[[115,12]]},"466":{"position":[[828,12],[1056,12]]}},"keywords":{}}],["eventschema.json",{"_index":669,"title":{},"content":{"34":{"position":[[1233,20]]},"43":{"position":[[1233,20]]},"91":{"position":[[1233,20]]},"102":{"position":[[331,20]]},"146":{"position":[[1245,20]]}},"keywords":{}}],["eventsourcemap",{"_index":1868,"title":{},"content":{"315":{"position":[[94,19],[159,18]]}},"keywords":{}}],["eventsrefactor",{"_index":2196,"title":{},"content":{"404":{"position":[[32,16]]}},"keywords":{}}],["everyon",{"_index":875,"title":{},"content":{"152":{"position":[[52,8]]}},"keywords":{}}],["everyth",{"_index":566,"title":{},"content":{"21":{"position":[[1868,10]]},"265":{"position":[[198,10]]}},"keywords":{}}],["exampl",{"_index":133,"title":{"5":{"position":[[8,8]]},"25":{"position":[[0,8]]},"28":{"position":[[0,8]]},"31":{"position":[[0,8]]},"34":{"position":[[0,8]]},"37":{"position":[[0,8]]},"40":{"position":[[0,8]]},"43":{"position":[[0,8]]},"46":{"position":[[0,8]]},"49":{"position":[[0,8]]},"52":{"position":[[0,8]]},"55":{"position":[[0,8]]},"58":{"position":[[0,8]]},"61":{"position":[[0,8]]},"64":{"position":[[0,8]]},"68":{"position":[[0,8]]},"70":{"position":[[0,8]]},"73":{"position":[[0,8]]},"77":{"position":[[0,8]]},"79":{"position":[[0,8]]},"82":{"position":[[0,8]]},"85":{"position":[[0,8]]},"88":{"position":[[0,8]]},"91":{"position":[[0,8]]},"94":{"position":[[0,8]]},"97":{"position":[[0,8]]},"100":{"position":[[0,8]]},"107":{"position":[[0,8]]},"110":{"position":[[0,8]]},"113":{"position":[[0,8]]},"116":{"position":[[0,8]]},"119":{"position":[[0,8]]},"122":{"position":[[0,8]]},"125":{"position":[[0,8]]},"128":{"position":[[0,8]]},"131":{"position":[[0,8]]},"134":{"position":[[0,8]]},"139":{"position":[[0,8]]},"142":{"position":[[0,8]]},"146":{"position":[[0,8]]},"157":{"position":[[0,8]]},"192":{"position":[[20,8]]},"193":{"position":[[32,8]]},"363":{"position":[[16,7]]},"477":{"position":[[5,8]]}},"content":{"5":{"position":[[56,8]]},"21":{"position":[[2553,7]]},"136":{"position":[[98,8]]},"153":{"position":[[565,8]]},"156":{"position":[[28,8]]},"157":{"position":[[1017,8]]},"161":{"position":[[706,7]]},"167":{"position":[[1176,7]]},"168":{"position":[[113,7]]},"174":{"position":[[1337,8],[1778,8]]},"178":{"position":[[1203,8]]},"179":{"position":[[153,8]]},"189":{"position":[[304,8],[700,7]]},"277":{"position":[[384,9],[476,8]]},"362":{"position":[[0,7],[713,7],[1372,7]]},"363":{"position":[[94,8]]},"370":{"position":[[100,7]]},"472":{"position":[[953,8]]},"473":{"position":[[406,8]]},"477":{"position":[[5,8],[66,8]]},"478":{"position":[[26,7]]}},"keywords":{}}],["except",{"_index":1283,"title":{},"content":{"175":{"position":[[95,10]]},"228":{"position":[[887,9]]},"324":{"position":[[160,10]]}},"keywords":{}}],["excess",{"_index":285,"title":{},"content":{"7":{"position":[[135,6],[216,6]]}},"keywords":{}}],["exclud",{"_index":1458,"title":{},"content":{"199":{"position":[[3,7],[57,7]]},"204":{"position":[[3,7],[56,7]]},"288":{"position":[[3,7],[51,7]]},"291":{"position":[[785,9]]},"295":{"position":[[3,7],[50,7]]},"300":{"position":[[3,7],[63,7]]},"305":{"position":[[3,7],[50,7]]},"310":{"position":[[3,7],[64,7]]},"320":{"position":[[3,7],[51,7]]},"329":{"position":[[3,7],[51,7]]},"344":{"position":[[3,7],[71,7]]}},"keywords":{}}],["execut",{"_index":888,"title":{"163":{"position":[[0,9]]}},"content":{"153":{"position":[[59,9],[216,9]]},"160":{"position":[[126,9],[455,9],[719,9]]},"161":{"position":[[145,9]]},"163":{"position":[[95,9],[242,9],[418,10],[602,8]]},"170":{"position":[[867,9]]},"178":{"position":[[1083,10]]},"183":{"position":[[42,9],[378,10]]},"189":{"position":[[88,9]]},"265":{"position":[[74,8],[502,9]]},"332":{"position":[[153,10]]},"340":{"position":[[747,7]]},"398":{"position":[[973,9]]},"475":{"position":[[123,8],[177,8],[232,8]]}},"keywords":{}}],["executed.requeststart",{"_index":1022,"title":{},"content":{"161":{"position":[[239,24]]}},"keywords":{}}],["exist",{"_index":2306,"title":{},"content":{"477":{"position":[[33,8]]}},"keywords":{}}],["exit",{"_index":911,"title":{},"content":{"153":{"position":[[1013,5]]},"167":{"position":[[1308,4],[1343,7]]},"189":{"position":[[1314,5]]},"398":{"position":[[767,5]]}},"keywords":{}}],["expect",{"_index":1035,"title":{},"content":{"163":{"position":[[400,8]]},"265":{"position":[[604,8]]}},"keywords":{}}],["expect(response).not.tobe(nul",{"_index":2095,"title":{},"content":{"362":{"position":[[1262,31]]}},"keywords":{}}],["expect(response.body).toequ",{"_index":1698,"title":{},"content":{"260":{"position":[[484,31]]}},"keywords":{}}],["experi",{"_index":458,"title":{},"content":{"15":{"position":[[365,12]]},"21":{"position":[[2481,11]]},"478":{"position":[[928,11]]}},"keywords":{}}],["expert",{"_index":2313,"title":{},"content":{"478":{"position":[[827,8]]}},"keywords":{}}],["expir",{"_index":2275,"title":{},"content":{"474":{"position":[[129,7]]}},"keywords":{}}],["expirymonth",{"_index":168,"title":{},"content":{"5":{"position":[[784,12],[1349,12]]}},"keywords":{}}],["expiryyear",{"_index":169,"title":{},"content":{"5":{"position":[[797,11],[1408,11]]}},"keywords":{}}],["explicitli",{"_index":1472,"title":{},"content":{"207":{"position":[[228,10]]}},"keywords":{}}],["export",{"_index":70,"title":{},"content":{"2":{"position":[[492,6]]},"13":{"position":[[295,6]]},"15":{"position":[[239,6]]},"21":{"position":[[882,6]]},"22":{"position":[[742,6]]},"25":{"position":[[32,6]]},"28":{"position":[[32,6]]},"31":{"position":[[581,6]]},"34":{"position":[[1353,6]]},"37":{"position":[[1478,6]]},"40":{"position":[[32,6]]},"43":{"position":[[1353,6]]},"46":{"position":[[32,6]]},"49":{"position":[[32,6]]},"52":{"position":[[32,6]]},"55":{"position":[[96,6]]},"58":{"position":[[32,6]]},"61":{"position":[[32,6]]},"64":{"position":[[96,6]]},"68":{"position":[[32,6]]},"70":{"position":[[32,6]]},"73":{"position":[[96,6]]},"77":{"position":[[32,6]]},"79":{"position":[[32,6]]},"82":{"position":[[96,6]]},"85":{"position":[[32,6]]},"88":{"position":[[32,6]]},"91":{"position":[[1353,6]]},"94":{"position":[[96,6]]},"97":{"position":[[96,6]]},"100":{"position":[[96,6]]},"103":{"position":[[266,6]]},"104":{"position":[[250,6]]},"107":{"position":[[32,6]]},"110":{"position":[[96,6]]},"113":{"position":[[96,6]]},"116":{"position":[[96,6]]},"119":{"position":[[96,6]]},"122":{"position":[[96,6]]},"125":{"position":[[32,6]]},"128":{"position":[[172,6]]},"131":{"position":[[32,6]]},"134":{"position":[[96,6]]},"139":{"position":[[166,6]]},"142":{"position":[[32,6]]},"146":{"position":[[1365,6]]},"148":{"position":[[594,6]]},"157":{"position":[[242,6],[822,6]]},"168":{"position":[[648,6]]},"174":{"position":[[312,6]]},"178":{"position":[[429,6]]},"182":{"position":[[363,6]]},"186":{"position":[[486,6]]},"188":{"position":[[709,6]]},"192":{"position":[[88,6]]},"193":{"position":[[88,6]]},"220":{"position":[[202,6]]},"221":{"position":[[258,6]]},"229":{"position":[[223,6]]},"314":{"position":[[305,6]]},"337":{"position":[[154,6]]},"342":{"position":[[76,6]]},"343":{"position":[[76,6]]},"348":{"position":[[580,6]]},"352":{"position":[[462,6]]},"363":{"position":[[779,6]]},"364":{"position":[[351,6]]},"365":{"position":[[310,6]]},"466":{"position":[[727,6],[995,6]]},"472":{"position":[[87,8],[836,6],[1122,6]]},"473":{"position":[[447,6]]},"474":{"position":[[1509,6]]},"475":{"position":[[733,6]]},"476":{"position":[[607,6]]},"478":{"position":[[693,6]]}},"keywords":{}}],["expos",{"_index":588,"title":{},"content":{"21":{"position":[[2313,6]]},"232":{"position":[[897,6]]},"473":{"position":[[774,7]]}},"keywords":{}}],["express",{"_index":109,"title":{},"content":{"4":{"position":[[147,8]]},"6":{"position":[[572,8]]},"324":{"position":[[1154,7]]},"355":{"position":[[398,7]]}},"keywords":{}}],["expressions@keboola/middi",{"_index":1929,"title":{},"content":{"324":{"position":[[89,25]]}},"keywords":{}}],["expressionsset",{"_index":1355,"title":{},"content":{"183":{"position":[[259,14]]}},"keywords":{}}],["extend",{"_index":2153,"title":{},"content":{"383":{"position":[[7,8],[80,10]]}},"keywords":{}}],["extern",{"_index":416,"title":{},"content":{"13":{"position":[[425,9]]},"15":{"position":[[402,10]]},"265":{"position":[[544,8]]},"474":{"position":[[477,8]]}},"keywords":{}}],["extract",{"_index":1467,"title":{},"content":{"207":{"position":[[100,9]]},"324":{"position":[[57,8]]}},"keywords":{}}],["extractor",{"_index":1928,"title":{},"content":{"324":{"position":[[46,10]]}},"keywords":{}}],["extraparamet",{"_index":1634,"title":{},"content":{"251":{"position":[[70,15]]}},"keywords":{}}],["fact",{"_index":996,"title":{},"content":{"159":{"position":[[539,5]]}},"keywords":{}}],["factori",{"_index":931,"title":{},"content":{"156":{"position":[[281,7]]}},"keywords":{}}],["fail",{"_index":1011,"title":{},"content":{"160":{"position":[[729,5]]},"167":{"position":[[994,7],[1298,6]]},"228":{"position":[[918,5]]},"282":{"position":[[581,6]]},"313":{"position":[[75,5]]},"362":{"position":[[689,6],[1242,6]]},"426":{"position":[[187,5]]}},"keywords":{}}],["failur",{"_index":814,"title":{"311":{"position":[[18,7]]},"391":{"position":[[18,8]]},"426":{"position":[[18,8]]},"463":{"position":[[18,8]]}},"content":{"139":{"position":[[157,8]]},"282":{"position":[[554,8]]},"312":{"position":[[100,7]]},"314":{"position":[[79,8]]},"315":{"position":[[139,8]]}},"keywords":{}}],["fallback",{"_index":1622,"title":{},"content":{"243":{"position":[[293,8]]},"359":{"position":[[722,8]]},"406":{"position":[[39,8]]}},"keywords":{}}],["fallbackmessag",{"_index":2151,"title":{},"content":{"375":{"position":[[195,15]]}},"keywords":{}}],["fals",{"_index":378,"title":{},"content":{"10":{"position":[[258,6]]},"167":{"position":[[965,6]]},"173":{"position":[[831,6]]},"197":{"position":[[620,7],[1019,7]]},"202":{"position":[[616,7],[1014,7]]},"211":{"position":[[78,5],[342,6]]},"212":{"position":[[336,5]]},"229":{"position":[[849,6],[872,6]]},"232":{"position":[[146,6]]},"243":{"position":[[124,5]]},"247":{"position":[[232,5]]},"251":{"position":[[417,5]]},"273":{"position":[[125,5]]},"277":{"position":[[106,7]]},"286":{"position":[[347,7],[747,7]]},"291":{"position":[[573,7]]},"298":{"position":[[631,7],[1093,7],[1498,7]]},"303":{"position":[[599,7],[991,7]]},"308":{"position":[[648,7],[1041,7]]},"318":{"position":[[459,7],[852,7]]},"327":{"position":[[631,7],[1024,7]]},"332":{"position":[[129,5]]},"340":{"position":[[584,7]]},"474":{"position":[[692,6],[750,5]]}},"keywords":{}}],["false)cachecontrol",{"_index":1594,"title":{},"content":{"232":{"position":[[1209,18]]}},"keywords":{}}],["false)defaulthead",{"_index":1614,"title":{},"content":{"239":{"position":[[139,20]]}},"keywords":{}}],["false)disablebeforepreflightrespons",{"_index":1579,"title":{},"content":{"232":{"position":[[87,36]]}},"keywords":{}}],["false)getorigin",{"_index":1584,"title":{},"content":{"232":{"position":[[444,15]]}},"keywords":{}}],["false)maxag",{"_index":1590,"title":{},"content":{"232":{"position":[[922,12]]}},"keywords":{}}],["false)method",{"_index":1583,"title":{},"content":{"232":{"position":[[354,13]]}},"keywords":{}}],["false)requestmethod",{"_index":1593,"title":{},"content":{"232":{"position":[[1110,20]]}},"keywords":{}}],["false)runonerror",{"_index":1491,"title":{},"content":{"211":{"position":[[312,16]]}},"keywords":{}}],["false.capturecoldstartmetr",{"_index":1326,"title":{},"content":{"181":{"position":[[559,28]]}},"keywords":{}}],["false.clearst",{"_index":1216,"title":{},"content":{"173":{"position":[[723,16]]}},"keywords":{}}],["falseerror",{"_index":1764,"title":{},"content":{"280":{"position":[[181,10]]}},"keywords":{}}],["falsi",{"_index":1124,"title":{},"content":{"167":{"position":[[711,5]]}},"keywords":{}}],["familiar",{"_index":110,"title":{},"content":{"4":{"position":[[173,8]]}},"keywords":{}}],["famou",{"_index":2047,"title":{},"content":{"355":{"position":[[370,6]]}},"keywords":{}}],["faq",{"_index":803,"title":{"135":{"position":[[0,3]]}},"content":{},"keywords":{}}],["fast",{"_index":328,"title":{},"content":{"7":{"position":[[973,7],[996,7]]}},"keywords":{}}],["faster",{"_index":2242,"title":{},"content":{"466":{"position":[[71,6]]}},"keywords":{}}],["fastifi",{"_index":251,"title":{},"content":{"6":{"position":[[556,9]]},"355":{"position":[[409,7]]}},"keywords":{}}],["favour",{"_index":2214,"title":{},"content":{"421":{"position":[[14,6]]},"425":{"position":[[14,6]]}},"keywords":{}}],["fe3fd9b100f8",{"_index":1484,"title":{},"content":{"208":{"position":[[282,13]]}},"keywords":{}}],["featur",{"_index":590,"title":{},"content":{"21":{"position":[[2398,7]]},"171":{"position":[[4,9]]},"175":{"position":[[4,9]]},"179":{"position":[[4,9]]},"183":{"position":[[4,9]]},"185":{"position":[[244,8]]},"354":{"position":[[21,8],[268,8]]},"395":{"position":[[48,7]]}},"keywords":{}}],["feature)frameguard",{"_index":1660,"title":{},"content":{"255":{"position":[[106,18]]}},"keywords":{}}],["feel",{"_index":878,"title":{},"content":{"152":{"position":[[111,4]]}},"keywords":{}}],["fetch",{"_index":1444,"title":{"283":{"position":[[0,5]]}},"content":{"197":{"position":[[786,7],[891,5]]},"202":{"position":[[781,7],[886,5]]},"283":{"position":[[11,5],[62,5],[109,7],[164,5],[269,7],[332,7],[422,7],[487,7]]},"286":{"position":[[514,7],[619,5]]},"298":{"position":[[742,5],[1265,7],[1370,5]]},"299":{"position":[[343,5]]},"303":{"position":[[758,7],[863,5]]},"308":{"position":[[808,7],[913,5]]},"318":{"position":[[619,7],[724,5]]},"324":{"position":[[1486,6]]},"327":{"position":[[791,7],[896,5]]},"328":{"position":[[989,5]]},"386":{"position":[[18,5]]},"388":{"position":[[18,5]]},"393":{"position":[[18,5]]},"474":{"position":[[850,5],[908,5],[996,12],[1093,5],[1165,6],[1269,6]]}},"keywords":{}}],["fetchdata",{"_index":756,"title":{},"content":{"103":{"position":[[325,10],[516,10],[603,10],[679,10]]},"104":{"position":[[309,10],[443,10],[524,10],[613,10]]},"198":{"position":[[264,10]]},"203":{"position":[[261,10]]},"287":{"position":[[265,10]]},"299":{"position":[[174,10]]},"304":{"position":[[271,10]]},"309":{"position":[[286,10]]},"319":{"position":[[246,10]]},"328":{"position":[[165,10],[660,10],[744,10]]},"474":{"position":[[633,10]]}},"keywords":{}}],["fetchrotationd",{"_index":1843,"title":{},"content":{"298":{"position":[[1633,17]]}},"keywords":{}}],["few",{"_index":925,"title":{},"content":{"156":{"position":[[82,3]]},"167":{"position":[[428,3]]},"179":{"position":[[460,3]]}},"keywords":{}}],["field",{"_index":1129,"title":{},"content":{"167":{"position":[[937,6]]},"170":{"position":[[303,6]]},"171":{"position":[[28,6]]},"174":{"position":[[1201,6],[1361,5],[1452,5]]},"259":{"position":[[50,6]]},"260":{"position":[[410,7]]},"277":{"position":[[268,6]]}},"keywords":{}}],["file",{"_index":286,"title":{},"content":{"7":{"position":[[142,5],[268,4]]},"13":{"position":[[356,5]]},"17":{"position":[[89,4]]},"19":{"position":[[65,4]]},"251":{"position":[[897,6],[983,5]]},"303":{"position":[[1109,4]]},"324":{"position":[[409,4]]},"361":{"position":[[37,4],[212,4]]},"363":{"position":[[414,4],[458,5],[564,4],[600,5]]}},"keywords":{}}],["filenam",{"_index":456,"title":{},"content":{"15":{"position":[[308,9]]}},"keywords":{}}],["fileurltopath",{"_index":448,"title":{},"content":{"15":{"position":[[114,13]]}},"keywords":{}}],["fileurltopath(import.meta.url",{"_index":451,"title":{},"content":{"15":{"position":[[165,30]]}},"keywords":{}}],["filter",{"_index":1679,"title":{},"content":{"259":{"position":[[98,6]]},"282":{"position":[[417,6]]},"322":{"position":[[210,9]]}},"keywords":{}}],["filteringkeynam",{"_index":1677,"title":{},"content":{"259":{"position":[[0,16]]}},"keywords":{}}],["final",{"_index":1277,"title":{},"content":{"174":{"position":[[2319,8]]}},"keywords":{}}],["find",{"_index":21,"title":{},"content":{"1":{"position":[[31,4]]},"6":{"position":[[1034,4]]},"167":{"position":[[1456,4]]}},"keywords":{}}],["firehos",{"_index":741,"title":{"98":{"position":[[8,8]]}},"content":{"99":{"position":[[42,8]]}},"keywords":{}}],["first",{"_index":11,"title":{},"content":{"0":{"position":[[167,5]]},"21":{"position":[[2174,5]]},"151":{"position":[[168,6]]},"159":{"position":[[269,5],[300,5]]},"161":{"position":[[302,5]]},"163":{"position":[[643,5],[721,5]]},"164":{"position":[[36,5]]},"215":{"position":[[126,5]]},"265":{"position":[[468,5]]},"362":{"position":[[1981,5]]},"398":{"position":[[332,5]]}},"keywords":{}}],["firstdefault",{"_index":1712,"title":{},"content":{"265":{"position":[[340,12]]}},"keywords":{}}],["firstnam",{"_index":1681,"title":{},"content":{"260":{"position":[[186,10],[516,10]]}},"keywords":{}}],["firstname,lastnam",{"_index":1697,"title":{},"content":{"260":{"position":[[418,20]]}},"keywords":{}}],["fli",{"_index":2076,"title":{},"content":{"359":{"position":[[1118,3]]}},"keywords":{}}],["flight",{"_index":1596,"title":{},"content":{"232":{"position":[[1293,6]]}},"keywords":{}}],["flow",{"_index":889,"title":{},"content":{"153":{"position":[[69,4]]},"160":{"position":[[102,4]]},"189":{"position":[[98,4]]},"473":{"position":[[348,5]]}},"keywords":{}}],["fluent",{"_index":2087,"title":{},"content":{"361":{"position":[[10,6]]}},"keywords":{}}],["flush",{"_index":1177,"title":{},"content":{"170":{"position":[[724,7]]}},"keywords":{}}],["focu",{"_index":115,"title":{},"content":{"4":{"position":[[301,5]]},"6":{"position":[[99,5]]}},"keywords":{}}],["focus",{"_index":927,"title":{},"content":{"156":{"position":[[130,8]]}},"keywords":{}}],["follow",{"_index":4,"title":{},"content":{"0":{"position":[[36,9]]},"160":{"position":[[222,9]]},"167":{"position":[[947,8],[1268,8]]},"170":{"position":[[178,9]]},"173":{"position":[[30,9],[164,9],[494,9],[620,9]]},"174":{"position":[[423,9]]},"177":{"position":[[30,9],[388,9],[514,9]]},"181":{"position":[[30,9],[309,9],[437,9]]},"182":{"position":[[501,10]]},"185":{"position":[[23,9]]},"188":{"position":[[233,8]]},"189":{"position":[[686,9],[789,10]]},"265":{"position":[[121,9]]},"369":{"position":[[68,9]]},"395":{"position":[[206,9]]},"472":{"position":[[943,9]]},"475":{"position":[[312,9]]}},"keywords":{}}],["foo",{"_index":1225,"title":{},"content":{"174":{"position":[[285,4]]},"248":{"position":[[457,4],[523,4]]},"252":{"position":[[700,4]]},"362":{"position":[[276,7],[395,4],[533,3]]},"472":{"position":[[1199,6]]}},"keywords":{}}],["forc",{"_index":1137,"title":{},"content":{"167":{"position":[[1337,5]]}},"keywords":{}}],["forev",{"_index":1447,"title":{},"content":{"197":{"position":[[944,8]]},"202":{"position":[[939,8]]},"286":{"position":[[672,8]]},"298":{"position":[[1423,8]]},"303":{"position":[[916,8]]},"308":{"position":[[966,8]]},"318":{"position":[[777,8]]},"327":{"position":[[949,8]]}},"keywords":{}}],["form",{"_index":1734,"title":{},"content":{"274":{"position":[[456,4]]},"281":{"position":[[956,4]]}},"keywords":{}}],["formal",{"_index":2155,"title":{},"content":{"383":{"position":[[52,8]]}},"keywords":{}}],["format",{"_index":303,"title":{},"content":{"7":{"position":[[455,7],[488,7],[528,7]]},"13":{"position":[[389,7]]},"170":{"position":[[761,9]]},"239":{"position":[[72,7]]},"323":{"position":[[377,6]]},"347":{"position":[[227,9]]},"351":{"position":[[106,9]]},"355":{"position":[[103,7],[244,6],[683,7]]},"360":{"position":[[80,8],[93,7]]},"361":{"position":[[62,7]]},"362":{"position":[[1842,7]]}},"keywords":{}}],["format=cj",{"_index":480,"title":{},"content":{"18":{"position":[[77,10]]}},"keywords":{}}],["format=esm",{"_index":393,"title":{},"content":{"12":{"position":[[139,10]]}},"keywords":{}}],["formathttp",{"_index":1774,"title":{},"content":{"281":{"position":[[511,10]]}},"keywords":{}}],["formats/src",{"_index":302,"title":{},"content":{"7":{"position":[[436,11]]}},"keywords":{}}],["formatt",{"_index":1191,"title":{},"content":{"171":{"position":[[368,9],[394,10]]},"174":{"position":[[2369,9]]}},"keywords":{}}],["former.shar",{"_index":2019,"title":{},"content":{"347":{"position":[[656,13]]},"351":{"position":[[424,13]]}},"keywords":{}}],["forward",{"_index":1792,"title":{},"content":{"282":{"position":[[613,8]]}},"keywords":{}}],["found",{"_index":1703,"title":{},"content":{"264":{"position":[[30,6]]},"359":{"position":[[698,6],[1035,5]]},"399":{"position":[[257,5]]}},"keywords":{}}],["fr",{"_index":681,"title":{},"content":{"34":{"position":[[1622,3]]},"37":{"position":[[1747,3]]},"43":{"position":[[1622,3]]},"91":{"position":[[1647,3]]},"146":{"position":[[1634,3]]},"229":{"position":[[378,3],[382,4],[909,3],[913,4]]},"363":{"position":[[761,2],[858,2]]},"364":{"position":[[302,2],[460,2]]},"365":{"position":[[208,2],[419,2]]},"466":{"position":[[970,2],[1147,2]]}},"keywords":{}}],["fr.j",{"_index":2117,"title":{},"content":{"363":{"position":[[769,9]]}},"keywords":{}}],["framework",{"_index":108,"title":{"149":{"position":[[11,9]]}},"content":{"4":{"position":[[131,10]]},"6":{"position":[[545,10],[1130,9]]},"149":{"position":[[11,9]]},"324":{"position":[[1435,9]]},"355":{"position":[[382,10]]}},"keywords":{}}],["frappucino",{"_index":1736,"title":{},"content":{"274":{"position":[[597,11]]}},"keywords":{}}],["frappucino=muffin&goat%5b%5d=scone&pond=moos",{"_index":1735,"title":{},"content":{"274":{"position":[[482,55]]}},"keywords":{}}],["free",{"_index":879,"title":{},"content":{"152":{"position":[[116,4]]}},"keywords":{}}],["ftl",{"_index":2088,"title":{},"content":{"361":{"position":[[17,6],[168,3],[208,3]]},"363":{"position":[[514,3]]},"365":{"position":[[223,3]]},"466":{"position":[[985,3]]}},"keywords":{}}],["full",{"_index":1073,"title":{},"content":{"166":{"position":[[96,4]]},"175":{"position":[[90,4]]},"232":{"position":[[520,4]]}},"keywords":{}}],["fun",{"_index":995,"title":{},"content":{"159":{"position":[[535,3]]}},"keywords":{}}],["function",{"_index":257,"title":{"89":{"position":[[0,8]]},"192":{"position":[[7,8]]},"264":{"position":[[11,10]]},"372":{"position":[[0,8]]}},"content":{"6":{"position":[[798,9]]},"21":{"position":[[2682,8]]},"106":{"position":[[52,8]]},"153":{"position":[[651,8]]},"156":{"position":[[289,9],[473,8]]},"157":{"position":[[944,9]]},"161":{"position":[[429,9],[443,8]]},"167":{"position":[[822,9]]},"168":{"position":[[328,8]]},"170":{"position":[[530,8],[824,9]]},"174":{"position":[[1396,8]]},"175":{"position":[[216,9]]},"178":{"position":[[1060,8],[1189,9],[1220,8],[1453,9]]},"179":{"position":[[342,8]]},"182":{"position":[[1063,8]]},"183":{"position":[[403,8]]},"188":{"position":[[57,8],[567,9],[634,8]]},"189":{"position":[[877,8]]},"194":{"position":[[204,9]]},"197":{"position":[[404,10]]},"202":{"position":[[400,10]]},"215":{"position":[[19,8]]},"239":{"position":[[274,10],[299,8]]},"243":{"position":[[47,8]]},"247":{"position":[[8,10]]},"264":{"position":[[87,8],[108,8]]},"277":{"position":[[7,8],[47,8],[507,9],[536,8]]},"280":{"position":[[291,8]]},"291":{"position":[[353,10],[452,10]]},"298":{"position":[[407,10]]},"299":{"position":[[305,8]]},"303":{"position":[[383,10]]},"308":{"position":[[432,10]]},"313":{"position":[[7,10],[32,8]]},"318":{"position":[[252,10]]},"322":{"position":[[519,8],[585,8]]},"323":{"position":[[70,9],[444,9],[656,8],[713,9]]},"324":{"position":[[494,9],[1032,8]]},"327":{"position":[[367,10]]},"332":{"position":[[15,8],[176,8]]},"336":{"position":[[8,10]]},"340":{"position":[[454,10]]},"347":{"position":[[304,10],[355,8]]},"351":{"position":[[169,10],[230,8]]},"354":{"position":[[439,13]]},"359":{"position":[[12,10],[163,10],[423,10]]},"398":{"position":[[804,8]]},"466":{"position":[[126,14]]},"472":{"position":[[101,8],[152,8]]},"473":{"position":[[303,9]]},"475":{"position":[[106,8],[160,8],[215,8],[285,9]]},"476":{"position":[[282,14],[398,8]]}},"keywords":{}}],["function(incomingorigin:str",{"_index":1585,"title":{},"content":{"232":{"position":[[460,32]]}},"keywords":{}}],["functionfailonmismatch",{"_index":1556,"title":{},"content":{"228":{"position":[[786,22]]}},"keywords":{}}],["functionnam",{"_index":1423,"title":{},"content":{"194":{"position":[[190,13]]}},"keywords":{}}],["functionparseencod",{"_index":1548,"title":{},"content":{"228":{"position":[[186,22]]}},"keywords":{}}],["functionparselanguag",{"_index":1550,"title":{},"content":{"228":{"position":[[384,22]]}},"keywords":{}}],["functionparsemediatyp",{"_index":1553,"title":{},"content":{"228":{"position":[[582,23]]}},"keywords":{}}],["functionresponsetyp",{"_index":1867,"title":{},"content":{"315":{"position":[[65,21]]}},"keywords":{}}],["futur",{"_index":1659,"title":{},"content":{"255":{"position":[[98,7]]},"444":{"position":[[78,6]]}},"keywords":{}}],["gain",{"_index":1051,"title":{},"content":{"164":{"position":[[187,4]]}},"keywords":{}}],["gateway",{"_index":616,"title":{"23":{"position":[[4,7]]},"29":{"position":[[4,7]]},"32":{"position":[[4,7]]},"41":{"position":[[4,7]]},"342":{"position":[[4,8]]}},"content":{"24":{"position":[[72,7]]},"168":{"position":[[208,8]]},"322":{"position":[[1377,7]]},"347":{"position":[[386,7]]},"432":{"position":[[38,7]]},"478":{"position":[[114,8]]}},"keywords":{}}],["gatewaywork",{"_index":625,"title":{},"content":{"30":{"position":[[33,14]]},"33":{"position":[[33,14]]},"42":{"position":[[33,14]]},"90":{"position":[[33,14]]}},"keywords":{}}],["gender",{"_index":1685,"title":{},"content":{"260":{"position":[[222,7]]}},"keywords":{}}],["gener",{"_index":250,"title":{"343":{"position":[[0,8]]}},"content":{"6":{"position":[[533,7],[812,9]]},"167":{"position":[[1197,9]]},"175":{"position":[[160,10]]},"178":{"position":[[720,9]]},"232":{"position":[[540,10]]},"369":{"position":[[16,7]]},"370":{"position":[[16,7]]},"472":{"position":[[77,9]]}},"keywords":{}}],["get",{"_index":917,"title":{"154":{"position":[[0,7]]}},"content":{"163":{"position":[[801,4]]},"212":{"position":[[268,4]]},"283":{"position":[[218,4]]}},"keywords":{}}],["gethandl",{"_index":701,"title":{},"content":{"37":{"position":[[1236,10],[1406,10]]},"348":{"position":[[140,10],[508,10]]}},"keywords":{}}],["getintern",{"_index":50,"title":{},"content":{"2":{"position":[[219,13]]},"103":{"position":[[41,11]]},"104":{"position":[[41,11]]},"328":{"position":[[494,11],[1046,12]]},"399":{"position":[[0,11]]},"474":{"position":[[567,12]]}},"keywords":{}}],["getinternal(['key",{"_index":92,"title":{},"content":{"2":{"position":[[866,20]]}},"keywords":{}}],["getinternal(['node_env",{"_index":2227,"title":{},"content":{"434":{"position":[[145,25]]}},"keywords":{}}],["getinternal(object.keys(options.fetchdata",{"_index":2292,"title":{},"content":{"474":{"position":[[1371,43]]}},"keywords":{}}],["getinternal(tru",{"_index":96,"title":{},"content":{"2":{"position":[[1217,17]]},"103":{"position":[[792,17]]},"104":{"position":[[731,17]]}},"keywords":{}}],["getinternal({'newkey':'key",{"_index":93,"title":{},"content":{"2":{"position":[[989,29]]}},"keywords":{}}],["getremainingtimeinmilli",{"_index":2302,"title":{},"content":{"476":{"position":[[368,24]]}},"keywords":{}}],["getvalu",{"_index":2138,"title":{},"content":{"369":{"position":[[301,9]]}},"keywords":{}}],["gitattribut",{"_index":361,"title":{},"content":{"7":{"position":[[1492,14]]}},"keywords":{}}],["github",{"_index":823,"title":{},"content":{"143":{"position":[[135,7]]},"147":{"position":[[127,7]]},"148":{"position":[[136,7]]},"149":{"position":[[143,7]]},"150":{"position":[[139,7]]},"151":{"position":[[160,7]]},"159":{"position":[[217,6]]},"165":{"position":[[171,6]]},"167":{"position":[[130,7]]},"190":{"position":[[132,7]]}},"keywords":{}}],["give",{"_index":2314,"title":{},"content":{"478":{"position":[[899,4]]}},"keywords":{}}],["global",{"_index":1273,"title":{},"content":{"174":{"position":[[1706,6]]}},"keywords":{}}],["globaldefault",{"_index":1979,"title":{},"content":{"328":{"position":[[125,14],[400,14],[620,14]]}},"keywords":{}}],["go",{"_index":1894,"title":{},"content":{"322":{"position":[[569,5]]}},"keywords":{}}],["goat",{"_index":1738,"title":{},"content":{"274":{"position":[[619,9]]}},"keywords":{}}],["goe",{"_index":1075,"title":{},"content":{"166":{"position":[[142,4]]}},"keywords":{}}],["good",{"_index":568,"title":{},"content":{"21":{"position":[[1885,5]]},"189":{"position":[[529,4]]},"251":{"position":[[791,4]]},"478":{"position":[[923,4]]}},"keywords":{}}],["gql",{"_index":830,"title":{},"content":{"148":{"position":[[199,3]]}},"keywords":{}}],["gql(graphqlfiletostr",{"_index":838,"title":{},"content":{"148":{"position":[[473,22]]}},"keywords":{}}],["gracefulli",{"_index":1136,"title":{},"content":{"167":{"position":[[1313,10]]},"281":{"position":[[641,10]]}},"keywords":{}}],["graphql",{"_index":836,"title":{},"content":{"148":{"position":[[403,7]]}},"keywords":{}}],["graphql/resolvers.j",{"_index":833,"title":{},"content":{"148":{"position":[[317,24]]}},"keywords":{}}],["graphql/schema.j",{"_index":835,"title":{},"content":{"148":{"position":[[375,21]]}},"keywords":{}}],["graphqlfiletostr",{"_index":834,"title":{},"content":{"148":{"position":[[351,16]]}},"keywords":{}}],["great",{"_index":1065,"title":{},"content":{"165":{"position":[[149,5]]}},"keywords":{}}],["gt",{"_index":60,"title":{},"content":{"2":{"position":[[325,5],[400,5],[605,5],[767,5],[901,4],[1033,4],[1249,4],[1328,5]]},"5":{"position":[[661,5]]},"13":{"position":[[318,5]]},"21":{"position":[[88,5],[185,5],[249,5],[430,5],[475,5],[653,5],[700,5],[744,5]]},"22":{"position":[[119,5],[207,5],[271,5],[335,5],[380,5],[513,5],[560,5],[604,5]]},"25":{"position":[[100,5]]},"28":{"position":[[99,5]]},"34":{"position":[[1409,5],[2094,5],[2329,5]]},"37":{"position":[[1534,5],[2219,5]]},"40":{"position":[[100,5]]},"43":{"position":[[1409,5],[2094,5],[2340,5]]},"46":{"position":[[169,5]]},"49":{"position":[[99,5]]},"52":{"position":[[99,5]]},"55":{"position":[[197,5]]},"58":{"position":[[99,5]]},"61":{"position":[[99,5]]},"64":{"position":[[197,5]]},"68":{"position":[[99,5]]},"70":{"position":[[100,5]]},"73":{"position":[[197,5]]},"77":{"position":[[99,5]]},"79":{"position":[[100,5]]},"82":{"position":[[197,5]]},"85":{"position":[[99,5]]},"88":{"position":[[99,5]]},"91":{"position":[[1409,5],[2119,5],[2354,5]]},"94":{"position":[[197,5]]},"97":{"position":[[197,5]]},"100":{"position":[[197,5]]},"102":{"position":[[705,5]]},"103":{"position":[[752,5],[866,5]]},"104":{"position":[[691,5],[805,5]]},"107":{"position":[[99,5]]},"110":{"position":[[197,5]]},"113":{"position":[[168,4],[178,4],[188,4],[236,5]]},"116":{"position":[[169,4],[179,4],[227,5]]},"119":{"position":[[197,5]]},"122":{"position":[[197,5]]},"125":{"position":[[99,5]]},"128":{"position":[[369,5]]},"131":{"position":[[99,5]]},"134":{"position":[[197,5]]},"139":{"position":[[298,5]]},"142":{"position":[[99,5]]},"146":{"position":[[1421,5],[2106,5],[2341,5]]},"151":{"position":[[781,5]]},"153":{"position":[[749,5],[836,5],[903,5],[1166,5],[1395,5]]},"157":{"position":[[206,5],[785,5]]},"167":{"position":[[599,5]]},"174":{"position":[[222,5]]},"178":{"position":[[369,5]]},"182":{"position":[[290,5]]},"186":{"position":[[395,5],[540,5]]},"188":{"position":[[741,5]]},"189":{"position":[[975,5],[1062,5],[1129,5],[1467,5],[1696,5]]},"192":{"position":[[172,5]]},"193":{"position":[[172,5]]},"198":{"position":[[112,5]]},"203":{"position":[[110,5]]},"208":{"position":[[139,5]]},"212":{"position":[[152,5],[380,5]]},"216":{"position":[[117,5]]},"220":{"position":[[516,5]]},"221":{"position":[[599,5]]},"225":{"position":[[125,5]]},"229":{"position":[[269,5]]},"232":{"position":[[1499,5],[1663,5]]},"233":{"position":[[107,5],[213,5]]},"236":{"position":[[134,5]]},"240":{"position":[[176,5]]},"244":{"position":[[128,5],[281,5]]},"248":{"position":[[198,5],[502,5]]},"252":{"position":[[208,5],[679,5]]},"256":{"position":[[134,5]]},"260":{"position":[[134,5],[476,5]]},"263":{"position":[[130,5],[236,5],[315,5]]},"266":{"position":[[140,5],[318,5],[424,5],[503,5],[689,5]]},"270":{"position":[[143,5],[402,5]]},"274":{"position":[[208,5],[569,5]]},"278":{"position":[[130,5],[467,5],[552,5]]},"287":{"position":[[113,5]]},"293":{"position":[[152,5]]},"294":{"position":[[158,5]]},"299":{"position":[[123,5],[408,5]]},"304":{"position":[[98,5]]},"309":{"position":[[127,5]]},"314":{"position":[[127,5],[198,5]]},"319":{"position":[[100,5]]},"328":{"position":[[100,5],[392,5],[595,5],[1019,5]]},"333":{"position":[[105,5],[183,5]]},"337":{"position":[[266,5]]},"342":{"position":[[122,5]]},"343":{"position":[[122,5]]},"348":{"position":[[236,5],[392,5]]},"352":{"position":[[290,5],[429,5]]},"354":{"position":[[454,4],[477,4],[500,4],[549,4],[617,4],[671,4],[722,4],[777,4],[836,4],[890,4],[939,4],[989,4],[1034,4],[1066,4],[1092,4],[1134,4],[1180,4]]},"362":{"position":[[203,5],[649,5],[919,5],[1182,5],[1636,5]]},"363":{"position":[[894,5]]},"364":{"position":[[496,5]]},"365":{"position":[[455,5]]},"369":{"position":[[154,5],[232,5],[323,5],[372,5],[512,5],[751,5]]},"375":{"position":[[68,5],[178,5]]},"395":{"position":[[266,5]]},"398":{"position":[[875,5]]},"434":{"position":[[116,5]]},"450":{"position":[[112,5]]},"472":{"position":[[322,5],[418,5],[516,5],[638,5],[1090,5]]},"473":{"position":[[493,5],[540,5],[610,5],[681,5]]},"474":{"position":[[795,5],[861,5],[1053,5],[1221,5]]},"475":{"position":[[396,5],[490,5],[551,5],[614,5]]},"476":{"position":[[448,5],[543,5],[571,5],[704,5]]},"478":{"position":[[322,5],[472,5],[631,5]]}},"keywords":{}}],["gzip",{"_index":1509,"title":{},"content":{"219":{"position":[[298,4]]},"220":{"position":[[468,7]]},"221":{"position":[[551,7]]},"405":{"position":[[22,5]]}},"keywords":{}}],["gzipoptionsdefl",{"_index":1503,"title":{},"content":{"219":{"position":[[109,18]]}},"keywords":{}}],["hack",{"_index":388,"title":{},"content":{"12":{"position":[[31,4]]}},"keywords":{}}],["halfway",{"_index":1359,"title":{},"content":{"183":{"position":[[422,7]]}},"keywords":{}}],["handl",{"_index":220,"title":{"160":{"position":[[0,8]]},"476":{"position":[[0,6]]}},"content":{"5":{"position":[[2005,7]]},"6":{"position":[[345,9]]},"148":{"position":[[572,7]]},"153":{"position":[[453,8],[530,7]]},"160":{"position":[[0,8],[296,6],[409,7],[937,6]]},"232":{"position":[[218,8]]},"255":{"position":[[64,8]]},"281":{"position":[[633,7]]},"282":{"position":[[563,7]]},"315":{"position":[[246,7]]},"347":{"position":[[495,7],[581,7]]},"351":{"position":[[263,7],[349,7]]},"359":{"position":[[940,7]]},"398":{"position":[[236,8],[566,6]]},"414":{"position":[[144,7]]},"476":{"position":[[0,6]]}},"keywords":{}}],["handledcomplet",{"_index":2208,"title":{},"content":{"416":{"position":[[55,15]]}},"keywords":{}}],["handledsmal",{"_index":2201,"title":{},"content":{"407":{"position":[[55,12]]}},"keywords":{}}],["handler",{"_index":71,"title":{"241":{"position":[[11,7]]},"375":{"position":[[11,8]]},"408":{"position":[[11,8]]},"447":{"position":[[11,8]]}},"content":{"2":{"position":[[505,7],[1172,7]]},"5":{"position":[[397,8],[531,8],[1044,7],[1131,9],[1718,8],[1782,7]]},"6":{"position":[[190,8],[451,9],[1073,9]]},"21":{"position":[[895,7],[1225,9],[1653,7],[1928,8]]},"22":{"position":[[755,7],[1087,9]]},"25":{"position":[[45,7]]},"28":{"position":[[45,7]]},"31":{"position":[[210,7],[276,7],[348,7],[446,8],[500,8],[553,8],[594,7]]},"34":{"position":[[417,8],[1366,7]]},"37":{"position":[[468,8],[1225,7],[1288,7],[1397,8],[1453,8],[1491,7]]},"40":{"position":[[45,7]]},"43":{"position":[[417,8],[1366,7]]},"46":{"position":[[45,7]]},"49":{"position":[[45,7]]},"52":{"position":[[45,7]]},"55":{"position":[[109,7]]},"58":{"position":[[45,7]]},"61":{"position":[[45,7]]},"64":{"position":[[109,7]]},"68":{"position":[[45,7]]},"70":{"position":[[45,7]]},"73":{"position":[[109,7]]},"77":{"position":[[45,7]]},"79":{"position":[[45,7]]},"82":{"position":[[109,7]]},"85":{"position":[[45,7]]},"88":{"position":[[45,7]]},"91":{"position":[[417,8],[1366,7]]},"94":{"position":[[109,7]]},"97":{"position":[[109,7]]},"100":{"position":[[109,7]]},"102":{"position":[[457,7]]},"103":{"position":[[279,7]]},"104":{"position":[[263,7]]},"107":{"position":[[45,7]]},"110":{"position":[[109,7]]},"113":{"position":[[109,7]]},"116":{"position":[[109,7]]},"119":{"position":[[109,7]]},"122":{"position":[[109,7]]},"125":{"position":[[45,7]]},"128":{"position":[[185,7]]},"131":{"position":[[45,7]]},"134":{"position":[[109,7]]},"139":{"position":[[179,7]]},"142":{"position":[[45,7]]},"146":{"position":[[417,8],[1378,7]]},"148":{"position":[[607,7]]},"153":{"position":[[1362,7]]},"156":{"position":[[111,8],[258,7],[357,8]]},"157":{"position":[[255,7],[286,7],[835,7]]},"163":{"position":[[84,7],[231,7],[649,7]]},"167":{"position":[[245,7],[355,8]]},"168":{"position":[[570,7],[663,7]]},"174":{"position":[[325,7]]},"178":{"position":[[442,7],[743,7]]},"182":{"position":[[376,7]]},"183":{"position":[[29,7],[127,7]]},"186":{"position":[[499,7]]},"188":{"position":[[722,7]]},"189":{"position":[[1663,7]]},"192":{"position":[[101,7],[143,11]]},"193":{"position":[[101,7],[143,11]]},"198":{"position":[[79,7]]},"203":{"position":[[77,7]]},"208":{"position":[[106,7]]},"211":{"position":[[141,7]]},"212":{"position":[[119,7],[257,7]]},"216":{"position":[[84,7],[133,7],[150,7]]},"220":{"position":[[215,7]]},"221":{"position":[[271,7]]},"225":{"position":[[208,7]]},"229":{"position":[[214,8],[236,7],[767,7]]},"232":{"position":[[1415,8],[1466,7],[1622,10],[1633,11]]},"233":{"position":[[74,7],[172,10],[183,11]]},"236":{"position":[[101,7]]},"240":{"position":[[103,7]]},"242":{"position":[[93,7]]},"244":{"position":[[80,8],[95,7],[183,7],[240,10],[251,11]]},"248":{"position":[[165,7],[296,7]]},"252":{"position":[[175,7],[311,7]]},"256":{"position":[[101,7],[155,7]]},"260":{"position":[[101,7]]},"263":{"position":[[419,7]]},"265":{"position":[[178,7],[282,7]]},"266":{"position":[[107,7],[211,7]]},"270":{"position":[[110,7],[270,7]]},"274":{"position":[[175,7],[363,7]]},"278":{"position":[[97,7],[434,7]]},"282":{"position":[[153,8]]},"287":{"position":[[80,7]]},"291":{"position":[[71,8],[712,7]]},"293":{"position":[[119,7]]},"294":{"position":[[119,7]]},"299":{"position":[[90,7],[314,8]]},"304":{"position":[[65,7]]},"309":{"position":[[94,7]]},"314":{"position":[[318,7]]},"319":{"position":[[67,7]]},"322":{"position":[[1395,8]]},"323":{"position":[[665,9]]},"324":{"position":[[1041,8]]},"328":{"position":[[67,7],[145,7],[562,7],[640,7]]},"333":{"position":[[209,7]]},"337":{"position":[[167,7]]},"342":{"position":[[89,7]]},"343":{"position":[[89,7]]},"347":{"position":[[29,10]]},"348":{"position":[[499,8],[555,8],[593,7]]},"351":{"position":[[25,10]]},"352":{"position":[[475,7],[573,8],[627,8]]},"359":{"position":[[294,8]]},"362":{"position":[[170,7],[505,8],[886,7],[1150,11],[1603,7]]},"363":{"position":[[792,7]]},"364":{"position":[[364,7]]},"365":{"position":[[323,7]]},"367":{"position":[[3,7]]},"398":{"position":[[918,10]]},"399":{"position":[[101,7]]},"415":{"position":[[46,8]]},"433":{"position":[[46,8]]},"466":{"position":[[740,7],[1008,7]]},"472":{"position":[[1135,7]]},"473":{"position":[[48,8],[460,7]]},"474":{"position":[[21,7]]},"476":{"position":[[620,7]]}},"keywords":{}}],["handler(()=>",{"_index":538,"title":{},"content":{"21":{"position":[[1199,19]]},"22":{"position":[[1061,19]]}},"keywords":{}}],["handler((ev",{"_index":623,"title":{},"content":{"28":{"position":[[63,16]]},"34":{"position":[[2291,16]]},"43":{"position":[[2302,16]]},"46":{"position":[[133,16]]},"49":{"position":[[63,16]]},"52":{"position":[[63,16]]},"55":{"position":[[161,16]]},"58":{"position":[[63,16]]},"61":{"position":[[63,16]]},"64":{"position":[[161,16]]},"68":{"position":[[63,16]]},"73":{"position":[[161,16]]},"77":{"position":[[63,16]]},"82":{"position":[[161,16]]},"85":{"position":[[63,16]]},"88":{"position":[[63,16]]},"91":{"position":[[2316,16]]},"94":{"position":[[161,16]]},"97":{"position":[[161,16]]},"100":{"position":[[161,16]]},"107":{"position":[[63,16]]},"110":{"position":[[161,16]]},"113":{"position":[[200,16]]},"116":{"position":[[191,16]]},"119":{"position":[[161,16]]},"122":{"position":[[161,16]]},"125":{"position":[[63,16]]},"128":{"position":[[333,16]]},"131":{"position":[[63,16]]},"134":{"position":[[161,16]]},"139":{"position":[[262,16]]},"142":{"position":[[63,16]]},"146":{"position":[[2303,16]]},"220":{"position":[[490,16]]},"221":{"position":[[573,16]]},"240":{"position":[[150,16]]},"337":{"position":[[249,16]]},"348":{"position":[[210,16],[366,16]]},"352":{"position":[[264,16],[403,16]]},"363":{"position":[[868,16]]},"364":{"position":[[470,16]]},"365":{"position":[[429,16]]}},"keywords":{}}],["handler(async",{"_index":97,"title":{},"content":{"2":{"position":[[1284,14]]},"102":{"position":[[661,14]]},"103":{"position":[[822,14]]},"104":{"position":[[761,14]]}},"keywords":{}}],["handler(ev",{"_index":1494,"title":{},"content":{"212":{"position":[[342,14]]},"248":{"position":[[473,14]]},"252":{"position":[[650,14]]},"260":{"position":[[443,14]]},"266":{"position":[[656,14]]},"270":{"position":[[373,14]]},"274":{"position":[[540,14]]},"299":{"position":[[370,14]]},"347":{"position":[[331,14]]},"351":{"position":[[196,14]]},"362":{"position":[[619,14]]}},"keywords":{}}],["handler(httprouterhandler(rout",{"_index":709,"title":{},"content":{"37":{"position":[[2357,35]]},"348":{"position":[[640,35]]}},"keywords":{}}],["handler(lambdahandl",{"_index":223,"title":{},"content":{"5":{"position":[[2061,23]]}},"keywords":{}}],["handler(wsrouterhandl",{"_index":2023,"title":{},"content":{"352":{"position":[[522,26]]}},"keywords":{}}],["handler(wsrouterhandler(rout",{"_index":641,"title":{},"content":{"31":{"position":[[676,33]]}},"keywords":{}}],["handler.contextschema",{"_index":2062,"title":{},"content":{"359":{"position":[[141,21]]}},"keywords":{}}],["handler.i18nen",{"_index":2066,"title":{},"content":{"359":{"position":[[556,19]]}},"keywords":{}}],["handler.j",{"_index":145,"title":{},"content":{"5":{"position":[[128,10]]}},"keywords":{}}],["handler.requestend(request",{"_index":1027,"title":{},"content":{"161":{"position":[[585,28]]}},"keywords":{}}],["handler.us",{"_index":1457,"title":{},"content":{"198":{"position":[[239,12]]},"203":{"position":[[237,12]]},"208":{"position":[[301,12]]},"278":{"position":[[501,12]]},"287":{"position":[[240,12]]},"293":{"position":[[301,12]]},"294":{"position":[[256,12]]},"299":{"position":[[144,12]]},"304":{"position":[[253,12]]},"309":{"position":[[254,12]]},"319":{"position":[[227,12]]},"343":{"position":[[181,12]]},"362":{"position":[[423,12]]}},"keywords":{}}],["handler.use(cor",{"_index":1605,"title":{},"content":{"233":{"position":[[128,19]]}},"keywords":{}}],["handler.use(donotwaitforemptyeventloop({runonerror",{"_index":1493,"title":{},"content":{"212":{"position":[[173,51]]}},"keywords":{}}],["handler.use(httperrorhandler()).use(cor",{"_index":1599,"title":{},"content":{"232":{"position":[[1554,43]]}},"keywords":{}}],["handler.use(httpeventnorm",{"_index":1610,"title":{},"content":{"236":{"position":[[270,34]]}},"keywords":{}}],["handler.use(httpheadernormalizer()).use(httpjsonbodypars",{"_index":1631,"title":{},"content":{"248":{"position":[[219,61]]}},"keywords":{}}],["handler.use(httpheadernormalizer()).use(httpmultipartbodypars",{"_index":1649,"title":{},"content":{"252":{"position":[[229,66]]}},"keywords":{}}],["handler.use(httpheadernormalizer()).use(httpurlencodebodypars",{"_index":1731,"title":{},"content":{"274":{"position":[[272,66]]}},"keywords":{}}],["handler.use(httpjsonbodyparser()).us",{"_index":2100,"title":{},"content":{"362":{"position":[[1987,38]]}},"keywords":{}}],["handler.use(httppartialrespons",{"_index":1695,"title":{},"content":{"260":{"position":[[334,34]]}},"keywords":{}}],["handler.use(httpurlencodepathpars",{"_index":1724,"title":{},"content":{"270":{"position":[[207,38]]}},"keywords":{}}],["handler.use(inputoutputlogg",{"_index":1754,"title":{},"content":{"278":{"position":[[257,32]]}},"keywords":{}}],["handler.use(middlewar",{"_index":954,"title":{},"content":{"157":{"position":[[866,24]]}},"keywords":{}}],["handler.use(valid",{"_index":2093,"title":{},"content":{"362":{"position":[[1107,23]]}},"keywords":{}}],["handler.use(wsrespons",{"_index":2008,"title":{},"content":{"342":{"position":[[150,25]]}},"keywords":{}}],["handlerhttpeventnorm",{"_index":2034,"title":{},"content":{"354":{"position":[[694,26]]}},"keywords":{}}],["handlerrunonaft",{"_index":1490,"title":{},"content":{"211":{"position":[[281,17]]}},"keywords":{}}],["handlers/*/*.ftl",{"_index":2114,"title":{},"content":{"363":{"position":[[572,17]]}},"keywords":{}}],["handlers/*/schema.*.json",{"_index":2109,"title":{},"content":{"363":{"position":[[422,25]]}},"keywords":{}}],["handlers/connect.j",{"_index":631,"title":{},"content":{"31":{"position":[[243,23]]}},"keywords":{}}],["handlers/default.j",{"_index":635,"title":{},"content":{"31":{"position":[[381,23]]}},"keywords":{}}],["handlers/disconnect.j",{"_index":633,"title":{},"content":{"31":{"position":[[312,26]]}},"keywords":{}}],["handlers/get",{"_index":702,"title":{},"content":{"37":{"position":[[1254,15],[1318,15]]}},"keywords":{}}],["handlerswrap",{"_index":1939,"title":{},"content":{"324":{"position":[[521,12]]}},"keywords":{}}],["handlingerror",{"_index":2174,"title":{},"content":{"397":{"position":[[89,14]]}},"keywords":{}}],["handlingtimeout",{"_index":2173,"title":{},"content":{"397":{"position":[[67,15]]}},"keywords":{}}],["hapi",{"_index":252,"title":{},"content":{"6":{"position":[[566,5]]}},"keywords":{}}],["happen",{"_index":808,"title":{},"content":{"136":{"position":[[42,7]]},"160":{"position":[[26,7]]},"163":{"position":[[65,7],[213,7]]}},"keywords":{}}],["happen.fallbackmessag",{"_index":1618,"title":{},"content":{"243":{"position":[[163,22]]}},"keywords":{}}],["happens.middi",{"_index":1895,"title":{},"content":{"322":{"position":[[607,13]]}},"keywords":{}}],["happi",{"_index":2316,"title":{},"content":{"478":{"position":[[1006,5]]}},"keywords":{}}],["harder",{"_index":247,"title":{},"content":{"6":{"position":[[477,6]]}},"keywords":{}}],["header",{"_index":655,"title":{"237":{"position":[[5,6]]},"253":{"position":[[14,7]]},"355":{"position":[[0,6],[29,6]]},"377":{"position":[[5,6]]},"382":{"position":[[14,8]]},"410":{"position":[[5,6]]},"416":{"position":[[14,8]]},"449":{"position":[[5,6]]},"455":{"position":[[14,8]]}},"content":{"34":{"position":[[555,6],[944,8]]},"37":{"position":[[606,6],[995,8]]},"43":{"position":[[555,6],[944,8]]},"91":{"position":[[555,6],[944,8]]},"146":{"position":[[567,6],[956,8]]},"192":{"position":[[206,8]]},"198":{"position":[[156,8]]},"203":{"position":[[154,8]]},"228":{"position":[[939,7]]},"229":{"position":[[147,6]]},"232":{"position":[[336,7],[668,6],[904,7],[995,6],[1092,7],[1279,6]]},"238":{"position":[[87,6]]},"239":{"position":[[51,7],[94,7],[189,7],[324,6]]},"240":{"position":[[78,6]]},"248":{"position":[[78,6],[320,8]]},"252":{"position":[[78,6],[335,8]]},"254":{"position":[[96,7]]},"256":{"position":[[86,8]]},"264":{"position":[[54,6],[404,7]]},"265":{"position":[[4,6],[224,6]]},"266":{"position":[[578,8]]},"274":{"position":[[78,6],[410,8]]},"278":{"position":[[174,8]]},"281":{"position":[[153,7],[444,6],[479,6]]},"282":{"position":[[50,6],[123,7],[297,8],[337,7]]},"287":{"position":[[157,8]]},"304":{"position":[[170,8]]},"309":{"position":[[171,8]]},"319":{"position":[[144,8]]},"354":{"position":[[794,6]]},"355":{"position":[[65,6],[218,6],[553,7]]},"374":{"position":[[34,7]]},"410":{"position":[[21,7]]},"416":{"position":[[121,7]]}},"keywords":{}}],["headerhst",{"_index":1664,"title":{},"content":{"255":{"position":[[196,10]]}},"keywords":{}}],["headerxssfilt",{"_index":1673,"title":{},"content":{"255":{"position":[[368,15]]}},"keywords":{}}],["hello",{"_index":1153,"title":{},"content":{"168":{"position":[[535,6]]},"198":{"position":[[201,6]]},"203":{"position":[[199,6]]},"229":{"position":[[441,6]]},"236":{"position":[[216,6]]},"266":{"position":[[161,6]]},"278":{"position":[[219,6]]},"287":{"position":[[202,6]]},"304":{"position":[[215,6]]},"309":{"position":[[216,6]]},"319":{"position":[[189,6]]}},"keywords":{}}],["helmetjs.http",{"_index":1787,"title":{},"content":{"282":{"position":[[385,13]]}},"keywords":{}}],["help",{"_index":591,"title":{},"content":{"21":{"position":[[2411,4]]},"143":{"position":[[69,4]]},"147":{"position":[[61,4]]},"148":{"position":[[70,4]]},"149":{"position":[[77,4]]},"150":{"position":[[73,4]]},"151":{"position":[[94,4]]},"167":{"position":[[64,4]]},"170":{"position":[[86,4]]},"174":{"position":[[1276,4]]},"190":{"position":[[66,4]]},"324":{"position":[[637,4]]},"363":{"position":[[175,4]]}},"keywords":{}}],["helper",{"_index":1884,"title":{},"content":{"322":{"position":[[69,6]]}},"keywords":{}}],["here",{"_index":210,"title":{},"content":{"5":{"position":[[1644,4]]},"398":{"position":[[261,4]]},"474":{"position":[[492,4]]}},"keywords":{}}],["here'",{"_index":1148,"title":{},"content":{"168":{"position":[[103,6]]},"478":{"position":[[16,6]]}},"keywords":{}}],["hide",{"_index":1671,"title":{},"content":{"255":{"position":[[351,4]]}},"keywords":{}}],["high",{"_index":1347,"title":{},"content":{"182":{"position":[[1110,4]]},"323":{"position":[[433,4]]}},"keywords":{}}],["higher",{"_index":1512,"title":{},"content":{"219":{"position":[[331,6]]},"324":{"position":[[481,6]]}},"keywords":{}}],["highest",{"_index":1042,"title":{},"content":{"163":{"position":[[686,7]]}},"keywords":{}}],["highli",{"_index":2059,"title":{},"content":{"356":{"position":[[198,6]]},"359":{"position":[[1219,6]]}},"keywords":{}}],["histori",{"_index":958,"title":{"158":{"position":[[0,7]]},"159":{"position":[[8,7]]}},"content":{},"keywords":{}}],["hit",{"_index":27,"title":{},"content":{"1":{"position":[[84,3]]},"359":{"position":[[1156,3]]}},"keywords":{}}],["honour",{"_index":2149,"title":{},"content":{"375":{"position":[[20,6]]}},"keywords":{}}],["hook",{"_index":596,"title":{"161":{"position":[[0,5]]}},"content":{"21":{"position":[[2523,5]]},"161":{"position":[[0,5],[21,5]]},"473":{"position":[[167,4],[316,4],[843,4]]}},"keywords":{}}],["hope",{"_index":589,"title":{},"content":{"21":{"position":[[2388,4]]}},"keywords":{}}],["host",{"_index":864,"title":{},"content":{"151":{"position":[[768,6]]}},"keywords":{}}],["hostnam",{"_index":760,"title":{},"content":{"103":{"position":[[383,9]]},"287":{"position":[[314,9]]}},"keywords":{}}],["html",{"_index":2210,"title":{},"content":{"416":{"position":[[111,4]]}},"keywords":{}}],["http",{"_index":221,"title":{"32":{"position":[[12,6]]},"217":{"position":[[0,4]]},"226":{"position":[[0,4]]},"230":{"position":[[0,4]]},"234":{"position":[[0,4]]},"237":{"position":[[0,4]]},"241":{"position":[[0,4]]},"245":{"position":[[0,4]]},"249":{"position":[[0,4]]},"253":{"position":[[0,4]]},"257":{"position":[[0,4]]},"261":{"position":[[0,4]]},"267":{"position":[[0,4]]},"271":{"position":[[0,4]]},"345":{"position":[[0,4]]},"355":{"position":[[24,4]]},"373":{"position":[[0,4]]},"374":{"position":[[0,4]]},"375":{"position":[[0,4]]},"376":{"position":[[0,4]]},"377":{"position":[[0,4]]},"378":{"position":[[0,4]]},"379":{"position":[[0,4]]},"380":{"position":[[0,4]]},"381":{"position":[[0,4]]},"382":{"position":[[0,4]]},"383":{"position":[[0,4]]},"384":{"position":[[0,4]]},"405":{"position":[[0,4]]},"406":{"position":[[0,4]]},"407":{"position":[[0,4]]},"408":{"position":[[0,4]]},"409":{"position":[[0,4]]},"410":{"position":[[0,4]]},"411":{"position":[[0,4]]},"412":{"position":[[0,4]]},"413":{"position":[[0,4]]},"414":{"position":[[0,4]]},"415":{"position":[[0,4]]},"416":{"position":[[0,4]]},"417":{"position":[[0,4]]},"418":{"position":[[0,4]]},"444":{"position":[[0,4]]},"445":{"position":[[0,4]]},"446":{"position":[[0,4]]},"447":{"position":[[0,4]]},"448":{"position":[[0,4]]},"449":{"position":[[0,4]]},"450":{"position":[[0,4]]},"451":{"position":[[0,4]]},"452":{"position":[[0,4]]},"453":{"position":[[0,4]]},"454":{"position":[[0,4]]},"455":{"position":[[0,4]]},"456":{"position":[[0,4]]},"457":{"position":[[0,4]]}},"content":{"5":{"position":[[2020,4]]},"15":{"position":[[458,8]]},"24":{"position":[[40,4]]},"33":{"position":[[53,4]]},"90":{"position":[[53,4]]},"170":{"position":[[552,4]]},"228":{"position":[[862,4]]},"243":{"position":[[215,4]]},"255":{"position":[[211,4]]},"281":{"position":[[257,4],[304,4],[474,4],[561,4],[755,4],[893,4],[1018,4]]},"282":{"position":[[0,4],[28,4],[113,4],[179,4],[230,4],[271,4],[511,4]]},"322":{"position":[[1344,4]]},"324":{"position":[[766,4],[862,4]]},"355":{"position":[[60,4],[337,4],[377,4],[548,4]]},"375":{"position":[[158,4]]},"409":{"position":[[75,4]]}},"keywords":{}}],["http(",{"_index":1285,"title":{},"content":{"175":{"position":[[140,7]]},"177":{"position":[[309,7]]},"178":{"position":[[1153,7]]}},"keywords":{}}],["httpcontentencod",{"_index":1519,"title":{},"content":{"220":{"position":[[108,19]]},"221":{"position":[[108,19]]}},"keywords":{}}],["httpcontentencodingmiddlewar",{"_index":648,"title":{},"content":{"34":{"position":[[243,29]]},"37":{"position":[[294,29]]},"43":{"position":[[243,29]]},"91":{"position":[[243,29]]},"146":{"position":[[243,29]]}},"keywords":{}}],["httpcontentnegoti",{"_index":1518,"title":{},"content":{"220":{"position":[[39,22]]},"221":{"position":[[39,22]]},"229":{"position":[[39,22]]}},"keywords":{}}],["httpcontentnegotiationmiddlewar",{"_index":646,"title":{},"content":{"34":{"position":[[164,32],[1557,34]]},"37":{"position":[[215,32],[1682,34]]},"43":{"position":[[164,32],[1557,34]]},"91":{"position":[[164,32],[1582,34]]},"146":{"position":[[164,32],[1569,34]]}},"keywords":{}}],["httpcontentnegotiationmiddlewarebefor",{"_index":552,"title":{},"content":{"21":{"position":[[1564,38]]}},"keywords":{}}],["httpcorsmiddlewar",{"_index":649,"title":{},"content":{"34":{"position":[[316,18]]},"37":{"position":[[367,18]]},"43":{"position":[[316,18]]},"91":{"position":[[316,18]]},"146":{"position":[[316,18]]}},"keywords":{}}],["httpcorsmiddlewareaft",{"_index":561,"title":{},"content":{"21":{"position":[[1756,23]]}},"keywords":{}}],["httperror.expos",{"_index":2150,"title":{},"content":{"375":{"position":[[27,17]]}},"keywords":{}}],["httperrorhandl",{"_index":156,"title":{},"content":{"5":{"position":[[356,16]]},"229":{"position":[[173,16]]},"232":{"position":[[1374,16]]},"244":{"position":[[39,16]]}},"keywords":{}}],["httperrorhandlermiddlewar",{"_index":651,"title":{},"content":{"34":{"position":[[366,26]]},"37":{"position":[[417,26]]},"43":{"position":[[366,26]]},"91":{"position":[[366,26]]},"146":{"position":[[366,26]]}},"keywords":{}}],["httpeventnorm",{"_index":1606,"title":{},"content":{"236":{"position":[[39,19]]}},"keywords":{}}],["httpeventnormalizermiddlewar",{"_index":652,"title":{},"content":{"34":{"position":[[433,29]]},"37":{"position":[[484,29]]},"43":{"position":[[433,29]]},"91":{"position":[[433,29]]},"146":{"position":[[433,29]]}},"keywords":{}}],["httpeventnormalizermiddlewarebefor",{"_index":542,"title":{},"content":{"21":{"position":[[1316,35]]}},"keywords":{}}],["httpheadernorm",{"_index":1562,"title":{},"content":{"229":{"position":[[108,20]]},"240":{"position":[[39,20]]},"248":{"position":[[39,20]]},"252":{"position":[[39,20]]},"274":{"position":[[39,20]]},"355":{"position":[[17,20]]}},"keywords":{}}],["httpheadernormalizermiddlewar",{"_index":654,"title":{},"content":{"34":{"position":[[506,30]]},"37":{"position":[[557,30]]},"43":{"position":[[506,30]]},"91":{"position":[[506,30]]},"146":{"position":[[518,30]]}},"keywords":{}}],["httpheadernormalizermiddlewarebefor",{"_index":544,"title":{},"content":{"21":{"position":[[1364,36]]}},"keywords":{}}],["httpjsonbodypars",{"_index":1630,"title":{},"content":{"248":{"position":[[104,18]]},"362":{"position":[[1440,18]]}},"keywords":{}}],["httpjsonbodyparsermiddlewar",{"_index":656,"title":{},"content":{"34":{"position":[[581,28]]},"37":{"position":[[632,28]]},"43":{"position":[[581,28]]},"91":{"position":[[581,28]]},"146":{"position":[[593,28]]}},"keywords":{}}],["httpjsonbodyparsermiddlewarebefor",{"_index":550,"title":{},"content":{"21":{"position":[[1517,34]]}},"keywords":{}}],["httpmultipartbodypars",{"_index":1648,"title":{},"content":{"252":{"position":[[104,23]]}},"keywords":{}}],["httpmultipartbodyparsermiddlewar",{"_index":657,"title":{},"content":{"34":{"position":[[653,33]]},"37":{"position":[[704,33]]},"43":{"position":[[653,33]]},"91":{"position":[[653,33]]},"146":{"position":[[665,33]]}},"keywords":{}}],["httppartialrespons",{"_index":1680,"title":{},"content":{"260":{"position":[[39,19]]}},"keywords":{}}],["httppartialresponsemiddlewar",{"_index":659,"title":{},"content":{"34":{"position":[[735,29]]},"37":{"position":[[786,29]]},"43":{"position":[[735,29]]},"91":{"position":[[735,29]]},"146":{"position":[[747,29]]}},"keywords":{}}],["httpresponseseri",{"_index":1714,"title":{},"content":{"266":{"position":[[39,22]]}},"keywords":{}}],["httpresponseserializermiddlewar",{"_index":661,"title":{},"content":{"34":{"position":[[808,32],[1989,34]]},"37":{"position":[[859,32],[2114,34]]},"43":{"position":[[808,32],[1989,34]]},"91":{"position":[[808,32],[2014,34]]},"146":{"position":[[820,32],[2001,34]]}},"keywords":{}}],["httprouterhandl",{"_index":700,"title":{},"content":{"37":{"position":[[39,17]]},"348":{"position":[[39,17]]}},"keywords":{}}],["https://ajv.js.org/json",{"_index":2098,"title":{},"content":{"362":{"position":[[1878,23]]}},"keywords":{}}],["https://aws.amazon.com/about",{"_index":2218,"title":{},"content":{"426":{"position":[[38,28]]}},"keywords":{}}],["https://docs.aws.amazon.com/amazonrds/latest/userguide/usingwithrds.ssl.html",{"_index":858,"title":{},"content":{"151":{"position":[[561,76]]}},"keywords":{}}],["https://github.com/evanw/esbuild/pull/2067",{"_index":389,"title":{},"content":{"12":{"position":[[41,42]]}},"keywords":{}}],["https://github.com/middyjs/middy/issues/945",{"_index":2238,"title":{},"content":{"450":{"position":[[208,43]]}},"keywords":{}}],["httpscaptur",{"_index":800,"title":{},"content":{"128":{"position":[[275,13]]}},"keywords":{}}],["httpsecurityhead",{"_index":1676,"title":{},"content":{"256":{"position":[[39,19]]}},"keywords":{}}],["httpsecurityheadersmiddlewar",{"_index":662,"title":{},"content":{"34":{"position":[[887,29]]},"37":{"position":[[938,29]]},"43":{"position":[[887,29]]},"91":{"position":[[887,29]]},"146":{"position":[[899,29]]}},"keywords":{}}],["httpsecurityheadersmiddlewareaft",{"_index":559,"title":{},"content":{"21":{"position":[[1710,34]]}},"keywords":{}}],["httpurlencodebodypars",{"_index":1730,"title":{},"content":{"274":{"position":[[104,23]]}},"keywords":{}}],["httpurlencodebodyparsermiddlewar",{"_index":663,"title":{},"content":{"34":{"position":[[960,33]]},"37":{"position":[[1011,33]]},"43":{"position":[[960,33]]},"91":{"position":[[960,33]]},"146":{"position":[[972,33]]}},"keywords":{}}],["httpurlencodebodyparsermiddlewarebefor",{"_index":548,"title":{},"content":{"21":{"position":[[1465,39]]}},"keywords":{}}],["httpurlencodepathparametersparsermiddlewar",{"_index":665,"title":{},"content":{"34":{"position":[[1042,43]]},"37":{"position":[[1093,43]]},"43":{"position":[[1042,43]]},"91":{"position":[[1042,43]]},"146":{"position":[[1054,43]]}},"keywords":{}}],["httpurlencodepathpars",{"_index":1723,"title":{},"content":{"270":{"position":[[39,23]]}},"keywords":{}}],["httpurlencodepathparsermiddlewarebefor",{"_index":546,"title":{},"content":{"21":{"position":[[1413,39]]}},"keywords":{}}],["hydrat",{"_index":1760,"title":{},"content":{"280":{"position":[[20,8]]}},"keywords":{}}],["i.",{"_index":1434,"title":{},"content":{"197":{"position":[[80,5]]},"202":{"position":[[78,5]]},"239":{"position":[[225,4]]},"286":{"position":[[62,5]]},"291":{"position":[[171,5]]},"298":{"position":[[90,5]]},"303":{"position":[[66,5]]},"308":{"position":[[94,5]]},"318":{"position":[[68,5]]},"327":{"position":[[68,5]]},"340":{"position":[[102,5]]}},"keywords":{}}],["i18n",{"_index":2067,"title":{},"content":{"359":{"position":[[620,4]]},"360":{"position":[[70,5]]},"365":{"position":[[227,5],[241,5]]},"394":{"position":[[332,4]]},"466":{"position":[[989,5]]}},"keywords":{}}],["i18n/localize/.eslintrc.yml",{"_index":307,"title":{},"content":{"7":{"position":[[567,27]]}},"keywords":{}}],["i18nen",{"_index":2244,"title":{},"content":{"466":{"position":[[214,11]]}},"keywords":{}}],["iam",{"_index":1453,"title":{},"content":{"197":{"position":[[1099,3]]},"202":{"position":[[1094,3]]},"283":{"position":[[150,3],[518,3]]},"286":{"position":[[827,3]]},"291":{"position":[[852,3]]},"298":{"position":[[1574,3]]},"303":{"position":[[1071,3]]},"308":{"position":[[1121,3]]},"318":{"position":[[932,3]]},"327":{"position":[[1104,3]]},"340":{"position":[[728,3]]},"386":{"position":[[65,3]]}},"keywords":{}}],["iam_rol",{"_index":763,"title":{},"content":{"103":{"position":[[429,11]]},"287":{"position":[[359,11]]}},"keywords":{}}],["icon",{"_index":998,"title":{},"content":{"159":{"position":[[569,4]]}},"keywords":{}}],["id",{"_index":501,"title":{},"content":{"21":{"position":[[180,4],[244,4]]},"22":{"position":[[202,4],[266,4]]},"153":{"position":[[686,2]]},"174":{"position":[[1487,2]]},"186":{"position":[[434,3]]},"189":{"position":[[912,2]]},"347":{"position":[[269,7]]}},"keywords":{}}],["idea",{"_index":1055,"title":{},"content":{"164":{"position":[[284,5]]}},"keywords":{}}],["idempot",{"_index":1180,"title":{"183":{"position":[[0,12]]}},"content":{"170":{"position":[[834,10]]},"183":{"position":[[228,11],[454,11],[592,10],[715,10]]},"185":{"position":[[232,11]]},"322":{"position":[[621,11],[633,11]]}},"keywords":{}}],["idempotencyconfig",{"_index":1372,"title":{},"content":{"185":{"position":[[138,19]]}},"keywords":{}}],["idempotencytablenam",{"_index":1380,"title":{},"content":{"186":{"position":[[317,23]]}},"keywords":{}}],["identifi",{"_index":592,"title":{},"content":{"21":{"position":[[2426,8]]},"174":{"position":[[2057,8]]}},"keywords":{}}],["ie",{"_index":65,"title":{},"content":{"2":{"position":[[415,2]]},"351":{"position":[[127,2]]}},"keywords":{}}],["ie8+nosniff",{"_index":1667,"title":{},"content":{"255":{"position":[[278,11]]}},"keywords":{}}],["ignored.middi",{"_index":1890,"title":{},"content":{"322":{"position":[[385,13]]}},"keywords":{}}],["imag",{"_index":1033,"title":{},"content":{"163":{"position":[[374,5]]}},"keywords":{}}],["immedi",{"_index":890,"title":{},"content":{"153":{"position":[[96,12]]},"189":{"position":[[125,12]]}},"keywords":{}}],["impact",{"_index":1316,"title":{},"content":{"179":{"position":[[325,6]]},"182":{"position":[[1046,6]]},"251":{"position":[[834,6]]}},"keywords":{}}],["implement",{"_index":232,"title":{},"content":{"6":{"position":[[130,12]]},"156":{"position":[[149,12]]},"160":{"position":[[178,11]]}},"keywords":{}}],["import",{"_index":48,"title":{"315":{"position":[[0,10]]}},"content":{"2":{"position":[[180,6],[212,6]]},"5":{"position":[[142,6],[154,6],[267,6],[291,6],[349,6],[406,6],[447,6]]},"13":{"position":[[122,6],[180,6]]},"15":{"position":[[76,6],[105,6]]},"22":{"position":[[0,6]]},"25":{"position":[[0,6]]},"28":{"position":[[0,6]]},"31":{"position":[[0,6],[32,6],[100,6],[154,6],[201,6],[267,6],[339,6]]},"34":{"position":[[0,6],[32,6],[88,6],[157,6],[236,6],[309,6],[359,6],[426,6],[499,6],[574,6],[646,6],[728,6],[801,6],[880,6],[953,6],[1035,6],[1127,6],[1171,6],[1209,6],[1278,6]]},"37":{"position":[[0,6],[32,6],[83,6],[139,6],[208,6],[287,6],[360,6],[410,6],[477,6],[550,6],[625,6],[697,6],[779,6],[852,6],[931,6],[1004,6],[1086,6],[1178,6],[1216,6],[1279,6]]},"40":{"position":[[0,6]]},"43":{"position":[[0,6],[32,6],[88,6],[157,6],[236,6],[309,6],[359,6],[426,6],[499,6],[574,6],[646,6],[728,6],[801,6],[880,6],[953,6],[1035,6],[1127,6],[1171,6],[1209,6],[1278,6]]},"46":{"position":[[0,6]]},"49":{"position":[[0,6]]},"52":{"position":[[0,6]]},"55":{"position":[[0,6],[32,6]]},"58":{"position":[[0,6]]},"61":{"position":[[0,6]]},"64":{"position":[[0,6],[32,6]]},"68":{"position":[[0,6]]},"70":{"position":[[0,6]]},"73":{"position":[[0,6],[32,6]]},"77":{"position":[[0,6]]},"79":{"position":[[0,6]]},"82":{"position":[[0,6],[32,6]]},"85":{"position":[[0,6]]},"88":{"position":[[0,6]]},"91":{"position":[[0,6],[32,6],[88,6],[157,6],[236,6],[309,6],[359,6],[426,6],[499,6],[574,6],[646,6],[728,6],[801,6],[880,6],[953,6],[1035,6],[1127,6],[1171,6],[1209,6],[1278,6]]},"94":{"position":[[0,6],[32,6]]},"97":{"position":[[0,6],[32,6]]},"100":{"position":[[0,6],[32,6]]},"102":{"position":[[0,6],[32,6],[100,6],[156,6],[225,6],[269,6],[307,6],[376,6]]},"103":{"position":[[0,6],[32,6],[74,6],[126,6],[188,6],[227,6]]},"104":{"position":[[0,6],[32,6],[74,6],[125,6],[162,6],[211,6]]},"107":{"position":[[0,6]]},"110":{"position":[[0,6],[32,6]]},"113":{"position":[[0,6],[32,6]]},"116":{"position":[[0,6],[32,6]]},"119":{"position":[[0,6],[32,6]]},"122":{"position":[[0,6],[32,6]]},"125":{"position":[[0,6]]},"128":{"position":[[0,6],[32,6],[99,6]]},"131":{"position":[[0,6]]},"134":{"position":[[0,6],[32,6]]},"139":{"position":[[0,6],[32,6],[96,6]]},"142":{"position":[[0,6]]},"146":{"position":[[0,6],[32,6],[88,6],[157,6],[236,6],[309,6],[359,6],[426,6],[511,6],[586,6],[658,6],[740,6],[813,6],[892,6],[965,6],[1047,6],[1139,6],[1183,6],[1221,6],[1290,6]]},"148":{"position":[[144,6],[176,6],[233,6],[291,6],[342,6]]},"151":{"position":[[536,6]]},"157":{"position":[[0,6],[32,6],[77,6],[122,6],[473,6],[515,6],[570,6],[625,6]]},"167":{"position":[[852,9]]},"168":{"position":[[217,6],[249,6]]},"174":{"position":[[0,6],[33,6]]},"178":{"position":[[0,6],[33,6],[111,6]]},"182":{"position":[[0,6],[33,6]]},"186":{"position":[[0,6],[33,6],[75,6],[162,6]]},"189":{"position":[[800,6]]},"192":{"position":[[0,6],[32,6]]},"193":{"position":[[0,6],[32,6]]},"194":{"position":[[0,6]]},"198":{"position":[[0,6],[32,6]]},"203":{"position":[[0,6],[32,6]]},"212":{"position":[[0,6],[32,6]]},"216":{"position":[[0,6],[32,6]]},"219":{"position":[[370,9]]},"220":{"position":[[0,6],[32,6],[101,6],[164,6]]},"221":{"position":[[0,6],[32,6],[101,6],[164,6],[202,6]]},"225":{"position":[[0,6],[32,6]]},"229":{"position":[[0,6],[32,6],[101,6],[166,6]]},"232":{"position":[[1335,6],[1367,6],[1424,6]]},"233":{"position":[[0,6],[32,6]]},"236":{"position":[[0,6],[32,6]]},"240":{"position":[[0,6],[32,6]]},"244":{"position":[[0,6],[32,6]]},"248":{"position":[[0,6],[32,6],[97,6],[375,9]]},"252":{"position":[[0,6],[32,6],[97,6]]},"256":{"position":[[0,6],[32,6]]},"260":{"position":[[0,6],[32,6]]},"266":{"position":[[0,6],[32,6]]},"270":{"position":[[0,6],[32,6]]},"274":{"position":[[0,6],[32,6],[97,6]]},"277":{"position":[[275,6]]},"278":{"position":[[0,6],[32,6],[291,6],[323,6],[382,6]]},"287":{"position":[[0,6],[32,6]]},"293":{"position":[[0,6],[24,6],[56,6]]},"294":{"position":[[0,6],[24,6],[56,6]]},"299":{"position":[[0,6],[32,6]]},"304":{"position":[[0,6],[32,6]]},"309":{"position":[[0,6],[32,6]]},"314":{"position":[[0,6],[32,6]]},"319":{"position":[[0,6],[32,6]]},"328":{"position":[[0,6],[32,6],[453,6],[485,6],[527,6]]},"337":{"position":[[0,6],[32,6],[100,6]]},"342":{"position":[[0,6],[32,6]]},"343":{"position":[[0,6],[32,6]]},"348":{"position":[[0,6],[32,6],[83,6]]},"352":{"position":[[0,6],[32,6],[79,6],[133,6]]},"362":{"position":[[30,6],[62,6],[103,6],[746,6],[778,6],[819,6],[1401,6],[1433,6],[1495,6],[1536,6]]},"363":{"position":[[612,6],[644,6],[685,6],[729,6],[754,6]]},"364":{"position":[[0,6],[44,6],[76,6],[117,6],[195,6]]},"365":{"position":[[0,6],[44,6],[76,6],[117,6],[195,6],[264,6]]},"466":{"position":[[586,6],[643,6],[666,6],[879,6],[936,6],[957,6]]},"472":{"position":[[962,6],[994,6]]},"473":{"position":[[415,6]]},"474":{"position":[[545,6]]},"476":{"position":[[462,6]]},"478":{"position":[[123,6],[155,6]]}},"keywords":{}}],["improp",{"_index":1140,"title":{},"content":{"167":{"position":[[1397,8]]}},"keywords":{}}],["improv",{"_index":594,"title":{},"content":{"21":{"position":[[2456,7]]},"404":{"position":[[65,12]]},"407":{"position":[[93,12]]},"414":{"position":[[48,7]]},"478":{"position":[[968,12]]}},"keywords":{}}],["in.disableprefetch",{"_index":1820,"title":{},"content":{"291":{"position":[[535,18]]},"340":{"position":[[546,18]]}},"keywords":{}}],["in.fetchdata",{"_index":1440,"title":{},"content":{"197":{"position":[[496,12]]},"202":{"position":[[492,12]]},"298":{"position":[[490,12]]},"303":{"position":[[475,12]]},"308":{"position":[[524,12]]},"318":{"position":[[335,12]]},"327":{"position":[[455,12]]}},"keywords":{}}],["in.httpscaptur",{"_index":1819,"title":{},"content":{"291":{"position":[[436,15]]}},"keywords":{}}],["incas",{"_index":72,"title":{},"content":{"2":{"position":[[526,6]]}},"keywords":{}}],["includ",{"_index":576,"title":{},"content":{"21":{"position":[[2000,8]]},"161":{"position":[[663,9]]},"174":{"position":[[1184,8],[1829,7],[1977,7]]},"277":{"position":[[114,7]]},"318":{"position":[[982,8]]},"394":{"position":[[159,8],[282,8]]},"399":{"position":[[22,8]]},"466":{"position":[[531,9]]}},"keywords":{}}],["inclus",{"_index":2209,"title":{},"content":{"416":{"position":[[94,9]]}},"keywords":{}}],["incom",{"_index":1588,"title":{},"content":{"232":{"position":[[760,8]]},"281":{"position":[[1089,8]]}},"keywords":{}}],["incomplet",{"_index":441,"title":{},"content":{"14":{"position":[[61,10]]}},"keywords":{}}],["increas",{"_index":1976,"title":{},"content":{"327":{"position":[[1304,10]]}},"keywords":{}}],["independ",{"_index":259,"title":{"354":{"position":[[0,11]]}},"content":{"6":{"position":[[833,11]]},"164":{"position":[[247,11]]},"170":{"position":[[57,13]]},"354":{"position":[[40,11]]}},"keywords":{}}],["index",{"_index":1863,"title":{},"content":{"314":{"position":[[191,6]]}},"keywords":{}}],["index.bundle.rollup.mj",{"_index":413,"title":{},"content":{"13":{"position":[[362,26]]}},"keywords":{}}],["index.bundle.webpack.mj",{"_index":457,"title":{},"content":{"15":{"position":[[318,27]]}},"keywords":{}}],["index.handl",{"_index":1303,"title":{},"content":{"178":{"position":[[590,13]]}},"keywords":{}}],["index.j",{"_index":391,"title":{},"content":{"12":{"position":[[110,8]]},"13":{"position":[[334,11]]},"15":{"position":[[284,13]]},"17":{"position":[[74,8]]},"18":{"position":[[88,8]]},"19":{"position":[[50,8]]}},"keywords":{}}],["index.transpile.babel.cj",{"_index":472,"title":{},"content":{"17":{"position":[[94,25]]}},"keywords":{}}],["index.transpile.swc.cj",{"_index":484,"title":{},"content":{"19":{"position":[[70,23]]}},"keywords":{}}],["indic",{"_index":1266,"title":{},"content":{"174":{"position":[[1367,9]]},"178":{"position":[[786,8]]},"298":{"position":[[712,9]]}},"keywords":{}}],["inevit",{"_index":1644,"title":{},"content":{"251":{"position":[[690,10]]}},"keywords":{}}],["infinit",{"_index":1871,"title":{},"content":{"315":{"position":[[272,8]]}},"keywords":{}}],["influenc",{"_index":1047,"title":{"164":{"position":[[0,9]]}},"content":{"164":{"position":[[0,9]]}},"keywords":{}}],["info",{"_index":1200,"title":{},"content":{"173":{"position":[[131,5],[197,5]]},"174":{"position":[[254,4],[873,4]]}},"keywords":{}}],["inform",{"_index":1635,"title":{},"content":{"251":{"position":[[181,11]]}},"keywords":{}}],["inherits/inherits_browser.j",{"_index":325,"title":{},"content":{"7":{"position":[[880,31]]}},"keywords":{}}],["initi",{"_index":577,"title":{},"content":{"21":{"position":[[2013,7]]},"159":{"position":[[69,9]]},"160":{"position":[[769,10]]}},"keywords":{}}],["injectlambdacontext",{"_index":1219,"title":{},"content":{"174":{"position":[[50,19]]}},"keywords":{}}],["inlin",{"_index":955,"title":{"473":{"position":[[0,6]]}},"content":{"157":{"position":[[912,6]]},"450":{"position":[[58,6]]},"473":{"position":[[0,6],[265,6],[368,6],[858,6]]}},"keywords":{}}],["inpath",{"_index":2013,"title":{},"content":{"347":{"position":[[195,6]]}},"keywords":{}}],["input",{"_index":218,"title":{"275":{"position":[[0,5]]},"385":{"position":[[0,5]]},"419":{"position":[[0,5]]},"458":{"position":[[0,5]]}},"content":{"5":{"position":[[1971,5]]},"6":{"position":[[287,5]]},"13":{"position":[[310,7],[327,6]]},"183":{"position":[[574,5]]},"265":{"position":[[553,6]]},"303":{"position":[[1217,5]]},"359":{"position":[[105,5],[256,5]]}},"keywords":{}}],["inputoutputlogg",{"_index":1753,"title":{},"content":{"278":{"position":[[39,17],[330,17],[514,19]]}},"keywords":{}}],["inputoutputloggermiddlewar",{"_index":644,"title":{},"content":{"34":{"position":[[95,27]]},"37":{"position":[[146,27]]},"43":{"position":[[95,27]]},"91":{"position":[[95,27]]},"102":{"position":[[163,27]]},"146":{"position":[[95,27]]}},"keywords":{}}],["inputoutputloggermiddlewareaft",{"_index":563,"title":{},"content":{"21":{"position":[[1792,32]]}},"keywords":{}}],["inputoutputloggermiddlewarebefor",{"_index":540,"title":{},"content":{"21":{"position":[[1270,33]]}},"keywords":{}}],["inputschema",{"_index":2224,"title":{},"content":{"429":{"position":[[159,11]]},"466":{"position":[[151,11]]}},"keywords":{}}],["insert",{"_index":209,"title":{},"content":{"5":{"position":[[1637,6]]}},"keywords":{}}],["instal",{"_index":918,"title":{"155":{"position":[[0,8]]},"172":{"position":[[0,8]]},"176":{"position":[[0,8]]},"180":{"position":[[0,8]]},"184":{"position":[[0,8]]},"196":{"position":[[0,8]]},"201":{"position":[[0,8]]},"206":{"position":[[0,8]]},"210":{"position":[[0,8]]},"214":{"position":[[0,8]]},"218":{"position":[[0,8]]},"223":{"position":[[0,8]]},"227":{"position":[[0,8]]},"231":{"position":[[0,8]]},"235":{"position":[[0,8]]},"238":{"position":[[0,8]]},"242":{"position":[[0,8]]},"246":{"position":[[0,8]]},"250":{"position":[[0,8]]},"254":{"position":[[0,8]]},"258":{"position":[[0,8]]},"262":{"position":[[0,8]]},"268":{"position":[[0,8]]},"272":{"position":[[0,8]]},"276":{"position":[[0,8]]},"285":{"position":[[0,8]]},"290":{"position":[[0,8]]},"297":{"position":[[0,8]]},"302":{"position":[[0,8]]},"307":{"position":[[0,8]]},"312":{"position":[[0,8]]},"317":{"position":[[0,8]]},"326":{"position":[[0,8]]},"331":{"position":[[0,8]]},"335":{"position":[[0,8]]},"339":{"position":[[0,8]]},"346":{"position":[[0,8]]},"350":{"position":[[0,8]]},"358":{"position":[[0,8]]}},"content":{"155":{"position":[[3,7],[51,7],[154,9],[219,7]]},"172":{"position":[[16,7]]},"176":{"position":[[16,7]]},"180":{"position":[[16,7]]},"184":{"position":[[16,7]]},"196":{"position":[[3,7],[60,7],[96,7]]},"201":{"position":[[3,7],[60,7],[95,7]]},"206":{"position":[[3,7],[60,7]]},"210":{"position":[[3,7],[60,7]]},"214":{"position":[[3,7],[60,7]]},"218":{"position":[[3,7],[60,7]]},"223":{"position":[[3,7],[60,7]]},"227":{"position":[[3,7],[60,7]]},"231":{"position":[[3,7],[60,7]]},"235":{"position":[[3,7],[60,7]]},"238":{"position":[[3,7],[60,7]]},"242":{"position":[[3,7],[60,7]]},"246":{"position":[[3,7],[60,7]]},"250":{"position":[[3,7],[60,7]]},"254":{"position":[[3,7],[60,7]]},"258":{"position":[[3,7],[60,7]]},"262":{"position":[[3,7],[60,7]]},"268":{"position":[[3,7],[60,7]]},"272":{"position":[[3,7],[60,7]]},"276":{"position":[[3,7],[60,7]]},"285":{"position":[[3,7],[60,7],[97,7]]},"290":{"position":[[3,7],[60,7],[105,7]]},"297":{"position":[[3,7],[60,7],[102,7]]},"302":{"position":[[3,7],[60,7],[89,7]]},"307":{"position":[[3,7],[60,7],[104,7]]},"312":{"position":[[3,7],[60,7],[138,7]]},"317":{"position":[[3,7],[60,7],[90,7]]},"326":{"position":[[3,7],[60,7],[90,7]]},"331":{"position":[[3,7],[60,7]]},"335":{"position":[[3,7],[48,7]]},"339":{"position":[[3,7],[60,7],[98,7]]},"346":{"position":[[3,7],[60,7]]},"350":{"position":[[3,7],[48,7]]},"354":{"position":[[256,7]]},"358":{"position":[[3,7],[60,7],[96,7]]}},"keywords":{}}],["instanc",{"_index":933,"title":{},"content":{"156":{"position":[[331,8]]},"173":{"position":[[544,8]]},"177":{"position":[[438,8]]},"181":{"position":[[360,8]]},"251":{"position":[[109,8]]},"280":{"position":[[71,8]]},"283":{"position":[[358,9]]},"298":{"position":[[1029,9]]},"309":{"position":[[299,10]]},"355":{"position":[[115,8]]},"473":{"position":[[760,8]]}},"keywords":{}}],["instead",{"_index":1535,"title":{},"content":{"224":{"position":[[81,7]]},"399":{"position":[[227,7]]},"419":{"position":[[26,7]]}},"keywords":{}}],["instruct",{"_index":1184,"title":{},"content":{"171":{"position":[[148,10]]},"178":{"position":[[525,9]]}},"keywords":{}}],["instrument",{"_index":1435,"title":{},"content":{"197":{"position":[[100,12]]},"202":{"position":[[98,12]]},"286":{"position":[[82,12]]},"291":{"position":[[191,12]]},"298":{"position":[[110,12]]},"303":{"position":[[86,12]]},"308":{"position":[[114,12]]},"318":{"position":[[88,12]]},"327":{"position":[[88,12]]},"340":{"position":[[122,12]]}},"keywords":{}}],["instrumentation.support",{"_index":1290,"title":{},"content":{"175":{"position":[[265,26]]}},"keywords":{}}],["integ",{"_index":199,"title":{},"content":{"5":{"position":[[1370,10],[1428,10]]}},"keywords":{}}],["integr",{"_index":817,"title":{"143":{"position":[[0,12]]}},"content":{"143":{"position":[[0,12]]}},"keywords":{}}],["interact",{"_index":1369,"title":{},"content":{"185":{"position":[[97,8]]}},"keywords":{}}],["intern",{"_index":34,"title":{"2":{"position":[[0,8]]},"474":{"position":[[0,8]]}},"content":{"2":{"position":[[0,8],[95,9],[269,9],[562,8],[778,8]]},"197":{"position":[[318,8],[541,8]]},"202":{"position":[[314,8],[537,8]]},"251":{"position":[[93,8],[512,10]]},"286":{"position":[[268,8]]},"298":{"position":[[321,8],[535,8],[677,8]]},"303":{"position":[[297,8],[520,8]]},"308":{"position":[[346,8],[569,8]]},"318":{"position":[[380,8]]},"327":{"position":[[277,8],[500,8]]},"340":{"position":[[368,8]]},"398":{"position":[[617,9]]},"474":{"position":[[0,8],[46,8],[292,8]]}},"keywords":{}}],["internalkey",{"_index":2282,"title":{},"content":{"474":{"position":[[653,12],[925,11]]}},"keywords":{}}],["internation",{"_index":2251,"title":{},"content":{"466":{"position":[[492,20]]}},"keywords":{}}],["internet",{"_index":731,"title":{"83":{"position":[[0,8]]}},"content":{},"keywords":{}}],["into"steps"",{"_index":256,"title":{},"content":{"6":{"position":[[721,21]]}},"keywords":{}}],["intro",{"_index":19,"title":{"1":{"position":[[0,5]]},"170":{"position":[[0,6]]}},"content":{"1":{"position":[[0,5]]}},"keywords":{}}],["introduct",{"_index":100,"title":{"3":{"position":[[0,12]]}},"content":{},"keywords":{}}],["intuit",{"_index":2048,"title":{},"content":{"355":{"position":[[450,9]]}},"keywords":{}}],["invalid",{"_index":1629,"title":{},"content":{"247":{"position":[[192,8]]},"251":{"position":[[377,8]]},"273":{"position":[[85,8]]}},"keywords":{}}],["invert",{"_index":1041,"title":{},"content":{"163":{"position":[[614,8]]}},"keywords":{}}],["invoc",{"_index":14,"title":{},"content":{"0":{"position":[[210,12]]},"170":{"position":[[539,12]]},"171":{"position":[[125,10],[228,11]]},"173":{"position":[[693,10],[807,11]]},"174":{"position":[[1505,11],[1727,10],[2105,11],[2179,10],[2307,11]]},"177":{"position":[[598,10]]},"178":{"position":[[936,10]]},"188":{"position":[[363,11],[444,11],[643,10]]},"322":{"position":[[671,11],[727,10],[1128,10]]},"399":{"position":[[109,10]]}},"keywords":{}}],["invok",{"_index":891,"title":{},"content":{"153":{"position":[[140,6],[487,7]]},"243":{"position":[[64,7]]},"248":{"position":[[284,7]]},"252":{"position":[[299,7]]},"362":{"position":[[493,7]]}},"keywords":{}}],["invokewithresponsestream",{"_index":1418,"title":{"193":{"position":[[7,24]]}},"content":{},"keywords":{}}],["invokewithresponsestreamcommand",{"_index":1420,"title":{},"content":{"194":{"position":[[23,31],[156,33]]}},"keywords":{}}],["iot",{"_index":733,"title":{"83":{"position":[[19,5]]},"86":{"position":[[0,3]]}},"content":{"84":{"position":[[26,3]]},"87":{"position":[[26,3]]}},"keywords":{}}],["isbase64encod",{"_index":1654,"title":{},"content":{"252":{"position":[[626,16]]}},"keywords":{}}],["isol",{"_index":255,"title":{},"content":{"6":{"position":[[681,7]]}},"keywords":{}}],["issu",{"_index":30,"title":{},"content":{"1":{"position":[[116,7]]},"152":{"position":[[130,6]]},"167":{"position":[[1116,6]]}},"keywords":{}}],["iswarmingup",{"_index":1991,"title":{},"content":{"332":{"position":[[0,12]]},"333":{"position":[[83,11],[256,11]]}},"keywords":{}}],["it'",{"_index":40,"title":{},"content":{"2":{"position":[[52,4]]},"5":{"position":[[1855,4]]},"153":{"position":[[1065,4]]},"161":{"position":[[32,4]]},"188":{"position":[[661,4]]},"189":{"position":[[522,4],[1366,4]]},"251":{"position":[[786,4]]},"282":{"position":[[359,4]]},"332":{"position":[[138,4]]},"394":{"position":[[17,4],[187,4]]}},"keywords":{}}],["item",{"_index":1869,"title":{},"content":{"315":{"position":[[134,4]]},"323":{"position":[[255,5]]}},"keywords":{}}],["iter",{"_index":1768,"title":{},"content":{"281":{"position":[[33,9]]}},"keywords":{}}],["itself",{"_index":2056,"title":{},"content":{"356":{"position":[[131,6]]}},"keywords":{}}],["javascript",{"_index":1536,"title":{},"content":{"224":{"position":[[118,10]]},"324":{"position":[[1001,10]]},"360":{"position":[[28,11]]}},"keywords":{}}],["jest",{"_index":1135,"title":{},"content":{"167":{"position":[[1210,4]]}},"keywords":{}}],["jmespath",{"_index":1354,"title":{},"content":{"183":{"position":[[250,8]]}},"keywords":{}}],["john",{"_index":1682,"title":{},"content":{"260":{"position":[[197,7],[527,7]]}},"keywords":{}}],["joi",{"_index":1914,"title":{},"content":{"322":{"position":[[1313,4],[1318,3]]},"324":{"position":[[268,3]]}},"keywords":{}}],["js.map",{"_index":350,"title":{},"content":{"7":{"position":[[1370,8]]}},"keywords":{}}],["js/dist/esnext",{"_index":344,"title":{},"content":{"7":{"position":[[1283,14]]}},"keywords":{}}],["json",{"_index":141,"title":{"245":{"position":[[5,4]]},"334":{"position":[[3,4]]},"378":{"position":[[5,4]]},"390":{"position":[[4,4]]},"411":{"position":[[5,4]]},"425":{"position":[[4,4]]},"431":{"position":[[3,4]]},"450":{"position":[[5,4]]},"468":{"position":[[3,4]]}},"content":{"5":{"position":[[97,4],[331,4],[1862,4]]},"7":{"position":[[595,7],[612,7],[912,7],[944,7]]},"31":{"position":[[82,4]]},"34":{"position":[[628,4],[1269,6],[1344,6]]},"37":{"position":[[679,4]]},"43":{"position":[[628,4],[1269,6],[1344,6]]},"91":{"position":[[628,4],[1269,6],[1344,6]]},"102":{"position":[[367,6],[442,6]]},"146":{"position":[[640,4],[1281,6],[1356,6]]},"148":{"position":[[540,4]]},"174":{"position":[[2409,4]]},"246":{"position":[[87,4]]},"248":{"position":[[141,4]]},"251":{"position":[[755,4]]},"281":{"position":[[522,4],[580,4],[659,4],[1154,4],[1217,4]]},"283":{"position":[[17,4],[170,4]]},"324":{"position":[[835,4],[1105,4],[1541,4]]},"335":{"position":[[73,4]]},"337":{"position":[[82,4]]},"354":{"position":[[853,4],[956,4]]},"359":{"position":[[1189,4]]},"360":{"position":[[10,4],[166,4]]},"362":{"position":[[1477,4]]},"394":{"position":[[41,4]]},"456":{"position":[[36,4]]}},"keywords":{}}],["json.log",{"_index":1183,"title":{},"content":{"171":{"position":[[105,12]]}},"keywords":{}}],["json.pars",{"_index":1625,"title":{},"content":{"247":{"position":[[84,13]]},"336":{"position":[[93,13]]}},"keywords":{}}],["json.stringifi",{"_index":1424,"title":{},"content":{"194":{"position":[[230,21]]},"198":{"position":[[175,16]]},"203":{"position":[[173,16]]},"229":{"position":[[671,16]]},"248":{"position":[[440,16]]},"278":{"position":[[193,16]]},"287":{"position":[[176,16]]},"304":{"position":[[189,16]]},"309":{"position":[[190,16]]},"319":{"position":[[163,16]]},"362":{"position":[[570,16]]},"385":{"position":[[150,16]]}},"keywords":{}}],["json.stringify(bodi",{"_index":694,"title":{},"content":{"34":{"position":[[2100,20]]},"37":{"position":[[2225,20]]},"43":{"position":[[2100,20]]},"91":{"position":[[2125,20]]},"146":{"position":[[2112,20]]},"263":{"position":[[242,20]]},"266":{"position":[[430,20]]},"294":{"position":[[230,20]]}},"keywords":{}}],["json.stringify(respons",{"_index":183,"title":{},"content":{"5":{"position":[[993,24]]}},"keywords":{}}],["jsonapi",{"_index":1903,"title":{},"content":{"322":{"position":[[938,8],[947,7]]}},"keywords":{}}],["jsonbodypars",{"_index":152,"title":{},"content":{"5":{"position":[[298,14]]}},"keywords":{}}],["jsonmiddi",{"_index":1962,"title":{},"content":{"324":{"position":[[1581,9]]}},"keywords":{}}],["jump",{"_index":138,"title":{},"content":{"5":{"position":[[43,4]]}},"keywords":{}}],["jwtmiddi",{"_index":1951,"title":{},"content":{"324":{"position":[[1162,8]]}},"keywords":{}}],["kafka",{"_index":736,"title":{"92":{"position":[[0,6]]},"95":{"position":[[0,6]]}},"content":{"96":{"position":[[38,5]]}},"keywords":{}}],["keep",{"_index":16,"title":{"136":{"position":[[10,4]]}},"content":{"0":{"position":[[252,4]]},"251":{"position":[[613,4],[799,4]]},"255":{"position":[[293,4]]},"324":{"position":[[642,4]]},"354":{"position":[[300,4]]}},"keywords":{}}],["key",{"_index":86,"title":{"387":{"position":[[3,3]]},"421":{"position":[[3,3]]}},"content":{"2":{"position":[[792,4],[919,4],[1267,4]]},"104":{"position":[[477,4],[567,4]]},"170":{"position":[[299,3]]},"171":{"position":[[0,3],[24,3],[300,4]]},"173":{"position":[[630,5]]},"174":{"position":[[1672,4],[1807,4],[1881,3],[1990,4],[2050,3]]},"175":{"position":[[0,3]]},"177":{"position":[[524,5]]},"178":{"position":[[644,3]]},"179":{"position":[[0,3]]},"181":{"position":[[447,5]]},"183":{"position":[[0,3],[240,3]]},"197":{"position":[[327,3],[550,3],[774,3]]},"202":{"position":[[323,3],[546,3],[769,3]]},"203":{"position":[[301,4]]},"259":{"position":[[73,3]]},"286":{"position":[[277,3],[502,3]]},"298":{"position":[[330,3],[544,3],[686,3],[1253,3]]},"299":{"position":[[454,5]]},"303":{"position":[[306,3],[529,3],[746,3]]},"304":{"position":[[309,4]]},"308":{"position":[[355,3],[578,3],[796,3]]},"318":{"position":[[389,3],[607,3]]},"323":{"position":[[266,3]]},"327":{"position":[[286,3],[509,3],[779,3]]},"328":{"position":[[303,3],[881,3]]},"340":{"position":[[377,3]]},"351":{"position":[[122,4]]},"354":{"position":[[1004,3]]},"355":{"position":[[138,3],[271,5]]},"369":{"position":[[317,5],[359,5]]},"472":{"position":[[236,5]]},"475":{"position":[[90,5]]}},"keywords":{}}],["keyword",{"_index":2064,"title":{},"content":{"359":{"position":[[337,7]]},"360":{"position":[[116,9]]},"394":{"position":[[131,8],[235,7]]}},"keywords":{}}],["kinesi",{"_index":740,"title":{"98":{"position":[[0,7]]},"120":{"position":[[0,7]]}},"content":{"99":{"position":[[29,7]]},"121":{"position":[[29,7]]}},"keywords":{}}],["kms:decrypt.ssm",{"_index":1972,"title":{},"content":{"327":{"position":[[1220,15]]}},"keywords":{}}],["knex",{"_index":1909,"title":{},"content":{"322":{"position":[[1242,4]]}},"keywords":{}}],["know",{"_index":33,"title":{},"content":{"1":{"position":[[154,5]]},"46":{"position":[[103,4]]},"164":{"position":[[401,5]]}},"keywords":{}}],["lambda",{"_index":13,"title":{"8":{"position":[[9,6]]},"102":{"position":[[33,7]]},"136":{"position":[[3,6]]},"169":{"position":[[19,6]]},"192":{"position":[[0,6]]},"193":{"position":[[0,6]]},"194":{"position":[[11,7]]}},"content":{"0":{"position":[[203,6]]},"4":{"position":[[78,6],[344,6]]},"5":{"position":[[609,6]]},"6":{"position":[[48,6],[1066,6]]},"21":{"position":[[1837,6]]},"24":{"position":[[17,6],[80,6]]},"27":{"position":[[10,6]]},"30":{"position":[[10,6]]},"33":{"position":[[10,6]]},"36":{"position":[[10,6]]},"39":{"position":[[10,6]]},"42":{"position":[[10,6]]},"45":{"position":[[10,6]]},"48":{"position":[[10,6]]},"51":{"position":[[10,6]]},"54":{"position":[[10,6]]},"57":{"position":[[10,6]]},"60":{"position":[[10,6]]},"63":{"position":[[6,6]]},"67":{"position":[[6,6]]},"69":{"position":[[10,6]]},"72":{"position":[[10,6]]},"76":{"position":[[10,6]]},"78":{"position":[[10,6]]},"81":{"position":[[10,6]]},"84":{"position":[[10,6]]},"87":{"position":[[10,6]]},"90":{"position":[[10,6]]},"93":{"position":[[6,6]]},"96":{"position":[[6,6]]},"99":{"position":[[10,6]]},"106":{"position":[[10,6],[45,6]]},"109":{"position":[[6,6]]},"112":{"position":[[10,6]]},"113":{"position":[[193,6]]},"115":{"position":[[10,6]]},"116":{"position":[[184,6]]},"118":{"position":[[10,6]]},"121":{"position":[[10,6]]},"124":{"position":[[10,6]]},"127":{"position":[[81,6]]},"130":{"position":[[10,6]]},"133":{"position":[[10,6]]},"138":{"position":[[10,6]]},"141":{"position":[[16,6]]},"145":{"position":[[10,6]]},"148":{"position":[[225,7]]},"153":{"position":[[350,6]]},"155":{"position":[[179,6],[249,6]]},"156":{"position":[[104,6]]},"159":{"position":[[43,6],[152,8]]},"160":{"position":[[712,6]]},"164":{"position":[[156,7]]},"166":{"position":[[271,6],[362,6]]},"167":{"position":[[214,6],[306,6],[348,6]]},"168":{"position":[[175,6],[314,7]]},"170":{"position":[[319,6],[817,6]]},"171":{"position":[[44,6],[118,6]]},"172":{"position":[[36,6]]},"173":{"position":[[686,6]]},"174":{"position":[[83,6],[567,6],[769,6],[1389,6],[1498,6],[2098,6],[2172,6],[2300,6]]},"175":{"position":[[393,6]]},"176":{"position":[[36,6]]},"177":{"position":[[591,6]]},"178":{"position":[[84,6],[929,6],[1053,6],[1182,6]]},"179":{"position":[[335,6]]},"180":{"position":[[36,6]]},"182":{"position":[[88,6],[1056,6]]},"183":{"position":[[22,6],[120,6],[396,6]]},"184":{"position":[[36,6]]},"186":{"position":[[119,6],[209,6]]},"188":{"position":[[50,6],[356,6],[437,6],[560,6]]},"189":{"position":[[841,6]]},"194":{"position":[[79,7],[93,6]]},"197":{"position":[[1072,6]]},"202":{"position":[[1067,6]]},"212":{"position":[[241,6]]},"228":{"position":[[179,6],[377,6],[575,6],[779,6]]},"232":{"position":[[1606,6]]},"233":{"position":[[156,6]]},"244":{"position":[[224,6]]},"251":{"position":[[706,7]]},"264":{"position":[[448,6]]},"270":{"position":[[254,6]]},"274":{"position":[[347,6]]},"277":{"position":[[126,6]]},"280":{"position":[[284,6]]},"286":{"position":[[800,6]]},"298":{"position":[[1547,6]]},"303":{"position":[[1044,6]]},"308":{"position":[[1094,6]]},"315":{"position":[[152,6]]},"318":{"position":[[905,6]]},"322":{"position":[[5,6],[109,6],[512,6],[720,6],[1114,6]]},"323":{"position":[[4,6],[63,6],[285,6],[649,6]]},"324":{"position":[[514,6],[652,7],[1025,6]]},"327":{"position":[[1077,6]]},"340":{"position":[[701,6]]},"354":{"position":[[310,6]]},"356":{"position":[[116,6]]},"359":{"position":[[134,6],[287,6],[549,6]]},"395":{"position":[[63,7]]},"398":{"position":[[550,6],[735,6]]},"426":{"position":[[93,6]]},"476":{"position":[[23,6],[346,6]]},"478":{"position":[[81,6],[220,7]]}},"keywords":{}}],["lambda'",{"_index":1761,"title":{},"content":{"280":{"position":[[29,8]]},"315":{"position":[[56,8]]}},"keywords":{}}],["lambda.send",{"_index":1422,"title":{},"content":{"194":{"position":[[139,12]]}},"keywords":{}}],["lambda:writegetobjectrespons",{"_index":1824,"title":{},"content":{"291":{"position":[[881,29]]}},"keywords":{}}],["lambda@edg",{"_index":713,"title":{"44":{"position":[[11,11]]}},"content":{"45":{"position":[[33,11]]}},"keywords":{}}],["lambda_proxi",{"_index":1948,"title":{},"content":{"324":{"position":[[1073,12]]}},"keywords":{}}],["lambdacli",{"_index":1419,"title":{},"content":{"194":{"position":[[9,13],[106,14]]}},"keywords":{}}],["lambdahandl",{"_index":164,"title":{},"content":{"5":{"position":[[622,13]]},"157":{"position":[[173,13],[752,13]]},"168":{"position":[[337,13]]},"174":{"position":[[181,13]]},"178":{"position":[[328,13]]},"182":{"position":[[210,13]]},"225":{"position":[[92,13]]},"314":{"position":[[94,13]]},"347":{"position":[[549,13],[752,13]]},"351":{"position":[[317,13],[520,13]]},"398":{"position":[[475,13]]},"472":{"position":[[1051,13]]},"476":{"position":[[500,13]]}},"keywords":{}}],["lambdatransform",{"_index":793,"title":{},"content":{"127":{"position":[[39,18]]}},"keywords":{}}],["land",{"_index":274,"title":{},"content":{"6":{"position":[[1162,5]]}},"keywords":{}}],["langaug",{"_index":2254,"title":{},"content":{"466":{"position":[[1130,10]]}},"keywords":{}}],["languag",{"_index":1551,"title":{},"content":{"228":{"position":[[458,9],[548,9],[965,9]]},"281":{"position":[[228,8]]},"359":{"position":[[685,8],[710,8]]},"361":{"position":[[143,8]]},"363":{"position":[[841,10]]},"364":{"position":[[443,10]]},"365":{"position":[[402,10]]},"394":{"position":[[384,9]]},"406":{"position":[[58,8]]},"466":{"position":[[291,9]]}},"keywords":{}}],["larg",{"_index":2161,"title":{},"content":{"394":{"position":[[200,5]]},"476":{"position":[[427,5]]}},"keywords":{}}],["last",{"_index":1044,"title":{},"content":{"163":{"position":[[758,4]]}},"keywords":{}}],["lastchangedd",{"_index":1837,"title":{},"content":{"298":{"position":[[927,16]]}},"keywords":{}}],["lastnam",{"_index":1683,"title":{},"content":{"260":{"position":[[205,9],[535,9]]}},"keywords":{}}],["lastrotationd",{"_index":1836,"title":{},"content":{"298":{"position":[[907,16]]}},"keywords":{}}],["latenc",{"_index":1346,"title":{},"content":{"182":{"position":[[1072,8]]}},"keywords":{}}],["latency.cr",{"_index":1317,"title":{},"content":{"179":{"position":[[351,16]]}},"keywords":{}}],["later",{"_index":583,"title":{},"content":{"21":{"position":[[2201,5]]},"347":{"position":[[603,5]]},"351":{"position":[[371,5]]},"398":{"position":[[430,5]]}},"keywords":{}}],["lattic",{"_index":825,"title":{"144":{"position":[[4,7]]}},"content":{"145":{"position":[[33,7]]}},"keywords":{}}],["le",{"_index":1569,"title":{},"content":{"229":{"position":[[406,2]]}},"keywords":{}}],["leak",{"_index":1138,"title":{},"content":{"167":{"position":[[1382,7],[1461,6]]}},"keywords":{}}],["learn",{"_index":1320,"title":{},"content":{"179":{"position":[[582,5]]}},"keywords":{}}],["left",{"_index":597,"title":{},"content":{"21":{"position":[[2537,4]]}},"keywords":{}}],["legaci",{"_index":1875,"title":{},"content":{"318":{"position":[[995,6]]}},"keywords":{}}],["legal",{"_index":400,"title":{},"content":{"12":{"position":[[301,5]]}},"keywords":{}}],["lesslog",{"_index":1898,"title":{},"content":{"322":{"position":[[851,8],[875,8],[981,8],[1005,8]]},"324":{"position":[[1591,8],[1615,8]]}},"keywords":{}}],["let",{"_index":1710,"title":{},"content":{"265":{"position":[[319,4]]},"324":{"position":[[978,4]]}},"keywords":{}}],["let'",{"_index":137,"title":{},"content":{"5":{"position":[[37,5],[65,5],[1688,5]]},"473":{"position":[[354,5]]}},"keywords":{}}],["level",{"_index":895,"title":{},"content":{"153":{"position":[[357,6]]},"173":{"position":[[105,5]]},"174":{"position":[[1713,6],[1738,6],[1767,6]]},"219":{"position":[[419,6],[488,5]]},"322":{"position":[[270,5],[341,6]]},"323":{"position":[[438,5]]}},"keywords":{}}],["lex",{"_index":784,"title":{"105":{"position":[[0,3]]}},"content":{"106":{"position":[[73,3]]}},"keywords":{}}],["lexus",{"_index":785,"title":{},"content":{"106":{"position":[[29,8]]}},"keywords":{}}],["librari",{"_index":1885,"title":{},"content":{"322":{"position":[[76,9]]}},"keywords":{}}],["licens",{"_index":363,"title":{},"content":{"7":{"position":[[1526,7]]}},"keywords":{}}],["lifev5",{"_index":1085,"title":{},"content":{"166":{"position":[[444,6]]}},"keywords":{}}],["likewis",{"_index":1405,"title":{},"content":{"189":{"position":[[474,9]]}},"keywords":{}}],["limit",{"_index":1974,"title":{},"content":{"327":{"position":[[1251,12]]}},"keywords":{}}],["link",{"_index":1411,"title":{},"content":{"189":{"position":[[725,6]]}},"keywords":{}}],["list",{"_index":1459,"title":{},"content":{"199":{"position":[[65,5]]},"204":{"position":[[64,5]]},"228":{"position":[[145,4],[342,4],[540,4],[742,4]]},"232":{"position":[[799,4]]},"288":{"position":[[59,5]]},"295":{"position":[[58,5]]},"300":{"position":[[71,5]]},"305":{"position":[[58,5]]},"310":{"position":[[72,5]]},"320":{"position":[[59,5]]},"329":{"position":[[59,5]]},"344":{"position":[[79,5]]},"354":{"position":[[345,4]]},"478":{"position":[[1084,4]]}},"keywords":{}}],["lmammino2020",{"_index":979,"title":{},"content":{"159":{"position":[[355,13]]}},"keywords":{}}],["lmammino2022",{"_index":988,"title":{},"content":{"159":{"position":[[471,13]]}},"keywords":{}}],["load",{"_index":698,"title":{"35":{"position":[[12,4]]}},"content":{"36":{"position":[[37,4]]}},"keywords":{}}],["local",{"_index":2070,"title":{},"content":{"359":{"position":[[768,12],[1103,7]]},"361":{"position":[[24,12]]},"363":{"position":[[469,6],[525,6],[532,9],[593,6]]},"466":{"position":[[274,13],[943,13],[1113,13]]}},"keywords":{}}],["locale=$(basenam",{"_index":2111,"title":{},"content":{"363":{"position":[[481,17]]}},"keywords":{}}],["lock.json",{"_index":352,"title":{},"content":{"7":{"position":[[1387,9]]}},"keywords":{}}],["log",{"_index":539,"title":{"62":{"position":[[12,4]]}},"content":{"21":{"position":[[1246,3]]},"63":{"position":[[29,4]]},"170":{"position":[[250,7]]},"171":{"position":[[87,7],[198,4],[244,3],[319,4],[364,3],[415,4],[471,7]]},"173":{"position":[[101,3],[292,3],[428,8],[461,9],[678,3]]},"174":{"position":[[259,3],[433,4],[878,3],[1174,3],[1322,3],[1596,4],[1684,3],[1763,3],[1844,3],[2015,3],[2164,3],[2365,3],[2389,4],[2485,4]]},"177":{"position":[[140,3]]},"181":{"position":[[140,3]]},"188":{"position":[[404,3]]},"215":{"position":[[79,7]]},"243":{"position":[[39,7],[152,7]]},"277":{"position":[[39,7],[286,6],[365,4]]},"280":{"position":[[200,4],[232,4]]},"322":{"position":[[220,4],[246,7],[291,7],[352,3],[917,7],[1047,7]]},"323":{"position":[[102,8],[203,7],[251,3]]},"324":{"position":[[197,4],[1657,7]]},"385":{"position":[[17,4]]},"476":{"position":[[204,3]]}},"keywords":{}}],["logev",{"_index":1213,"title":{},"content":{"173":{"position":[[636,8]]},"188":{"position":[[832,9]]},"189":{"position":[[1787,9]]}},"keywords":{}}],["logger",{"_index":495,"title":{"171":{"position":[[0,7]]},"213":{"position":[[6,6]]},"275":{"position":[[13,6]]},"385":{"position":[[13,7]]},"403":{"position":[[6,7]]},"419":{"position":[[13,7]]},"442":{"position":[[6,7]]},"458":{"position":[[13,7]]}},"content":{"21":{"position":[[20,7],[104,7]]},"22":{"position":[[64,7],[135,6]]},"34":{"position":[[80,7],[149,7]]},"37":{"position":[[131,7],[200,7]]},"43":{"position":[[80,7],[149,7]]},"91":{"position":[[80,7],[149,7]]},"102":{"position":[[148,7],[217,7]]},"146":{"position":[[80,7],[149,7]]},"170":{"position":[[230,6]]},"173":{"position":[[513,6],[520,8],[560,6],[783,6]]},"174":{"position":[[42,7],[116,6],[129,8],[1247,6],[1622,6],[2154,6],[2328,6]]},"188":{"position":[[249,6],[383,6]]},"214":{"position":[[88,6]]},"215":{"position":[[0,6]]},"216":{"position":[[70,7]]},"243":{"position":[[0,6]]},"276":{"position":[[95,6]]},"277":{"position":[[0,6]]},"278":{"position":[[83,7],[374,7],[412,6],[534,7]]},"280":{"position":[[192,7],[224,7]]},"313":{"position":[[0,6]]},"322":{"position":[[187,7]]},"323":{"position":[[184,7]]},"324":{"position":[[121,7]]}},"keywords":{}}],["logger(id",{"_index":505,"title":{},"content":{"21":{"position":[[278,10]]},"22":{"position":[[279,10]]}},"keywords":{}}],["logger.child(request.context",{"_index":1756,"title":{},"content":{"278":{"position":[[574,29]]}},"keywords":{}}],["logger.info('thi",{"_index":1224,"title":{},"content":{"174":{"position":[[230,17]]}},"keywords":{}}],["loggeromitpath",{"_index":1743,"title":{},"content":{"277":{"position":[[155,15]]}},"keywords":{}}],["logic",{"_index":118,"title":{},"content":{"4":{"position":[[330,5],[524,6]]},"5":{"position":[[1081,5]]},"6":{"position":[[152,6],[275,6],[432,5],[775,5],[953,5]]},"156":{"position":[[180,5]]},"157":{"position":[[231,5],[810,5]]},"215":{"position":[[87,6]]},"216":{"position":[[141,5]]},"314":{"position":[[235,5]]},"473":{"position":[[321,5]]},"478":{"position":[[499,5],[658,5]]}},"keywords":{}}],["loglevel",{"_index":1198,"title":{},"content":{"173":{"position":[[73,8]]}},"keywords":{}}],["logmetr",{"_index":1328,"title":{},"content":{"182":{"position":[[64,10]]}},"keywords":{}}],["long",{"_index":607,"title":{},"content":{"21":{"position":[[2802,4]]},"165":{"position":[[102,4]]},"166":{"position":[[315,4]]},"197":{"position":[[886,4]]},"202":{"position":[[881,4]]},"286":{"position":[[614,4]]},"298":{"position":[[1365,4]]},"303":{"position":[[858,4]]},"308":{"position":[[908,4]]},"318":{"position":[[719,4]]},"327":{"position":[[891,4]]}},"keywords":{}}],["longer",{"_index":1105,"title":{},"content":{"166":{"position":[[784,6]]},"356":{"position":[[24,6]]},"375":{"position":[[85,6]]},"382":{"position":[[3,6]]},"408":{"position":[[3,6]]},"409":{"position":[[31,6]]},"426":{"position":[[150,6]]}},"keywords":{}}],["look",{"_index":567,"title":{},"content":{"21":{"position":[[1879,5],[1966,4],[2730,6]]},"152":{"position":[[221,4]]},"472":{"position":[[929,4]]}},"keywords":{}}],["loop",{"_index":806,"title":{"209":{"position":[[28,4]]},"371":{"position":[[28,5]]},"402":{"position":[[28,5]]},"441":{"position":[[28,5]]}},"content":{"136":{"position":[[18,4],[151,5]]},"210":{"position":[[110,4]]},"212":{"position":[[107,5]]},"280":{"position":[[127,5]]},"315":{"position":[[281,6]]},"322":{"position":[[405,4]]}},"keywords":{}}],["loophttpcontentnegoti",{"_index":2032,"title":{},"content":{"354":{"position":[[589,26]]}},"keywords":{}}],["lose",{"_index":1409,"title":{},"content":{"189":{"position":[[669,6]]}},"keywords":{}}],["lot",{"_index":580,"title":{},"content":{"21":{"position":[[2151,3]]},"466":{"position":[[12,3]]}},"keywords":{}}],["low",{"_index":2133,"title":{},"content":{"369":{"position":[[32,3]]},"370":{"position":[[32,3]]}},"keywords":{}}],["lower",{"_index":1516,"title":{},"content":{"219":{"position":[[462,5]]}},"keywords":{}}],["lowercas",{"_index":1613,"title":{},"content":{"239":{"position":[[120,9]]},"355":{"position":[[234,9],[579,9]]},"410":{"position":[[40,9]]}},"keywords":{}}],["ls0tls0tv2vis2l0rm9ybujvdw5kyxj5chbzuuv3zjjcvkplq2uwtq0kq29udgvudc1eaxnwb3npdglvbjogzm9ybs1kyxrhoybuyw1lpsjmb28idqoncmjhcg0kls0tls0tv2vis2l0rm9ybujvdw5kyxj5chbzuuv3zjjcvkplq2uwts0t",{"_index":1653,"title":{},"content":{"252":{"position":[[442,183]]}},"keywords":{}}],["lt",{"_index":1082,"title":{},"content":{"166":{"position":[[333,5]]}},"keywords":{}}],["lt;message>${body}</message>",{"_index":1700,"title":{},"content":{"263":{"position":[[136,41]]},"266":{"position":[[324,41]]}},"keywords":{}}],["lt;message>${message}</message>",{"_index":1573,"title":{},"content":{"229":{"position":[[524,43]]}},"keywords":{}}],["lysé",{"_index":1692,"title":{},"content":{"260":{"position":[[285,9]]}},"keywords":{}}],["made",{"_index":1162,"title":{},"content":{"170":{"position":[[258,4]]},"178":{"position":[[1170,4],[1441,4]]},"323":{"position":[[211,4]]}},"keywords":{}}],["magic",{"_index":581,"title":{},"content":{"21":{"position":[[2158,5]]}},"keywords":{}}],["main",{"_index":131,"title":{},"content":{"4":{"position":[[510,4]]},"6":{"position":[[11,4],[761,4],[939,4]]},"318":{"position":[[1074,4]]}},"keywords":{}}],["maintain",{"_index":249,"title":{},"content":{"6":{"position":[[499,9],[1006,9]]},"414":{"position":[[56,15]]},"476":{"position":[[117,9]]}},"keywords":{}}],["mainten",{"_index":1063,"title":{},"content":{"165":{"position":[[112,12]]},"166":{"position":[[152,11],[791,11]]}},"keywords":{}}],["major",{"_index":1067,"title":{},"content":{"166":{"position":[[19,5]]},"247":{"position":[[246,5]]},"251":{"position":[[431,5]]},"273":{"position":[[139,5]]}},"keywords":{}}],["make",{"_index":246,"title":{},"content":{"6":{"position":[[461,6]]},"143":{"position":[[80,4]]},"147":{"position":[[72,4]]},"148":{"position":[[81,4]]},"149":{"position":[[88,4]]},"150":{"position":[[84,4]]},"151":{"position":[[105,4]]},"152":{"position":[[201,4]]},"155":{"position":[[130,4]]},"159":{"position":[[224,6]]},"167":{"position":[[75,4],[1015,4]]},"170":{"position":[[807,4]]},"178":{"position":[[1229,5]]},"183":{"position":[[709,5]]},"189":{"position":[[246,4],[359,4]]},"190":{"position":[[77,4]]},"322":{"position":[[91,4]]},"323":{"position":[[85,5]]},"355":{"position":[[498,4]]},"466":{"position":[[29,6]]},"472":{"position":[[37,4]]}},"keywords":{}}],["makehandleridempot",{"_index":1376,"title":{},"content":{"186":{"position":[[84,21],[754,23]]}},"keywords":{}}],["male",{"_index":1686,"title":{},"content":{"260":{"position":[[230,7]]}},"keywords":{}}],["manag",{"_index":428,"title":{"92":{"position":[[7,7]]},"95":{"position":[[12,7]]},"123":{"position":[[8,7]]},"296":{"position":[[8,7]]},"370":{"position":[[3,8]]},"389":{"position":[[8,8]]},"423":{"position":[[8,8]]},"461":{"position":[[8,8]]}},"content":{"13":{"position":[[661,7]]},"15":{"position":[[868,7]]},"96":{"position":[[23,7]]},"103":{"position":[[179,8]]},"124":{"position":[[30,7]]},"160":{"position":[[689,7]]},"178":{"position":[[173,9]]},"283":{"position":[[260,8],[458,7]]},"297":{"position":[[90,7],[145,7]]},"298":{"position":[[1237,9]]},"299":{"position":[[75,8],[362,7]]},"300":{"position":[[48,7]]},"323":{"position":[[516,7],[553,8]]},"324":{"position":[[1410,10]]},"386":{"position":[[99,8]]}},"keywords":{}}],["manager.awsclientopt",{"_index":1831,"title":{},"content":{"298":{"position":[[176,24]]}},"keywords":{}}],["manager.servic",{"_index":1800,"title":{},"content":{"283":{"position":[[305,15]]}},"keywords":{}}],["managerssm",{"_index":2041,"title":{},"content":{"354":{"position":[[1054,10]]}},"keywords":{}}],["manipul",{"_index":1706,"title":{},"content":{"264":{"position":[[393,10]]}},"keywords":{}}],["manual",{"_index":1289,"title":{},"content":{"175":{"position":[[258,6]]}},"keywords":{}}],["map",{"_index":87,"title":{},"content":{"2":{"position":[[810,3],[936,3]]},"178":{"position":[[1383,4]]},"197":{"position":[[530,7]]},"202":{"position":[[526,7]]},"286":{"position":[[257,7]]},"298":{"position":[[524,7],[666,7]]},"303":{"position":[[509,7]]},"308":{"position":[[558,7]]},"318":{"position":[[369,7]]},"327":{"position":[[489,7]]}},"keywords":{}}],["mask",{"_index":2211,"title":{},"content":{"419":{"position":[[21,4]]}},"keywords":{}}],["mask/bin",{"_index":308,"title":{},"content":{"7":{"position":[[603,8]]}},"keywords":{}}],["mask/build",{"_index":309,"title":{},"content":{"7":{"position":[[620,10]]}},"keywords":{}}],["match",{"_index":1397,"title":{},"content":{"188":{"position":[[524,7]]},"232":{"position":[[779,7]]},"264":{"position":[[7,8]]},"265":{"position":[[474,8]]},"291":{"position":[[725,5]]},"347":{"position":[[168,5]]},"398":{"position":[[43,5]]}},"keywords":{}}],["max",{"_index":1313,"title":{},"content":{"179":{"position":[[183,3],[199,3]]},"232":{"position":[[987,3]]}},"keywords":{}}],["maximum",{"_index":202,"title":{},"content":{"5":{"position":[[1393,8],[1454,8]]}},"keywords":{}}],["maxlength",{"_index":195,"title":{},"content":{"5":{"position":[[1315,10],[1508,10]]}},"keywords":{}}],["maxretri",{"_index":1977,"title":{},"content":{"327":{"position":[[1315,10]]}},"keywords":{}}],["md",{"_index":364,"title":{},"content":{"7":{"position":[[1534,4]]}},"keywords":{}}],["mean",{"_index":1361,"title":{},"content":{"183":{"position":[[466,5]]},"211":{"position":[[110,7]]}},"keywords":{}}],["media",{"_index":1554,"title":{},"content":{"228":{"position":[[657,5],[750,5]]},"281":{"position":[[241,5]]}},"keywords":{}}],["meet",{"_index":2105,"title":{},"content":{"363":{"position":[[126,4]]}},"keywords":{}}],["memori",{"_index":609,"title":{"22":{"position":[[0,7]]}},"content":{"251":{"position":[[665,7],[763,6]]}},"keywords":{}}],["memoryplugin",{"_index":612,"title":{},"content":{"22":{"position":[[92,12]]}},"keywords":{}}],["memwatch",{"_index":610,"title":{},"content":{"22":{"position":[[7,8],[35,9]]}},"keywords":{}}],["memwatch.heapdiff",{"_index":613,"title":{},"content":{"22":{"position":[[231,19]]}},"keywords":{}}],["messag",{"_index":179,"title":{"365":{"position":[[41,9]]}},"content":{"5":{"position":[[920,8]]},"167":{"position":[[1189,7]]},"186":{"position":[[642,8]]},"198":{"position":[[192,8]]},"203":{"position":[[190,8]]},"229":{"position":[[281,8],[344,7],[387,7],[431,7],[621,11],[688,7],[721,7]]},"243":{"position":[[302,7]]},"278":{"position":[[210,8]]},"281":{"position":[[1222,7],[1247,7]]},"287":{"position":[[193,8]]},"304":{"position":[[206,8]]},"309":{"position":[[207,8]]},"314":{"position":[[216,7]]},"319":{"position":[[180,8]]},"342":{"position":[[137,9]]},"343":{"position":[[166,9]]},"360":{"position":[[356,9]]},"361":{"position":[[107,8]]},"394":{"position":[[362,8]]},"426":{"position":[[179,7]]},"466":{"position":[[522,8]]}},"keywords":{}}],["metadata",{"_index":1296,"title":{},"content":{"177":{"position":[[337,9],[627,9]]},"178":{"position":[[977,9]]}},"keywords":{}}],["metadata.automat",{"_index":1284,"title":{},"content":{"175":{"position":[[109,22]]}},"keywords":{}}],["method",{"_index":705,"title":{},"content":{"37":{"position":[[1362,7],[1422,7]]},"189":{"position":[[387,6],[568,6]]},"232":{"position":[[426,7],[1191,7]]},"322":{"position":[[254,8],[299,6]]},"347":{"position":[[76,6],[181,6]]},"348":{"position":[[464,7],[524,7]]},"398":{"position":[[929,6]]}},"keywords":{}}],["methods/modul",{"_index":1905,"title":{},"content":{"322":{"position":[[1154,15]]}},"keywords":{}}],["methodsexposeheadersrequestheadersrequestmethod",{"_index":2148,"title":{},"content":{"374":{"position":[[42,48]]}},"keywords":{}}],["metric",{"_index":745,"title":{"179":{"position":[[0,8]]},"205":{"position":[[11,7]]},"401":{"position":[[11,8]]},"440":{"position":[[11,8]]}},"content":{"102":{"position":[[91,8]]},"170":{"position":[[637,7],[732,7]]},"179":{"position":[[36,7],[97,7],[120,6],[162,6],[378,6],[562,7],[648,8]]},"181":{"position":[[246,8],[328,7],[336,8],[376,7],[527,7],[644,7]]},"182":{"position":[[42,8],[122,7],[136,9],[1085,7],[1126,7],[1157,8],[1236,7],[1292,6]]},"189":{"position":[[505,7],[587,7],[616,7]]},"206":{"position":[[93,7]]},"207":{"position":[[56,8],[110,7],[351,7],[442,7]]},"208":{"position":[[90,9]]},"280":{"position":[[11,8]]},"323":{"position":[[127,7],[315,7],[370,6]]}},"keywords":{}}],["metricloggerdo",{"_index":1763,"title":{},"content":{"280":{"position":[[87,14]]}},"keywords":{}}],["metrics).metr",{"_index":1315,"title":{},"content":{"179":{"position":[[203,16]]}},"keywords":{}}],["metrics.addmetric('successfulbook",{"_index":1331,"title":{},"content":{"182":{"position":[[298,38]]}},"keywords":{}}],["metricunit",{"_index":1327,"title":{},"content":{"182":{"position":[[51,12]]}},"keywords":{}}],["metricunits.count",{"_index":1332,"title":{},"content":{"182":{"position":[[337,18]]}},"keywords":{}}],["middi",{"_index":36,"title":{"4":{"position":[[8,6]]},"159":{"position":[[19,6]]}},"content":{"2":{"position":[[17,5],[187,5],[515,7]]},"4":{"position":[[0,5],[211,5]]},"5":{"position":[[161,5],[211,5],[1792,7]]},"6":{"position":[[1104,6]]},"21":{"position":[[2708,5]]},"25":{"position":[[7,5]]},"28":{"position":[[7,5],[55,7]]},"31":{"position":[[7,5],[604,7]]},"34":{"position":[[7,5],[1376,7]]},"37":{"position":[[7,5],[1501,7]]},"40":{"position":[[7,5]]},"43":{"position":[[7,5],[1376,7]]},"46":{"position":[[7,5],[55,7]]},"49":{"position":[[7,5],[55,7]]},"52":{"position":[[7,5],[55,7]]},"55":{"position":[[7,5],[119,7]]},"58":{"position":[[7,5],[55,7]]},"61":{"position":[[7,5],[55,7]]},"64":{"position":[[7,5],[119,7]]},"68":{"position":[[7,5],[55,7]]},"70":{"position":[[7,5]]},"73":{"position":[[7,5],[119,7]]},"77":{"position":[[7,5],[55,7]]},"79":{"position":[[7,5]]},"82":{"position":[[7,5],[119,7]]},"85":{"position":[[7,5],[55,7]]},"88":{"position":[[7,5],[55,7]]},"91":{"position":[[7,5],[1376,7]]},"94":{"position":[[7,5],[119,7]]},"97":{"position":[[7,5],[119,7]]},"100":{"position":[[7,5],[119,7]]},"102":{"position":[[7,5],[467,7]]},"103":{"position":[[7,5],[289,7]]},"104":{"position":[[7,5],[273,7]]},"107":{"position":[[7,5],[55,7]]},"110":{"position":[[7,5],[119,7]]},"113":{"position":[[7,5],[119,7]]},"116":{"position":[[7,5],[119,7]]},"119":{"position":[[7,5],[119,7]]},"122":{"position":[[7,5],[119,7]]},"125":{"position":[[7,5],[55,7]]},"128":{"position":[[7,5],[195,7]]},"131":{"position":[[7,5],[55,7]]},"134":{"position":[[7,5],[119,7]]},"139":{"position":[[7,5],[189,7]]},"142":{"position":[[7,5],[55,7]]},"146":{"position":[[7,5],[1388,7]]},"148":{"position":[[151,5]]},"155":{"position":[[11,6]]},"156":{"position":[[43,5],[202,5],[273,7]]},"157":{"position":[[7,5],[480,5]]},"159":{"position":[[0,5]]},"161":{"position":[[6,5]]},"164":{"position":[[10,5],[170,5]]},"165":{"position":[[14,5]]},"166":{"position":[[813,6]]},"167":{"position":[[144,5],[377,5],[776,5],[923,5]]},"168":{"position":[[20,5],[147,5],[224,5]]},"170":{"position":[[223,6]]},"174":{"position":[[7,5]]},"178":{"position":[[7,5]]},"182":{"position":[[7,5]]},"186":{"position":[[7,5],[509,6]]},"188":{"position":[[732,8]]},"192":{"position":[[7,5],[111,7]]},"193":{"position":[[7,5],[111,7]]},"198":{"position":[[7,5]]},"203":{"position":[[7,5]]},"208":{"position":[[6,5]]},"212":{"position":[[7,5]]},"216":{"position":[[7,5]]},"220":{"position":[[7,5],[225,7]]},"221":{"position":[[7,5],[281,7]]},"225":{"position":[[7,5]]},"229":{"position":[[7,5]]},"232":{"position":[[1342,5]]},"233":{"position":[[7,5]]},"236":{"position":[[7,5]]},"240":{"position":[[7,5],[113,7]]},"244":{"position":[[7,5]]},"248":{"position":[[7,5]]},"252":{"position":[[7,5]]},"256":{"position":[[7,5]]},"260":{"position":[[7,5]]},"266":{"position":[[7,5]]},"270":{"position":[[7,5]]},"274":{"position":[[7,5]]},"278":{"position":[[7,5],[298,5]]},"287":{"position":[[7,5]]},"293":{"position":[[31,5]]},"294":{"position":[[31,5]]},"299":{"position":[[7,5]]},"304":{"position":[[7,5]]},"309":{"position":[[7,5]]},"314":{"position":[[7,5]]},"319":{"position":[[7,5]]},"322":{"position":[[845,5]]},"324":{"position":[[0,5],[453,5],[621,5],[1429,5]]},"328":{"position":[[7,5],[460,5]]},"333":{"position":[[6,5]]},"337":{"position":[[7,5],[177,7]]},"342":{"position":[[7,5]]},"343":{"position":[[7,5]]},"348":{"position":[[7,5],[153,7],[309,7],[603,7]]},"352":{"position":[[7,5],[207,7],[346,7],[485,7]]},"354":{"position":[[15,5],[88,6]]},"355":{"position":[[3,5],[166,5],[487,5],[619,5]]},"356":{"position":[[15,5],[285,5]]},"362":{"position":[[37,5],[753,5],[1408,5]]},"363":{"position":[[619,5],[802,7]]},"364":{"position":[[51,5],[374,7]]},"365":{"position":[[51,5],[333,7]]},"370":{"position":[[61,5]]},"398":{"position":[[89,8]]},"466":{"position":[[750,10],[1018,10]]},"472":{"position":[[969,5]]},"473":{"position":[[422,5],[754,5]]},"476":{"position":[[84,6],[111,5],[469,5]]},"478":{"position":[[130,5],[729,5]]}},"keywords":{}}],["middlewar",{"_index":42,"title":{"102":{"position":[[0,11]]},"279":{"position":[[9,11]]},"321":{"position":[[12,11]]},"368":{"position":[[0,11]]},"400":{"position":[[0,11]]},"439":{"position":[[0,11]]},"472":{"position":[[13,11]]},"473":{"position":[[7,11]]},"475":{"position":[[7,11]]}},"content":{"2":{"position":[[63,11]]},"4":{"position":[[23,10],[269,10]]},"5":{"position":[[279,11],[723,10],[1167,11],[1758,11]]},"6":{"position":[[627,10],[787,10],[1119,10]]},"21":{"position":[[1909,10],[2061,12],[2256,10],[2440,11],[2620,10],[2772,12]]},"153":{"position":[[18,11],[171,11],[240,11],[372,11],[631,11],[791,10]]},"156":{"position":[[220,11],[406,11],[442,11]]},"157":{"position":[[377,10],[403,12],[443,11],[686,11],[919,11],[1046,10]]},"160":{"position":[[161,11],[271,10],[379,11],[398,10],[508,11],[612,11],[678,10]]},"161":{"position":[[121,11],[195,11],[418,10],[487,11]]},"163":{"position":[[0,11],[342,11],[586,11]]},"164":{"position":[[80,11]]},"167":{"position":[[275,10]]},"168":{"position":[[697,11]]},"170":{"position":[[277,10],[483,10],[667,10],[793,10]]},"173":{"position":[[471,10]]},"175":{"position":[[242,11]]},"177":{"position":[[365,10]]},"181":{"position":[[286,10]]},"185":{"position":[[0,10]]},"188":{"position":[[93,11],[186,10],[215,10],[270,12],[310,10],[696,12]]},"189":{"position":[[47,11],[180,10],[1017,10]]},"196":{"position":[[16,10]]},"201":{"position":[[16,10]]},"206":{"position":[[16,10]]},"210":{"position":[[16,10]]},"211":{"position":[[15,10]]},"214":{"position":[[16,10]]},"218":{"position":[[16,10]]},"223":{"position":[[16,10]]},"227":{"position":[[16,10]]},"231":{"position":[[16,10]]},"235":{"position":[[16,10]]},"238":{"position":[[16,10]]},"242":{"position":[[16,10]]},"246":{"position":[[16,10]]},"250":{"position":[[16,10]]},"251":{"position":[[457,10]]},"254":{"position":[[16,10]]},"258":{"position":[[16,10]]},"262":{"position":[[16,10]]},"263":{"position":[[4,10]]},"265":{"position":[[35,10],[353,10]]},"268":{"position":[[16,10]]},"272":{"position":[[16,10]]},"276":{"position":[[16,10]]},"281":{"position":[[18,10]]},"285":{"position":[[16,10]]},"290":{"position":[[16,10]]},"297":{"position":[[16,10]]},"299":{"position":[[327,10]]},"302":{"position":[[16,10]]},"307":{"position":[[16,10]]},"312":{"position":[[16,10]]},"317":{"position":[[16,10]]},"322":{"position":[[40,12],[195,10],[418,10],[645,10],[683,10],[860,10],[955,10],[990,10],[1078,10]]},"323":{"position":[[230,10]]},"324":{"position":[[129,10],[459,10],[542,10],[600,10],[797,10],[891,11],[962,10],[1134,10],[1210,10],[1273,10],[1600,10]]},"326":{"position":[[16,10]]},"328":{"position":[[973,10]]},"331":{"position":[[16,10]]},"335":{"position":[[16,10]]},"339":{"position":[[16,10]]},"346":{"position":[[16,10]]},"347":{"position":[[525,10],[563,10],[632,10],[670,12],[707,10],[766,10]]},"350":{"position":[[16,10]]},"351":{"position":[[293,10],[331,10],[400,10],[438,12],[475,10],[534,10]]},"354":{"position":[[115,10],[181,11],[402,11],[428,10]]},"355":{"position":[[38,10]]},"358":{"position":[[16,10]]},"362":{"position":[[1356,11]]},"367":{"position":[[110,10],[166,10],[186,10],[288,10],[341,10]]},"385":{"position":[[48,10]]},"386":{"position":[[4,10]]},"388":{"position":[[4,10]]},"393":{"position":[[4,10]]},"395":{"position":[[371,12]]},"398":{"position":[[8,10],[98,11],[178,11],[436,10]]},"408":{"position":[[52,10]]},"444":{"position":[[62,10],[85,10]]},"450":{"position":[[65,10]]},"466":{"position":[[41,10],[372,10],[575,10]]},"472":{"position":[[13,11],[42,11],[184,10],[906,10]]},"473":{"position":[[7,11],[272,11],[375,11],[865,12]]},"474":{"position":[[112,11],[205,10],[436,10],[502,10]]},"475":{"position":[[7,11],[21,10]]},"477":{"position":[[42,11],[93,11]]},"478":{"position":[[64,10],[234,10],[488,10],[647,10],[708,10],[1069,10]]}},"keywords":{}}],["middleware.beforemiddleware/aftermiddleware(fctnam",{"_index":1023,"title":{},"content":{"161":{"position":[[308,53]]}},"keywords":{}}],["middleware.cacheexpiri",{"_index":1446,"title":{},"content":{"197":{"position":[[836,22]]},"202":{"position":[[831,22]]},"286":{"position":[[564,22]]},"298":{"position":[[1315,22]]},"303":{"position":[[808,22]]},"308":{"position":[[858,22]]},"318":{"position":[[669,22]]},"327":{"position":[[841,22]]}},"keywords":{}}],["middleware.disableprefetch",{"_index":1841,"title":{},"content":{"298":{"position":[[1047,26]]}},"keywords":{}}],["middleware1",{"_index":937,"title":{},"content":{"157":{"position":[[39,11],[64,12],[522,11],[700,15]]},"163":{"position":[[429,11]]}},"keywords":{}}],["middleware1"",{"_index":951,"title":{},"content":{"157":{"position":[[552,17]]}},"keywords":{}}],["middleware2",{"_index":938,"title":{},"content":{"157":{"position":[[84,11],[109,12],[577,11],[716,14]]}},"keywords":{}}],["middleware2"",{"_index":952,"title":{},"content":{"157":{"position":[[607,17]]}},"keywords":{}}],["middleware3",{"_index":939,"title":{},"content":{"157":{"position":[[129,11],[154,12],[632,11],[731,14]]}},"keywords":{}}],["middleware3"",{"_index":953,"title":{},"content":{"157":{"position":[[662,17]]}},"keywords":{}}],["middleware@sharecov",{"_index":1944,"title":{},"content":{"324":{"position":[[735,21]]}},"keywords":{}}],["middlewaremiddi",{"_index":1912,"title":{},"content":{"322":{"position":[[1290,15]]},"324":{"position":[[30,15],[297,15]]}},"keywords":{}}],["middlewareshttp",{"_index":2171,"title":{},"content":{"397":{"position":[[14,15]]}},"keywords":{}}],["middlewaresmiddi",{"_index":1946,"title":{},"content":{"324":{"position":[[924,16]]}},"keywords":{}}],["middy'",{"_index":965,"title":{},"content":{"159":{"position":[[181,7]]},"473":{"position":[[332,7]]}},"keywords":{}}],["middy((ev",{"_index":916,"title":{},"content":{"153":{"position":[[1372,13]]},"189":{"position":[[1673,13]]},"198":{"position":[[89,13]]},"203":{"position":[[87,13]]},"208":{"position":[[116,13]]},"212":{"position":[[129,13]]},"216":{"position":[[94,13]]},"229":{"position":[[246,13]]},"232":{"position":[[1476,13]]},"233":{"position":[[84,13]]},"236":{"position":[[111,13]]},"244":{"position":[[105,13]]},"248":{"position":[[175,13]]},"252":{"position":[[185,13]]},"256":{"position":[[111,13]]},"260":{"position":[[111,13]]},"266":{"position":[[117,13]]},"270":{"position":[[120,13]]},"274":{"position":[[185,13]]},"278":{"position":[[107,13],[444,13]]},"287":{"position":[[90,13]]},"293":{"position":[[129,13]]},"299":{"position":[[100,13]]},"304":{"position":[[75,13]]},"309":{"position":[[104,13]]},"319":{"position":[[77,13]]},"328":{"position":[[77,13],[572,13]]},"342":{"position":[[99,13]]},"343":{"position":[[99,13]]},"362":{"position":[[180,13],[896,13],[1613,13]]},"473":{"position":[[470,13]]}},"keywords":{}}],["middy().handler((ev",{"_index":621,"title":{},"content":{"25":{"position":[[55,23]]},"40":{"position":[[55,23]]},"70":{"position":[[55,23]]},"79":{"position":[[55,23]]}},"keywords":{}}],["middy(async",{"_index":1830,"title":{},"content":{"294":{"position":[[129,11]]}},"keywords":{}}],["middy(graphql.createhandl",{"_index":841,"title":{},"content":{"148":{"position":[[617,30]]}},"keywords":{}}],["middy(handl",{"_index":1114,"title":{},"content":{"167":{"position":[[448,14],[557,14]]}},"keywords":{}}],["middy(lambdahandl",{"_index":940,"title":{},"content":{"157":{"position":[[265,20],[845,20]]},"168":{"position":[[580,20]]},"174":{"position":[[335,20]]},"178":{"position":[[452,20]]},"182":{"position":[[386,20]]},"395":{"position":[[227,20]]},"434":{"position":[[57,20]]},"472":{"position":[[1145,20]]},"476":{"position":[[630,20]]}},"keywords":{}}],["middy(lambdahandler).use(eventnorm",{"_index":1543,"title":{},"content":{"225":{"position":[[218,43]]}},"keywords":{}}],["middy(lambdahandler).use(sqsbatch",{"_index":1865,"title":{},"content":{"314":{"position":[[328,36]]}},"keywords":{}}],["middy(memoryplugin",{"_index":615,"title":{},"content":{"22":{"position":[[765,21]]}},"keywords":{}}],["middy(originalhandl",{"_index":1996,"title":{},"content":{"333":{"position":[[219,22]]}},"keywords":{}}],["middy(timeplugin",{"_index":527,"title":{},"content":{"21":{"position":[[905,19]]}},"keywords":{}}],["middy.j",{"_index":297,"title":{},"content":{"7":{"position":[[346,8]]}},"keywords":{}}],["middy.middlewarefn<apigatewayproxyev",{"_index":2309,"title":{},"content":{"478":{"position":[[344,43],[520,43]]}},"keywords":{}}],["middy.middlewareobj<apigatewayproxyev",{"_index":2307,"title":{},"content":{"478":{"position":[[251,44]]}},"keywords":{}}],["middy/appconfig",{"_index":774,"title":{},"content":{"104":{"position":[[106,18]]},"196":{"position":[[75,16]]},"198":{"position":[[54,18]]}},"keywords":{}}],["middy/cachecor",{"_index":2030,"title":{},"content":{"354":{"position":[[482,16]]}},"keywords":{}}],["middy/cloudwatch",{"_index":744,"title":{},"content":{"102":{"position":[[72,18]]},"206":{"position":[[75,17]]}},"keywords":{}}],["middy/cor",{"_index":49,"title":{},"content":{"2":{"position":[[198,13]]},"5":{"position":[[172,13]]},"15":{"position":[[446,11]]},"25":{"position":[[18,13]]},"28":{"position":[[18,13]]},"31":{"position":[[18,13]]},"34":{"position":[[18,13]]},"37":{"position":[[18,13]]},"40":{"position":[[18,13]]},"43":{"position":[[18,13]]},"46":{"position":[[18,13]]},"49":{"position":[[18,13]]},"52":{"position":[[18,13]]},"55":{"position":[[18,13]]},"58":{"position":[[18,13]]},"61":{"position":[[18,13]]},"64":{"position":[[18,13]]},"68":{"position":[[18,13]]},"70":{"position":[[18,13]]},"73":{"position":[[18,13]]},"77":{"position":[[18,13]]},"79":{"position":[[18,13]]},"82":{"position":[[18,13]]},"85":{"position":[[18,13]]},"88":{"position":[[18,13]]},"91":{"position":[[18,13]]},"94":{"position":[[18,13]]},"97":{"position":[[18,13]]},"100":{"position":[[18,13]]},"102":{"position":[[18,13]]},"103":{"position":[[18,13]]},"104":{"position":[[18,13]]},"107":{"position":[[18,13]]},"110":{"position":[[18,13]]},"113":{"position":[[18,13]]},"116":{"position":[[18,13]]},"119":{"position":[[18,13]]},"122":{"position":[[18,13]]},"125":{"position":[[18,13]]},"128":{"position":[[18,13]]},"131":{"position":[[18,13]]},"134":{"position":[[18,13]]},"139":{"position":[[18,13]]},"142":{"position":[[18,13]]},"146":{"position":[[18,13]]},"148":{"position":[[162,13]]},"155":{"position":[[66,11]]},"157":{"position":[[18,13]]},"168":{"position":[[235,13]]},"174":{"position":[[18,14]]},"178":{"position":[[18,14]]},"182":{"position":[[18,14]]},"186":{"position":[[18,14]]},"192":{"position":[[18,13]]},"193":{"position":[[18,13]]},"198":{"position":[[18,13]]},"203":{"position":[[18,13]]},"212":{"position":[[18,13]]},"216":{"position":[[18,13]]},"220":{"position":[[18,13]]},"221":{"position":[[18,13]]},"225":{"position":[[18,13]]},"229":{"position":[[18,13]]},"232":{"position":[[1353,13]]},"233":{"position":[[18,13]]},"236":{"position":[[18,13]]},"240":{"position":[[18,13]]},"244":{"position":[[18,13]]},"248":{"position":[[18,13]]},"252":{"position":[[18,13]]},"256":{"position":[[18,13]]},"260":{"position":[[18,13]]},"266":{"position":[[18,13]]},"270":{"position":[[18,13]]},"274":{"position":[[18,13]]},"278":{"position":[[18,13],[309,13]]},"287":{"position":[[18,13]]},"293":{"position":[[42,13]]},"294":{"position":[[42,13]]},"299":{"position":[[18,13]]},"304":{"position":[[18,13]]},"309":{"position":[[18,13]]},"314":{"position":[[18,13]]},"319":{"position":[[18,13]]},"328":{"position":[[18,13],[471,13]]},"337":{"position":[[18,13]]},"342":{"position":[[18,13]]},"343":{"position":[[18,13]]},"348":{"position":[[18,13]]},"352":{"position":[[18,13]]},"354":{"position":[[151,11]]},"362":{"position":[[48,13],[764,13],[1419,13]]},"363":{"position":[[630,13]]},"364":{"position":[[62,13]]},"365":{"position":[[62,13]]},"472":{"position":[[980,13]]},"473":{"position":[[433,13]]},"476":{"position":[[480,13]]},"478":{"position":[[141,13]]}},"keywords":{}}],["middy/corecach",{"_index":2029,"title":{},"content":{"354":{"position":[[459,16]]}},"keywords":{}}],["middy/do",{"_index":811,"title":{},"content":{"136":{"position":[[116,9]]},"210":{"position":[[75,9]]},"212":{"position":[[71,10]]},"354":{"position":[[554,9]]}},"keywords":{}}],["middy/dynamodb",{"_index":777,"title":{},"content":{"104":{"position":[[193,17]]},"201":{"position":[[75,15]]},"203":{"position":[[53,17]]}},"keywords":{}}],["middy/error",{"_index":643,"title":{},"content":{"34":{"position":[[66,13]]},"37":{"position":[[117,13]]},"43":{"position":[[66,13]]},"91":{"position":[[66,13]]},"102":{"position":[[134,13]]},"146":{"position":[[66,13]]},"214":{"position":[[75,12]]},"216":{"position":[[56,13]]}},"keywords":{}}],["middy/ev",{"_index":719,"title":{},"content":{"55":{"position":[[70,13]]},"64":{"position":[[70,13]]},"73":{"position":[[70,13]]},"82":{"position":[[70,13]]},"94":{"position":[[70,13]]},"97":{"position":[[70,13]]},"100":{"position":[[70,13]]},"110":{"position":[[70,13]]},"113":{"position":[[70,13]]},"116":{"position":[[70,13]]},"119":{"position":[[70,13]]},"122":{"position":[[70,13]]},"134":{"position":[[70,13]]},"139":{"position":[[70,13]]},"223":{"position":[[75,12]]},"225":{"position":[[60,13]]}},"keywords":{}}],["middy/http",{"_index":153,"title":{},"content":{"5":{"position":[[318,12],[378,12]]},"15":{"position":[[509,11],[575,11],[615,11]]},"34":{"position":[[202,12],[278,12],[340,12],[398,12],[468,12],[542,12],[615,12],[692,12],[770,12],[846,12],[922,12],[999,12],[1091,12]]},"37":{"position":[[62,12],[253,12],[329,12],[391,12],[449,12],[519,12],[593,12],[666,12],[743,12],[821,12],[897,12],[973,12],[1050,12],[1142,12]]},"43":{"position":[[202,12],[278,12],[340,12],[398,12],[468,12],[542,12],[615,12],[692,12],[770,12],[846,12],[922,12],[999,12],[1091,12]]},"91":{"position":[[202,12],[278,12],[340,12],[398,12],[468,12],[542,12],[615,12],[692,12],[770,12],[846,12],[922,12],[999,12],[1091,12]]},"146":{"position":[[202,12],[278,12],[340,12],[398,12],[468,12],[554,12],[627,12],[704,12],[782,12],[858,12],[934,12],[1011,12],[1103,12]]},"148":{"position":[[527,12]]},"218":{"position":[[75,11]]},"220":{"position":[[67,12],[133,12]]},"221":{"position":[[67,12],[133,12]]},"227":{"position":[[75,11]]},"229":{"position":[[67,12],[134,12],[195,12]]},"231":{"position":[[75,11]]},"232":{"position":[[1396,12],[1441,12]]},"233":{"position":[[49,12]]},"235":{"position":[[75,11]]},"236":{"position":[[64,12]]},"238":{"position":[[75,11]]},"240":{"position":[[65,12]]},"242":{"position":[[75,11]]},"244":{"position":[[61,12]]},"246":{"position":[[75,11]]},"248":{"position":[[65,12],[128,12]]},"250":{"position":[[75,11]]},"252":{"position":[[65,12],[133,12]]},"254":{"position":[[75,11]]},"256":{"position":[[64,12]]},"258":{"position":[[75,11]]},"260":{"position":[[64,12]]},"262":{"position":[[75,11]]},"266":{"position":[[67,12]]},"268":{"position":[[75,11]]},"270":{"position":[[68,12]]},"272":{"position":[[75,11]]},"274":{"position":[[65,12],[133,12]]},"346":{"position":[[75,11]]},"348":{"position":[[62,12]]},"354":{"position":[[505,11],[622,11],[676,11],[727,11],[782,11],[841,11],[895,11],[944,11],[1139,11]]},"362":{"position":[[1464,12]]}},"keywords":{}}],["middy/input",{"_index":645,"title":{},"content":{"34":{"position":[[128,13]]},"37":{"position":[[179,13]]},"43":{"position":[[128,13]]},"91":{"position":[[128,13]]},"102":{"position":[[196,13]]},"146":{"position":[[128,13]]},"276":{"position":[[75,12]]},"278":{"position":[[62,13],[353,13]]}},"keywords":{}}],["middy/rd",{"_index":422,"title":{},"content":{"13":{"position":[[539,10]]},"15":{"position":[[746,10]]},"103":{"position":[[106,11]]},"285":{"position":[[75,10]]},"287":{"position":[[54,11]]}},"keywords":{}}],["middy/s3",{"_index":425,"title":{},"content":{"13":{"position":[[582,9]]},"15":{"position":[[470,9],[538,9],[789,9]]},"104":{"position":[[150,11]]},"128":{"position":[[71,10]]},"290":{"position":[[75,9]]},"293":{"position":[[85,10]]},"294":{"position":[[85,10]]},"302":{"position":[[75,9]]},"304":{"position":[[47,11]]},"354":{"position":[[994,9]]}},"keywords":{}}],["middy/secret",{"_index":753,"title":{},"content":{"103":{"position":[[163,15]]},"297":{"position":[[75,14]]},"299":{"position":[[59,15]]},"354":{"position":[[1039,14]]}},"keywords":{}}],["middy/sercret",{"_index":427,"title":{},"content":{"13":{"position":[[645,15]]},"15":{"position":[[852,15]]}},"keywords":{}}],["middy/servic",{"_index":430,"title":{},"content":{"13":{"position":[[708,14]]},"15":{"position":[[915,14]]},"307":{"position":[[75,14]]},"309":{"position":[[61,15]]}},"keywords":{}}],["middy/sq",{"_index":813,"title":{},"content":{"139":{"position":[[131,11]]},"312":{"position":[[75,10]]},"314":{"position":[[53,11]]}},"keywords":{}}],["middy/ssm",{"_index":433,"title":{},"content":{"13":{"position":[[759,10]]},"15":{"position":[[966,10]]},"103":{"position":[[214,12]]},"104":{"position":[[237,12]]},"326":{"position":[[75,10]]},"328":{"position":[[48,12],[543,12]]}},"keywords":{}}],["middy/ssmvalid",{"_index":2042,"title":{},"content":{"354":{"position":[[1071,19]]}},"keywords":{}}],["middy/st",{"_index":435,"title":{},"content":{"13":{"position":[[795,10]]},"15":{"position":[[1002,10]]},"103":{"position":[[253,12]]},"197":{"position":[[361,10]]},"202":{"position":[[357,10]]},"298":{"position":[[364,10]]},"303":{"position":[[340,10]]},"308":{"position":[[389,10]]},"317":{"position":[[75,10]]},"319":{"position":[[48,12]]},"327":{"position":[[324,10]]},"340":{"position":[[411,10]]}},"keywords":{}}],["middy/util",{"_index":51,"title":{},"content":{"2":{"position":[[238,13]]},"103":{"position":[[60,13]]},"104":{"position":[[60,13]]},"328":{"position":[[513,13]]},"474":{"position":[[600,13]]}},"keywords":{}}],["middy/valid",{"_index":158,"title":{},"content":{"5":{"position":[[428,18]]},"315":{"position":[[199,17]]},"348":{"position":[[115,18]]},"352":{"position":[[165,18]]},"358":{"position":[[75,16]]},"362":{"position":[[84,18],[800,18],[1517,18]]},"363":{"position":[[666,18]]},"364":{"position":[[98,18]]},"365":{"position":[[98,18]]},"466":{"position":[[618,18],[911,18]]}},"keywords":{}}],["middy/validator/transpil",{"_index":160,"title":{},"content":{"5":{"position":[[479,28]]},"362":{"position":[[135,28],[851,28],[1568,28]]},"364":{"position":[[166,28]]},"365":{"position":[[166,28]]},"466":{"position":[[698,28]]}},"keywords":{}}],["middy/validatorurlencodebodypars",{"_index":2043,"title":{},"content":{"354":{"position":[[1097,35]]}},"keywords":{}}],["middy/w",{"_index":420,"title":{},"content":{"13":{"position":[[494,9]]},"15":{"position":[[701,9]]},"31":{"position":[[71,10],[133,10],[182,10]]},"335":{"position":[[63,9]]},"337":{"position":[[71,10],[133,10]]},"339":{"position":[[75,9]]},"342":{"position":[[55,10]]},"343":{"position":[[55,10]]},"350":{"position":[[63,9]]},"352":{"position":[[60,10],[112,10]]}},"keywords":{}}],["middy/warmup",{"_index":1990,"title":{},"content":{"331":{"position":[[75,13]]},"354":{"position":[[1185,13]]}},"keywords":{}}],["middymiddi",{"_index":1896,"title":{},"content":{"322":{"position":[[660,10],[970,10]]}},"keywords":{}}],["millisecond",{"_index":1477,"title":{},"content":{"208":{"position":[[199,15]]}},"keywords":{}}],["mime",{"_index":1669,"title":{},"content":{"255":{"position":[[324,4]]}},"keywords":{}}],["mind",{"_index":1641,"title":{},"content":{"251":{"position":[[621,4],[812,4]]},"472":{"position":[[892,5]]}},"keywords":{}}],["minifi",{"_index":395,"title":{},"content":{"12":{"position":[[177,6]]}},"keywords":{}}],["minimum",{"_index":200,"title":{},"content":{"5":{"position":[[1381,8],[1439,8]]}},"keywords":{}}],["minlength",{"_index":193,"title":{},"content":{"5":{"position":[[1300,10],[1494,10]]}},"keywords":{}}],["misc",{"_index":1759,"title":{"280":{"position":[[0,5]]}},"content":{},"keywords":{}}],["miss",{"_index":31,"title":{},"content":{"1":{"position":[[131,4]]},"239":{"position":[[216,8]]},"362":{"position":[[540,7]]},"395":{"position":[[40,7]]},"404":{"position":[[20,7]]},"438":{"position":[[94,7]]}},"keywords":{}}],["missing.http",{"_index":1773,"title":{},"content":{"281":{"position":[[431,12]]}},"keywords":{}}],["mistak",{"_index":1312,"title":{},"content":{"179":{"position":[[139,8]]}},"keywords":{}}],["misus",{"_index":2213,"title":{},"content":{"420":{"position":[[52,6]]},"423":{"position":[[52,6]]}},"keywords":{}}],["mock",{"_index":319,"title":{},"content":{"7":{"position":[[784,5]]},"476":{"position":[[337,4]]}},"keywords":{}}],["mode",{"_index":454,"title":{},"content":{"15":{"position":[[256,5]]}},"keywords":{}}],["modif",{"_index":2300,"title":{},"content":{"475":{"position":[[843,12]]}},"keywords":{}}],["modifi",{"_index":1045,"title":{},"content":{"163":{"position":[[771,6]]},"188":{"position":[[678,8]]},"239":{"position":[[38,8]]},"398":{"position":[[452,9]]},"407":{"position":[[17,6]]},"410":{"position":[[0,8]]},"414":{"position":[[106,6]]},"416":{"position":[[17,6]]}},"keywords":{}}],["modul",{"_index":260,"title":{},"content":{"6":{"position":[[845,7]]},"15":{"position":[[425,7]]},"282":{"position":[[242,6]]},"355":{"position":[[630,7]]}},"keywords":{}}],["modular",{"_index":127,"title":{},"content":{"4":{"position":[[467,7]]}},"keywords":{}}],["module';const",{"_index":398,"title":{},"content":{"12":{"position":[[234,14]]}},"keywords":{}}],["module.export",{"_index":2136,"title":{},"content":{"369":{"position":[[130,14]]}},"keywords":{}}],["mond",{"_index":1570,"title":{},"content":{"229":{"position":[[409,6]]}},"keywords":{}}],["mondo",{"_index":1566,"title":{},"content":{"229":{"position":[[360,6]]}},"keywords":{}}],["mongodb",{"_index":1954,"title":{},"content":{"324":{"position":[[1191,7]]}},"keywords":{}}],["mongoos",{"_index":1952,"title":{},"content":{"324":{"position":[[1171,8]]}},"keywords":{}}],["mongoose.js@ematipico/middi",{"_index":1955,"title":{},"content":{"324":{"position":[[1225,27]]}},"keywords":{}}],["monitor",{"_index":1018,"title":{},"content":{"161":{"position":[[55,11]]}},"keywords":{}}],["month",{"_index":1069,"title":{},"content":{"166":{"position":[[47,5],[75,5],[179,7]]}},"keywords":{}}],["moos",{"_index":1741,"title":{},"content":{"274":{"position":[[644,7]]}},"keywords":{}}],["more",{"_index":956,"title":{"477":{"position":[[0,4]]}},"content":{"157":{"position":[[990,4]]},"160":{"position":[[873,6]]},"170":{"position":[[352,5]]},"179":{"position":[[588,4]]},"183":{"position":[[52,4],[545,4]]},"251":{"position":[[176,4]]},"298":{"position":[[957,4]]},"355":{"position":[[298,4],[445,4]]},"374":{"position":[[29,4]]},"391":{"position":[[48,4]]},"466":{"position":[[121,4]]},"477":{"position":[[0,4],[61,4]]},"478":{"position":[[996,4]]}},"keywords":{}}],["more.metr",{"_index":1174,"title":{},"content":{"170":{"position":[[590,12]]}},"keywords":{}}],["more.trac",{"_index":1166,"title":{},"content":{"170":{"position":[[406,11]]}},"keywords":{}}],["mostli",{"_index":229,"title":{},"content":{"6":{"position":[[108,6]]},"156":{"position":[[139,6]]}},"keywords":{}}],["move",{"_index":1002,"title":{},"content":{"160":{"position":[[139,5]]},"354":{"position":[[142,5],[197,5]]},"356":{"position":[[219,4]]}},"keywords":{}}],["mq",{"_index":787,"title":{"108":{"position":[[0,2]]}},"content":{"109":{"position":[[25,2]]}},"keywords":{}}],["ms",{"_index":509,"title":{},"content":{"21":{"position":[[366,5],[1313,2],[1361,2],[1410,2],[1462,2],[1514,2],[1561,2],[1612,2],[1650,2],[1670,2],[1707,2],[1753,2],[1789,2],[1834,2],[1854,2]]}},"keywords":{}}],["ms.settocontext",{"_index":1450,"title":{},"content":{"197":{"position":[[984,15]]},"202":{"position":[[979,15]]},"286":{"position":[[712,15]]},"298":{"position":[[1463,15]]},"303":{"position":[[956,15]]},"308":{"position":[[1006,15]]},"318":{"position":[[817,15]]},"327":{"position":[[989,15]]}},"keywords":{}}],["msk",{"_index":737,"title":{"92":{"position":[[25,5]]}},"content":{"93":{"position":[[25,3]]}},"keywords":{}}],["muffin",{"_index":1737,"title":{},"content":{"274":{"position":[[609,9]]}},"keywords":{}}],["multi",{"_index":1349,"title":{},"content":{"182":{"position":[[1145,5]]},"361":{"position":[[137,5]]}},"keywords":{}}],["multipart",{"_index":658,"title":{"249":{"position":[[5,9]]},"379":{"position":[[5,9]]},"412":{"position":[[5,9]]},"451":{"position":[[5,9]]}},"content":{"34":{"position":[[705,9]]},"37":{"position":[[756,9]]},"43":{"position":[[705,9]]},"91":{"position":[[705,9]]},"146":{"position":[[717,9]]},"250":{"position":[[87,9]]},"252":{"position":[[146,9]]},"281":{"position":[[711,9]]}},"keywords":{}}],["multipart/form",{"_index":1650,"title":{},"content":{"252":{"position":[[362,15]]},"281":{"position":[[787,14]]}},"keywords":{}}],["multipl",{"_index":947,"title":{"188":{"position":[[6,8]]}},"content":{"157":{"position":[[434,8]]},"183":{"position":[[663,8]]},"188":{"position":[[12,8]]},"265":{"position":[[400,8]]},"298":{"position":[[1020,8]]},"323":{"position":[[473,8]]},"394":{"position":[[375,8]]},"474":{"position":[[427,8]]}},"keywords":{}}],["multivaluequerystringparamet",{"_index":1772,"title":{},"content":{"281":{"position":[[369,31]]}},"keywords":{}}],["mutat",{"_index":2194,"title":{},"content":{"399":{"position":[[169,7]]}},"keywords":{}}],["myapplict",{"_index":1485,"title":{},"content":{"208":{"position":[[345,15]]}},"keywords":{}}],["mîddi",{"_index":1728,"title":{},"content":{"270":{"position":[[436,7]]}},"keywords":{}}],["n",{"_index":1449,"title":{},"content":{"197":{"position":[[969,2],[982,1]]},"202":{"position":[[964,2],[977,1]]},"286":{"position":[[697,2],[710,1]]},"298":{"position":[[1448,2],[1461,1]]},"303":{"position":[[941,2],[954,1]]},"308":{"position":[[991,2],[1004,1]]},"318":{"position":[[802,2],[815,1]]},"327":{"position":[[974,2],[987,1]]}},"keywords":{}}],["name",{"_index":89,"title":{},"content":{"2":{"position":[[824,4],[947,4]]},"21":{"position":[[2651,5],[2691,4],[2828,5]]},"161":{"position":[[452,4],[513,6]]},"167":{"position":[[1143,6]]},"173":{"position":[[255,4]]},"175":{"position":[[52,4]]},"177":{"position":[[103,4]]},"178":{"position":[[581,5],[698,4],[751,5],[900,4]]},"181":{"position":[[103,4]]},"194":{"position":[[214,6]]},"197":{"position":[[554,4]]},"202":{"position":[[550,4]]},"239":{"position":[[331,4]]},"270":{"position":[[335,5],[430,5]]},"277":{"position":[[394,5]]},"281":{"position":[[486,5]]},"286":{"position":[[281,4]]},"298":{"position":[[548,4],[690,4]]},"303":{"position":[[533,4]]},"308":{"position":[[582,4]]},"318":{"position":[[393,4]]},"327":{"position":[[513,4]]},"355":{"position":[[72,5],[225,5]]},"362":{"position":[[1758,8],[1791,5]]}},"keywords":{}}],["namemiddlewar",{"_index":2296,"title":{},"content":{"475":{"position":[[367,14],[748,14]]}},"keywords":{}}],["namemiddlewareaft",{"_index":2298,"title":{},"content":{"475":{"position":[[513,19],[677,20]]}},"keywords":{}}],["namemiddlewarebefor",{"_index":2297,"title":{},"content":{"475":{"position":[[451,20],[648,21]]}},"keywords":{}}],["namemiddlewareonerror",{"_index":2299,"title":{},"content":{"475":{"position":[[574,21],[707,21]]}},"keywords":{}}],["nameoncard",{"_index":171,"title":{},"content":{"5":{"position":[[814,11],[1541,11]]}},"keywords":{}}],["names/path",{"_index":1965,"title":{},"content":{"327":{"position":[[543,11]]}},"keywords":{}}],["namespac",{"_index":1318,"title":{},"content":{"179":{"position":[[475,10]]},"181":{"position":[[221,9]]},"182":{"position":[[146,10]]},"207":{"position":[[0,9],[85,9]]},"208":{"position":[[334,10]]},"354":{"position":[[95,10]]}},"keywords":{}}],["namespacenam",{"_index":1859,"title":{},"content":{"309":{"position":[[312,14]]}},"keywords":{}}],["nativ",{"_index":334,"title":{},"content":{"7":{"position":[[1053,6],[1095,6],[1133,6],[1180,6],[1211,6]]},"224":{"position":[[111,6]]}},"keywords":{}}],["natur",{"_index":2277,"title":{},"content":{"474":{"position":[[387,6]]}},"keywords":{}}],["near",{"_index":2181,"title":{},"content":{"398":{"position":[[300,4]]}},"keywords":{}}],["necessari",{"_index":241,"title":{},"content":{"6":{"position":[[381,9]]}},"keywords":{}}],["necessarili",{"_index":2268,"title":{},"content":{"473":{"position":[[103,11]]}},"keywords":{}}],["need",{"_index":47,"title":{"103":{"position":[[0,4]]}},"content":{"2":{"position":[[169,4],[1110,4],[1159,4]]},"5":{"position":[[681,4]]},"151":{"position":[[179,4]]},"153":{"position":[[36,4]]},"156":{"position":[[458,4]]},"160":{"position":[[580,7]]},"167":{"position":[[390,4],[1248,4]]},"179":{"position":[[285,4]]},"182":{"position":[[1006,4]]},"189":{"position":[[65,4]]},"211":{"position":[[160,7]]},"322":{"position":[[778,4]]},"354":{"position":[[286,6],[384,4]]},"359":{"position":[[929,4]]},"362":{"position":[[1964,4]]},"363":{"position":[[136,5]]},"369":{"position":[[81,7]]},"395":{"position":[[154,4],[219,7]]},"434":{"position":[[13,4]]},"473":{"position":[[81,4],[159,4]]},"474":{"position":[[325,7]]},"475":{"position":[[295,4]]}},"keywords":{}}],["need.attach",{"_index":935,"title":{},"content":{"156":{"position":[[422,11]]}},"keywords":{}}],["neededwil",{"_index":2203,"title":{},"content":{"409":{"position":[[38,10]]}},"keywords":{}}],["negoti",{"_index":647,"title":{"226":{"position":[[13,11]]},"265":{"position":[[13,12]]},"373":{"position":[[13,12]]},"406":{"position":[[13,12]]},"445":{"position":[[13,12]]}},"content":{"34":{"position":[[223,12]]},"37":{"position":[[274,12]]},"43":{"position":[[223,12]]},"91":{"position":[[223,12]]},"146":{"position":[[223,12]]},"220":{"position":[[88,12]]},"221":{"position":[[88,12]]},"227":{"position":[[95,11]]},"228":{"position":[[906,11]]},"229":{"position":[[88,12]]},"281":{"position":[[124,12],[196,11]]}},"keywords":{}}],["negotiationhttperrorhandl",{"_index":2033,"title":{},"content":{"354":{"position":[[642,27]]}},"keywords":{}}],["nest",{"_index":1769,"title":{},"content":{"281":{"position":[[97,6]]},"385":{"position":[[91,6]]}},"keywords":{}}],["net",{"_index":1056,"title":{},"content":{"164":{"position":[[311,4]]}},"keywords":{}}],["never",{"_index":1448,"title":{},"content":{"197":{"position":[[956,5]]},"202":{"position":[[951,5]]},"286":{"position":[[684,5]]},"298":{"position":[[1435,5]]},"303":{"position":[[928,5]]},"308":{"position":[[978,5]]},"318":{"position":[[789,5]]},"327":{"position":[[961,5]]}},"keywords":{}}],["new",{"_index":55,"title":{},"content":{"2":{"position":[[279,3],[943,3]]},"22":{"position":[[227,3]]},"148":{"position":[[413,3]]},"156":{"position":[[318,3]]},"160":{"position":[[917,3]]},"174":{"position":[[125,3]]},"178":{"position":[[198,3],[290,3]]},"179":{"position":[[422,3]]},"182":{"position":[[132,3]]},"186":{"position":[[275,3],[706,3]]},"188":{"position":[[335,3]]},"194":{"position":[[102,3],[152,3],[273,3]]},"232":{"position":[[1513,3]]},"244":{"position":[[142,3]]},"355":{"position":[[282,3],[679,3]]},"356":{"position":[[259,3]]},"367":{"position":[[132,3],[254,3]]},"374":{"position":[[6,3]]},"375":{"position":[[130,3]]},"386":{"position":[[0,3]]},"388":{"position":[[0,3]]},"393":{"position":[[0,3]]},"397":{"position":[[0,3]]},"398":{"position":[[644,3],[889,3]]},"405":{"position":[[0,5]]},"415":{"position":[[0,5]]},"416":{"position":[[107,3]]},"419":{"position":[[7,3]]},"424":{"position":[[0,5]]},"429":{"position":[[103,3]]},"431":{"position":[[0,5]]},"432":{"position":[[0,5]]},"433":{"position":[[0,5]]},"438":{"position":[[71,3]]},"444":{"position":[[58,3]]},"451":{"position":[[4,3]]}},"keywords":{}}],["new/2021/11/aw",{"_index":2220,"title":{},"content":{"426":{"position":[[77,15]]}},"keywords":{}}],["newkey",{"_index":94,"title":{},"content":{"2":{"position":[[1051,7]]}},"keywords":{}}],["next",{"_index":924,"title":{},"content":{"156":{"position":[[23,4]]},"160":{"position":[[374,4]]},"166":{"position":[[194,4]]},"247":{"position":[[241,4]]},"251":{"position":[[426,4]]},"273":{"position":[[134,4]]}},"keywords":{}}],["next(err",{"_index":2128,"title":{},"content":{"367":{"position":[[197,9]]}},"keywords":{}}],["nextrotationd",{"_index":1835,"title":{},"content":{"298":{"position":[[846,17]]}},"keywords":{}}],["nextrotationdate/lastrotationdate/lastchangedd",{"_index":1834,"title":{},"content":{"298":{"position":[[768,50]]}},"keywords":{}}],["nine",{"_index":1076,"title":{},"content":{"166":{"position":[[170,4]]}},"keywords":{}}],["nmessag",{"_index":1575,"title":{},"content":{"229":{"position":[[610,10]]}},"keywords":{}}],["node",{"_index":147,"title":{},"content":{"5":{"position":[[193,4],[254,4]]},"13":{"position":[[31,4],[166,4]]},"372":{"position":[[33,4]]},"474":{"position":[[397,4]]}},"keywords":{}}],["node.j",{"_index":18,"title":{"356":{"position":[[0,7],[34,7]]}},"content":{"0":{"position":[[266,7]]},"4":{"position":[[101,8]]},"164":{"position":[[210,7]]},"166":{"position":[[307,7]]},"170":{"position":[[468,7]]},"355":{"position":[[324,7]]},"356":{"position":[[40,7],[171,7],[227,7]]}},"keywords":{}}],["node.js.auto",{"_index":1291,"title":{},"content":{"175":{"position":[[340,12]]}},"keywords":{}}],["node:crypto",{"_index":1375,"title":{},"content":{"186":{"position":[[60,14]]}},"keywords":{}}],["node:fs/promis",{"_index":2119,"title":{},"content":{"364":{"position":[[25,18]]},"365":{"position":[[25,18]]}},"keywords":{}}],["node:path",{"_index":447,"title":{},"content":{"15":{"position":[[93,11]]}},"keywords":{}}],["node:url",{"_index":449,"title":{},"content":{"15":{"position":[[135,10]]}},"keywords":{}}],["node:zlib",{"_index":1521,"title":{},"content":{"220":{"position":[[190,11]]},"221":{"position":[[190,11]]}},"keywords":{}}],["node_modul",{"_index":276,"title":{"7":{"position":[[6,12]]}},"content":{"7":{"position":[[6,12],[158,12]]}},"keywords":{}}],["node_modules/.bin/babel",{"_index":471,"title":{},"content":{"17":{"position":[[50,23]]}},"keywords":{}}],["node_modules/.bin/esbuild",{"_index":390,"title":{},"content":{"12":{"position":[[84,25]]},"18":{"position":[[17,25]]}},"keywords":{}}],["node_modules/.bin/rollup",{"_index":407,"title":{},"content":{"13":{"position":[[68,24]]}},"keywords":{}}],["node_modules/.bin/spack",{"_index":439,"title":{},"content":{"14":{"position":[[28,23]]}},"keywords":{}}],["node_modules/.bin/swc",{"_index":483,"title":{},"content":{"19":{"position":[[28,21]]}},"keywords":{}}],["node_modules/.bin/tsc",{"_index":370,"title":{},"content":{"10":{"position":[[20,21]]}},"keywords":{}}],["node_modules/.bin/webpack",{"_index":444,"title":{},"content":{"15":{"position":[[29,25]]}},"keywords":{}}],["nodej",{"_index":460,"title":{},"content":{"15":{"position":[[418,6]]},"166":{"position":[[278,6]]},"219":{"position":[[396,6]]}},"keywords":{}}],["noderesolv",{"_index":409,"title":{},"content":{"13":{"position":[[131,11],[243,14]]}},"keywords":{}}],["non",{"_index":1619,"title":{},"content":{"243":{"position":[[211,3]]},"375":{"position":[[154,3]]}},"keywords":{}}],["none",{"_index":1560,"title":{},"content":{"228":{"position":[[953,4]]},"269":{"position":[[0,4]]},"471":{"position":[[0,4]]}},"keywords":{}}],["normal",{"_index":653,"title":{"222":{"position":[[6,10]]},"234":{"position":[[11,10]]},"237":{"position":[[12,10]]},"355":{"position":[[7,13],[36,11]]},"376":{"position":[[11,11]]},"377":{"position":[[12,11]]},"387":{"position":[[7,11]]},"404":{"position":[[6,11]]},"409":{"position":[[11,11]]},"410":{"position":[[12,11]]},"421":{"position":[[7,11]]},"443":{"position":[[6,11]]},"448":{"position":[[11,11]]},"449":{"position":[[12,11]]}},"content":{"34":{"position":[[487,11],[562,11]]},"37":{"position":[[538,11],[613,11]]},"43":{"position":[[487,11],[562,11]]},"55":{"position":[[84,11]]},"64":{"position":[[84,11]]},"73":{"position":[[84,11]]},"82":{"position":[[84,11]]},"91":{"position":[[487,11],[562,11]]},"94":{"position":[[84,11]]},"97":{"position":[[84,11]]},"100":{"position":[[84,11]]},"110":{"position":[[84,11]]},"113":{"position":[[84,11]]},"116":{"position":[[84,11]]},"119":{"position":[[84,11]]},"122":{"position":[[84,11]]},"134":{"position":[[84,11]]},"139":{"position":[[84,11]]},"146":{"position":[[487,11],[574,11]]},"223":{"position":[[88,10]]},"225":{"position":[[74,11]]},"229":{"position":[[154,11]]},"235":{"position":[[93,10]]},"236":{"position":[[83,11]]},"238":{"position":[[94,10]]},"239":{"position":[[106,10]]},"240":{"position":[[85,11]]},"248":{"position":[[85,11]]},"252":{"position":[[85,11]]},"274":{"position":[[85,11]]},"281":{"position":[[6,11],[85,11],[281,11],[293,10],[451,11],[463,10]]},"355":{"position":[[49,10]]},"421":{"position":[[30,11]]},"425":{"position":[[30,11]]}},"keywords":{}}],["normalizeheaderkey",{"_index":1615,"title":{},"content":{"239":{"position":[[252,21]]}},"keywords":{}}],["normalizerespons",{"_index":2232,"title":{},"content":{"438":{"position":[[0,17]]}},"keywords":{}}],["normalizerhttpheadernorm",{"_index":2035,"title":{},"content":{"354":{"position":[[745,30]]}},"keywords":{}}],["normalizerhttpmultipartbodypars",{"_index":2036,"title":{},"content":{"354":{"position":[[801,33]]}},"keywords":{}}],["normalizersecretsmanag",{"_index":2040,"title":{},"content":{"354":{"position":[[1008,24]]}},"keywords":{}}],["notabl",{"_index":2170,"title":{"397":{"position":[[0,7]]},"436":{"position":[[0,7]]}},"content":{},"keywords":{}}],["notaccept",{"_index":1557,"title":{},"content":{"228":{"position":[[867,13]]}},"keywords":{}}],["note",{"_index":892,"title":{"434":{"position":[[0,6]]},"471":{"position":[[0,6]]}},"content":{"153":{"position":[[183,5]]},"197":{"position":[[1065,6]]},"202":{"position":[[1060,6]]},"219":{"position":[[363,6]]},"251":{"position":[[446,5]]},"286":{"position":[[793,6]]},"291":{"position":[[683,6]]},"298":{"position":[[1540,6]]},"303":{"position":[[1037,6]]},"308":{"position":[[1087,6]]},"318":{"position":[[898,6]]},"327":{"position":[[1070,6]]},"340":{"position":[[694,6]]},"347":{"position":[[364,6]]},"351":{"position":[[239,6]]},"359":{"position":[[791,6]]},"362":{"position":[[514,4]]},"478":{"position":[[719,5]]}},"keywords":{}}],["notic",{"_index":184,"title":{},"content":{"5":{"position":[[1025,6]]},"21":{"position":[[2603,6]]},"163":{"position":[[554,6]]},"355":{"position":[[142,7]]}},"keywords":{}}],["now",{"_index":584,"title":{"356":{"position":[[18,3],[50,3]]}},"content":{"21":{"position":[[2270,3]]},"385":{"position":[[0,3]]},"397":{"position":[[104,3]]},"398":{"position":[[489,3],[603,3]]},"399":{"position":[[18,3],[147,3]]},"408":{"position":[[93,3]]},"409":{"position":[[49,3]]},"438":{"position":[[18,3]]},"456":{"position":[[0,3]]},"466":{"position":[[246,3]]}},"keywords":{}}],["npm",{"_index":369,"title":{},"content":{"10":{"position":[[0,3]]},"12":{"position":[[0,3]]},"13":{"position":[[0,3]]},"14":{"position":[[0,3]]},"15":{"position":[[0,3]]},"17":{"position":[[0,3]]},"18":{"position":[[0,3]]},"19":{"position":[[0,3]]},"155":{"position":[[30,4],[47,3],[215,3]]},"172":{"position":[[12,3]]},"176":{"position":[[12,3]]},"180":{"position":[[12,3]]},"184":{"position":[[12,3]]},"196":{"position":[[39,4],[56,3],[92,3]]},"201":{"position":[[39,4],[56,3],[91,3]]},"206":{"position":[[39,4],[56,3]]},"210":{"position":[[39,4],[56,3]]},"214":{"position":[[39,4],[56,3]]},"218":{"position":[[39,4],[56,3]]},"223":{"position":[[39,4],[56,3]]},"227":{"position":[[39,4],[56,3]]},"231":{"position":[[39,4],[56,3]]},"235":{"position":[[39,4],[56,3]]},"238":{"position":[[39,4],[56,3]]},"242":{"position":[[39,4],[56,3]]},"246":{"position":[[39,4],[56,3]]},"250":{"position":[[39,4],[56,3]]},"254":{"position":[[39,4],[56,3]]},"258":{"position":[[39,4],[56,3]]},"262":{"position":[[39,4],[56,3]]},"268":{"position":[[39,4],[56,3]]},"272":{"position":[[39,4],[56,3]]},"276":{"position":[[39,4],[56,3]]},"285":{"position":[[39,4],[56,3],[93,3]]},"290":{"position":[[39,4],[56,3],[101,3]]},"297":{"position":[[39,4],[56,3],[98,3]]},"302":{"position":[[39,4],[56,3],[85,3]]},"307":{"position":[[39,4],[56,3],[100,3]]},"312":{"position":[[39,4],[56,3],[134,3]]},"317":{"position":[[39,4],[56,3],[86,3]]},"326":{"position":[[39,4],[56,3],[86,3]]},"331":{"position":[[39,4],[56,3]]},"335":{"position":[[39,4],[44,3]]},"339":{"position":[[39,4],[56,3],[94,3]]},"346":{"position":[[39,4],[56,3]]},"350":{"position":[[39,4],[44,3]]},"354":{"position":[[74,3]]},"358":{"position":[[39,4],[56,3],[92,3]]}},"keywords":{}}],["npmignor",{"_index":362,"title":{},"content":{"7":{"position":[[1507,10]]}},"keywords":{}}],["npmyarnpnpm",{"_index":919,"title":{},"content":{"155":{"position":[[35,11],[203,11]]},"172":{"position":[[0,11]]},"176":{"position":[[0,11]]},"180":{"position":[[0,11]]},"184":{"position":[[0,11]]},"196":{"position":[[44,11]]},"201":{"position":[[44,11]]},"206":{"position":[[44,11]]},"210":{"position":[[44,11]]},"214":{"position":[[44,11]]},"218":{"position":[[44,11]]},"223":{"position":[[44,11]]},"227":{"position":[[44,11]]},"231":{"position":[[44,11]]},"235":{"position":[[44,11]]},"238":{"position":[[44,11]]},"242":{"position":[[44,11]]},"246":{"position":[[44,11]]},"250":{"position":[[44,11]]},"254":{"position":[[44,11]]},"258":{"position":[[44,11]]},"262":{"position":[[44,11]]},"268":{"position":[[44,11]]},"272":{"position":[[44,11]]},"276":{"position":[[44,11]]},"285":{"position":[[44,11]]},"290":{"position":[[44,11]]},"297":{"position":[[44,11]]},"302":{"position":[[44,11]]},"307":{"position":[[44,11]]},"312":{"position":[[44,11]]},"317":{"position":[[44,11]]},"326":{"position":[[44,11]]},"331":{"position":[[44,11]]},"339":{"position":[[44,11]]},"346":{"position":[[44,11]]},"358":{"position":[[44,11]]}},"keywords":{}}],["null",{"_index":1597,"title":{},"content":{"232":{"position":[[1329,5]]},"243":{"position":[[198,5]]},"362":{"position":[[1201,5]]}},"keywords":{}}],["null)requesthead",{"_index":1592,"title":{},"content":{"232":{"position":[[1012,19]]}},"keywords":{}}],["number",{"_index":207,"title":{},"content":{"5":{"position":[[1589,8]]},"173":{"position":[[354,9],[364,6]]},"197":{"position":[[859,8]]},"202":{"position":[[854,8]]},"224":{"position":[[61,7],[129,8],[187,7]]},"286":{"position":[[587,8]]},"298":{"position":[[1338,8]]},"303":{"position":[[831,8]]},"308":{"position":[[881,8]]},"318":{"position":[[692,8]]},"327":{"position":[[864,8]]},"362":{"position":[[1091,8]]}},"keywords":{}}],["number.parseint((process.hrtime.bigint",{"_index":506,"title":{},"content":{"21":{"position":[[289,40]]}},"keywords":{}}],["o",{"_index":2107,"title":{},"content":{"363":{"position":[[392,1],[543,1]]}},"keywords":{}}],["obj",{"_index":63,"title":{},"content":{"2":{"position":[[381,5]]}},"keywords":{}}],["obj[prop",{"_index":68,"title":{},"content":{"2":{"position":[[455,9]]}},"keywords":{}}],["object",{"_index":190,"title":{"126":{"position":[[3,6]]},"289":{"position":[[3,6]]},"388":{"position":[[3,6]]},"422":{"position":[[3,6]]},"460":{"position":[[3,6]]}},"content":{"5":{"position":[[1202,9],[1240,9],[1889,6]]},"13":{"position":[[592,6]]},"15":{"position":[[480,6],[548,6],[799,6]]},"127":{"position":[[16,7],[32,6],[58,7],[74,6]]},"128":{"position":[[82,6]]},"173":{"position":[[580,8],[604,6]]},"177":{"position":[[474,8],[498,6]]},"181":{"position":[[397,8],[421,6]]},"182":{"position":[[479,6],[919,6]]},"185":{"position":[[184,6]]},"197":{"position":[[10,8],[185,8],[509,8]]},"202":{"position":[[10,8],[182,8],[505,8]]},"215":{"position":[[116,6]]},"219":{"position":[[3,8],[70,8],[128,8]]},"239":{"position":[[160,8]]},"251":{"position":[[7,8]]},"264":{"position":[[147,7],[195,7],[281,6],[343,6]]},"277":{"position":[[141,6],[293,8]]},"281":{"position":[[335,6],[620,7],[1263,7]]},"282":{"position":[[433,7]]},"283":{"position":[[201,6],[236,6]]},"286":{"position":[[10,8],[161,8],[236,8]]},"290":{"position":[[85,6]]},"291":{"position":[[52,6],[115,8],[269,8],[874,6]]},"293":{"position":[[96,6]]},"294":{"position":[[96,6]]},"298":{"position":[[10,8],[201,8],[503,8]]},"303":{"position":[[10,8],[171,8],[488,8]]},"308":{"position":[[10,8],[206,8],[537,8]]},"318":{"position":[[10,8],[167,8],[348,8]]},"324":{"position":[[1012,7]]},"327":{"position":[[10,8],[168,8],[468,8]]},"328":{"position":[[285,6],[863,6]]},"332":{"position":[[47,6],[209,6]]},"340":{"position":[[10,8],[221,8]]},"347":{"position":[[67,8]]},"351":{"position":[[63,8]]},"359":{"position":[[744,8]]},"360":{"position":[[145,8],[195,8]]},"362":{"position":[[247,9],[682,6],[987,9],[1059,8],[1235,6],[1680,9],[1738,9]]},"388":{"position":[[42,6]]},"438":{"position":[[75,6]]},"472":{"position":[[139,7],[195,6]]},"474":{"position":[[55,6]]},"475":{"position":[[38,6]]}},"keywords":{}}],["object.assign(request.context",{"_index":90,"title":{},"content":{"2":{"position":[[829,30],[952,30],[1180,30]]},"328":{"position":[[1110,30]]},"474":{"position":[[1424,30]]}},"keywords":{}}],["object.assign(request.intern",{"_index":2290,"title":{},"content":{"474":{"position":[[1285,31]]}},"keywords":{}}],["object.http",{"_index":1778,"title":{},"content":{"281":{"position":[[837,11]]}},"keywords":{}}],["object.keys(options.fetchdata",{"_index":2284,"title":{},"content":{"474":{"position":[[940,31]]}},"keywords":{}}],["object.valid",{"_index":1310,"title":{},"content":{"179":{"position":[[74,17]]}},"keywords":{}}],["objectajvopt",{"_index":2081,"title":{},"content":{"360":{"position":[[178,16]]}},"keywords":{}}],["objectawscontext",{"_index":1742,"title":{},"content":{"277":{"position":[[72,16]]}},"keywords":{}}],["objects@marcosantonocito/middi",{"_index":1958,"title":{},"content":{"324":{"position":[[1324,30]]}},"keywords":{}}],["occur",{"_index":1621,"title":{},"content":{"243":{"position":[[255,5]]}},"keywords":{}}],["offici",{"_index":1147,"title":{"279":{"position":[[0,8]]}},"content":{"168":{"position":[[85,8]]},"251":{"position":[[149,8]]}},"keywords":{}}],["ofhttperrorhandler.http",{"_index":1777,"title":{},"content":{"281":{"position":[[687,23]]}},"keywords":{}}],["omit",{"_index":1750,"title":{},"content":{"277":{"position":[[455,7]]},"385":{"position":[[76,7]]},"419":{"position":[[37,4]]}},"keywords":{}}],["omitted***replac",{"_index":1751,"title":{},"content":{"277":{"position":[[485,21]]}},"keywords":{}}],["on",{"_index":224,"title":{},"content":{"6":{"position":[[0,3]]},"163":{"position":[[673,3]]},"164":{"position":[[25,3]]},"166":{"position":[[67,3]]},"174":{"position":[[2441,4]]},"179":{"position":[[370,3]]},"182":{"position":[[1284,3]]},"228":{"position":[[928,3]]},"323":{"position":[[466,3]]},"347":{"position":[[104,3]]},"359":{"position":[[807,3]]},"363":{"position":[[131,4]]},"394":{"position":[[231,3]]},"473":{"position":[[182,3]]}},"keywords":{}}],["onc",{"_index":1020,"title":{},"content":{"161":{"position":[[183,4]]},"183":{"position":[[62,4],[555,4]]}},"keywords":{}}],["oneof",{"_index":685,"title":{},"content":{"34":{"position":[[1740,5],[1874,5]]},"37":{"position":[[1865,5],[1999,5]]},"43":{"position":[[1740,5],[1874,5]]},"91":{"position":[[1765,5],[1899,5]]},"146":{"position":[[1752,5],[1886,5]]}},"keywords":{}}],["onerror",{"_index":894,"title":{},"content":{"153":{"position":[[281,8]]},"157":{"position":[[974,9]]},"160":{"position":[[213,8],[263,7]]},"161":{"position":[[410,7]]},"367":{"position":[[158,7],[280,7]]},"385":{"position":[[40,7]]},"398":{"position":[[0,7],[195,7]]},"407":{"position":[[0,7]]},"408":{"position":[[102,7]]},"416":{"position":[[0,7]]},"472":{"position":[[225,7],[799,8]]},"473":{"position":[[228,9]]},"475":{"position":[[277,7],[698,8]]}},"keywords":{}}],["onerror(async",{"_index":2273,"title":{},"content":{"473":{"position":[[656,14]]}},"keywords":{}}],["onerrormethod",{"_index":2274,"title":{},"content":{"473":{"position":[[804,14]]}},"keywords":{}}],["op.set",{"_index":1122,"title":{},"content":{"167":{"position":[[669,6]]}},"keywords":{}}],["open",{"_index":809,"title":{},"content":{"136":{"position":[[89,4]]},"152":{"position":[[30,4]]},"159":{"position":[[237,4]]}},"keywords":{}}],["oper",{"_index":791,"title":{},"content":{"118":{"position":[[38,10]]},"183":{"position":[[480,9],[603,10],[726,10]]}},"keywords":{}}],["opinion",{"_index":1167,"title":{},"content":{"170":{"position":[[423,11]]}},"keywords":{}}],["opt",{"_index":499,"title":{},"content":{"21":{"position":[[76,5],[139,7]]},"22":{"position":[[107,5],[161,7]]},"369":{"position":[[147,6],[436,7]]},"466":{"position":[[109,6]]},"472":{"position":[[315,6],[361,7]]},"474":{"position":[[783,5],[834,7]]},"475":{"position":[[384,5],[435,7]]}},"keywords":{}}],["optim",{"_index":278,"title":{},"content":{"7":{"position":[[42,7]]},"322":{"position":[[148,9]]}},"keywords":{}}],["option",{"_index":906,"title":{"173":{"position":[[0,8]]},"177":{"position":[[0,8]]},"181":{"position":[[0,8]]},"185":{"position":[[0,8]]},"197":{"position":[[0,8]]},"202":{"position":[[0,8]]},"207":{"position":[[0,8]]},"211":{"position":[[0,8]]},"215":{"position":[[0,8]]},"219":{"position":[[0,8]]},"224":{"position":[[0,8]]},"228":{"position":[[0,8]]},"232":{"position":[[0,8]]},"239":{"position":[[0,8]]},"243":{"position":[[0,8]]},"247":{"position":[[0,8]]},"251":{"position":[[0,8]]},"255":{"position":[[0,8]]},"259":{"position":[[0,8]]},"269":{"position":[[0,8]]},"273":{"position":[[0,8]]},"277":{"position":[[0,8]]},"286":{"position":[[0,8]]},"291":{"position":[[0,8]]},"298":{"position":[[0,8]]},"303":{"position":[[0,8]]},"308":{"position":[[0,8]]},"313":{"position":[[0,8]]},"318":{"position":[[0,8]]},"327":{"position":[[0,8]]},"332":{"position":[[0,8]]},"336":{"position":[[0,8]]},"340":{"position":[[0,8]]},"347":{"position":[[0,8]]},"351":{"position":[[0,8]]},"359":{"position":[[0,8]]}},"content":{"153":{"position":[[826,9]]},"167":{"position":[[929,7]]},"173":{"position":[[40,8],[63,9],[504,8],[589,11],[655,11],[750,11]]},"177":{"position":[[40,8],[63,9],[398,8],[483,11],[556,11]]},"181":{"position":[[40,8],[63,9],[319,8],[406,11],[483,11],[598,11]]},"185":{"position":[[33,8],[158,11]]},"189":{"position":[[1052,9]]},"197":{"position":[[215,7]]},"202":{"position":[[212,7]]},"207":{"position":[[19,11],[216,11]]},"211":{"position":[[205,8]]},"219":{"position":[[226,11]]},"232":{"position":[[19,11],[131,11],[287,11],[377,11],[493,9],[503,11],[635,11],[715,11],[854,11],[944,11],[1041,11],[1140,11],[1237,11],[1300,9]]},"239":{"position":[[17,11],[169,11],[285,11]]},"247":{"position":[[19,11],[141,11]]},"251":{"position":[[16,11],[326,11]]},"255":{"position":[[266,7]]},"259":{"position":[[26,11]]},"263":{"position":[[374,10],[385,6]]},"265":{"position":[[382,7]]},"273":{"position":[[34,11]]},"286":{"position":[[170,11],[182,7]]},"291":{"position":[[278,11],[290,7],[364,11],[463,11]]},"298":{"position":[[210,11],[222,7],[309,11],[418,11]]},"303":{"position":[[201,7]]},"308":{"position":[[236,7]]},"313":{"position":[[18,11]]},"318":{"position":[[176,11],[188,7],[263,11]]},"319":{"position":[[312,8]]},"327":{"position":[[177,11],[189,7],[265,11],[378,11]]},"340":{"position":[[251,7]]},"347":{"position":[[142,7]]},"358":{"position":[[125,9]]},"359":{"position":[[602,6]]},"360":{"position":[[225,7]]},"362":{"position":[[1870,7]]},"369":{"position":[[411,7]]},"374":{"position":[[10,7]]},"375":{"position":[[134,6]]},"383":{"position":[[16,7],[72,7]]},"391":{"position":[[9,6],[53,7]]},"409":{"position":[[0,6]]},"414":{"position":[[16,6]]},"416":{"position":[[82,7]]},"419":{"position":[[11,6]]},"420":{"position":[[20,6]]},"423":{"position":[[20,6]]},"427":{"position":[[20,6]]},"429":{"position":[[107,7]]},"451":{"position":[[8,6]]},"466":{"position":[[180,7],[425,6]]},"472":{"position":[[336,7]]},"474":{"position":[[809,7]]},"475":{"position":[[410,7]]}},"keywords":{}}],["option.origin",{"_index":1586,"title":{},"content":{"232":{"position":[[612,13]]}},"keywords":{}}],["option1",{"_index":2265,"title":{},"content":{"472":{"position":[[1190,8]]}},"keywords":{}}],["option2",{"_index":2266,"title":{},"content":{"472":{"position":[[1206,8]]}},"keywords":{}}],["options.calculatecacheid(request.ev",{"_index":909,"title":{},"content":{"153":{"position":[[922,39]]},"189":{"position":[[1148,39]]},"369":{"position":[[543,39]]}},"keywords":{}}],["options.charset",{"_index":1636,"title":{},"content":{"251":{"position":[[210,15]]}},"keywords":{}}],["options.fetchdata[internalkey]).then",{"_index":2286,"title":{},"content":{"474":{"position":[[1009,37]]}},"keywords":{}}],["options.getvalue(cachekey",{"_index":2142,"title":{},"content":{"369":{"position":[[606,26]]}},"keywords":{}}],["options.settocontext",{"_index":2291,"title":{},"content":{"474":{"position":[[1327,22]]}},"keywords":{}}],["options.setvalue(request.internal.cachekey",{"_index":2144,"title":{},"content":{"369":{"position":[[765,43]]}},"keywords":{}}],["options.storage.hasownproperty(cachekey",{"_index":910,"title":{},"content":{"153":{"position":[[965,42]]},"189":{"position":[[1191,42]]}},"keywords":{}}],["options.storage[cachekey",{"_index":912,"title":{},"content":{"153":{"position":[[1091,25],[1221,25]]},"189":{"position":[[1392,25],[1522,25]]}},"keywords":{}}],["order",{"_index":847,"title":{"163":{"position":[[10,6]]}},"content":{"151":{"position":[[210,5]]},"160":{"position":[[241,5]]},"161":{"position":[[136,5]]},"163":{"position":[[409,5],[623,6]]},"182":{"position":[[191,8]]},"219":{"position":[[270,6]]},"265":{"position":[[131,6],[439,5]]},"324":{"position":[[488,5]]},"398":{"position":[[25,5]]},"408":{"position":[[131,6]]},"472":{"position":[[28,5]]}},"keywords":{}}],["organ",{"_index":1061,"title":{},"content":{"165":{"position":[[55,12]]},"166":{"position":[[760,12]]}},"keywords":{}}],["organization'",{"_index":1279,"title":{},"content":{"174":{"position":[[2534,14]]}},"keywords":{}}],["organization’",{"_index":1193,"title":{},"content":{"171":{"position":[[456,14]]}},"keywords":{}}],["origin",{"_index":934,"title":{},"content":{"156":{"position":[[348,8]]},"232":{"position":[[564,7],[594,6],[604,7],[647,6],[747,8],[769,6],[1715,9]]},"233":{"position":[[265,9]]},"359":{"position":[[1010,8]]}},"keywords":{}}],["originalhandl",{"_index":1994,"title":{},"content":{"333":{"position":[[144,15]]}},"keywords":{}}],["otherwis",{"_index":1612,"title":{},"content":{"239":{"position":[[80,9]]},"322":{"position":[[368,10]]}},"keywords":{}}],["ourself",{"_index":166,"title":{},"content":{"5":{"position":[[710,7]]}},"keywords":{}}],["out",{"_index":294,"title":{"136":{"position":[[22,3]]}},"content":{"7":{"position":[[287,3]]},"17":{"position":[[85,3]]},"19":{"position":[[61,3]]},"21":{"position":[[1250,3],[2542,3],[2674,3]]},"166":{"position":[[833,4]]},"167":{"position":[[227,3]]},"183":{"position":[[418,3]]},"370":{"position":[[57,3]]},"466":{"position":[[365,3]]},"474":{"position":[[469,3]]},"476":{"position":[[36,3]]}},"keywords":{}}],["outfile=index.cj",{"_index":481,"title":{},"content":{"18":{"position":[[99,17]]}},"keywords":{}}],["outfile=index.mj",{"_index":404,"title":{},"content":{"12":{"position":[[368,17]]}},"keywords":{}}],["outgo",{"_index":1295,"title":{},"content":{"177":{"position":[[300,8]]},"178":{"position":[[1144,8]]},"281":{"position":[[1109,8]]}},"keywords":{}}],["output",{"_index":240,"title":{"275":{"position":[[6,6]]},"385":{"position":[[6,6]]},"419":{"position":[[6,6]]},"458":{"position":[[6,6]]}},"content":{"6":{"position":[[317,6]]},"13":{"position":[[346,7]]},"15":{"position":[[298,7]]},"34":{"position":[[142,6]]},"37":{"position":[[193,6]]},"43":{"position":[[142,6]]},"91":{"position":[[142,6]]},"102":{"position":[[210,6]]},"146":{"position":[[142,6]]},"153":{"position":[[425,6]]},"171":{"position":[[95,6],[408,6]]},"174":{"position":[[412,6],[2382,6],[2478,6]]},"182":{"position":[[455,6]]},"276":{"position":[[88,6]]},"278":{"position":[[76,6],[367,6]]},"280":{"position":[[217,6]]},"359":{"position":[[516,6]]}},"keywords":{}}],["outputmodul",{"_index":459,"title":{},"content":{"15":{"position":[[380,13]]}},"keywords":{}}],["outputschema",{"_index":2225,"title":{},"content":{"429":{"position":[[175,12]]},"466":{"position":[[167,12]]}},"keywords":{}}],["outsid",{"_index":239,"title":{},"content":{"6":{"position":[[258,7]]},"399":{"position":[[90,7]]}},"keywords":{}}],["over",{"_index":1510,"title":{},"content":{"219":{"position":[[303,4]]},"322":{"position":[[233,4]]}},"keywords":{}}],["overrid",{"_index":1015,"title":{},"content":{"160":{"position":[[883,8]]},"207":{"position":[[239,9]]},"211":{"position":[[126,8]]},"219":{"position":[[238,8]]},"265":{"position":[[189,8],[293,8]]},"359":{"position":[[781,9]]},"361":{"position":[[81,10]]},"476":{"position":[[312,8]]}},"keywords":{}}],["overridepreferredencod",{"_index":1532,"title":{},"content":{"220":{"position":[[434,26]]},"221":{"position":[[517,26]]}},"keywords":{}}],["overwrit",{"_index":403,"title":{},"content":{"12":{"position":[[356,9]]}},"keywords":{}}],["packag",{"_index":351,"title":{"8":{"position":[[16,8]]},"354":{"position":[[12,8]]}},"content":{"7":{"position":[[1379,7]]},"168":{"position":[[94,8]]},"354":{"position":[[52,8],[218,8],[371,8]]},"355":{"position":[[342,7]]},"394":{"position":[[206,7]]}},"keywords":{}}],["package.defaultlanguag",{"_index":2068,"title":{},"content":{"359":{"position":[[633,23]]}},"keywords":{}}],["page",{"_index":818,"title":{},"content":{"143":{"position":[[26,4],[90,4]]},"147":{"position":[[18,4],[82,4]]},"148":{"position":[[27,4],[91,4]]},"149":{"position":[[34,4],[98,4]]},"150":{"position":[[30,4],[94,4]]},"151":{"position":[[51,4],[115,4]]},"167":{"position":[[21,4],[85,4]]},"190":{"position":[[23,4],[87,4]]}},"keywords":{}}],["pair",{"_index":1956,"title":{},"content":{"324":{"position":[[1299,4]]}},"keywords":{}}],["param",{"_index":1524,"title":{},"content":{"220":{"position":[[297,7]]},"221":{"position":[[380,7]]},"474":{"position":[[666,6]]}},"keywords":{}}],["paramet",{"_index":1363,"title":{},"content":{"183":{"position":[[580,11],[692,11]]},"215":{"position":[[141,10]]},"239":{"position":[[341,9]]},"247":{"position":[[41,9]]},"283":{"position":[[277,10],[430,10],[466,9]]},"291":{"position":[[743,10]]},"298":{"position":[[568,9]]},"323":{"position":[[405,10],[482,9],[524,9],[606,9]]},"327":{"position":[[533,9],[1286,9]]},"332":{"position":[[59,9]]},"336":{"position":[[50,9]]}},"keywords":{}}],["parameters.disableprefetch",{"_index":1441,"title":{},"content":{"197":{"position":[[574,26]]},"202":{"position":[[570,26]]},"286":{"position":[[301,26]]},"303":{"position":[[553,26]]},"308":{"position":[[602,26]]},"318":{"position":[[413,26]]}},"keywords":{}}],["parameters.http",{"_index":1789,"title":{},"content":{"282":{"position":[[474,15]]}},"keywords":{}}],["pari",{"_index":1694,"title":{},"content":{"260":{"position":[[301,7]]}},"keywords":{}}],["pars",{"_index":213,"title":{},"content":{"5":{"position":[[1826,6]]},"6":{"position":[[293,7]]},"251":{"position":[[572,5]]},"281":{"position":[[73,7],[137,6],[554,6],[748,6],[886,6],[1011,6],[1186,6]]},"324":{"position":[[1559,5]]},"362":{"position":[[1972,5]]},"431":{"position":[[6,5]]},"456":{"position":[[30,5]]}},"keywords":{}}],["parsecharset",{"_index":1544,"title":{},"content":{"228":{"position":[[0,13]]},"229":{"position":[[834,14]]}},"keywords":{}}],["parseencod",{"_index":1576,"title":{},"content":{"229":{"position":[[856,15]]}},"keywords":{}}],["parser",{"_index":155,"title":{"245":{"position":[[15,6]]},"249":{"position":[[20,6]]},"267":{"position":[[20,6]]},"271":{"position":[[20,6]]},"334":{"position":[[13,6]]},"378":{"position":[[15,7]]},"379":{"position":[[20,7]]},"383":{"position":[[20,7]]},"384":{"position":[[20,7]]},"390":{"position":[[14,7]]},"411":{"position":[[15,7]]},"412":{"position":[[20,7]]},"417":{"position":[[20,7]]},"418":{"position":[[20,7]]},"425":{"position":[[14,7]]},"431":{"position":[[13,7]]},"450":{"position":[[15,7]]},"451":{"position":[[20,7]]},"456":{"position":[[20,7]]},"457":{"position":[[20,7]]},"468":{"position":[[13,7]]}},"content":{"5":{"position":[[341,7]]},"31":{"position":[[92,7]]},"34":{"position":[[638,7],[720,7],[1027,7],[1119,7]]},"37":{"position":[[689,7],[771,7],[1078,7],[1170,7]]},"43":{"position":[[638,7],[720,7],[1027,7],[1119,7]]},"91":{"position":[[638,7],[720,7],[1027,7],[1119,7]]},"146":{"position":[[650,7],[732,7],[1039,7],[1131,7]]},"148":{"position":[[550,7]]},"246":{"position":[[97,6]]},"248":{"position":[[151,7]]},"250":{"position":[[102,6]]},"252":{"position":[[161,7]]},"268":{"position":[[102,6]]},"270":{"position":[[96,7]]},"272":{"position":[[102,6]]},"274":{"position":[[161,7]]},"281":{"position":[[532,7],[726,7],[864,7],[989,7],[1164,7]]},"324":{"position":[[1551,7]]},"335":{"position":[[83,6]]},"337":{"position":[[92,7]]},"362":{"position":[[1487,7]]},"383":{"position":[[44,7]]}},"keywords":{}}],["parserhttppartialrespons",{"_index":2037,"title":{},"content":{"354":{"position":[[863,25]]}},"keywords":{}}],["parsers3keynorm",{"_index":2039,"title":{},"content":{"354":{"position":[[966,21]]}},"keywords":{}}],["parserwarmup",{"_index":2044,"title":{},"content":{"354":{"position":[[1166,12]]}},"keywords":{}}],["parsingavailablecharset",{"_index":1547,"title":{},"content":{"228":{"position":[[74,24]]}},"keywords":{}}],["parsingavailableencod",{"_index":1549,"title":{},"content":{"228":{"position":[[270,25]]}},"keywords":{}}],["parsingavailablelanguag",{"_index":1552,"title":{},"content":{"228":{"position":[[468,25]]}},"keywords":{}}],["parsingavailablemediatyp",{"_index":1555,"title":{},"content":{"228":{"position":[[669,26]]}},"keywords":{}}],["part",{"_index":295,"title":{},"content":{"7":{"position":[[302,4]]},"303":{"position":[[1205,4]]},"347":{"position":[[506,4]]},"351":{"position":[[274,4]]},"359":{"position":[[899,4]]}},"keywords":{}}],["parti",{"_index":1880,"title":{"321":{"position":[[6,5]]}},"content":{},"keywords":{}}],["partial",{"_index":660,"title":{"257":{"position":[[5,7]]},"311":{"position":[[4,7]]},"380":{"position":[[5,7]]},"391":{"position":[[4,7]]},"413":{"position":[[5,7]]},"426":{"position":[[4,7]]},"452":{"position":[[5,7]]},"463":{"position":[[4,7]]}},"content":{"34":{"position":[[783,7]]},"37":{"position":[[834,7]]},"43":{"position":[[783,7]]},"91":{"position":[[783,7]]},"139":{"position":[[143,7]]},"146":{"position":[[795,7]]},"258":{"position":[[87,7]]},"260":{"position":[[77,7]]},"282":{"position":[[399,7],[540,7],[571,9]]},"312":{"position":[[86,7]]},"314":{"position":[[65,7]]},"354":{"position":[[907,7]]},"426":{"position":[[100,7]]}},"keywords":{}}],["particular",{"_index":1744,"title":{},"content":{"277":{"position":[[257,10]]}},"keywords":{}}],["pass",{"_index":586,"title":{},"content":{"21":{"position":[[2282,7],[2696,6]]},"151":{"position":[[187,4]]},"161":{"position":[[460,6]]},"197":{"position":[[226,4],[451,7]]},"202":{"position":[[223,4],[447,7]]},"243":{"position":[[119,4]]},"247":{"position":[[58,6]]},"251":{"position":[[65,4]]},"264":{"position":[[120,6]]},"286":{"position":[[193,4]]},"291":{"position":[[37,4],[301,4],[391,7],[490,7]]},"298":{"position":[[233,4],[445,7]]},"303":{"position":[[212,4],[430,7]]},"308":{"position":[[247,4],[479,7]]},"318":{"position":[[199,4],[290,7]]},"322":{"position":[[786,7]]},"327":{"position":[[200,4],[410,7]]},"336":{"position":[[67,6]]},"340":{"position":[[262,4],[501,7]]},"347":{"position":[[188,6]]},"360":{"position":[[236,4]]},"362":{"position":[[311,4]]},"385":{"position":[[138,6]]},"398":{"position":[[493,6]]},"466":{"position":[[250,4]]}},"keywords":{}}],["password",{"_index":846,"title":{},"content":{"151":{"position":[[197,9],[370,8]]},"299":{"position":[[475,10],[562,11]]}},"keywords":{}}],["patch",{"_index":2011,"title":{},"content":{"347":{"position":[[127,6]]}},"keywords":{}}],["path",{"_index":446,"title":{"267":{"position":[[15,4]]},"384":{"position":[[15,4]]},"418":{"position":[[15,4]]},"457":{"position":[[15,4]]}},"content":{"15":{"position":[[83,4],[346,5]]},"34":{"position":[[1114,4]]},"37":{"position":[[1165,4],[1377,5],[1438,5]]},"43":{"position":[[1114,4]]},"91":{"position":[[1114,4]]},"146":{"position":[[1126,4]]},"268":{"position":[[97,4]]},"270":{"position":[[91,4]]},"277":{"position":[[223,5]]},"281":{"position":[[984,4]]},"322":{"position":[[1349,4],[1432,5]]},"328":{"position":[[316,4],[894,4]]},"347":{"position":[[23,5],[237,4]]},"348":{"position":[[479,5],[540,5]]},"419":{"position":[[44,5]]}},"keywords":{}}],["path.dirname(__filenam",{"_index":453,"title":{},"content":{"15":{"position":[[214,24]]}},"keywords":{}}],["path.valid",{"_index":1781,"title":{},"content":{"281":{"position":[[1049,15]]}},"keywords":{}}],["pathparamet",{"_index":1725,"title":{},"content":{"270":{"position":[[317,15]]},"281":{"position":[[404,14]]}},"keywords":{}}],["pattern",{"_index":197,"title":{},"content":{"5":{"position":[[1330,8],[1522,8]]},"6":{"position":[[638,8],[652,7]]},"474":{"position":[[338,7],[536,8]]}},"keywords":{}}],["pattern.beforehandler/afterhandl",{"_index":1026,"title":{},"content":{"161":{"position":[[520,37]]}},"keywords":{}}],["payload",{"_index":1182,"title":{},"content":{"170":{"position":[[886,7]]},"183":{"position":[[85,7],[319,7]]},"194":{"position":[[221,8]]}},"keywords":{}}],["payloadformatvers",{"_index":2202,"title":{},"content":{"409":{"position":[[7,20]]}},"keywords":{}}],["payloadselect",{"_index":1352,"title":{},"content":{"183":{"position":[[185,13]]}},"keywords":{}}],["payment",{"_index":144,"title":{},"content":{"5":{"position":[[119,8],[929,8]]},"186":{"position":[[417,7],[560,7],[732,10]]}},"keywords":{}}],["payment.id",{"_index":1386,"title":{},"content":{"186":{"position":[[630,11]]}},"keywords":{}}],["paymentid",{"_index":1385,"title":{},"content":{"186":{"position":[[619,10]]}},"keywords":{}}],["peer",{"_index":922,"title":{},"content":{"155":{"position":[[186,4]]}},"keywords":{}}],["percent",{"_index":1907,"title":{},"content":{"322":{"position":[[1183,7]]}},"keywords":{}}],["percentag",{"_index":1186,"title":{},"content":{"171":{"position":[[214,10]]}},"keywords":{}}],["perform",{"_index":28,"title":{},"content":{"1":{"position":[[92,11]]},"219":{"position":[[468,11],[593,12]]},"318":{"position":[[1036,11]]},"359":{"position":[[1144,11]]},"404":{"position":[[53,11]]},"407":{"position":[[81,11]]}},"keywords":{}}],["performancemiddi",{"_index":1887,"title":{},"content":{"322":{"position":[[162,16]]}},"keywords":{}}],["period",{"_index":1071,"title":{},"content":{"166":{"position":[[59,7],[231,6],[803,6]]}},"keywords":{}}],["permiss",{"_index":1454,"title":{},"content":{"197":{"position":[[1103,10]]},"202":{"position":[[1098,10]]},"286":{"position":[[831,10]]},"291":{"position":[[856,10]]},"298":{"position":[[1578,10]]},"303":{"position":[[1075,10]]},"308":{"position":[[1125,10]]},"318":{"position":[[936,10]]},"324":{"position":[[1363,11],[1399,10]]},"327":{"position":[[1108,10]]},"340":{"position":[[732,10]]}},"keywords":{}}],["persist",{"_index":1370,"title":{},"content":{"185":{"position":[[113,11]]}},"keywords":{}}],["persistencestor",{"_index":1367,"title":{},"content":{"185":{"position":[[42,16]]},"186":{"position":[[256,16],[778,17]]}},"keywords":{}}],["perspect",{"_index":228,"title":{},"content":{"6":{"position":[[81,12]]}},"keywords":{}}],["pgmiddi",{"_index":1910,"title":{},"content":{"322":{"position":[[1250,7]]}},"keywords":{}}],["phase",{"_index":893,"title":{},"content":{"153":{"position":[[259,5]]},"160":{"position":[[200,5]]},"163":{"position":[[21,7],[58,6],[206,6],[579,6]]},"211":{"position":[[103,6]]},"473":{"position":[[203,6],[578,5],[647,5],[721,5]]},"475":{"position":[[916,7]]}},"keywords":{}}],["phaseaft",{"_index":2293,"title":{},"content":{"475":{"position":[[146,11]]}},"keywords":{}}],["phaseonerror",{"_index":2294,"title":{},"content":{"475":{"position":[[199,13]]}},"keywords":{}}],["pino",{"_index":826,"title":{"147":{"position":[[0,4]]}},"content":{"147":{"position":[[0,4]]},"278":{"position":[[389,4],[399,6],[421,6]]}},"keywords":{}}],["pk",{"_index":1464,"title":{},"content":{"203":{"position":[[308,3]]}},"keywords":{}}],["place",{"_index":1393,"title":{},"content":{"188":{"position":[[169,5]]},"324":{"position":[[393,7]]}},"keywords":{}}],["placement",{"_index":1395,"title":{},"content":{"188":{"position":[[466,9]]}},"keywords":{}}],["plan",{"_index":1713,"title":{},"content":{"265":{"position":[[517,8]]}},"keywords":{}}],["platform=nod",{"_index":392,"title":{},"content":{"12":{"position":[[123,13]]},"18":{"position":[[45,13]]}},"keywords":{}}],["pleas",{"_index":820,"title":{},"content":{"143":{"position":[[103,6]]},"147":{"position":[[95,6]]},"148":{"position":[[104,6]]},"149":{"position":[[111,6]]},"150":{"position":[[107,6]]},"151":{"position":[[128,6]]},"166":{"position":[[820,6]]},"167":{"position":[[98,6]]},"190":{"position":[[100,6]]}},"keywords":{}}],["plug",{"_index":261,"title":{},"content":{"6":{"position":[[862,7]]}},"keywords":{}}],["plugin",{"_index":410,"title":{},"content":{"13":{"position":[[233,7],[416,8]]},"324":{"position":[[470,7],[627,6]]},"332":{"position":[[256,6]]},"360":{"position":[[52,7]]},"394":{"position":[[22,7],[120,6]]},"395":{"position":[[315,6]]}},"keywords":{}}],["point",{"_index":1189,"title":{},"content":{"171":{"position":[[331,5]]}},"keywords":{}}],["pollut",{"_index":244,"title":{},"content":{"6":{"position":[[404,9],[925,9]]}},"keywords":{}}],["polyfil",{"_index":2229,"title":{},"content":{"437":{"position":[[7,8],[41,8]]}},"keywords":{}}],["pond",{"_index":1740,"title":{},"content":{"274":{"position":[[638,5]]}},"keywords":{}}],["popular",{"_index":1052,"title":{},"content":{"164":{"position":[[192,10]]}},"keywords":{}}],["port",{"_index":765,"title":{},"content":{"103":{"position":[[463,5]]},"164":{"position":[[316,4],[351,4]]},"282":{"position":[[377,4]]},"287":{"position":[[393,5]]}},"keywords":{}}],["possibl",{"_index":1019,"title":{},"content":{"161":{"position":[[103,8]]},"370":{"position":[[76,8]]},"420":{"position":[[34,8]]},"423":{"position":[[34,8]]},"475":{"position":[[81,8]]}},"keywords":{}}],["post",{"_index":707,"title":{},"content":{"37":{"position":[[1430,7]]},"347":{"position":[[116,5]]},"348":{"position":[[532,7]]},"432":{"position":[[6,4]]}},"keywords":{}}],["postgr",{"_index":1813,"title":{},"content":{"287":{"position":[[381,11]]}},"keywords":{}}],["posthandl",{"_index":704,"title":{},"content":{"37":{"position":[[1299,11],[1462,11]]},"348":{"position":[[295,11],[564,11]]}},"keywords":{}}],["potenti",{"_index":1400,"title":{},"content":{"188":{"position":[[666,11]]}},"keywords":{}}],["power",{"_index":1663,"title":{},"content":{"255":{"position":[[185,7]]},"324":{"position":[[272,7]]},"363":{"position":[[144,7]]}},"keywords":{}}],["powertool",{"_index":1157,"title":{"169":{"position":[[0,10]]}},"content":{"170":{"position":[[0,10],[154,10]]},"179":{"position":[[637,10]]},"188":{"position":[[21,10],[133,10]]},"189":{"position":[[215,10],[1252,10]]},"322":{"position":[[12,11]]},"323":{"position":[[11,10]]}},"keywords":{}}],["powertools/common",{"_index":1413,"title":{},"content":{"189":{"position":[[848,20]]}},"keywords":{}}],["powertools/idempot",{"_index":1365,"title":{},"content":{"184":{"position":[[43,22]]}},"keywords":{}}],["powertools/idempotency/dynamodb",{"_index":1379,"title":{},"content":{"186":{"position":[[216,33]]}},"keywords":{}}],["powertools/idempotency/middlewar",{"_index":1377,"title":{},"content":{"186":{"position":[[126,35]]}},"keywords":{}}],["powertools/logg",{"_index":1195,"title":{},"content":{"172":{"position":[[43,17]]},"174":{"position":[[90,19]]}},"keywords":{}}],["powertools/metr",{"_index":1321,"title":{},"content":{"180":{"position":[[43,18]]},"182":{"position":[[95,20]]}},"keywords":{}}],["powertools/trac",{"_index":1292,"title":{},"content":{"176":{"position":[[43,17]]},"178":{"position":[[91,19]]}},"keywords":{}}],["practic",{"_index":1050,"title":{"187":{"position":[[5,10]]}},"content":{"164":{"position":[[124,9]]},"189":{"position":[[534,8]]},"282":{"position":[[319,8]]},"318":{"position":[[1102,10]]}},"keywords":{}}],["pre",{"_index":1595,"title":{"363":{"position":[[0,3]]}},"content":{"232":{"position":[[1289,3]]},"280":{"position":[[273,3]]},"358":{"position":[[139,3]]},"398":{"position":[[849,3]]},"466":{"position":[[413,3]]}},"keywords":{}}],["precompil",{"_index":2079,"title":{},"content":{"359":{"position":[[1203,12]]}},"keywords":{}}],["prefer",{"_index":1507,"title":{},"content":{"219":{"position":[[251,9],[291,6]]},"265":{"position":[[448,11]]}},"keywords":{}}],["preferbuiltin",{"_index":411,"title":{},"content":{"13":{"position":[[258,15]]}},"keywords":{}}],["prefetch",{"_index":1021,"title":{},"content":{"161":{"position":[[224,10]]},"291":{"position":[[673,9]]},"340":{"position":[[684,9]]}},"keywords":{}}],["prefetch.cachekey",{"_index":1443,"title":{},"content":{"197":{"position":[[720,17]]},"202":{"position":[[716,17]]},"286":{"position":[[447,17]]},"298":{"position":[[1193,17]]},"303":{"position":[[699,17]]},"308":{"position":[[748,17]]},"318":{"position":[[559,17]]},"327":{"position":[[731,17]]}},"keywords":{}}],["prefetchingexpectct",{"_index":1657,"title":{},"content":{"255":{"position":[[40,19]]}},"keywords":{}}],["prefix",{"_index":1305,"title":{},"content":{"178":{"position":[[768,6]]},"347":{"position":[[416,6]]}},"keywords":{}}],["preflight",{"_index":1581,"title":{},"content":{"232":{"position":[[183,9]]}},"keywords":{}}],["present.exposehead",{"_index":1589,"title":{},"content":{"232":{"position":[[823,21]]}},"keywords":{}}],["prevent",{"_index":1181,"title":{},"content":{"170":{"position":[[849,7]]},"183":{"position":[[14,7]]},"255":{"position":[[128,7]]}},"keywords":{}}],["print",{"_index":605,"title":{},"content":{"21":{"position":[[2665,8]]},"322":{"position":[[225,7],[359,8]]}},"keywords":{}}],["prioriti",{"_index":1043,"title":{},"content":{"163":{"position":[[694,8]]}},"keywords":{}}],["probabl",{"_index":2270,"title":{},"content":{"473":{"position":[[145,8]]}},"keywords":{}}],["problem",{"_index":253,"title":{},"content":{"6":{"position":[[593,7]]},"174":{"position":[[1562,7],[2247,7]]}},"keywords":{}}],["process",{"_index":143,"title":{},"content":{"5":{"position":[[109,7],[938,9]]},"7":{"position":[[321,8]]},"167":{"position":[[1057,10],[1286,7]]},"251":{"position":[[502,9]]},"313":{"position":[[87,10]]},"314":{"position":[[224,10]]}},"keywords":{}}],["process.env.aws_region",{"_index":759,"title":{},"content":{"103":{"position":[[359,23]]}},"keywords":{}}],["process.env.node_env",{"_index":80,"title":{},"content":{"2":{"position":[[639,20]]},"434":{"position":[[180,20]]}},"keywords":{}}],["process.env.rds_hostnam",{"_index":761,"title":{},"content":{"103":{"position":[[393,25]]}},"keywords":{}}],["process.hrtime.bigint",{"_index":503,"title":{},"content":{"21":{"position":[[205,23]]}},"keywords":{}}],["processcach",{"_index":2281,"title":{},"content":{"474":{"position":[[580,12]]}},"keywords":{}}],["processcache(opt",{"_index":2289,"title":{},"content":{"474":{"position":[[1143,21],[1247,21]]}},"keywords":{}}],["prod",{"_index":1235,"title":{},"content":{"174":{"position":[[574,4],[776,4],[1914,4]]}},"keywords":{}}],["produc",{"_index":1609,"title":{},"content":{"236":{"position":[[208,7]]}},"keywords":{}}],["product",{"_index":1159,"title":{},"content":{"170":{"position":[[101,10]]}},"keywords":{}}],["productid",{"_index":1382,"title":{},"content":{"186":{"position":[[452,10]]}},"keywords":{}}],["profil",{"_index":493,"title":{"20":{"position":[[0,9]]}},"content":{"161":{"position":[[692,9]]},"322":{"position":[[1068,9],[1093,9]]}},"keywords":{}}],["progress",{"_index":819,"title":{},"content":{"143":{"position":[[44,9]]},"147":{"position":[[36,9]]},"148":{"position":[[45,9]]},"149":{"position":[[52,9]]},"150":{"position":[[48,9]]},"151":{"position":[[69,9]]},"167":{"position":[[39,9]]},"183":{"position":[[369,8]]},"190":{"position":[[41,9]]}},"keywords":{}}],["project",{"_index":884,"title":{},"content":{"152":{"position":[[192,8]]},"159":{"position":[[131,7],[600,8]]},"164":{"position":[[42,8],[259,8],[385,8]]},"165":{"position":[[44,7]]}},"keywords":{}}],["project.2017",{"_index":967,"title":{},"content":{"159":{"position":[[249,12]]}},"keywords":{}}],["promis",{"_index":43,"title":{"294":{"position":[[0,8]]}},"content":{"2":{"position":[[83,8]]},"128":{"position":[[319,9]]},"294":{"position":[[298,9]]},"324":{"position":[[184,8],[578,8]]},"474":{"position":[[234,9],[264,8]]}},"keywords":{}}],["promise<apigatewayproxyresult>",{"_index":1151,"title":{},"content":{"168":{"position":[[382,36]]},"478":{"position":[[435,36]]}},"keywords":{}}],["promise<void>",{"_index":1330,"title":{},"content":{"182":{"position":[[270,19]]},"478":{"position":[[611,19]]}},"keywords":{}}],["promise.allsettled(recordpromis",{"_index":1864,"title":{},"content":{"314":{"position":[[268,34]]}},"keywords":{}}],["promise.awscli",{"_index":1815,"title":{},"content":{"291":{"position":[[97,17]]}},"keywords":{}}],["prop",{"_index":58,"title":{},"content":{"2":{"position":[[309,5],[387,5],[421,6]]}},"keywords":{}}],["propag",{"_index":1006,"title":{},"content":{"160":{"position":[[474,10]]},"270":{"position":[[172,10]]},"274":{"position":[[237,10]]}},"keywords":{}}],["proper",{"_index":222,"title":{},"content":{"5":{"position":[[2044,6]]},"160":{"position":[[326,6]]},"248":{"position":[[410,6]]},"282":{"position":[[172,6],[264,6]]}},"keywords":{}}],["properli",{"_index":1403,"title":{},"content":{"189":{"position":[[417,8]]},"315":{"position":[[254,8]]},"476":{"position":[[218,9]]}},"keywords":{}}],["properti",{"_index":191,"title":{},"content":{"5":{"position":[[1212,11],[1250,11],[1668,10]]},"183":{"position":[[442,8]]},"211":{"position":[[66,8],[252,8]]},"212":{"position":[[320,8]]},"215":{"position":[[7,9]]},"277":{"position":[[194,8]]},"280":{"position":[[54,8],[169,8]]},"332":{"position":[[229,8]]},"362":{"position":[[284,11],[524,8],[1031,11],[1710,11],[1777,11]]}},"keywords":{}}],["protect",{"_index":1675,"title":{},"content":{"255":{"position":[[404,11]]}},"keywords":{}}],["provid",{"_index":1017,"title":{},"content":{"161":{"position":[[12,8]]},"170":{"position":[[165,8]]},"207":{"position":[[314,7]]},"281":{"position":[[165,8]]},"323":{"position":[[424,8]]},"324":{"position":[[322,8]]},"355":{"position":[[210,7]]}},"keywords":{}}],["provis",{"_index":2165,"title":{},"content":{"395":{"position":[[103,11]]}},"keywords":{}}],["proxi",{"_index":56,"title":{},"content":{"2":{"position":[[283,9]]},"324":{"position":[[361,8]]},"398":{"position":[[648,7]]}},"keywords":{}}],["proxy+}handl",{"_index":2015,"title":{},"content":{"347":{"position":[[287,16]]}},"keywords":{}}],["publish",{"_index":1468,"title":{},"content":{"207":{"position":[[128,9]]},"354":{"position":[[61,9]]}},"keywords":{}}],["pull",{"_index":882,"title":{},"content":{"152":{"position":[[150,4]]}},"keywords":{}}],["pure",{"_index":245,"title":{},"content":{"6":{"position":[[418,4]]}},"keywords":{}}],["put",{"_index":291,"title":{},"content":{"7":{"position":[[242,3]]},"232":{"position":[[308,3],[398,3],[657,3],[875,3],[965,3],[1062,3],[1161,3],[1258,3]]},"347":{"position":[[122,4]]},"466":{"position":[[6,3]]}},"keywords":{}}],["q=0.8",{"_index":1719,"title":{},"content":{"266":{"position":[[635,6]]}},"keywords":{}}],["qs",{"_index":2154,"title":{},"content":{"383":{"position":[[34,2]]}},"keywords":{}}],["qs/.editorconfig",{"_index":313,"title":{},"content":{"7":{"position":[[667,19]]}},"keywords":{}}],["qs/.eslintrc",{"_index":314,"title":{},"content":{"7":{"position":[[687,15]]}},"keywords":{}}],["qs/.github",{"_index":310,"title":{},"content":{"7":{"position":[[631,13]]}},"keywords":{}}],["qs/.nycrc",{"_index":315,"title":{},"content":{"7":{"position":[[703,12]]}},"keywords":{}}],["qs/changelog.md",{"_index":316,"title":{},"content":{"7":{"position":[[716,18]]}},"keywords":{}}],["qs/dist",{"_index":311,"title":{},"content":{"7":{"position":[[645,10]]}},"keywords":{}}],["qs/test",{"_index":312,"title":{},"content":{"7":{"position":[[656,10]]}},"keywords":{}}],["queri",{"_index":1788,"title":{},"content":{"282":{"position":[[461,5]]}},"keywords":{}}],["querystr",{"_index":1678,"title":{},"content":{"259":{"position":[[61,11]]}},"keywords":{}}],["querystring/test",{"_index":332,"title":{},"content":{"7":{"position":[[1024,19]]}},"keywords":{}}],["querystringparamet",{"_index":1696,"title":{},"content":{"260":{"position":[[385,22]]},"281":{"position":[[346,22]]}},"keywords":{}}],["queue",{"_index":1893,"title":{},"content":{"322":{"position":[[490,5]]}},"keywords":{}}],["quick",{"_index":132,"title":{"5":{"position":[[2,5]]}},"content":{},"keywords":{}}],["quickli",{"_index":114,"title":{},"content":{"4":{"position":[[258,8]]},"473":{"position":[[835,7]]}},"keywords":{}}],["quit",{"_index":2160,"title":{},"content":{"394":{"position":[[192,5]]}},"keywords":{}}],["quot;*")origin",{"_index":1587,"title":{},"content":{"232":{"position":[[685,21]]}},"keywords":{}}],["quot;./"",{"_index":373,"title":{},"content":{"10":{"position":[[112,15]]}},"keywords":{}}],["quot;16"",{"_index":478,"title":{},"content":{"17":{"position":[[241,14]]}},"keywords":{}}],["quot;2021",{"_index":1259,"title":{},"content":{"174":{"position":[[1037,10]]}},"keywords":{}}],["quot;@babel/preset",{"_index":475,"title":{},"content":{"17":{"position":[[167,19]]}},"keywords":{}}],["quot;@middy/core"",{"_index":949,"title":{},"content":{"157":{"position":[[491,23]]}},"keywords":{}}],["quot;_aws"",{"_index":1336,"title":{},"content":{"182":{"position":[[550,17]]}},"keywords":{}}],["quot;abcdef123456abcdef123456abcdef123456"",{"_index":1262,"title":{},"content":{"174":{"position":[[1102,48]]}},"keywords":{}}],["quot;allowjs"",{"_index":377,"title":{},"content":{"10":{"position":[[237,20]]}},"keywords":{}}],["quot;arn:aws:lambda:eu",{"_index":1231,"title":{},"content":{"174":{"position":[[496,23]]}},"keywords":{}}],["quot;bar"",{"_index":1254,"title":{},"content":{"174":{"position":[[926,16]]}},"keywords":{}}],["quot;baseurl"",{"_index":372,"title":{},"content":{"10":{"position":[[91,20]]}},"keywords":{}}],["quot;baz"",{"_index":1255,"title":{},"content":{"174":{"position":[[943,15]]}},"keywords":{}}],["quot;c6af9ac6",{"_index":1241,"title":{},"content":{"174":{"position":[[668,14]]}},"keywords":{}}],["quot;cloudwatchmetrics"",{"_index":1338,"title":{},"content":{"182":{"position":[[608,30]]}},"keywords":{}}],["quot;cold_start"",{"_index":1229,"title":{},"content":{"174":{"position":[[440,23]]}},"keywords":{}}],["quot;commonjs"",{"_index":492,"title":{},"content":{"19":{"position":[[274,20]]}},"keywords":{}}],["quot;compileroptions"",{"_index":371,"title":{},"content":{"10":{"position":[[60,28]]}},"keywords":{}}],["quot;count"",{"_index":1344,"title":{},"content":{"182":{"position":[[840,17]]}},"keywords":{}}],["quot;dimensions"",{"_index":1340,"title":{},"content":{"182":{"position":[[696,23]]}},"keywords":{}}],["quot;ecmascript"",{"_index":489,"title":{},"content":{"19":{"position":[[166,22]]}},"keywords":{}}],["quot;es2021"",{"_index":380,"title":{},"content":{"10":{"position":[[285,19]]},"19":{"position":[[212,18]]}},"keywords":{}}],["quot;esmoduleinterop"",{"_index":374,"title":{},"content":{"10":{"position":[[128,28]]}},"keywords":{}}],["quot;foo"",{"_index":1253,"title":{},"content":{"174":{"position":[[907,16]]}},"keywords":{}}],["quot;function_arn"",{"_index":1230,"title":{},"content":{"174":{"position":[[470,25]]}},"keywords":{}}],["quot;function_memory_size"",{"_index":1238,"title":{},"content":{"174":{"position":[[596,33]]}},"keywords":{}}],["quot;function_name"",{"_index":1246,"title":{},"content":{"174":{"position":[[718,26]]}},"keywords":{}}],["quot;function_request_id"",{"_index":1240,"title":{},"content":{"174":{"position":[[635,32]]}},"keywords":{}}],["quot;info"",{"_index":1249,"title":{},"content":{"174":{"position":[[817,17]]}},"keywords":{}}],["quot;jsc"",{"_index":486,"title":{},"content":{"19":{"position":[[105,16]]}},"keywords":{}}],["quot;level"",{"_index":1248,"title":{},"content":{"174":{"position":[[798,18]]}},"keywords":{}}],["quot;message"",{"_index":1250,"title":{},"content":{"174":{"position":[[835,20]]}},"keywords":{}}],["quot;metrics"",{"_index":1341,"title":{},"content":{"182":{"position":[[749,20]]}},"keywords":{}}],["quot;middyfy"",{"_index":211,"title":{},"content":{"5":{"position":[[1694,19]]}},"keywords":{}}],["quot;module"",{"_index":490,"title":{},"content":{"19":{"position":[[234,19]]}},"keywords":{}}],["quot;moduleresolution"",{"_index":384,"title":{},"content":{"10":{"position":[[400,29]]}},"keywords":{}}],["quot;name"",{"_index":1342,"title":{},"content":{"182":{"position":[[773,17]]}},"keywords":{}}],["quot;namespace"",{"_index":1339,"title":{},"content":{"182":{"position":[[642,22]]}},"keywords":{}}],["quot;node"",{"_index":385,"title":{},"content":{"10":{"position":[[430,16]]},"17":{"position":[[223,17]]}},"keywords":{}}],["quot;node_modules/@types"",{"_index":382,"title":{},"content":{"10":{"position":[[328,34]]}},"keywords":{}}],["quot;orders"",{"_index":1345,"title":{},"content":{"182":{"position":[[886,18]]}},"keywords":{}}],["quot;parser"",{"_index":487,"title":{},"content":{"19":{"position":[[124,19]]}},"keywords":{}}],["quot;preserveconstenums"",{"_index":375,"title":{},"content":{"10":{"position":[[163,31]]}},"keywords":{}}],["quot;presets"",{"_index":474,"title":{},"content":{"17":{"position":[[142,20]]}},"keywords":{}}],["quot;resolvejsonmodule"",{"_index":383,"title":{},"content":{"10":{"position":[[363,30]]}},"keywords":{}}],["quot;sampl",{"_index":950,"title":{},"content":{"157":{"position":[[539,12],[594,12],[649,12]]}},"keywords":{}}],["quot;serverlessairline"",{"_index":1257,"title":{},"content":{"174":{"position":[[983,30]]}},"keywords":{}}],["quot;service"",{"_index":1256,"title":{},"content":{"174":{"position":[[962,20]]},"182":{"position":[[724,19],[865,20]]}},"keywords":{}}],["quot;shop",{"_index":1247,"title":{},"content":{"174":{"position":[[745,14]]}},"keywords":{}}],["quot;strictnullchecks"",{"_index":376,"title":{},"content":{"10":{"position":[[201,29]]}},"keywords":{}}],["quot;successfulbooking"",{"_index":1334,"title":{},"content":{"182":{"position":[[514,30],[665,30],[791,30]]}},"keywords":{}}],["quot;syntax"",{"_index":488,"title":{},"content":{"19":{"position":[[146,19]]}},"keywords":{}}],["quot;target"",{"_index":379,"title":{},"content":{"10":{"position":[[265,19]]},"19":{"position":[[192,19]]}},"keywords":{}}],["quot;targets"",{"_index":477,"title":{},"content":{"17":{"position":[[200,20]]}},"keywords":{}}],["quot;thi",{"_index":1251,"title":{},"content":{"174":{"position":[[856,10]]}},"keywords":{}}],["quot;timestamp"",{"_index":1258,"title":{},"content":{"174":{"position":[[1014,22]]},"182":{"position":[[570,22]]}},"keywords":{}}],["quot;type"",{"_index":491,"title":{},"content":{"19":{"position":[[256,17]]}},"keywords":{}}],["quot;typeof":"function".responseschema",{"_index":2065,"title":{},"content":{"359":{"position":[[368,54]]}},"keywords":{}}],["quot;typeroots"",{"_index":381,"title":{},"content":{"10":{"position":[[305,22]]}},"keywords":{}}],["quot;unit"",{"_index":1343,"title":{},"content":{"182":{"position":[[822,17]]}},"keywords":{}}],["quot;xray_trace_id"",{"_index":1261,"title":{},"content":{"174":{"position":[[1075,26]]}},"keywords":{}}],["rais",{"_index":880,"title":{},"content":{"152":{"position":[[124,5]]}},"keywords":{}}],["random",{"_index":335,"title":{},"content":{"7":{"position":[[1064,6],[1106,6],[1144,6],[1191,6],[1222,6]]}},"keywords":{}}],["randomuuid",{"_index":1374,"title":{},"content":{"186":{"position":[[42,10],[438,13]]}},"keywords":{}}],["rate",{"_index":1210,"title":{},"content":{"173":{"position":[[413,4]]}},"keywords":{}}],["ray",{"_index":1171,"title":{},"content":{"170":{"position":[[456,3]]},"174":{"position":[[1477,3]]},"175":{"position":[[328,3]]},"178":{"position":[[1040,3]]},"189":{"position":[[469,4]]},"323":{"position":[[173,3]]},"324":{"position":[[723,3]]},"327":{"position":[[112,5],[403,3]]},"399":{"position":[[75,3]]}},"keywords":{}}],["rd",{"_index":421,"title":{"114":{"position":[[0,3]]},"151":{"position":[[32,5]]},"284":{"position":[[0,3]]},"386":{"position":[[0,3]]},"420":{"position":[[0,3]]},"459":{"position":[[0,3]]}},"content":{"13":{"position":[[530,5]]},"15":{"position":[[737,5]]},"115":{"position":[[29,3]]},"116":{"position":[[164,3]]},"151":{"position":[[32,5],[438,3]]},"283":{"position":[[141,3]]},"286":{"position":[[483,3],[846,3]]},"322":{"position":[[1208,4],[1221,3]]},"370":{"position":[[67,3]]},"386":{"position":[[24,3]]}},"keywords":{}}],["rds.amazonaws.com",{"_index":1812,"title":{},"content":{"287":{"position":[[324,24]]}},"keywords":{}}],["rds.parametergroup",{"_index":870,"title":{},"content":{"151":{"position":[[948,19]]}},"keywords":{}}],["rds.signer",{"_index":848,"title":{},"content":{"151":{"position":[[243,11]]}},"keywords":{}}],["rdssigner",{"_index":757,"title":{},"content":{"103":{"position":[[338,10],[897,10]]},"287":{"position":[[39,9],[253,11]]}},"keywords":{}}],["rdssignermiddlewar",{"_index":751,"title":{},"content":{"103":{"position":[[81,19],[303,21]]}},"keywords":{}}],["rdstoken",{"_index":1810,"title":{},"content":{"287":{"position":[[278,9]]}},"keywords":{}}],["re",{"_index":1421,"title":{},"content":{"194":{"position":[[127,3]]},"362":{"position":[[644,4]]},"415":{"position":[[12,2]]},"433":{"position":[[12,2]]},"473":{"position":[[115,2]]},"474":{"position":[[1047,5]]}},"keywords":{}}],["reach",{"_index":1106,"title":{},"content":{"166":{"position":[[827,5]]},"474":{"position":[[460,8]]}},"keywords":{}}],["react",{"_index":333,"title":{},"content":{"7":{"position":[[1044,8],[1086,8],[1124,8],[1171,8]]}},"keywords":{}}],["read",{"_index":248,"title":{},"content":{"6":{"position":[[487,4]]},"355":{"position":[[600,4]]}},"keywords":{}}],["readabl",{"_index":268,"title":{},"content":{"6":{"position":[[984,9]]}},"keywords":{}}],["readfil",{"_index":2118,"title":{},"content":{"364":{"position":[[9,8]]},"365":{"position":[[9,8]]}},"keywords":{}}],["readfile('./en.ftl",{"_index":2122,"title":{},"content":{"364":{"position":[[274,21]]}},"keywords":{}}],["readfile('./fr.ftl",{"_index":2123,"title":{},"content":{"364":{"position":[[329,21]]}},"keywords":{}}],["readi",{"_index":582,"title":{},"content":{"21":{"position":[[2191,5]]},"170":{"position":[[112,5]]},"322":{"position":[[911,5],[1041,5]]},"324":{"position":[[1651,5]]}},"keywords":{}}],["readstream",{"_index":1826,"title":{},"content":{"293":{"position":[[166,10]]}},"keywords":{}}],["readstream.pipe(transformstream",{"_index":1829,"title":{},"content":{"293":{"position":[[263,32]]}},"keywords":{}}],["realli",{"_index":95,"title":{},"content":{"2":{"position":[[1103,6]]},"251":{"position":[[868,6]]}},"keywords":{}}],["reason",{"_index":1876,"title":{},"content":{"318":{"position":[[1061,8]]},"450":{"position":[[271,10]]}},"keywords":{}}],["recaptcha",{"_index":1911,"title":{},"content":{"322":{"position":[[1258,10],[1269,9]]}},"keywords":{}}],["receiv",{"_index":59,"title":{},"content":{"2":{"position":[[315,9]]},"168":{"position":[[182,9]]},"215":{"position":[[97,8]]},"478":{"position":[[88,9],[1015,7]]}},"keywords":{}}],["recent",{"_index":1839,"title":{},"content":{"298":{"position":[[962,7]]}},"keywords":{}}],["recommend",{"_index":1392,"title":{"363":{"position":[[24,14]]}},"content":{"188":{"position":[[149,10]]},"219":{"position":[[532,11]]},"265":{"position":[[566,11]]},"359":{"position":[[1226,12]]}},"keywords":{}}],["record",{"_index":1357,"title":{},"content":{"183":{"position":[[297,7]]},"207":{"position":[[340,6]]},"225":{"position":[[141,7],[170,6],[180,8]]},"281":{"position":[[64,8]]},"313":{"position":[[68,6]]},"314":{"position":[[182,8],[251,6]]}},"keywords":{}}],["record<str",{"_index":1470,"title":{},"content":{"207":{"position":[[152,18],[184,17]]}},"keywords":{}}],["recordpromis",{"_index":1861,"title":{},"content":{"314":{"position":[[141,14]]}},"keywords":{}}],["redact",{"_index":1746,"title":{},"content":{"277":{"position":[[338,6]]}},"keywords":{}}],["redi",{"_index":1927,"title":{},"content":{"324":{"position":[[6,6],[13,5]]}},"keywords":{}}],["redirect",{"_index":1934,"title":{},"content":{"324":{"position":[[339,9]]}},"keywords":{}}],["refactor",{"_index":2158,"title":{},"content":{"389":{"position":[[0,11]]},"392":{"position":[[0,11]]},"407":{"position":[[68,8]]}},"keywords":{}}],["refer",{"_index":1672,"title":{},"content":{"255":{"position":[[360,7]]},"355":{"position":[[534,10]]},"475":{"position":[[784,9]]}},"keywords":{}}],["reflect.get(...argu",{"_index":62,"title":{},"content":{"2":{"position":[[347,25]]}},"keywords":{}}],["regex",{"_index":692,"title":{},"content":{"34":{"position":[[2041,6]]},"37":{"position":[[2166,6]]},"43":{"position":[[2041,6]]},"91":{"position":[[2066,6]]},"146":{"position":[[2053,6]]},"263":{"position":[[78,6],[183,6],[268,6]]},"266":{"position":[[266,6],[371,6],[456,6]]}},"keywords":{}}],["region",{"_index":758,"title":{},"content":{"103":{"position":[[351,7]]},"287":{"position":[[290,7]]},"299":{"position":[[236,7]]}},"keywords":{}}],["regular",{"_index":1000,"title":{},"content":{"160":{"position":[[86,7]]},"332":{"position":[[145,7]]}},"keywords":{}}],["reject",{"_index":1930,"title":{},"content":{"324":{"position":[[175,8]]}},"keywords":{}}],["rejectunauthor",{"_index":862,"title":{},"content":{"151":{"position":[[717,19]]}},"keywords":{}}],["relat",{"_index":845,"title":{"151":{"position":[[4,10]]}},"content":{"151":{"position":[[4,10]]}},"keywords":{}}],["releas",{"_index":966,"title":{"166":{"position":[[0,7]]}},"content":{"159":{"position":[[205,8],[526,8]]},"166":{"position":[[0,7],[25,7],[101,7],[134,7],[199,7],[293,9],[339,8],[414,7],[429,7]]}},"keywords":{}}],["release2020",{"_index":974,"title":{},"content":{"159":{"position":[[306,11]]}},"keywords":{}}],["released2020",{"_index":977,"title":{},"content":{"159":{"position":[[332,12]]}},"keywords":{}}],["released2021",{"_index":985,"title":{},"content":{"159":{"position":[[434,12]]}},"keywords":{}}],["released2022",{"_index":991,"title":{},"content":{"159":{"position":[[499,12]]}},"keywords":{}}],["remain",{"_index":266,"title":{},"content":{"6":{"position":[[969,7]]}},"keywords":{}}],["remov",{"_index":284,"title":{},"content":{"7":{"position":[[128,6]]},"159":{"position":[[92,6]]},"207":{"position":[[275,6]]},"255":{"position":[[165,6]]},"277":{"position":[[250,6]]},"367":{"position":[[45,7],[216,7]]},"383":{"position":[[0,6]]},"394":{"position":[[140,7],[269,7]]},"395":{"position":[[141,8]]},"437":{"position":[[0,6]]},"444":{"position":[[0,7]]}},"keywords":{}}],["renam",{"_index":2206,"title":{},"content":{"414":{"position":[[0,7]]}},"keywords":{}}],["replac",{"_index":1009,"title":{},"content":{"160":{"position":[[556,7]]},"264":{"position":[[353,9]]},"277":{"position":[[447,7],[527,8]]},"370":{"position":[[129,12]]},"385":{"position":[[123,8]]},"391":{"position":[[0,8]]}},"keywords":{}}],["repli",{"_index":1580,"title":{},"content":{"232":{"position":[[153,7]]}},"keywords":{}}],["report",{"_index":1012,"title":{},"content":{"160":{"position":[[735,9]]},"315":{"position":[[118,9]]}},"keywords":{}}],["reportbatchitemfailur",{"_index":1866,"title":{},"content":{"315":{"position":[[10,23]]}},"keywords":{}}],["repositori",{"_index":877,"title":{},"content":{"152":{"position":[[99,11]]}},"keywords":{}}],["repres",{"_index":1785,"title":{},"content":{"282":{"position":[[253,10]]}},"keywords":{}}],["represent",{"_index":1616,"title":{},"content":{"239":{"position":[[377,15]]}},"keywords":{}}],["request",{"_index":77,"title":{"194":{"position":[[0,10]]},"281":{"position":[[0,7]]}},"content":{"2":{"position":[[595,9],[757,9],[887,9],[1019,9],[1142,7],[1235,9]]},"5":{"position":[[1837,7]]},"103":{"position":[[742,9],[810,8]]},"104":{"position":[[681,9],[749,8]]},"152":{"position":[[155,9]]},"153":{"position":[[412,7],[893,9],[1156,9]]},"161":{"position":[[283,7]]},"163":{"position":[[187,8],[298,7],[746,7]]},"170":{"position":[[557,9]]},"177":{"position":[[317,8]]},"178":{"position":[[1161,8],[1237,7],[1326,7]]},"189":{"position":[[1119,9],[1457,9]]},"197":{"position":[[566,7],[642,8]]},"202":{"position":[[562,7],[638,8]]},"228":{"position":[[975,9]]},"232":{"position":[[193,9],[1084,7],[1183,7],[1310,8]]},"248":{"position":[[394,7]]},"263":{"position":[[407,7]]},"265":{"position":[[328,7]]},"278":{"position":[[542,9]]},"280":{"position":[[237,7]]},"281":{"position":[[566,8],[760,8],[898,8],[1023,8],[1203,8]]},"286":{"position":[[293,7],[369,8]]},"291":{"position":[[595,8]]},"298":{"position":[[560,7],[1115,8]]},"303":{"position":[[545,7],[621,8]]},"308":{"position":[[594,7],[670,8]]},"318":{"position":[[405,7],[481,8]]},"324":{"position":[[1253,7]]},"327":{"position":[[525,7],[653,8],[1197,11]]},"328":{"position":[[1009,9],[1100,7]]},"340":{"position":[[606,8]]},"369":{"position":[[502,9],[741,9]]},"388":{"position":[[53,7]]},"399":{"position":[[157,7]]},"434":{"position":[[106,9],[171,8]]},"472":{"position":[[408,9],[453,7],[506,9],[545,7],[628,9]]},"473":{"position":[[530,9],[600,9],[671,9]]},"474":{"position":[[226,7],[1211,9],[1276,8],[1415,8]]},"475":{"position":[[480,9],[541,9],[604,9],[770,8],[878,10]]},"478":{"position":[[424,7],[600,7]]}},"keywords":{}}],["request.context",{"_index":1452,"title":{},"content":{"197":{"position":[[1048,16]]},"202":{"position":[[1043,16]]},"286":{"position":[[776,16]]},"298":{"position":[[1523,16]]},"303":{"position":[[1020,16]]},"308":{"position":[[1070,16]]},"318":{"position":[[881,16]]},"327":{"position":[[1053,16]]},"359":{"position":[[262,17]]}},"keywords":{}}],["request.context.config",{"_index":782,"title":{},"content":{"104":{"position":[[699,23]]}},"keywords":{}}],["request.context.defaults.glob",{"_index":1986,"title":{},"content":{"328":{"position":[[417,31]]}},"keywords":{}}],["request.context.secret",{"_index":770,"title":{},"content":{"103":{"position":[[760,23]]}},"keywords":{}}],["request.error",{"_index":1016,"title":{},"content":{"160":{"position":[[901,13]]}},"keywords":{}}],["request.error.caus",{"_index":2074,"title":{},"content":{"359":{"position":[[985,20]]},"429":{"position":[[62,19]]}},"keywords":{}}],["request.error.detail",{"_index":2221,"title":{},"content":{"429":{"position":[[37,21]]}},"keywords":{}}],["request.error.response.import",{"_index":2075,"title":{},"content":{"359":{"position":[[1044,32]]}},"keywords":{}}],["request.ev",{"_index":2061,"title":{},"content":{"359":{"position":[[111,15]]}},"keywords":{}}],["request.event.bodi",{"_index":2237,"title":{},"content":{"450":{"position":[[144,18]]}},"keywords":{}}],["request.event.rawbodi",{"_index":2236,"title":{},"content":{"450":{"position":[[120,21]]}},"keywords":{}}],["request.event.sourc",{"_index":2168,"title":{},"content":{"395":{"position":[[277,21]]}},"keywords":{}}],["request.intern",{"_index":78,"title":{},"content":{"2":{"position":[[613,16]]}},"keywords":{}}],["request.internal.cachekey",{"_index":2143,"title":{},"content":{"369":{"position":[[667,25]]}},"keywords":{}}],["request.respons",{"_index":914,"title":{},"content":{"153":{"position":[[1249,16]]},"160":{"position":[[789,16],[808,16],[961,16]]},"189":{"position":[[1550,16]]},"278":{"position":[[632,17]]},"359":{"position":[[523,18]]},"369":{"position":[[809,17]]},"472":{"position":[[560,16],[649,17]]}},"keywords":{}}],["request.response.add",{"_index":1014,"title":{},"content":{"160":{"position":[[850,20]]}},"keywords":{}}],["request.support",{"_index":1288,"title":{},"content":{"175":{"position":[[189,18]]}},"keywords":{}}],["request/respons",{"_index":1957,"title":{},"content":{"324":{"position":[[1307,16]]}},"keywords":{}}],["requestend",{"_index":525,"title":{},"content":{"21":{"position":[[728,10],[867,10]]},"22":{"position":[[588,10],[727,10]]}},"keywords":{}}],["requestid",{"_index":1479,"title":{},"content":{"208":{"position":[[244,12]]}},"keywords":{}}],["requestrout",{"_index":1822,"title":{},"content":{"291":{"position":[[795,12]]}},"keywords":{}}],["requestshttp",{"_index":1771,"title":{},"content":{"281":{"position":[[262,12]]}},"keywords":{}}],["requeststart",{"_index":515,"title":{},"content":{"21":{"position":[[457,12],[789,13]]},"22":{"position":[[362,12],[649,13]]}},"keywords":{}}],["requesttoken.lambda",{"_index":1823,"title":{},"content":{"291":{"position":[[812,19]]}},"keywords":{}}],["requir",{"_index":208,"title":{},"content":{"5":{"position":[[1603,9],[1653,8]]},"12":{"position":[[249,7]]},"146":{"position":[[502,8]]},"156":{"position":[[68,8]]},"166":{"position":[[773,8]]},"173":{"position":[[529,11]]},"174":{"position":[[2549,13]]},"177":{"position":[[423,11]]},"181":{"position":[[345,11]]},"197":{"position":[[518,11],[1082,8]]},"202":{"position":[[514,11],[1077,8]]},"286":{"position":[[245,11],[810,8]]},"291":{"position":[[18,11],[835,8]]},"298":{"position":[[512,11],[1557,8]]},"303":{"position":[[497,11],[1054,8]]},"308":{"position":[[546,11],[1104,8]]},"312":{"position":[[110,8]]},"318":{"position":[[357,11],[915,8]]},"327":{"position":[[477,11],[1087,8],[1380,9]]},"340":{"position":[[711,8]]},"347":{"position":[[40,11],[92,11],[211,11],[315,11],[404,8]]},"351":{"position":[[36,11],[90,11],[180,11]]},"360":{"position":[[154,11]]},"361":{"position":[[181,11]]},"362":{"position":[[257,9],[997,9],[1690,9],[1748,9]]},"474":{"position":[[452,7]]},"478":{"position":[[1117,8]]}},"keywords":{}}],["require('@middy/cloudwatch",{"_index":1475,"title":{},"content":{"208":{"position":[[63,26]]}},"keywords":{}}],["require('@middy/cor",{"_index":149,"title":{},"content":{"5":{"position":[[219,22]]},"208":{"position":[[14,22]]},"333":{"position":[[14,22]]}},"keywords":{}}],["require('@middy/warmup",{"_index":1992,"title":{},"content":{"333":{"position":[[52,24]]}},"keywords":{}}],["require('crypto",{"_index":2135,"title":{},"content":{"369":{"position":[[112,17]]}},"keywords":{}}],["required.if",{"_index":2071,"title":{},"content":{"359":{"position":[[847,11]]}},"keywords":{}}],["requiredthi",{"_index":2176,"title":{},"content":{"398":{"position":[[130,12]]}},"keywords":{}}],["rerout",{"_index":1933,"title":{},"content":{"324":{"position":[[313,8]]}},"keywords":{}}],["res.eventstream",{"_index":1429,"title":{},"content":{"194":{"position":[[338,16]]}},"keywords":{}}],["res.text",{"_index":2287,"title":{},"content":{"474":{"position":[[1059,10]]}},"keywords":{}}],["resolut",{"_index":1348,"title":{},"content":{"182":{"position":[[1115,10]]}},"keywords":{}}],["resolv",{"_index":45,"title":{},"content":{"2":{"position":[[137,8]]},"13":{"position":[[36,7],[171,8]]},"148":{"position":[[300,9],[496,9]]},"474":{"position":[[306,8]]}},"keywords":{}}],["resourc",{"_index":1807,"title":{},"content":{"286":{"position":[[868,8]]}},"keywords":{}}],["respect",{"_index":1390,"title":{},"content":{"188":{"position":[[82,10]]}},"keywords":{}}],["respond",{"_index":805,"title":{"136":{"position":[[34,11]]}},"content":{"367":{"position":[[362,8]]},"388":{"position":[[28,7]]}},"keywords":{}}],["respons",{"_index":176,"title":{"191":{"position":[[10,8]]},"257":{"position":[[13,8]]},"261":{"position":[[5,8]]},"282":{"position":[[0,8]]},"289":{"position":[[10,8]]},"338":{"position":[[3,8]]},"380":{"position":[[13,9]]},"381":{"position":[[5,8]]},"388":{"position":[[10,9]]},"413":{"position":[[13,9]]},"414":{"position":[[5,8]]},"422":{"position":[[10,9]]},"432":{"position":[[3,9]]},"452":{"position":[[13,9]]},"453":{"position":[[5,8]]},"460":{"position":[[10,9]]},"469":{"position":[[3,9]]}},"content":{"5":{"position":[[888,8],[2051,9]]},"13":{"position":[[504,8],[599,8]]},"15":{"position":[[487,8],[555,8],[711,8],[806,8]]},"31":{"position":[[144,9]]},"34":{"position":[[791,9],[859,8]]},"37":{"position":[[842,9],[910,8]]},"43":{"position":[[791,9],[859,8]]},"91":{"position":[[791,9],[859,8]]},"128":{"position":[[89,9]]},"146":{"position":[[803,9],[871,8]]},"153":{"position":[[87,8],[154,8],[311,8],[1199,8]]},"160":{"position":[[333,8],[441,9],[568,8],[638,8],[780,8],[841,8]]},"161":{"position":[[641,8]]},"163":{"position":[[122,8],[314,9],[782,8]]},"168":{"position":[[437,8]]},"175":{"position":[[77,9]]},"189":{"position":[[116,8],[1500,8]]},"197":{"position":[[799,10],[902,9]]},"198":{"position":[[126,8],[227,8]]},"202":{"position":[[794,10],[897,9]]},"203":{"position":[[124,8],[225,8]]},"212":{"position":[[370,9]]},"232":{"position":[[231,8],[1653,9]]},"233":{"position":[[203,9]]},"244":{"position":[[271,9]]},"258":{"position":[[95,8]]},"259":{"position":[[109,9]]},"260":{"position":[[85,9],[148,8],[322,8],[466,9]]},"262":{"position":[[87,8]]},"264":{"position":[[138,8],[254,8],[334,8],[455,9]]},"266":{"position":[[80,8],[679,9]]},"270":{"position":[[195,8]]},"274":{"position":[[260,8]]},"278":{"position":[[144,8],[245,8],[489,8]]},"281":{"position":[[1118,9]]},"282":{"position":[[60,8],[84,8],[184,8],[348,10],[407,9],[424,8],[490,8],[516,8],[603,9],[622,8]]},"283":{"position":[[208,9]]},"286":{"position":[[527,10],[630,9]]},"287":{"position":[[127,8],[228,8]]},"290":{"position":[[92,8]]},"291":{"position":[[694,8]]},"293":{"position":[[103,9]]},"294":{"position":[[103,9]]},"298":{"position":[[1278,10],[1381,9]]},"299":{"position":[[398,9]]},"303":{"position":[[771,10],[874,9],[1167,8]]},"304":{"position":[[140,8],[241,8]]},"308":{"position":[[821,10],[924,9]]},"309":{"position":[[141,8],[242,8]]},"318":{"position":[[632,10],[735,9]]},"319":{"position":[[114,8],[215,8]]},"324":{"position":[[771,8],[823,8],[1261,9]]},"327":{"position":[[804,10],[907,9]]},"337":{"position":[[144,9]]},"339":{"position":[[85,8]]},"340":{"position":[[879,8]]},"342":{"position":[[66,9]]},"343":{"position":[[66,9]]},"352":{"position":[[123,9]]},"359":{"position":[[911,9],[1019,8]]},"362":{"position":[[725,8],[1172,9],[1225,9],[1320,8]]},"367":{"position":[[25,9],[84,8],[311,8]]},"369":{"position":[[589,8],[636,10],[656,8]]},"375":{"position":[[103,8]]},"382":{"position":[[47,9]]},"385":{"position":[[22,8]]},"398":{"position":[[373,9],[411,8],[466,8]]},"399":{"position":[[177,8]]},"405":{"position":[[56,8]]},"407":{"position":[[24,8]]},"408":{"position":[[22,8]]},"414":{"position":[[113,8]]},"416":{"position":[[24,8]]},"426":{"position":[[114,8]]},"432":{"position":[[11,9]]},"472":{"position":[[532,8],[579,8]]},"475":{"position":[[893,8]]}},"keywords":{}}],["response.secret",{"_index":1799,"title":{},"content":{"283":{"position":[[243,16]]}},"keywords":{}}],["response@seedrs/middyj",{"_index":1945,"title":{},"content":{"324":{"position":[[867,23]]}},"keywords":{}}],["responsecontenttyp",{"_index":1854,"title":{},"content":{"303":{"position":[[1182,19]]}},"keywords":{}}],["responsehttp",{"_index":1784,"title":{},"content":{"282":{"position":[[134,12]]}},"keywords":{}}],["responsejsonbodypars",{"_index":2038,"title":{},"content":{"354":{"position":[[915,22]]}},"keywords":{}}],["responseschema",{"_index":671,"title":{},"content":{"34":{"position":[[1285,14],[2237,14]]},"43":{"position":[[1285,14],[2248,14]]},"91":{"position":[[1285,14],[2262,14]]},"102":{"position":[[383,14],[642,14]]},"146":{"position":[[1297,14],[2249,14]]},"359":{"position":[[829,14]]},"362":{"position":[[946,14],[1131,14]]},"429":{"position":[[143,15]]}},"keywords":{}}],["responseschema.json",{"_index":672,"title":{},"content":{"34":{"position":[[1305,23]]},"43":{"position":[[1305,23]]},"91":{"position":[[1305,23]]},"102":{"position":[[403,23]]},"146":{"position":[[1317,23]]}},"keywords":{}}],["responsesjwt",{"_index":1949,"title":{},"content":{"324":{"position":[[1086,12]]}},"keywords":{}}],["responsewarmup",{"_index":1766,"title":{},"content":{"280":{"position":[[249,15]]}},"keywords":{}}],["rest",{"_index":187,"title":{"41":{"position":[[12,6]]}},"content":{"5":{"position":[[1157,4]]},"42":{"position":[[53,4]]}},"keywords":{}}],["result",{"_index":177,"title":{},"content":{"5":{"position":[[901,7]]},"177":{"position":[[609,6]]},"178":{"position":[[947,6]]},"183":{"position":[[152,6],[635,6]]},"281":{"position":[[944,6]]}},"keywords":{}}],["retri",{"_index":1364,"title":{},"content":{"183":{"position":[[745,6]]}},"keywords":{}}],["retriev",{"_index":1923,"title":{},"content":{"323":{"position":[[457,8]]}},"keywords":{}}],["retrydelayoptions.bas",{"_index":1978,"title":{},"content":{"327":{"position":[[1330,22]]}},"keywords":{}}],["return",{"_index":61,"title":{"153":{"position":[[6,6]]},"189":{"position":[[21,8]]}},"content":{"2":{"position":[[340,6],[473,6]]},"5":{"position":[[961,6],[2036,7]]},"21":{"position":[[271,6],[764,6],[2850,9]]},"22":{"position":[[624,6]]},"34":{"position":[[1417,6]]},"37":{"position":[[1542,6]]},"43":{"position":[[1417,6]]},"91":{"position":[[1417,6]]},"146":{"position":[[1429,6]]},"151":{"position":[[913,6]]},"153":{"position":[[6,6],[78,6],[147,6],[294,7],[549,7],[1029,7],[1084,6],[1268,6]]},"156":{"position":[[309,6]]},"160":{"position":[[650,8],[954,6]]},"161":{"position":[[653,9]]},"168":{"position":[[428,8],[503,6]]},"183":{"position":[[135,7],[619,6]]},"186":{"position":[[425,6],[610,6]]},"189":{"position":[[26,6],[107,6],[289,10],[1280,9],[1330,7],[1385,6],[1569,6]]},"192":{"position":[[180,6]]},"193":{"position":[[180,6]]},"198":{"position":[[220,6]]},"203":{"position":[[218,6]]},"212":{"position":[[160,6]]},"220":{"position":[[524,6]]},"221":{"position":[[607,6]]},"224":{"position":[[54,6]]},"229":{"position":[[731,6]]},"232":{"position":[[555,8],[811,8]]},"233":{"position":[[115,6]]},"236":{"position":[[257,6]]},"239":{"position":[[355,7]]},"240":{"position":[[184,6]]},"243":{"position":[[336,8]]},"248":{"position":[[206,6]]},"252":{"position":[[216,6]]},"256":{"position":[[142,6]]},"260":{"position":[[315,6]]},"264":{"position":[[166,6],[218,9],[313,9]]},"266":{"position":[[175,6]]},"270":{"position":[[151,6]]},"274":{"position":[[216,6]]},"278":{"position":[[238,6],[482,6]]},"287":{"position":[[221,6]]},"293":{"position":[[248,6]]},"294":{"position":[[215,6]]},"299":{"position":[[131,6]]},"304":{"position":[[234,6]]},"309":{"position":[[235,6]]},"314":{"position":[[244,6],[261,6]]},"319":{"position":[[208,6]]},"324":{"position":[[504,9],[987,6]]},"328":{"position":[[108,6],[603,6]]},"332":{"position":[[73,7]]},"337":{"position":[[274,6]]},"342":{"position":[[130,6]]},"343":{"position":[[130,6]]},"348":{"position":[[244,6],[400,6]]},"352":{"position":[[298,6],[437,6]]},"362":{"position":[[211,6],[927,6],[1644,6]]},"363":{"position":[[902,6]]},"364":{"position":[[504,6]]},"365":{"position":[[463,6]]},"367":{"position":[[77,6],[420,8]]},"369":{"position":[[649,6],[829,6]]},"395":{"position":[[384,6]]},"398":{"position":[[366,6],[840,6]]},"399":{"position":[[217,6]]},"408":{"position":[[10,7]]},"472":{"position":[[173,6],[682,6],[728,6],[1110,6]]},"474":{"position":[[1099,6],[1465,6]]},"475":{"position":[[631,6]]},"476":{"position":[[412,7],[712,6]]},"478":{"position":[[666,6]]}},"keywords":{}}],["reus",{"_index":1,"title":{"0":{"position":[[11,5]]}},"content":{"0":{"position":[[11,5],[157,5],[227,7]]},"164":{"position":[[109,5]]}},"keywords":{}}],["reusabl",{"_index":128,"title":{},"content":{"4":{"position":[[479,8]]}},"keywords":{}}],["revers",{"_index":2175,"title":{},"content":{"398":{"position":[[31,8]]},"408":{"position":[[123,7]]}},"keywords":{}}],["review",{"_index":978,"title":{},"content":{"159":{"position":[[345,6],[369,6],[459,6]]},"398":{"position":[[285,7]]}},"keywords":{}}],["reviv",{"_index":1624,"title":{},"content":{"247":{"position":[[0,7],[33,7]]},"336":{"position":[[0,7],[42,7]]}},"keywords":{}}],["rewrit",{"_index":1935,"title":{},"content":{"324":{"position":[[349,7]]},"416":{"position":[[71,7]]},"426":{"position":[[9,7]]}},"keywords":{}}],["rfc",{"_index":1194,"title":{},"content":{"171":{"position":[[479,4]]}},"keywords":{}}],["right",{"_index":573,"title":{},"content":{"21":{"position":[[1971,6]]},"161":{"position":[[624,5]]},"219":{"position":[[558,5]]}},"keywords":{}}],["role",{"_index":769,"title":{},"content":{"103":{"position":[[708,10]]},"283":{"position":[[522,5]]},"286":{"position":[[761,4]]},"324":{"position":[[1393,5]]},"327":{"position":[[296,4],[1038,4]]},"386":{"position":[[69,6]]},"393":{"position":[[31,4]]}},"keywords":{}}],["rolearn",{"_index":768,"title":{},"content":{"103":{"position":[[699,8]]},"319":{"position":[[273,8]]}},"keywords":{}}],["rolesessionnam",{"_index":1878,"title":{},"content":{"319":{"position":[[289,16]]}},"keywords":{}}],["rollup",{"_index":405,"title":{"13":{"position":[[0,7]]}},"content":{"13":{"position":[[9,6]]}},"keywords":{}}],["rollup.config.mj",{"_index":408,"title":{},"content":{"13":{"position":[[103,18]]}},"keywords":{}}],["rollup/plugin",{"_index":406,"title":{},"content":{"13":{"position":[[16,14],[44,14],[150,15],[201,15]]}},"keywords":{}}],["room",{"_index":2315,"title":{},"content":{"478":{"position":[[959,4]]}},"keywords":{}}],["rotat",{"_index":851,"title":{},"content":{"151":{"position":[[379,8]]},"298":{"position":[[996,8]]}},"keywords":{}}],["round",{"_index":1537,"title":{},"content":{"224":{"position":[[163,5]]},"395":{"position":[[28,5]]}},"keywords":{}}],["rout",{"_index":636,"title":{},"content":{"31":{"position":[[411,6]]},"37":{"position":[[1349,6]]},"322":{"position":[[1362,6]]},"347":{"position":[[0,6],[61,5]]},"348":{"position":[[451,6]]},"351":{"position":[[0,6],[57,5],[116,5]]},"415":{"position":[[15,7]]},"433":{"position":[[15,7]]}},"keywords":{}}],["routekey",{"_index":637,"title":{},"content":{"31":{"position":[[424,9],[475,9],[532,9]]},"351":{"position":[[72,8]]},"352":{"position":[[551,9],[602,9]]}},"keywords":{}}],["router",{"_index":629,"title":{"345":{"position":[[5,6]]},"349":{"position":[[3,6]]},"415":{"position":[[5,7]]},"433":{"position":[[3,7]]},"454":{"position":[[5,7]]},"470":{"position":[[3,7]]}},"content":{"31":{"position":[[193,7]]},"37":{"position":[[75,7]]},"322":{"position":[[1354,7]]},"346":{"position":[[87,6]]},"347":{"position":[[518,6],[700,6]]},"348":{"position":[[75,7]]},"350":{"position":[[73,6]]},"351":{"position":[[286,6],[468,6]]},"352":{"position":[[71,7]]}},"keywords":{}}],["routers!bett",{"_index":2172,"title":{},"content":{"397":{"position":[[46,14]]}},"keywords":{}}],["routes[].path",{"_index":2016,"title":{},"content":{"347":{"position":[[423,13]]}},"keywords":{}}],["rule",{"_index":1937,"title":{},"content":{"324":{"position":[[403,5]]}},"keywords":{}}],["run",{"_index":510,"title":{},"content":{"21":{"position":[[382,3],[2180,3]]},"167":{"position":[[1420,7]]},"175":{"position":[[378,7]]},"211":{"position":[[268,7]]},"212":{"position":[[248,4]]},"232":{"position":[[1613,4]]},"233":{"position":[[163,4]]},"244":{"position":[[231,4]]},"264":{"position":[[99,4]]},"270":{"position":[[261,4]]},"274":{"position":[[354,4]]},"299":{"position":[[293,7]]},"347":{"position":[[737,3]]},"351":{"position":[[505,3]]},"363":{"position":[[0,3],[29,7]]}},"keywords":{}}],["runonbefor",{"_index":1489,"title":{},"content":{"211":{"position":[[214,11]]}},"keywords":{}}],["runtim",{"_index":1081,"title":{},"content":{"166":{"position":[[285,7],[369,8]]},"356":{"position":[[123,7]]}},"keywords":{}}],["s3",{"_index":424,"title":{"111":{"position":[[0,2]]},"117":{"position":[[0,2]]},"126":{"position":[[0,2]]},"289":{"position":[[0,2]]},"301":{"position":[[0,2]]},"387":{"position":[[0,2]]},"388":{"position":[[0,2]]},"421":{"position":[[0,2]]},"422":{"position":[[0,2]]},"460":{"position":[[0,2]]}},"content":{"13":{"position":[[574,4]]},"15":{"position":[[781,4]]},"104":{"position":[[456,3],[857,3]]},"112":{"position":[[29,2]]},"113":{"position":[[164,2]]},"118":{"position":[[29,2]]},"127":{"position":[[13,2],[29,2],[71,2]]},"251":{"position":[[992,2]]},"283":{"position":[[233,2]]},"290":{"position":[[140,2]]},"291":{"position":[[49,2],[871,2]]},"295":{"position":[[40,2]]},"302":{"position":[[124,2]]},"303":{"position":[[735,4]]},"304":{"position":[[39,2],[266,4]]},"305":{"position":[[40,2]]},"324":{"position":[[424,2]]},"388":{"position":[[39,2]]}},"keywords":{}}],["s3.awsclientopt",{"_index":1817,"title":{},"content":{"291":{"position":[[249,19]]}},"keywords":{}}],["s3.s3",{"_index":1798,"title":{},"content":{"283":{"position":[[195,5]]}},"keywords":{}}],["s3.writegetobjectrespons",{"_index":1821,"title":{},"content":{"291":{"position":[[758,26]]}},"keywords":{}}],["s3:getobjectif",{"_index":1852,"title":{},"content":{"303":{"position":[[1090,14]]}},"keywords":{}}],["s3client",{"_index":1816,"title":{},"content":{"291":{"position":[[133,10],[144,8],[309,8]]},"303":{"position":[[28,10],[39,8],[220,8]]}},"keywords":{}}],["s3middlewar",{"_index":775,"title":{},"content":{"104":{"position":[[132,12],[428,14]]}},"keywords":{}}],["s3objectrespons",{"_index":1825,"title":{},"content":{"293":{"position":[[63,16],[314,18]]},"294":{"position":[[63,16],[269,18]]}},"keywords":{}}],["s3objectresponsemiddlewar",{"_index":794,"title":{},"content":{"128":{"position":[[39,26]]}},"keywords":{}}],["safe",{"_index":1110,"title":{},"content":{"167":{"position":[[256,6]]},"183":{"position":[[737,4]]},"224":{"position":[[158,4]]},"406":{"position":[[53,4]]}},"keywords":{}}],["same",{"_index":88,"title":{},"content":{"2":{"position":[[819,4]]},"160":{"position":[[236,4]]},"164":{"position":[[279,4]]},"178":{"position":[[1474,4]]},"183":{"position":[[74,4],[147,4],[180,4],[314,4],[569,4],[630,4],[687,4]]}},"keywords":{}}],["sampl",{"_index":900,"title":{"174":{"position":[[0,6]]},"178":{"position":[[0,6]]},"182":{"position":[[0,6]]},"186":{"position":[[0,6]]},"198":{"position":[[0,6]]},"203":{"position":[[0,6]]},"208":{"position":[[0,6]]},"212":{"position":[[0,6]]},"216":{"position":[[0,6]]},"220":{"position":[[0,6]]},"225":{"position":[[0,6]]},"229":{"position":[[0,6]]},"233":{"position":[[0,6]]},"236":{"position":[[0,6]]},"240":{"position":[[0,6]]},"244":{"position":[[0,6]]},"248":{"position":[[0,6]]},"252":{"position":[[0,6]]},"256":{"position":[[0,6]]},"260":{"position":[[0,6]]},"266":{"position":[[0,6]]},"270":{"position":[[0,6]]},"274":{"position":[[0,6]]},"278":{"position":[[0,6]]},"287":{"position":[[0,6]]},"292":{"position":[[0,6]]},"299":{"position":[[0,6]]},"304":{"position":[[0,6]]},"309":{"position":[[0,6]]},"314":{"position":[[0,6]]},"319":{"position":[[0,6]]},"328":{"position":[[0,6]]},"333":{"position":[[0,6]]},"337":{"position":[[0,6]]},"341":{"position":[[0,6]]},"348":{"position":[[0,6]]},"352":{"position":[[0,6]]},"362":{"position":[[0,6]]}},"content":{"153":{"position":[[616,6],[1343,6]]},"157":{"position":[[56,7],[101,7],[146,7]]},"171":{"position":[[248,8]]},"173":{"position":[[406,6]]},"189":{"position":[[1644,6]]},"270":{"position":[[285,6]]},"274":{"position":[[378,6]]}},"keywords":{}}],["save",{"_index":920,"title":{},"content":{"155":{"position":[[61,4],[229,4]]},"172":{"position":[[26,4]]},"176":{"position":[[26,4]]},"180":{"position":[[26,4]]},"184":{"position":[[26,4]]},"196":{"position":[[70,4],[106,4]]},"201":{"position":[[70,4],[105,4]]},"206":{"position":[[70,4]]},"210":{"position":[[70,4]]},"214":{"position":[[70,4]]},"218":{"position":[[70,4]]},"223":{"position":[[70,4]]},"227":{"position":[[70,4]]},"231":{"position":[[70,4]]},"235":{"position":[[70,4]]},"238":{"position":[[70,4]]},"242":{"position":[[70,4]]},"246":{"position":[[70,4]]},"250":{"position":[[70,4]]},"254":{"position":[[70,4]]},"258":{"position":[[70,4]]},"262":{"position":[[70,4]]},"268":{"position":[[70,4]]},"272":{"position":[[70,4]]},"276":{"position":[[70,4]]},"285":{"position":[[70,4],[107,4]]},"290":{"position":[[70,4],[115,4]]},"297":{"position":[[70,4],[112,4]]},"302":{"position":[[70,4],[99,4]]},"307":{"position":[[70,4],[114,4]]},"312":{"position":[[70,4],[148,4]]},"317":{"position":[[70,4],[100,4]]},"326":{"position":[[70,4],[100,4]]},"331":{"position":[[70,4]]},"335":{"position":[[58,4]]},"339":{"position":[[70,4],[108,4]]},"346":{"position":[[70,4]]},"350":{"position":[[58,4]]},"358":{"position":[[70,4],[106,4]]}},"keywords":{}}],["schedul",{"_index":1840,"title":{},"content":{"298":{"position":[[1005,10]]}},"keywords":{}}],["schema",{"_index":188,"title":{},"content":{"5":{"position":[[1185,6]]},"7":{"position":[[920,6],[952,6]]},"21":{"position":[[2207,6],[2302,6]]},"148":{"position":[[432,7]]},"359":{"position":[[1089,7],[1194,8]]},"360":{"position":[[15,6],[138,6],[171,6]]},"362":{"position":[[230,6],[1663,6],[1863,6]]},"394":{"position":[[46,6]]},"466":{"position":[[799,7]]}},"keywords":{}}],["schema.event.j",{"_index":2115,"title":{},"content":{"363":{"position":[[709,19]]}},"keywords":{}}],["schema.event.json",{"_index":2120,"title":{},"content":{"364":{"position":[[219,21]]},"365":{"position":[[288,21]]}},"keywords":{}}],["schema.html#json",{"_index":2099,"title":{},"content":{"362":{"position":[[1902,16]]}},"keywords":{}}],["schemas.w",{"_index":1782,"title":{},"content":{"281":{"position":[[1143,10]]}},"keywords":{}}],["scone",{"_index":1739,"title":{},"content":{"274":{"position":[[629,8]]}},"keywords":{}}],["scope",{"_index":1086,"title":{},"content":{"166":{"position":[[451,7]]}},"keywords":{}}],["scopenormalizehttprespons",{"_index":2193,"title":{},"content":{"399":{"position":[[120,26]]}},"keywords":{}}],["script",{"_index":2101,"title":{},"content":{"363":{"position":[[12,6]]}},"keywords":{}}],["sdk",{"_index":417,"title":{},"content":{"13":{"position":[[444,3]]},"15":{"position":[[651,3]]},"128":{"position":[[162,3]]},"170":{"position":[[460,3],[575,3]]},"175":{"position":[[304,3],[332,3]]},"178":{"position":[[1431,3]]},"197":{"position":[[492,3]]},"199":{"position":[[16,3]]},"202":{"position":[[488,3]]},"204":{"position":[[16,3]]},"288":{"position":[[16,3]]},"291":{"position":[[432,3],[531,3]]},"295":{"position":[[16,3]]},"298":{"position":[[486,3]]},"300":{"position":[[16,3]]},"303":{"position":[[471,3]]},"305":{"position":[[16,3]]},"308":{"position":[[520,3]]},"310":{"position":[[16,3]]},"318":{"position":[[331,3]]},"320":{"position":[[16,3]]},"327":{"position":[[451,3]]},"329":{"position":[[16,3]]},"340":{"position":[[542,3]]},"344":{"position":[[16,3]]},"459":{"position":[[19,3]]},"460":{"position":[[19,3]]},"461":{"position":[[19,3]]},"462":{"position":[[19,3]]},"464":{"position":[[19,3]]},"465":{"position":[[19,3]]},"469":{"position":[[19,3]]}},"keywords":{}}],["sdk/client",{"_index":418,"title":{},"content":{"13":{"position":[[454,10],[519,10],[563,10],[614,10],[675,10],[739,10],[776,10]]},"15":{"position":[[661,10],[726,10],[770,10],[821,10],[882,10],[946,10],[983,10]]},"178":{"position":[[154,10]]},"184":{"position":[[71,10]]},"194":{"position":[[68,10]]},"196":{"position":[[120,10]]},"197":{"position":[[147,10]]},"199":{"position":[[29,10]]},"201":{"position":[[119,10]]},"202":{"position":[[145,10]]},"204":{"position":[[29,10]]},"290":{"position":[[129,10]]},"291":{"position":[[238,10]]},"295":{"position":[[29,10]]},"297":{"position":[[126,10]]},"298":{"position":[[157,10]]},"300":{"position":[[29,10]]},"302":{"position":[[113,10]]},"303":{"position":[[133,10]]},"305":{"position":[[29,10]]},"307":{"position":[[128,10]]},"308":{"position":[[161,10]]},"310":{"position":[[29,10]]},"312":{"position":[[162,10]]},"317":{"position":[[114,10]]},"318":{"position":[[135,10]]},"320":{"position":[[29,10]]},"326":{"position":[[114,10]]},"327":{"position":[[136,10]]},"329":{"position":[[29,10]]},"339":{"position":[[122,10]]},"340":{"position":[[169,10]]},"344":{"position":[[29,10]]}},"keywords":{}}],["sdk/lib",{"_index":1366,"title":{},"content":{"184":{"position":[[96,7]]}},"keywords":{}}],["sdk/rd",{"_index":1803,"title":{},"content":{"285":{"position":[[121,7]]},"286":{"position":[[129,7]]},"288":{"position":[[29,7]]}},"keywords":{}}],["sdk/util",{"_index":1460,"title":{},"content":{"201":{"position":[[144,8]]}},"keywords":{}}],["se",{"_index":802,"title":{"129":{"position":[[0,3]]}},"content":{"130":{"position":[[29,3]]}},"keywords":{}}],["sec",{"_index":2045,"title":{},"content":{"355":{"position":[[124,3],[257,3]]}},"keywords":{}}],["secret",{"_index":749,"title":{"103":{"position":[[5,8]]},"123":{"position":[[0,7]]},"296":{"position":[[0,7]]},"389":{"position":[[0,7]]},"423":{"position":[[0,7]]},"461":{"position":[[0,7]]}},"content":{"124":{"position":[[22,7]]},"178":{"position":[[165,7]]},"197":{"position":[[337,7]]},"202":{"position":[[333,7]]},"283":{"position":[[297,7]]},"297":{"position":[[137,7]]},"298":{"position":[[168,7],[340,7],[727,7],[973,7],[1229,7],[1512,7]]},"299":{"position":[[354,7]]},"300":{"position":[[40,7]]},"303":{"position":[[316,7]]},"308":{"position":[[365,7]]},"323":{"position":[[545,7]]},"328":{"position":[[946,8]]},"340":{"position":[[387,7]]}},"keywords":{}}],["secretid.fetchrotationd",{"_index":1832,"title":{},"content":{"298":{"position":[[578,26]]}},"keywords":{}}],["secretsmanag",{"_index":426,"title":{},"content":{"13":{"position":[[625,16]]},"15":{"position":[[832,16]]},"103":{"position":[[529,15],[908,15]]},"151":{"position":[[255,15],[334,14]]},"299":{"position":[[39,14],[157,16]]}},"keywords":{}}],["secretsmanager:describesecret",{"_index":1844,"title":{},"content":{"298":{"position":[[1655,29]]}},"keywords":{}}],["secretsmanager:getsecretvalu",{"_index":1842,"title":{},"content":{"298":{"position":[[1593,30]]}},"keywords":{}}],["secretsmanagercli",{"_index":1299,"title":{},"content":{"178":{"position":[[120,20],[294,24]]},"298":{"position":[[28,22],[51,20],[241,20]]}},"keywords":{}}],["secretsmanagermiddlewar",{"_index":752,"title":{},"content":{"103":{"position":[[133,24],[489,26]]}},"keywords":{}}],["section",{"_index":20,"title":{},"content":{"1":{"position":[[14,7]]},"157":{"position":[[1057,8]]},"189":{"position":[[33,8],[732,8]]}},"keywords":{}}],["secur",{"_index":29,"title":{"253":{"position":[[5,8]]},"382":{"position":[[5,8]]},"416":{"position":[[5,8]]},"455":{"position":[[5,8]]}},"content":{"1":{"position":[[107,8]]},"34":{"position":[[935,8]]},"37":{"position":[[986,8]]},"43":{"position":[[935,8]]},"91":{"position":[[935,8]]},"146":{"position":[[947,8]]},"151":{"position":[[226,6],[324,6]]},"254":{"position":[[87,8]]},"256":{"position":[[77,8]]},"282":{"position":[[288,8],[328,8]]},"318":{"position":[[1052,8]]},"420":{"position":[[43,8]]},"423":{"position":[[43,8]]},"474":{"position":[[95,8]]}},"keywords":{}}],["securestr",{"_index":1966,"title":{},"content":{"327":{"position":[[555,12]]}},"keywords":{}}],["securestring.ssm",{"_index":849,"title":{},"content":{"151":{"position":[[281,16]]}},"keywords":{}}],["securityienoopen",{"_index":1665,"title":{},"content":{"255":{"position":[[233,16]]}},"keywords":{}}],["see",{"_index":15,"title":{},"content":{"0":{"position":[[223,3]]},"21":{"position":[[2792,3]]},"156":{"position":[[12,3]]},"161":{"position":[[688,3]]},"174":{"position":[[1165,4],[2267,3]]},"179":{"position":[[612,3]]},"188":{"position":[[601,3]]},"197":{"position":[[357,3]]},"202":{"position":[[353,3]]},"207":{"position":[[421,3]]},"298":{"position":[[360,3]]},"303":{"position":[[336,3]]},"308":{"position":[[385,3]]},"315":{"position":[[114,3]]},"318":{"position":[[1070,3]]},"327":{"position":[[320,3]]},"340":{"position":[[407,3]]},"354":{"position":[[337,3]]},"389":{"position":[[12,3]]},"392":{"position":[[12,3]]},"398":{"position":[[203,4]]},"450":{"position":[[204,3]]},"473":{"position":[[360,3],[741,3]]},"477":{"position":[[57,3]]},"478":{"position":[[1040,3]]}},"keywords":{}}],["seen",{"_index":1054,"title":{},"content":{"164":{"position":[[237,4]]}},"keywords":{}}],["segment",{"_index":1287,"title":{},"content":{"175":{"position":[[171,8]]},"177":{"position":[[329,7],[619,7]]},"178":{"position":[[573,7],[690,7],[817,8],[991,7],[1309,7]]},"188":{"position":[[339,7],[503,7]]},"189":{"position":[[444,7]]}},"keywords":{}}],["self",{"_index":738,"title":{"95":{"position":[[7,4]]}},"content":{"96":{"position":[[18,4]]}},"keywords":{}}],["send",{"_index":1404,"title":{},"content":{"189":{"position":[[456,4]]}},"keywords":{}}],["sensit",{"_index":1747,"title":{},"content":{"277":{"position":[[345,9]]}},"keywords":{}}],["sent",{"_index":1046,"title":{},"content":{"163":{"position":[[806,4]]},"178":{"position":[[1026,4]]},"182":{"position":[[934,4]]}},"keywords":{}}],["separ",{"_index":2073,"title":{},"content":{"359":{"position":[[948,11]]}},"keywords":{}}],["sequenc",{"_index":1010,"title":{},"content":{"160":{"position":[[624,9]]}},"keywords":{}}],["serial",{"_index":125,"title":{"261":{"position":[[14,10]]},"264":{"position":[[0,10]]},"381":{"position":[[14,11]]},"414":{"position":[[14,11]]},"453":{"position":[[14,11]]}},"content":{"4":{"position":[[442,14]]},"6":{"position":[[324,14]]},"34":{"position":[[868,11],[2024,12],[2071,11]]},"37":{"position":[[919,11],[2149,12],[2196,11]]},"43":{"position":[[868,11],[2024,12],[2071,11]]},"91":{"position":[[868,11],[2049,12],[2096,11]]},"146":{"position":[[880,11],[2036,12],[2083,11]]},"153":{"position":[[432,14]]},"262":{"position":[[96,10]]},"263":{"position":[[46,12],[61,12],[107,11],[213,11],[292,11]]},"264":{"position":[[16,10],[76,10]]},"265":{"position":[[60,10],[483,10]]},"266":{"position":[[89,11],[249,12],[295,11],[401,11],[480,11]]},"282":{"position":[[499,11]]},"324":{"position":[[780,11],[808,10]]}},"keywords":{}}],["serializer.sq",{"_index":1790,"title":{},"content":{"282":{"position":[[525,14]]}},"keywords":{}}],["serv",{"_index":1745,"title":{},"content":{"277":{"position":[[313,5]]},"473":{"position":[[62,5]]}},"keywords":{}}],["server",{"_index":828,"title":{"148":{"position":[[7,6]]}},"content":{"148":{"position":[[7,6],[218,6]]}},"keywords":{}}],["server/x",{"_index":1662,"title":{},"content":{"255":{"position":[[176,8]]}},"keywords":{}}],["serverless",{"_index":226,"title":{"149":{"position":[[0,10]]},"150":{"position":[[0,10]]}},"content":{"6":{"position":[[29,10],[1144,10]]},"149":{"position":[[0,10],[170,10]]},"150":{"position":[[0,10]]},"159":{"position":[[120,10]]},"170":{"position":[[118,10]]},"332":{"position":[[245,10]]},"395":{"position":[[303,11]]}},"keywords":{}}],["serverless/ev",{"_index":318,"title":{},"content":{"7":{"position":[[763,20]]}},"keywords":{}}],["serverlessairlin",{"_index":1221,"title":{},"content":{"174":{"position":[[151,19]]},"178":{"position":[[224,19]]},"182":{"position":[[157,20]]}},"keywords":{}}],["servic",{"_index":8,"title":{"151":{"position":[[24,7]]},"306":{"position":[[0,7]]},"424":{"position":[[0,7]]},"462":{"position":[[0,7]]}},"content":{"0":{"position":[[90,9]]},"151":{"position":[[24,7]]},"173":{"position":[[247,7]]},"175":{"position":[[44,7]]},"177":{"position":[[95,7]]},"178":{"position":[[892,7],[1375,7]]},"179":{"position":[[265,8]]},"181":{"position":[[95,7]]},"182":{"position":[[986,8]]},"283":{"position":[[340,7],[556,9]]}},"keywords":{}}],["service_undefined.defaultnamespac",{"_index":1322,"title":{},"content":{"181":{"position":[[168,34]]}},"keywords":{}}],["service_undefined.en",{"_index":1293,"title":{},"content":{"177":{"position":[[168,25]]}},"keywords":{}}],["service_undefined.sampleratevalu",{"_index":1206,"title":{},"content":{"173":{"position":[[320,33]]}},"keywords":{}}],["servicediscoveri",{"_index":429,"title":{},"content":{"13":{"position":[[686,18]]},"15":{"position":[[893,18]]},"307":{"position":[[139,16]]},"309":{"position":[[39,16],[267,18]]},"310":{"position":[[40,16]]}},"keywords":{}}],["servicediscovery.awsclientopt",{"_index":1857,"title":{},"content":{"308":{"position":[[172,33]]}},"keywords":{}}],["servicediscovery:discoverinst",{"_index":1858,"title":{},"content":{"308":{"position":[[1140,34]]}},"keywords":{}}],["servicediscoverycli",{"_index":1856,"title":{},"content":{"308":{"position":[[28,24],[53,22],[255,22]]}},"keywords":{}}],["servicenam",{"_index":1220,"title":{},"content":{"174":{"position":[[138,12]]},"177":{"position":[[73,11]]},"178":{"position":[[211,12]]},"181":{"position":[[73,11]]},"182":{"position":[[178,12]]},"309":{"position":[[334,12]]}},"keywords":{}}],["services.ssm",{"_index":1801,"title":{},"content":{"283":{"position":[[408,13]]}},"keywords":{}}],["set",{"_index":3,"title":{},"content":{"0":{"position":[[28,3]]},"2":{"position":[[79,3],[376,4]]},"21":{"position":[[2840,4]]},"151":{"position":[[985,3]]},"167":{"position":[[444,3],[910,7]]},"197":{"position":[[378,3],[683,7]]},"202":{"position":[[374,3],[679,7]]},"207":{"position":[[65,4]]},"211":{"position":[[26,4],[176,3],[247,4]]},"212":{"position":[[329,3]]},"228":{"position":[[833,3]]},"232":{"position":[[40,4],[203,3]]},"243":{"position":[[283,7]]},"255":{"position":[[250,4]]},"264":{"position":[[64,3]]},"280":{"position":[[133,4]]},"282":{"position":[[23,4],[108,4]]},"286":{"position":[[410,7]]},"291":{"position":[[636,7]]},"298":{"position":[[381,3],[1156,7]]},"303":{"position":[[357,3],[662,7],[1153,3]]},"308":{"position":[[406,3],[711,7]]},"318":{"position":[[522,7]]},"327":{"position":[[341,3],[694,7]]},"332":{"position":[[238,3]]},"340":{"position":[[428,3],[647,7],[812,3],[827,3],[927,3]]},"347":{"position":[[820,3],[839,3]]},"398":{"position":[[853,3]]},"399":{"position":[[37,3]]},"410":{"position":[[33,3]]},"438":{"position":[[27,3]]},"451":{"position":[[18,3]]},"476":{"position":[[236,3],[364,3]]}},"keywords":{}}],["setprototypeof/test",{"_index":341,"title":{},"content":{"7":{"position":[[1244,22]]}},"keywords":{}}],["settocontext",{"_index":1849,"title":{},"content":{"299":{"position":[[259,13]]},"304":{"position":[[325,13]]},"328":{"position":[[350,13]]},"474":{"position":[[736,13]]}},"keywords":{}}],["settoenv",{"_index":2212,"title":{},"content":{"420":{"position":[[11,8]]},"423":{"position":[[11,8]]},"427":{"position":[[11,8]]},"434":{"position":[[18,8]]}},"keywords":{}}],["setup",{"_index":282,"title":{},"content":{"7":{"position":[[97,6]]},"21":{"position":[[2021,5]]},"161":{"position":[[67,6]]}},"keywords":{}}],["setvalu",{"_index":2140,"title":{},"content":{"369":{"position":[[343,9]]}},"keywords":{}}],["sever",{"_index":1263,"title":{},"content":{"174":{"position":[[1193,7]]}},"keywords":{}}],["severless",{"_index":1901,"title":{},"content":{"322":{"position":[[901,9],[1031,9]]},"324":{"position":[[1641,9]]}},"keywords":{}}],["shake",{"_index":2250,"title":{},"content":{"466":{"position":[[401,7]]}},"keywords":{}}],["shield",{"_index":2146,"title":{"372":{"position":[[9,7]]}},"content":{},"keywords":{}}],["shift",{"_index":230,"title":{},"content":{"6":{"position":[[115,7]]}},"keywords":{}}],["ship",{"_index":290,"title":{},"content":{"7":{"position":[[223,7]]}},"keywords":{}}],["short",{"_index":2130,"title":{},"content":{"367":{"position":[[323,5]]},"398":{"position":[[393,5]]},"408":{"position":[[34,5]]}},"keywords":{}}],["shortcut",{"_index":2271,"title":{},"content":{"473":{"position":[[294,8]]}},"keywords":{}}],["shortli",{"_index":1109,"title":{},"content":{"167":{"position":[[197,7]]}},"keywords":{}}],["show",{"_index":603,"title":{},"content":{"21":{"position":[[2631,5]]},"322":{"position":[[1143,5]]}},"keywords":{}}],["shown",{"_index":1515,"title":{},"content":{"219":{"position":[[448,5]]}},"keywords":{}}],["side",{"_index":1362,"title":{},"content":{"183":{"position":[[516,4]]}},"keywords":{}}],["signal",{"_index":99,"title":{},"content":{"2":{"position":[[1318,6]]},"25":{"position":[[90,6]]},"28":{"position":[[89,9]]},"34":{"position":[[2319,6]]},"40":{"position":[[90,6]]},"43":{"position":[[2330,6]]},"46":{"position":[[159,9]]},"49":{"position":[[89,9]]},"52":{"position":[[89,9]]},"55":{"position":[[187,9]]},"58":{"position":[[89,9]]},"61":{"position":[[89,9]]},"64":{"position":[[187,9]]},"68":{"position":[[89,9]]},"70":{"position":[[90,6]]},"73":{"position":[[187,9]]},"77":{"position":[[89,9]]},"79":{"position":[[90,6]]},"82":{"position":[[187,9]]},"85":{"position":[[89,9]]},"88":{"position":[[89,9]]},"91":{"position":[[2344,6]]},"94":{"position":[[187,9]]},"97":{"position":[[187,9]]},"100":{"position":[[187,9]]},"102":{"position":[[695,6]]},"103":{"position":[[856,6]]},"104":{"position":[[795,6]]},"107":{"position":[[89,9]]},"110":{"position":[[187,9]]},"113":{"position":[[226,9]]},"116":{"position":[[217,9]]},"119":{"position":[[187,9]]},"122":{"position":[[187,9]]},"125":{"position":[[89,9]]},"128":{"position":[[359,9]]},"131":{"position":[[89,9]]},"134":{"position":[[187,9]]},"139":{"position":[[288,9]]},"142":{"position":[[89,9]]},"146":{"position":[[2331,6]]},"167":{"position":[[190,6],[1236,7]]},"351":{"position":[[220,9]]},"398":{"position":[[500,8]]},"476":{"position":[[158,9],[533,9]]}},"keywords":{}}],["signal.onabort",{"_index":2304,"title":{},"content":{"476":{"position":[[551,14]]}},"keywords":{}}],["signatur",{"_index":2295,"title":{},"content":{"475":{"position":[[322,10]]}},"keywords":{}}],["signer",{"_index":423,"title":{"284":{"position":[[4,6]]},"386":{"position":[[4,7]]},"420":{"position":[[4,7]]},"459":{"position":[[4,7]]}},"content":{"13":{"position":[[550,6]]},"15":{"position":[[757,6]]},"103":{"position":[[118,7]]},"283":{"position":[[101,7]]},"285":{"position":[[86,6],[129,6]]},"286":{"position":[[28,8],[37,6],[201,6],[487,8]]},"287":{"position":[[66,7]]},"288":{"position":[[37,6]]}},"keywords":{}}],["signer.awsclientopt",{"_index":1804,"title":{},"content":{"286":{"position":[[137,23]]}},"keywords":{}}],["significantli",{"_index":1639,"title":{},"content":{"251":{"position":[[578,13]]}},"keywords":{}}],["silent",{"_index":1201,"title":{},"content":{"173":{"position":[[182,7]]}},"keywords":{}}],["similar",{"_index":271,"title":{},"content":{"6":{"position":[[1041,7]]},"164":{"position":[[377,7]]},"182":{"position":[[486,7]]}},"keywords":{}}],["simpl",{"_index":102,"title":{},"content":{"4":{"position":[[16,6]]},"156":{"position":[[57,6]]},"277":{"position":[[324,6]]},"324":{"position":[[994,6]]},"359":{"position":[[1182,6]]},"473":{"position":[[399,6],[851,6]]}},"keywords":{}}],["simpli",{"_index":1936,"title":{},"content":{"324":{"position":[[386,6]]}},"keywords":{}}],["simplifi",{"_index":104,"title":{},"content":{"4":{"position":[[60,8]]},"164":{"position":[[95,8]]},"282":{"position":[[366,10]]}},"keywords":{}}],["singl",{"_index":945,"title":{},"content":{"157":{"position":[[370,6],[460,6]]},"174":{"position":[[1756,6]]},"179":{"position":[[52,6]]},"328":{"position":[[228,6],[807,6]]}},"keywords":{}}],["size",{"_index":1541,"title":{},"content":{"224":{"position":[[208,5]]}},"keywords":{}}],["skip",{"_index":1627,"title":{},"content":{"247":{"position":[[153,4]]},"251":{"position":[[338,4]]},"273":{"position":[[46,4]]}},"keywords":{}}],["slow",{"_index":593,"title":{},"content":{"21":{"position":[[2435,4]]}},"keywords":{}}],["small",{"_index":275,"title":{"7":{"position":[[0,5]]}},"content":{"7":{"position":[[0,5]]},"255":{"position":[[394,5]]},"354":{"position":[[330,6]]},"473":{"position":[[75,5]]}},"keywords":{}}],["smaller",{"_index":2241,"title":{},"content":{"466":{"position":[[59,7]]}},"keywords":{}}],["smarter",{"_index":2185,"title":{},"content":{"398":{"position":[[660,7]]}},"keywords":{}}],["sn",{"_index":788,"title":{"132":{"position":[[0,3]]}},"content":{"113":{"position":[[173,3]]},"116":{"position":[[174,3]]},"133":{"position":[[29,3]]}},"keywords":{}}],["snif",{"_index":1668,"title":{},"content":{"255":{"position":[[311,8]]}},"keywords":{}}],["softwar",{"_index":874,"title":{},"content":{"152":{"position":[[42,9]]}},"keywords":{}}],["solut",{"_index":279,"title":{},"content":{"7":{"position":[[50,9]]}},"keywords":{}}],["solv",{"_index":254,"title":{},"content":{"6":{"position":[[610,6]]}},"keywords":{}}],["someth",{"_index":32,"title":{},"content":{"1":{"position":[[136,10]]},"2":{"position":[[445,9]]},"21":{"position":[[1254,9]]},"362":{"position":[[587,10]]},"367":{"position":[[407,9]]},"434":{"position":[[38,9]]},"473":{"position":[[554,9],[624,9],[695,9]]}},"keywords":{}}],["somethingels",{"_index":2090,"title":{},"content":{"362":{"position":[[598,15]]}},"keywords":{}}],["sometim",{"_index":2267,"title":{},"content":{"473":{"position":[[19,9]]}},"keywords":{}}],["somewhat",{"_index":1643,"title":{},"content":{"251":{"position":[[681,8]]}},"keywords":{}}],["soon2021",{"_index":983,"title":{},"content":{"159":{"position":[[411,8]]}},"keywords":{}}],["sourc",{"_index":873,"title":{},"content":{"152":{"position":[[35,6]]},"159":{"position":[[189,6],[242,6]]},"332":{"position":[[222,6]]},"426":{"position":[[133,8]]}},"keywords":{}}],["sourcemap=extern",{"_index":402,"title":{},"content":{"12":{"position":[[327,18]]}},"keywords":{}}],["spark",{"_index":1913,"title":{},"content":{"322":{"position":[[1306,6]]}},"keywords":{}}],["special",{"_index":1004,"title":{},"content":{"160":{"position":[[192,7]]}},"keywords":{}}],["specif",{"_index":896,"title":{},"content":{"153":{"position":[[389,8]]},"174":{"position":[[2006,8]]},"394":{"position":[[67,14]]}},"keywords":{}}],["specifi",{"_index":1702,"title":{},"content":{"263":{"position":[[433,7]]},"265":{"position":[[421,9]]}},"keywords":{}}],["spirit",{"_index":872,"title":{},"content":{"152":{"position":[[20,6]]}},"keywords":{}}],["sponsor",{"_index":1060,"title":{"165":{"position":[[0,10]]}},"content":{"165":{"position":[[0,10],[136,7],[178,8]]}},"keywords":{}}],["sq",{"_index":789,"title":{"137":{"position":[[0,3]]},"311":{"position":[[0,3]]},"390":{"position":[[0,3]]},"391":{"position":[[0,3]]},"425":{"position":[[0,3]]},"426":{"position":[[0,3]]},"463":{"position":[[0,3]]}},"content":{"113":{"position":[[183,3]]},"138":{"position":[[29,3]]},"282":{"position":[[588,3]]},"312":{"position":[[173,3]]},"324":{"position":[[1569,3]]},"391":{"position":[[16,3]]},"426":{"position":[[123,3]]}},"keywords":{}}],["sqsbatch",{"_index":1860,"title":{},"content":{"314":{"position":[[39,8]]}},"keywords":{}}],["sqspartialbatchfailur",{"_index":812,"title":{},"content":{"139":{"position":[[103,22]]}},"keywords":{}}],["ssl",{"_index":861,"title":{},"content":{"151":{"position":[[710,4]]}},"keywords":{}}],["ssm",{"_index":432,"title":{"325":{"position":[[0,3]]},"392":{"position":[[0,4]]},"427":{"position":[[0,4]]},"464":{"position":[[0,4]]}},"content":{"13":{"position":[[750,5]]},"15":{"position":[[957,5]]},"103":{"position":[[616,4],[924,4]]},"104":{"position":[[626,4],[861,3]]},"151":{"position":[[271,3]]},"326":{"position":[[125,3]]},"327":{"position":[[767,5]]},"328":{"position":[[39,3],[159,5],[534,3],[654,5],[712,4],[738,5],[941,4]]},"329":{"position":[[40,3]]}},"keywords":{}}],["ssm.awsclientopt",{"_index":1964,"title":{},"content":{"327":{"position":[[147,20]]}},"keywords":{}}],["ssm:getparamet",{"_index":1968,"title":{},"content":{"327":{"position":[[1123,17]]}},"keywords":{}}],["ssm:getparametersbypath",{"_index":1970,"title":{},"content":{"327":{"position":[[1148,23]]}},"keywords":{}}],["ssmclient",{"_index":1963,"title":{},"content":{"327":{"position":[[28,11],[40,9],[208,9]]}},"keywords":{}}],["ssmmiddlewar",{"_index":754,"title":{},"content":{"103":{"position":[[195,13],[587,15]]},"104":{"position":[[218,13],[597,15]]}},"keywords":{}}],["st",{"_index":434,"title":{"316":{"position":[[0,3]]},"393":{"position":[[0,4]]},"428":{"position":[[0,4]]},"465":{"position":[[0,4]]}},"content":{"13":{"position":[[787,4]]},"15":{"position":[[994,4]]},"103":{"position":[[692,4],[929,3]]},"308":{"position":[[784,5]]},"317":{"position":[[125,3]]},"318":{"position":[[595,5]]},"319":{"position":[[39,3],[240,5]]},"320":{"position":[[40,3]]}},"keywords":{}}],["stabl",{"_index":1074,"title":{},"content":{"166":{"position":[[121,7],[422,6],[495,6]]}},"keywords":{}}],["stack",{"_index":844,"title":{"150":{"position":[[11,5]]}},"content":{"150":{"position":[[11,5]]},"179":{"position":[[301,7]]},"182":{"position":[[1022,7]]},"347":{"position":[[536,5],[574,6],[643,5],[718,6]]},"351":{"position":[[304,5],[342,6],[411,5],[486,6],[545,6]]},"367":{"position":[[177,5],[352,5]]},"398":{"position":[[19,5]]},"408":{"position":[[63,5]]}},"keywords":{}}],["stack.pathparamet",{"_index":2020,"title":{},"content":{"347":{"position":[[777,20]]}},"keywords":{}}],["stackreturn",{"_index":2129,"title":{},"content":{"367":{"position":[[299,11]]}},"keywords":{}}],["stacksupport",{"_index":2156,"title":{},"content":{"385":{"position":[[59,12]]}},"keywords":{}}],["stackthrow",{"_index":2127,"title":{},"content":{"367":{"position":[[121,10]]}},"keywords":{}}],["stacktrac",{"_index":1892,"title":{},"content":{"322":{"position":[[465,11]]}},"keywords":{}}],["stage",{"_index":2017,"title":{},"content":{"347":{"position":[[442,8]]}},"keywords":{}}],["start",{"_index":113,"title":{"154":{"position":[[8,7]]},"364":{"position":[[22,6]]},"365":{"position":[[22,5]]}},"content":{"4":{"position":[[245,7]]},"21":{"position":[[172,5],[398,5],[593,5],[2041,5]]},"22":{"position":[[194,5],[453,5]]},"34":{"position":[[1734,5]]},"37":{"position":[[1859,5]]},"43":{"position":[[1734,5]]},"91":{"position":[[1759,5]]},"146":{"position":[[1746,5]]},"151":{"position":[[527,8]]},"159":{"position":[[10,7]]},"164":{"position":[[176,7]]},"170":{"position":[[340,7],[712,7]]},"171":{"position":[[65,7]]},"174":{"position":[[1414,7]]},"175":{"position":[[34,5]]},"178":{"position":[[882,5]]},"179":{"position":[[546,5]]},"181":{"position":[[638,5]]},"197":{"position":[[636,5]]},"202":{"position":[[632,5]]},"286":{"position":[[363,5]]},"291":{"position":[[589,5]]},"298":{"position":[[1109,5]]},"303":{"position":[[615,5]]},"308":{"position":[[664,5]]},"318":{"position":[[475,5]]},"327":{"position":[[647,5]]},"340":{"position":[[600,5]]},"347":{"position":[[242,8]]},"359":{"position":[[1172,5]]},"474":{"position":[[890,5]]}},"keywords":{}}],["start('handl",{"_index":522,"title":{},"content":{"21":{"position":[[659,16]]},"22":{"position":[[519,16]]}},"keywords":{}}],["start('tot",{"_index":514,"title":{},"content":{"21":{"position":[[436,14],[549,14]]},"22":{"position":[[341,14]]}},"keywords":{}}],["state",{"_index":1218,"title":{},"content":{"173":{"position":[[790,5]]}},"keywords":{}}],["statement",{"_index":1205,"title":{},"content":{"173":{"position":[[296,11]]},"177":{"position":[[144,11]]},"181":{"position":[[144,11]]}},"keywords":{}}],["static",{"_index":1916,"title":{},"content":{"322":{"position":[[1413,6]]}},"keywords":{}}],["statu",{"_index":1084,"title":{},"content":{"166":{"position":[[401,6]]},"243":{"position":[[356,6]]}},"keywords":{}}],["statuscod",{"_index":181,"title":{},"content":{"5":{"position":[[970,11]]},"34":{"position":[[1426,11]]},"37":{"position":[[1551,11]]},"43":{"position":[[1426,11]]},"91":{"position":[[1426,11]]},"146":{"position":[[1438,11]]},"168":{"position":[[512,11]]},"186":{"position":[[662,11]]},"192":{"position":[[189,11]]},"198":{"position":[[139,11]]},"203":{"position":[[137,11]]},"220":{"position":[[533,11]]},"221":{"position":[[616,11]]},"229":{"position":[[740,11]]},"232":{"position":[[1754,11]]},"243":{"position":[[242,12]]},"244":{"position":[[312,11]]},"260":{"position":[[161,11]]},"266":{"position":[[184,11]]},"278":{"position":[[157,11]]},"287":{"position":[[140,11]]},"304":{"position":[[153,11]]},"309":{"position":[[154,11]]},"319":{"position":[[127,11]]},"348":{"position":[[253,11],[409,11]]},"362":{"position":[[1016,14],[1071,11]]},"375":{"position":[[57,10],[167,10]]},"438":{"position":[[35,10]]},"476":{"position":[[721,11]]}},"keywords":{}}],["statuscode:500",{"_index":2152,"title":{},"content":{"382":{"position":[[15,14]]}},"keywords":{}}],["step",{"_index":264,"title":{},"content":{"6":{"position":[[910,5]]},"21":{"position":[[2379,5]]},"156":{"position":[[86,6]]},"211":{"position":[[190,5]]}},"keywords":{}}],["still",{"_index":235,"title":{},"content":{"6":{"position":[[203,5]]},"136":{"position":[[83,5]]},"160":{"position":[[468,5]]},"167":{"position":[[1086,5]]},"434":{"position":[[7,5]]}},"keywords":{}}],["stop",{"_index":504,"title":{},"content":{"21":{"position":[[237,4],[623,4]]},"22":{"position":[[259,4],[483,4]]},"153":{"position":[[44,4],[207,4]]},"160":{"position":[[110,7]]},"167":{"position":[[263,4]]},"189":{"position":[[73,4]]}},"keywords":{}}],["stop('handl",{"_index":524,"title":{},"content":{"21":{"position":[[706,15]]},"22":{"position":[[566,15]]}},"keywords":{}}],["stop('init",{"_index":518,"title":{},"content":{"21":{"position":[[527,12]]},"22":{"position":[[413,12]]}},"keywords":{}}],["stop('tot",{"_index":526,"title":{},"content":{"21":{"position":[[750,13]]},"22":{"position":[[610,13]]}},"keywords":{}}],["storag",{"_index":904,"title":{"474":{"position":[[9,7]]}},"content":{"153":{"position":[[775,7],[1457,7]]},"189":{"position":[[1001,7],[1908,7]]},"369":{"position":[[168,7]]},"474":{"position":[[9,7]]}},"keywords":{}}],["storage[key",{"_index":2139,"title":{},"content":{"369":{"position":[[329,13],[380,12]]}},"keywords":{}}],["store",{"_index":500,"title":{},"content":{"21":{"position":[[155,5]]},"22":{"position":[[177,5]]},"153":{"position":[[1177,6]]},"189":{"position":[[634,6],[1478,6]]},"197":{"position":[[349,7],[1027,5]]},"202":{"position":[[345,7],[1022,5]]},"286":{"position":[[755,5]]},"298":{"position":[[352,7],[1506,5]]},"303":{"position":[[328,7],[999,5],[1117,6]]},"308":{"position":[[377,7],[1049,5]]},"318":{"position":[[860,5]]},"323":{"position":[[534,6]]},"327":{"position":[[312,7],[1032,5]]},"340":{"position":[[399,7]]},"429":{"position":[[24,7]]},"474":{"position":[[82,5],[220,5],[280,6]]}},"keywords":{}}],["store.config",{"_index":1371,"title":{},"content":{"185":{"position":[[125,12]]}},"keywords":{}}],["store.init",{"_index":516,"title":{},"content":{"21":{"position":[[486,13],[502,10]]},"22":{"position":[[388,10]]}},"keywords":{}}],["store.st",{"_index":1802,"title":{},"content":{"283":{"position":[[476,10]]}},"keywords":{}}],["store.tot",{"_index":517,"title":{},"content":{"21":{"position":[[515,11]]},"22":{"position":[[401,11]]}},"keywords":{}}],["store.trac",{"_index":1924,"title":{},"content":{"323":{"position":[[616,13]]}},"keywords":{}}],["store[id",{"_index":502,"title":{},"content":{"21":{"position":[[193,9]]},"22":{"position":[[215,9]]}},"keywords":{}}],["store[id]).tostr",{"_index":507,"title":{},"content":{"21":{"position":[[332,22]]}},"keywords":{}}],["store[id].end",{"_index":614,"title":{},"content":{"22":{"position":[[290,16]]}},"keywords":{}}],["stream",{"_index":461,"title":{"92":{"position":[[15,9]]},"120":{"position":[[8,7]]},"221":{"position":[[6,8]]},"293":{"position":[[0,7]]}},"content":{"15":{"position":[[496,9]]},"291":{"position":[[87,6]]},"293":{"position":[[343,8]]},"444":{"position":[[16,6]]}},"keywords":{}}],["streamifi",{"_index":1414,"title":{"191":{"position":[[0,9]]}},"content":{},"keywords":{}}],["streamifyrespons",{"_index":735,"title":{},"content":{"91":{"position":[[1447,18]]},"192":{"position":[[119,18]]},"193":{"position":[[119,18]]},"221":{"position":[[289,18]]}},"keywords":{}}],["street",{"_index":1688,"title":{},"content":{"260":{"position":[[258,7]]}},"keywords":{}}],["strength",{"_index":225,"title":{},"content":{"6":{"position":[[16,9]]}},"keywords":{}}],["strict",{"_index":116,"title":{},"content":{"4":{"position":[[314,6]]},"255":{"position":[[216,6]]},"360":{"position":[[281,7]]},"363":{"position":[[222,6],[317,6]]}},"keywords":{}}],["string",{"_index":192,"title":{},"content":{"5":{"position":[[1290,9],[1484,9],[1561,8]]},"173":{"position":[[237,9]]},"177":{"position":[[85,9]]},"181":{"position":[[85,9],[203,9]]},"192":{"position":[[287,6]]},"193":{"position":[[221,6]]},"197":{"position":[[288,8],[738,8]]},"202":{"position":[[284,8],[734,8]]},"207":{"position":[[10,8]]},"224":{"position":[[74,6]]},"232":{"position":[[278,8],[368,8],[626,8],[845,8],[935,8],[1032,8],[1131,8],[1228,8]]},"251":{"position":[[226,8]]},"259":{"position":[[17,8]]},"264":{"position":[[182,6],[208,6]]},"277":{"position":[[171,8],[429,7],[437,6]]},"282":{"position":[[467,6]]},"286":{"position":[[465,8]]},"291":{"position":[[9,8]]},"298":{"position":[[300,8],[1211,8]]},"303":{"position":[[267,8],[717,8]]},"308":{"position":[[316,8],[766,8]]},"318":{"position":[[577,8]]},"327":{"position":[[256,8],[749,8]]},"340":{"position":[[338,8]]},"347":{"position":[[83,8],[202,8]]},"351":{"position":[[81,8]]},"359":{"position":[[657,8]]},"361":{"position":[[172,8]]},"362":{"position":[[341,8],[408,8],[1805,8],[1832,9]]}},"keywords":{}}],["string>",{"_index":1471,"title":{},"content":{"207":{"position":[[171,10],[202,13]]}},"keywords":{}}],["stringifi",{"_index":1752,"title":{},"content":{"277":{"position":[[517,9]]}},"keywords":{}}],["string|loglevel",{"_index":1199,"title":{},"content":{"173":{"position":[[82,18]]}},"keywords":{}}],["structur",{"_index":1161,"title":{"354":{"position":[[21,10]]}},"content":{"170":{"position":[[239,10]]},"171":{"position":[[77,9],[308,10],[425,9]]},"174":{"position":[[2414,9],[2495,9]]},"323":{"position":[[91,10],[192,10]]}},"keywords":{}}],["sts.awsclientopt",{"_index":1873,"title":{},"content":{"318":{"position":[[146,20]]}},"keywords":{}}],["sts:assumerolesettocontext",{"_index":1874,"title":{},"content":{"318":{"position":[[951,26]]}},"keywords":{}}],["stsclient",{"_index":1872,"title":{},"content":{"318":{"position":[[28,11],[40,9],[207,9]]}},"keywords":{}}],["stsmiddlewar",{"_index":755,"title":{},"content":{"103":{"position":[[234,13],[663,15]]}},"keywords":{}}],["stuff",{"_index":174,"title":{},"content":{"5":{"position":[[854,5]]},"472":{"position":[[1104,5]]},"473":{"position":[[507,5]]}},"keywords":{}}],["sub",{"_index":569,"title":{},"content":{"21":{"position":[[1891,3]]}},"keywords":{}}],["sub[/sub",{"_index":320,"title":{},"content":{"7":{"position":[[793,9]]}},"keywords":{}}],["subject",{"_index":1104,"title":{},"content":{"166":{"position":[[733,7]]}},"keywords":{}}],["submit",{"_index":881,"title":{},"content":{"152":{"position":[[143,6]]}},"keywords":{}}],["submit).http",{"_index":1780,"title":{},"content":{"281":{"position":[[961,12]]}},"keywords":{}}],["subset",{"_index":1353,"title":{},"content":{"183":{"position":[[201,6]]}},"keywords":{}}],["succe",{"_index":1133,"title":{},"content":{"167":{"position":[[1092,8]]}},"keywords":{}}],["success",{"_index":178,"title":{},"content":{"5":{"position":[[909,10]]},"153":{"position":[[229,10]]},"186":{"position":[[651,10]]}},"keywords":{}}],["successfulbook",{"_index":1304,"title":{},"content":{"178":{"position":[[648,17]]}},"keywords":{}}],["such",{"_index":1274,"title":{},"content":{"174":{"position":[[1857,4],[2026,4]]},"473":{"position":[[129,4]]}},"keywords":{}}],["sudo",{"_index":856,"title":{},"content":{"151":{"position":[[506,4]]}},"keywords":{}}],["suit",{"_index":1919,"title":{},"content":{"323":{"position":[[36,5]]}},"keywords":{}}],["support",{"_index":585,"title":{"356":{"position":[[22,9]]}},"content":{"21":{"position":[[2274,7],[2762,9]]},"165":{"position":[[90,7]]},"166":{"position":[[325,7],[382,10]]},"182":{"position":[[1101,8]]},"228":{"position":[[162,9],[360,9],[558,9],[762,9],[989,9]]},"251":{"position":[[200,9]]},"318":{"position":[[1002,7]]},"355":{"position":[[667,7]]},"356":{"position":[[31,8],[146,9],[263,9]]},"359":{"position":[[318,7]]},"361":{"position":[[125,7]]},"367":{"position":[[69,7],[240,7]]},"372":{"position":[[17,9]]},"374":{"position":[[21,7]]},"375":{"position":[[9,7]]},"385":{"position":[[111,7]]},"394":{"position":[[33,7]]},"398":{"position":[[607,9]]},"404":{"position":[[4,7]]},"444":{"position":[[23,8]]}},"keywords":{}}],["supportpul",{"_index":2248,"title":{},"content":{"466":{"position":[[335,13]]}},"keywords":{}}],["sure",{"_index":2,"title":{},"content":{"0":{"position":[[20,4]]},"152":{"position":[[206,4]]},"155":{"position":[[135,4]]},"189":{"position":[[251,4],[364,4]]},"355":{"position":[[503,4]]}},"keywords":{}}],["swc",{"_index":482,"title":{"19":{"position":[[0,4]]}},"content":{},"keywords":{}}],["swc/cli",{"_index":437,"title":{},"content":{"14":{"position":[[9,8]]},"19":{"position":[[9,8]]}},"keywords":{}}],["swc/core",{"_index":438,"title":{},"content":{"14":{"position":[[18,9]]},"19":{"position":[[18,9]]}},"keywords":{}}],["swc/pack",{"_index":436,"title":{"14":{"position":[[0,9]]}},"content":{},"keywords":{}}],["swcrc",{"_index":485,"title":{},"content":{"19":{"position":[[95,7]]}},"keywords":{}}],["switch",{"_index":1563,"title":{},"content":{"229":{"position":[[295,6],[457,6]]},"327":{"position":[[1264,9]]},"355":{"position":[[565,6]]}},"keywords":{}}],["synchron",{"_index":1925,"title":{},"content":{"323":{"position":[[684,11]]}},"keywords":{}}],["system",{"_index":852,"title":{},"content":{"151":{"position":[[388,7]]},"283":{"position":[[450,7]]},"323":{"position":[[508,7]]}},"keywords":{}}],["t.deepequal(bodi",{"_index":1727,"title":{},"content":{"270":{"position":[[410,17]]},"274":{"position":[[577,17]]}},"keywords":{}}],["t.deepequal(respons",{"_index":1601,"title":{},"content":{"232":{"position":[[1730,21]]},"244":{"position":[[289,22]]}},"keywords":{}}],["t.is(bodi",{"_index":1632,"title":{},"content":{"248":{"position":[[510,10]]},"252":{"position":[[687,10]]}},"keywords":{}}],["t.is(context.apitoken.password",{"_index":1851,"title":{},"content":{"299":{"position":[[530,31]]}},"keywords":{}}],["t.is(context.apitoken.usernam",{"_index":1850,"title":{},"content":{"299":{"position":[[486,31]]}},"keywords":{}}],["t.is(context.callbackwaitsforemptyeventloop,fals",{"_index":1496,"title":{},"content":{"212":{"position":[[388,50]]}},"keywords":{}}],["t.is(err.messag",{"_index":2092,"title":{},"content":{"362":{"position":[[657,17],[1207,17]]}},"keywords":{}}],["t.is(response.body,'<message>hello",{"_index":1721,"title":{},"content":{"266":{"position":[[697,40]]}},"keywords":{}}],["t.is(response.headers['access",{"_index":1600,"title":{},"content":{"232":{"position":[[1671,29]]},"233":{"position":[[221,29]]}},"keywords":{}}],["t.not(err",{"_index":2094,"title":{},"content":{"362":{"position":[[1190,10]]}},"keywords":{}}],["tablenam",{"_index":781,"title":{},"content":{"104":{"position":[[549,10]]},"186":{"position":[[306,10]]},"203":{"position":[[284,10]]}},"keywords":{}}],["take",{"_index":944,"title":{},"content":{"157":{"position":[[362,5]]},"164":{"position":[[268,6]]},"170":{"position":[[683,5]]},"232":{"position":[[515,4]]},"399":{"position":[[151,5]]},"426":{"position":[[20,4]]},"474":{"position":[[359,4]]}},"keywords":{}}],["target",{"_index":57,"title":{},"content":{"2":{"position":[[300,8]]}},"keywords":{}}],["target=node16",{"_index":479,"title":{},"content":{"18":{"position":[[61,13]]}},"keywords":{}}],["target=node18",{"_index":394,"title":{},"content":{"12":{"position":[[152,13]]}},"keywords":{}}],["task",{"_index":897,"title":{},"content":{"153":{"position":[[398,4]]},"322":{"position":[[448,5]]}},"keywords":{}}],["team",{"_index":1391,"title":{},"content":{"188":{"position":[[144,4]]},"478":{"position":[[740,4]]}},"keywords":{}}],["teardown",{"_index":1141,"title":{},"content":{"167":{"position":[[1406,9]]}},"keywords":{}}],["technic",{"_index":237,"title":{},"content":{"6":{"position":[[239,9],[702,9]]}},"keywords":{}}],["teeni",{"_index":1899,"title":{},"content":{"322":{"position":[[886,5],[1016,5]]},"324":{"position":[[1626,5]]}},"keywords":{}}],["term",{"_index":1062,"title":{},"content":{"165":{"position":[[107,4]]},"166":{"position":[[320,4]]},"179":{"position":[[464,5],[605,6]]}},"keywords":{}}],["termin",{"_index":1111,"title":{},"content":{"167":{"position":[[313,11]]}},"keywords":{}}],["test",{"_index":1107,"title":{"167":{"position":[[0,7]]}},"content":{"167":{"position":[[0,7],[338,5],[812,5],[896,4],[1024,5],[1220,5],[1376,5]]},"219":{"position":[[521,7]]},"363":{"position":[[37,5]]},"476":{"position":[[328,8]]}},"keywords":{}}],["text",{"_index":1529,"title":{},"content":{"220":{"position":[[388,4]]},"221":{"position":[[471,4]]}},"keywords":{}}],["text/csv",{"_index":1417,"title":{},"content":{"192":{"position":[[233,10]]}},"keywords":{}}],["text/plain",{"_index":1577,"title":{},"content":{"229":{"position":[[1006,13]]}},"keywords":{}}],["text/x",{"_index":1717,"title":{},"content":{"266":{"position":[[623,6],[642,6]]}},"keywords":{}}],["text\\/plain",{"_index":1701,"title":{},"content":{"263":{"position":[[275,16]]},"266":{"position":[[463,16]]}},"keywords":{}}],["textdecoder('utf",{"_index":1426,"title":{},"content":{"194":{"position":[[277,16]]}},"keywords":{}}],["them.import",{"_index":929,"title":{},"content":{"156":{"position":[[190,11]]}},"keywords":{}}],["thing",{"_index":732,"title":{"83":{"position":[[12,6]]}},"content":{"398":{"position":[[275,6]]}},"keywords":{}}],["third",{"_index":1879,"title":{"321":{"position":[[0,5]]}},"content":{},"keywords":{}}],["this.awsclientcaptur",{"_index":1439,"title":{},"content":{"197":{"position":[[382,21]]},"202":{"position":[[378,21]]},"298":{"position":[[385,21]]},"303":{"position":[[361,21]]},"308":{"position":[[410,21]]},"327":{"position":[[345,21]]},"340":{"position":[[432,21]]}},"keywords":{}}],["those",{"_index":1620,"title":{},"content":{"243":{"position":[[227,6]]}},"keywords":{}}],["though",{"_index":1511,"title":{},"content":{"219":{"position":[[317,6]]}},"keywords":{}}],["three",{"_index":1032,"title":{},"content":{"163":{"position":[[336,5]]}},"keywords":{}}],["through",{"_index":1360,"title":{},"content":{"183":{"position":[[430,7]]},"281":{"position":[[43,7]]},"291":{"position":[[59,7]]},"322":{"position":[[825,7]]}},"keywords":{}}],["throughput",{"_index":1973,"title":{},"content":{"327":{"position":[[1240,10]]}},"keywords":{}}],["throw",{"_index":1325,"title":{},"content":{"181":{"position":[[506,5]]},"186":{"position":[[700,5]]},"228":{"position":[[853,5]]},"232":{"position":[[1507,5]]},"244":{"position":[[136,5]]},"247":{"position":[[158,8]]},"251":{"position":[[343,8]]},"273":{"position":[[51,8]]},"367":{"position":[[248,5],[386,6]]},"398":{"position":[[816,5],[883,5]]},"409":{"position":[[53,5]]},"426":{"position":[[157,5]]},"456":{"position":[[4,6]]},"476":{"position":[[43,6]]}},"keywords":{}}],["thrown",{"_index":1028,"title":{},"content":{"161":{"position":[[673,6]]},"167":{"position":[[651,6]]},"178":{"position":[[967,6]]},"324":{"position":[[153,6]]}},"keywords":{}}],["throwonemptymetr",{"_index":1324,"title":{},"content":{"181":{"position":[[453,19]]}},"keywords":{}}],["thu",{"_index":265,"title":{},"content":{"6":{"position":[[916,4]]}},"keywords":{}}],["time",{"_index":494,"title":{"21":{"position":[[0,5]]},"136":{"position":[[15,6]]}},"content":{"21":{"position":[[2027,4],[2047,5]]},"166":{"position":[[226,4]]},"167":{"position":[[221,5]]},"183":{"position":[[102,4],[276,4],[412,5],[672,5]]},"251":{"position":[[130,5]]},"476":{"position":[[30,5],[183,4]]}},"keywords":{}}],["time.provid",{"_index":1190,"title":{},"content":{"171":{"position":[[340,14]]}},"keywords":{}}],["timemiddi",{"_index":1908,"title":{},"content":{"322":{"position":[[1198,9]]}},"keywords":{}}],["timeout",{"_index":1121,"title":{"476":{"position":[[7,8]]}},"content":{"167":{"position":[[626,7],[1127,7]]},"322":{"position":[[528,9],[599,7]]},"398":{"position":[[573,7],[742,7]]},"476":{"position":[[7,8]]}},"keywords":{}}],["timeoutearlyinmilli",{"_index":1115,"title":{},"content":{"167":{"position":[[465,21]]},"476":{"position":[[240,20],[653,21]]}},"keywords":{}}],["timeoutearlyrespons",{"_index":673,"title":{},"content":{"34":{"position":[[1384,21]]},"37":{"position":[[1509,21]]},"43":{"position":[[1384,21]]},"91":{"position":[[1384,21]]},"146":{"position":[[1396,21]]},"167":{"position":[[574,21]]},"476":{"position":[[679,21]]}},"keywords":{}}],["timeplugin",{"_index":498,"title":{},"content":{"21":{"position":[[63,10]]}},"keywords":{}}],["timer",{"_index":1145,"title":{},"content":{"167":{"position":[[1475,6]]}},"keywords":{}}],["timers/promis",{"_index":2231,"title":{},"content":{"437":{"position":[[54,15]]}},"keywords":{}}],["tini",{"_index":1900,"title":{},"content":{"322":{"position":[[892,4],[1022,4]]},"324":{"position":[[1632,4]]}},"keywords":{}}],["tip",{"_index":23,"title":{},"content":{"1":{"position":[[48,4]]}},"keywords":{}}],["tl",{"_index":857,"title":{},"content":{"151":{"position":[[543,3],[552,5],[1000,3]]}},"keywords":{}}],["tls.checkserveridentity(host",{"_index":866,"title":{},"content":{"151":{"position":[[803,29]]}},"keywords":{}}],["to.dimens",{"_index":1469,"title":{},"content":{"207":{"position":[[138,13]]}},"keywords":{}}],["to.languag",{"_index":2069,"title":{},"content":{"359":{"position":[[731,12]]}},"keywords":{}}],["todo",{"_index":842,"title":{},"content":{"149":{"position":[[151,4]]}},"keywords":{}}],["togeth",{"_index":46,"title":{},"content":{"2":{"position":[[146,8]]},"7":{"position":[[246,8]]},"170":{"position":[[74,8]]},"188":{"position":[[105,9]]}},"keywords":{}}],["token",{"_index":1796,"title":{},"content":{"283":{"position":[[117,5]]},"286":{"position":[[766,6]]},"324":{"position":[[1114,5]]},"327":{"position":[[301,6],[1043,6]]}},"keywords":{}}],["ton",{"_index":963,"title":{},"content":{"159":{"position":[[144,4]]}},"keywords":{}}],["top",{"_index":1394,"title":{},"content":{"188":{"position":[[204,3]]}},"keywords":{}}],["total",{"_index":572,"title":{},"content":{"21":{"position":[[1952,5],[1994,5]]},"153":{"position":[[199,7]]}},"keywords":{}}],["toward",{"_index":231,"title":{},"content":{"6":{"position":[[123,6]]}},"keywords":{}}],["trace",{"_index":1173,"title":{},"content":{"170":{"position":[[519,6]]},"174":{"position":[[1481,5],[1610,7]]},"175":{"position":[[132,7],[208,7],[292,7],[361,7]]},"177":{"position":[[223,8]]},"178":{"position":[[1133,6],[1360,5]]},"323":{"position":[[154,7],[643,5]]},"324":{"position":[[708,8],[727,7]]}},"keywords":{}}],["tracer",{"_index":1280,"title":{"175":{"position":[[0,7]]}},"content":{"177":{"position":[[407,6],[414,8],[454,6]]},"178":{"position":[[42,7],[189,6],[202,8],[539,6],[830,6],[1094,6],[1266,6]]},"188":{"position":[[179,6],[303,6]]},"189":{"position":[[334,6],[406,6]]},"322":{"position":[[410,7]]}},"keywords":{}}],["tracer.captureawsv3cli",{"_index":1300,"title":{},"content":{"178":{"position":[[263,26]]}},"keywords":{}}],["tracer.putannotation('successfulbook",{"_index":1301,"title":{},"content":{"178":{"position":[[377,41]]}},"keywords":{}}],["transform",{"_index":792,"title":{"281":{"position":[[8,15]]},"282":{"position":[[9,15]]}},"content":{"127":{"position":[[0,12]]}},"keywords":{}}],["transformstream",{"_index":1828,"title":{},"content":{"293":{"position":[[202,15]]}},"keywords":{}}],["transpar",{"_index":1658,"title":{},"content":{"255":{"position":[[85,12]]}},"keywords":{}}],["transpil",{"_index":466,"title":{"16":{"position":[[0,12]]},"363":{"position":[[4,11]]},"364":{"position":[[0,9]]},"365":{"position":[[0,9]]}},"content":{"358":{"position":[[143,11]]},"359":{"position":[[1077,11]]},"360":{"position":[[0,9]]},"361":{"position":[[0,9],[223,11]]},"363":{"position":[[298,9]]},"478":{"position":[[1131,11]]}},"keywords":{}}],["transpilelocal",{"_index":2086,"title":{"361":{"position":[[0,16]]}},"content":{"364":{"position":[[143,15]]},"365":{"position":[[143,15]]},"466":{"position":[[456,15]]}},"keywords":{}}],["transpilelocale(await",{"_index":2121,"title":{},"content":{"364":{"position":[[252,21],[307,21]]}},"keywords":{}}],["transpileschema",{"_index":159,"title":{"360":{"position":[[0,16]]}},"content":{"5":{"position":[[456,15]]},"362":{"position":[[112,15],[828,15],[963,17],[1545,15]]},"364":{"position":[[126,16]]},"365":{"position":[[126,16]]},"466":{"position":[[349,15],[650,15],[675,15],[812,15]]}},"keywords":{}}],["transpileschema(eventjsonschema",{"_index":2253,"title":{},"content":{"466":{"position":[[841,32],[1069,33]]}},"keywords":{}}],["transpileschema(eventschema",{"_index":2124,"title":{},"content":{"364":{"position":[[413,29]]},"365":{"position":[[372,29]]}},"keywords":{}}],["transpileschema(schema",{"_index":217,"title":{},"content":{"5":{"position":[[1926,23]]},"362":{"position":[[461,23],[2051,23]]}},"keywords":{}}],["transport",{"_index":1539,"title":{},"content":{"224":{"position":[[174,9]]},"255":{"position":[[223,9]]}},"keywords":{}}],["traverse/.github",{"_index":326,"title":{},"content":{"7":{"position":[[927,16]]}},"keywords":{}}],["traverse/spec",{"_index":327,"title":{},"content":{"7":{"position":[[959,13]]}},"keywords":{}}],["travis.yml",{"_index":354,"title":{},"content":{"7":{"position":[[1407,11]]}},"keywords":{}}],["tree",{"_index":2249,"title":{},"content":{"466":{"position":[[396,4]]}},"keywords":{}}],["tri",{"_index":1142,"title":{},"content":{"167":{"position":[[1416,3]]},"186":{"position":[[548,3]]},"478":{"position":[[839,5]]}},"keywords":{}}],["trick",{"_index":24,"title":{},"content":{"1":{"position":[[57,6]]}},"keywords":{}}],["trickl",{"_index":2177,"title":{},"content":{"398":{"position":[[154,7]]}},"keywords":{}}],["trigger",{"_index":67,"title":{},"content":{"2":{"position":[[437,7]]},"161":{"position":[[173,9],[264,9],[362,9],[558,9],[614,9]]},"167":{"position":[[173,7]]},"174":{"position":[[2084,9],[2286,9]]},"188":{"position":[[423,9],[620,9]]},"197":{"position":[[656,7]]},"202":{"position":[[652,7]]},"286":{"position":[[383,7]]},"291":{"position":[[609,7]]},"298":{"position":[[1129,7]]},"303":{"position":[[635,7]]},"308":{"position":[[684,7]]},"318":{"position":[[495,7]]},"327":{"position":[[667,7]]},"340":{"position":[[620,7]]},"347":{"position":[[614,7]]},"351":{"position":[[382,7]]},"367":{"position":[[96,7],[150,7],[272,7]]},"398":{"position":[[322,9],[668,10],[753,7]]}},"keywords":{}}],["trip",{"_index":1538,"title":{},"content":{"224":{"position":[[169,4]]}},"keywords":{}}],["troubleshoot",{"_index":1269,"title":{},"content":{"174":{"position":[[1544,15],[2229,15]]}},"keywords":{}}],["true",{"_index":69,"title":{},"content":{"2":{"position":[[480,4]]},"10":{"position":[[157,5],[195,5],[231,5],[394,5]]},"13":{"position":[[274,4]]},"15":{"position":[[394,4]]},"21":{"position":[[50,4]]},"91":{"position":[[1466,4]]},"151":{"position":[[737,5]]},"174":{"position":[[464,5]]},"177":{"position":[[359,5],[649,5]]},"178":{"position":[[419,6],[680,5]]},"181":{"position":[[664,5]]},"188":{"position":[[842,4],[902,4]]},"189":{"position":[[1797,4],[1857,4]]},"192":{"position":[[138,4]]},"193":{"position":[[138,4]]},"211":{"position":[[152,4],[239,5]]},"212":{"position":[[225,7]]},"221":{"position":[[308,4]]},"228":{"position":[[27,5],[222,5],[420,5],[619,5],[822,5],[840,4]]},"232":{"position":[[34,5],[210,4]]},"239":{"position":[[32,5]]},"247":{"position":[[210,5]]},"251":{"position":[[395,5]]},"252":{"position":[[643,4]]},"273":{"position":[[103,5]]},"278":{"position":[[665,4]]},"299":{"position":[[273,4]]},"304":{"position":[[339,4]]},"328":{"position":[[364,4]]},"332":{"position":[[81,4]]},"333":{"position":[[133,4]]},"359":{"position":[[595,6]]},"360":{"position":[[289,5],[328,5],[366,4]]},"363":{"position":[[229,4],[268,4],[324,4],[363,4]]},"383":{"position":[[91,6]]}},"keywords":{}}],["true)head",{"_index":1582,"title":{},"content":{"232":{"position":[[265,12]]}},"keywords":{}}],["true.capturehttpsrequest",{"_index":1294,"title":{},"content":{"177":{"position":[[244,25]]}},"keywords":{}}],["ts",{"_index":348,"title":{},"content":{"7":{"position":[[1351,4]]}},"keywords":{}}],["tsconfig.json",{"_index":349,"title":{},"content":{"7":{"position":[[1356,13]]},"10":{"position":[[43,14]]}},"keywords":{}}],["tslib",{"_index":342,"title":{},"content":{"7":{"position":[[1267,8]]}},"keywords":{}}],["two",{"_index":1029,"title":{},"content":{"163":{"position":[[17,3]]},"166":{"position":[[39,3]]},"299":{"position":[[450,3]]}},"keywords":{}}],["txt",{"_index":365,"title":{},"content":{"7":{"position":[[1539,5]]}},"keywords":{}}],["type",{"_index":189,"title":{"265":{"position":[[8,4]]}},"content":{"5":{"position":[[1196,5],[1234,5],[1284,5],[1364,5],[1422,5],[1478,5],[1555,5],[1583,5]]},"7":{"position":[[753,9]]},"34":{"position":[[1263,5],[1338,5]]},"43":{"position":[[1263,5],[1338,5]]},"91":{"position":[[1263,5],[1338,5]]},"102":{"position":[[361,5],[436,5]]},"146":{"position":[[1275,5],[1350,5]]},"168":{"position":[[59,7],[474,4]]},"192":{"position":[[226,6]]},"228":{"position":[[663,5],[756,5]]},"239":{"position":[[238,4]]},"247":{"position":[[184,4]]},"248":{"position":[[340,6],[425,5]]},"251":{"position":[[369,4]]},"252":{"position":[[355,6]]},"263":{"position":[[446,4]]},"264":{"position":[[49,4]]},"265":{"position":[[95,4],[409,5]]},"273":{"position":[[77,4]]},"274":{"position":[[430,6]]},"281":{"position":[[247,5],[782,4]]},"312":{"position":[[123,5]]},"324":{"position":[[1506,4]]},"327":{"position":[[1296,4]]},"362":{"position":[[241,5],[335,5],[402,5],[981,5],[1053,5],[1085,5],[1674,5],[1732,5],[1799,5],[1826,5],[1924,4]]},"363":{"position":[[243,5],[338,5]]},"478":{"position":[[870,4]]}},"keywords":{}}],["typedef",{"_index":837,"title":{},"content":{"148":{"position":[[463,9]]}},"keywords":{}}],["typeof",{"_index":2063,"title":{},"content":{"359":{"position":[[330,6]]}},"keywords":{}}],["typereferrerpolici",{"_index":1670,"title":{},"content":{"255":{"position":[[329,18]]}},"keywords":{}}],["types/aw",{"_index":921,"title":{},"content":{"155":{"position":[[168,10],[238,10]]}},"keywords":{}}],["typescript",{"_index":368,"title":{"10":{"position":[[0,11]]},"168":{"position":[[9,10]]},"478":{"position":[[5,10]]}},"content":{"10":{"position":[[9,10]]},"155":{"position":[[96,11]]},"168":{"position":[[9,10],[43,10],[158,10],[714,11]]},"323":{"position":[[22,11]]},"478":{"position":[[5,10],[758,10],[816,10],[904,10],[1143,11]]}},"keywords":{}}],["typic",{"_index":1779,"title":{},"content":{"281":{"position":[[929,10]]}},"keywords":{}}],["unabl",{"_index":2239,"title":{},"content":{"456":{"position":[[20,6]]}},"keywords":{}}],["undefin",{"_index":1437,"title":{},"content":{"197":{"position":[[203,11],[306,11],[424,11]]},"202":{"position":[[200,11],[302,11],[420,11]]},"224":{"position":[[31,11]]},"228":{"position":[[112,10],[309,10],[507,10],[709,10]]},"236":{"position":[[228,11]]},"303":{"position":[[189,11],[285,11],[403,11]]},"308":{"position":[[224,11],[334,11],[452,11]]},"336":{"position":[[28,11]]},"340":{"position":[[239,11],[356,11],[474,11]]},"359":{"position":[[32,11],[183,11],[443,11]]},"360":{"position":[[213,11]]},"399":{"position":[[238,9]]},"472":{"position":[[671,10]]}},"keywords":{}}],["under",{"_index":2027,"title":{},"content":{"354":{"position":[[78,5]]}},"keywords":{}}],["understand",{"_index":1264,"title":{},"content":{"174":{"position":[[1292,10]]},"322":{"position":[[549,10]]},"398":{"position":[[952,13]]}},"keywords":{}}],["unfinish",{"_index":1130,"title":{},"content":{"167":{"position":[[1039,10]]}},"keywords":{}}],["uniqu",{"_index":1445,"title":{},"content":{"197":{"position":[[818,6]]},"202":{"position":[[813,6]]},"286":{"position":[[546,6]]},"298":{"position":[[1297,6]]},"303":{"position":[[790,6]]},"308":{"position":[[840,6]]},"318":{"position":[[651,6]]},"327":{"position":[[823,6]]}},"keywords":{}}],["unit",{"_index":1127,"title":{},"content":{"167":{"position":[[807,4],[1215,4]]},"179":{"position":[[169,5],[498,5]]}},"keywords":{}}],["unknown",{"_index":1329,"title":{},"content":{"182":{"position":[[241,8],[260,9]]}},"keywords":{}}],["unless",{"_index":2200,"title":{},"content":{"407":{"position":[[33,6]]},"414":{"position":[[122,6]]},"416":{"position":[[33,6]]}},"keywords":{}}],["unmanag",{"_index":1013,"title":{},"content":{"160":{"position":[[749,9]]}},"keywords":{}}],["unprocess",{"_index":1603,"title":{},"content":{"232":{"position":[[1777,14]]},"244":{"position":[[335,14]]}},"keywords":{}}],["unref",{"_index":1146,"title":{},"content":{"167":{"position":[[1515,8]]}},"keywords":{}}],["up",{"_index":243,"title":{"189":{"position":[[9,2]]}},"content":{"6":{"position":[[401,2]]},"167":{"position":[[268,2]]},"179":{"position":[[26,2]]},"189":{"position":[[265,2],[755,2],[1245,2]]},"372":{"position":[[27,2]]},"476":{"position":[[197,2]]},"478":{"position":[[862,2]]}},"keywords":{}}],["updat",{"_index":1008,"title":{},"content":{"160":{"position":[[546,6]]},"264":{"position":[[266,8]]},"355":{"position":[[475,8],[656,7]]},"459":{"position":[[0,7]]},"460":{"position":[[0,7]]},"461":{"position":[[0,7]]},"462":{"position":[[0,7]]},"464":{"position":[[0,7]]},"465":{"position":[[0,7]]},"466":{"position":[[561,6]]},"469":{"position":[[0,7]]}},"keywords":{}}],["upgrad",{"_index":2024,"title":{"353":{"position":[[0,7]]},"366":{"position":[[0,7]]},"396":{"position":[[0,7]]},"435":{"position":[[0,7]]}},"content":{"394":{"position":[[0,8]]}},"keywords":{}}],["upload",{"_index":1647,"title":{},"content":{"251":{"position":[[976,6]]}},"keywords":{}}],["uri",{"_index":343,"title":{},"content":{"7":{"position":[[1276,6]]}},"keywords":{}}],["url",{"_index":734,"title":{"89":{"position":[[9,3]]},"192":{"position":[[16,3]]}},"content":{"281":{"position":[[912,3],[1037,3]]}},"keywords":{}}],["url/.zuul.yml",{"_index":345,"title":{},"content":{"7":{"position":[[1298,16]]}},"keywords":{}}],["url/test.j",{"_index":346,"title":{},"content":{"7":{"position":[[1315,14]]}},"keywords":{}}],["urlencod",{"_index":664,"title":{"267":{"position":[[5,9]]},"271":{"position":[[5,9]]},"383":{"position":[[5,9]]},"384":{"position":[[5,9]]},"417":{"position":[[5,9]]},"418":{"position":[[5,9]]},"456":{"position":[[5,9]]},"457":{"position":[[5,9]]}},"content":{"34":{"position":[[1012,9],[1104,9]]},"37":{"position":[[1063,9],[1155,9]]},"43":{"position":[[1012,9],[1104,9]]},"91":{"position":[[1012,9],[1104,9]]},"146":{"position":[[1024,9],[1116,9]]},"268":{"position":[[87,9]]},"270":{"position":[[81,9]]},"272":{"position":[[87,9]]},"274":{"position":[[146,9],[461,11]]},"281":{"position":[[849,9],[974,9]]},"354":{"position":[[1151,9]]}},"keywords":{}}],["us",{"_index":106,"title":{"168":{"position":[[0,3]]},"188":{"position":[[0,5]]},"221":{"position":[[0,5]]}},"content":{"4":{"position":[[95,5],[122,4]]},"5":{"position":[[578,4],[742,4]]},"6":{"position":[[617,5]]},"7":{"position":[[19,5],[295,3]]},"21":{"position":[[2361,3]]},"27":{"position":[[0,5]]},"30":{"position":[[0,5]]},"33":{"position":[[0,5]]},"34":{"position":[[1551,5],[1983,5]]},"36":{"position":[[0,5]]},"37":{"position":[[1676,5],[2108,5]]},"39":{"position":[[0,5]]},"42":{"position":[[0,5]]},"43":{"position":[[1551,5],[1983,5]]},"45":{"position":[[0,5]]},"46":{"position":[[99,3]]},"48":{"position":[[0,5]]},"51":{"position":[[0,5]]},"54":{"position":[[0,5]]},"57":{"position":[[0,5]]},"60":{"position":[[0,5]]},"63":{"position":[[0,5]]},"67":{"position":[[0,5]]},"69":{"position":[[0,5]]},"72":{"position":[[0,5]]},"76":{"position":[[0,5]]},"78":{"position":[[0,5]]},"81":{"position":[[0,5]]},"84":{"position":[[0,5]]},"87":{"position":[[0,5]]},"90":{"position":[[0,5]]},"91":{"position":[[1576,5],[2008,5]]},"93":{"position":[[0,5]]},"96":{"position":[[0,5]]},"99":{"position":[[0,5]]},"103":{"position":[[297,5],[483,5],[581,5],[657,5]]},"104":{"position":[[281,5],[422,5],[497,5],[591,5]]},"106":{"position":[[0,5]]},"109":{"position":[[0,5]]},"112":{"position":[[0,5]]},"115":{"position":[[0,5]]},"118":{"position":[[0,5]]},"121":{"position":[[0,5]]},"124":{"position":[[0,5]]},"130":{"position":[[0,5]]},"133":{"position":[[0,5]]},"138":{"position":[[0,5]]},"145":{"position":[[0,5]]},"146":{"position":[[1563,5],[1995,5]]},"148":{"position":[[522,4]]},"151":{"position":[[275,5],[497,3]]},"153":{"position":[[581,3],[1413,7]]},"155":{"position":[[26,3],[90,5]]},"156":{"position":[[37,5],[463,5]]},"157":{"position":[[355,6],[934,5],[1004,3]]},"159":{"position":[[84,4]]},"161":{"position":[[499,3]]},"167":{"position":[[658,5],[770,5]]},"168":{"position":[[0,3],[33,4],[141,5]]},"170":{"position":[[52,4]]},"173":{"position":[[114,4],[149,3],[263,3],[280,4]]},"174":{"position":[[1525,6],[2210,6],[2454,6]]},"177":{"position":[[111,3],[128,4]]},"178":{"position":[[778,4]]},"179":{"position":[[44,5],[552,5]]},"181":{"position":[[111,3],[128,4],[234,3]]},"182":{"position":[[1220,4]]},"183":{"position":[[244,5]]},"185":{"position":[[89,4]]},"186":{"position":[[747,6]]},"188":{"position":[[8,3]]},"189":{"position":[[324,5],[495,5],[1866,5]]},"196":{"position":[[35,3]]},"201":{"position":[[35,3]]},"206":{"position":[[35,3]]},"210":{"position":[[35,3]]},"214":{"position":[[35,3]]},"215":{"position":[[60,4]]},"218":{"position":[[35,3]]},"223":{"position":[[35,3]]},"227":{"position":[[35,3]]},"231":{"position":[[35,3]]},"232":{"position":[[584,5]]},"235":{"position":[[35,3]]},"238":{"position":[[35,3]]},"239":{"position":[[200,4]]},"242":{"position":[[35,3]]},"243":{"position":[[316,5]]},"246":{"position":[[35,3]]},"247":{"position":[[79,4]]},"250":{"position":[[35,3]]},"251":{"position":[[57,4],[261,4],[549,5]]},"254":{"position":[[35,3]]},"258":{"position":[[35,3]]},"259":{"position":[[90,4]]},"262":{"position":[[35,3]]},"263":{"position":[[395,4]]},"264":{"position":[[371,6]]},"265":{"position":[[529,3]]},"268":{"position":[[35,3]]},"272":{"position":[[35,3]]},"276":{"position":[[35,3]]},"277":{"position":[[242,4]]},"280":{"position":[[265,4]]},"281":{"position":[[667,4]]},"283":{"position":[[374,4]]},"285":{"position":[[35,3]]},"290":{"position":[[35,3]]},"297":{"position":[[35,3]]},"298":{"position":[[842,3],[1016,3],[1627,5]]},"302":{"position":[[35,3]]},"303":{"position":[[1176,5]]},"307":{"position":[[35,3]]},"312":{"position":[[35,3]]},"315":{"position":[[189,4]]},"317":{"position":[[35,3]]},"322":{"position":[[1236,5]]},"324":{"position":[[83,5],[917,6]]},"326":{"position":[[35,3]]},"328":{"position":[[153,5],[648,5],[732,5]]},"331":{"position":[[35,3]]},"335":{"position":[[35,3]]},"336":{"position":[[88,4]]},"339":{"position":[[35,3]]},"340":{"position":[[831,5]]},"346":{"position":[[35,3]]},"347":{"position":[[376,5],[469,3]]},"350":{"position":[[35,3]]},"354":{"position":[[418,4]]},"358":{"position":[[35,3]]},"359":{"position":[[84,4],[235,4],[495,4]]},"360":{"position":[[60,5]]},"362":{"position":[[1342,4]]},"363":{"position":[[275,3],[370,3],[810,5]]},"364":{"position":[[382,5]]},"365":{"position":[[259,4],[341,5]]},"369":{"position":[[60,3]]},"383":{"position":[[29,4]]},"386":{"position":[[39,4]]},"395":{"position":[[99,3],[198,3]]},"397":{"position":[[108,3]]},"398":{"position":[[85,3],[637,3],[691,3]]},"406":{"position":[[70,3]]},"408":{"position":[[89,3]]},"434":{"position":[[78,13]]},"459":{"position":[[11,3]]},"460":{"position":[[11,3]]},"461":{"position":[[11,3]]},"462":{"position":[[11,3]]},"464":{"position":[[11,3]]},"465":{"position":[[11,3]]},"466":{"position":[[568,3]]},"469":{"position":[[11,3]]},"472":{"position":[[898,5]]},"473":{"position":[[261,3]]},"474":{"position":[[74,4],[349,6],[525,5]]},"478":{"position":[[754,3]]}},"keywords":{}}],["usabl",{"_index":2269,"title":{},"content":{"473":{"position":[[118,7]]}},"keywords":{}}],["usag",{"_index":915,"title":{"156":{"position":[[0,6]]},"174":{"position":[[7,6]]},"178":{"position":[[7,6]]},"182":{"position":[[7,6]]},"186":{"position":[[7,6]]},"198":{"position":[[7,6]]},"203":{"position":[[7,6]]},"208":{"position":[[7,6]]},"212":{"position":[[7,6]]},"216":{"position":[[7,6]]},"220":{"position":[[7,6]]},"225":{"position":[[7,6]]},"229":{"position":[[7,6]]},"233":{"position":[[7,6]]},"236":{"position":[[7,6]]},"240":{"position":[[7,6]]},"244":{"position":[[7,6]]},"248":{"position":[[7,6]]},"252":{"position":[[7,6]]},"256":{"position":[[7,6]]},"260":{"position":[[7,6]]},"266":{"position":[[7,6]]},"270":{"position":[[7,6]]},"274":{"position":[[7,6]]},"278":{"position":[[7,6]]},"287":{"position":[[7,6]]},"292":{"position":[[7,6]]},"299":{"position":[[7,6]]},"304":{"position":[[7,6]]},"309":{"position":[[7,6]]},"314":{"position":[[7,6]]},"319":{"position":[[7,6]]},"328":{"position":[[7,6]]},"333":{"position":[[7,6]]},"337":{"position":[[7,6]]},"341":{"position":[[7,6]]},"348":{"position":[[7,6]]},"352":{"position":[[7,6]]},"362":{"position":[[7,6]]}},"content":{"153":{"position":[[1350,5]]},"161":{"position":[[714,6]]},"189":{"position":[[1651,5]]},"369":{"position":[[36,6]]},"370":{"position":[[36,6]]}},"keywords":{}}],["use(capturelambdahandler(trac",{"_index":1302,"title":{},"content":{"178":{"position":[[473,35]]},"188":{"position":[[762,34]]},"189":{"position":[[1717,34]]}},"keywords":{}}],["use(cfheadernorm",{"_index":714,"title":{},"content":{"46":{"position":[[63,28]]}},"keywords":{}}],["use(cloudwatchmetricsmiddlewar",{"_index":746,"title":{},"content":{"102":{"position":[[500,35]]}},"keywords":{}}],["use(custommiddlewar",{"_index":2264,"title":{},"content":{"472":{"position":[[1166,23]]}},"keywords":{}}],["use(errorlogg",{"_index":529,"title":{},"content":{"21":{"position":[[945,19]]},"22":{"position":[[807,19]]},"216":{"position":[[158,19]]}},"keywords":{}}],["use(errorloggermiddlewar",{"_index":748,"title":{},"content":{"102":{"position":[[572,29]]}},"keywords":{}}],["use(eventlogg",{"_index":528,"title":{},"content":{"21":{"position":[[925,19]]},"22":{"position":[[787,19]]}},"keywords":{}}],["use(eventnormalizermiddlewar",{"_index":720,"title":{},"content":{"55":{"position":[[127,33]]},"64":{"position":[[127,33]]},"73":{"position":[[127,33]]},"82":{"position":[[127,33]]},"94":{"position":[[127,33]]},"97":{"position":[[127,33]]},"100":{"position":[[127,33]]},"110":{"position":[[127,33]]},"113":{"position":[[127,33]]},"116":{"position":[[127,33]]},"119":{"position":[[127,33]]},"122":{"position":[[127,33]]},"134":{"position":[[127,33]]},"139":{"position":[[197,33]]}},"keywords":{}}],["use(httpcontentencod",{"_index":1523,"title":{},"content":{"220":{"position":[[264,26]]},"221":{"position":[[347,26]]}},"keywords":{}}],["use(httpcontentencodingmiddlewar",{"_index":691,"title":{},"content":{"34":{"position":[[1945,37]]},"37":{"position":[[2070,37]]},"43":{"position":[[1945,37]]},"91":{"position":[[1970,37]]},"146":{"position":[[1957,37]]}},"keywords":{}}],["use(httpcontentnegoti",{"_index":1522,"title":{},"content":{"220":{"position":[[233,30]]},"221":{"position":[[316,30]]},"229":{"position":[[804,29]]}},"keywords":{}}],["use(httpcor",{"_index":535,"title":{},"content":{"21":{"position":[[1123,16]]},"22":{"position":[[985,16]]}},"keywords":{}}],["use(httpcorsmiddlewar",{"_index":690,"title":{},"content":{"34":{"position":[[1918,26]]},"37":{"position":[[2043,26]]},"43":{"position":[[1918,26]]},"91":{"position":[[1943,26]]},"146":{"position":[[1930,26]]}},"keywords":{}}],["use(httperrorhandl",{"_index":219,"title":{},"content":{"5":{"position":[[1977,24]]},"229":{"position":[[1024,24]]},"244":{"position":[[191,24]]}},"keywords":{}}],["use(httperrorhandlermiddlewar",{"_index":697,"title":{},"content":{"34":{"position":[[2256,34]]},"37":{"position":[[2322,34]]},"43":{"position":[[2267,34]]},"91":{"position":[[2281,34]]},"146":{"position":[[2268,34]]}},"keywords":{}}],["use(httpeventnorm",{"_index":530,"title":{},"content":{"21":{"position":[[965,27]]},"22":{"position":[[827,27]]}},"keywords":{}}],["use(httpeventnormalizermiddlewar",{"_index":676,"title":{},"content":{"34":{"position":[[1474,37]]},"37":{"position":[[1599,37]]},"43":{"position":[[1474,37]]},"91":{"position":[[1499,37]]},"146":{"position":[[1486,37]]}},"keywords":{}}],["use(httpheadernorm",{"_index":531,"title":{},"content":{"21":{"position":[[993,28]]},"22":{"position":[[855,28]]},"229":{"position":[[775,28]]},"240":{"position":[[121,28]]},"348":{"position":[[611,28]]}},"keywords":{}}],["use(httpheadernormalizermiddlewar",{"_index":677,"title":{},"content":{"34":{"position":[[1512,38]]},"37":{"position":[[1637,38]]},"43":{"position":[[1512,38]]},"91":{"position":[[1537,38]]},"146":{"position":[[1524,38]]}},"keywords":{}}],["use(httpjsonbodypars",{"_index":534,"title":{},"content":{"21":{"position":[[1096,26]]},"22":{"position":[[958,26]]}},"keywords":{}}],["use(httpjsonbodyparsermiddlewar",{"_index":687,"title":{},"content":{"34":{"position":[[1788,36]]},"37":{"position":[[1913,36]]},"43":{"position":[[1788,36]]},"91":{"position":[[1813,36]]},"146":{"position":[[1800,36]]},"450":{"position":[[166,36]]}},"keywords":{}}],["use(httpmultipartbodyparsermiddlewar",{"_index":688,"title":{},"content":{"34":{"position":[[1825,41]]},"37":{"position":[[1950,41]]},"43":{"position":[[1825,41]]},"91":{"position":[[1850,41]]},"146":{"position":[[1837,41]]}},"keywords":{}}],["use(httppartialresponsemiddlewar",{"_index":695,"title":{},"content":{"34":{"position":[[2159,37]]},"37":{"position":[[2284,37]]},"43":{"position":[[2170,37]]},"91":{"position":[[2184,37]]},"146":{"position":[[2171,37]]}},"keywords":{}}],["use(httpresponseseri",{"_index":1715,"title":{},"content":{"266":{"position":[[219,29]]}},"keywords":{}}],["use(httpsecurityhead",{"_index":536,"title":{},"content":{"21":{"position":[[1140,27]]},"22":{"position":[[1002,27]]},"256":{"position":[[163,27]]}},"keywords":{}}],["use(httpsecurityheadersmiddlewar",{"_index":689,"title":{},"content":{"34":{"position":[[1880,37]]},"37":{"position":[[2005,37]]},"43":{"position":[[1880,37]]},"91":{"position":[[1905,37]]},"146":{"position":[[1892,37]]}},"keywords":{}}],["use(httpurlencodebodypars",{"_index":533,"title":{},"content":{"21":{"position":[[1064,31]]},"22":{"position":[[926,31]]}},"keywords":{}}],["use(httpurlencodebodyparsermiddlewar",{"_index":686,"title":{},"content":{"34":{"position":[[1746,41]]},"37":{"position":[[1871,41]]},"43":{"position":[[1746,41]]},"91":{"position":[[1771,41]]},"146":{"position":[[1758,41]]}},"keywords":{}}],["use(httpurlencodepathparameterspars",{"_index":532,"title":{},"content":{"21":{"position":[[1022,41]]},"22":{"position":[[884,41]]}},"keywords":{}}],["use(httpurlencodepathparametersparsermiddlewar",{"_index":684,"title":{},"content":{"34":{"position":[[1679,51]]},"37":{"position":[[1804,51]]},"43":{"position":[[1679,51]]},"91":{"position":[[1704,51]]},"146":{"position":[[1691,51]]}},"keywords":{}}],["use(injectlambdacontext(logg",{"_index":1228,"title":{},"content":{"174":{"position":[[356,34]]},"188":{"position":[[797,32]]},"189":{"position":[[1752,32]]}},"keywords":{}}],["use(inputoutputloggermiddlewar",{"_index":747,"title":{},"content":{"102":{"position":[[536,35]]}},"keywords":{}}],["use(jsonbodypars",{"_index":212,"title":{},"content":{"5":{"position":[[1800,22]]}},"keywords":{}}],["use(logmetrics(metr",{"_index":1333,"title":{},"content":{"182":{"position":[[407,26]]},"188":{"position":[[851,24]]},"189":{"position":[[1806,24]]}},"keywords":{}}],["use(middleware1",{"_index":941,"title":{},"content":{"157":{"position":[[294,19]]}},"keywords":{}}],["use(middleware2",{"_index":942,"title":{},"content":{"157":{"position":[[314,19]]}},"keywords":{}}],["use(middleware3",{"_index":943,"title":{},"content":{"157":{"position":[[334,19]]}},"keywords":{}}],["use(rdssign",{"_index":83,"title":{},"content":{"2":{"position":[[696,20]]}},"keywords":{}}],["use(s3objectresponsemiddlewar",{"_index":798,"title":{},"content":{"128":{"position":[[203,33]]}},"keywords":{}}],["use(secretsmanag",{"_index":84,"title":{},"content":{"2":{"position":[[717,25]]}},"keywords":{}}],["use(somemiddlewar",{"_index":936,"title":{},"content":{"156":{"position":[[482,22]]},"168":{"position":[[601,20]]}},"keywords":{}}],["use(someothermiddlewar",{"_index":1155,"title":{},"content":{"168":{"position":[[622,25]]}},"keywords":{}}],["use(sqspartialbatchfailur",{"_index":815,"title":{},"content":{"139":{"position":[[231,30]]}},"keywords":{}}],["use(ssm",{"_index":82,"title":{},"content":{"2":{"position":[[681,14]]}},"keywords":{}}],["use(st",{"_index":81,"title":{},"content":{"2":{"position":[[666,14]]}},"keywords":{}}],["use(valid",{"_index":215,"title":{},"content":{"5":{"position":[[1896,16]]}},"keywords":{}}],["use(validator({eventschema",{"_index":537,"title":{},"content":{"21":{"position":[[1168,30]]},"22":{"position":[[1030,30]]}},"keywords":{}}],["use(validatormiddlewar",{"_index":696,"title":{},"content":{"34":{"position":[[2197,26]]},"43":{"position":[[2208,26]]},"91":{"position":[[2222,26]]},"102":{"position":[[602,26]]},"146":{"position":[[2209,26]]},"466":{"position":[[761,26],[1029,26]]}},"keywords":{}}],["use(validatormiddleware({eventschema",{"_index":2021,"title":{},"content":{"348":{"position":[[161,38],[317,38]]},"352":{"position":[[215,38],[354,38]]}},"keywords":{}}],["use(warmup",{"_index":1997,"title":{},"content":{"333":{"position":[[242,13]]}},"keywords":{}}],["use(warmupmiddlewar",{"_index":675,"title":{},"content":{"34":{"position":[[1449,24]]},"37":{"position":[[1574,24]]},"43":{"position":[[1449,24]]},"91":{"position":[[1474,24]]},"102":{"position":[[475,24]]},"146":{"position":[[1461,24]]}},"keywords":{}}],["use(wsjsonbodyparsermiddlewar",{"_index":639,"title":{},"content":{"31":{"position":[[612,34]]},"337":{"position":[[185,34]]}},"keywords":{}}],["use(wsresponsemiddlewar",{"_index":640,"title":{},"content":{"31":{"position":[[647,28]]},"337":{"position":[[220,28]]},"352":{"position":[[493,28]]}},"keywords":{}}],["use.wrap",{"_index":930,"title":{},"content":{"156":{"position":[[244,8]]}},"keywords":{}}],["used.plugin",{"_index":2162,"title":{},"content":{"394":{"position":[[246,11]]}},"keywords":{}}],["usedefault",{"_index":2085,"title":{},"content":{"360":{"position":[[334,12]]}},"keywords":{}}],["user",{"_index":708,"title":{},"content":{"37":{"position":[[1444,8]]},"160":{"position":[[666,5]]},"163":{"position":[[818,5]]},"236":{"position":[[161,4],[223,4]]},"251":{"position":[[958,5]]},"348":{"position":[[546,8]]},"478":{"position":[[915,5]]}},"keywords":{}}],["user.j",{"_index":703,"title":{},"content":{"37":{"position":[[1270,8],[1334,8]]}},"keywords":{}}],["user.nam",{"_index":1748,"title":{},"content":{"277":{"position":[[400,10]]}},"keywords":{}}],["user/{id",{"_index":706,"title":{},"content":{"37":{"position":[[1383,13]]},"348":{"position":[[485,13]]}},"keywords":{}}],["userland",{"_index":2051,"title":{},"content":{"355":{"position":[[727,8]]}},"keywords":{}}],["usernam",{"_index":762,"title":{},"content":{"103":{"position":[[419,9]]},"287":{"position":[[349,9]]},"299":{"position":[[460,10],[518,11]]}},"keywords":{}}],["users.[].namemask",{"_index":1749,"title":{},"content":{"277":{"position":[[411,17]]}},"keywords":{}}],["users.s3",{"_index":1797,"title":{},"content":{"283":{"position":[[154,9]]}},"keywords":{}}],["usr/bin/env",{"_index":2103,"title":{},"content":{"363":{"position":[[61,14]]}},"keywords":{}}],["usual",{"_index":926,"title":{},"content":{"156":{"position":[[123,6]]},"394":{"position":[[218,7]]}},"keywords":{}}],["utf",{"_index":1528,"title":{},"content":{"220":{"position":[[382,3]]},"221":{"position":[[465,3]]},"412":{"position":[[45,3]]}},"keywords":{}}],["utf8",{"_index":1637,"title":{},"content":{"251":{"position":[[244,6]]}},"keywords":{}}],["util",{"_index":464,"title":{"188":{"position":[[15,10]]},"190":{"position":[[0,9]]},"399":{"position":[[0,5]]},"438":{"position":[[0,5]]}},"content":{"15":{"position":[[564,7]]},"170":{"position":[[30,9],[188,9]]},"174":{"position":[[1254,8],[1629,7]]},"178":{"position":[[546,7],[837,7],[1273,7]]},"179":{"position":[[570,8]]},"182":{"position":[[1093,7]]},"188":{"position":[[32,9]]},"189":{"position":[[226,10],[272,9],[341,8],[513,8],[595,7],[766,9],[1263,9]]},"190":{"position":[[0,9]]},"281":{"position":[[174,9]]},"323":{"position":[[45,9],[416,7],[630,9]]},"324":{"position":[[1665,7]]}},"keywords":{}}],["utilitymiddi",{"_index":1902,"title":{},"content":{"322":{"position":[[925,12],[1055,12]]}},"keywords":{}}],["uuid/bin",{"_index":347,"title":{},"content":{"7":{"position":[[1330,11]]}},"keywords":{}}],["v0",{"_index":1102,"title":{},"content":{"166":{"position":[[676,2]]}},"keywords":{}}],["v0.2.1",{"_index":973,"title":{},"content":{"159":{"position":[[293,6]]}},"keywords":{}}],["v1",{"_index":1098,"title":{},"content":{"166":{"position":[[629,2]]}},"keywords":{}}],["v1.0.0",{"_index":976,"title":{},"content":{"159":{"position":[[325,6]]}},"keywords":{}}],["v1.x",{"_index":2132,"title":{},"content":{"367":{"position":[[371,4]]}},"keywords":{}}],["v10",{"_index":2147,"title":{},"content":{"372":{"position":[[38,4]]}},"keywords":{}}],["v12",{"_index":151,"title":{},"content":{"5":{"position":[[259,4]]}},"keywords":{}}],["v14",{"_index":148,"title":{},"content":{"5":{"position":[[198,4]]}},"keywords":{}}],["v2",{"_index":786,"title":{},"content":{"106":{"position":[[77,2]]},"166":{"position":[[582,2]]},"175":{"position":[[308,2]]}},"keywords":{}}],["v2.0.0",{"_index":981,"title":{},"content":{"159":{"position":[[397,6],[427,6]]}},"keywords":{}}],["v2.x",{"_index":2215,"title":{},"content":{"421":{"position":[[42,4]]},"425":{"position":[[42,4]]}},"keywords":{}}],["v3",{"_index":1095,"title":{},"content":{"166":{"position":[[535,2]]},"167":{"position":[[150,3]]},"175":{"position":[[315,2]]},"421":{"position":[[63,2]]},"425":{"position":[[63,2]]},"459":{"position":[[23,2]]},"460":{"position":[[23,2]]},"461":{"position":[[23,2]]},"462":{"position":[[23,2]]},"464":{"position":[[23,2]]},"465":{"position":[[23,2]]},"469":{"position":[[23,2]]}},"keywords":{}}],["v3.0.0",{"_index":990,"title":{},"content":{"159":{"position":[[492,6]]}},"keywords":{}}],["v4",{"_index":1091,"title":{},"content":{"166":{"position":[[492,2]]}},"keywords":{}}],["v4.0.0",{"_index":994,"title":{},"content":{"159":{"position":[[519,6]]}},"keywords":{}}],["valid",{"_index":124,"title":{"357":{"position":[[0,9]]},"394":{"position":[[0,10]]},"429":{"position":[[0,10]]},"466":{"position":[[0,10]]}},"content":{"4":{"position":[[430,11]]},"5":{"position":[[413,9],[1111,10],[1957,9]]},"6":{"position":[[305,11]]},"21":{"position":[[2087,9],[2214,12],[2246,9]]},"34":{"position":[[1159,11]]},"43":{"position":[[1159,11]]},"91":{"position":[[1159,11]]},"102":{"position":[[257,11]]},"146":{"position":[[1171,11]]},"265":{"position":[[581,8]]},"281":{"position":[[1079,9]]},"322":{"position":[[138,9],[1279,10]]},"324":{"position":[[257,10],[286,10],[1493,8]]},"359":{"position":[[61,9],[92,8],[212,9],[243,8],[354,10],[472,9],[503,8]]},"362":{"position":[[18,11],[69,9],[316,10],[436,11],[696,12],[734,11],[785,9],[1249,12],[1389,11],[1502,9],[1943,8],[2026,11]]},"363":{"position":[[196,8],[212,5],[651,9],[816,11]]},"364":{"position":[[83,9],[388,11]]},"365":{"position":[[83,9],[347,11]]}},"keywords":{}}],["validator@iress/middi",{"_index":1915,"title":{},"content":{"322":{"position":[[1322,21]]}},"keywords":{}}],["validatormiddlewar",{"_index":666,"title":{},"content":{"34":{"position":[[1134,19]]},"43":{"position":[[1134,19]]},"91":{"position":[[1134,19]]},"102":{"position":[[232,19]]},"146":{"position":[[1146,19]]},"348":{"position":[[90,19]]},"352":{"position":[[140,19]]},"466":{"position":[[593,19],[886,19]]}},"keywords":{}}],["validatormiddlewareaft",{"_index":557,"title":{},"content":{"21":{"position":[[1673,24]]}},"keywords":{}}],["validatormiddlewarebefor",{"_index":554,"title":{},"content":{"21":{"position":[[1615,25]]}},"keywords":{}}],["valu",{"_index":64,"title":{},"content":{"2":{"position":[[393,6],[467,5],[549,6],[797,7],[924,8],[1059,8],[1083,7],[1272,8]]},"46":{"position":[[127,5]]},"151":{"position":[[968,6]]},"153":{"position":[[1041,5]]},"165":{"position":[[30,5]]},"173":{"position":[[174,7]]},"178":{"position":[[674,5]]},"179":{"position":[[175,7]]},"182":{"position":[[1151,5]]},"189":{"position":[[1342,5]]},"232":{"position":[[299,5],[389,5],[866,5],[956,5],[1053,5],[1152,5],[1249,5]]},"265":{"position":[[613,6]]},"277":{"position":[[463,6]]},"298":{"position":[[880,5]]},"315":{"position":[[4,5]]},"323":{"position":[[492,6]]},"328":{"position":[[235,5],[295,7],[814,5],[873,7]]},"369":{"position":[[365,6],[395,5]]},"398":{"position":[[857,6]]},"434":{"position":[[130,6]]},"474":{"position":[[88,6],[875,6],[1106,6],[1237,5],[1317,6]]},"476":{"position":[[433,5]]}},"keywords":{}}],["values.node_env",{"_index":2228,"title":{},"content":{"434":{"position":[[203,15]]}},"keywords":{}}],["values.podspec",{"_index":340,"title":{},"content":{"7":{"position":[[1229,14]]}},"keywords":{}}],["values/android",{"_index":336,"title":{},"content":{"7":{"position":[[1071,14]]}},"keywords":{}}],["values/index.web.j",{"_index":338,"title":{},"content":{"7":{"position":[[1151,19]]}},"keywords":{}}],["values/io",{"_index":337,"title":{},"content":{"7":{"position":[[1113,10]]}},"keywords":{}}],["values/react",{"_index":339,"title":{},"content":{"7":{"position":[[1198,12]]}},"keywords":{}}],["values[internalkey",{"_index":2285,"title":{},"content":{"474":{"position":[[974,19]]}},"keywords":{}}],["variabl",{"_index":6,"title":{},"content":{"0":{"position":[[58,8]]},"21":{"position":[[2819,8]]},"347":{"position":[[259,9]]}},"keywords":{}}],["variablessq",{"_index":1961,"title":{},"content":{"324":{"position":[[1528,12]]}},"keywords":{}}],["verbos",{"_index":1025,"title":{},"content":{"161":{"position":[[505,7]]}},"keywords":{}}],["veri",{"_index":101,"title":{},"content":{"4":{"position":[[11,4],[253,4]]},"6":{"position":[[360,4]]},"152":{"position":[[64,4]]},"156":{"position":[[52,4]]},"473":{"position":[[70,4]]},"476":{"position":[[422,4]]}},"keywords":{}}],["verifi",{"_index":853,"title":{},"content":{"151":{"position":[[427,6]]}},"keywords":{}}],["version",{"_index":1083,"title":{"322":{"position":[[0,7]]},"323":{"position":[[0,7]]},"324":{"position":[[0,7]]}},"content":{"166":{"position":[[393,7]]},"247":{"position":[[252,8]]},"251":{"position":[[437,8]]},"273":{"position":[[145,8]]},"354":{"position":[[0,7]]},"355":{"position":[[589,7]]},"356":{"position":[[0,7],[48,8],[78,8],[273,8]]}},"keywords":{}}],["vesper",{"_index":1059,"title":{},"content":{"164":{"position":[[356,6]]}},"keywords":{}}],["vgaltesgolang",{"_index":1058,"title":{},"content":{"164":{"position":[[336,14]]}},"keywords":{}}],["via",{"_index":1187,"title":{},"content":{"171":{"position":[[240,3]]},"175":{"position":[[226,3],[318,3]]},"265":{"position":[[231,3]]},"323":{"position":[[346,3]]},"395":{"position":[[360,3]]}},"keywords":{}}],["volum",{"_index":1640,"title":{},"content":{"251":{"position":[[596,7]]}},"keywords":{}}],["voxel.middynet",{"_index":1057,"title":{},"content":{"164":{"position":[[321,14]]}},"keywords":{}}],["vpc",{"_index":824,"title":{"144":{"position":[[0,3]]}},"content":{"145":{"position":[[29,3]]}},"keywords":{}}],["wait",{"_index":571,"title":{"209":{"position":[[7,4]]},"371":{"position":[[7,4]]},"402":{"position":[[7,4]]},"441":{"position":[[7,4]]}},"content":{"21":{"position":[[1941,5]]},"136":{"position":[[130,4]]},"210":{"position":[[89,4]]},"212":{"position":[[86,4]]},"280":{"position":[[106,4]]},"354":{"position":[[568,4]]}},"keywords":{}}],["want",{"_index":73,"title":{},"content":{"2":{"position":[[537,4]]},"21":{"position":[[2353,4]]},"143":{"position":[[61,4]]},"147":{"position":[[53,4]]},"148":{"position":[[62,4]]},"149":{"position":[[69,4]]},"150":{"position":[[65,4]]},"151":{"position":[[86,4],[419,4]]},"153":{"position":[[116,4]]},"155":{"position":[[122,4]]},"156":{"position":[[236,4]]},"167":{"position":[[56,4]]},"174":{"position":[[1574,4],[1821,4],[1969,4],[2259,4],[2470,4]]},"188":{"position":[[396,4]]},"190":{"position":[[58,4]]},"243":{"position":[[143,4]]},"251":{"position":[[924,4]]},"263":{"position":[[454,7]]},"264":{"position":[[385,4]]},"473":{"position":[[33,4]]},"476":{"position":[[304,4]]}},"keywords":{}}],["ware",{"_index":1940,"title":{},"content":{"324":{"position":[[534,5]]}},"keywords":{}}],["warm",{"_index":1767,"title":{},"content":{"280":{"position":[[277,4]]},"324":{"position":[[660,4]]}},"keywords":{}}],["warmup",{"_index":668,"title":{"330":{"position":[[0,6]]},"395":{"position":[[0,7]]},"430":{"position":[[0,7]]},"467":{"position":[[0,7]]}},"content":{"34":{"position":[[1200,8]]},"37":{"position":[[1207,8]]},"43":{"position":[[1200,8]]},"91":{"position":[[1200,8]]},"102":{"position":[[298,8]]},"146":{"position":[[1212,8]]},"149":{"position":[[181,6]]},"324":{"position":[[611,7]]},"332":{"position":[[112,6],[263,7]]},"333":{"position":[[43,6]]},"395":{"position":[[322,8],[364,6],[391,8]]}},"keywords":{}}],["warmupmiddlewar",{"_index":667,"title":{},"content":{"34":{"position":[[1178,16]]},"37":{"position":[[1185,16]]},"43":{"position":[[1178,16]]},"91":{"position":[[1178,16]]},"102":{"position":[[276,16]]},"146":{"position":[[1190,16]]}},"keywords":{}}],["warn",{"_index":1203,"title":{},"content":{"173":{"position":[[203,5]]}},"keywords":{}}],["watch",{"_index":725,"title":{"62":{"position":[[6,5]]}},"content":{},"keywords":{}}],["way",{"_index":129,"title":{},"content":{"4":{"position":[[488,3]]},"5":{"position":[[546,3]]},"163":{"position":[[635,3]]},"165":{"position":[[155,3]]},"232":{"position":[[252,3]]},"265":{"position":[[27,3]]},"277":{"position":[[331,3]]}},"keywords":{}}],["we'v",{"_index":2240,"title":{},"content":{"466":{"position":[[0,5]]}},"keywords":{}}],["web",{"_index":107,"title":{},"content":{"4":{"position":[[127,3]]},"6":{"position":[[541,3]]},"324":{"position":[[1110,3]]}},"keywords":{}}],["webkitformboundaryppsqewf2bvjece0m",{"_index":1652,"title":{},"content":{"252":{"position":[[397,35]]}},"keywords":{}}],["webpack",{"_index":442,"title":{"15":{"position":[[0,8]]}},"content":{"15":{"position":[[9,7],[21,7]]}},"keywords":{}}],["webpack.config.mj",{"_index":445,"title":{},"content":{"15":{"position":[[56,19]]}},"keywords":{}}],["websocket",{"_index":624,"title":{"29":{"position":[[12,11]]}},"content":{"30":{"position":[[53,9]]},"281":{"position":[[1193,9]]},"282":{"position":[[634,9]]},"355":{"position":[[128,9],[261,9]]},"397":{"position":[[4,9],[36,9]]},"431":{"position":[[22,9]]},"432":{"position":[[24,9]]}},"keywords":{}}],["welcom",{"_index":876,"title":{},"content":{"152":{"position":[[69,7]]}},"keywords":{}}],["well",{"_index":772,"title":{"104":{"position":[[48,5]]}},"content":{"182":{"position":[[1137,4]]},"298":{"position":[[1691,5]]},"354":{"position":[[230,5]]}},"keywords":{}}],["west",{"_index":1232,"title":{},"content":{"174":{"position":[[520,4],[582,4],[784,4]]}},"keywords":{}}],["whether",{"_index":1215,"title":{},"content":{"173":{"position":[[667,7],[762,7]]},"174":{"position":[[1377,7]]},"177":{"position":[[205,7],[281,7],[568,7]]},"181":{"position":[[495,7],[610,7]]},"224":{"position":[[43,7]]}},"keywords":{}}],["whichev",{"_index":1838,"title":{},"content":{"298":{"position":[[944,9]]}},"keywords":{}}],["whole",{"_index":887,"title":{},"content":{"153":{"position":[[53,5]]},"189":{"position":[[82,5]]}},"keywords":{}}],["wildcard",{"_index":2014,"title":{},"content":{"347":{"position":[[277,9]]}},"keywords":{}}],["willfarrell2021",{"_index":980,"title":{},"content":{"159":{"position":[[379,17]]}},"keywords":{}}],["window",{"_index":1356,"title":{},"content":{"183":{"position":[[281,6]]}},"keywords":{}}],["windowensur",{"_index":1351,"title":{},"content":{"183":{"position":[[107,12]]}},"keywords":{}}],["winter@sharecov",{"_index":1942,"title":{},"content":{"324":{"position":[[672,17]]}},"keywords":{}}],["within",{"_index":840,"title":{},"content":{"148":{"position":[[580,6]]},"161":{"position":[[112,6]]},"164":{"position":[[134,6]]},"385":{"position":[[84,6]]}},"keywords":{}}],["without",{"_index":804,"title":{"136":{"position":[[26,7]]}},"content":{"207":{"position":[[359,7]]},"243":{"position":[[234,7]]},"303":{"position":[[1124,7]]},"322":{"position":[[770,7]]}},"keywords":{}}],["won't",{"_index":898,"title":{},"content":{"153":{"position":[[478,5]]},"362":{"position":[[361,5],[373,5]]}},"keywords":{}}],["word",{"_index":136,"title":{},"content":{"5":{"position":[[27,6]]}},"keywords":{}}],["work",{"_index":618,"title":{"162":{"position":[[7,5]]}},"content":{"24":{"position":[[0,7]]},"143":{"position":[[36,4]]},"147":{"position":[[28,4]]},"148":{"position":[[37,4]]},"149":{"position":[[44,4]]},"150":{"position":[[40,4]]},"151":{"position":[[61,4]]},"167":{"position":[[31,4]]},"189":{"position":[[201,4]]},"190":{"position":[[33,4]]},"322":{"position":[[96,7]]},"324":{"position":[[567,5],[1450,5]]},"395":{"position":[[23,4],[168,4]]},"466":{"position":[[19,4]]},"473":{"position":[[387,4]]},"476":{"position":[[94,4]]}},"keywords":{}}],["workaround",{"_index":2235,"title":{},"content":{"450":{"position":[[81,11]]}},"keywords":{}}],["worker",{"_index":1131,"title":{},"content":{"167":{"position":[[1050,6],[1279,6]]}},"keywords":{}}],["workmail",{"_index":816,"title":{"140":{"position":[[0,8]]}},"content":{"141":{"position":[[34,8]]}},"keywords":{}}],["world",{"_index":1456,"title":{},"content":{"198":{"position":[[208,6]]},"203":{"position":[[206,6]]},"229":{"position":[[448,6]]},"266":{"position":[[168,6]]},"278":{"position":[[226,6]]},"287":{"position":[[209,6]]},"304":{"position":[[222,6]]},"309":{"position":[[223,6]]},"319":{"position":[[196,6]]}},"keywords":{}}],["world</message>",{"_index":1722,"title":{},"content":{"266":{"position":[[738,23]]}},"keywords":{}}],["worri",{"_index":2050,"title":{},"content":{"355":{"position":[[705,5]]}},"keywords":{}}],["wrap",{"_index":1112,"title":{},"content":{"167":{"position":[[364,7]]},"324":{"position":[[844,5]]},"466":{"position":[[794,4]]}},"keywords":{}}],["wrapnumb",{"_index":1534,"title":{},"content":{"224":{"position":[[0,11]]}},"keywords":{}}],["wrapper",{"_index":1168,"title":{},"content":{"170":{"position":[[435,7]]},"324":{"position":[[553,7]]}},"keywords":{}}],["write",{"_index":234,"title":{},"content":{"6":{"position":[[180,7]]},"156":{"position":[[93,5]]},"157":{"position":[[1036,7]]},"167":{"position":[[330,7]]},"168":{"position":[[684,5]]},"189":{"position":[[163,7]]},"283":{"position":[[227,5]]},"477":{"position":[[85,5]]},"478":{"position":[[49,5]]}},"keywords":{}}],["written",{"_index":258,"title":{},"content":{"6":{"position":[[822,7]]}},"keywords":{}}],["ws",{"_index":1998,"title":{"334":{"position":[[0,2]]},"338":{"position":[[0,2]]},"349":{"position":[[0,2]]},"431":{"position":[[0,2]]},"432":{"position":[[0,2]]},"433":{"position":[[0,2]]},"468":{"position":[[0,2]]},"469":{"position":[[0,2]]},"470":{"position":[[0,2]]}},"content":{},"keywords":{}}],["wsjsonbodyparsermiddlewar",{"_index":626,"title":{},"content":{"31":{"position":[[39,26]]},"337":{"position":[[39,26]]}},"keywords":{}}],["wsrespons",{"_index":2007,"title":{},"content":{"342":{"position":[[39,10]]},"343":{"position":[[39,10],[194,12]]}},"keywords":{}}],["wsresponsemiddlewar",{"_index":627,"title":{},"content":{"31":{"position":[[107,20]]},"337":{"position":[[107,20]]},"352":{"position":[[86,20]]}},"keywords":{}}],["wsrouterhandl",{"_index":628,"title":{},"content":{"31":{"position":[[161,15]]},"352":{"position":[[39,15]]}},"keywords":{}}],["www",{"_index":1733,"title":{},"content":{"274":{"position":[[452,3]]}},"keywords":{}}],["x",{"_index":1170,"title":{},"content":{"170":{"position":[[454,1]]},"174":{"position":[[1475,1]]},"175":{"position":[[326,1]]},"178":{"position":[[1038,1]]},"189":{"position":[[467,1]]},"255":{"position":[[255,1]]},"323":{"position":[[171,1]]},"324":{"position":[[721,1]]},"327":{"position":[[110,1],[401,1]]},"399":{"position":[[73,1]]}},"keywords":{}}],["xray",{"_index":797,"title":{},"content":{"128":{"position":[[157,4]]},"197":{"position":[[122,6],[443,4],[487,4]]},"202":{"position":[[120,6],[439,4],[483,4]]},"286":{"position":[[104,6]]},"291":{"position":[[213,6],[383,4],[427,4],[482,4],[526,4]]},"298":{"position":[[132,6],[437,4],[481,4]]},"303":{"position":[[108,6],[422,4],[466,4]]},"308":{"position":[[136,6],[471,4],[515,4]]},"318":{"position":[[110,6],[282,4],[326,4]]},"324":{"position":[[703,4]]},"327":{"position":[[446,4]]},"340":{"position":[[144,6],[493,4],[537,4]]}},"keywords":{}}],["xray_trace_id",{"_index":1267,"title":{},"content":{"174":{"position":[[1438,13]]}},"keywords":{}}],["xss",{"_index":1674,"title":{},"content":{"255":{"position":[[400,3]]}},"keywords":{}}],["yarn.lock",{"_index":353,"title":{},"content":{"7":{"position":[[1397,9]]}},"keywords":{}}],["yarnclean",{"_index":292,"title":{},"content":{"7":{"position":[[257,10],[330,10]]}},"keywords":{}}],["you'd",{"_index":2072,"title":{},"content":{"359":{"position":[[859,5]]}},"keywords":{}}],["you'll",{"_index":601,"title":{},"content":{"21":{"position":[[2596,6],[2785,6]]},"167":{"position":[[383,6]]}},"keywords":{}}],["you'r",{"_index":574,"title":{},"content":{"21":{"position":[[1978,6]]},"174":{"position":[[1537,6],[2222,6]]},"179":{"position":[[415,6]]},"327":{"position":[[1190,6]]},"398":{"position":[[229,6]]}},"keywords":{}}],["you'v",{"_index":606,"title":{},"content":{"21":{"position":[[2723,6]]}},"keywords":{}}],["yourself",{"_index":2180,"title":{},"content":{"398":{"position":[[252,8]]}},"keywords":{}}],["zlib",{"_index":465,"title":{},"content":{"15":{"position":[[604,7]]},"293":{"position":[[7,4],[17,6]]},"294":{"position":[[7,4],[17,6]]}},"keywords":{}}],["zlib.createbrotlicompress",{"_index":1500,"title":{},"content":{"219":{"position":[[26,25]]},"293":{"position":[[220,27]]}},"keywords":{}}],["zlib.createdefl",{"_index":1504,"title":{},"content":{"219":{"position":[[151,18]]}},"keywords":{}}],["zlib.creategzip",{"_index":1502,"title":{},"content":{"219":{"position":[[93,15]]}},"keywords":{}}]],"pipeline":["stemmer"]} \ No newline at end of file +{"version":"2.3.9","fields":["title","content","keywords"],"fieldVectors":[["title/0",[0,705.102,1,984.48]],["content/0",[0,12.548,1,16.398,2,9.506,3,5.891,4,6.817,5,8.925,6,10.847,7,2.673,8,7.624,9,12.682,10,5.769,11,8.09,12,12.682,13,3.332,14,8.468,15,6.305,16,9.506,17,12.682,18,8.925]],["keywords/0",[]],["title/1",[13,249.996,19,582.904,20,690.024]],["content/1",[]],["keywords/1",[]],["title/2",[21,1183.107]],["content/2",[]],["keywords/2",[]],["title/3",[22,818.448]],["content/3",[22,6.723,23,4.82,24,8.193,25,11.963,26,10.92,27,4.26,28,11.963,29,11.963,30,11.963,31,11.963,32,8.916,33,11.963,34,11.963,35,11.963,36,6.097,37,10.92,38,10.92,39,11.963,40,11.963,41,11.963,42,11.963,43,10.92]],["keywords/3",[]],["title/4",[44,1329.282]],["content/4",[]],["keywords/4",[]],["title/5",[45,1183.107]],["content/5",[10,5.151,19,6.936,23,4.562,24,7.753,27,4.734,45,9.198,46,11.322,47,11.322,48,11.322,49,10.335,50,8.487,51,10.335,52,11.322,53,11.322,54,11.322,55,11.322,56,11.322,57,11.322,58,5.629,59,11.322,60,11.322,61,11.322,62,11.322,63,11.322,64,11.322]],["keywords/5",[]],["title/6",[65,1329.282]],["content/6",[7,3.87,23,2.456,24,4.174,27,4.692,32,2.718,50,4.569,65,5.564,66,14.261,67,8.009,68,8.009,69,13.017,70,6.095,71,3.975,72,6.095,73,2.575,74,9.859,75,1.556,76,7.39,77,6.095,78,1.649,79,2.059,80,6.289,81,1.53,82,3.277,83,4.174,84,6.095,85,3.975,86,9.859,87,6.095,88,4.952,89,2.832,90,8.282,91,4.743,92,4.07,93,2.797,94,3.538,95,4.743,96,3.808,97,2.96,98,3.975,99,2.337,100,4.42,101,5.564,102,3.106,103,4.743,104,4.952,105,4.174,106,3.665,107,4.42,108,3.808,109,3.888]],["keywords/6",[]],["title/7",[110,1456.318]],["content/7",[23,6.86,24,11.659,111,15.54,112,15.54,113,17.025,114,11.659,115,17.025]],["keywords/7",[]],["title/8",[116,1329.282]],["content/8",[7,3.642,23,2.106,24,3.58,27,4.769,32,2.331,50,3.919,73,2.271,75,2.219,78,1.414,79,1.766,82,2.81,88,4.247,89,2.429,90,7.75,91,4.068,92,3.491,93,3.688,94,3.035,95,4.068,96,3.266,97,2.539,98,7.276,99,4.277,100,3.791,101,4.772,102,2.664,103,4.068,104,4.247,105,3.58,106,3.143,107,3.791,108,3.266,109,3.335,116,7.934,117,5.228,118,5.228,119,5.228,120,4.673,121,5.228,122,5.228,123,5.228,124,5.228,125,5.228,126,8.692,127,5.228,128,5.228,129,4.472,130,4.772,131,5.228,132,5.228,133,4.247,134,5.228,135,4.472,136,4.247,137,1.398,138,1.439,139,1.558,140,3.919,141,4.878,142,4.974,143,6.37,144,2.81,145,4.472]],["keywords/8",[]],["title/9",[146,949.772]],["content/9",[]],["keywords/9",[]],["title/10",[147,1456.318]],["content/10",[23,4.82,24,8.193,27,4.921,43,10.92,50,8.968,83,8.193,148,11.963,149,11.963,150,11.963,151,10.232,152,11.963,153,7.632,154,11.963,155,11.963,156,11.963,157,11.963,158,11.963,159,11.963,160,11.963]],["keywords/10",[]],["title/11",[45,1183.107]],["content/11",[23,6.594,24,11.207,45,13.295,49,14.938,50,12.268,51,14.938,161,16.366,162,16.366,163,16.366]],["keywords/11",[]],["title/12",[164,1456.318]],["content/12",[23,4.89,24,8.31,27,4.813,37,11.077,38,11.077,50,9.097,83,8.31,111,11.077,112,11.077,153,7.742,165,12.135,166,12.135,167,12.135,168,12.135,169,12.135,170,12.135,171,12.135,172,12.135,173,12.135,174,12.135]],["keywords/12",[]],["title/13",[175,1245.606]],["content/13",[175,12.541,176,12.541,177,12.541,178,10.632,179,14.662,180,14.662,181,11.911,182,11.409,183,13.383,184,10.991,185,8.24,186,12.541,187,10.991,188,10.632,189,10.319]],["keywords/13",[]],["title/14",[190,1456.318]],["content/14",[]],["keywords/14",[]],["title/15",[191,347.617]],["content/15",[7,1.987,10,6.28,13,3.627,18,6.635,178,6.837,191,3.295,192,10.348,193,7.067,194,3.916,195,12.6,196,8.063,197,5.298,198,2.473,199,8.063,200,7.067,201,7.659,202,9.428,203,9.428,204,8.605,205,4.38,206,8.605,207,8.605,208,7.659,209,10.742,210,9.217,211,5.89,212,6.295,213,9.428,214,9.428,215,7.336,216,4.998,217,5.141,218,8.063,219,9.428,220,9.428,221,6.014,222,8.063,223,8.063]],["keywords/15",[]],["title/16",[224,1151.018,225,391.493]],["content/16",[7,0.621,13,0.775,24,3.623,27,4.79,58,2.631,67,4.298,69,2.691,73,3.196,75,2.873,78,0.797,80,1.881,81,0.74,93,1.501,99,2.759,137,1.414,138,0.812,139,0.879,141,2.313,178,3.837,182,2.294,191,1.718,194,2.491,197,1.657,198,0.948,209,2.294,210,1.968,211,1.842,216,3.816,221,1.881,225,1.003,226,1.923,227,2.948,228,2.948,229,6.57,230,2.948,231,2.395,232,2.138,233,3.209,234,1.484,235,3.966,236,4.829,237,2.948,238,1.881,239,2.948,240,2.948,241,2.522,242,2.948,243,2.948,244,3.392,245,1.188,246,2.395,247,2.613,248,2.585,249,2.019,250,2.21,251,2.294,252,2.075,253,2.522,254,2.691,255,1.158,256,1.806,257,0.775,258,1.484,259,5.291,260,2.948,261,7.197,262,5.291,263,5.291,264,5.291,265,5.291,266,5.291,267,2.522,268,2.522,269,1.466,270,2.294,271,2.522,272,1.466,273,2.948,274,1.67,275,1.384,276,1.563,277,2.948,278,2.395,279,1.881,280,1.968,281,1.502,282,2.522,283,2.019,284,6.084,285,5.065,286,3.38,287,5.291,288,3.724,289,5.291,290,2.948,291,4.525,292,5.291,293,5.291,294,1.657,295,5.291,296,2.522,297,2.948,298,2.691,299,2.948,300,1.772,301,2.948,302,2.395,303,2.948,304,2.948,305,2.075,306,1.178,307,1.741,308,2.395,309,2.691,310,1.842,311,2.691,312,2.522,313,1.711,314,2.395,315,1.328]],["keywords/16",[]],["title/17",[]],["content/17",[7,2.426,10,2.486,13,2.369,80,3.486,82,2.938,129,7.712,136,4.44,177,4.674,178,6.539,191,1.304,192,4.096,194,3.266,197,8.308,198,0.979,199,4.674,200,6.759,201,4.44,207,4.988,209,11.503,210,9.871,216,2.897,217,2.98,218,7.712,222,4.674,223,9.846,247,1.984,248,2.644,257,1.436,291,7.712,305,3.846,313,3.172,316,3.348,317,5.465,318,6.175,319,5.465,320,4.988,321,5.465,322,5.465,323,4.674,324,5.465,325,3.742,326,4.252,327,4.674,328,9.017,329,9.017,330,4.988,331,5.465,332,3.564,333,3.846,334,9.017,335,5.465,336,2.938,337,5.465,338,4.988,339,7.712,340,5.524,341,4.988,342,5.465,343,4.988,344,5.465,345,5.465,346,5.465,347,2.015,348,5.465,349,4.252,350,5.465,351,3.742,352,3.12,353,4.44,354,5.465,355,5.465,356,3.963,357,5.465,358,4.988,359,5.465,360,4.674,361,4.096,362,4.674,363,3.348,364,5.465]],["keywords/17",[]],["title/18",[365,895.641,366,1050.614]],["content/18",[7,0.981,20,3.374,26,4.247,27,3.125,44,4.247,83,5.397,85,6.688,153,2.968,178,3.374,181,3.78,198,1.412,215,3.62,232,3.374,233,5.382,235,3.487,283,5.397,284,2.161,365,3.62,366,7.194,367,4.247,368,4.652,369,4.247,370,7.436,371,3.979,372,3.034,373,2.968,374,7.882,375,4.652,376,3.78,377,4.652,378,4.652,379,3.78,380,3.78,381,7.882,382,3.274,383,3.62,384,4.247,385,4.652,386,4.652,387,4.652,388,9.359,389,4.652,390,4.652,391,4.652,392,4.652,393,4.652,394,4.652,395,4.652,396,4.652,397,4.652,398,4.652,399,4.652,400,4.652,401,4.652,402,4.652,403,4.652,404,4.247,405,4.652,406,4.247,407,4.652,408,4.652,409,4.652,410,4.652,411,4.652,412,4.652,413,4.652,414,4.652,415,7.882,416,7.882,417,4.652,418,4.652,419,4.652,420,12.071,421,12.329,422,13.507,423,4.652,424,4.652,425,4.652,426,4.652,427,4.652,428,4.652,429,4.652,430,4.652,431,4.652,432,4.652,433,4.652,434,4.652,435,4.652,436,4.652,437,4.652,438,4.652,439,4.652,440,4.652,441,2.797,442,4.652,443,4.652,444,4.652,445,4.652,446,4.652,447,4.652,448,4.652,449,4.652,450,4.652]],["keywords/18",[]],["title/19",[257,302.404,451,637.041]],["content/19",[3,3.293,10,1.87,27,4.914,32,1.832,68,3.338,71,2.68,73,1.852,75,2.386,78,1.112,81,3.899,137,1.099,138,1.131,151,3.515,188,2.98,191,1.692,194,1.166,238,2.622,248,1.628,255,1.614,256,4.342,257,3.296,258,4.704,274,2.238,281,2.094,306,5.48,307,2.427,315,1.851,361,3.08,380,3.338,451,6.943,452,3.515,453,3.751,454,3.338,455,2.98,456,3.08,457,1.715,458,3.16,459,3.515,460,4.109,461,9.347,462,2.814,463,4.109,464,4.109,465,7.818,466,3.751,467,1.138,468,2.309,469,4.109,470,4.109,471,4.109,472,2.241,473,3.515,474,4.109,475,4.109,476,3.751,477,4.109,478,4.109,479,4.109,480,4.109,481,2.68,482,4.167,483,4.733,484,3.08,485,3.659,486,7.994,487,5.253,488,4.109,489,4.109,490,4.109,491,3.751,492,3.515]],["keywords/19",[]],["title/20",[493,1245.606]],["content/20",[]],["keywords/20",[]],["title/21",[494,1024.945]],["content/21",[3,1.213,6,2.233,11,1.666,13,0.686,15,1.298,21,3.852,27,4.602,32,1.164,75,4.027,78,0.706,79,2.2,81,3.067,129,2.233,133,2.121,153,4.155,188,1.893,191,0.623,194,2.95,197,1.467,198,0.468,205,3.721,216,3.453,225,0.888,232,1.893,238,1.666,248,1.84,274,2.056,278,2.121,283,3.247,347,0.963,353,2.121,371,2.233,372,3.092,376,2.121,388,1.666,472,1.424,485,3.362,487,1.467,494,3.337,495,2.18,496,2.233,497,4.155,498,2.611,499,3.438,500,1.424,501,3.438,502,2.383,503,2.611,504,3.554,505,2.383,506,2.611,507,2.611,508,2.611,509,16.193,510,2.851,511,1.788,512,2.624,513,4.056,514,4.328,515,4.328,516,4.328,517,2.383,518,2.383,519,4.328,520,4.328,521,4.328,522,2.383,523,4.328,524,2.383,525,4.328,526,2.383,527,2.611,528,2.383,529,2.383,530,2.383,531,1.838,532,2.383,533,2.233,534,2.121,535,2.383,536,2.383,537,2.383,538,2.383,539,1.445,540,2.611,541,2.611,542,2.611,543,2.611,544,2.611,545,2.611,546,2.611,547,2.611,548,2.611,549,2.611,550,2.611,551,2.611,552,2.611,553,2.611,554,2.611,555,2.611,556,2.611,557,2.611,558,2.611,559,2.611,560,2.611,561,2.611,562,2.611,563,2.611,564,2.611,565,2.611,566,2.383,567,5.571,568,2.121,569,2.611,570,2.611,571,1.703,572,4.328,573,2.233,574,1.957,575,2.611,576,1.838,577,2.233,578,2.611,579,1.57,580,2.383,581,2.611,582,2.121,583,2.121,584,1.6,585,2.514,586,2.386,587,2.611,588,2.233,589,2.611,590,1.838,591,1.631,592,2.383,593,2.611,594,2.032,595,2.611,596,2.121,597,2.611,598,2.611,599,2.233,600,2.032,601,3.852,602,1.893,603,2.383,604,4.742,605,2.383,606,2.611,607,1.703,608,2.233]],["keywords/21",[]],["title/22",[609,1329.282]],["content/22",[27,4.981,73,1.325,75,5.093,78,1.372,79,2.862,81,4.283,205,3.937,248,1.947,274,1.601,458,2.261,487,2.85,495,3.896,496,4.337,499,6.145,500,2.765,501,6.145,502,4.629,504,6.352,505,4.629,513,7.248,514,4.629,515,7.735,516,4.629,517,4.629,518,4.629,519,7.735,520,7.735,521,7.735,522,4.629,523,7.735,524,4.629,525,7.735,526,4.629,528,4.629,529,4.629,530,4.629,531,3.569,532,4.629,533,4.337,534,4.12,535,4.629,536,4.629,537,4.629,538,4.629,610,8.474,611,5.071,612,5.071,613,5.071,614,5.071,615,5.071]],["keywords/22",[]],["title/23",[215,740.421,234,478.905,616,620.569]],["content/23",[]],["keywords/23",[]],["title/24",[617,1329.282]],["content/24",[]],["keywords/24",[]],["title/25",[7,242.61,618,484.7]],["content/25",[7,3.819,13,4.761,198,3.247,617,16.54]],["keywords/25",[]],["title/26",[225,495.333]],["content/26",[27,4.742,73,3.765,75,3.679,78,3.898,81,3.617,138,3.968,191,4.412,248,3.311,257,3.786,457,6.014,619,6.49]],["keywords/26",[]],["title/27",[7,242.61,618,484.7]],["content/27",[7,3.321,13,5.137,139,4.695,215,15.216,234,7.93,616,10.275,620,9.146,621,15.755,622,7.834]],["keywords/27",[]],["title/28",[225,495.333]],["content/28",[27,4.915,73,3.701,75,3.618,78,3.833,81,3.557,138,3.901,191,3.382,248,3.255,257,3.723,457,5.913,623,11.512]],["keywords/28",[]],["title/29",[139,283.568,234,478.905,616,620.569]],["content/29",[]],["keywords/29",[]],["title/30",[7,242.61,618,484.7]],["content/30",[7,3.518,13,4.385,139,4.973,198,2.99,234,10.195,622,8.298,624,13.558]],["keywords/30",[]],["title/31",[225,495.333]],["content/31",[27,4.601,73,5.22,75,0.969,78,1.027,79,1.282,81,2.208,82,2.04,93,1.877,120,2.04,137,1.015,138,1.045,141,7.794,142,2.95,143,2.167,185,2.133,191,1.579,198,1.186,205,1.763,216,2.012,217,4.796,233,3.921,244,3.532,245,4.242,247,1.378,248,1.52,257,0.997,274,1.198,275,1.782,284,3.074,310,4.134,332,2.475,457,1.584,495,3.042,619,1.709,625,2.845,626,2.671,627,2.845,628,2.671,629,5.149,630,2.167,631,2.953,632,2.953,633,2.325,634,2.953,635,2.953,636,2.621,637,2.953,638,2.666,639,2.953,640,2.953,641,2.371,642,2.953,643,2.012,644,5.149,645,2.953,646,2.953,647,3.608,648,2.953,649,2.671,650,2.845,651,2.241,652,2.953,653,5.149,654,4.657,655,2.953,656,2.752,657,2.845,658,2.845,659,2.953,660,2.953,661,2.845,662,2.475,663,4.798,664,2.534,665,2.845,666,4.531,667,2.953,668,5.149,669,2.953,670,2.845,671,2.953,672,2.953,673,2.953,674,2.953,675,2.752,676,2.752,677,2.671,678,2.953,679,2.845,680,2.953]],["keywords/31",[]],["title/32",[681,1329.282]],["content/32",[]],["keywords/32",[]],["title/33",[7,242.61,618,484.7]],["content/33",[7,3.819,13,4.761,198,3.247,681,16.54]],["keywords/33",[]],["title/34",[225,495.333]],["content/34",[27,4.915,73,3.701,75,3.618,78,3.833,81,3.557,138,3.901,191,3.382,248,3.255,257,3.723,457,5.913,623,11.512]],["keywords/34",[]],["title/35",[234,478.905,616,620.569,682,669.686]],["content/35",[]],["keywords/35",[]],["title/36",[7,242.61,618,484.7]],["content/36",[7,3.518,13,4.385,198,2.99,234,10.195,622,8.298,624,13.558,682,11.746]],["keywords/36",[]],["title/37",[225,495.333]],["content/37",[0,4.765,27,4.796,73,5.059,75,3.051,78,2.104,79,2.627,92,9.716,93,2.207,138,2.142,191,2.852,233,3.468,244,2.609,245,3.134,248,4.449,683,7.1,684,6.653,685,7.1,686,4.515,687,10.907,688,7.779,689,10.907,690,7.779,691,10.907,692,7.779,693,5.327,694,12.445,695,6.653,696,7.1,697,6.653,698,7.1]],["keywords/37",[]],["title/38",[699,1329.282]],["content/38",[]],["keywords/38",[]],["title/39",[7,242.61,618,484.7]],["content/39",[7,4.429,13,4.661,198,3.179,699,16.192]],["keywords/39",[]],["title/40",[225,495.333]],["content/40",[27,4.742,73,3.765,75,3.679,78,3.898,81,3.617,138,3.968,191,4.412,248,3.311,257,3.786,457,6.014,619,6.49]],["keywords/40",[]],["title/41",[234,478.905,282,813.863,616,620.569]],["content/41",[]],["keywords/41",[]],["title/42",[7,242.61,618,484.7]],["content/42",[7,3.518,13,4.385,198,2.99,234,10.195,282,14.274,622,8.298,624,13.558]],["keywords/42",[]],["title/43",[225,495.333]],["content/43",[27,4.601,73,5.22,75,0.969,78,1.027,81,2.208,82,2.04,93,1.877,120,2.04,137,1.015,138,1.045,141,7.794,142,2.95,143,2.167,185,2.133,191,1.579,198,1.186,205,1.763,216,2.012,217,4.796,233,3.921,244,3.532,245,4.242,247,1.378,248,1.52,257,0.997,274,1.198,275,1.782,284,3.074,310,4.134,332,2.475,457,1.584,495,3.042,619,1.709,625,2.845,626,2.671,627,2.845,628,2.671,629,5.149,630,2.167,631,2.953,632,2.953,633,2.325,634,2.953,635,2.953,636,2.621,637,2.953,638,2.666,639,2.953,640,2.953,641,2.371,642,2.953,643,2.012,644,5.149,645,2.953,646,2.953,647,3.608,648,2.953,649,2.671,650,2.845,651,2.241,652,2.953,653,5.149,654,4.657,655,2.953,656,2.752,657,2.845,658,2.845,659,2.953,660,2.953,661,2.845,662,2.475,663,4.798,664,2.534,665,2.845,666,4.531,667,2.953,668,5.149,669,2.953,670,2.845,671,2.953,672,2.953,673,2.953,674,2.953,675,2.752,676,2.752,677,2.671,678,2.953,679,2.845,680,2.953,700,2.953]],["keywords/43",[]],["title/44",[351,651.613,701,868.536,702,813.863]],["content/44",[]],["keywords/44",[]],["title/45",[7,242.61,618,484.7]],["content/45",[7,3.662,13,4.565,198,3.113,351,11.898,701,15.86,702,14.861]],["keywords/45",[]],["title/46",[225,495.333]],["content/46",[27,4.578,73,5.183,75,1.65,78,1,79,1.248,81,1.623,82,1.987,93,1.834,120,4.632,137,0.988,138,1.018,141,7.897,142,2.882,143,2.11,185,2.077,191,1.543,198,1.158,205,1.717,217,4.699,233,1.648,244,3.467,245,4.165,247,1.342,248,2.966,274,1.167,275,1.736,332,2.41,495,2.972,625,2.771,626,2.601,627,2.771,628,2.601,629,5.03,630,2.11,631,2.876,632,2.876,633,2.264,634,2.876,635,2.876,636,2.561,637,2.876,638,2.605,639,2.876,640,2.876,641,2.309,642,2.876,643,1.959,644,5.03,645,2.876,646,2.876,647,3.525,648,2.876,650,2.771,651,2.183,656,2.68,657,2.771,658,2.771,659,2.876,660,2.876,661,2.771,662,2.41,663,4.688,664,2.468,665,2.771,666,4.427,667,2.876,668,5.03,669,2.876,670,2.771,671,2.876,672,2.876,673,2.876,674,2.876,675,2.68,676,2.68,677,2.601,678,2.876,680,2.876,686,2.145,693,2.531,703,3.374,704,5.901,705,6.465,706,6.465,707,5.901,708,4.55,709,3.374,710,3.003,711,2.601,712,3.374]],["keywords/46",[]],["title/47",[713,1329.282]],["content/47",[]],["keywords/47",[]],["title/48",[7,242.61,618,484.7]],["content/48",[7,4.429,13,4.661,198,3.179,713,16.192]],["keywords/48",[]],["title/49",[225,495.333]],["content/49",[27,4.742,73,3.765,75,3.679,78,3.898,81,3.617,138,3.968,191,4.412,248,3.311,257,3.786,457,6.014,619,6.49]],["keywords/49",[]],["title/50",[539,526.638,714,951.54,715,951.54]],["content/50",[]],["keywords/50",[]],["title/51",[7,242.61,618,484.7]],["content/51",[13,4.761,198,3.247,539,10.029,716,11.56]],["keywords/51",[]],["title/52",[225,495.333]],["content/52",[27,4.62,73,4.578,75,3.39,78,3.592,81,3.333,138,3.656,191,4.183,248,3.05,257,3.489,457,5.542,619,5.98,636,5.261,717,8.135,718,7.842,719,8.135]],["keywords/52",[]],["title/53",[720,1050.614,721,1050.614]],["content/53",[]],["keywords/53",[]],["title/54",[7,242.61,618,484.7]],["content/54",[7,3.739,13,4.661,198,3.179,720,16.192,721,16.192]],["keywords/54",[]],["title/55",[225,495.333]],["content/55",[27,4.745,73,3.469,75,3.39,78,3.592,81,3.333,138,3.656,189,9.346,191,4.183,198,2.379,248,3.05,257,3.489,457,5.542,465,6.683,619,5.98,722,13.279]],["keywords/55",[]],["title/56",[197,646.87,723,1050.614]],["content/56",[]],["keywords/56",[]],["title/57",[7,242.61,618,484.7]],["content/57",[7,4.429,13,4.661,198,3.179,724,17.74]],["keywords/57",[]],["title/58",[225,495.333]],["content/58",[27,4.742,73,3.765,75,3.679,78,3.898,81,3.617,138,3.968,191,4.412,248,3.311,257,3.786,457,6.014,619,6.49]],["keywords/58",[]],["title/59",[71,949.772]],["content/59",[]],["keywords/59",[]],["title/60",[7,242.61,618,484.7]],["content/60",[7,4.429,13,4.661,71,11.57,198,3.179]],["keywords/60",[]],["title/61",[225,495.333]],["content/61",[27,4.62,73,4.578,75,3.39,78,3.592,81,3.333,138,3.656,191,4.183,248,3.05,257,3.489,457,5.542,619,5.98,636,5.261,717,8.135,718,7.842,719,8.135]],["keywords/61",[]],["title/62",[725,1329.282]],["content/62",[]],["keywords/62",[]],["title/63",[7,242.61,618,484.7]],["content/63",[7,4.429,13,4.661,198,3.179,725,16.192]],["keywords/63",[]],["title/64",[225,495.333]],["content/64",[27,4.62,73,4.578,75,3.39,78,3.592,81,3.333,138,3.656,191,4.183,248,3.05,257,3.489,457,5.542,619,5.98,636,5.261,717,8.135,718,7.842,719,8.135]],["keywords/64",[]],["title/65",[726,929.036]],["content/65",[]],["keywords/65",[]],["title/66",[7,242.61,618,484.7]],["content/66",[7,3.739,13,4.661,198,3.179,622,8.82,726,11.317]],["keywords/66",[]],["title/67",[225,495.333]],["content/67",[27,4.62,73,4.578,75,3.39,78,3.592,81,3.333,138,3.656,191,4.183,248,3.05,257,3.489,457,5.542,619,5.98,636,5.261,717,8.135,718,7.842,719,8.135]],["keywords/67",[]],["title/68",[727,1329.282]],["content/68",[]],["keywords/68",[]],["title/69",[7,242.61,618,484.7]],["content/69",[7,3.739,13,4.661,198,3.179,622,8.82,727,16.192]],["keywords/69",[]],["title/70",[225,495.333]],["content/70",[27,4.742,73,3.765,75,3.679,78,3.898,81,3.617,138,3.968,191,4.412,248,3.311,257,3.786,457,6.014,619,6.49]],["keywords/70",[]],["title/71",[728,1245.606]],["content/71",[]],["keywords/71",[]],["title/72",[7,242.61,618,484.7]],["content/72",[7,3.739,13,4.661,198,3.179,622,8.82,728,15.173]],["keywords/72",[]],["title/73",[225,495.333]],["content/73",[27,4.742,73,3.765,75,3.679,78,3.898,81,3.617,138,3.968,191,4.412,248,3.311,257,3.786,457,6.014,619,6.49]],["keywords/73",[]],["title/74",[729,1329.282]],["content/74",[]],["keywords/74",[]],["title/75",[7,242.61,618,484.7]],["content/75",[7,3.739,13,4.661,198,3.179,622,8.82,729,16.192]],["keywords/75",[]],["title/76",[225,495.333]],["content/76",[27,4.915,73,3.701,75,3.618,78,3.833,81,3.557,138,3.901,191,3.382,248,3.255,257,3.723,457,5.913,623,11.512]],["keywords/76",[]],["title/77",[0,892.126]],["content/77",[]],["keywords/77",[]],["title/78",[7,242.61,618,484.7]],["content/78",[0,11.1,13,4.761,198,3.247,622,9.009]],["keywords/78",[]],["title/79",[225,495.333]],["content/79",[27,4.742,73,3.765,75,3.679,78,3.898,81,3.617,138,3.968,191,4.412,248,3.311,257,3.786,457,6.014,619,6.49]],["keywords/79",[]],["title/80",[730,951.54,731,868.536,732,773.027]],["content/80",[]],["keywords/80",[]],["title/81",[7,242.61,618,484.7]],["content/81",[7,4.429,13,4.661,198,3.179,732,14.412]],["keywords/81",[]],["title/82",[225,495.333]],["content/82",[27,4.742,73,3.765,75,3.679,78,3.898,81,3.617,138,3.968,191,4.412,248,3.311,257,3.786,457,6.014,619,6.49]],["keywords/82",[]],["title/83",[137,307.717,732,935.083]],["content/83",[]],["keywords/83",[]],["title/84",[7,242.61,618,484.7]],["content/84",[7,4.375,13,4.565,137,4.645,198,3.113,732,14.116]],["keywords/84",[]],["title/85",[225,495.333]],["content/85",[27,4.742,73,3.765,75,3.679,78,3.898,81,3.617,138,3.968,191,4.412,248,3.311,257,3.786,457,6.014,619,6.49]],["keywords/85",[]],["title/86",[733,1329.282]],["content/86",[]],["keywords/86",[]],["title/87",[7,242.61,618,484.7]],["content/87",[7,3.589,13,4.473,137,4.552,198,3.051,622,8.465,716,10.861,733,15.54]],["keywords/87",[]],["title/88",[225,495.333]],["content/88",[27,4.915,73,3.701,75,3.618,78,3.833,81,3.557,138,3.901,191,3.382,248,3.255,257,3.723,457,5.913,623,11.512]],["keywords/88",[]],["title/89",[102,413.297,140,607.92,734,693.649,735,740.247]],["content/89",[]],["keywords/89",[]],["title/90",[7,242.61,618,484.7]],["content/90",[13,4.761,198,3.247,622,9.009,735,16.54]],["keywords/90",[]],["title/91",[225,495.333]],["content/91",[27,4.62,73,4.578,75,3.39,78,3.592,81,3.333,138,3.656,191,4.183,248,3.05,257,3.489,457,5.542,619,5.98,636,5.261,717,8.135,718,7.842,719,8.135]],["keywords/91",[]],["title/92",[102,484.923,734,813.863,736,868.536]],["content/92",[]],["keywords/92",[]],["title/93",[7,242.61,618,484.7]],["content/93",[13,4.565,102,8.855,198,3.113,734,14.861,736,15.86,737,17.375]],["keywords/93",[]],["title/94",[225,495.333]],["content/94",[27,4.62,73,4.578,75,3.39,78,3.592,81,3.333,138,3.656,191,4.183,248,3.05,257,3.489,457,5.542,619,5.98,636,5.261,717,8.135,718,7.842,719,8.135]],["keywords/94",[]],["title/95",[347,424.328,738,984.48]],["content/95",[]],["keywords/95",[]],["title/96",[7,242.61,618,484.7]],["content/96",[7,3.518,13,4.385,139,4.973,198,2.99,234,10.195,622,8.298,624,13.558]],["keywords/96",[]],["title/97",[225,495.333]],["content/97",[27,4.593,32,1.677,73,5.208,75,0.96,78,1.018,79,1.271,81,2.192,82,2.022,93,1.863,120,2.022,137,1.006,138,1.036,141,7.769,142,2.927,143,2.148,185,2.114,191,1.567,198,1.176,205,1.748,216,1.994,217,4.763,233,3.894,244,3.51,245,4.216,247,1.366,248,1.508,257,0.988,274,1.188,275,1.767,284,3.05,310,4.102,332,2.453,457,1.57,495,3.018,619,1.694,625,2.82,626,2.648,627,2.82,628,2.648,629,5.109,630,2.148,631,2.927,632,2.927,633,2.304,634,2.927,635,2.927,636,2.601,637,2.927,638,2.645,639,2.927,640,2.927,641,2.35,642,2.927,643,1.994,644,5.109,645,2.927,646,2.927,647,3.58,648,2.927,649,2.648,650,2.82,651,2.221,652,2.927,653,5.109,654,4.62,655,2.927,656,2.728,657,2.82,658,2.82,659,2.927,660,2.927,661,2.82,662,2.453,663,4.761,664,2.512,665,2.82,666,4.496,667,2.927,668,5.109,669,2.927,670,2.82,671,2.927,672,2.927,673,2.927,674,2.927,675,2.728,676,2.728,677,2.648,678,2.927,679,2.82,680,2.927,739,3.056]],["keywords/97",[]],["title/98",[740,935.083,741,1050.614]],["content/98",[]],["keywords/98",[]],["title/99",[7,242.61,618,484.7]],["content/99",[7,3.589,13,4.473,198,3.051,269,8.465,622,8.465,740,13.831,741,15.54]],["keywords/99",[]],["title/100",[225,495.333]],["content/100",[27,4.62,73,4.578,75,3.39,78,3.592,81,3.333,138,3.656,191,4.183,248,3.05,257,3.489,457,5.542,619,5.98,636,5.261,717,8.135,718,7.842,719,8.135]],["keywords/100",[]],["title/101",[742,1329.282]],["content/101",[]],["keywords/101",[]],["title/102",[7,242.61,618,484.7]],["content/102",[13,4.761,198,3.247,622,9.009,742,16.54]],["keywords/102",[]],["title/103",[225,495.333]],["content/103",[27,4.62,73,4.578,75,3.39,78,3.592,81,3.333,138,3.656,191,4.183,248,3.05,257,3.489,457,5.542,619,5.98,636,5.261,717,8.135,718,7.842,719,8.135]],["keywords/103",[]],["title/104",[7,242.61,137,307.717]],["content/104",[]],["keywords/104",[]],["title/105",[13,249.996,194,269.948,743,951.54]],["content/105",[27,4.652,73,5.3,75,2.082,81,2.047,82,4.383,137,2.18,138,2.245,191,2.957,216,4.323,233,5.523,248,1.873,257,2.142,284,5.755,310,7.74,457,3.403,495,5.695,625,6.112,626,5.739,627,6.112,628,5.739,649,5.739,650,6.112,651,4.815,652,6.345,653,9.639,654,8.718,655,6.345,658,6.112,679,6.112,744,8.154,745,7.443,746,4.815,747,8.154,748,8.154,749,8.154,750,6.624]],["keywords/105",[]],["title/106",[258,478.905,751,497.674,752,868.536]],["content/106",[27,4.985,73,4.278,75,1.481,78,1.57,81,2.377,95,4.515,96,3.625,100,6.869,102,2.957,106,5.694,107,4.208,108,5.918,109,3.702,137,1.551,138,1.598,191,2.261,198,2.482,248,1.333,257,1.524,306,3.784,455,4.208,456,4.35,457,2.421,481,3.784,487,3.261,492,4.963,750,4.714,753,9.472,754,9.472,755,4.35,756,8.646,757,9.472,758,8.041,759,8.646,760,4.714,761,5.802,762,5.296,763,5.802,764,4.963,765,5.296,766,4.714,767,5.802,768,8.646,769,5.296,770,4.208,771,5.802,772,5.802]],["keywords/106",[]],["title/107",[71,620.569,752,868.536,773,773.027]],["content/107",[5,3.896,27,5.085,73,4.183,75,1.413,78,1.498,81,2.288,97,4.426,98,3.611,106,5.48,107,4.015,137,1.48,138,1.524,191,2.176,198,2.413,248,1.272,257,1.455,306,3.641,351,3.791,352,3.161,455,4.015,456,4.15,457,2.31,481,3.611,482,4.063,487,3.111,492,4.735,726,5.814,750,4.498,756,8.319,758,7.816,768,5.053,774,9.114,775,4.498,776,9.114,777,9.114,778,4.498,779,6.241,780,4.735,781,4.735,782,4.498,783,5.536,784,5.536]],["keywords/107",[]],["title/108",[94,845.36]],["content/108",[]],["keywords/108",[]],["title/109",[7,242.61,618,484.7]],["content/109",[7,3.739,13,4.661,94,10.298,198,3.179,622,8.82]],["keywords/109",[]],["title/110",[225,495.333]],["content/110",[13,3.188,27,4.624,73,4.31,75,3.098,78,3.282,81,4.705,94,7.044,138,3.341,191,3.938,248,2.788,257,3.188,457,5.064,619,5.465,636,4.807,717,7.434,718,7.166,719,7.434,785,9.859]],["keywords/110",[]],["title/111",[97,558.95,786,719.148]],["content/111",[]],["keywords/111",[]],["title/112",[7,242.61,618,484.7]],["content/112",[7,3.589,13,4.473,97,8.268,198,3.051,622,8.465,786,10.637,787,15.54]],["keywords/112",[]],["title/113",[225,495.333]],["content/113",[27,4.62,73,4.578,75,3.39,78,3.592,81,3.333,138,3.656,191,4.183,248,3.05,257,3.489,457,5.542,619,5.98,636,5.261,717,8.135,718,7.842,719,8.135]],["keywords/113",[]],["title/114",[140,862.806,740,935.083]],["content/114",[]],["keywords/114",[]],["title/115",[7,242.61,618,484.7]],["content/115",[7,3.739,13,4.661,198,3.179,622,8.82,740,14.412]],["keywords/115",[]],["title/116",[225,495.333]],["content/116",[27,4.62,73,4.578,75,3.39,78,3.592,81,3.333,138,3.656,191,4.183,248,3.05,257,3.489,457,5.542,619,5.98,636,5.261,717,8.135,718,7.842,719,8.135]],["keywords/116",[]],["title/117",[788,1329.282]],["content/117",[]],["keywords/117",[]],["title/118",[7,242.61,618,484.7]],["content/118",[7,4.122,13,5.137,198,2.823,347,5.808,622,9.722,788,14.381,789,15.755,790,13.476]],["keywords/118",[]],["title/119",[225,495.333]],["content/119",[27,4.742,73,3.765,75,3.679,78,3.898,81,3.617,138,3.968,191,4.412,248,3.311,257,3.786,457,6.014,619,6.49]],["keywords/119",[]],["title/120",[97,558.95,99,441.282]],["content/120",[]],["keywords/120",[]],["title/121",[7,242.61,618,484.7]],["content/121",[13,4.218,97,10.413,99,8.581,791,13.732,792,16.055]],["keywords/121",[]],["title/122",[225,495.333]],["content/122",[7,2.265,27,4.452,73,4.591,75,2.744,78,2.907,81,2.697,89,4.992,93,3.049,98,7.008,99,4.12,138,2.959,191,3.62,238,6.855,248,2.469,257,2.823,454,8.73,457,4.485,619,4.839,793,10.746,794,10.127,795,15.167,796,6.855,797,10.746,798,10.746,799,10.746,800,10.746]],["keywords/122",[]],["title/123",[97,707.207]],["content/123",[]],["keywords/123",[]],["title/124",[7,242.61,618,484.7]],["content/124",[7,3.739,13,4.661,97,8.615,198,3.179,622,8.82]],["keywords/124",[]],["title/125",[225,495.333]],["content/125",[13,3.099,27,4.584,73,4.227,75,3.012,78,3.191,81,4.99,97,5.729,138,3.248,191,3.863,248,2.71,257,3.099,457,4.923,619,5.312,636,4.673,717,7.226,718,6.966,719,7.226,785,9.583,801,7.092]],["keywords/125",[]],["title/126",[802,1329.282]],["content/126",[]],["keywords/126",[]],["title/127",[7,242.61,618,484.7]],["content/127",[7,3.739,13,4.661,198,3.179,622,8.82,802,16.192]],["keywords/127",[]],["title/128",[225,495.333]],["content/128",[27,4.742,73,3.765,75,3.679,78,3.898,81,3.617,138,3.968,191,4.412,248,3.311,257,3.786,457,6.014,619,6.49]],["keywords/128",[]],["title/129",[785,1183.107]],["content/129",[]],["keywords/129",[]],["title/130",[7,242.61,618,484.7]],["content/130",[7,3.739,13,4.661,198,3.179,622,8.82,785,14.412]],["keywords/130",[]],["title/131",[225,495.333]],["content/131",[27,4.62,73,4.578,75,3.39,78,3.592,81,3.333,138,3.656,191,4.183,248,3.05,257,3.489,457,5.542,619,5.98,636,5.261,717,8.135,718,7.842,719,8.135]],["keywords/131",[]],["title/132",[102,586.582,751,602.006]],["content/132",[]],["keywords/132",[]],["title/133",[7,242.61,618,484.7]],["content/133",[7,3.739,13,4.661,102,9.041,198,3.179,751,9.278]],["keywords/133",[]],["title/134",[225,495.333]],["content/134",[27,4.742,73,3.765,75,3.679,78,3.898,81,3.617,138,3.968,191,4.412,248,3.311,257,3.786,457,6.014,619,6.49]],["keywords/134",[]],["title/135",[803,1329.282]],["content/135",[]],["keywords/135",[]],["title/136",[7,242.61,618,484.7]],["content/136",[7,3.739,13,4.661,352,10.129,622,8.82,803,16.192]],["keywords/136",[]],["title/137",[225,495.333]],["content/137",[27,4.742,73,3.765,75,3.679,78,3.898,81,3.617,138,3.968,191,4.412,248,3.311,257,3.786,457,6.014,619,6.49]],["keywords/137",[]],["title/138",[804,1456.318]],["content/138",[]],["keywords/138",[]],["title/139",[13,164.479,16,469.286,153,399.377,494,440.606,805,487.145,806,535.465]],["content/139",[0,8.982,137,4.996,225,4.987,326,11.409,571,9.562,807,12.189,808,11.449,809,12.541,810,12.541,811,12.541,812,13.383,813,11.911]],["keywords/139",[]],["title/140",[814,1050.614,815,1050.614]],["content/140",[13,2.007,27,4.642,68,9.573,73,4.564,75,3.008,78,2.066,114,5.231,138,2.103,141,3.339,191,1.823,198,1.369,226,4.981,233,3.405,244,2.562,245,3.078,248,1.755,283,5.231,313,4.434,336,4.106,458,3.405,472,4.165,591,4.772,620,4.434,814,13.131,815,10.755,816,8.293,817,5.231,818,5.231,819,4.981,820,4.981,821,5.1,822,11.783,823,7.638,824,11.783,825,7.638,826,7.638,827,7.638,828,7.638,829,7.638,830,7.638,831,7.638,832,5.539,833,6.205,834,7.638]],["keywords/140",[]],["title/141",[801,875.54]],["content/141",[]],["keywords/141",[]],["title/142",[7,242.61,618,484.7]],["content/142",[7,3.739,13,4.661,198,3.179,622,8.82,801,10.665]],["keywords/142",[]],["title/143",[225,495.333]],["content/143",[27,4.46,73,4.861,75,3.054,78,3.236,81,3.003,138,3.294,191,3.9,248,2.748,257,3.143,457,4.992,619,5.388,636,4.739,643,6.342,717,7.329,718,7.065,719,7.329,786,7.475,835,11.963,836,10.232,837,7.988,838,11.963]],["keywords/143",[]],["title/144",[839,1329.282]],["content/144",[114,10.218,226,9.731,336,8.021,472,8.137,591,9.322,620,8.661,816,13.3,817,10.218,818,10.218,819,9.731,820,9.731,821,9.963,839,13.619]],["keywords/144",[]],["title/145",[840,1245.606]],["content/145",[114,10.218,226,9.731,336,8.021,472,8.137,591,9.322,620,8.661,816,13.3,817,10.218,818,10.218,819,9.731,820,9.731,821,9.963,840,12.762]],["keywords/145",[]],["title/146",[200,862.806,318,788.216]],["content/146",[114,9.389,200,10.277,226,8.942,318,12.256,336,7.37,472,7.477,591,8.566,620,7.959,651,8.096,816,12.596,817,9.389,818,9.389,819,8.942,820,8.942,821,9.155,841,13.71,842,13.71]],["keywords/146",[]],["title/147",[318,788.216,843,788.216]],["content/147",[114,10.04,226,9.562,318,10.04,336,7.882,472,7.996,591,9.161,620,8.511,816,13.153,817,10.04,818,10.04,819,9.562,820,9.562,821,9.79,843,10.04]],["keywords/147",[]],["title/148",[844,1050.614,845,1050.614]],["content/148",[]],["keywords/148",[]],["title/149",[7,242.61,618,484.7]],["content/149",[7,3.662,13,4.565,198,3.113,622,8.639,844,15.86,845,15.86]],["keywords/149",[]],["title/150",[225,495.333]],["content/150",[27,4.618,58,1.87,73,5.208,75,0.96,78,1.018,79,1.271,81,2.192,82,2.022,93,1.863,120,2.022,137,1.006,138,1.036,141,7.769,142,2.927,143,2.148,185,2.114,191,1.567,198,1.176,205,1.748,216,1.994,217,4.763,233,3.894,244,3.51,245,4.216,247,1.366,248,1.508,257,0.988,274,1.188,275,1.767,284,3.05,310,4.102,332,2.453,457,1.57,495,3.018,619,1.694,625,2.82,626,2.648,627,2.82,628,2.648,629,5.109,630,2.148,631,2.927,632,2.927,633,2.304,634,2.927,635,2.927,636,2.601,637,2.927,638,2.645,639,2.927,640,2.927,641,2.35,642,2.927,643,1.994,644,5.109,645,2.927,646,2.927,647,3.58,648,2.927,649,2.648,650,2.82,651,2.221,652,2.927,653,5.109,654,4.62,655,2.927,656,2.728,657,2.82,658,2.82,659,2.927,660,2.927,661,2.82,662,2.453,663,4.761,664,2.512,665,2.82,666,4.496,667,2.927,668,5.109,669,2.927,670,2.82,671,2.927,672,2.927,673,2.927,674,2.927,675,2.728,676,2.728,677,2.648,678,2.927,679,2.82,680,2.927]],["keywords/150",[]],["title/151",[7,148.94,8,424.819,94,410.175,810,604.378,846,644.978]],["content/151",[0,6.004,3,2.811,7,1.276,8,3.638,11,3.861,27,4.606,32,2.698,73,1.581,75,2.502,81,1.519,94,5.69,100,7.108,106,3.638,114,4.144,185,5.508,197,3.401,198,1.756,205,2.811,226,3.947,247,4.485,258,3.046,274,1.91,336,3.253,465,3.046,472,5.345,586,3.046,591,3.781,600,4.709,620,3.513,663,7.108,810,5.176,816,6.898,817,4.144,818,4.144,819,6.392,820,3.947,821,4.041,846,5.524,847,8.383,848,3.861,849,6.052,850,6.052,851,5.524,852,5.524,853,4.916,854,6.052,855,8.946,856,6.052,857,6.052,858,12.353,859,6.052,860,6.052,861,6.052,862,6.052,863,6.052,864,6.052,865,6.052,866,9.801,867,6.052,868,6.052,869,6.052,870,6.052,871,6.052,872,6.052]],["keywords/151",[]],["title/152",[820,949.772]],["content/152",[2,9.366,186,10.686,192,9.366,197,7.022,306,4.991,336,6.716,567,10.686,811,10.686,820,12.41,873,12.494,874,10.15,875,12.494,876,12.494,877,12.494,878,12.494,879,12.494,880,12.494,881,12.494,882,12.494,883,12.494,884,6.624,885,10.15,886,12.494]],["keywords/152",[]],["title/153",[247,417.935,313,668.14]],["content/153",[4,3.425,13,1.674,27,4.102,93,4.849,102,3.247,194,5.094,247,7.581,258,3.207,274,3.225,281,3.247,313,8.493,314,5.176,323,5.449,326,4.958,332,4.155,362,5.449,363,6.258,458,2.84,484,4.776,504,4.776,577,5.449,711,4.484,809,5.449,848,4.064,887,5.815,888,4.62,889,5.176,890,7.834,891,5.176,892,5.815,893,6.371,894,4.776,895,3.83,896,6.383,897,6.371,898,4.776,899,5.449,900,6.371,901,3.903,902,4.776,903,6.371,904,4.484,905,5.815,906,6.371,907,9.274,908,6.371,909,3.83,910,4.484,911,5.815]],["keywords/153",[]],["title/154",[205,534.728,912,935.083]],["content/154",[]],["keywords/154",[]],["title/155",[913,468.958]],["content/155",[2,9.229,13,4.378,22,6.919,23,7.61,138,3.39,191,2.939,198,2.986,336,6.619,370,8.928,472,6.714,913,6.517,914,7.504,915,7.356,916,16.662,917,12.312,918,7.542]],["keywords/155",[]],["title/156",[919,586.782]],["content/156",[13,2.593,15,4.906,58,4.906,191,4.001,192,7.397,193,7.397,194,4.756,198,2.557,209,7.679,210,6.589,211,6.165,225,3.356,248,3.851,258,4.966,274,3.115,320,9.007,323,8.44,325,6.758,347,5.261,353,8.017,458,4.399,472,5.381,898,7.397,920,8.44,921,9.007,922,9.868,923,9.868,924,9.868,925,9.868,926,9.868,927,9.868,928,6.436,929,8.017,930,9.868,931,9.868]],["keywords/156",[]],["title/157",[225,495.333]],["content/157",[27,4.3,73,4.757,75,3.595,78,2.621,81,2.432,137,2.59,138,2.668,176,5.103,191,3.361,194,4.394,198,2.192,209,7.539,210,6.469,211,6.054,225,2.029,248,2.226,255,3.807,257,2.546,315,4.363,325,4.086,347,2.2,372,3.891,382,4.199,884,3.163,895,3.587,896,3.728,909,3.587,932,12.854,933,6.923,934,15.487,935,15.487,936,5.966,937,5.966,938,5.966,939,4.327,940,7.539,941,4.086,942,3.984,943,5.966,944,4.847,945,5.103]],["keywords/157",[]],["title/158",[596,1183.107]],["content/158",[10,3.859,11,5.411,15,4.217,93,2.406,191,2.024,194,4.843,198,1.52,211,5.299,225,2.885,238,5.411,247,3.08,274,2.677,306,3.388,307,5.008,347,4.705,356,6.15,371,7.254,468,10.288,485,6.588,493,7.254,513,7.254,573,7.254,576,5.969,586,4.269,596,10.368,833,6.89,848,5.411,884,9.049,890,5.196,896,5.299,919,3.417,946,5.411,947,8.481,948,5.663,949,7.742,950,7.254,951,8.481,952,8.481,953,12.762,954,8.481,955,8.481,956,8.481,957,6.6]],["keywords/158",[]],["title/159",[274,363.366,958,657.218]],["content/159",[13,1.107,27,4.822,75,3.8,78,1.139,81,3.196,82,2.264,93,3.207,137,2.546,191,1.005,194,3.945,198,1.297,217,2.297,225,1.433,232,3.054,247,2.629,248,0.967,255,1.655,256,4.435,257,1.107,258,2.12,271,3.602,274,4.961,280,2.812,306,3.804,307,2.487,313,4.203,315,1.897,347,1.553,356,3.054,372,2.747,441,6.796,465,2.12,472,2.297,473,3.602,500,2.297,501,3.054,504,5.427,572,3.844,832,3.054,884,5.048,889,3.422,890,4.435,894,3.157,896,2.632,907,3.054,919,1.697,933,3.021,958,5.437,959,3.844,960,3.844,961,5.634,962,2.264,963,3.157,964,3.602,965,3.844,966,3.844,967,3.844,968,6.609,969,2.964,970,6.193,971,4.834,972,6.609,973,1.217,974,5.427,975,6.193,976,3.602,977,3.844,978,3.422,979,6.609,980,6.193]],["keywords/159",[]],["title/160",[981,1329.282]],["content/160",[]],["keywords/160",[]],["title/161",[191,227.129,981,868.536,982,951.54]],["content/161",[7,1.353,11,6.557,13,2.7,27,2.19,191,1.532,197,3.608,198,1.15,205,2.982,254,5.86,279,4.095,288,4.518,296,5.491,318,4.396,336,3.451,373,4.095,465,3.231,577,5.491,723,5.86,811,8.791,821,4.286,874,10.442,885,8.35,958,3.665,983,6.42,984,5.86,985,5.86,986,6.42,987,6.42,988,5.86,989,8.791,990,6.42,991,9.382,992,5.491,993,6.42,994,5.86,995,11.733,996,6.42,997,6.42,998,5.86,999,6.42,1000,6.42,1001,11.733,1002,6.42,1003,6.42,1004,10.278,1005,5.86,1006,6.42,1007,5.86,1008,6.42,1009,10.278,1010,5.86,1011,6.42,1012,5.86,1013,6.42,1014,6.42,1015,10.994,1016,5.86,1017,6.42,1018,6.42,1019,6.42,1020,6.42,1021,5.86,1022,5.215,1023,6.42,1024,6.42,1025,6.42,1026,6.42,1027,6.42,1028,6.42,1029,6.42,1030,6.42,1031,6.42]],["keywords/161",[]],["title/162",[7,200.565,13,249.996,1032,690.024]],["content/162",[]],["keywords/162",[]],["title/163",[175,1245.606]],["content/163",[4,3.504,7,2.193,13,2.734,14,4.353,18,4.588,85,4.251,89,4.834,139,1.943,142,2.906,144,5.593,191,1.556,194,4.205,198,1.168,205,4.834,232,4.727,257,1.713,280,4.353,306,2.604,318,4.464,336,3.504,347,3.836,349,5.072,351,4.464,363,3.993,380,5.296,482,2.906,495,2.997,512,5.759,539,3.608,582,5.296,591,4.073,622,5.173,716,8.284,746,6.144,890,3.993,895,3.919,909,3.919,939,4.727,946,4.158,969,4.588,984,5.95,1032,7.545,1033,5.575,1034,6.519,1035,7.8,1036,4.464,1037,5.575,1038,5.296,1039,9.417,1040,4.727,1041,6.519,1042,6.519,1043,6.519,1044,5.95,1045,5.575,1046,4.353,1047,4.464,1048,4.727,1049,4.588,1050,6.519,1051,3.608,1052,5.296,1053,6.519,1054,6.519,1055,5.575,1056,6.519,1057,5.072,1058,5.296,1059,5.575]],["keywords/163",[]],["title/164",[495,669.455]],["content/164",[13,3.687,14,9.37,82,7.544,137,2.578,205,4.48,212,6.439,257,2.533,482,7.376,512,5.337,539,11.511,590,6.786,933,4.024,1035,7.228,1036,11.33,1039,6.993,1040,6.993,1051,5.337,1060,9.643,1061,8.802,1062,8.437,1063,9.643,1064,9.643,1065,7.503,1066,9.643,1067,9.643,1068,9.643,1069,12.809,1070,9.643,1071,9.643,1072,9.643]],["keywords/164",[]],["title/165",[913,468.958]],["content/165",[7,3.589,13,4.473,23,6.86,913,5.482,914,7.667,915,7.516,1073,15.54]],["keywords/165",[]],["title/166",[973,420.766]],["content/166",[4,8.221,8,4.143,13,1.81,14,7.26,36,3.512,58,3.426,79,5.622,99,4.169,137,1.842,194,1.955,198,2.74,247,2.502,286,3.236,294,3.873,300,6.537,465,3.468,482,3.072,485,3.557,495,7.03,539,9.213,579,4.143,602,4.997,928,4.494,933,2.876,963,5.165,973,5.111,1074,4.221,1075,7.091,1076,6.891,1077,6.891,1078,9.925,1079,6.891,1080,10.873,1081,6.891,1082,6.891,1083,5.894,1084,6.891,1085,5.894,1086,6.891,1087,5.894,1088,6.891,1089,4.494,1090,6.891,1091,5.894,1092,5.894,1093,6.111,1094,8.461,1095,6.891,1096,6.891,1097,6.891]],["keywords/166",[]],["title/167",[919,463.77,933,480.332]],["content/167",[4,1.672,5,3.907,7,1.17,10,2.526,13,3.544,14,7.004,15,2.76,27,3.772,32,1.387,58,1.547,73,1.45,75,1.919,78,0.841,79,1.051,81,0.781,82,4.041,130,9.574,137,1.484,138,0.857,144,2.984,191,0.743,197,1.748,198,1.347,205,1.445,225,1.888,226,2.029,233,1.387,234,2.794,248,0.715,252,2.189,255,1.222,256,1.906,257,1.459,288,2.189,316,1.906,343,5.067,347,1.147,352,1.776,372,2.029,458,1.387,468,3.12,472,5.72,482,4.676,495,5.805,501,2.256,512,1.722,539,9.381,574,4.161,576,5.291,591,1.944,592,2.84,600,2.421,918,1.906,940,2.421,963,5.635,964,2.661,1035,2.332,1036,3.802,1039,2.256,1040,5.451,1046,2.077,1047,2.13,1048,2.256,1049,3.907,1051,3.073,1069,2.84,1073,2.84,1078,5.067,1085,2.661,1094,2.421,1098,3.111,1099,2.332,1100,2.661,1101,2.661,1102,2.527,1103,3.111,1104,2.421,1105,2.527,1106,3.111,1107,2.527,1108,2.661,1109,2.421,1110,3.111,1111,3.111,1112,3.111,1113,7.518,1114,3.111,1115,5.552,1116,7.518,1117,5.552,1118,5.552,1119,3.111,1120,3.111,1121,3.111,1122,3.111,1123,3.111,1124,3.111,1125,3.111,1126,3.111,1127,3.111,1128,3.111,1129,3.111,1130,3.111,1131,3.111,1132,3.111,1133,3.111,1134,3.111,1135,3.111,1136,3.111,1137,2.84,1138,3.111,1139,2.84,1140,3.111,1141,3.111,1142,3.111,1143,3.111,1144,3.111,1145,2.13,1146,3.111,1147,2.661,1148,3.111,1149,2.527,1150,5.552,1151,3.111,1152,3.111,1153,3.111,1154,2.527,1155,3.111,1156,5.067,1157,3.111,1158,3.111,1159,3.111,1160,2.527,1161,3.111]],["keywords/167",[]],["title/168",[1162,1091.659]],["content/168",[5,6.945,7,3.008,8,5.933,13,2.593,89,6.63,93,2.799,194,2.799,205,4.584,222,8.44,340,6.045,347,3.638,482,4.399,485,5.094,510,5.933,512,5.461,590,6.945,602,7.156,790,8.44,1039,7.156,1046,6.589,1047,6.758,1049,12.927,1062,5.933,1065,11.104,1163,9.007,1164,9.007,1165,8.44,1166,8.44,1167,9.868,1168,8.44,1169,7.679,1170,7.679,1171,9.868,1172,9.868,1173,9.868,1174,6.165,1175,9.868]],["keywords/168",[]],["title/169",[913,468.958]],["content/169",[7,3.589,13,4.473,23,6.86,913,5.482,914,7.667,915,7.516,1176,15.54]],["keywords/169",[]],["title/170",[973,420.766]],["content/170",[4,8.149,8,4.999,13,2.184,14,5.552,32,5.605,58,4.134,79,5.708,99,4.82,194,2.359,198,2.253,270,6.47,286,3.904,306,3.322,482,3.707,485,4.292,497,5.304,539,4.602,579,4.999,928,5.422,973,5.243,1039,9.117,1049,5.852,1074,5.093,1075,8.199,1083,7.111,1091,7.111,1093,8.52,1094,11.796,1099,6.233,1162,11.364,1168,7.111,1170,9.783,1177,8.314,1178,8.314,1179,7.111,1180,11.475,1181,8.314]],["keywords/170",[]],["title/171",[919,463.77,933,480.332]],["content/171",[7,2.517,8,4.673,13,3.138,14,3.056,27,4.125,32,3.465,73,2.646,75,3.049,78,1.238,81,1.149,89,2.126,90,2.149,102,2.332,138,1.26,144,5.446,191,1.092,197,2.572,198,0.82,205,2.126,225,1.557,234,2.303,247,1.662,248,1.785,255,1.798,256,2.804,269,3.865,270,3.561,280,3.056,281,2.332,306,4.047,336,2.46,340,2.804,347,4.403,363,4.762,458,3.465,465,2.303,482,2.041,483,3.056,484,3.431,485,6.165,512,2.533,600,3.561,751,2.394,890,2.804,895,2.752,957,3.561,1037,6.648,1039,7.347,1046,3.056,1047,3.134,1048,9.702,1049,5.471,1051,5.607,1061,4.178,1099,3.431,1100,3.915,1101,3.915,1102,3.718,1107,3.718,1109,3.561,1147,3.915,1162,11.625,1164,7.095,1168,3.915,1169,3.561,1170,10.41,1176,4.178,1179,3.915,1180,4.178,1182,4.577,1183,7.095,1184,4.577,1185,4.577,1186,3.915,1187,4.577,1188,4.577,1189,4.178,1190,3.915,1191,3.915,1192,4.577]],["keywords/171",[]],["title/172",[746,859.992]],["content/172",[8,4.809,13,2.102,15,3.977,144,4.3,178,5.801,198,2.188,205,3.716,218,6.842,225,2.721,252,5.63,258,4.026,316,4.9,333,5.63,347,2.949,363,4.9,458,3.567,465,4.026,482,3.567,574,5.997,590,5.63,618,3.369,622,3.977,716,9.445,746,11.551,843,5.478,884,4.241,909,4.809,920,6.842,940,6.225,1032,5.801,1051,4.427,1052,6.499,1055,6.842,1193,8,1194,7.302,1195,8,1196,6.842,1197,7.302,1198,8,1199,11.144,1200,11.144,1201,12.028,1202,8,1203,6.842,1204,8,1205,10.442,1206,5.997,1207,8,1208,8]],["keywords/172",[]],["title/173",[913,468.958]],["content/173",[7,3.589,13,4.473,23,6.86,913,5.482,914,7.667,915,7.516,1209,15.54]],["keywords/173",[]],["title/174",[973,420.766]],["content/174",[4,8.248,8,5.099,32,3.781,58,4.217,79,6.183,99,4.893,194,2.406,198,2.749,205,3.94,247,3.08,279,5.411,286,5.993,482,3.781,485,4.378,512,4.694,539,4.694,579,5.099,746,11.358,928,5.531,973,5.557,1039,6.15,1074,5.196,1075,8.323,1083,7.254,1091,7.254,1093,7.172,1094,9.93,1099,6.358,1206,6.358,1210,8.481,1211,8.481,1212,8.481,1213,5.008,1214,8.481]],["keywords/174",[]],["title/175",[919,463.77,933,480.332]],["content/175",[4,2.846,7,1.116,8,3.182,10,2.408,13,2.307,27,4.6,73,2.294,75,2.874,78,1.432,79,1.788,81,1.329,82,2.846,99,3.367,138,1.457,144,2.846,191,1.264,197,2.975,198,0.948,248,1.216,252,3.726,255,2.08,256,3.243,258,2.664,281,2.698,294,2.975,316,3.243,347,1.951,351,3.625,360,4.528,363,3.243,458,2.36,465,2.664,585,2.806,716,7.18,746,10.257,773,4.3,843,3.625,848,3.377,1051,2.93,1052,4.3,1055,7.512,1099,3.968,1100,4.528,1101,4.528,1102,4.3,1107,4.3,1109,4.119,1137,8.017,1139,4.832,1190,4.528,1201,7.135,1203,4.528,1206,3.968,1209,4.832,1215,5.294,1216,5.294,1217,6.834,1218,4.832,1219,5.294,1220,5.294,1221,4.528,1222,11.256,1223,5.294,1224,5.294,1225,5.294,1226,5.294,1227,5.294,1228,5.294,1229,5.294,1230,5.294,1231,5.294,1232,5.294,1233,5.294,1234,5.294,1235,4.832,1236,5.294,1237,4.832,1238,4.832]],["keywords/175",[]],["title/176",[1057,1133.203]],["content/176",[13,3.675,80,4.662,137,3.044,153,4.662,198,1.309,212,4.879,248,2.615,270,8.86,274,3.595,285,5.143,336,3.928,347,2.694,482,5.076,484,14.193,494,11.115,511,5.004,590,5.143,599,6.25,787,12.768,817,5.004,819,4.766,890,6.975,895,8.41,909,6.845,942,4.879,949,10.393,1057,12.289,1058,5.937,1059,9.739,1239,7.308,1240,7.308,1241,7.308,1242,7.308,1243,7.308,1244,7.308,1245,5.478,1246,7.308,1247,7.308,1248,6.25,1249,6.25,1250,5.478,1251,7.308,1252,6.724,1253,5.937,1254,7.308]],["keywords/176",[]],["title/177",[913,468.958]],["content/177",[7,4.408,13,3.991,23,6.12,90,7.133,726,12.192,913,4.891,914,6.84,915,6.705,1255,15.189,1256,15.189]],["keywords/177",[]],["title/178",[973,420.766]],["content/178",[4,7.253,79,4.557,99,5.172,194,3.827,198,2.417,352,7.703,590,9.495,973,5.117,1051,7.467,1057,10.498,1074,8.265,1075,8.799,1257,12.315,1258,13.491,1259,13.491,1260,13.491,1261,13.491,1262,13.491,1263,12.315]],["keywords/178",[]],["title/179",[919,463.77,933,480.332]],["content/179",[7,2.115,13,2.636,27,4.954,73,3.773,75,3.687,78,1.685,81,2.519,137,2.683,138,1.715,191,2.395,198,1.116,236,11.499,247,2.262,248,1.431,256,6.147,271,5.329,272,3.098,274,3.168,275,2.926,276,3.303,363,6.147,458,4.474,487,3.501,501,4.518,782,5.061,1102,5.061,1213,3.679,1257,9.159,1264,10.034,1265,6.23,1266,10.034,1267,6.23,1268,10.034,1269,6.23,1270,6.23,1271,6.23,1272,6.23,1273,6.23,1274,5.329,1275,6.23,1276,6.23,1277,6.23,1278,5.061,1279,6.23]],["keywords/179",[]],["title/180",[1280,895.641,1281,895.641]],["content/180",[]],["keywords/180",[]],["title/181",[144,511.511,198,170.496,942,635.351]],["content/181",[4,3.766,13,4.055,14,9.09,15,3.483,27,4.33,32,4.911,75,1.788,78,1.895,81,1.758,137,2.945,144,3.766,191,1.672,194,5.054,198,1.255,248,1.609,253,5.991,307,4.137,347,5.018,363,4.291,380,5.691,458,3.123,468,6.191,472,3.82,495,5.064,539,3.877,602,5.08,884,3.714,942,4.677,1032,7.988,1092,5.991,1108,5.991,1162,8.257,1170,8.571,1186,5.991,1221,5.991,1282,11.015,1283,7.005,1284,6.394,1285,5.451,1286,6.394,1287,7.005,1288,7.005,1289,6.394,1290,4.93,1291,7.005,1292,7.005,1293,7.005,1294,4.93,1295,6.394]],["keywords/181",[]],["title/182",[274,256.022,333,570.768,356,588.102,958,463.066]],["content/182",[2,4.667,4,3.347,7,0.746,13,0.93,27,4.79,32,2.776,73,0.925,75,3.215,81,2.868,93,1.766,137,1.665,144,7.303,176,5.326,194,2.364,198,1.493,225,2.118,248,0.813,253,3.029,256,3.814,257,0.93,258,1.782,269,1.761,274,4.289,280,2.364,306,2.488,307,3.677,325,2.425,333,5.865,336,3.347,347,1.305,356,6.043,372,2.309,441,5.01,465,1.782,500,3.395,501,2.568,504,2.654,568,2.877,620,2.056,708,4.382,746,4.921,832,2.568,884,4.418,889,2.877,890,2.169,895,3.743,907,2.568,919,1.427,933,1.478,958,3.555,959,3.232,960,3.232,968,5.683,969,4.382,970,5.326,971,4.158,972,5.683,973,1.023,974,4.667,975,5.326,976,3.029,977,3.232,978,2.877,979,5.683,980,5.326,1032,4.515,1046,2.364,1047,2.425,1092,3.029,1108,3.029,1162,4.667,1170,2.755,1186,3.029,1221,3.029,1238,3.232,1281,2.755,1289,5.683,1295,3.232,1296,3.232,1297,3.232,1298,3.541,1299,3.541,1300,3.541,1301,3.232,1302,3.232,1303,3.541,1304,3.541,1305,3.541,1306,6.227,1307,3.541,1308,2.755]],["keywords/182",[]],["title/183",[1309,1329.282]],["content/183",[191,3.44,221,9.194,279,9.194,465,7.253,585,7.64,607,9.399,821,9.623,885,11.708,1205,12.327,1309,18.627,1310,13.155,1311,13.155,1312,12.327,1313,14.412]],["keywords/183",[]],["title/184",[620,845.36]],["content/184",[]],["keywords/184",[]],["title/185",[848,734.275,890,705.102]],["content/185",[11,7.903,93,4.25,194,4.25,197,6.962,211,7.74,221,5.202,248,3.441,278,6.624,306,5.985,316,4.995,363,4.995,467,2.258,711,5.739,809,10.595,848,7.903,884,8.87,890,10.25,894,12.542,912,6.624,932,7.443,1109,6.345,1154,6.624,1190,6.974,1294,5.739,1314,6.974,1315,8.983,1316,8.154,1317,8.154,1318,5.913,1319,8.154,1320,8.154,1321,8.154,1322,8.154,1323,8.154,1324,8.154,1325,8.154,1326,8.154,1327,7.443]],["keywords/185",[]],["title/186",[1328,1329.282]],["content/186",[1,8.963,11,6.685,13,2.753,18,7.376,189,7.376,191,3.556,194,2.973,196,8.963,197,5.89,204,9.566,205,4.869,257,2.753,316,6.42,349,8.155,360,8.963,484,7.856,766,12.104,833,8.514,885,14.084,939,7.6,1280,8.155,1281,8.155,1328,9.566,1329,9.566,1330,10.48,1331,10.48,1332,14.9,1333,10.48,1334,7.856,1335,10.48,1336,10.48,1337,10.48,1338,10.48]],["keywords/186",[]],["title/187",[989,984.48,1339,1050.614]],["content/187",[7,1.616,13,2.014,18,3.17,27,1.633,58,2.239,135,3.852,153,2.873,191,1.075,288,7.046,294,2.531,296,6.558,316,2.759,332,2.937,467,1.247,494,3.17,585,4.065,602,5.56,607,2.937,790,3.852,818,3.084,884,2.388,898,3.376,989,14.455,991,4.111,992,3.852,994,6.998,995,14.79,998,6.998,1007,12.097,1010,9.138,1012,9.138,1015,6.558,1016,9.138,1021,9.138,1165,3.852,1174,2.814,1205,3.852,1310,4.111,1311,6.998,1312,3.852,1314,3.852,1339,4.111,1340,3.659,1341,4.111,1342,10.011,1343,10.011,1344,10.011,1345,4.504,1346,10.011,1347,4.504,1348,4.504,1349,4.504,1350,4.504,1351,4.504,1352,4.504,1353,6.998,1354,4.504,1355,3.007,1356,4.111,1357,4.504,1358,4.504,1359,7.667,1360,8.133,1361,4.504,1362,4.504,1363,6.998,1364,4.111,1365,4.504,1366,4.504,1367,4.504,1368,8.454,1369,14.42,1370,4.504,1371,4.504,1372,4.504,1373,4.504,1374,4.504,1375,6.998,1376,4.504,1377,4.504,1378,4.504,1379,3.007,1380,4.111]],["keywords/187",[]],["title/188",[144,782.861]],["content/188",[114,10.218,144,8.021,226,9.731,336,8.021,472,8.137,591,9.322,620,8.661,816,13.3,817,10.218,818,10.218,819,9.731,820,9.731,821,9.963]],["keywords/188",[]],["title/189",[1381,1133.203]],["content/189",[3,3.452,4,3.995,5,3.056,10,1.975,13,2.559,27,3.675,36,2.213,73,1.134,79,1.466,81,1.09,114,2.973,153,2.77,177,3.713,181,3.527,186,3.713,191,2.753,194,1.232,197,2.44,198,1.332,225,1.477,226,2.832,235,5.57,247,2.698,248,1.707,258,3.74,272,2.159,325,2.973,326,3.378,332,2.832,333,3.056,336,3.995,340,2.66,347,1.601,356,3.148,361,3.255,372,2.832,384,3.963,441,4.468,457,3.101,468,2.44,472,2.368,485,2.241,494,3.056,504,3.255,510,2.61,591,2.713,601,3.527,608,3.713,620,2.52,656,3.148,816,5.23,817,2.973,818,2.973,819,2.832,820,2.832,821,2.899,884,3.94,895,2.61,904,5.23,920,3.713,957,3.378,973,1.254,978,6.037,1040,3.148,1062,6.935,1089,4.846,1154,3.527,1174,2.713,1199,6.783,1250,7.303,1253,3.527,1274,3.713,1381,11.76,1382,4.342,1383,4.342,1384,4.342,1385,3.056,1386,4.342,1387,7.431,1388,3.963,1389,3.963,1390,6.783,1391,4.342,1392,5.782,1393,4.342,1394,4.342,1395,4.342,1396,3.713,1397,5.782,1398,4.342,1399,4.342,1400,7.431,1401,4.342,1402,4.342,1403,4.342,1404,3.963,1405,4.342,1406,7.431,1407,3.713,1408,4.342,1409,4.342,1410,4.342,1411,3.963,1412,4.342,1413,4.342]],["keywords/189",[]],["title/190",[93,326.54,1414,1151.018]],["content/190",[]],["keywords/190",[]],["title/191",[13,213.069,225,275.84,347,298.975,738,693.649]],["content/191",[27,4.835,32,4.615,73,3.858,75,3.771,78,2.8,81,2.598,137,2.767,138,2.85,142,4.615,191,3.525,244,3.472,248,2.378,255,4.067,257,2.72,274,3.268,275,4.861,276,5.488,284,4.809,286,4.861,315,4.662,638,4.171,739,8.409,1415,12.632,1416,8.854,1417,10.351]],["keywords/191",[]],["title/192",[13,249.996,225,323.645,1418,951.54]],["content/192",[27,4.712,32,5.334,73,4.268,75,4.172,78,3.236,81,3.003,137,3.198,138,3.294,191,3.9,248,2.748,255,4.7,257,3.143,274,3.777,286,5.618,315,5.388,739,9.719,1415,13.976,1416,10.232]],["keywords/192",[]],["title/193",[13,302.404,306,459.839]],["content/193",[7,1.965,13,3.597,27,4.875,73,2.435,75,4.565,90,4.378,244,4.593,347,3.437,458,7.235,485,4.813,487,7.695,1059,7.975,1419,13.692,1420,13.692,1421,6.989,1422,9.324,1423,9.324,1424,5.412,1425,9.324,1426,9.324,1427,7.255,1428,9.324,1429,9.324,1430,9.324,1431,9.324]],["keywords/193",[]],["title/194",[779,997.285]],["content/194",[]],["keywords/194",[]],["title/195",[913,468.958]],["content/195",[7,3.038,23,8.222,90,6.768,194,4.089,198,2.582,775,11.708,913,6.571,914,6.49,915,8.16,918,8.829,1432,13.155]],["keywords/195",[]],["title/196",[973,420.766]],["content/196",[3,4.328,7,2.494,13,1.494,15,2.827,36,4.747,58,4.631,79,6.037,89,2.641,90,2.67,93,2.643,99,4.537,109,3.627,205,2.641,234,2.861,269,4.631,286,4.374,294,5.235,300,3.418,306,3.721,347,2.096,441,9.078,451,5.156,468,3.195,482,5.276,483,3.796,485,2.935,497,3.627,500,5.08,512,3.147,579,3.418,586,4.688,607,3.708,751,2.974,779,3.893,794,3.796,796,7.549,958,3.246,962,3.056,973,1.643,1062,3.418,1074,5.706,1089,3.708,1093,5.235,1433,3.708,1434,11.834,1435,3.708,1436,3.796,1437,5.189,1438,7.249,1439,4.123,1440,4.123,1441,4.123,1442,4.262,1443,3.796,1444,4.001,1445,4.808,1446,4.001,1447,4.001,1448,4.001,1449,4.001,1450,6.556,1451,4.001,1452,3.893,1453,3.796,1454,3.627,1455,3.708,1456,5.685,1457,5.685]],["keywords/196",[]],["title/197",[919,463.77,933,480.332]],["content/197",[5,6.42,27,4.984,71,5.949,73,3.52,75,3.44,81,2.29,93,3.823,138,2.512,191,3.216,198,1.635,244,3.06,248,2.095,257,2.397,272,4.536,274,2.88,275,4.284,276,4.836,351,6.247,352,5.209,619,4.108,638,3.676,758,5.295,775,7.411,779,9.227,780,7.802,1424,5.295,1458,5.484,1459,5.7]],["keywords/197",[]],["title/198",[19,892.126]],["content/198",[7,4.219,89,7.603,90,7.685,281,8.34,779,11.207,1460,13.055,1461,10.025]],["keywords/198",[]],["title/199",[22,646.87,919,463.77]],["content/199",[4,2.346,5,3.071,10,3.396,22,2.453,27,4.618,71,4.868,73,1.95,75,2.497,78,1.18,79,1.474,81,1.873,120,2.346,137,1.167,138,1.202,144,2.346,189,3.071,191,1.782,198,1.752,211,2.727,212,2.914,221,2.784,225,1.484,244,1.464,248,1.002,255,1.715,257,1.961,269,6.467,272,2.17,274,2.356,275,2.049,276,2.314,284,6.043,286,4.592,300,2.624,306,4.624,307,2.577,315,1.965,340,2.673,347,3.605,351,2.989,352,2.492,451,4.131,462,2.989,481,2.846,487,2.453,500,4.07,638,1.758,758,4.333,775,3.545,779,7.927,780,3.733,895,2.624,946,6.239,948,2.914,971,2.914,973,1.261,1036,2.989,1145,2.989,1217,3.396,1252,5.775,1318,5.413,1334,3.271,1385,3.071,1424,2.533,1445,5.048,1458,2.624,1459,2.727,1462,3.271,1463,3.165,1464,3.396,1465,5.808,1466,3.396,1467,11.575,1468,5.413,1469,3.396,1470,4.364,1471,3.396,1472,3.396,1473,3.733,1474,3.733,1475,3.733,1476,3.733]],["keywords/199",[]],["title/200",[22,646.87,198,206.238]],["content/200",[2,3.449,7,0.97,11,2.936,13,2.052,20,3.337,22,7.543,27,4.264,32,2.052,73,2.657,75,1.175,78,1.245,81,1.155,100,7.376,102,3.98,133,3.738,137,2.088,138,1.267,182,3.581,191,2.428,194,4.138,197,2.586,198,2.613,211,4.879,225,2.656,234,2.316,244,1.543,248,2.753,257,2.672,258,2.316,272,2.288,274,1.453,275,2.161,276,2.44,284,5.568,294,2.586,302,3.738,325,3.151,336,2.474,361,5.854,382,3.239,452,3.936,462,3.151,539,2.547,616,3.001,708,3.239,750,3.738,751,5.32,755,3.449,758,2.671,760,3.738,853,3.738,895,4.695,912,3.738,962,2.474,1051,2.547,1145,3.151,1163,4.2,1191,3.936,1249,3.936,1327,7.128,1424,2.671,1445,2.375,1458,2.767,1477,3.936,1478,4.2,1479,4.2,1480,4.2,1481,4.602,1482,4.2,1483,4.2,1484,4.2,1485,3.738,1486,4.2,1487,3.337,1488,7.809,1489,7.809,1490,4.602,1491,4.602,1492,4.602,1493,4.602,1494,4.602,1495,4.2,1496,3.738,1497,4.602,1498,4.602,1499,4.602]],["keywords/200",[]],["title/201",[716,734.275,746,679.705]],["content/201",[]],["keywords/201",[]],["title/202",[913,468.958]],["content/202",[23,7.971,194,4.555,198,2.877,745,14.654,746,9.481,913,6.37,914,7.23,915,7.087]],["keywords/202",[]],["title/203",[973,420.766]],["content/203",[3,4.694,7,3.06,15,5.024,27,2.152,79,5.738,286,4.745,352,5.769,373,6.446,716,6.446,746,10.966,805,7.862,808,6.19,910,7.111,941,6.919,946,6.446,973,4.194,1201,15.086,1206,10.881,1245,7.574,1500,13.249,1501,9.223,1502,9.223,1503,10.104,1504,13.249,1505,14.516,1506,10.104,1507,10.104]],["keywords/203",[]],["title/204",[919,463.77,933,480.332]],["content/204",[27,4.765,75,4.639,78,2.608,81,2.42,137,2.578,191,3.35,198,1.728,241,8.248,248,2.215,255,3.788,257,2.533,315,4.342,746,5.694,1194,8.802,1201,7.834,1206,7.228,1508,14.034,1509,9.643,1510,9.643,1511,9.643,1512,9.643,1513,9.643,1514,9.643,1515,9.643,1516,9.643,1517,9.643,1518,9.643,1519,9.643,1520,9.643,1521,9.643]],["keywords/204",[]],["title/205",[726,929.036]],["content/205",[]],["keywords/205",[]],["title/206",[913,468.958]],["content/206",[7,3.772,23,8.029,90,6.438,194,3.89,198,2.457,726,11.417,778,11.138,913,6.416,914,6.174,915,7.901,918,8.399,1522,13.71]],["keywords/206",[]],["title/207",[973,420.766]],["content/207",[3,4.352,7,2.506,13,1.504,15,2.846,36,4.774,58,4.657,79,6.053,89,2.659,90,2.688,93,2.657,99,4.558,109,3.651,205,2.659,234,2.881,269,4.657,286,4.399,294,5.264,300,3.441,306,3.742,347,2.11,441,9.111,451,5.184,468,3.217,482,5.301,483,3.822,485,2.955,497,3.651,500,5.108,512,3.168,579,3.441,586,4.714,607,3.733,726,3.651,751,2.994,794,3.822,796,7.585,958,3.268,962,3.077,973,1.654,1062,3.441,1074,5.738,1089,3.733,1093,5.264,1433,3.733,1435,3.733,1436,3.822,1438,7.283,1439,4.151,1440,4.151,1441,4.151,1442,4.291,1443,3.822,1444,4.028,1445,4.835,1446,4.028,1447,4.028,1448,4.028,1449,4.028,1450,6.592,1451,4.028,1452,3.92,1453,3.822,1454,3.651,1455,3.733,1523,11.889,1524,5.724,1525,5.724]],["keywords/207",[]],["title/208",[137,216.812,571,528.906,807,528.906,808,496.804]],["content/208",[]],["keywords/208",[]],["title/209",[913,468.958]],["content/209",[23,7.701,137,4.061,194,4.309,198,2.722,571,9.906,807,9.906,808,9.305,813,12.339,913,6.154,914,6.84,915,6.705]],["keywords/209",[]],["title/210",[973,420.766]],["content/210",[3,8.645,32,7.285,36,8.327,79,6.755,194,3.394,248,2.748,258,6.021,285,11.5,353,9.719,510,7.192,884,8.663,894,8.968,910,8.42,973,3.457,1249,10.232,1526,10.92,1527,11.963,1528,11.963,1529,11.963]],["keywords/210",[]],["title/211",[919,463.77,933,480.332]],["content/211",[27,4.565,32,5.187,73,4.187,75,4.093,78,3.147,81,2.92,137,4.286,138,3.203,191,3.826,248,2.672,255,4.571,257,3.057,274,3.673,315,5.239,571,7.587,807,7.587,808,7.127,813,9.451,1530,11.634,1531,11.634,1532,11.634]],["keywords/211",[]],["title/212",[919,463.77,933,480.332]],["content/212",[27,4.953,71,5.703,73,3.411,75,3.99,78,2.365,81,2.195,93,3.704,137,2.338,138,2.408,191,3.117,198,1.567,244,2.933,248,2.009,255,3.436,257,2.297,272,4.348,274,2.761,275,4.106,276,4.636,315,3.938,482,3.899,638,3.523,726,8.33,758,5.076,778,7.104,782,7.104,1424,5.076,1458,5.257,1459,5.464,1533,7.982,1534,7.982]],["keywords/212",[]],["title/213",[19,892.126]],["content/213",[7,4.219,89,7.603,90,7.685,281,8.34,726,10.44,1460,13.055,1461,10.025]],["keywords/213",[]],["title/214",[22,646.87,919,463.77]],["content/214",[4,2.287,10,3.322,22,2.391,27,4.534,71,4.763,73,1.908,75,2.449,79,1.437,81,1.833,93,2.072,99,1.631,138,1.171,144,2.287,189,2.994,191,1.015,198,1.308,211,2.658,212,2.841,221,2.714,225,1.447,244,1.427,248,0.977,257,1.919,269,6.369,272,2.115,274,2.305,275,1.998,276,2.255,284,5.951,286,5.344,300,2.558,306,5.118,307,2.512,340,2.606,347,3.537,352,2.429,451,4.042,462,2.913,465,2.141,481,2.774,482,1.897,487,2.391,500,3.982,638,1.714,726,7.26,758,4.239,778,3.456,782,3.456,895,2.558,946,6.121,948,2.841,971,2.841,973,1.229,1036,2.913,1145,2.913,1252,4.312,1308,3.31,1318,5.296,1334,3.189,1385,2.994,1424,2.469,1445,5.874,1458,2.558,1459,2.658,1462,3.189,1463,3.085,1464,3.31,1465,5.682,1466,3.31,1468,5.296,1469,3.31,1471,3.31,1472,3.31,1473,3.639,1474,3.639,1475,3.639,1476,3.639,1504,3.883,1533,3.883,1534,3.883,1535,4.254,1536,11.38,1537,4.254,1538,3.883,1539,4.254,1540,3.883,1541,3.883,1542,3.883]],["keywords/214",[]],["title/215",[247,417.935,495,529.112]],["content/215",[]],["keywords/215",[]],["title/216",[913,468.958]],["content/216",[23,7.971,194,4.555,198,2.877,495,7.38,626,11.299,913,6.37,914,7.23,915,7.087]],["keywords/216",[]],["title/217",[973,420.766]],["content/217",[11,9.194,79,4.868,81,3.617,99,5.525,198,2.582,210,9.623,247,5.233,285,10.143,306,5.758,347,5.313,462,9.869,495,6.625,539,7.976,1160,11.708,1252,8.511,1543,14.412]],["keywords/217",[]],["title/218",[919,463.77,933,480.332]],["content/218",[27,4.573,73,4.485,75,4.384,78,3.483,81,3.232,137,3.442,138,3.545,191,3.073,210,8.597,248,3.944,255,5.058,257,3.383,495,5.918,626,9.061,1544,12.875,1545,12.875]],["keywords/218",[]],["title/219",[137,307.717,636,455.985]],["content/219",[]],["keywords/219",[]],["title/220",[913,468.958]],["content/220",[23,7.971,194,4.555,198,2.877,636,6.36,718,9.481,913,6.37,914,7.23,915,7.087]],["keywords/220",[]],["title/221",[973,420.766]],["content/221",[10,5.857,79,4.349,137,3.442,274,4.064,286,6.046,300,11.614,308,10.459,421,11.752,726,8.213,1022,10.459,1093,7.236,1094,10.018,1253,10.459,1438,7.887,1462,9.651,1546,12.875,1547,9.651,1548,11.752,1549,12.875,1550,11.752,1551,12.875]],["keywords/221",[]],["title/222",[919,463.77,933,480.332]],["content/222",[27,4.906,73,4.071,75,4.959,78,3.022,81,2.804,137,4.167,138,3.076,191,2.667,248,2.566,255,4.389,257,2.935,636,4.426,718,6.598,1245,13.456,1552,11.173,1553,11.173]],["keywords/222",[]],["title/223",[139,283.568,142,424.232,630,543.318]],["content/223",[]],["keywords/223",[]],["title/224",[913,468.958]],["content/224",[23,7.879,141,6.888,142,7.024,194,4.47,198,2.823,630,8.996,913,6.297,914,7.095,915,6.955]],["keywords/224",[]],["title/225",[973,420.766]],["content/225",[3,3.15,10,8.683,13,3.982,32,7.832,79,6.638,139,2.021,143,6.13,284,4.987,306,2.709,316,4.153,585,8.756,630,3.871,638,2.732,904,4.772,1160,12.313,1166,5.799,1213,4.004,1438,9.284,1461,9.284,1554,6.189,1555,15.156,1556,8.721,1557,6.78,1558,6.78,1559,6.78,1560,6.78,1561,8.898,1562,6.78,1563,6.78,1564,9.799,1565,6.78,1566,6.78,1567,6.78,1568,6.78,1569,5.508,1570,5.508,1571,6.78]],["keywords/225",[]],["title/226",[919,463.77,933,480.332]],["content/226",[27,4.71,36,4.523,73,3.449,75,2.266,78,1.45,79,2.998,81,1.346,137,1.433,138,1.476,141,4.965,142,2.39,191,2.118,198,0.961,244,5.288,246,4.355,247,1.946,248,2.039,255,2.106,257,1.408,272,8.298,274,1.692,275,2.517,276,2.842,312,4.585,315,2.414,372,9.541,531,3.773,630,3.061,636,2.124,638,2.16,661,4.018,662,3.496,664,8.815,665,4.018,666,6.078,1424,3.112,1458,3.223,1459,3.349,1554,4.893,1572,7.591,1573,4.018,1574,7.591,1575,5.361,1576,5.361,1577,5.361,1578,6.588,1579,5.361,1580,5.361,1581,5.361,1582,5.361,1583,8.875,1584,5.361,1585,8.875,1586,5.361,1587,5.361,1588,5.361]],["keywords/226",[]],["title/227",[139,283.568,247,345.504,248,218.575]],["content/227",[]],["keywords/227",[]],["title/228",[913,468.958]],["content/228",[23,7.879,141,6.888,194,4.47,198,2.823,247,5.721,248,3.619,913,6.297,914,7.095,915,6.955]],["keywords/228",[]],["title/229",[973,420.766]],["content/229",[3,5.26,36,5.77,79,5.313,139,3.374,182,8.81,197,6.363,198,2.029,247,5.712,272,5.629,274,3.574,275,5.317,347,4.174,472,6.174,495,5.205,539,8.707,586,5.698,805,8.81,961,8.81,969,7.969,1356,10.335,1438,6.936,1496,9.198,1589,10.335,1590,11.322,1591,10.335,1592,11.322,1593,11.322,1594,9.684,1595,9.198]],["keywords/229",[]],["title/230",[919,463.77,933,480.332]],["content/230",[13,2.593,27,4.727,73,3.728,75,3.643,78,2.669,81,3.582,93,2.799,137,2.638,138,2.717,141,4.314,191,2.355,244,3.31,246,8.017,247,3.583,248,4.219,255,3.877,257,2.593,275,4.634,458,4.399,510,5.933,1213,5.827,1596,9.007,1597,9.868,1598,6.589,1599,9.007,1600,8.44,1601,9.007,1602,9.007]],["keywords/230",[]],["title/231",[137,254.387,139,283.568,636,376.96]],["content/231",[]],["keywords/231",[]],["title/232",[913,468.958]],["content/232",[23,7.879,137,4.212,141,6.888,194,4.47,198,2.823,636,6.242,913,6.297,914,7.095,915,6.955]],["keywords/232",[]],["title/233",[919,463.77,933,480.332]],["content/233",[27,4.527,73,4.109,75,4.016,78,3.063,81,2.842,137,4.206,138,3.117,141,4.95,191,2.703,247,4.111,248,2.601,257,2.975,274,3.574,636,4.485,711,11.072,1438,6.936,1458,6.807,1603,11.322,1604,11.322,1605,11.322,1606,11.322,1607,11.322,1608,11.322]],["keywords/233",[]],["title/234",[139,283.568,636,376.96,638,383.396]],["content/234",[]],["keywords/234",[]],["title/235",[913,468.958]],["content/235",[23,7.879,141,6.888,194,4.47,198,2.823,636,6.242,638,6.348,913,6.297,914,7.095,915,6.955]],["keywords/235",[]],["title/236",[973,420.766]],["content/236",[32,4.853,79,5.978,85,7.099,99,4.173,142,4.853,187,8.159,198,1.95,274,3.436,284,5.057,347,5.642,485,5.619,636,4.312,638,7.737,973,5.114,1075,7.099,1252,6.428,1294,7.661,1435,7.099,1609,15.139,1610,9.935,1611,9.935,1612,9.31,1613,10.885,1614,10.885,1615,10.885]],["keywords/236",[]],["title/237",[919,463.77,933,480.332]],["content/237",[27,4.527,73,4.396,75,4.296,78,3.38,81,3.136,137,3.34,138,3.44,141,5.462,191,4.017,248,2.87,255,4.909,257,3.283,274,3.944,315,5.626,531,8.793,636,4.95,638,5.034,1573,9.366]],["keywords/237",[]],["title/238",[139,343.015,633,705.102]],["content/238",[]],["keywords/238",[]],["title/239",[913,468.958]],["content/239",[23,7.971,141,7.019,194,4.555,198,2.877,633,9.835,913,6.37,914,7.23,915,7.087]],["keywords/239",[]],["title/240",[973,420.766]],["content/240",[3,2.969,10,5.298,13,0.958,27,3.539,32,2.85,36,1.859,73,2.228,75,1.632,78,0.987,79,5.61,81,1.604,93,1.813,137,0.975,138,1.004,141,2.794,191,1.526,198,0.654,221,2.327,244,1.224,246,2.964,247,1.325,248,2.353,255,1.433,257,0.958,274,2.018,275,1.713,286,6.883,306,4.092,312,3.12,313,2.118,315,1.643,340,2.235,379,11.908,441,2.193,458,1.626,465,6.949,510,2.193,588,3.12,633,5.225,638,5.164,708,4.498,888,11.632,929,11.217,939,2.646,941,4.377,973,5.195,1048,2.646,1051,2.019,1165,3.12,1196,3.12,1200,3.33,1213,2.154,1290,2.568,1315,10.013,1452,4.377,1461,2.235,1596,3.33,1598,2.436,1599,3.33,1600,3.12,1601,3.33,1602,3.33,1610,5.834,1616,3.648,1617,3.648,1618,3.648,1619,3.648,1620,3.648,1621,3.648,1622,3.648,1623,3.648,1624,3.648,1625,3.33,1626,3.648,1627,3.648,1628,3.33,1629,3.648,1630,3.648,1631,3.648,1632,2.646,1633,3.648,1634,3.33,1635,3.648,1636,3.33]],["keywords/240",[]],["title/241",[919,463.77,933,480.332]],["content/241",[10,4.768,13,2.753,27,4.79,73,3.892,75,3.804,78,2.835,81,3.74,93,2.973,137,2.802,138,2.885,141,4.582,191,2.501,248,3.982,255,4.117,257,2.753,274,3.308,510,6.3,633,9.127,888,7.6,929,8.514,1598,6.997,1636,9.566,1637,10.48]],["keywords/241",[]],["title/242",[139,241.683,233,361.569,244,272.019,245,326.765]],["content/242",[]],["keywords/242",[]],["title/243",[913,468.958]],["content/243",[23,7.789,141,6.762,194,4.388,198,2.771,233,6.896,244,5.188,245,6.232,913,6.225,914,6.965,915,6.828]],["keywords/243",[]],["title/244",[973,420.766]],["content/244",[32,5.654,36,6.463,79,5.741,142,5.654,198,2.272,284,5.891,347,4.675,586,6.383,898,9.506,973,4.911,1093,7.127,1213,7.489,1252,7.489,1340,10.303,1355,8.468,1638,15.515,1639,11.575,1640,12.682,1641,10.847,1642,10.847,1643,10.847]],["keywords/244",[]],["title/245",[919,463.77,933,480.332]],["content/245",[27,4.842,73,4.204,75,3.652,78,2.048,81,2.937,137,3.128,138,2.084,141,5.116,142,5.217,191,2.793,233,3.375,244,4.798,245,3.05,248,2.688,255,2.974,257,1.989,274,2.39,284,5.436,306,3.024,314,6.15,315,3.409,531,5.327,534,6.15,636,2.999,638,4.715,666,5.184,961,5.89,1104,9.105,1105,9.506,1424,4.394,1573,5.674,1598,5.054,1644,6.909,1645,5.054,1646,6.909]],["keywords/245",[]],["title/246",[139,283.568,142,424.232,143,543.318]],["content/246",[]],["keywords/246",[]],["title/247",[913,468.958]],["content/247",[23,7.879,141,6.888,142,7.024,143,8.996,194,4.47,198,2.823,913,6.297,914,7.095,915,6.955]],["keywords/247",[]],["title/248",[973,420.766]],["content/248",[27,3.6,73,2.172,79,6.13,99,5.812,135,7.111,143,7.179,181,6.755,184,9.424,453,7.589,573,7.111,702,7.111,848,5.304,910,5.852,962,4.47,963,9.424,973,2.402,1015,10.753,1285,6.47,1360,6.755,1381,6.47,1647,14.454,1648,7.589,1649,8.314,1650,8.314,1651,8.314,1652,8.314,1653,8.314,1654,8.314,1655,10.753,1656,7.589,1657,6.755,1658,7.111,1659,8.314,1660,7.589,1661,12.966,1662,10.214,1663,8.314,1664,8.314,1665,6.233]],["keywords/248",[]],["title/249",[919,463.77,933,480.332]],["content/249",[27,4.792,73,4.459,75,2.165,78,2.294,81,2.129,138,2.335,141,5.579,142,5.69,143,4.843,191,3.046,244,2.845,248,1.948,257,2.228,274,2.677,275,3.983,276,4.496,619,3.819,630,4.843,1427,6.6,1572,7.254,1647,10.915,1657,6.89,1666,7.742,1667,7.742,1668,7.742,1669,7.742,1670,7.742,1671,7.254,1672,7.742,1673,7.742,1674,7.742,1675,7.254,1676,7.742,1677,7.742,1678,7.742,1679,7.742,1680,7.254]],["keywords/249",[]],["title/250",[140,862.806,198,206.238]],["content/250",[27,4.809,32,3.375,73,4.545,75,2.987,78,2.048,81,1.9,137,2.024,138,2.084,141,5.116,142,5.217,143,4.322,191,2.793,244,2.539,248,1.739,255,2.974,257,1.989,274,2.39,275,3.555,276,4.013,315,3.409,630,4.322,739,6.15,1415,10.009,1416,6.474,1427,5.89,1572,6.474,1647,10.009,1657,6.15,1666,6.909,1667,6.909,1668,6.909,1669,6.909,1670,6.909,1671,6.474,1672,6.909,1673,6.909,1674,6.909,1675,6.474,1676,6.909,1677,6.909,1678,6.909,1679,6.909,1680,6.474]],["keywords/250",[]],["title/251",[139,241.683,244,272.019,245,326.765,641,506.701]],["content/251",[]],["keywords/251",[]],["title/252",[913,468.958]],["content/252",[23,7.789,141,6.762,194,4.388,198,2.771,244,5.188,245,6.232,641,9.664,913,6.225,914,6.965,915,6.828]],["keywords/252",[]],["title/253",[973,420.766]],["content/253",[10,2.921,13,1.687,16,7.705,27,1.368,32,2.862,36,3.272,79,5.43,83,7.039,97,3.117,99,2.461,142,2.862,143,3.665,194,1.821,198,2.303,233,2.862,235,4.812,269,7.306,284,2.982,286,3.015,305,4.518,307,3.791,327,5.491,351,4.396,361,4.812,451,5.689,467,1.778,472,3.501,473,5.491,491,5.86,494,4.518,568,5.215,585,3.403,586,3.231,609,9.382,618,2.703,711,4.518,812,5.86,819,4.187,832,4.655,898,4.812,909,3.859,928,4.187,962,3.451,973,2.97,985,9.382,1093,3.608,1203,5.491,1213,3.791,1301,5.86,1340,5.215,1355,4.286,1390,5.86,1477,5.491,1641,5.491,1642,5.491,1643,5.491,1681,12.854,1682,6.42,1683,6.42,1684,6.42,1685,6.42,1686,6.42,1687,6.42,1688,6.42,1689,9.382,1690,6.42,1691,6.42,1692,6.42,1693,6.42,1694,6.42,1695,6.42]],["keywords/253",[]],["title/254",[919,463.77,933,480.332]],["content/254",[27,4.804,32,3.5,73,3.823,75,3.736,78,2.124,81,3.021,137,3.217,138,2.162,141,5.262,142,3.5,191,2.873,244,4.909,245,3.163,248,2.764,255,3.084,257,2.063,269,3.903,274,2.478,284,3.647,315,3.536,531,5.525,636,3.11,638,4.849,641,4.905,961,6.109,1104,6.109,1105,6.378,1573,5.885,1598,5.242,1645,5.242,1646,7.166,1696,7.851,1697,7.851,1698,7.166,1699,7.851,1700,7.851,1701,7.851,1702,7.851]],["keywords/254",[]],["title/255",[93,269.948,139,283.568,643,504.446]],["content/255",[]],["keywords/255",[]],["title/256",[913,468.958]],["content/256",[23,7.879,93,4.47,141,6.888,194,4.47,198,2.823,643,8.353,913,6.297,914,7.095,915,6.955]],["keywords/256",[]],["title/257",[973,420.766]],["content/257",[79,5.423,93,4.555,198,2.877,286,7.539,482,7.158,973,4.639,1040,11.642,1703,16.055,1704,16.055,1705,13.732]],["keywords/257",[]],["title/258",[919,463.77,933,480.332]],["content/258",[27,4.867,73,2.954,75,4.013,78,1.96,81,2.839,93,4.46,137,3.024,138,1.995,141,3.167,191,1.729,244,2.43,248,1.664,255,2.846,257,1.903,274,2.287,275,3.402,276,3.841,643,3.841,1040,5.254,1363,6.613,1598,4.838,1628,6.613,1645,4.838,1706,7.245,1707,11.31,1708,11.31,1709,11.31,1710,11.31,1711,7.245,1712,7.245,1713,7.245,1714,7.245,1715,7.245,1716,7.245,1717,7.245,1718,7.245,1719,7.245,1720,7.245,1721,7.245,1722,6.613,1723,7.245,1724,7.245]],["keywords/258",[]],["title/259",[139,283.568,185,534.764,638,383.396]],["content/259",[]],["keywords/259",[]],["title/260",[913,468.958]],["content/260",[23,7.879,141,6.888,185,8.855,194,4.47,198,2.823,638,6.348,913,6.297,914,7.095,915,6.955]],["keywords/260",[]],["title/261",[973,420.766]],["content/261",[3,4.93,16,7.954,139,3.162,208,8.621,281,5.408,313,6.16,365,8.257,373,6.769,855,9.686,888,7.695,973,3.066,1046,7.085,1058,8.621,1169,8.257,1550,9.686,1656,9.686,1725,10.611,1726,10.611,1727,10.611,1728,10.611,1729,9.686,1730,10.611,1731,10.611,1732,10.611,1733,9.076,1734,10.611,1735,10.611,1736,10.611,1737,10.611,1738,10.611,1739,10.611,1740,10.611,1741,10.611,1742,9.076,1743,10.611,1744,10.611,1745,10.611]],["keywords/261",[]],["title/262",[919,463.77,933,480.332]],["content/262",[27,4.573,73,4.485,75,4.384,78,3.483,81,3.232,137,3.442,138,3.545,141,5.629,185,7.236,191,3.073,248,2.957,255,5.058,257,3.383,274,4.064,638,5.188,1746,12.875,1747,12.875]],["keywords/262",[]],["title/263",[139,241.683,244,272.019,245,326.765,647,442.253]],["content/263",[]],["keywords/263",[]],["title/264",[913,468.958]],["content/264",[23,7.789,141,6.762,194,4.388,198,2.771,244,5.188,245,6.232,647,8.435,913,6.225,914,6.965,915,6.828]],["keywords/264",[]],["title/265",[973,420.766]],["content/265",[32,6.425,36,7.345,79,6.243,142,6.425,284,6.695,898,10.803,973,4.164,1093,8.099,1213,8.511,1340,11.708,1355,9.623,1641,12.327,1642,12.327,1643,12.327,1748,11.708]],["keywords/265",[]],["title/266",[919,463.77,933,480.332]],["content/266",[13,1.903,27,4.733,73,3.634,75,3.552,78,1.96,81,2.839,93,2.055,137,3.719,138,1.995,141,4.945,142,3.23,191,2.7,244,5.273,245,2.919,248,2.598,255,2.846,257,1.903,267,6.197,274,2.287,284,3.366,315,3.263,510,4.356,531,5.099,533,6.197,636,2.87,638,4.557,647,6.168,899,6.197,933,3.023,1573,5.431,1598,4.838,1645,4.838,1749,7.245,1750,7.245,1751,7.245,1752,6.613,1753,7.245,1754,6.613,1755,7.245,1756,7.245,1757,7.245,1758,7.245,1759,7.245,1760,7.245]],["keywords/266",[]],["title/267",[93,269.948,139,283.568,217,518.899]],["content/267",[]],["keywords/267",[]],["title/268",[913,468.958]],["content/268",[23,7.879,93,4.47,141,6.888,194,4.47,198,2.823,217,8.592,913,6.297,914,7.095,915,6.955]],["keywords/268",[]],["title/269",[973,420.766]],["content/269",[182,12.735,198,2.932,248,3.759,284,7.603,306,6.538,472,8.925,700,12.735,973,4.728,1468,11.868]],["keywords/269",[]],["title/270",[352,831.54]],["content/270",[27,5.004,81,4.264,194,2.866,217,10.726,244,6.229,352,5.769,666,6.919,675,12.319,676,7.327,677,7.111,700,7.862,1160,8.208,1761,9.223,1762,9.223,1763,9.223]],["keywords/270",[]],["title/271",[217,627.679,347,424.328]],["content/271",[3,4.694,13,2.655,93,5.268,99,7.119,142,4.505,198,1.81,212,6.746,217,7.916,244,4.869,274,5.363,281,5.149,284,4.694,286,6.816,347,5.351,472,5.51,510,6.074,586,5.085,638,5.849,901,6.19,902,7.574,1290,7.111,1764,8.642,1765,14.516,1766,15.506,1767,10.104]],["keywords/271",[]],["title/272",[142,424.232,284,442.056,630,543.318]],["content/272",[4,4.851,10,7.243,11,5.757,79,3.048,80,5.757,88,7.332,142,4.024,194,3.792,198,1.617,216,4.784,217,7.29,221,5.757,248,3.071,284,6.21,306,3.605,352,5.153,362,7.719,465,4.542,566,8.238,638,5.386,848,8.528,890,8.189,910,9.408,942,6.026,973,2.607,1065,7.022,1075,8.718,1087,7.719,1285,7.022,1290,6.352,1318,6.544,1468,6.544,1655,7.719,1768,9.025,1769,9.025,1770,9.025,1771,8.238,1772,9.025,1773,9.025,1774,9.025]],["keywords/272",[]],["title/273",[919,463.77,933,480.332]],["content/273",[27,4.967,73,2.56,75,3.626,78,1.637,81,3.916,93,2.781,137,2.62,138,1.666,141,2.646,191,2.34,198,1.084,217,8.508,244,5.601,248,1.39,255,2.378,257,1.59,274,1.91,275,2.842,276,3.208,315,2.725,638,2.438,666,4.144,675,8.958,676,4.389,677,4.259,700,4.709,1075,3.947,1458,3.638,1459,3.781,1598,4.041,1645,4.041,1761,5.524,1762,5.524,1763,5.524,1775,9.801,1776,6.052,1777,9.801,1778,6.052,1779,6.052,1780,6.052,1781,6.052,1782,6.052,1783,6.052]],["keywords/273",[]],["title/274",[120,435.957,139,241.683,245,326.765,647,442.253]],["content/274",[]],["keywords/274",[]],["title/275",[913,468.958]],["content/275",[23,7.789,120,8.314,141,6.762,194,4.388,198,2.771,245,6.232,647,8.435,913,6.225,914,6.965,915,6.828]],["keywords/275",[]],["title/276",[973,420.766]],["content/276",[1570,15.733]],["keywords/276",[]],["title/277",[919,463.77,933,480.332]],["content/277",[13,2.346,27,4.876,73,3.464,75,3.386,81,3.329,93,2.533,120,4.8,137,3.546,138,2.458,141,3.904,191,2.131,244,4.449,245,3.598,248,3.047,257,2.346,267,7.637,274,2.819,485,6.846,510,5.368,647,4.869,899,7.637,933,3.726,1308,6.948,1598,5.962,1645,5.962,1754,8.151,1784,8.929,1785,8.929,1786,8.151,1787,8.929,1788,8.929]],["keywords/277",[]],["title/278",[80,607.02,82,511.511,495,437.414]],["content/278",[]],["keywords/278",[]],["title/279",[194,326.54,1477,984.48]],["content/279",[]],["keywords/279",[]],["title/280",[1789,1456.318]],["content/280",[3,5.405,7,2.452,13,3.057,82,6.254,137,3.11,198,2.085,285,11.282,306,4.648,347,4.289,495,7.369,539,8.872,571,7.587,716,7.422,746,6.87,807,7.587,808,7.127,928,7.587,1526,10.619,1632,8.437,1790,11.634,1791,10.619,1792,11.634,1793,11.634,1794,11.634,1795,11.634,1796,11.634,1797,10.619]],["keywords/280",[]],["title/281",[306,459.839,791,984.48]],["content/281",[7,1.05,27,1.061,93,1.413,99,4.132,120,2.678,137,3.755,139,4.811,142,4.805,143,6.154,144,2.678,194,1.413,198,0.893,216,2.641,233,6.262,244,5.68,245,5.659,269,2.477,270,3.876,272,4.151,279,3.178,284,3.879,305,11.362,306,5.611,308,8.755,313,2.892,485,2.571,630,4.767,636,6.021,638,4.342,641,3.112,647,4.553,682,3.506,738,7.141,808,3.052,946,3.178,1048,11.021,1051,2.757,1075,3.249,1179,4.261,1196,4.261,1245,3.734,1248,4.261,1404,4.547,1556,4.047,1561,3.326,1564,4.547,1609,4.261,1625,4.547,1698,4.547,1722,4.547,1752,4.547,1786,4.547,1798,4.981,1799,4.547,1800,4.981,1801,4.981,1802,4.981,1803,4.981,1804,4.981,1805,4.981,1806,4.981,1807,4.981,1808,4.981,1809,4.981,1810,4.981,1811,4.981,1812,4.981]],["keywords/281",[]],["title/282",[93,326.54,791,984.48]],["content/282",[3,5.29,93,5.836,99,2.802,136,5.937,139,5.643,142,5.076,143,6.501,185,6.399,196,6.25,217,3.985,247,5.079,248,1.679,280,4.879,286,3.432,307,4.315,313,4.242,314,9.25,363,6.975,633,6.975,638,6.364,643,7.416,682,5.143,766,5.937,786,4.566,801,4.393,837,4.879,904,5.143,1280,5.686,1281,5.686,1661,6.25,1665,5.478,1705,6.25,1766,6.67,1813,7.308,1814,7.308,1815,7.308,1816,7.308,1817,7.308,1818,7.308,1819,7.308,1820,7.308,1821,7.308,1822,7.308,1823,6.25]],["keywords/282",[]],["title/283",[269,572.281,1445,594.142]],["content/283",[0,9.456,7,3.616,8,7.731,93,2.431,94,4.973,96,5.353,97,4.16,99,4.93,102,6.553,105,8.806,198,1.535,231,6.96,233,5.733,325,5.867,352,8.814,751,4.481,770,6.213,779,5.867,853,6.96,912,6.96,928,5.587,1252,9.116,1445,10.632,1452,5.867,1454,8.203,1824,8.567,1825,8.567,1826,6.96,1827,8.567,1828,8.567,1829,8.567,1830,8.567,1831,8.567,1832,8.567]],["keywords/283",[]],["title/284",[94,668.14,96,719.148]],["content/284",[]],["keywords/284",[]],["title/285",[913,468.958]],["content/285",[7,2.987,23,8.157,95,11.026,96,11.424,194,4.02,198,2.539,913,6.519,914,6.381,915,8.072,918,8.681,1833,12.12]],["keywords/285",[]],["title/286",[973,420.766]],["content/286",[3,3.005,7,2.18,13,1.7,36,5.27,58,5.142,79,5.451,93,2.934,94,6.003,96,9.221,99,4.953,205,3.005,234,3.256,269,5.142,286,3.038,294,5.812,300,3.889,306,4.131,441,9.702,451,3.58,468,3.635,482,4.61,483,4.319,485,3.339,500,3.528,512,3.58,579,3.889,586,3.256,607,4.219,770,4.691,796,4.127,958,3.694,962,3.477,973,2.988,1062,3.889,1074,6.335,1089,4.219,1093,5.812,1433,4.219,1435,4.219,1436,4.319,1442,4.849,1443,4.319,1444,4.553,1445,5.338,1446,4.553,1447,4.553,1448,4.553,1449,4.553,1450,7.278,1451,4.553,1453,4.319,1454,4.127,1455,4.219,1826,5.255,1833,5.533,1834,6.469,1835,6.469,1836,6.469,1837,6.469,1838,6.469,1839,6.469]],["keywords/286",[]],["title/287",[919,463.77,933,480.332]],["content/287",[27,4.824,73,3.309,75,3.894,78,2.271,81,2.108,93,3.593,95,6.534,96,5.246,137,2.245,138,2.312,191,3.023,198,1.505,244,2.817,248,1.929,255,3.299,257,2.206,272,4.175,274,2.651,275,3.943,276,4.452,294,4.719,315,3.781,638,3.383,663,6.089,758,4.874,759,11.561,760,6.822,762,7.665,764,7.182,765,7.665,766,6.822,1424,4.874,1458,5.048,1459,5.246,1840,8.397,1841,8.397,1842,8.397,1843,8.397]],["keywords/287",[]],["title/288",[19,892.126]],["content/288",[7,4.219,89,7.603,96,10.225,281,8.34,1460,13.055,1461,10.025,1833,13.998]],["keywords/288",[]],["title/289",[913,468.958]],["content/289",[23,7.879,82,8.47,194,4.47,198,2.823,495,7.243,628,11.089,913,6.297,914,7.095,915,6.955]],["keywords/289",[]],["title/290",[973,420.766]],["content/290",[7,1.824,13,2.274,27,2.76,36,4.411,73,2.261,79,5.824,99,4.968,120,4.653,193,6.488,198,1.551,221,5.521,225,4.407,257,2.274,269,4.303,285,6.091,286,7.293,347,6.357,373,5.521,465,4.356,485,4.468,495,3.979,496,7.403,539,8.596,576,6.091,902,9.713,941,5.927,1040,6.276,1075,8.451,1093,4.864,1844,8.655,1845,8.655,1846,8.655,1847,7.9,1848,8.655,1849,8.655,1850,8.655,1851,8.655,1852,7.403,1853,8.655,1854,8.655]],["keywords/290",[]],["title/291",[919,463.77,933,480.332]],["content/291",[27,4.828,32,2.862,73,4.199,75,4.598,78,2.78,81,3.226,82,5.525,93,3.647,137,2.748,138,2.83,191,3.068,198,1.15,244,2.153,248,2.361,255,4.038,257,2.7,272,3.192,274,3.245,275,3.015,276,3.403,306,2.565,315,2.891,495,6.755,628,7.234,638,2.587,840,10.994,907,4.655,1424,3.726,1458,3.859,1459,4.011,1855,12.854,1856,6.42,1857,6.42,1858,6.42,1859,6.42,1860,6.42]],["keywords/291",[]],["title/292",[97,707.207]],["content/292",[]],["keywords/292",[]],["title/293",[913,468.958]],["content/293",[7,3.038,23,8.222,90,6.768,97,6.999,98,9.399,194,4.089,198,2.582,913,6.571,914,6.49,915,8.16,918,8.829]],["keywords/293",[]],["title/294",[973,420.766]],["content/294",[3,5.276,7,2.394,13,1.408,15,2.665,36,4.523,58,4.413,79,5.897,80,3.42,83,3.671,89,2.49,90,2.517,93,3.222,97,2.603,99,4.354,109,3.42,198,0.961,205,2.49,234,2.698,269,4.413,286,4.168,294,4.988,300,3.223,306,3.546,347,1.976,383,4.171,441,8.795,451,4.912,468,3.013,482,5.063,483,3.579,485,2.767,497,3.42,500,6.193,512,2.967,579,3.223,586,4.467,607,3.496,751,2.804,794,3.579,796,7.245,805,4.171,958,3.061,962,2.882,973,1.549,1062,3.223,1074,5.437,1089,3.496,1093,4.988,1433,3.496,1435,3.496,1436,3.579,1437,4.893,1438,6.957,1439,3.887,1440,3.887,1441,3.887,1442,4.018,1443,3.579,1444,3.773,1445,4.581,1446,3.773,1447,3.773,1448,3.773,1449,3.773,1450,6.246,1451,3.773,1452,3.671,1453,3.579,1454,3.42,1455,3.496,1861,10.366,1862,5.361,1863,5.361,1864,5.361]],["keywords/294",[]],["title/295",[919,463.77,933,480.332]],["content/295",[27,4.925,32,3.899,71,5.703,73,3.411,75,3.99,78,2.365,81,2.195,93,3.704,97,6.341,98,5.703,137,2.338,138,2.408,191,3.117,198,1.567,244,2.933,248,2.009,255,3.436,257,2.297,272,4.348,274,2.761,275,4.106,276,4.636,315,3.938,482,3.899,638,3.523,758,5.076,781,7.479,1424,5.076,1458,5.257,1459,5.464,1487,6.341,1865,7.479]],["keywords/295",[]],["title/296",[19,892.126]],["content/296",[7,4.219,89,7.603,90,7.685,97,7.947,281,8.34,1460,13.055,1461,10.025]],["keywords/296",[]],["title/297",[22,646.87,919,463.77]],["content/297",[4,2.287,10,3.322,22,2.391,27,4.5,32,1.897,71,4.763,73,1.908,75,2.449,79,1.437,81,1.833,93,2.072,97,5.526,98,2.774,99,2.8,138,1.171,144,2.287,189,2.994,191,1.015,198,1.308,211,2.658,212,2.841,221,2.714,225,1.447,244,1.427,248,0.977,257,1.919,269,6.369,272,2.115,274,2.305,275,1.998,276,2.255,284,5.951,286,5.344,300,2.558,306,5.118,307,2.512,340,2.606,347,3.537,352,2.429,451,4.042,462,2.913,465,2.141,481,2.774,482,1.897,487,2.391,500,3.982,638,1.714,758,4.239,781,3.639,895,2.558,946,6.121,948,2.841,971,2.841,973,1.229,1036,2.913,1145,2.913,1217,3.31,1252,4.312,1308,3.31,1318,5.296,1334,3.189,1385,2.994,1424,2.469,1445,5.874,1458,2.558,1459,2.658,1462,3.189,1463,3.085,1464,3.31,1465,5.682,1466,3.31,1468,5.296,1469,3.31,1471,3.31,1472,3.31,1473,3.639,1474,3.639,1475,3.639,1476,3.639,1487,3.085,1538,3.883,1540,3.883,1541,3.883,1542,3.883,1865,3.639,1866,11.38,1867,4.254,1868,4.254]],["keywords/297",[]],["title/298",[643,429.935,786,506.701,801,487.568,837,541.505]],["content/298",[]],["keywords/298",[]],["title/299",[913,468.958]],["content/299",[7,2.756,23,7.844,27,2.785,58,6.5,90,6.139,194,3.709,198,2.343,284,6.074,643,6.931,786,8.169,801,7.86,836,11.182,837,8.73,913,6.269,914,5.888,915,7.658,918,8.009]],["keywords/299",[]],["title/300",[973,420.766]],["content/300",[79,5.423,235,12.035,347,7.293,495,7.38,895,9.652,904,11.299,973,4.639,1245,12.035,1589,14.654]],["keywords/300",[]],["title/301",[919,463.77,933,480.332]],["content/301",[27,4.683,73,3.792,75,4.337,78,2.733,81,3.643,137,2.701,138,2.782,191,2.412,210,6.746,235,7.574,248,2.321,255,3.97,257,2.655,272,5.024,274,4.582,643,5.356,786,6.313,836,8.642,837,6.746,1051,5.592,1245,10.881,1869,10.104,1870,10.104,1871,10.104,1872,10.104,1873,10.104,1874,10.104]],["keywords/301",[]],["title/302",[73,380.414]],["content/302",[13,3.991,15,7.552,279,9.69,465,7.645,786,9.49,837,10.142,905,13.864,1791,13.864,1875,15.189,1876,15.189,1877,19.112,1878,13.864]],["keywords/302",[]],["title/303",[93,269.948,97,462.08,99,364.805]],["content/303",[]],["keywords/303",[]],["title/304",[913,468.958]],["content/304",[7,2.938,23,8.092,90,6.544,93,3.954,97,6.768,98,9.089,99,5.343,194,3.954,198,2.497,913,6.467,914,6.276,915,7.986,918,8.537]],["keywords/304",[]],["title/305",[973,420.766]],["content/305",[3,3.455,7,2.981,10,3.383,15,3.697,36,3.79,58,3.697,79,3.898,89,5.362,90,3.492,93,2.11,97,3.611,99,5.423,205,3.455,248,1.708,258,3.743,306,2.971,347,2.741,376,6.041,468,4.179,497,4.744,512,4.116,579,4.471,585,3.942,586,5.809,794,4.965,796,10.17,950,6.36,958,4.246,962,3.998,973,4.087,1049,5.234,1062,4.471,1074,7.07,1093,4.179,1252,4.391,1290,5.234,1433,4.85,1435,4.85,1436,4.965,1443,4.965,1445,3.839,1454,4.744,1455,4.85,1460,4.85,1861,12.911,1879,7.436,1880,6.788,1881,6.788,1882,7.436,1883,7.436,1884,7.436,1885,6.788,1886,7.436,1887,7.436,1888,7.436,1889,7.436]],["keywords/305",[]],["title/306",[919,463.77,933,480.332]],["content/306",[]],["keywords/306",[]],["title/307",[140,1091.659]],["content/307",[27,4.613,73,4.468,75,4.767,78,2.766,81,3.675,93,2.901,98,6.669,99,3.921,137,2.734,138,2.816,145,12.523,191,2.441,244,3.43,248,2.349,255,4.018,257,2.687,274,3.228,487,5.747,1648,9.334,1890,9.334,1891,10.226,1892,10.226,1893,10.226,1894,10.226,1895,10.226,1896,9.334]],["keywords/307",[]],["title/308",[233,649.28]],["content/308",[27,4.628,73,4.498,75,3.771,78,2.8,81,3.707,93,2.937,98,6.751,99,3.969,137,2.767,138,2.85,145,12.632,191,2.471,244,5.776,248,2.378,255,4.067,256,6.341,257,2.72,274,3.268,467,2.867,487,5.817,677,7.285,1890,9.448,1896,9.448,1897,10.351,1898,10.351]],["keywords/308",[]],["title/309",[8,691.994,105,788.216]],["content/309",[]],["keywords/309",[]],["title/310",[913,468.958]],["content/310",[7,2.987,23,8.157,90,6.654,103,11.026,104,11.512,105,9.704,194,4.02,198,2.539,913,6.519,914,6.381,915,8.072,918,8.681]],["keywords/310",[]],["title/311",[973,420.766]],["content/311",[3,4.352,7,2.506,13,1.504,15,2.846,36,4.774,58,4.657,79,6.053,89,2.659,90,2.688,93,2.657,99,4.558,108,3.576,109,3.651,205,2.659,234,2.881,269,4.657,286,4.399,294,5.264,300,3.441,306,3.742,347,2.11,441,9.111,451,5.184,468,3.217,482,5.301,483,3.822,485,2.955,497,3.651,500,5.108,512,3.168,579,3.441,586,4.714,607,3.733,751,2.994,794,3.822,796,7.585,958,3.268,962,3.077,973,1.654,1062,3.441,1074,5.738,1089,3.733,1093,5.264,1433,3.733,1435,3.733,1436,3.822,1438,7.283,1439,4.151,1440,4.151,1441,4.151,1442,4.291,1443,3.822,1444,4.028,1445,4.835,1446,4.028,1447,4.028,1448,4.028,1449,4.028,1450,6.592,1451,4.028,1452,3.92,1453,3.822,1454,3.651,1455,3.733,1899,11.889,1900,5.724,1901,5.724]],["keywords/311",[]],["title/312",[919,463.77,933,480.332]],["content/312",[27,4.941,73,3.464,75,4.039,78,2.415,81,2.241,93,3.763,103,10.32,104,7.254,105,6.115,137,2.387,138,2.458,191,3.166,198,1.6,244,2.995,248,2.051,255,3.508,257,2.346,272,4.44,274,2.819,275,4.193,276,4.734,315,4.021,638,3.598,758,5.183,928,5.824,1099,6.694,1424,5.183,1458,5.368,1459,5.579,1902,8.929]],["keywords/312",[]],["title/313",[19,892.126]],["content/313",[7,4.219,89,7.603,90,7.685,103,12.735,281,8.34,1460,13.055,1461,10.025]],["keywords/313",[]],["title/314",[19,892.126]],["content/314",[7,4.219,89,7.603,90,7.685,97,7.947,281,8.34,1460,13.055,1461,10.025]],["keywords/314",[]],["title/315",[102,586.582,751,602.006]],["content/315",[]],["keywords/315",[]],["title/316",[913,468.958]],["content/316",[7,2.938,23,8.092,90,6.544,102,9.219,194,3.954,198,2.497,751,7.289,755,10.447,913,6.467,914,6.276,915,7.986,918,8.537]],["keywords/316",[]],["title/317",[973,420.766]],["content/317",[3,3.562,7,2.11,13,1.183,15,2.239,36,5.102,58,3.812,79,4.87,89,2.092,90,2.115,93,2.175,99,3.838,102,2.295,109,2.873,198,1.794,205,2.092,234,2.267,252,3.17,269,3.812,279,2.873,280,3.007,281,2.295,286,3.6,294,5.626,300,2.708,306,3.063,347,1.66,441,8.669,451,5.541,465,2.267,468,2.531,482,5.269,483,5.119,485,3.958,497,2.873,500,4.181,512,2.493,579,2.708,586,3.859,607,2.937,751,7.542,773,3.659,794,3.007,796,6.387,852,4.111,909,2.708,928,2.937,942,3.007,958,2.572,962,2.421,973,3.414,1062,2.708,1074,4.697,1089,2.937,1093,6.642,1147,3.852,1183,9.138,1252,2.659,1397,3.504,1433,2.937,1435,2.937,1436,3.007,1439,3.266,1440,3.266,1441,3.266,1443,3.007,1444,3.17,1445,5.168,1446,3.17,1447,3.17,1448,3.17,1449,3.17,1450,5.396,1451,3.17,1453,3.007,1454,2.873,1455,2.937,1665,3.376,1903,4.504,1904,4.504,1905,4.504,1906,4.504,1907,4.504,1908,4.504,1909,4.504,1910,4.504,1911,4.504,1912,4.504,1913,4.504,1914,4.504,1915,4.504,1916,4.504]],["keywords/317",[]],["title/318",[919,463.77,933,480.332]],["content/318",[27,4.748,32,3.436,73,3.1,75,3.029,78,2.085,81,2.978,93,2.187,100,8.605,102,6.047,137,2.061,138,2.122,191,2.832,194,2.187,198,1.381,231,6.262,248,2.726,255,3.028,257,3.118,274,2.433,294,4.332,315,3.471,347,2.841,482,3.436,510,4.634,751,4.031,755,5.778,758,4.474,760,6.262,764,10.149,847,10.149,884,4.086,1314,6.593,1445,3.979,1483,7.035,1484,10.831,1485,6.262,1486,7.035,1487,5.589,1598,5.147,1645,5.147,1917,7.708,1918,7.708]],["keywords/318",[]],["title/319",[19,892.126]],["content/319",[7,4.17,89,7.459,90,7.539,102,8.182,281,8.182,751,8.397,1460,12.902,1461,9.835]],["keywords/319",[]],["title/320",[22,646.87,919,463.77]],["content/320",[4,2.22,10,3.238,22,2.321,27,4.471,32,3.174,73,1.859,75,2.848,78,1.117,79,1.395,81,1.787,93,2.019,99,1.583,100,8.089,102,2.104,137,1.104,138,1.137,144,2.22,189,2.906,191,1.699,198,1.681,211,2.58,212,2.757,221,2.634,225,1.405,244,1.385,248,0.949,255,1.622,257,1.87,269,6.256,272,2.053,274,2.247,275,1.939,276,2.189,284,5.845,286,5.908,306,5.026,307,2.439,315,1.86,340,2.53,347,3.458,352,2.358,451,3.94,462,2.828,465,2.078,481,2.693,482,1.841,487,2.321,500,5.116,638,1.664,751,6.58,755,3.095,758,4.132,847,3.532,895,2.483,946,5.985,948,2.757,971,2.757,973,1.193,1036,2.828,1145,2.828,1217,3.213,1252,2.439,1318,5.162,1334,3.095,1385,2.906,1424,2.397,1445,5.758,1458,2.483,1459,2.58,1462,3.095,1463,2.995,1464,3.213,1465,5.539,1466,3.213,1468,5.162,1469,3.213,1471,3.213,1472,3.213,1487,5.162,1865,3.532,1919,4.129,1920,4.129,1921,4.129,1922,4.129,1923,4.129,1924,4.129,1925,4.129,1926,4.129,1927,4.129]],["keywords/320",[]],["title/321",[194,269.948,1928,951.54,1929,951.54]],["content/321",[]],["keywords/321",[]],["title/322",[1355,635.351,1930,773.027,1931,813.863]],["content/322",[0,2.73,7,2.776,13,3.46,14,6.632,94,4.411,120,4.084,137,3.521,139,1.328,191,1.064,194,4.773,197,2.504,198,0.798,216,4.028,234,2.243,248,1.024,257,1.996,258,2.243,280,2.975,336,2.395,347,2.801,352,2.544,363,2.73,367,4.067,388,4.847,493,6.499,495,2.048,511,3.052,539,7.936,582,6.173,586,2.243,603,4.067,605,6.935,616,2.906,620,2.587,686,2.587,693,3.052,708,5.348,805,3.467,807,2.906,851,4.067,884,2.362,963,5.696,965,4.067,969,3.136,1032,3.231,1033,3.811,1057,5.912,1145,3.052,1162,3.34,1169,3.467,1248,3.811,1315,3.231,1392,5.912,1411,4.067,1496,3.62,1611,4.067,1658,3.811,1705,3.811,1932,4.456,1933,4.456,1934,4.456,1935,4.456,1936,4.456,1937,9.933,1938,4.456,1939,4.456,1940,4.456,1941,4.456,1942,4.456,1943,4.456,1944,4.456,1945,7.598,1946,4.456,1947,10.712,1948,6.935,1949,6.935,1950,6.935,1951,7.598,1952,7.598,1953,7.598,1954,4.456,1955,4.456,1956,4.456,1957,4.456,1958,4.456,1959,4.456,1960,7.598,1961,4.067,1962,4.456,1963,6.935,1964,4.456,1965,4.456,1966,4.456]],["keywords/322",[]],["title/323",[1355,635.351,1930,773.027,1967,813.863]],["content/323",[7,3.755,13,4.055,22,3.937,85,4.568,102,5.614,144,7.318,194,1.987,248,1.609,316,4.291,336,3.766,347,5.689,363,6.748,465,3.526,482,3.123,495,3.22,500,3.82,539,7.534,622,3.483,716,4.469,726,4.469,746,8.039,751,3.664,779,4.797,853,5.691,942,4.677,945,5.991,946,4.469,963,5.251,1032,5.08,1036,7.543,1037,5.991,1038,8.949,1046,4.677,1047,4.797,1049,7.752,1051,6.096,1052,11.059,1065,5.451,1154,5.691,1235,6.394,1252,9.113,1500,6.394,1878,6.394,1968,7.005,1969,7.005,1970,7.005,1971,7.005,1972,7.005,1973,7.005,1974,7.005]],["keywords/323",[]],["title/324",[1355,768.544,1975,862.806]],["content/324",[0,4.342,5,2.892,7,1.494,13,2.456,16,3.08,27,0.875,76,5.313,83,2.814,93,2.652,97,1.996,99,1.575,102,2.094,137,2.499,139,2.112,144,2.209,151,3.515,191,2.654,193,3.08,194,4.942,198,1.27,199,3.515,200,3.08,201,3.338,215,5.516,216,4.955,217,3.865,233,4.167,244,2.378,245,1.656,247,1.492,248,0.944,269,2.043,274,2.238,276,2.179,280,2.744,284,1.909,305,2.892,306,1.642,308,5.759,347,2.613,363,2.517,369,3.751,454,5.759,459,3.515,495,1.889,511,2.814,539,3.923,582,3.338,591,2.568,620,4.115,622,2.043,651,2.427,728,3.515,770,2.98,796,2.622,801,2.471,848,2.622,946,2.622,957,3.198,967,3.751,1022,3.338,1033,3.515,1044,3.751,1046,2.744,1047,2.814,1049,4.989,1166,3.515,1278,3.338,1286,3.751,1385,2.892,1445,2.121,1455,4.623,1501,3.751,1660,3.751,1733,3.515,1771,3.751,1797,3.751,1826,3.338,1947,6.47,1948,3.751,1949,3.751,1950,3.751,1961,6.47,1963,3.751,1976,7.088,1977,4.109,1978,4.109,1979,4.109,1980,4.109,1981,4.109,1982,4.109,1983,4.109,1984,3.515,1985,4.109,1986,4.109,1987,4.109,1988,4.109,1989,4.109,1990,4.109,1991,4.109,1992,7.088,1993,4.109,1994,4.109,1995,4.109,1996,4.109,1997,4.109,1998,4.109,1999,4.109,2000,4.109,2001,4.109,2002,4.109,2003,4.109,2004,4.109,2005,4.109,2006,4.109,2007,4.109,2008,4.109,2009,3.751,2010,4.109,2011,4.109]],["keywords/324",[]],["title/325",[106,875.54]],["content/325",[]],["keywords/325",[]],["title/326",[913,468.958]],["content/326",[7,3.038,23,8.222,90,6.768,106,8.664,107,10.451,194,4.089,198,2.582,913,6.571,914,6.49,915,8.16,918,8.829]],["keywords/326",[]],["title/327",[973,420.766]],["content/327",[3,3.841,7,2.639,13,1.294,15,2.448,36,4.213,58,5.313,79,4.713,89,2.287,90,2.312,93,2.345,99,4.097,106,2.96,109,3.141,205,2.287,234,2.478,269,4.11,284,2.287,286,3.882,294,4.646,300,2.96,306,4.269,347,1.815,370,3.57,441,8.388,451,4.576,468,2.767,482,4.764,483,3.287,485,2.541,497,3.141,500,4.508,512,2.725,574,3.691,579,2.96,586,4.161,607,3.211,770,5.995,794,3.287,796,3.141,958,2.811,962,2.647,973,3.617,1046,5.52,1047,5.661,1048,3.57,1062,2.96,1074,5.064,1089,3.211,1093,4.646,1252,4.882,1433,3.211,1435,3.211,1436,3.287,1439,3.57,1440,3.57,1441,3.57,1443,3.287,1444,3.465,1445,4.267,1446,3.465,1447,3.465,1448,3.465,1449,3.465,1450,5.818,1451,3.465,1453,3.287,1454,3.141,1455,3.211,1463,3.57,1485,4,1574,4.211,1826,6.716,2012,10.686,2013,4.923,2014,4.923,2015,4.923,2016,4.923,2017,4.923,2018,4.923,2019,4.923,2020,4.494,2021,4.923,2022,4.923,2023,4.923,2024,4.923,2025,4.923,2026,4.923]],["keywords/327",[]],["title/328",[919,463.77,933,480.332]],["content/328",[27,4.937,32,1.976,73,3.43,75,3.352,78,2.046,79,3.95,81,2.935,99,2.9,106,9.18,107,5.485,120,4.066,137,2.022,138,2.083,191,2.792,194,1.258,198,1.773,248,1.738,255,2.972,257,1.987,269,3.761,274,2.388,306,3.022,315,3.406,455,5.485,456,3.323,465,5.886,481,2.891,482,3.372,486,3.791,487,2.491,602,5.485,751,2.318,758,5.743,940,5.886,974,5.67,1397,3.449,1445,2.288,1487,3.214,2027,9.031,2028,9.031,2029,7.564,2030,9.031,2031,6.904,2032,7.564,2033,4.046,2034,4.433,2035,4.046,2036,4.046,2037,4.046]],["keywords/328",[]],["title/329",[19,892.126]],["content/329",[7,4.219,89,7.603,90,7.685,106,9.839,281,8.34,1460,13.055,1461,10.025]],["keywords/329",[]],["title/330",[22,646.87,919,463.77]],["content/330",[4,2.087,10,3.07,22,2.182,27,4.541,73,2.338,75,2.285,78,1.05,79,1.311,81,2.247,99,1.489,106,7.282,107,2.816,120,2.087,137,1.038,138,1.069,144,2.087,189,2.733,191,1.611,194,1.102,198,1.604,211,2.426,212,2.593,221,2.477,225,1.321,233,1.731,248,0.892,255,1.525,257,1.773,269,4.45,274,2.13,284,6.631,286,7.44,306,2.696,307,2.293,315,1.749,340,2.379,347,3.3,451,3.735,455,2.816,456,2.911,462,2.659,465,4.505,481,2.532,487,2.182,500,3.68,586,4.505,711,6.3,751,2.031,758,3.917,895,2.334,940,3.021,946,5.71,948,2.593,971,2.593,973,1.122,974,2.911,1145,2.659,1217,3.021,1252,7.846,1318,4.894,1334,2.911,1385,2.733,1397,3.021,1445,5.521,1462,2.911,1463,2.816,1464,3.021,1465,5.251,1466,3.021,1468,4.894,1469,3.021,1471,3.021,1472,3.021,2027,3.544,2028,3.544,2030,6.16,2031,3.544,2035,3.544,2036,3.544,2037,3.544,2038,10.696,2039,3.883,2040,3.883,2041,3.883,2042,3.883,2043,3.883,2044,3.883,2045,3.883]],["keywords/330",[]],["title/331",[108,909.897]],["content/331",[]],["keywords/331",[]],["title/332",[913,468.958]],["content/332",[7,3.038,23,8.222,90,6.768,108,9.004,109,9.194,194,4.089,198,2.582,913,6.571,914,6.49,915,8.16,918,8.829]],["keywords/332",[]],["title/333",[973,420.766]],["content/333",[3,2.677,7,2.518,13,1.514,15,2.865,36,4.8,58,4.683,79,5.137,89,2.677,90,2.706,93,2.672,99,4.58,108,3.601,184,4.32,185,3.239,205,2.677,223,4.929,234,2.9,269,4.683,286,2.706,294,5.294,300,3.465,306,3.763,347,2.125,441,9.143,451,3.19,468,3.239,482,4.199,483,3.848,485,2.975,497,3.676,500,3.143,512,3.19,576,4.056,579,3.465,585,3.055,586,4.741,607,3.758,618,2.427,794,3.848,796,7.62,958,3.291,962,3.098,973,3.451,1062,3.465,1074,5.77,1089,3.758,1093,5.294,1280,4.484,1281,4.484,1302,5.26,1433,3.758,1435,3.758,1436,3.848,1441,4.179,1442,4.32,1443,3.848,1444,4.056,1445,4.862,1446,4.056,1447,4.056,1448,4.056,1449,4.056,1450,6.629,1451,4.056,1452,3.946,1453,3.848,1454,3.676,1455,3.758,1880,5.26,2046,11.945,2047,5.763,2048,5.763,2049,5.763,2050,5.26]],["keywords/333",[]],["title/334",[919,463.77,933,480.332]],["content/334",[27,4.961,73,3.437,75,4.014,78,2.39,81,2.218,93,3.733,108,8.222,109,5.637,137,2.362,138,2.433,191,3.141,198,1.583,244,2.964,248,2.03,255,3.471,257,2.321,272,4.393,274,2.789,275,4.149,276,4.684,315,3.979,638,3.56,758,5.129,769,8.065,973,2.553,1424,5.129,1458,5.312,1459,5.521,2051,8.836,2052,8.836]],["keywords/334",[]],["title/335",[19,892.126]],["content/335",[7,4.219,89,7.603,90,7.685,108,10.225,281,8.34,1460,13.055,1461,10.025]],["keywords/335",[]],["title/336",[651,859.992]],["content/336",[]],["keywords/336",[]],["title/337",[913,468.958]],["content/337",[23,8.065,194,4.643,198,2.932,913,6.446,914,7.37,915,7.225,2053,14.938]],["keywords/337",[]],["title/338",[973,420.766]],["content/338",[3,5.638,32,5.41,36,6.184,76,9.097,79,4.099,99,6.326,137,5.378,274,3.831,285,8.541,307,7.166,318,8.31,347,6.083,382,8.541,651,9.743,874,9.859,887,11.077,890,7.434,969,8.541,1075,7.914,1252,7.166,2054,11.077]],["keywords/338",[]],["title/339",[919,463.77,933,480.332]],["content/339",[27,4.905,32,4.731,75,5.117,78,2.87,81,3.773,137,4.019,191,3.588,241,9.076,248,2.438,255,4.169,257,2.788,315,4.779,651,6.266,2054,13.721,2055,10.611,2056,10.611,2057,10.611,2058,10.611]],["keywords/339",[]],["title/340",[233,361.569,244,272.019,245,326.765,2059,517.359]],["content/340",[]],["keywords/340",[]],["title/341",[913,468.958]],["content/341",[23,7.879,92,10.52,194,4.47,198,2.823,233,7.024,244,5.285,245,6.348,913,6.297,915,6.955]],["keywords/341",[]],["title/342",[973,420.766]],["content/342",[79,5.423,198,2.877,244,5.385,347,5.919,586,8.08,1252,9.481,1438,9.835,1638,18.057,1639,14.654]],["keywords/342",[]],["title/343",[919,463.77,933,480.332]],["content/343",[27,4.21,73,4.791,75,4.093,78,3.147,81,2.92,92,10.703,93,3.301,137,3.11,138,3.203,191,3.826,233,5.187,244,3.902,245,4.688,248,2.672,255,4.571,274,3.673,315,5.239,683,10.619,684,9.951,696,10.619,697,9.951,2060,11.634]],["keywords/343",[]],["title/344",[93,326.54,2059,734.275]],["content/344",[]],["keywords/344",[]],["title/345",[913,468.958]],["content/345",[7,2.987,23,8.157,90,6.654,91,11.026,92,9.462,93,4.02,194,4.02,198,2.539,913,6.519,914,6.381,915,8.072,918,8.681]],["keywords/345",[]],["title/346",[973,420.766]],["content/346",[3,7.953,7,2.949,13,1.92,15,3.633,36,3.724,58,3.633,79,5.782,89,3.395,90,3.432,91,5.686,93,2.073,99,4.365,109,4.662,198,1.309,205,3.395,286,3.432,306,2.92,347,2.694,451,4.045,468,4.107,482,3.258,497,4.662,500,3.985,512,4.045,579,4.393,586,5.731,751,3.822,794,4.879,796,8.924,890,4.477,950,6.25,958,4.173,962,3.928,973,2.111,1062,4.393,1074,6.975,1093,4.107,1149,5.937,1433,4.766,1435,4.766,1436,4.879,1438,8.569,1439,5.299,1440,5.299,1443,4.879,1454,4.662,1455,4.766,1881,6.67,2061,11.386,2062,7.308,2063,7.308,2064,7.308,2065,7.308,2066,7.308,2067,7.308]],["keywords/346",[]],["title/347",[919,463.77,933,480.332]],["content/347",[]],["keywords/347",[]],["title/348",[234,579.301,616,750.664]],["content/348",[27,4.245,73,4.675,75,3.5,78,3.709,81,3.441,92,9.155,93,3.89,138,3.775,191,3.273,248,3.149,257,3.602,272,6.817,274,4.328,1308,10.668,2068,12.514,2069,13.71]],["keywords/348",[]],["title/349",[340,892.126]],["content/349",[27,4.905,73,3.927,75,3.838,78,2.87,81,2.663,92,7.085,93,3.01,137,2.837,138,2.922,191,3.588,198,1.901,248,2.438,255,4.169,257,2.788,269,5.276,272,5.276,274,3.35,315,4.779,1485,8.621,1823,9.076,2068,13.721,2070,10.611]],["keywords/349",[]],["title/350",[19,892.126]],["content/350",[7,4.219,89,7.603,90,7.685,91,12.735,281,8.34,1460,13.055,1461,10.025]],["keywords/350",[]],["title/351",[686,668.14,2059,734.275]],["content/351",[]],["keywords/351",[]],["title/352",[913,468.958]],["content/352",[23,8.065,92,10.927,194,4.643,198,2.932,686,9.5,913,6.446,915,7.225]],["keywords/352",[]],["title/353",[973,420.766]],["content/353",[0,8.189,7,1.902,58,7.916,85,5.886,99,3.46,194,5.584,247,4.854,248,2.073,255,5.252,257,2.371,286,4.238,313,7.76,347,4.928,383,7.022,457,3.766,466,8.238,468,5.072,482,4.024,510,5.426,583,7.332,686,7.76,691,8.238,693,10.903,694,7.719,695,7.719,843,12.87,884,4.784,941,6.18,962,4.851,1645,6.026,2071,9.025,2072,8.238]],["keywords/353",[]],["title/354",[919,463.77,933,480.332]],["content/354",[0,7.32,27,4.864,73,4.265,75,4.168,78,2.104,81,2.999,92,7.979,93,2.207,138,2.142,191,3.897,248,3.342,249,5.327,257,3.14,274,3.772,619,5.381,649,5.475,684,6.653,685,7.1,686,4.515,687,10.907,689,10.907,693,5.327,694,10.221,695,10.221,697,6.653,698,7.1,2073,10.907]],["keywords/354",[]],["title/355",[139,343.015,686,668.14]],["content/355",[]],["keywords/355",[]],["title/356",[913,468.958]],["content/356",[23,7.971,141,7.019,194,4.555,198,2.877,686,9.319,913,6.37,914,7.23,915,7.087]],["keywords/356",[]],["title/357",[973,420.766]],["content/357",[0,4.327,3,5.151,6,6.041,7,1.489,27,1.505,58,8.376,85,4.607,99,2.708,120,5.96,194,5.072,198,1.987,205,3.281,234,3.555,247,2.565,248,1.623,255,4.356,257,1.856,286,5.207,313,6.436,316,4.327,347,4.087,370,5.122,379,5.738,383,5.496,468,3.97,501,5.122,510,4.247,583,5.738,586,3.555,616,4.607,686,6.436,693,7.593,708,7.803,710,5.738,832,5.122,843,10.617,884,3.745,941,4.837,962,3.797,973,2.041,1048,5.122,1189,6.447,1290,4.971,1645,4.716,2072,6.447,2074,7.063,2075,7.063,2076,7.063,2077,7.063,2078,7.063,2079,7.063,2080,7.063,2081,7.063,2082,7.063,2083,7.063]],["keywords/357",[]],["title/358",[919,463.77,933,480.332]],["content/358",[27,4.955,73,3.614,75,3.995,78,1.943,81,2.82,120,6.039,138,1.978,141,3.141,191,3.735,244,3.768,248,3.178,249,4.919,257,2.952,274,3.547,275,5.276,276,5.956,531,5.056,619,5.059,649,5.056,686,4.17,693,4.919,703,6.557,704,10.255,707,10.255,708,7.907,709,6.557,710,5.836,711,5.056,712,6.557,2073,10.255]],["keywords/358",[]],["title/359",[27,172.768,1975,607.92,2084,607.92,2085,740.247]],["content/359",[]],["keywords/359",[]],["title/360",[20,690.024,349,740.421,1036,651.613]],["content/360",[10,2.658,13,1.535,15,2.905,16,4.38,20,8.745,23,2.354,81,5.387,98,3.81,137,2.547,138,1.609,141,8.169,142,2.605,191,2.274,194,3.946,195,5.333,198,1.047,233,4.247,238,6.076,244,4.045,247,2.121,258,4.794,280,3.901,347,2.154,349,4.546,365,4.546,370,4.237,382,4.112,482,2.605,571,3.81,590,6.704,638,2.354,643,3.097,647,3.186,755,4.38,773,4.746,808,3.579,813,4.746,891,7.738,913,1.881,1206,4.38,1355,3.901,1461,3.579,1502,5.333,1975,4.38,2053,5.333,2086,5.843,2087,5.843,2088,5.333,2089,5.843,2090,5.843,2091,5.843,2092,5.843,2093,5.843,2094,5.843,2095,5.843,2096,5.843,2097,5.843,2098,5.843,2099,5.843,2100,5.843,2101,5.843,2102,5.843,2103,5.843,2104,5.843]],["keywords/360",[]],["title/361",[139,210.579,636,439.371,638,446.873]],["content/361",[2,5.574,18,5.234,20,5.393,85,9.225,136,6.041,139,4.751,191,3.805,194,2.11,197,4.179,200,5.574,201,6.041,238,7.363,278,6.041,336,3.998,338,6.788,341,6.788,361,5.574,372,4.85,382,5.234,458,5.146,467,2.06,482,5.146,485,5.958,585,3.942,636,2.946,638,5.699,682,8.123,819,4.85,832,5.393,901,7.07,909,6.939,928,4.85,946,4.744,1263,10.535,1355,4.965,1569,6.041,1573,5.574,1574,6.36,1609,6.36,1612,9.872,1742,6.36,1975,8.652,2085,6.788,2105,11.542,2106,6.788,2107,7.436,2108,7.436,2109,7.436,2110,7.436,2111,7.436]],["keywords/361",[]],["title/362",[18,486.029,27,84.942,288,280.62,584,423.046,585,211.379,1360,323.923,1427,310.26,2112,398.726,2113,363.945]],["content/362",[7,2.452,13,3.057,18,12.908,191,3.826,288,8.188,458,5.187,585,9.723,891,9.451,1329,10.619,1353,10.619,1355,13.197,1360,9.451,1379,7.768,1975,12.016,2113,10.619,2114,11.634,2115,11.634,2116,11.634,2117,11.634,2118,11.634,2119,10.619]],["keywords/362",[]],["title/363",[216,772.047]],["content/363",[]],["keywords/363",[]],["title/364",[913,468.958]],["content/364",[23,8.029,27,2.921,146,8.942,194,3.89,198,2.457,249,9.389,388,8.746,913,6.416,914,6.174,915,7.901,918,8.399,973,3.961,1632,9.942,2120,11.727]],["keywords/364",[]],["title/365",[973,420.766]],["content/365",[10,2.64,13,3.153,21,9.75,27,1.236,32,2.587,79,5.835,80,6.042,82,3.119,93,2.687,99,2.225,146,3.784,183,5.296,184,4.35,193,4.35,198,2.15,205,2.696,212,3.874,216,9.158,233,2.587,247,2.107,248,1.333,258,2.92,283,6.486,286,2.725,310,5.918,313,3.368,316,3.555,347,4.425,383,4.515,388,7.656,511,3.973,512,3.211,585,3.076,654,4.084,662,3.784,907,4.208,910,4.084,929,4.714,945,4.963,962,3.119,973,1.676,1062,3.488,1093,3.261,1250,4.35,1285,4.515,1315,4.208,1438,7.352,1453,3.874,1561,6.324,1594,4.963,1662,4.714,1764,8.101,2119,5.296,2121,5.296,2122,5.802,2123,5.802,2124,4.963,2125,5.802,2126,5.802,2127,4.515,2128,5.802,2129,5.802,2130,7.695,2131,5.802,2132,5.802,2133,5.802,2134,5.802,2135,5.802,2136,5.802,2137,5.296,2138,5.802,2139,5.802]],["keywords/365",[]],["title/366",[250,1091.659]],["content/366",[27,2.99,32,7.376,58,4.794,76,7.228,79,5.588,85,9.152,99,5.38,146,6.289,198,1.728,208,7.834,233,6.257,247,3.501,272,4.794,283,11.33,388,12.855,579,5.797,586,4.853,808,5.907,941,6.603,973,2.786,1022,7.834,1438,5.907,2124,8.248,2127,7.503,2140,9.643,2141,9.643,2142,9.643,2143,9.643,2144,9.643,2145,9.643]],["keywords/366",[]],["title/367",[2146,1183.107]],["content/367",[10,5.769,58,6.305,79,4.283,83,11.64,85,8.271,142,5.654,146,11.085,272,6.305,281,6.463,286,5.955,388,8.09,585,6.723,910,8.925,1035,9.506,1237,11.575,1561,8.468,2130,10.303,2147,12.682,2148,15.576,2149,12.682]],["keywords/367",[]],["title/368",[919,463.77,933,480.332]],["content/368",[11,1.758,27,4.926,58,4.149,73,3.668,75,3.585,78,1.842,81,2.422,85,1.797,93,2.368,99,4.505,137,3.141,138,1.875,141,1.205,187,2.066,188,1.998,191,2.572,194,0.782,198,1.22,216,8.055,225,2.316,233,1.229,244,4.71,245,1.11,248,2.217,249,4.664,250,6.256,251,5.3,255,2.676,257,1.789,258,1.387,269,1.37,274,2.15,275,2.338,283,3.41,284,6.805,285,6.792,286,3.919,300,1.657,305,1.94,309,2.515,310,4.255,311,2.515,315,3.067,376,2.239,485,2.57,534,2.239,586,1.387,654,3.504,904,3.504,961,2.144,962,1.481,966,4.545,973,0.796,1104,5.3,1421,2.066,1424,1.6,1634,2.515,1644,2.515,1645,1.84,2150,2.756,2151,4.979,2152,4.979,2153,2.756,2154,2.756,2155,2.756,2156,6.811,2157,2.756,2158,2.756,2159,2.357]],["keywords/368",[]],["title/369",[146,528.906,225,275.84,1285,631.055,1632,588.102]],["content/369",[19,5.191,27,4.63,32,5.686,73,3.706,75,2.164,78,1.372,79,2.862,81,1.273,83,8.734,137,1.356,138,1.396,146,3.307,191,2.023,198,1.956,208,6.885,216,6.761,225,1.725,232,3.677,247,3.077,248,1.165,249,3.473,255,1.992,257,1.332,258,2.552,274,1.601,284,3.937,294,6.135,310,5.295,315,2.284,316,3.107,388,9.05,510,5.095,591,3.168,662,5.527,664,5.658,808,5.191,884,2.688,941,5.803,1051,2.807,1381,3.946,1561,3.386,1662,4.12,1733,4.337,2120,4.337,2130,10.361,2148,4.12,2160,5.071,2161,5.071,2162,5.071,2163,5.071,2164,5.071,2165,8.474,2166,8.474,2167,5.071,2168,5.071,2169,8.474,2170,5.071,2171,5.071,2172,5.071,2173,5.071,2174,5.071,2175,5.071,2176,5.071]],["keywords/369",[]],["title/370",[146,528.906,205,376.761,511,555.365,512,448.849]],["content/370",[27,4.833,73,4.782,75,4.358,78,2.294,81,2.129,137,2.267,138,2.335,191,3.046,198,1.52,216,6.766,248,1.948,249,5.808,250,6.358,251,6.6,255,3.332,257,2.228,274,2.677,310,7.974,315,3.819,662,8.323,664,8.521,1561,5.663,2146,6.89,2159,7.254,2177,7.742,2178,7.742,2179,7.742,2180,12.762,2181,8.481,2182,8.481]],["keywords/370",[]],["title/371",[79,211.451,146,408.291,205,290.842,272,311.267,511,428.716,512,346.491]],["content/371",[27,4.853,73,4.986,75,3.21,78,2.249,81,2.087,137,2.223,138,2.289,191,3.001,198,2.253,216,6.665,248,1.91,249,5.694,250,6.233,251,6.47,255,3.267,257,2.184,274,2.625,310,7.855,315,3.744,388,8.02,662,8.199,664,8.394,1561,5.552,2127,9.783,2146,6.755,2148,6.755,2159,7.111,2177,7.589,2178,7.589,2179,7.589]],["keywords/371",[]],["title/372",[27,172.768,1930,658.845,1975,607.92,2084,607.92]],["content/372",[]],["keywords/372",[]],["title/373",[238,929.036]],["content/373",[93,4.82,188,7.327,194,5.58,247,6.168,248,2.321,274,4.582,373,9.26,458,6.472,468,9.547,585,7.695,806,8.642,843,9.94,896,9.069,969,7.111,1213,8.572,2183,10.104,2184,14.516,2185,10.104,2186,10.104,2187,10.104,2188,8.642,2189,8.642,2190,10.104]],["keywords/373",[]],["title/374",[194,413.152]],["content/374",[]],["keywords/374",[]],["title/375",[441,875.54]],["content/375",[4,3.207,27,4.942,75,4.649,79,3.273,81,4.164,93,3.471,137,1.595,198,1.069,256,9.487,258,3.003,274,3.059,306,3.871,340,3.655,465,4.876,482,4.32,487,6.875,499,7.026,884,3.163,907,4.327,919,2.404,970,5.103,971,3.984,973,1.724,974,7.263,975,8.287,976,5.103,980,8.287,1368,3.806,2191,5.446,2192,5.966,2193,5.966,2194,5.966,2195,5.966,2196,5.966,2197,9.689,2198,5.966,2199,5.966,2200,5.966,2201,5.966,2202,5.966]],["keywords/375",[]],["title/376",[27,172.768,1930,658.845,1967,693.649,2084,607.92]],["content/376",[]],["keywords/376",[]],["title/377",[467,318.793,2203,984.48]],["content/377",[27,3.895,198,2.539,226,9.241,247,6.639,257,3.723,458,6.318,584,8.681,682,12.869,1250,10.622,1662,11.512,2204,14.17,2205,14.17,2206,14.17,2207,14.17]],["keywords/377",[]],["title/378",[238,929.036]],["content/378",[3,2.624,10,5.359,11,3.603,13,2.434,15,2.808,27,2.509,79,3.129,81,1.417,93,3.342,191,1.348,194,3.866,198,2.111,211,3.528,247,3.364,248,1.297,255,2.219,274,2.925,279,3.603,302,4.588,313,5.378,332,6.042,347,2.082,451,3.126,457,2.357,458,4.13,459,4.83,465,2.842,467,3.775,468,6.62,574,4.233,583,4.588,584,5.675,585,2.994,586,2.842,599,4.83,708,3.975,731,5.155,832,4.095,843,3.867,848,3.603,884,2.994,890,3.459,896,5.788,958,5.29,978,4.588,1001,5.155,1038,4.588,1051,3.126,1145,3.867,1213,5.471,1290,3.975,1294,3.975,1392,7.209,1396,4.83,1463,4.095,1496,4.588,1578,4.172,1632,4.095,2088,5.155,2188,4.83,2189,4.83,2208,5.155,2209,5.647,2210,5.647,2211,5.647,2212,5.647,2213,5.647,2214,5.647,2215,5.647,2216,5.647,2217,5.647,2218,5.647,2219,5.647,2220,5.647,2221,5.647,2222,5.647,2223,5.647,2224,5.647]],["keywords/378",[]],["title/379",[144,782.861]],["content/379",[3,5.48,14,7.877,27,2.513,93,3.347,247,4.283,248,2.71,274,3.724,306,4.713,330,10.767,455,8.554,467,3.267,576,8.302,584,9.914,939,8.554,941,8.078,1046,7.877,1047,8.078,1250,8.843,1438,7.226,1547,8.843,1578,7.288,1665,8.843,1764,10.09,2225,11.796,2226,11.796,2227,11.796,2228,11.796]],["keywords/379",[]],["title/380",[194,413.152]],["content/380",[]],["keywords/380",[]],["title/381",[716,734.275,746,679.705]],["content/381",[467,5.364]],["keywords/381",[]],["title/382",[137,216.812,571,528.906,807,528.906,808,496.804]],["content/382",[467,5.364]],["keywords/382",[]],["title/383",[247,417.935,495,529.112]],["content/383",[467,5.364]],["keywords/383",[]],["title/384",[137,307.717,636,455.985]],["content/384",[7,3.589,184,12.762,187,12.762,281,8.676,585,9.026,594,13.248,2229,17.025]],["keywords/384",[]],["title/385",[139,283.568,142,424.232,143,543.318]],["content/385",[93,4.643,244,5.489,458,7.296,1657,13.295,1661,13.998,1665,12.268,1680,13.998,2230,16.366,2231,16.366]],["keywords/385",[]],["title/386",[139,283.568,142,424.232,630,543.318]],["content/386",[10,7.746,198,3.051,281,8.676,1253,13.831,1561,11.368,1594,14.562,2232,17.025]],["keywords/386",[]],["title/387",[139,343.015,633,705.102]],["content/387",[93,4.643,184,12.268,247,5.942,594,12.735,896,10.225,1294,11.518,2233,13.998,2234,16.366,2235,12.735]],["keywords/387",[]],["title/388",[139,283.568,247,345.504,248,218.575]],["content/388",[10,6.67,93,4.16,194,4.16,198,2.627,274,4.629,584,8.982,843,10.04,848,9.353,895,8.815,896,9.161,1038,11.911,1379,9.79,2188,12.541,2189,12.541,2208,13.383]],["keywords/388",[]],["title/389",[137,254.387,139,283.568,636,376.96]],["content/389",[137,4.212,139,4.695,247,5.721,467,4.364,584,9.652,973,4.552,1213,9.304,1379,10.52,1578,7.095,2236,15.755,2237,15.755]],["keywords/389",[]],["title/390",[139,283.568,636,376.96,638,383.396]],["content/390",[3,7.909,467,4.715,638,6.86,1294,11.982,1578,7.667,1612,14.562,2238,17.025]],["keywords/390",[]],["title/391",[139,241.683,233,361.569,244,272.019,245,326.765]],["content/391",[467,5.364]],["keywords/391",[]],["title/392",[139,241.683,244,272.019,245,326.765,641,506.701]],["content/392",[79,5.637,467,5.611,1427,12.986,1556,13.558,1578,7.516,1675,14.274,2239,16.689]],["keywords/392",[]],["title/393",[93,269.948,139,283.568,643,504.446]],["content/393",[467,5.364]],["keywords/393",[]],["title/394",[93,269.948,139,283.568,217,518.899]],["content/394",[79,5.13,93,4.309,247,5.515,313,8.817,339,12.991,594,11.819,700,11.819,973,4.388,1294,10.69,1578,6.84,2233,12.991,2240,15.189,2241,15.189]],["keywords/394",[]],["title/395",[139,343.015,686,668.14]],["content/395",[10,7.746,137,4.552,248,3.911,252,11.982,458,7.59,693,11.659,1421,12.762]],["keywords/395",[]],["title/396",[139,283.568,185,534.764,638,383.396]],["content/396",[93,4.233,247,5.418,458,6.652,467,4.133,638,6.012,896,9.322,973,4.311,1294,10.501,1578,6.719,1984,12.762,2233,12.762,2242,14.921,2243,13.619,2244,14.921]],["keywords/396",[]],["title/397",[139,241.683,244,272.019,245,326.765,647,442.253]],["content/397",[467,5.364]],["keywords/397",[]],["title/398",[120,435.957,139,241.683,245,326.765,647,442.253]],["content/398",[467,5.364]],["keywords/398",[]],["title/399",[80,607.02,82,511.511,495,437.414]],["content/399",[120,9.152,281,8.676,458,7.59,973,4.919,1547,12.762,1852,14.562,2245,17.025]],["keywords/399",[]],["title/400",[94,668.14,96,719.148]],["content/400",[185,9.197,467,4.533,948,10.927,973,4.728,1368,10.44,1407,13.998,1578,7.37,2246,13.295,2247,14.938]],["keywords/400",[]],["title/401",[97,462.08,482,424.232,636,376.96]],["content/401",[137,4.552,636,6.745,1035,12.762,1174,10.637,1368,10.861,2248,15.54,2249,15.54]],["keywords/401",[]],["title/402",[93,269.948,97,462.08,99,364.805]],["content/402",[467,5.364]],["keywords/402",[]],["title/403",[102,586.582,751,602.006]],["content/403",[185,9.197,467,4.533,948,10.927,973,4.728,1368,10.44,1407,13.998,1578,7.37,2246,13.295,2247,14.938]],["keywords/403",[]],["title/404",[8,691.994,105,788.216]],["content/404",[10,8.071,358,16.192,458,7.909,1315,12.864,2250,17.74]],["keywords/404",[]],["title/405",[233,361.569,244,272.019,245,326.765,801,487.568]],["content/405",[137,4.552,636,6.745,1035,12.762,1174,10.637,1368,10.861,2248,15.54,2249,15.54]],["keywords/405",[]],["title/406",[643,429.935,786,506.701,801,487.568,837,541.505]],["content/406",[13,3.489,93,3.767,137,3.55,247,4.822,272,6.602,467,3.678,643,7.04,786,8.297,801,7.984,874,10.788,904,9.346,939,9.63,1191,11.358,1213,7.842,1379,8.867,1578,5.98,1984,11.358,2251,12.121,2252,13.279,2253,13.279,2254,13.279]],["keywords/406",[]],["title/407",[106,875.54]],["content/407",[467,4.913,973,5.125,1368,11.317,1578,7.989,2246,14.412]],["keywords/407",[]],["title/408",[108,909.897]],["content/408",[467,5.364]],["keywords/408",[]],["title/409",[216,772.047]],["content/409",[247,5.233,310,9.004,458,6.425,467,3.992,500,7.859,654,10.143,973,4.164,1312,12.327,1578,6.49,2255,14.412,2256,14.412,2257,14.412,2258,14.412,2259,13.155,2260,13.155,2261,14.412]],["keywords/409",[]],["title/410",[651,859.992]],["content/410",[467,5.364]],["keywords/410",[]],["title/411",[233,361.569,244,272.019,245,326.765,2059,517.359]],["content/411",[137,4.743,244,5.95,305,12.485,458,7.909,682,12.485]],["keywords/411",[]],["title/412",[93,326.54,2059,734.275]],["content/412",[93,4.929,234,8.745,458,7.746,616,11.332,682,12.229,710,14.116]],["keywords/412",[]],["title/413",[686,668.14,2059,734.275]],["content/413",[10,7.746,137,4.552,248,3.911,252,11.982,458,7.59,693,11.659,1421,12.762]],["keywords/413",[]],["title/414",[962,782.861]],["content/414",[27,4.472,75,3.444,81,3.386,188,9.784,198,2.417,258,6.79,306,7.075,326,10.498,465,6.79,476,12.315,481,8.799,487,7.582,1107,10.96,2246,10.96,2262,13.491,2263,13.491]],["keywords/414",[]],["title/415",[27,172.768,1931,693.649,2084,607.92,2264,810.99]],["content/415",[]],["keywords/415",[]],["title/416",[467,318.793,2203,984.48]],["content/416",[3,5.123,22,6.197,27,4.114,139,3.286,178,7.996,191,2.632,198,2.767,244,3.699,245,4.443,247,4.004,258,5.55,269,5.482,458,4.916,484,8.266,585,5.846,601,8.958,942,7.363,1250,8.266,1364,10.065,1379,7.363,1823,9.431,2020,10.065,2106,10.065,2235,8.58,2265,11.027,2266,11.027,2267,11.027,2268,11.027,2269,11.027,2270,11.027]],["keywords/416",[]],["title/417",[238,929.036]],["content/417",[247,5.829,458,8.82,485,8.287,901,9.835,1213,9.481,1290,11.299,2271,16.055,2272,16.055,2273,16.055]],["keywords/417",[]],["title/418",[144,782.861]],["content/418",[467,5.364]],["keywords/418",[]],["title/419",[194,413.152]],["content/419",[]],["keywords/419",[]],["title/420",[779,997.285]],["content/420",[89,7.753,198,2.99,467,4.622,901,10.223,1169,12.986,1432,15.233,1578,7.516,2274,16.689]],["keywords/420",[]],["title/421",[716,734.275,746,679.705]],["content/421",[467,5.364]],["keywords/421",[]],["title/422",[137,216.812,571,528.906,807,528.906,808,496.804]],["content/422",[467,5.364]],["keywords/422",[]],["title/423",[247,417.935,495,529.112]],["content/423",[10,6.91,79,5.13,306,6.068,467,5.293,495,6.982,586,7.645,911,13.864,1315,11.015,1453,10.142,1547,11.386,1578,6.84,2121,13.864]],["keywords/423",[]],["title/424",[137,307.717,636,455.985]],["content/424",[467,5.364]],["keywords/424",[]],["title/425",[139,283.568,142,424.232,143,543.318]],["content/425",[15,7.834,137,4.212,139,4.695,142,7.024,198,2.823,257,4.139,467,4.364,630,8.996,1547,11.81,1578,7.095,2275,14.381]],["keywords/425",[]],["title/426",[139,283.568,142,424.232,630,543.318]],["content/426",[137,4.645,257,4.565,467,4.812,891,14.116,1578,7.825,1655,14.861]],["keywords/426",[]],["title/427",[139,343.015,633,705.102]],["content/427",[467,5.364]],["keywords/427",[]],["title/428",[139,283.568,247,345.504,248,218.575]],["content/428",[247,6.182,274,5.375,467,4.715,957,13.248,1578,7.667,1595,13.831,2276,15.54]],["keywords/428",[]],["title/429",[137,254.387,139,283.568,636,376.96]],["content/429",[139,4.877,247,5.942,284,7.603,467,4.533,1087,13.998,1213,9.664,1379,10.927,1578,7.37,2277,14.938]],["keywords/429",[]],["title/430",[139,283.568,636,376.96,638,383.396]],["content/430",[467,5.364]],["keywords/430",[]],["title/431",[139,241.683,233,361.569,244,272.019,245,326.765]],["content/431",[36,8.855,79,5.869,467,5.748,1578,7.825,1748,14.116]],["keywords/431",[]],["title/432",[139,241.683,244,272.019,245,326.765,641,506.701]],["content/432",[36,8.855,79,5.869,467,5.748,1578,7.825,1748,14.116]],["keywords/432",[]],["title/433",[93,269.948,139,283.568,643,504.446]],["content/433",[467,5.364]],["keywords/433",[]],["title/434",[93,269.948,139,283.568,217,518.899]],["content/434",[467,5.364]],["keywords/434",[]],["title/435",[139,343.015,686,668.14]],["content/435",[467,5.364]],["keywords/435",[]],["title/436",[139,283.568,185,534.764,638,383.396]],["content/436",[467,5.364]],["keywords/436",[]],["title/437",[139,241.683,244,272.019,245,326.765,647,442.253]],["content/437",[36,8.855,79,5.869,467,5.748,1578,7.825,1748,14.116]],["keywords/437",[]],["title/438",[120,435.957,139,241.683,245,326.765,647,442.253]],["content/438",[467,5.364]],["keywords/438",[]],["title/439",[80,607.02,82,511.511,495,437.414]],["content/439",[198,3.318,901,11.344,2278,18.517]],["keywords/439",[]],["title/440",[94,668.14,96,719.148]],["content/440",[467,5.364]],["keywords/440",[]],["title/441",[93,269.948,97,462.08,99,364.805]],["content/441",[10,6.447,139,4.223,198,3.276,257,3.723,274,4.473,307,8.368,467,3.925,584,8.681,888,10.276,909,8.519,1445,7.314,1578,6.381,1658,15.639,2235,11.026,2279,14.17]],["keywords/441",[]],["title/442",[102,586.582,751,602.006]],["content/442",[467,5.364]],["keywords/442",[]],["title/443",[8,691.994,105,788.216]],["content/443",[467,5.364]],["keywords/443",[]],["title/444",[643,429.935,786,506.701,801,487.568,837,541.505]],["content/444",[3,7.186,247,5.616,272,7.69,467,4.284,584,9.475,807,10.087,904,10.886,1058,12.565,1278,12.565,1578,6.965,2276,14.118,2280,15.467]],["keywords/444",[]],["title/445",[106,875.54]],["content/445",[467,5.364]],["keywords/445",[]],["title/446",[108,909.897]],["content/446",[467,5.364]],["keywords/446",[]],["title/447",[216,772.047]],["content/447",[15,6.5,23,5.268,58,6.5,137,3.495,139,3.896,142,5.829,146,8.527,198,2.343,257,3.435,258,6.58,370,9.481,388,8.34,510,7.86,574,9.8,601,10.621,1379,8.73,1547,9.8,1632,9.481,2120,14.837,2275,11.934,2281,13.074]],["keywords/447",[]],["title/448",[651,859.992]],["content/448",[467,5.364]],["keywords/448",[]],["title/449",[233,361.569,244,272.019,245,326.765,2059,517.359]],["content/449",[137,4.645,373,11.084,467,4.812,1578,7.825,2243,15.86,2282,17.375]],["keywords/449",[]],["title/450",[93,326.54,2059,734.275]],["content/450",[467,5.364]],["keywords/450",[]],["title/451",[686,668.14,2059,734.275]],["content/451",[467,5.364]],["keywords/451",[]],["title/452",[962,782.861]],["content/452",[1570,15.733]],["keywords/452",[]],["title/453",[27,172.768,1931,693.649,1967,693.649,2084,607.92]],["content/453",[]],["keywords/453",[]],["title/454",[467,318.793,2203,984.48]],["content/454",[7,3.589,79,5.75,89,7.909,191,4.064,198,3.051,584,10.429,1174,10.637]],["keywords/454",[]],["title/455",[238,929.036]],["content/455",[373,11.317,2283,21.013,2284,17.74,2285,17.74]],["keywords/455",[]],["title/456",[144,782.861]],["content/456",[3,7.186,99,5.93,187,11.594,275,7.263,276,8.2,458,6.896,467,4.284,584,9.475,1578,6.965,1595,12.565,2009,14.118,2286,15.467]],["keywords/456",[]],["title/457",[194,413.152]],["content/457",[]],["keywords/457",[]],["title/458",[716,734.275,746,679.705]],["content/458",[467,5.364]],["keywords/458",[]],["title/459",[137,216.812,571,528.906,807,528.906,808,496.804]],["content/459",[467,5.364]],["keywords/459",[]],["title/460",[247,417.935,495,529.112]],["content/460",[467,5.364]],["keywords/460",[]],["title/461",[137,307.717,636,455.985]],["content/461",[467,5.364]],["keywords/461",[]],["title/462",[139,283.568,142,424.232,143,543.318]],["content/462",[140,11.594,194,5.484,244,5.188,373,9.867,458,6.896,467,4.284,585,8.2,892,14.118,1578,6.965,1729,14.118,2287,15.467]],["keywords/462",[]],["title/463",[139,283.568,142,424.232,630,543.318]],["content/463",[467,5.364]],["keywords/463",[]],["title/464",[139,343.015,633,705.102]],["content/464",[467,5.364]],["keywords/464",[]],["title/465",[139,283.568,247,345.504,248,218.575]],["content/465",[467,5.364]],["keywords/465",[]],["title/466",[137,254.387,139,283.568,636,376.96]],["content/466",[467,5.364]],["keywords/466",[]],["title/467",[139,283.568,636,376.96,638,383.396]],["content/467",[467,5.364]],["keywords/467",[]],["title/468",[139,241.683,233,361.569,244,272.019,245,326.765]],["content/468",[15,6.708,27,4.212,81,3.386,194,3.827,281,6.876,467,3.737,670,10.113,944,10.96,1296,12.315,1368,8.607,1578,6.076,1885,12.315,2033,12.315,2050,12.315,2288,13.491,2289,13.491,2290,13.491,2291,13.491]],["keywords/468",[]],["title/469",[139,241.683,244,272.019,245,326.765,641,506.701]],["content/469",[3,8.241,281,9.041,458,7.909,973,5.125,1556,14.412]],["keywords/469",[]],["title/470",[93,269.948,139,283.568,643,504.446]],["content/470",[467,5.364]],["keywords/470",[]],["title/471",[93,269.948,139,283.568,217,518.899]],["content/471",[467,5.364]],["keywords/471",[]],["title/472",[139,343.015,686,668.14]],["content/472",[467,5.364]],["keywords/472",[]],["title/473",[139,283.568,185,534.764,638,383.396]],["content/473",[467,5.364]],["keywords/473",[]],["title/474",[139,241.683,244,272.019,245,326.765,647,442.253]],["content/474",[233,7.441,305,11.746,467,4.622,584,10.223,1213,9.855,1578,7.516,1600,14.274,2292,16.689]],["keywords/474",[]],["title/475",[120,435.957,139,241.683,245,326.765,647,442.253]],["content/475",[467,5.364]],["keywords/475",[]],["title/476",[80,607.02,82,511.511,495,437.414]],["content/476",[467,5.364]],["keywords/476",[]],["title/477",[94,668.14,96,719.148]],["content/477",[7,3.589,89,7.909,198,3.051,467,4.715,901,10.429,1174,10.637,1578,7.667]],["keywords/477",[]],["title/478",[93,269.948,97,462.08,99,364.805]],["content/478",[7,3.589,89,7.909,198,3.051,467,4.715,901,10.429,1174,10.637,1578,7.667]],["keywords/478",[]],["title/479",[102,586.582,751,602.006]],["content/479",[7,3.589,89,7.909,198,3.051,467,4.715,901,10.429,1174,10.637,1578,7.667]],["keywords/479",[]],["title/480",[8,691.994,105,788.216]],["content/480",[7,3.589,89,7.909,198,3.051,467,4.715,901,10.429,1174,10.637,1578,7.667]],["keywords/480",[]],["title/481",[643,429.935,786,506.701,801,487.568,837,541.505]],["content/481",[467,5.364]],["keywords/481",[]],["title/482",[106,875.54]],["content/482",[7,3.589,89,7.909,198,3.051,467,4.715,901,10.429,1174,10.637,1578,7.667]],["keywords/482",[]],["title/483",[108,909.897]],["content/483",[7,3.589,89,7.909,198,3.051,467,4.715,901,10.429,1174,10.637,1578,7.667]],["keywords/483",[]],["title/484",[216,772.047]],["content/484",[10,5.19,19,3.305,21,4.383,27,4.323,73,4.131,75,2.278,78,2.413,79,1.822,153,3.442,191,2.13,194,3.236,198,0.967,247,3.24,248,2.049,249,6.11,250,9.935,251,4.198,272,2.682,281,2.749,283,3.694,294,5.014,310,5.574,336,2.9,347,1.989,379,4.383,388,5.692,499,3.912,576,3.797,580,4.924,584,3.305,586,2.715,620,3.132,649,6.279,662,5.819,664,5.957,679,6.688,901,3.305,909,3.243,973,2.578,1051,2.986,1341,8.144,1368,3.442,1385,3.797,1561,3.602,1578,5.969,1632,3.912,2127,4.198,2130,9.268,2146,4.383,2148,4.383,2259,4.924,2260,4.924,2293,5.395,2294,5.395,2295,5.395,2296,5.395,2297,5.395,2298,5.395,2299,5.395,2300,8.922,2301,5.395,2302,5.395,2303,5.395,2304,5.395,2305,5.395,2306,8.922,2307,5.395]],["keywords/484",[]],["title/485",[651,859.992]],["content/485",[467,5.364]],["keywords/485",[]],["title/486",[233,361.569,244,272.019,245,326.765,2059,517.359]],["content/486",[467,5.364]],["keywords/486",[]],["title/487",[93,326.54,2059,734.275]],["content/487",[7,3.589,89,7.909,198,3.051,467,4.715,901,10.429,1174,10.637,1578,7.667]],["keywords/487",[]],["title/488",[686,668.14,2059,734.275]],["content/488",[467,5.364]],["keywords/488",[]],["title/489",[962,782.861]],["content/489",[1570,15.733]],["keywords/489",[]],["title/490",[194,326.54,352,657.218]],["content/490",[4,2.46,27,4.92,73,2.03,75,4.496,78,2.74,79,3.422,81,3.358,93,2.205,99,2.98,137,2.078,138,1.26,191,1.855,194,3.388,198,1.393,225,1.557,248,1.051,255,1.798,256,7.316,257,2.042,268,3.915,274,3.77,306,5.345,315,2.061,336,2.46,340,2.804,347,2.866,352,5.785,482,2.041,487,2.572,499,5.637,567,3.915,848,2.92,884,2.426,896,4.856,907,5.637,973,1.322,1075,2.985,1104,3.561,1105,3.718,1438,2.804,1495,4.178,1569,3.718,1689,4.178,2308,4.577,2309,7.773,2310,10.901,2311,7.095,2312,7.773,2313,7.773,2314,4.577,2315,4.577,2316,4.577,2317,4.577]],["keywords/490",[]],["title/491",[102,586.582,2318,1050.614]],["content/491",[94,8.817,153,9.69,191,3.626,225,5.166,232,11.015,340,9.305,382,10.69,902,11.386,919,6.12,948,10.142,1368,9.69,1389,13.864,2191,13.864]],["keywords/491",[]],["title/492",[137,216.812,571,528.906,807,528.906,808,496.804]],["content/492",[467,5.364]],["keywords/492",[]],["title/493",[347,424.328,2319,1151.018]],["content/493",[67,14.412,333,12.485,585,9.405,1368,11.317,2320,17.74]],["keywords/493",[]],["title/494",[139,283.568,142,424.232,630,543.318]],["content/494",[467,5.364]],["keywords/494",[]],["title/495",[139,343.015,633,705.102]],["content/495",[279,10.861,458,7.59,585,9.026,638,6.86,909,10.236,973,4.919,2321,17.025]],["keywords/495",[]],["title/496",[139,283.568,247,345.504,248,218.575]],["content/496",[79,4.349,81,4.31,93,3.653,139,3.837,247,6.235,275,8.063,279,10.953,458,5.74,585,6.825,973,3.72,1278,10.459,1379,8.597,1591,11.752,1595,13.949,1665,9.651,2322,12.875,2323,12.875,2324,12.875]],["keywords/496",[]],["title/497",[137,254.387,139,283.568,636,376.96]],["content/497",[467,5.364]],["keywords/497",[]],["title/498",[139,283.568,636,376.96,638,383.396]],["content/498",[467,5.364]],["keywords/498",[]],["title/499",[139,241.683,233,361.569,244,272.019,245,326.765]],["content/499",[467,5.364]],["keywords/499",[]],["title/500",[139,241.683,244,272.019,245,326.765,641,506.701]],["content/500",[467,5.364]],["keywords/500",[]],["title/501",[93,269.948,139,283.568,643,504.446]],["content/501",[467,5.364]],["keywords/501",[]],["title/502",[93,269.948,139,283.568,217,518.899]],["content/502",[467,5.364]],["keywords/502",[]],["title/503",[139,283.568,185,534.764,638,383.396]],["content/503",[93,5.141,281,9.234,1379,12.099,2325,18.12]],["keywords/503",[]],["title/504",[139,241.683,244,272.019,245,326.765,647,442.253]],["content/504",[32,7.024,198,2.823,245,6.348,373,10.051,497,10.051,973,5.65,2326,19.554,2327,15.755,2328,15.755]],["keywords/504",[]],["title/505",[120,435.957,139,241.683,245,326.765,647,442.253]],["content/505",[467,5.364]],["keywords/505",[]],["title/506",[80,607.02,82,511.511,495,437.414]],["content/506",[93,4.16,194,4.16,539,8.115,584,8.982,585,7.773,586,7.379,600,11.409,833,11.911,896,9.161,902,10.991,1424,8.511,1799,13.383,1852,12.541,2329,14.662,2330,14.662]],["keywords/506",[]],["title/507",[94,668.14,96,719.148]],["content/507",[0,9.475,94,8.978,102,7.882,194,4.388,198,2.771,452,13.229,458,6.896,770,11.216,1445,7.984,1452,10.592,1454,9.867,2318,14.118]],["keywords/507",[]],["title/508",[97,462.08,482,424.232,636,376.96]],["content/508",[467,5.364]],["keywords/508",[]],["title/509",[93,269.948,97,462.08,99,364.805]],["content/509",[97,8.104,99,6.398,137,4.462,194,4.735,306,6.667,458,7.441,806,14.274,1445,8.615]],["keywords/509",[]],["title/510",[102,586.582,751,602.006]],["content/510",[15,9.207,618,7.798,2235,14.409]],["keywords/510",[]],["title/511",[233,361.569,244,272.019,245,326.765,801,487.568]],["content/511",[467,5.364]],["keywords/511",[]],["title/512",[643,429.935,786,506.701,801,487.568,837,541.505]],["content/512",[279,10.646,801,10.033,888,12.102,902,12.51,909,10.033,973,5.853,1433,10.884]],["keywords/512",[]],["title/513",[106,875.54]],["content/513",[15,9.207,618,7.798,2235,14.409]],["keywords/513",[]],["title/514",[108,909.897]],["content/514",[194,4.929,231,14.116,458,7.746,770,12.6,1445,8.969,1452,11.898]],["keywords/514",[]],["title/515",[216,772.047]],["content/515",[20,7.327,76,10.881,79,5.738,233,4.505,247,3.669,272,5.024,283,6.919,288,7.111,307,8.572,316,6.19,327,8.642,373,9.26,388,11.846,467,2.798,576,10.216,585,5.356,608,8.642,921,9.223,942,6.746,964,8.642,1051,5.592,1375,9.223,1561,6.746,2084,7.574,2124,12.415,2127,7.862,2331,10.104,2332,10.104,2333,9.223,2334,10.104,2335,10.104]],["keywords/515",[]],["title/516",[651,859.992]],["content/516",[4,5.431,7,3.06,13,2.655,27,4.19,76,7.574,81,2.536,187,7.574,194,2.866,198,2.601,258,7.306,274,3.19,279,6.446,288,7.111,318,6.919,373,6.446,590,7.111,620,8.426,651,10.032,958,5.769,992,8.642,1045,8.642,1065,7.862,1368,6.446,1548,9.223,2336,10.104,2337,10.104,2338,10.104,2339,10.104,2340,10.104,2341,10.104,2342,10.104]],["keywords/516",[]],["title/517",[225,391.493,909,691.994]],["content/517",[15,7.834,194,5.547,197,8.855,225,6.651,325,10.789,382,11.089,909,11.756,2343,15.755]],["keywords/517",[]],["title/518",[194,326.54,944,935.083]],["content/518",[10,2.714,15,4.817,27,4.437,73,1.558,75,2.474,78,1.614,81,3.535,137,1.595,138,1.643,188,8.871,191,2.92,192,4.472,193,7.263,194,3.995,198,1.069,206,5.446,210,3.984,225,2.029,229,5.446,247,2.166,248,2.226,252,4.199,255,2.344,257,1.568,258,4.876,268,5.103,306,4.887,315,2.687,316,3.655,347,2.2,363,3.655,365,4.643,372,6.319,472,3.254,481,3.891,588,5.103,596,9.938,620,3.463,884,6.485,888,4.327,889,4.847,894,10.556,896,3.728,928,3.891,944,11.441,988,5.446,1109,4.643,1156,5.446,1421,4.472,1847,5.446,2344,5.966,2345,5.966,2346,5.966,2347,5.966,2348,5.966,2349,5.966,2350,5.966,2351,5.966]],["keywords/518",[]],["title/519",[194,326.54,1051,637.041]],["content/519",[4,3.056,10,2.587,27,4.911,75,4.141,78,1.538,79,3.997,81,3.435,93,1.613,99,2.18,137,1.52,194,2.643,247,3.382,256,7.249,257,1.494,258,2.861,274,1.795,294,3.195,298,5.189,306,6.032,347,5.044,372,6.075,482,2.535,499,6.755,884,7.254,890,7.249,894,4.262,896,5.82,948,3.796,969,6.556,973,1.643,1051,3.147,1149,4.619,1315,4.123,1742,4.863,2352,5.685,2353,5.685,2354,5.685,2355,9.315,2356,9.315,2357,9.315,2358,9.315,2359,5.685,2360,5.685]],["keywords/519",[]],["title/520",[313,668.14,1392,895.641]],["content/520",[3,4.775,10,2.921,13,2.7,27,4.738,73,1.677,75,2.624,78,1.736,81,3.688,137,2.748,138,1.767,153,4.095,191,3.508,192,4.812,247,3.732,248,1.475,255,2.522,257,2.7,274,3.245,275,3.015,313,3.726,315,2.891,333,4.518,339,5.491,347,3.789,356,4.655,406,5.86,457,4.289,465,3.231,472,3.501,494,7.234,511,4.396,539,3.553,620,3.726,656,4.655,657,4.812,910,4.518,958,3.665,1045,5.491,1062,3.859,1089,4.187,1213,3.791,1297,5.86,1381,4.995,1388,9.382,1392,4.995,1396,5.491,1569,5.215,2137,5.86,2333,5.86,2361,6.42,2362,6.42,2363,6.42,2364,6.42,2365,6.42]],["keywords/520",[]],["title/521",[22,818.448]],["content/521",[7,1.19,13,2.434,15,2.808,22,8.456,27,4.693,58,2.808,73,2.42,75,3.007,78,1.528,79,1.907,81,2.956,133,4.588,137,1.51,138,1.555,146,3.683,191,2.211,194,4.587,198,1.012,210,6.186,225,1.921,234,2.842,238,3.603,256,5.675,274,1.783,284,2.624,306,3.701,325,3.867,333,3.975,370,4.095,404,5.155,462,6.344,568,4.588,594,4.394,602,4.095,616,3.683,711,3.975,820,3.683,884,4.911,909,3.395,962,3.036,1005,5.155,1051,3.126,1197,5.155,1218,5.155,1274,4.83,1280,4.394,1284,5.155,1461,3.459,1478,5.155,1479,5.155,1480,5.155,1482,10.751,2277,5.155,2366,5.647,2367,9.264,2368,5.647,2369,9.264,2370,5.647,2371,5.647,2372,5.647,2373,5.647,2374,5.647]],["keywords/521",[]],["title/522",[451,637.041,971,768.544]],["content/522",[27,4.865,36,3.553,58,2.004,67,3.275,68,3.275,73,1.053,75,4.114,78,1.09,79,3.111,81,2.754,88,3.275,99,1.545,137,1.078,153,2.572,185,2.265,194,3.113,198,1.65,205,1.873,234,2.029,248,0.926,256,4.271,258,2.029,269,3.466,274,2.201,291,5.963,294,2.265,302,3.275,306,4.384,332,4.547,441,2.423,451,5.098,454,5.664,455,2.923,456,3.022,465,6.239,486,3.448,487,2.265,499,5.055,500,5.023,511,2.76,758,2.34,884,3.696,939,2.923,942,2.692,971,2.692,973,1.165,974,3.022,1051,5.098,1085,3.448,1149,3.275,1380,3.679,1397,3.137,1421,3.022,1445,7.005,1487,2.923,1671,3.448,2251,3.679,2310,6.363,2311,6.363,2375,4.031,2376,4.031,2377,4.031,2378,4.031,2379,4.031,2380,4.031,2381,4.031,2382,6.971,2383,4.031,2384,4.031,2385,4.031,2386,4.031,2387,4.031,2388,4.031,2389,6.971,2390,4.031,2391,4.031,2392,4.031]],["keywords/522",[]]],"invertedIndex":[["",{"_index":27,"title":{"359":{"position":[[13,1]]},"362":{"position":[[32,1]]},"372":{"position":[[13,1]]},"376":{"position":[[13,1]]},"415":{"position":[[13,1]]},"453":{"position":[[13,1]]}},"content":{"3":{"position":[[61,1],[92,1],[450,1],[452,1]]},"5":{"position":[[18,1],[120,1],[185,1],[212,1],[228,1],[258,1],[298,1],[347,1]]},"6":{"position":[[132,1],[146,1],[244,1],[282,3],[327,2],[357,1],[405,2],[416,2],[438,1],[440,2],[494,2],[539,2],[582,2],[645,2],[708,2],[759,2],[795,2],[809,1],[811,2]]},"8":{"position":[[115,1],[131,1],[166,1],[215,1],[257,1],[309,1],[365,2],[381,1],[402,2],[416,1],[418,2],[446,2],[470,2],[509,2],[575,2],[615,2],[647,2],[701,2],[746,2],[789,2],[852,2],[915,2],[966,2],[1002,2],[1016,1],[1018,1]]},"10":{"position":[[143,1],[166,1],[168,1],[201,1],[224,1],[259,1],[261,1],[263,1],[265,1],[267,1]]},"12":{"position":[[106,1],[125,1],[147,1],[192,2],[234,2],[257,1],[298,1],[300,1]]},"16":{"position":[[142,2],[189,2],[220,1],[245,2],[267,2],[457,1],[475,1],[511,2],[639,1],[670,1],[672,2],[767,1],[836,1],[838,1],[851,2],[878,2],[881,3],[900,1],[902,1],[962,1],[971,1],[1021,1],[1023,1],[1025,2],[1111,2],[1195,1],[1197,1],[1227,1],[1235,1],[1265,1],[1285,1],[1349,2],[1365,1],[1408,2],[1423,1],[1471,2],[1479,1],[1541,2],[1556,1],[1573,2],[1584,1],[1601,1],[1603,2],[1637,2],[1682,1],[1684,1],[1686,1],[1688,2],[1800,1],[1833,2],[1960,3],[1964,2],[2012,2]]},"18":{"position":[[341,1],[358,1],[735,1],[790,2],[1342,1],[1419,1]]},"19":{"position":[[272,1],[297,1],[306,2],[315,1],[317,1],[332,1],[334,1],[360,1],[398,1],[400,2],[403,3],[440,2],[473,1],[475,2],[478,3],[532,1],[552,1],[554,2],[557,1],[580,1],[596,2],[684,1],[703,1],[705,1],[733,1],[735,3],[846,1],[848,2],[860,2],[863,1],[878,1],[880,2],[970,2],[987,2],[990,1],[1006,2],[1102,2],[1119,2],[1122,1],[1141,2],[1192,2],[1318,2],[1335,2],[1338,1],[1354,2]]},"21":{"position":[[17,1],[19,1],[56,1],[75,1],[83,1],[85,3],[95,1],[103,1],[121,1],[123,1],[125,1],[148,1],[162,1],[164,2],[179,1],[192,1],[204,1],[230,1],[243,1],[256,1],[356,1],[373,1],[375,2],[426,1],[428,2],[471,1],[473,2],[482,1],[501,1],[514,1],[541,1],[548,1],[565,1],[567,1],[592,1],[622,1],[649,1],[651,2],[696,1],[698,2],[740,1],[742,2],[772,1],[879,1],[881,1],[904,1]]},"22":{"position":[[61,1],[63,1],[85,1],[106,1],[114,1],[116,3],[126,1],[134,1],[143,1],[145,1],[147,1],[170,1],[184,1],[186,2],[201,1],[214,1],[226,1],[252,1],[265,1],[278,1],[308,1],[331,1],[333,2],[376,1],[378,2],[387,1],[400,1],[427,1],[452,1],[482,1],[509,1],[511,2],[556,1],[558,2],[600,1],[602,2],[632,1],[739,1],[741,1],[764,1]]},"26":{"position":[[54,1],[106,1],[108,2],[111,3],[115,2]]},"28":{"position":[[54,1],[89,1],[98,2],[107,1],[109,2],[112,3],[116,2]]},"31":{"position":[[1262,1],[1277,1],[1337,1],[1352,1],[1375,1],[1407,2],[1416,1],[1425,1],[1443,1],[1445,1],[1447,2],[1675,2],[1678,1],[1732,2],[1868,2],[2038,1],[2040,1],[2084,2],[2092,2],[2122,1],[2124,2],[2155,2],[2158,1],[2253,3],[2318,1],[2327,2],[2336,1],[2338,2],[2341,3],[2345,2]]},"34":{"position":[[54,1],[89,1],[98,2],[107,1],[109,2],[112,3],[116,2]]},"37":{"position":[[209,1],[237,1],[275,1],[306,1],[347,1],[375,1],[419,1],[421,1],[423,1],[471,2],[474,1],[528,2],[531,1],[578,1],[580,1],[603,1]]},"40":{"position":[[54,1],[106,1],[108,2],[111,3],[115,2]]},"43":{"position":[[1262,1],[1277,1],[1337,1],[1352,1],[1375,1],[1407,2],[1416,1],[1425,1],[1443,1],[1445,1],[1447,2],[1675,2],[1678,1],[1732,2],[1868,2],[2038,1],[2040,1],[2084,2],[2092,2],[2122,1],[2124,2],[2166,2],[2169,1],[2264,3],[2329,1],[2338,2],[2347,1],[2349,2],[2352,3],[2356,2]]},"46":{"position":[[1224,1],[1248,1],[1287,1],[1312,1],[1357,1],[1359,1],[1361,1],[1418,2],[1421,1],[1475,1],[1477,1],[1500,1],[1532,2],[1541,1],[1550,1],[1568,1],[1570,1],[1572,2],[1800,2],[1803,1],[1857,2],[1993,2],[2163,1],[2165,1],[2209,2],[2217,2],[2247,1],[2249,2],[2280,2],[2283,1]]},"49":{"position":[[54,1],[106,1],[108,2],[111,3],[115,2]]},"52":{"position":[[118,1],[204,1],[206,2],[209,3],[213,2]]},"55":{"position":[[54,1],[93,2],[176,1],[178,2],[181,3],[185,2]]},"58":{"position":[[54,1],[106,1],[108,2],[111,3],[115,2]]},"61":{"position":[[118,1],[204,1],[206,2],[209,3],[213,2]]},"64":{"position":[[118,1],[204,1],[206,2],[209,3],[213,2]]},"67":{"position":[[118,1],[204,1],[206,2],[209,3],[213,2]]},"70":{"position":[[54,1],[106,1],[108,2],[111,3],[115,2]]},"73":{"position":[[54,1],[106,1],[108,2],[111,3],[115,2]]},"76":{"position":[[54,1],[89,1],[98,2],[107,1],[109,2],[112,3],[116,2]]},"79":{"position":[[54,1],[106,1],[108,2],[111,3],[115,2]]},"82":{"position":[[54,1],[106,1],[108,2],[111,3],[115,2]]},"85":{"position":[[54,1],[106,1],[108,2],[111,3],[115,2]]},"88":{"position":[[54,1],[89,1],[98,2],[107,1],[109,2],[112,3],[116,2]]},"91":{"position":[[118,1],[204,1],[206,2],[209,3],[213,2]]},"94":{"position":[[118,1],[204,1],[206,2],[209,3],[213,2]]},"97":{"position":[[1262,1],[1277,1],[1337,1],[1352,1],[1375,1],[1407,2],[1416,1],[1425,1],[1443,1],[1445,2],[1472,2],[1700,2],[1703,1],[1757,2],[1893,2],[2063,1],[2065,1],[2109,2],[2117,2],[2147,1],[2149,2],[2180,2],[2183,1],[2278,3],[2343,1],[2352,2],[2361,1],[2363,2],[2366,3],[2370,2]]},"100":{"position":[[118,1],[204,1],[206,2],[209,3],[213,2]]},"103":{"position":[[118,1],[204,1],[206,2],[209,3],[213,2]]},"105":{"position":[[360,1],[375,1],[435,1],[450,1],[466,1],[658,3],[694,1],[703,2],[712,1],[714,2],[717,3],[721,2]]},"106":{"position":[[40,1],[54,1],[288,1],[337,1],[350,1],[453,1],[455,1],[457,2],[460,1],[506,1],[553,1],[555,2],[558,1],[593,1],[629,1],[631,2],[634,1],[669,1],[676,1],[698,1],[700,1],[702,2],[705,1],[737,1],[763,1],[798,2],[833,1],[842,2],[851,1],[853,2],[872,1],[874,1],[912,1],[914,2]]},"107":{"position":[[40,1],[54,1],[272,1],[321,1],[334,1],[349,6],[366,6],[388,6],[408,5],[414,1],[416,1],[418,2],[421,1],[455,1],[461,1],[471,6],[483,5],[489,1],[491,1],[493,2],[496,1],[536,1],[548,1],[561,6],[573,1],[575,5],[581,1],[583,1],[585,1],[587,2],[590,1],[625,1],[661,1],[663,2],[666,1],[698,1],[724,1],[759,2],[794,1],[803,2],[812,1],[814,2],[833,1],[835,1],[866,1],[868,2]]},"110":{"position":[[118,1],[162,2],[234,1],[236,2],[239,3],[243,2]]},"113":{"position":[[118,1],[204,1],[206,2],[209,3],[213,2]]},"116":{"position":[[118,1],[204,1],[206,2],[209,3],[213,2]]},"119":{"position":[[54,1],[106,1],[108,2],[111,3],[115,2]]},"122":{"position":[[194,1],[330,3],[376,1],[378,2],[381,3],[385,2]]},"125":{"position":[[118,1],[162,2],[243,1],[245,2],[248,3],[252,2]]},"128":{"position":[[54,1],[106,1],[108,2],[111,3],[115,2]]},"131":{"position":[[118,1],[204,1],[206,2],[209,3],[213,2]]},"134":{"position":[[54,1],[106,1],[108,2],[111,3],[115,2]]},"137":{"position":[[54,1],[106,1],[108,2],[111,3],[115,2]]},"140":{"position":[[183,1],[203,1],[240,1],[263,1],[298,1],[310,1],[349,1],[368,1],[411,1],[506,2],[509,2],[512,2],[615,1]]},"143":{"position":[[188,1],[305,1],[307,2],[310,3],[314,2]]},"150":{"position":[[500,2],[1274,1],[1289,1],[1349,1],[1364,1],[1387,1],[1419,2],[1428,1],[1437,1],[1455,1],[1457,1],[1459,2],[1687,2],[1690,1],[1744,2],[1880,2],[2050,1],[2052,1],[2096,2],[2104,2],[2134,1],[2136,2],[2167,2],[2170,1],[2265,3],[2330,1],[2339,2],[2348,1],[2350,2],[2353,3],[2357,2]]},"151":{"position":[[558,2],[647,1],[649,1],[678,4],[701,1],[703,1],[705,4],[715,1],[787,1],[801,1],[842,1],[909,1],[911,1],[926,1],[928,1],[930,1],[932,1]]},"153":{"position":[[766,2],[806,1],[825,2],[828,2],[831,2],[871,1],[880,2],[915,1],[934,2]]},"157":{"position":[[188,1],[213,1],[215,2],[238,2],[241,1],[264,1],[666,1],[691,1],[693,2],[716,2],[719,1],[742,1]]},"159":{"position":[[643,2],[739,1],[755,1],[757,2],[760,3],[764,2],[767,1],[783,1],[785,2],[788,2],[824,1],[842,1],[885,1],[909,1],[920,1],[1008,1],[1010,2],[1117,1],[1119,1],[1148,1],[1172,1],[1174,2],[1247,1],[1266,1],[1275,1],[1336,1],[1338,1],[1340,2],[1376,1],[1401,1],[1403,2],[1406,3],[1410,2],[1413,1],[1436,1],[1496,2],[1499,1]]},"161":{"position":[[613,3],[640,3]]},"167":{"position":[[41,1],[71,1],[124,1],[172,3],[196,1],[229,1],[284,1],[291,1],[304,1],[306,3],[310,2],[334,1],[441,1],[927,1],[962,2],[1154,1]]},"171":{"position":[[41,1],[72,1],[119,1],[142,1],[197,1],[245,3],[262,1],[320,2],[343,1],[376,1],[427,2],[451,1],[589,2],[767,2]]},"175":{"position":[[41,1],[76,1],[131,1],[201,3],[225,1],[297,1],[361,2],[385,1],[515,1],[571,1],[642,2],[723,1],[725,1],[747,1],[749,2],[773,2],[861,2],[864,3],[908,1],[910,1]]},"179":{"position":[[41,1],[54,1],[83,1],[107,1],[170,1],[197,1],[274,1],[342,3],[378,1],[386,1],[394,1],[402,1],[404,2],[407,3],[433,1],[481,2],[484,2],[508,1],[547,1],[553,1],[569,1],[618,1],[680,2],[683,1],[699,1],[744,1],[746,1],[797,2],[800,2]]},"181":{"position":[[733,1],[750,1],[752,2],[755,3],[759,2],[762,2],[833,1],[850,3],[879,1],[910,4]]},"182":{"position":[[811,1],[832,1],[873,2],[969,1],[985,1],[987,2],[990,3],[994,2],[997,1],[1013,1],[1015,2],[1018,2],[1054,1],[1072,1],[1115,1],[1139,1],[1150,1],[1238,1],[1240,2],[1315,2],[1422,1],[1424,1],[1453,1],[1477,1],[1479,2],[1552,1],[1571,1],[1580,1],[1641,1],[1643,1],[1645,2],[1675,1],[1706,1],[1708,2],[1711,3],[1715,2],[1718,2],[1789,1],[1806,3],[1835,1],[1866,3],[1920,2],[1923,2]]},"187":{"position":[[464,2],[467,2]]},"189":{"position":[[463,1],[489,2],[572,1],[596,2],[605,2],[608,2],[709,1],[956,1],[988,3],[992,1]]},"191":{"position":[[40,1],[63,1],[109,1],[134,1],[143,1],[171,1],[200,2],[237,2],[250,1],[252,1],[275,1]]},"192":{"position":[[40,1],[63,1],[109,1],[134,1],[171,2],[184,1],[207,1]]},"193":{"position":[[8,1],[56,1],[101,1],[132,1],[253,2],[256,1],[272,1],[308,1],[310,2],[356,1],[392,1],[399,2],[458,1],[460,1]]},"197":{"position":[[88,1],[127,1],[137,1],[152,6],[169,6],[191,6],[211,5],[217,1],[219,1],[221,2],[224,1],[258,1],[275,1],[277,1],[305,3],[355,2],[358,1],[376,2]]},"199":{"position":[[1003,1],[1018,1],[1064,1],[1089,1],[1098,1],[1126,3],[1176,2],[1179,1],[1181,2],[1205,1],[1244,1],[1254,1],[1269,6],[1286,6],[1308,6],[1328,5],[1334,1],[1336,1],[1338,2],[1341,1],[1373,1],[1386,1],[1425,2],[1456,2],[1487,2],[1518,2]]},"200":{"position":[[350,1],[396,1],[437,1],[532,1],[560,2],[581,1],[603,2],[625,2],[628,1],[666,1],[668,2],[742,2],[858,1],[941,3],[945,1],[947,2]]},"203":{"position":[[183,1]]},"204":{"position":[[13,1],[62,1],[121,1],[146,1],[297,1],[299,1],[322,1],[397,2],[414,2],[417,2],[420,1]]},"211":{"position":[[134,1],[159,1],[168,2],[171,1],[194,1],[255,3]]},"212":{"position":[[92,1],[117,1],[134,1],[136,1],[164,3],[214,2],[217,1],[235,1],[258,1],[296,1],[306,1],[319,6],[331,1],[344,1],[346,1],[348,1],[350,2],[353,1]]},"214":{"position":[[1053,1],[1067,1],[1106,1],[1137,1],[1154,1],[1156,1],[1184,3],[1234,2],[1237,1],[1255,2],[1293,1],[1384,5],[1395,1],[1408,1],[1410,2],[1413,1],[1415,2],[1418,1],[1450,1],[1463,1],[1502,2],[1533,2],[1564,2],[1595,2]]},"218":{"position":[[99,1],[124,1],[126,2],[148,1],[171,1]]},"222":{"position":[[107,1],[132,1],[140,1],[150,1],[152,1],[190,1],[192,2],[195,3],[199,1],[201,1],[224,1]]},"226":{"position":[[244,1],[269,1],[324,1],[348,1],[391,1],[435,1],[451,1],[489,1],[520,1],[602,1],[604,1],[667,1],[694,2],[717,1],[727,1],[736,1],[760,1],[762,1],[785,1],[967,1],[1041,1],[1043,2],[1046,1]]},"230":{"position":[[110,1],[135,1],[181,1],[204,1],[261,2],[308,3],[332,1],[356,1],[404,2],[407,2]]},"233":{"position":[[115,1],[140,1],[199,2],[264,2],[267,1],[290,1]]},"237":{"position":[[118,1],[143,1],[152,2],[155,1],[178,1]]},"240":{"position":[[1482,1],[1507,1],[1553,1],[1576,1],[1648,2],[1695,3],[1719,1],[1775,4],[1802,1],[1850,2],[1853,2]]},"241":{"position":[[89,1],[114,1],[123,2],[126,1],[149,1],[194,2],[241,3],[265,1],[321,4],[326,2]]},"245":{"position":[[180,1],[205,1],[214,2],[217,1],[240,1],[330,2],[365,1],[367,1],[378,1],[415,2],[480,2],[517,2],[520,1],[537,3],[557,1],[570,1],[583,2],[586,2]]},"248":{"position":[[22,4],[89,4],[147,4],[361,2]]},"249":{"position":[[172,1],[184,1],[224,1],[296,1],[306,1],[367,2],[430,1],[432,2],[488,2],[523,1],[532,1],[557,7],[565,1],[567,2]]},"250":{"position":[[172,1],[184,1],[210,1],[233,1],[279,1],[304,1],[313,1],[368,1],[370,1],[393,1],[427,2],[492,1],[502,1],[563,2],[626,1],[628,2],[684,2]]},"253":{"position":[[41,2]]},"254":{"position":[[190,1],[215,1],[224,2],[227,1],[250,1],[345,2],[380,1],[382,1],[393,1],[482,2],[697,1],[714,3],[734,1],[747,1],[760,2],[763,2]]},"258":{"position":[[116,1],[141,1],[158,1],[160,1],[185,1],[257,1],[310,1],[312,1],[314,1],[332,1],[355,1],[427,1],[429,1],[454,1],[485,1],[487,1],[504,3],[528,1],[597,2],[600,2]]},"262":{"position":[[116,1],[141,1],[150,2],[153,1],[176,1]]},"266":{"position":[[190,1],[215,1],[235,2],[270,1],[293,1],[388,2],[455,1],[457,1],[468,1],[522,2],[587,1],[604,3],[624,1],[644,1],[701,2],[704,2]]},"270":{"position":[[61,1],[76,1],[78,1],[121,2],[129,2],[180,2],[183,1],[227,2],[235,2],[265,2],[268,1],[306,2],[314,2],[328,1],[330,2],[372,1]]},"273":{"position":[[122,1],[147,1],[160,1],[183,1],[207,1],[209,1],[232,1],[286,1],[288,1],[331,2],[339,2],[389,2],[392,1],[436,2],[444,2],[474,2],[477,1],[515,2],[523,2],[537,1],[539,2],[581,2],[584,1],[622,1],[624,1],[635,1],[698,1],[700,1],[717,3],[741,1],[809,2]]},"277":{"position":[[119,1],[150,1],[170,2],[205,2],[247,2],[314,1],[316,1],[334,1],[370,1],[372,1],[389,3],[409,1],[429,1],[445,2],[448,2]]},"281":{"position":[[152,1]]},"287":{"position":[[95,1],[120,1],[137,1],[139,1],[167,3],[217,2],[220,1],[238,1],[261,1],[300,1],[312,1],[406,1],[408,1],[410,2],[413,1]]},"290":{"position":[[190,4],[380,4]]},"291":{"position":[[112,1],[137,1],[154,1],[156,1],[184,3],[234,2],[237,1],[255,1],[278,1],[466,1],[495,1],[520,1],[522,2],[525,3],[545,1],[568,1],[628,1],[642,1],[699,2],[720,2],[740,2],[743,1]]},"295":{"position":[[80,1],[105,1],[150,1],[152,1],[180,3],[230,2],[233,1],[251,1],[274,1],[306,1],[316,1],[326,6],[338,5],[344,1],[346,2],[368,2],[371,1]]},"297":{"position":[[986,1],[994,1],[1027,1],[1058,1],[1103,1],[1105,1],[1133,3],[1183,2],[1186,1],[1204,2],[1236,1],[1318,6],[1330,5],[1336,1],[1338,3],[1361,2],[1364,1],[1396,1],[1409,1],[1448,2],[1479,2],[1510,2],[1541,2]]},"299":{"position":[[110,1]]},"301":{"position":[[109,1],[134,1],[157,1],[205,1],[207,2],[242,2],[259,2],[304,1],[327,1]]},"307":{"position":[[134,1],[159,1],[178,1],[255,1],[292,1],[333,1],[335,1],[358,1]]},"308":{"position":[[134,1],[165,1],[176,1],[235,2],[257,1],[286,1],[288,1],[311,1]]},"312":{"position":[[109,1],[134,1],[151,1],[153,1],[181,3],[231,2],[234,1],[252,1],[275,1],[321,1],[334,1],[351,6],[371,5],[377,1],[379,1],[381,2],[384,1]]},"318":{"position":[[105,1],[130,1],[139,2],[142,1],[165,1],[209,1],[237,2],[258,1],[280,2],[302,2],[305,1],[331,2],[462,1],[464,2],[622,2]]},"320":{"position":[[1014,1],[1023,1],[1075,1],[1100,1],[1145,1],[1147,1],[1175,3],[1225,2],[1228,1],[1246,1],[1269,1],[1313,1],[1394,3],[1417,2],[1420,1],[1452,1],[1465,1],[1508,2],[1541,2],[1578,2],[1620,2],[1664,2],[1712,2]]},"324":{"position":[[588,1]]},"328":{"position":[[82,1],[107,1],[116,2],[119,1],[140,1],[142,2],[166,1],[199,1],[248,2],[305,2],[370,2],[392,2],[395,1],[421,1],[438,1],[472,2],[540,1],[554,1],[624,1],[649,1],[658,2],[661,1],[682,1],[684,2],[708,1],[741,1],[769,2],[797,2],[800,1],[825,1],[874,2],[930,2],[969,2],[988,1],[993,1],[1025,2],[1028,1],[1030,2],[1033,3],[1095,1],[1108,1],[1178,1],[1217,2]]},"330":{"position":[[984,1],[998,1],[1031,1],[1042,1],[1082,1],[1107,1],[1116,2],[1119,1],[1140,1],[1142,2],[1166,1],[1199,1],[1272,2],[1402,1],[1404,2],[1464,2],[1483,1],[1488,1],[1520,2],[1523,1],[1525,2],[1528,3],[1590,1],[1603,1],[1661,2],[1690,2],[1738,2]]},"334":{"position":[[82,1],[107,1],[124,1],[126,1],[154,3],[204,2],[207,1],[225,1],[248,1],[281,1],[295,1],[306,6],[330,2],[333,2],[345,1],[347,1],[349,2],[352,1]]},"339":{"position":[[13,1],[51,1],[98,1],[127,1],[129,2],[132,3],[136,2],[139,1],[159,1],[193,3],[223,1],[259,3]]},"343":{"position":[[175,1],[191,1],[219,1],[242,1]]},"348":{"position":[[98,1],[129,1],[148,2]]},"349":{"position":[[97,1],[122,1],[131,1],[147,6],[170,1],[172,1],[195,1],[242,1],[254,5],[260,1],[262,2],[265,1]]},"354":{"position":[[206,1],[255,5],[261,3],[297,1],[318,2],[345,1],[394,5],[400,3],[436,1],[460,2],[476,1],[478,1],[480,1],[528,2],[531,1],[585,1],[587,1],[610,1]]},"357":{"position":[[257,2]]},"358":{"position":[[152,1],[201,5],[207,3],[243,1],[252,1],[277,7],[285,1],[287,2],[308,1],[357,5],[363,3],[399,1],[408,1],[433,7],[441,1],[443,2],[459,1],[461,1],[463,1],[520,2],[523,1],[577,1],[579,1],[602,1]]},"364":{"position":[[125,1]]},"365":{"position":[[764,4]]},"366":{"position":[[281,1],[373,2]]},"368":{"position":[[112,1],[130,1],[186,1],[211,1],[220,2],[223,1],[238,1],[240,1],[297,1],[299,2],[334,1],[351,2],[354,2],[401,1],[418,1],[420,1],[422,1],[445,1],[510,2],[513,1],[539,2],[609,1],[611,1],[663,2],[666,1],[683,3],[704,1],[758,2],[877,1],[895,1],[951,1],[976,1],[985,2],[988,1],[1011,1],[1093,1],[1101,1],[1118,2],[1133,1],[1150,1],[1152,1],[1154,2],[1178,1],[1220,3],[1248,2],[1263,3],[1289,1],[1395,2],[1469,2],[1646,1],[1664,1],[1720,1],[1745,1],[1754,2],[1757,1],[1777,1],[1779,1],[1829,1],[1837,1],[1896,1],[1904,1],[1921,2],[1931,1],[1965,1],[1967,2],[2036,1],[2038,1],[2040,1],[2042,1],[2065,1],[2075,2],[2212,2],[2215,1]]},"369":{"position":[[83,1],[144,1],[167,1],[169,1],[189,2],[192,1],[220,1],[315,1],[391,1],[410,1],[478,2],[481,1],[560,1],[802,1],[827,1],[836,2],[839,1],[862,1],[914,1],[923,1],[925,2],[928,1]]},"370":{"position":[[8,1],[19,1],[125,1],[160,1],[262,1],[287,1],[296,2],[299,1],[310,1],[365,1],[432,1],[514,1],[523,1],[525,2],[528,1]]},"371":{"position":[[8,1],[19,1],[125,1],[160,1],[203,1],[212,1],[234,2],[331,1],[356,1],[365,2],[368,1],[391,1],[473,1],[482,1],[484,2],[487,1]]},"375":{"position":[[98,1],[111,1],[113,1],[148,1],[163,1],[179,1],[181,2],[199,1],[201,1],[381,1],[396,1],[404,1],[406,1],[422,1],[424,1],[447,1],[497,1],[521,1],[538,1],[601,1],[650,1],[668,1],[696,1],[707,1],[736,1],[760,1],[830,1],[839,1],[900,1],[902,1]]},"377":{"position":[[113,1],[121,1]]},"378":{"position":[[873,2],[882,1],[911,1]]},"379":{"position":[[225,2]]},"414":{"position":[[124,1],[139,1],[203,1],[221,2]]},"416":{"position":[[165,1],[174,1],[207,1],[234,1]]},"468":{"position":[[121,1],[145,1],[166,2]]},"484":{"position":[[641,2],[677,1],[695,1],[752,1],[792,2],[878,3],[935,2],[969,1],[978,1],[1021,1],[1108,2],[1146,1],[1155,1],[1157,3]]},"490":{"position":[[247,2],[285,1],[287,2],[313,1],[328,1],[344,1],[346,1],[369,1],[400,1],[424,1],[432,1],[449,1],[451,1],[461,2],[464,3],[468,1],[498,1],[522,1],[530,1],[541,1],[543,1],[553,2],[556,3],[577,1],[588,1],[620,1],[644,1],[667,3],[726,1],[735,1],[832,1],[834,1],[1065,1],[1096,1],[1098,2],[1117,2],[1120,1],[1143,1],[1209,2],[1212,1]]},"516":{"position":[[274,1],[301,3],[333,1],[402,1],[404,2]]},"518":{"position":[[467,1],[492,1],[494,2],[506,1],[529,1],[569,1],[571,2],[607,2],[639,1],[641,2],[676,2],[710,1],[712,2],[750,2]]},"519":{"position":[[348,1],[350,1],[352,2],[355,3],[359,1],[382,1],[390,1],[392,3],[402,1],[418,1],[420,1],[443,1],[472,1],[496,1],[498,2],[501,3],[505,1],[533,1],[557,1],[559,2],[562,3],[566,1],[596,1],[620,1],[622,2],[625,3],[629,1],[638,1],[729,1],[731,1]]},"520":{"position":[[445,2],[514,1],[533,1],[542,2],[551,1],[568,1],[570,2],[579,1],[581,2],[598,1],[600,2],[603,3],[607,1],[630,1],[688,2],[697,1],[706,1],[724,1],[726,1]]},"521":{"position":[[162,1],[208,1],[245,1],[247,3],[328,1],[414,1],[422,1],[432,2],[478,1],[480,2],[505,1],[590,1],[598,1],[608,2],[637,1],[639,2],[664,1],[673,1],[689,1],[691,1],[1037,2]]},"522":{"position":[[552,1],[593,1],[629,1],[631,1],[644,3],[648,2],[651,1],[673,1],[756,1],[781,1],[789,1],[791,3],[801,1],[817,1],[819,1],[842,1],[856,1],[858,2],[867,1],[882,1],[884,2],[887,2],[972,1],[994,1],[1070,1],[1072,1],[1074,2],[1113,1],[1141,1],[1172,1],[1203,1],[1227,1],[1235,1],[1243,1],[1245,1],[1350,1],[1363,1],[1461,1],[1463,1],[1472,1],[1505,1],[1507,1]]}},"keywords":{}}],["0",{"_index":1089,"title":{},"content":{"166":{"position":[[451,1]]},"189":{"position":[[487,1],[985,2]]},"196":{"position":[[954,2]]},"207":{"position":[[949,2]]},"286":{"position":[[682,2]]},"294":{"position":[[926,2]]},"311":{"position":[[976,2]]},"317":{"position":[[1433,2]]},"327":{"position":[[959,2]]},"333":{"position":[[787,2]]},"520":{"position":[[264,1]]}},"keywords":{}}],["0.0",{"_index":1086,"title":{},"content":{"166":{"position":[[381,3]]}},"keywords":{}}],["0.036255",{"_index":547,"title":{},"content":{"21":{"position":[[1456,8]]}},"keywords":{}}],["0.038809",{"_index":549,"title":{},"content":{"21":{"position":[[1508,8]]}},"keywords":{}}],["0.042311",{"_index":553,"title":{},"content":{"21":{"position":[[1606,8]]}},"keywords":{}}],["0.048383",{"_index":551,"title":{},"content":{"21":{"position":[[1555,8]]}},"keywords":{}}],["0.066886",{"_index":564,"title":{},"content":{"21":{"position":[[1828,8]]}},"keywords":{}}],["0.073921",{"_index":543,"title":{},"content":{"21":{"position":[[1355,8]]}},"keywords":{}}],["0.080532",{"_index":562,"title":{},"content":{"21":{"position":[[1783,8]]}},"keywords":{}}],["0.083366",{"_index":555,"title":{},"content":{"21":{"position":[[1644,8]]}},"keywords":{}}],["0.083601",{"_index":558,"title":{},"content":{"21":{"position":[[1701,8]]}},"keywords":{}}],["0.094875",{"_index":556,"title":{},"content":{"21":{"position":[[1664,8]]}},"keywords":{}}],["0.095098",{"_index":545,"title":{},"content":{"21":{"position":[[1404,8]]}},"keywords":{}}],["0.156033",{"_index":541,"title":{},"content":{"21":{"position":[[1307,8]]}},"keywords":{}}],["0.19702",{"_index":560,"title":{},"content":{"21":{"position":[[1748,7]]}},"keywords":{}}],["0.x",{"_index":2085,"title":{"359":{"position":[[8,3]]}},"content":{"361":{"position":[[10,3]]}},"keywords":{}}],["0000",{"_index":1534,"title":{},"content":{"212":{"position":[[337,6]]},"214":{"position":[[1401,6]]}},"keywords":{}}],["01",{"_index":1007,"title":{},"content":{"161":{"position":[[424,3]]},"187":{"position":[[510,2],[601,2],[648,2],[662,2],[720,2]]}},"keywords":{}}],["02",{"_index":1009,"title":{},"content":{"161":{"position":[[448,2],[451,3]]}},"keywords":{}}],["03",{"_index":992,"title":{},"content":{"161":{"position":[[266,3]]},"187":{"position":[[745,2]]},"516":{"position":[[138,3]]}},"keywords":{}}],["04",{"_index":995,"title":{},"content":{"161":{"position":[[290,3],[319,2],[421,2]]},"187":{"position":[[486,2],[529,2],[604,2],[659,2],[706,2],[717,2],[756,2],[764,2]]}},"keywords":{}}],["05",{"_index":1012,"title":{},"content":{"161":{"position":[[486,2]]},"187":{"position":[[612,2],[670,2],[695,2]]}},"keywords":{}}],["06",{"_index":1365,"title":{},"content":{"187":{"position":[[507,2]]}},"keywords":{}}],["08",{"_index":991,"title":{},"content":{"161":{"position":[[263,2],[540,2]]},"187":{"position":[[742,2]]}},"keywords":{}}],["09",{"_index":994,"title":{},"content":{"161":{"position":[[287,2]]},"187":{"position":[[576,2],[753,2]]}},"keywords":{}}],["1",{"_index":294,"title":{},"content":{"16":{"position":[[1393,2]]},"166":{"position":[[389,1]]},"175":{"position":[[357,3]]},"187":{"position":[[71,3]]},"196":{"position":[[879,3],[936,2]]},"200":{"position":[[600,2]]},"207":{"position":[[874,3],[931,2]]},"286":{"position":[[607,3],[664,2]]},"287":{"position":[[334,3]]},"294":{"position":[[851,3],[908,2]]},"311":{"position":[[901,3],[958,2]]},"317":{"position":[[836,1],[1358,3],[1415,2]]},"318":{"position":[[277,2]]},"327":{"position":[[884,3],[941,2]]},"333":{"position":[[712,3],[769,2]]},"369":{"position":[[207,4],[310,4],[520,4]]},"484":{"position":[[644,2],[938,2]]},"519":{"position":[[74,1]]},"522":{"position":[[733,2]]}},"keywords":{}}],["1%.ftl",{"_index":2171,"title":{},"content":{"369":{"position":[[501,10]]}},"keywords":{}}],["1%.ftl}.j",{"_index":2172,"title":{},"content":{"369":{"position":[[547,12]]}},"keywords":{}}],["1%.json}.j",{"_index":2167,"title":{},"content":{"369":{"position":[[396,13]]}},"keywords":{}}],["1"",{"_index":1118,"title":{},"content":{"167":{"position":[[590,8],[792,8]]}},"keywords":{}}],["1.0",{"_index":1223,"title":{},"content":{"175":{"position":[[548,4]]}},"keywords":{}}],["1.x",{"_index":1975,"title":{"324":{"position":[[8,4]]},"359":{"position":[[15,3]]},"372":{"position":[[8,3]]}},"content":{"360":{"position":[[9,3]]},"361":{"position":[[173,3],[494,4]]},"362":{"position":[[9,3],[292,4]]}},"keywords":{}}],["10",{"_index":1360,"title":{"362":{"position":[[8,2]]}},"content":{"187":{"position":[[475,2],[518,2],[554,2]]},"248":{"position":[[429,2]]},"362":{"position":[[242,3]]}},"keywords":{}}],["10,000",{"_index":227,"title":{},"content":{"16":{"position":[[21,6]]}},"keywords":{}}],["100",{"_index":1194,"title":{},"content":{"172":{"position":[[34,3]]},"204":{"position":[[195,4]]}},"keywords":{}}],["1000",{"_index":2037,"title":{},"content":{"328":{"position":[[995,5]]},"330":{"position":[[1490,5]]}},"keywords":{}}],["1000000",{"_index":508,"title":{},"content":{"21":{"position":[[358,8]]}},"keywords":{}}],["11",{"_index":1015,"title":{},"content":{"161":{"position":[[513,2],[610,2],[637,2]]},"187":{"position":[[565,2],[579,2]]},"248":{"position":[[418,3],[438,2]]}},"keywords":{}}],["11e6",{"_index":1124,"title":{},"content":{"167":{"position":[[691,4]]}},"keywords":{}}],["12",{"_index":288,"title":{"362":{"position":[[15,2]]}},"content":{"16":{"position":[[1314,3],[1405,2]]},"161":{"position":[[489,3]]},"167":{"position":[[1051,2]]},"187":{"position":[[615,2],[623,2],[673,2]]},"362":{"position":[[236,2]]},"515":{"position":[[65,2]]},"516":{"position":[[135,2]]}},"keywords":{}}],["128",{"_index":1120,"title":{},"content":{"167":{"position":[[633,4]]}},"keywords":{}}],["12t21:21:08.921z"",{"_index":1141,"title":{},"content":{"167":{"position":[[1054,23]]}},"keywords":{}}],["1378562164lambda",{"_index":1888,"title":{},"content":{"305":{"position":[[760,16]]}},"keywords":{}}],["15",{"_index":2035,"title":{},"content":{"328":{"position":[[985,2]]},"330":{"position":[[1480,2]]}},"keywords":{}}],["150m",{"_index":2138,"title":{},"content":{"365":{"position":[[1146,5]]}},"keywords":{}}],["1592234975665",{"_index":1225,"title":{},"content":{"175":{"position":[[596,14]]}},"keywords":{}}],["16f6",{"_index":1515,"title":{},"content":{"204":{"position":[[268,4]]}},"keywords":{}}],["17",{"_index":1370,"title":{},"content":{"187":{"position":[[557,2]]}},"keywords":{}}],["19",{"_index":290,"title":{},"content":{"16":{"position":[[1329,3]]}},"keywords":{}}],["1:123456789012:function:shop",{"_index":1114,"title":{},"content":{"167":{"position":[[528,32]]}},"keywords":{}}],["1m",{"_index":570,"title":{},"content":{"21":{"position":[[1899,3]]}},"keywords":{}}],["2",{"_index":1341,"title":{},"content":{"187":{"position":[[43,3]]},"484":{"position":[[795,2],[1111,2]]}},"keywords":{}}],["2.x",{"_index":1930,"title":{"322":{"position":[[8,3]]},"323":{"position":[[8,3]]},"372":{"position":[[15,3]]},"376":{"position":[[8,3]]}},"content":{},"keywords":{}}],["20",{"_index":1374,"title":{},"content":{"187":{"position":[[698,2]]}},"keywords":{}}],["200",{"_index":276,"title":{},"content":{"16":{"position":[[985,4]]},"179":{"position":[[675,4]]},"191":{"position":[[157,4]]},"197":{"position":[[291,4]]},"199":{"position":[[1112,4]]},"200":{"position":[[872,4]]},"212":{"position":[[150,4]]},"214":{"position":[[1170,4]]},"226":{"position":[[750,4]]},"249":{"position":[[546,4]]},"250":{"position":[[327,4]]},"258":{"position":[[174,4]]},"273":{"position":[[197,4]]},"287":{"position":[[153,4]]},"291":{"position":[[170,4]]},"295":{"position":[[166,4]]},"297":{"position":[[1119,4]]},"312":{"position":[[167,4]]},"320":{"position":[[1161,4]]},"324":{"position":[[859,3]]},"334":{"position":[[140,4]]},"358":{"position":[[266,4],[422,4]]},"456":{"position":[[50,3]]}},"keywords":{}}],["2016",{"_index":983,"title":{},"content":{"161":{"position":[[51,7]]}},"keywords":{}}],["2017",{"_index":296,"title":{},"content":{"16":{"position":[[1451,5]]},"161":{"position":[[177,4]]},"187":{"position":[[737,4],[748,4]]}},"keywords":{}}],["2018",{"_index":1373,"title":{},"content":{"187":{"position":[[690,4]]}},"keywords":{}}],["2019",{"_index":2339,"title":{},"content":{"516":{"position":[[130,4]]}},"keywords":{}}],["2020",{"_index":1375,"title":{},"content":{"187":{"position":[[701,4],[759,4]]},"515":{"position":[[60,4]]}},"keywords":{}}],["2021",{"_index":1010,"title":{},"content":{"161":{"position":[[455,4]]},"187":{"position":[[643,4],[654,4],[712,4]]}},"keywords":{}}],["2022",{"_index":1369,"title":{},"content":{"187":{"position":[[549,4],[560,4],[596,4],[607,4],[618,4],[665,4]]}},"keywords":{}}],["2023",{"_index":1021,"title":{},"content":{"161":{"position":[[558,4]]},"187":{"position":[[502,4],[513,4],[571,4]]}},"keywords":{}}],["2024",{"_index":1359,"title":{},"content":{"187":{"position":[[459,4],[470,4]]}},"keywords":{}}],["2025",{"_index":1366,"title":{},"content":{"187":{"position":[[524,4]]}},"keywords":{}}],["2026",{"_index":1362,"title":{},"content":{"187":{"position":[[481,4]]}},"keywords":{}}],["2027",{"_index":297,"title":{},"content":{"16":{"position":[[1466,4]]}},"keywords":{}}],["22",{"_index":1019,"title":{},"content":{"161":{"position":[[543,3]]}},"keywords":{}}],["24",{"_index":1016,"title":{},"content":{"161":{"position":[[516,3]]},"187":{"position":[[521,2],[568,2],[651,2]]}},"keywords":{}}],["25",{"_index":998,"title":{},"content":{"161":{"position":[[322,3]]},"187":{"position":[[709,2],[767,2]]}},"keywords":{}}],["29",{"_index":1361,"title":{},"content":{"187":{"position":[[478,2]]}},"keywords":{}}],["2nd",{"_index":1031,"title":{},"content":{"161":{"position":[[708,3]]}},"keywords":{}}],["3",{"_index":298,"title":{},"content":{"16":{"position":[[1508,2]]},"519":{"position":[[79,1]]}},"keywords":{}}],["3.x",{"_index":1967,"title":{"323":{"position":[[14,4]]},"376":{"position":[[15,3]]},"453":{"position":[[8,3]]}},"content":{},"keywords":{}}],["30",{"_index":1363,"title":{},"content":{"187":{"position":[[489,2],[532,2]]},"258":{"position":[[244,3]]}},"keywords":{}}],["31",{"_index":1371,"title":{},"content":{"187":{"position":[[626,2]]}},"keywords":{}}],["4",{"_index":299,"title":{},"content":{"16":{"position":[[1522,2]]}},"keywords":{}}],["4.x",{"_index":1931,"title":{"322":{"position":[[14,4]]},"415":{"position":[[8,3]]},"453":{"position":[[15,3]]}},"content":{},"keywords":{}}],["406",{"_index":1568,"title":{},"content":{"225":{"position":[[882,5]]}},"keywords":{}}],["408",{"_index":657,"title":{},"content":{"31":{"position":[[1439,3]]},"43":{"position":[[1439,3]]},"46":{"position":[[1564,3]]},"97":{"position":[[1439,3]]},"150":{"position":[[1451,3]]},"520":{"position":[[720,3]]}},"keywords":{}}],["415",{"_index":1642,"title":{},"content":{"244":{"position":[[168,3]]},"253":{"position":[[353,3]]},"265":{"position":[[61,3]]}},"keywords":{}}],["422",{"_index":1600,"title":{},"content":{"230":{"position":[[370,4]]},"240":{"position":[[1816,4]]},"474":{"position":[[12,3]]}},"keywords":{}}],["422b1569",{"_index":1514,"title":{},"content":{"204":{"position":[[258,9]]}},"keywords":{}}],["4a03",{"_index":1516,"title":{},"content":{"204":{"position":[[273,4]]}},"keywords":{}}],["5.x",{"_index":2264,"title":{"415":{"position":[[15,3]]}},"content":{},"keywords":{}}],["50",{"_index":2137,"title":{},"content":{"365":{"position":[[1143,2]]},"520":{"position":[[662,3]]}},"keywords":{}}],["500",{"_index":1595,"title":{},"content":{"229":{"position":[[336,3]]},"428":{"position":[[13,3]]},"456":{"position":[[86,3]]},"496":{"position":[[75,3],[185,3]]}},"keywords":{}}],["5432",{"_index":1843,"title":{},"content":{"287":{"position":[[401,4]]}},"keywords":{}}],["5555",{"_index":767,"title":{},"content":{"106":{"position":[[448,4]]}},"keywords":{}}],["5timeoutearlyrespons",{"_index":2220,"title":{},"content":{"378":{"position":[[782,22]]}},"keywords":{}}],["6",{"_index":2112,"title":{"362":{"position":[[42,1]]}},"content":{},"keywords":{}}],["6.x",{"_index":2114,"title":{},"content":{"362":{"position":[[58,3]]}},"keywords":{}}],["60",{"_index":2036,"title":{},"content":{"328":{"position":[[990,2]]},"330":{"position":[[1485,2]]}},"keywords":{}}],["66.141835",{"_index":565,"title":{},"content":{"21":{"position":[[1847,9]]}},"keywords":{}}],["7",{"_index":1678,"title":{},"content":{"249":{"position":[[428,1]]},"250":{"position":[[624,1]]}},"keywords":{}}],["7b61",{"_index":1123,"title":{},"content":{"167":{"position":[[686,4]]}},"keywords":{}}],["8",{"_index":1427,"title":{"362":{"position":[[48,1]]}},"content":{"193":{"position":[[295,3]]},"249":{"position":[[387,1]]},"250":{"position":[[583,1]]},"392":{"position":[[50,2]]}},"keywords":{}}],["8.x",{"_index":2115,"title":{},"content":{"362":{"position":[[66,3]]}},"keywords":{}}],["9",{"_index":1349,"title":{},"content":{"187":{"position":[[175,3]]}},"keywords":{}}],["93e812345678"",{"_index":1126,"title":{},"content":{"167":{"position":[[701,19]]}},"keywords":{}}],["99999",{"_index":2363,"title":{},"content":{"520":{"position":[[454,7]]}},"keywords":{}}],["9a41",{"_index":1125,"title":{},"content":{"167":{"position":[[696,4]]}},"keywords":{}}],["_",{"_index":1598,"title":{},"content":{"230":{"position":[[312,3]]},"240":{"position":[[1699,3]]},"241":{"position":[[245,3]]},"245":{"position":[[541,3]]},"254":{"position":[[718,3]]},"258":{"position":[[508,3]]},"266":{"position":[[608,3]]},"273":{"position":[[721,3]]},"277":{"position":[[393,3]]},"318":{"position":[[442,3]]}},"keywords":{}}],["__dirnam",{"_index":126,"title":{},"content":{"8":{"position":[[205,9],[355,9]]}},"keywords":{}}],["__filenam",{"_index":124,"title":{},"content":{"8":{"position":[[155,10]]}},"keywords":{}}],["__middlewar",{"_index":2224,"title":{},"content":{"378":{"position":[[1021,13]]}},"keywords":{}}],["_context",{"_index":1102,"title":{},"content":{"167":{"position":[[213,9]]},"171":{"position":[[360,9]]},"175":{"position":[[251,9]]},"179":{"position":[[531,9]]}},"keywords":{}}],["_event",{"_index":1101,"title":{},"content":{"167":{"position":[[204,8]]},"171":{"position":[[351,8]]},"175":{"position":[[233,8]]}},"keywords":{}}],["abil",{"_index":2336,"title":{},"content":{"516":{"position":[[89,7]]}},"keywords":{}}],["abort",{"_index":1382,"title":{},"content":{"189":{"position":[[184,5]]}},"keywords":{}}],["abortcontrol",{"_index":1396,"title":{},"content":{"189":{"position":[[748,16]]},"378":{"position":[[515,15]]},"520":{"position":[[130,15]]}},"keywords":{}}],["abortcontrolerremov",{"_index":2284,"title":{},"content":{"455":{"position":[[21,20]]}},"keywords":{}}],["abortcontroller.set",{"_index":1391,"title":{},"content":{"189":{"position":[[537,19]]}},"keywords":{}}],["abortsignal.timeout",{"_index":2273,"title":{},"content":{"417":{"position":[[97,22]]}},"keywords":{}}],["abov",{"_index":1109,"title":{},"content":{"167":{"position":[[398,5]]},"171":{"position":[[516,5]]},"175":{"position":[[441,5]]},"185":{"position":[[384,7]]},"518":{"position":[[792,6]]}},"keywords":{}}],["accept",{"_index":1075,"title":{},"content":{"166":{"position":[[19,7],[485,7]]},"170":{"position":[[19,7],[379,7]]},"174":{"position":[[19,7],[300,7]]},"178":{"position":[[12,7]]},"236":{"position":[[314,7]]},"272":{"position":[[222,6],[552,7]]},"273":{"position":[[637,7]]},"281":{"position":[[145,6]]},"290":{"position":[[62,7],[204,7]]},"338":{"position":[[30,7]]},"490":{"position":[[115,7]]}},"keywords":{}}],["acceptcontext.preferredcontenttyp",{"_index":1770,"title":{},"content":{"272":{"position":[[240,34]]}},"keywords":{}}],["access",{"_index":1315,"title":{},"content":{"185":{"position":[[170,6],[282,6]]},"240":{"position":[[46,6],[316,6],[406,6],[883,6],[973,6],[1070,6],[1169,6]]},"322":{"position":[[699,9]]},"365":{"position":[[971,6]]},"404":{"position":[[18,6]]},"423":{"position":[[86,6]]},"519":{"position":[[828,6]]}},"keywords":{}}],["accesstoken",{"_index":2028,"title":{},"content":{"328":{"position":[[201,12],[827,12],[1129,15]]},"330":{"position":[[1201,12]]}},"keywords":{}}],["account",{"_index":1386,"title":{},"content":{"189":{"position":[[398,7]]}},"keywords":{}}],["action",{"_index":1520,"title":{},"content":{"204":{"position":[[400,7]]}},"keywords":{}}],["activ",{"_index":1411,"title":{},"content":{"189":{"position":[[1468,6]]},"322":{"position":[[442,6]]}},"keywords":{}}],["actual",{"_index":1291,"title":{},"content":{"181":{"position":[[538,6]]}},"keywords":{}}],["ad",{"_index":279,"title":{},"content":{"16":{"position":[[1064,5]]},"161":{"position":[[675,6]]},"174":{"position":[[544,6]]},"183":{"position":[[23,6]]},"281":{"position":[[320,6]]},"302":{"position":[[43,5]]},"317":{"position":[[895,5]]},"378":{"position":[[913,5]]},"495":{"position":[[1,5]]},"496":{"position":[[1,5],[125,5]]},"512":{"position":[[40,5]]},"516":{"position":[[76,5]]}},"keywords":{}}],["add",{"_index":281,"title":{},"content":{"16":{"position":[[1152,3]]},"19":{"position":[[618,3]]},"153":{"position":[[834,3]]},"171":{"position":[[613,3]]},"175":{"position":[[1193,3]]},"198":{"position":[[21,3]]},"213":{"position":[[21,3]]},"261":{"position":[[385,4]]},"271":{"position":[[419,3]]},"288":{"position":[[21,3]]},"296":{"position":[[21,3]]},"313":{"position":[[21,3]]},"314":{"position":[[21,3]]},"317":{"position":[[1654,3]]},"319":{"position":[[21,3]]},"329":{"position":[[21,3]]},"335":{"position":[[21,3]]},"350":{"position":[[21,3]]},"367":{"position":[[121,4]]},"384":{"position":[[1,3]]},"386":{"position":[[1,3]]},"399":{"position":[[1,3]]},"468":{"position":[[50,3]]},"469":{"position":[[1,3]]},"484":{"position":[[1114,3]]},"503":{"position":[[11,4]]}},"keywords":{}}],["addit",{"_index":212,"title":{},"content":{"15":{"position":[[370,10]]},"164":{"position":[[291,10]]},"176":{"position":[[508,10]]},"199":{"position":[[816,10]]},"214":{"position":[[868,10]]},"271":{"position":[[423,10]]},"297":{"position":[[813,10]]},"320":{"position":[[828,10]]},"330":{"position":[[812,10]]},"365":{"position":[[308,10]]}},"keywords":{}}],["addition",{"_index":600,"title":{},"content":{"21":{"position":[[2588,13]]},"151":{"position":[[396,13]]},"167":{"position":[[2123,13]]},"171":{"position":[[1391,13]]},"506":{"position":[[5,12]]}},"keywords":{}}],["address",{"_index":1713,"title":{},"content":{"258":{"position":[[248,8]]}},"keywords":{}}],["adjust",{"_index":1674,"title":{},"content":{"249":{"position":[[370,8]]},"250":{"position":[[566,8]]}},"keywords":{}}],["adopt",{"_index":204,"title":{},"content":{"15":{"position":[[202,7]]},"186":{"position":[[68,8]]}},"keywords":{}}],["advanc",{"_index":1463,"title":{},"content":{"199":{"position":[[92,7]]},"214":{"position":[[91,7]]},"297":{"position":[[95,7]]},"320":{"position":[[104,7]]},"327":{"position":[[1280,8]]},"330":{"position":[[82,7]]},"378":{"position":[[683,8]]}},"keywords":{}}],["advantag",{"_index":2251,"title":{},"content":{"406":{"position":[[26,9]]},"522":{"position":[[364,9]]}},"keywords":{}}],["after(async",{"_index":2349,"title":{},"content":{"518":{"position":[[610,12]]}},"keywords":{}}],["after)middleware1",{"_index":1323,"title":{},"content":{"185":{"position":[[532,18]]}},"keywords":{}}],["after)middleware2",{"_index":1322,"title":{},"content":{"185":{"position":[[513,18]]}},"keywords":{}}],["afterhandl",{"_index":523,"title":{},"content":{"21":{"position":[[683,12],[854,13]]},"22":{"position":[[543,12],[714,13]]}},"keywords":{}}],["aftermiddlewar",{"_index":520,"title":{},"content":{"21":{"position":[[606,15],[822,16]]},"22":{"position":[[466,15],[682,16]]}},"keywords":{}}],["ag",{"_index":1628,"title":{},"content":{"240":{"position":[[992,3]]},"258":{"position":[[239,4]]}},"keywords":{}}],["against",{"_index":1196,"title":{},"content":{"172":{"position":[[107,7]]},"240":{"position":[[788,7]]},"281":{"position":[[1129,7]]}},"keywords":{}}],["aggreg",{"_index":1193,"title":{},"content":{"172":{"position":[[16,11]]}},"keywords":{}}],["airbnb/nod",{"_index":611,"title":{},"content":{"22":{"position":[[22,13]]}},"keywords":{}}],["ajv",{"_index":388,"title":{},"content":{"18":{"position":[[411,6],[429,6],[448,6],[481,6],[521,6],[560,6]]},"21":{"position":[[2121,3]]},"322":{"position":[[130,4],[135,3]]},"364":{"position":[[117,3]]},"365":{"position":[[58,3],[209,3],[469,3]]},"366":{"position":[[49,3],[67,3],[77,3],[90,3],[113,3],[127,3]]},"367":{"position":[[48,3]]},"369":{"position":[[157,4],[171,3],[194,3],[296,3],[512,3]]},"371":{"position":[[219,4],[237,4]]},"447":{"position":[[179,3]]},"484":{"position":[[327,3],[985,4]]},"515":{"position":[[10,3],[129,3],[260,3],[330,3]]}},"keywords":{}}],["ajv/.runkit_examples.j",{"_index":387,"title":{},"content":{"18":{"position":[[384,26]]}},"keywords":{}}],["ajv/lib",{"_index":386,"title":{},"content":{"18":{"position":[[373,10]]}},"keywords":{}}],["ajvclass",{"_index":2142,"title":{},"content":{"366":{"position":[[246,8]]}},"keywords":{}}],["alexa",{"_index":617,"title":{"24":{"position":[[0,5]]}},"content":{"25":{"position":[[23,5]]}},"keywords":{}}],["alias",{"_index":2261,"title":{},"content":{"409":{"position":[[196,8]]}},"keywords":{}}],["align",{"_index":1352,"title":{},"content":{"187":{"position":[[252,9]]}},"keywords":{}}],["aliv",{"_index":17,"title":{},"content":{"0":{"position":[[257,5]]}},"keywords":{}}],["allerror",{"_index":2144,"title":{},"content":{"366":{"position":[[319,10]]}},"keywords":{}}],["alloc",{"_index":1690,"title":{},"content":{"253":{"position":[[654,9]]}},"keywords":{}}],["allow",{"_index":10,"title":{},"content":{"0":{"position":[[143,6]]},"5":{"position":[[351,5]]},"15":{"position":[[47,6],[290,6]]},"17":{"position":[[665,6]]},"19":{"position":[[119,6]]},"158":{"position":[[45,5]]},"167":{"position":[[1647,6],[2341,6]]},"175":{"position":[[1179,6]]},"189":{"position":[[234,5]]},"199":{"position":[[296,6],[672,6]]},"214":{"position":[[329,6],[712,6]]},"221":{"position":[[144,6]]},"225":{"position":[[36,6],[126,6],[231,6],[323,6],[429,6],[521,6],[628,6],[723,6]]},"240":{"position":[[61,5],[331,5],[421,5],[740,7],[1759,5]]},"241":{"position":[[305,5]]},"253":{"position":[[946,8]]},"272":{"position":[[172,6],[278,6],[409,5]]},"297":{"position":[[292,6],[657,6]]},"305":{"position":[[534,7]]},"320":{"position":[[299,6],[672,6]]},"330":{"position":[[292,6],[668,6]]},"360":{"position":[[242,6]]},"365":{"position":[[349,5]]},"367":{"position":[[71,6]]},"378":{"position":[[534,5],[628,5],[940,5]]},"386":{"position":[[34,5]]},"388":{"position":[[73,5]]},"395":{"position":[[7,5]]},"404":{"position":[[7,5]]},"413":{"position":[[7,5]]},"423":{"position":[[80,5]]},"441":{"position":[[74,5]]},"484":{"position":[[97,8],[388,5],[477,5]]},"518":{"position":[[869,5]]},"519":{"position":[[821,6]]},"520":{"position":[[177,5]]}},"keywords":{}}],["along",{"_index":2020,"title":{},"content":{"327":{"position":[[1212,5]]},"416":{"position":[[71,5]]}},"keywords":{}}],["alpha",{"_index":1343,"title":{},"content":{"187":{"position":[[53,5],[214,6],[408,5]]}},"keywords":{}}],["alreadi",{"_index":832,"title":{},"content":{"140":{"position":[[564,7]]},"159":{"position":[[1070,7]]},"182":{"position":[[1375,7]]},"253":{"position":[[732,7]]},"357":{"position":[[834,7]]},"361":{"position":[[649,7]]},"378":{"position":[[347,7]]}},"keywords":{}}],["altern",{"_index":1389,"title":{},"content":{"189":{"position":[[495,13]]},"491":{"position":[[86,11]]}},"keywords":{}}],["although",{"_index":1401,"title":{},"content":{"189":{"position":[[1068,8]]}},"keywords":{}}],["alway",{"_index":1495,"title":{},"content":{"200":{"position":[[1084,6]]},"490":{"position":[[922,6]]}},"keywords":{}}],["amazon",{"_index":622,"title":{},"content":{"27":{"position":[[62,6]]},"30":{"position":[[23,6]]},"36":{"position":[[23,6]]},"42":{"position":[[23,6]]},"66":{"position":[[23,6]]},"69":{"position":[[23,6]]},"72":{"position":[[23,6]]},"75":{"position":[[23,6]]},"78":{"position":[[19,6]]},"87":{"position":[[23,6]]},"90":{"position":[[19,6]]},"96":{"position":[[23,6]]},"99":{"position":[[23,6]]},"102":{"position":[[19,6]]},"109":{"position":[[23,6]]},"112":{"position":[[23,6]]},"115":{"position":[[23,6]]},"118":{"position":[[23,6],[67,6]]},"124":{"position":[[23,6]]},"127":{"position":[[23,6]]},"130":{"position":[[23,6]]},"136":{"position":[[28,6]]},"142":{"position":[[23,6]]},"149":{"position":[[23,6]]},"163":{"position":[[376,6],[614,6]]},"172":{"position":[[432,6]]},"323":{"position":[[578,6]]},"324":{"position":[[1462,6]]}},"keywords":{}}],["amount",{"_index":266,"title":{},"content":{"16":{"position":[[829,6],[1576,7]]}},"keywords":{}}],["amp",{"_index":1662,"title":{},"content":{"248":{"position":[[432,5],[590,5]]},"365":{"position":[[1105,5]]},"369":{"position":[[44,5]]},"377":{"position":[[31,5]]}},"keywords":{}}],["amp;&",{"_index":868,"title":{},"content":{"151":{"position":[[850,10]]}},"keywords":{}}],["and",{"_index":2231,"title":{},"content":{"385":{"position":[[29,4]]}},"keywords":{}}],["and/or",{"_index":2018,"title":{},"content":{"327":{"position":[[1144,6]]}},"keywords":{}}],["annot",{"_index":1164,"title":{},"content":{"168":{"position":[[62,12]]},"171":{"position":[[620,10],[910,12]]}},"keywords":{}}],["anymor",{"_index":2117,"title":{},"content":{"362":{"position":[[157,7]]}},"keywords":{}}],["anyth",{"_index":377,"title":{},"content":{"18":{"position":[[207,8]]}},"keywords":{}}],["anyway",{"_index":324,"title":{},"content":{"17":{"position":[[161,7]]}},"keywords":{}}],["anywher",{"_index":1946,"title":{},"content":{"322":{"position":[[762,8]]}},"keywords":{}}],["apach",{"_index":737,"title":{},"content":{"93":{"position":[[32,6]]}},"keywords":{}}],["api",{"_index":234,"title":{"23":{"position":[[0,3]]},"29":{"position":[[0,3]]},"35":{"position":[[0,3]]},"41":{"position":[[0,3]]},"348":{"position":[[0,3]]}},"content":{"16":{"position":[[104,3]]},"27":{"position":[[69,3]]},"30":{"position":[[30,3],[59,4]]},"36":{"position":[[30,3],[64,4]]},"42":{"position":[[30,3],[59,4]]},"96":{"position":[[30,3],[59,4]]},"167":{"position":[[566,3],[768,3]]},"171":{"position":[[1260,4]]},"196":{"position":[[563,3]]},"200":{"position":[[204,3]]},"207":{"position":[[559,3]]},"286":{"position":[[290,3]]},"294":{"position":[[542,3]]},"311":{"position":[[591,3]]},"317":{"position":[[557,3]]},"322":{"position":[[1374,3]]},"327":{"position":[[522,3]]},"333":{"position":[[402,3]]},"357":{"position":[[385,3]]},"412":{"position":[[35,3]]},"521":{"position":[[110,3]]},"522":{"position":[[486,5]]}},"keywords":{}}],["api:manageconnectionsif",{"_index":2063,"title":{},"content":{"346":{"position":[[758,23]]}},"keywords":{}}],["apigatewaymanagementapi",{"_index":91,"title":{},"content":{"6":{"position":[[468,25]]},"8":{"position":[[675,25]]},"345":{"position":[[135,23]]},"346":{"position":[[61,23]]},"350":{"position":[[41,23]]}},"keywords":{}}],["apigatewaymanagementapi.awsclientopt",{"_index":2062,"title":{},"content":{"346":{"position":[[181,40]]}},"keywords":{}}],["apigatewaymanagementapicli",{"_index":2061,"title":{},"content":{"346":{"position":[[29,31],[271,29]]}},"keywords":{}}],["apigatewayproxyev",{"_index":1479,"title":{},"content":{"200":{"position":[[352,21]]},"521":{"position":[[164,21]]}},"keywords":{}}],["apigatewayproxyresult",{"_index":1480,"title":{},"content":{"200":{"position":[[374,21]]},"521":{"position":[[186,21]]}},"keywords":{}}],["apigatewayproxyresult>",{"_index":1482,"title":{},"content":{"200":{"position":[[470,27]]},"521":{"position":[[296,25],[388,25],[564,25]]}},"keywords":{}}],["apisinput",{"_index":621,"title":{},"content":{"27":{"position":[[46,9]]}},"keywords":{}}],["apitoken",{"_index":1483,"title":{},"content":{"200":{"position":[[534,9]]},"318":{"position":[[211,9]]}},"keywords":{}}],["apollo",{"_index":814,"title":{"140":{"position":[[0,6]]}},"content":{"140":{"position":[[0,6],[210,7],[587,6]]}},"keywords":{}}],["apollo/feder",{"_index":825,"title":{},"content":{"140":{"position":[[270,20]]}},"keywords":{}}],["apolloserv",{"_index":822,"title":{},"content":{"140":{"position":[[185,13],[417,14]]}},"keywords":{}}],["app",{"_index":1571,"title":{},"content":{"225":{"position":[[1007,4]]}},"keywords":{}}],["appconfig",{"_index":779,"title":{"194":{"position":[[0,9]]},"420":{"position":[[0,10]]}},"content":{"107":{"position":[[323,10],[837,10]]},"196":{"position":[[757,11]]},"197":{"position":[[40,9],[104,11]]},"198":{"position":[[41,9]]},"199":{"position":[[9,9],[374,9],[992,10],[1221,11]]},"283":{"position":[[1,10]]},"323":{"position":[[567,10]]}},"keywords":{}}],["appconfig.awsclientopt",{"_index":1437,"title":{},"content":{"196":{"position":[[159,26]]},"294":{"position":[[145,26]]}},"keywords":{}}],["appconfig.dynamodb",{"_index":1824,"title":{},"content":{"283":{"position":[[43,19]]}},"keywords":{}}],["appconfig:getlatestconfigur",{"_index":1457,"title":{},"content":{"196":{"position":[[1161,32]]}},"keywords":{}}],["appconfig:startconfigurationsess",{"_index":1456,"title":{},"content":{"196":{"position":[[1121,35]]}},"keywords":{}}],["appconfigcli",{"_index":1434,"title":{},"content":{"196":{"position":[[29,17],[47,15],[235,15]]}},"keywords":{}}],["appconfigdata",{"_index":1432,"title":{},"content":{"195":{"position":[[133,13]]},"420":{"position":[[25,13]]}},"keywords":{}}],["appconfigmiddlewar",{"_index":774,"title":{},"content":{"107":{"position":[[82,19],[288,21]]}},"keywords":{}}],["appconfigreq",{"_index":1467,"title":{},"content":{"199":{"position":[[251,12],[601,12],[938,13],[1005,12]]}},"keywords":{}}],["appconfigreq<paramtype>(config",{"_index":1470,"title":{},"content":{"199":{"position":[[545,37]]}},"keywords":{}}],["appear",{"_index":1192,"title":{},"content":{"171":{"position":[[1348,6]]}},"keywords":{}}],["append",{"_index":1152,"title":{},"content":{"167":{"position":[[1661,6]]}},"keywords":{}}],["appli",{"_index":1665,"title":{},"content":{"248":{"position":[[517,6]]},"282":{"position":[[307,7]]},"317":{"position":[[651,5]]},"379":{"position":[[83,7]]},"385":{"position":[[7,7]]},"496":{"position":[[93,7]]}},"keywords":{}}],["applic",{"_index":351,"title":{"44":{"position":[[0,11]]}},"content":{"17":{"position":[[884,11]]},"45":{"position":[[26,11]]},"107":{"position":[[336,12]]},"163":{"position":[[130,13]]},"175":{"position":[[1265,11]]},"197":{"position":[[139,12]]},"199":{"position":[[1256,12]]},"253":{"position":[[850,12]]}},"keywords":{}}],["application/json",{"_index":666,"title":{},"content":{"31":{"position":[[1654,20],[2136,18]]},"43":{"position":[[1654,20],[2147,18]]},"46":{"position":[[1779,20],[2261,18]]},"97":{"position":[[1679,20],[2161,18]]},"150":{"position":[[1666,20],[2148,18]]},"226":{"position":[[642,19],[1008,19]]},"245":{"position":[[396,18]]},"270":{"position":[[353,18]]},"273":{"position":[[562,18]]}},"keywords":{}}],["application/x",{"_index":1750,"title":{},"content":{"266":{"position":[[486,14]]}},"keywords":{}}],["application/xml",{"_index":1583,"title":{},"content":{"226":{"position":[[496,18],[969,18]]}},"keywords":{}}],["application/xml;q=0.9",{"_index":1776,"title":{},"content":{"273":{"position":[[645,23]]}},"keywords":{}}],["application/yaml",{"_index":1585,"title":{},"content":{"226":{"position":[[577,19],[988,19]]}},"keywords":{}}],["application\\/json",{"_index":676,"title":{},"content":{"31":{"position":[[2049,22]]},"43":{"position":[[2049,22]]},"46":{"position":[[2174,22]]},"97":{"position":[[2074,22]]},"150":{"position":[[2061,22]]},"270":{"position":[[192,22]]},"273":{"position":[[401,22]]}},"keywords":{}}],["application\\/xml",{"_index":1761,"title":{},"content":{"270":{"position":[[87,21]]},"273":{"position":[[297,21]]}},"keywords":{}}],["applymiddlewar",{"_index":2223,"title":{},"content":{"378":{"position":[[999,17]]}},"keywords":{}}],["approach",{"_index":361,"title":{},"content":{"17":{"position":[[1055,8]]},"19":{"position":[[110,8]]},"189":{"position":[[432,11]]},"200":{"position":[[1046,9],[1180,8]]},"253":{"position":[[562,8]]},"361":{"position":[[461,9]]}},"keywords":{}}],["appsync",{"_index":681,"title":{"32":{"position":[[0,7]]}},"content":{"33":{"position":[[23,7]]}},"keywords":{}}],["arbitari",{"_index":1153,"title":{},"content":{"167":{"position":[[1668,8]]}},"keywords":{}}],["arbitrari",{"_index":1462,"title":{},"content":{"199":{"position":[[36,9]]},"214":{"position":[[35,9]]},"221":{"position":[[199,9]]},"297":{"position":[[39,9]]},"320":{"position":[[48,9]]},"330":{"position":[[30,9]]}},"keywords":{}}],["argument",{"_index":1496,"title":{},"content":{"200":{"position":[[1291,9]]},"229":{"position":[[102,9]]},"322":{"position":[[816,9]]},"378":{"position":[[595,8]]}},"keywords":{}}],["arn:aws:rd",{"_index":1838,"title":{},"content":{"286":{"position":[[885,11]]}},"keywords":{}}],["around",{"_index":1045,"title":{},"content":{"163":{"position":[[445,6]]},"516":{"position":[[174,7]]},"520":{"position":[[99,6]]}},"keywords":{}}],["array",{"_index":941,"title":{},"content":{"157":{"position":[[399,5]]},"203":{"position":[[332,5]]},"240":{"position":[[708,7],[731,5]]},"290":{"position":[[215,5]]},"353":{"position":[[49,5]]},"357":{"position":[[53,5]]},"366":{"position":[[310,8]]},"369":{"position":[[251,5],[346,5]]},"379":{"position":[[48,5]]}},"keywords":{}}],["array[str",{"_index":1654,"title":{},"content":{"248":{"position":[[211,15]]}},"keywords":{}}],["array[{method",{"_index":2074,"title":{},"content":{"357":{"position":[[8,15]]}},"keywords":{}}],["array[{routekey",{"_index":2071,"title":{},"content":{"353":{"position":[[8,17]]}},"keywords":{}}],["arraysadd",{"_index":2330,"title":{},"content":{"506":{"position":[[99,9]]}},"keywords":{}}],["ask",{"_index":1772,"title":{},"content":{"272":{"position":[[343,3]]}},"keywords":{}}],["assert",{"_index":653,"title":{},"content":{"31":{"position":[[1255,6],[1330,6]]},"43":{"position":[[1255,6],[1330,6]]},"97":{"position":[[1255,6],[1330,6]]},"105":{"position":[[353,6],[428,6]]},"150":{"position":[[1267,6],[1342,6]]}},"keywords":{}}],["assum",{"_index":231,"title":{},"content":{"16":{"position":[[73,6]]},"283":{"position":[[511,7]]},"318":{"position":[[467,8]]},"514":{"position":[[25,6]]}},"keywords":{}}],["assumerol",{"_index":2051,"title":{},"content":{"334":{"position":[[283,11]]}},"keywords":{}}],["async",{"_index":256,"title":{},"content":{"16":{"position":[[641,5]]},"19":{"position":[[38,5],[274,5]]},"159":{"position":[[887,5],[1150,5]]},"167":{"position":[[198,5]]},"171":{"position":[[345,5]]},"175":{"position":[[227,5]]},"179":{"position":[[380,5],[517,5]]},"182":{"position":[[1117,5],[1455,5]]},"308":{"position":[[136,5]]},"375":{"position":[[221,5],[314,5],[356,5],[499,5],[738,5]]},"490":{"position":[[402,5],[500,5],[622,5],[1067,5]]},"519":{"position":[[474,5],[535,5],[598,5]]},"521":{"position":[[416,5],[592,5]]},"522":{"position":[[381,5],[1205,5]]}},"keywords":{}}],["async/await",{"_index":2184,"title":{},"content":{"373":{"position":[[58,11],[229,11]]}},"keywords":{}}],["asynchron",{"_index":1052,"title":{},"content":{"163":{"position":[[647,14]]},"172":{"position":[[234,14]]},"175":{"position":[[957,14]]},"323":{"position":[[136,14],[332,14],[701,12]]}},"keywords":{}}],["asyncmiddi",{"_index":1990,"title":{},"content":{"324":{"position":[[590,10]]}},"keywords":{}}],["attach",{"_index":211,"title":{},"content":{"15":{"position":[[363,6]]},"16":{"position":[[1754,6]]},"156":{"position":[[397,6]]},"157":{"position":[[432,6],[843,6]]},"158":{"position":[[211,8]]},"185":{"position":[[358,8],[663,8]]},"199":{"position":[[832,8]]},"200":{"position":[[1136,8],[1213,6]]},"214":{"position":[[884,8]]},"297":{"position":[[829,8]]},"320":{"position":[[844,8]]},"330":{"position":[[828,8]]},"378":{"position":[[294,6]]}},"keywords":{}}],["attribut",{"_index":1766,"title":{},"content":{"271":{"position":[[240,9],[304,9],[434,10]]},"282":{"position":[[442,10]]}},"keywords":{}}],["augment",{"_index":1489,"title":{},"content":{"200":{"position":[[693,9],[1305,9]]}},"keywords":{}}],["august",{"_index":987,"title":{},"content":{"161":{"position":[[170,6]]}},"keywords":{}}],["auth",{"_index":1999,"title":{},"content":{"324":{"position":[[1100,5]]}},"keywords":{}}],["authent",{"_index":214,"title":{},"content":{"15":{"position":[[402,15]]}},"keywords":{}}],["author",{"_index":215,"title":{"23":{"position":[[12,10]]}},"content":{"15":{"position":[[418,14]]},"18":{"position":[[1518,7]]},"27":{"position":[[25,11],[88,10]]},"324":{"position":[[1121,13],[1376,13]]}},"keywords":{}}],["auto",{"_index":1163,"title":{},"content":{"168":{"position":[[16,4]]},"200":{"position":[[1409,4]]}},"keywords":{}}],["automat",{"_index":1048,"title":{},"content":{"163":{"position":[[499,13]]},"167":{"position":[[1221,13]]},"171":{"position":[[708,13],[852,13],[1014,13],[1109,13],[1289,13]]},"240":{"position":[[162,13]]},"281":{"position":[[541,13],[735,13],[873,13],[998,13],[1066,13],[1173,13]]},"327":{"position":[[573,13]]},"357":{"position":[[806,13]]}},"keywords":{}}],["autoproxyrespons",{"_index":1996,"title":{},"content":{"324":{"position":[[942,18]]}},"keywords":{}}],["availablelanguag",{"_index":661,"title":{},"content":{"31":{"position":[[1593,19]]},"43":{"position":[[1593,19]]},"46":{"position":[[1718,19]]},"97":{"position":[[1618,19]]},"150":{"position":[[1605,19]]},"226":{"position":[[900,19]]}},"keywords":{}}],["availablemediatyp",{"_index":665,"title":{},"content":{"31":{"position":[[1633,20]]},"43":{"position":[[1633,20]]},"46":{"position":[[1758,20]]},"97":{"position":[[1658,20]]},"150":{"position":[[1645,20]]},"226":{"position":[[946,20]]}},"keywords":{}}],["avenu",{"_index":1715,"title":{},"content":{"258":{"position":[[267,7]]}},"keywords":{}}],["avoid",{"_index":1302,"title":{},"content":{"182":{"position":[[661,5]]},"333":{"position":[[1027,7]]}},"keywords":{}}],["aw",{"_index":7,"title":{"25":{"position":[[0,3]]},"27":{"position":[[0,3]]},"30":{"position":[[0,3]]},"33":{"position":[[0,3]]},"36":{"position":[[0,3]]},"39":{"position":[[0,3]]},"42":{"position":[[0,3]]},"45":{"position":[[0,3]]},"48":{"position":[[0,3]]},"51":{"position":[[0,3]]},"54":{"position":[[0,3]]},"57":{"position":[[0,3]]},"60":{"position":[[0,3]]},"63":{"position":[[0,3]]},"66":{"position":[[0,3]]},"69":{"position":[[0,3]]},"72":{"position":[[0,3]]},"75":{"position":[[0,3]]},"78":{"position":[[0,3]]},"81":{"position":[[0,3]]},"84":{"position":[[0,3]]},"87":{"position":[[0,3]]},"90":{"position":[[0,3]]},"93":{"position":[[0,3]]},"96":{"position":[[0,3]]},"99":{"position":[[0,3]]},"102":{"position":[[0,3]]},"104":{"position":[[4,3]]},"109":{"position":[[0,3]]},"112":{"position":[[0,3]]},"115":{"position":[[0,3]]},"118":{"position":[[0,3]]},"121":{"position":[[0,3]]},"124":{"position":[[0,3]]},"127":{"position":[[0,3]]},"130":{"position":[[0,3]]},"133":{"position":[[0,3]]},"136":{"position":[[0,3]]},"142":{"position":[[0,3]]},"149":{"position":[[0,3]]},"151":{"position":[[0,3]]},"162":{"position":[[15,3]]}},"content":{"0":{"position":[[86,3]]},"6":{"position":[[443,3],[451,5],[516,5],[560,5],[611,5],[672,5],[736,5],[773,5]]},"8":{"position":[[650,3],[658,5],[723,5],[767,5],[818,5],[879,5],[943,5],[980,5]]},"15":{"position":[[75,3]]},"16":{"position":[[608,3]]},"17":{"position":[[45,3],[1068,3],[1164,3]]},"18":{"position":[[234,4]]},"25":{"position":[[7,3]]},"27":{"position":[[14,3]]},"30":{"position":[[7,3]]},"33":{"position":[[7,3]]},"36":{"position":[[7,3]]},"39":{"position":[[7,3],[23,3]]},"42":{"position":[[7,3]]},"45":{"position":[[7,3]]},"48":{"position":[[7,3],[23,3]]},"54":{"position":[[7,3]]},"57":{"position":[[7,3],[23,3]]},"60":{"position":[[7,3],[23,3]]},"63":{"position":[[7,3],[23,3]]},"66":{"position":[[7,3]]},"69":{"position":[[7,3]]},"72":{"position":[[7,3]]},"75":{"position":[[7,3]]},"81":{"position":[[7,3],[23,3]]},"84":{"position":[[7,3],[23,3]]},"87":{"position":[[7,3]]},"96":{"position":[[7,3]]},"99":{"position":[[7,3]]},"109":{"position":[[7,3]]},"112":{"position":[[7,3]]},"115":{"position":[[7,3]]},"118":{"position":[[7,3],[42,3]]},"122":{"position":[[153,4]]},"124":{"position":[[7,3]]},"127":{"position":[[7,3]]},"130":{"position":[[7,3]]},"133":{"position":[[7,3]]},"136":{"position":[[13,3]]},"142":{"position":[[7,3]]},"149":{"position":[[7,3]]},"151":{"position":[[0,3]]},"161":{"position":[[40,3]]},"163":{"position":[[452,3],[573,3]]},"165":{"position":[[32,4]]},"167":{"position":[[78,5],[1475,3]]},"168":{"position":[[302,3],[324,3]]},"169":{"position":[[32,4]]},"171":{"position":[[79,5],[149,5],[1036,3],[1430,3]]},"173":{"position":[[32,4]]},"175":{"position":[[83,5]]},"177":{"position":[[32,4],[67,4],[92,4]]},"179":{"position":[[114,5],[204,5]]},"182":{"position":[[839,5]]},"187":{"position":[[267,3],[358,3]]},"193":{"position":[[63,5]]},"195":{"position":[[117,4]]},"196":{"position":[[119,3],[143,4],[484,3]]},"198":{"position":[[12,4],[25,4]]},"200":{"position":[[403,4]]},"203":{"position":[[44,3],[430,3]]},"206":{"position":[[116,4],[141,4]]},"207":{"position":[[117,3],[141,4],[480,3]]},"213":{"position":[[12,4],[25,4]]},"280":{"position":[[84,3]]},"281":{"position":[[55,3]]},"283":{"position":[[294,3],[405,3],[447,3],[553,3]]},"285":{"position":[[118,4]]},"286":{"position":[[101,3],[125,4]]},"288":{"position":[[12,4],[25,4]]},"290":{"position":[[123,3]]},"293":{"position":[[110,4]]},"294":{"position":[[105,3],[129,4],[463,3]]},"296":{"position":[[12,4],[25,4]]},"299":{"position":[[159,4]]},"304":{"position":[[126,4]]},"305":{"position":[[105,3],[129,4],[319,3]]},"310":{"position":[[125,4]]},"311":{"position":[[133,3],[157,4],[512,3]]},"313":{"position":[[12,4],[25,4]]},"314":{"position":[[12,4],[25,4]]},"316":{"position":[[123,4]]},"317":{"position":[[129,3],[153,4],[478,3]]},"319":{"position":[[12,4],[25,4]]},"322":{"position":[[54,3],[509,3],[717,3],[1111,3],[1370,3]]},"323":{"position":[[1,3],[60,3],[168,3],[505,3],[542,3],[563,3]]},"324":{"position":[[700,3],[718,3]]},"326":{"position":[[111,4]]},"327":{"position":[[107,3],[132,4],[398,3],[443,3]]},"329":{"position":[[12,4],[25,4]]},"332":{"position":[[111,4]]},"333":{"position":[[107,3],[131,4],[323,3]]},"335":{"position":[[12,4],[25,4]]},"345":{"position":[[119,4]]},"346":{"position":[[141,3],[165,4],[534,3]]},"350":{"position":[[12,4],[25,4]]},"353":{"position":[[103,3]]},"357":{"position":[[224,3]]},"362":{"position":[[113,3]]},"384":{"position":[[29,3]]},"454":{"position":[[16,3]]},"477":{"position":[[16,3]]},"478":{"position":[[16,3]]},"479":{"position":[[16,3]]},"480":{"position":[[16,3]]},"482":{"position":[[16,3]]},"483":{"position":[[16,3]]},"487":{"position":[[16,3]]},"516":{"position":[[60,3],[72,3]]},"521":{"position":[[215,4]]}},"keywords":{}}],["await",{"_index":487,"title":{},"content":{"19":{"position":[[933,5],[1056,5],[1284,5]]},"21":{"position":[[1220,5]]},"22":{"position":[[1082,5]]},"106":{"position":[[765,5]]},"107":{"position":[[726,5]]},"179":{"position":[[571,5]]},"193":{"position":[[134,5],[317,5]]},"199":{"position":[[1388,5]]},"214":{"position":[[1465,5]]},"297":{"position":[[1411,5]]},"307":{"position":[[180,5]]},"308":{"position":[[178,5]]},"320":{"position":[[1467,5]]},"328":{"position":[[1110,5]]},"330":{"position":[[1605,5]]},"375":{"position":[[540,5],[603,5],[762,5]]},"414":{"position":[[141,5]]},"490":{"position":[[689,5]]},"522":{"position":[[1365,5]]}},"keywords":{}}],["awar",{"_index":1207,"title":{},"content":{"172":{"position":[[529,5]]}},"keywords":{}}],["aws/what",{"_index":2253,"title":{},"content":{"406":{"position":[[68,9]]}},"keywords":{}}],["aws_nodejs_connection_reuse_enabled=1",{"_index":9,"title":{},"content":{"0":{"position":[[100,37]]}},"keywords":{}}],["awsclient",{"_index":1433,"title":{},"content":{"196":{"position":[[1,9]]},"207":{"position":[[1,9]]},"286":{"position":[[1,9]]},"294":{"position":[[1,9]]},"305":{"position":[[1,9]]},"311":{"position":[[1,9]]},"317":{"position":[[1,9]]},"327":{"position":[[1,9]]},"333":{"position":[[1,9]]},"346":{"position":[[1,9]]},"512":{"position":[[26,9]]}},"keywords":{}}],["awsclientassumerol",{"_index":1443,"title":{},"content":{"196":{"position":[[692,19]]},"207":{"position":[[688,19]]},"286":{"position":[[419,19]]},"294":{"position":[[671,19]]},"305":{"position":[[441,19]]},"311":{"position":[[720,19]]},"317":{"position":[[1165,19]]},"327":{"position":[[703,19]]},"333":{"position":[[531,19]]},"346":{"position":[[656,19]]}},"keywords":{}}],["awsclientcaptur",{"_index":798,"title":{},"content":{"122":{"position":[[238,17]]}},"keywords":{}}],["awsclientopt",{"_index":1485,"title":{},"content":{"200":{"position":[[563,17]]},"318":{"position":[[240,17]]},"327":{"position":[[1359,16]]},"349":{"position":[[224,17]]}},"keywords":{}}],["awsclientoptions.endpoint",{"_index":2064,"title":{},"content":{"346":{"position":[[782,25]]}},"keywords":{}}],["awscontext",{"_index":1860,"title":{},"content":{"291":{"position":[[723,11]]}},"keywords":{}}],["b8f0",{"_index":1517,"title":{},"content":{"204":{"position":[[278,4]]}},"keywords":{}}],["babel",{"_index":147,"title":{"10":{"position":[[0,6]]}},"content":{},"keywords":{}}],["babel.config.json",{"_index":155,"title":{},"content":{"10":{"position":[[123,18]]}},"keywords":{}}],["babel/cli",{"_index":148,"title":{},"content":{"10":{"position":[[10,10]]}},"keywords":{}}],["babel/cor",{"_index":149,"title":{},"content":{"10":{"position":[[21,11]]}},"keywords":{}}],["babel/preset",{"_index":150,"title":{},"content":{"10":{"position":[[33,13]]}},"keywords":{}}],["back",{"_index":892,"title":{},"content":{"153":{"position":[[145,4]]},"462":{"position":[[49,4]]}},"keywords":{}}],["balanc",{"_index":702,"title":{"44":{"position":[[17,8]]}},"content":{"45":{"position":[[43,8]]},"248":{"position":[[567,7]]}},"keywords":{}}],["banner:j",{"_index":46,"title":{},"content":{"5":{"position":[[22,9]]}},"keywords":{}}],["banner:js="import",{"_index":55,"title":{},"content":{"5":{"position":[[189,22]]}},"keywords":{}}],["bar",{"_index":1105,"title":{},"content":{"167":{"position":[[293,4]]},"245":{"position":[[511,5],[577,5]]},"254":{"position":[[754,5]]},"490":{"position":[[1203,5]]}},"keywords":{}}],["bare",{"_index":923,"title":{},"content":{"156":{"position":[[168,4]]}},"keywords":{}}],["base",{"_index":280,"title":{},"content":{"16":{"position":[[1070,4]]},"159":{"position":[[689,5]]},"163":{"position":[[879,5]]},"171":{"position":[[732,5]]},"182":{"position":[[919,5]]},"282":{"position":[[453,5]]},"317":{"position":[[760,5]]},"322":{"position":[[1405,5]]},"324":{"position":[[1146,5]]},"360":{"position":[[390,5]]}},"keywords":{}}],["base64",{"_index":1693,"title":{},"content":{"253":{"position":[[775,8]]}},"keywords":{}}],["basepersistencelay",{"_index":1258,"title":{},"content":{"178":{"position":[[61,23]]}},"keywords":{}}],["bash",{"_index":2163,"title":{},"content":{"369":{"position":[[78,4]]}},"keywords":{}}],["batch",{"_index":786,"title":{"111":{"position":[[3,5]]},"298":{"position":[[12,5]]},"406":{"position":[[12,5]]},"444":{"position":[[12,5]]},"481":{"position":[[12,5]]},"512":{"position":[[12,5]]}},"content":{"112":{"position":[[33,5]]},"143":{"position":[[152,5]]},"282":{"position":[[549,5]]},"299":{"position":[[96,5]]},"301":{"position":[[74,5]]},"302":{"position":[[129,5]]},"406":{"position":[[109,5]]}},"keywords":{}}],["batches.idempot",{"_index":1056,"title":{},"content":{"163":{"position":[[773,19]]}},"keywords":{}}],["batches.w",{"_index":1821,"title":{},"content":{"282":{"position":[[593,10]]}},"keywords":{}}],["baz",{"_index":1106,"title":{},"content":{"167":{"position":[[298,5]]}},"keywords":{}}],["be",{"_index":608,"title":{},"content":{"21":{"position":[[2840,5]]},"189":{"position":[[645,5]]},"515":{"position":[[155,5]]}},"keywords":{}}],["becom",{"_index":1312,"title":{},"content":{"183":{"position":[[125,8]]},"187":{"position":[[113,7]]},"409":{"position":[[189,6]]}},"keywords":{}}],["befor",{"_index":884,"title":{},"content":{"152":{"position":[[165,6]]},"157":{"position":[[892,8]]},"158":{"position":[[188,6],[291,6],[391,7],[630,6]]},"159":{"position":[[265,8],[538,6],[1277,7]]},"172":{"position":[[538,6]]},"181":{"position":[[656,6]]},"182":{"position":[[283,6],[1277,6],[1582,7]]},"185":{"position":[[30,6],[53,6],[75,6],[797,6]]},"187":{"position":[[87,6]]},"189":{"position":[[205,6],[295,6]]},"210":{"position":[[97,6],[263,6]]},"318":{"position":[[334,6]]},"322":{"position":[[502,6]]},"353":{"position":[[512,6]]},"357":{"position":[[744,6]]},"369":{"position":[[23,6]]},"375":{"position":[[841,7]]},"378":{"position":[[729,6]]},"490":{"position":[[737,7]]},"518":{"position":[[210,8],[594,6],[833,7]]},"519":{"position":[[96,7],[139,6],[259,7],[640,7]]},"521":{"position":[[336,7],[675,7]]},"522":{"position":[[251,6],[1474,7]]}},"keywords":{}}],["before((async",{"_index":474,"title":{},"content":{"19":{"position":[[653,14]]}},"keywords":{}}],["before((request",{"_index":2033,"title":{},"content":{"328":{"position":[[397,17]]},"468":{"position":[[97,17]]}},"keywords":{}}],["before(async",{"_index":481,"title":{},"content":{"19":{"position":[[816,13]]},"106":{"position":[[707,13]]},"107":{"position":[[668,13]]},"199":{"position":[[1343,13]]},"214":{"position":[[1420,13]]},"297":{"position":[[1366,13]]},"320":{"position":[[1422,13]]},"328":{"position":[[1065,13]]},"330":{"position":[[1560,13]]},"414":{"position":[[94,13]]},"518":{"position":[[539,13]]}},"keywords":{}}],["before)handlermiddleware3",{"_index":1321,"title":{},"content":{"185":{"position":[[486,26]]}},"keywords":{}}],["before)middleware2",{"_index":1319,"title":{},"content":{"185":{"position":[[446,19]]}},"keywords":{}}],["before)middleware3",{"_index":1320,"title":{},"content":{"185":{"position":[[466,19]]}},"keywords":{}}],["before,aft",{"_index":2308,"title":{},"content":{"490":{"position":[[207,13]]}},"keywords":{}}],["before/aft",{"_index":953,"title":{},"content":{"158":{"position":[[372,12],[568,12]]}},"keywords":{}}],["beforehandl",{"_index":521,"title":{},"content":{"21":{"position":[[635,13],[839,14]]},"22":{"position":[[495,13],[699,14]]}},"keywords":{}}],["beforemiddlewar",{"_index":519,"title":{},"content":{"21":{"position":[[575,16],[804,17]]},"22":{"position":[[435,16],[664,17]]}},"keywords":{}}],["beforeprefetch",{"_index":513,"title":{},"content":{"21":{"position":[[411,14],[774,15]]},"22":{"position":[[316,14],[634,15]]},"158":{"position":[[155,17]]}},"keywords":{}}],["beforerequest",{"_index":595,"title":{},"content":{"21":{"position":[[2514,13]]}},"keywords":{}}],["begin",{"_index":860,"title":{},"content":{"151":{"position":[[655,5]]}},"keywords":{}}],["behavior",{"_index":1263,"title":{},"content":{"178":{"position":[[218,8]]},"361":{"position":[[182,8],[287,8]]}},"keywords":{}}],["below",{"_index":2088,"title":{},"content":{"360":{"position":[[351,5]]},"378":{"position":[[209,5]]}},"keywords":{}}],["benefit",{"_index":743,"title":{"105":{"position":[[21,7]]}},"content":{},"keywords":{}}],["best",{"_index":1280,"title":{"180":{"position":[[0,4]]}},"content":{"186":{"position":[[119,4]]},"282":{"position":[[315,4]]},"333":{"position":[[1100,4]]},"521":{"position":[[849,4]]}},"keywords":{}}],["beta",{"_index":1345,"title":{},"content":{"187":{"position":[[81,5]]}},"keywords":{}}],["better",{"_index":226,"title":{},"content":{"16":{"position":[[9,6]]},"140":{"position":[[96,7]]},"144":{"position":[[95,7]]},"145":{"position":[[87,7]]},"146":{"position":[[103,7]]},"147":{"position":[[99,7]]},"151":{"position":[[120,7]]},"167":{"position":[[1289,6]]},"188":{"position":[[92,7]]},"189":{"position":[[90,7]]},"377":{"position":[[127,6]]}},"keywords":{}}],["between",{"_index":1085,"title":{},"content":{"166":{"position":[[373,7]]},"167":{"position":[[1907,7]]},"522":{"position":[[104,7]]}},"keywords":{}}],["big",{"_index":985,"title":{},"content":{"161":{"position":[[117,3]]},"253":{"position":[[594,3],[895,3]]}},"keywords":{}}],["bigger",{"_index":1938,"title":{},"content":{"322":{"position":[[319,6]]}},"keywords":{}}],["bin",{"_index":440,"title":{},"content":{"18":{"position":[[1428,4]]}},"keywords":{}}],["binary/latin1",{"_index":2239,"title":{},"content":{"392":{"position":[[29,13]]}},"keywords":{}}],["block",{"_index":2216,"title":{},"content":{"378":{"position":[[425,5]]}},"keywords":{}}],["bodi",{"_index":244,"title":{"242":{"position":[[10,4]]},"251":{"position":[[15,4]]},"263":{"position":[[15,4]]},"340":{"position":[[8,4]]},"391":{"position":[[10,4]]},"392":{"position":[[15,4]]},"397":{"position":[[15,4]]},"405":{"position":[[9,4]]},"411":{"position":[[8,4]]},"431":{"position":[[10,4]]},"432":{"position":[[15,4]]},"437":{"position":[[15,4]]},"449":{"position":[[8,4]]},"468":{"position":[[10,4]]},"469":{"position":[[15,4]]},"474":{"position":[[15,4]]},"486":{"position":[[8,4]]},"499":{"position":[[10,4]]},"500":{"position":[[15,4]]},"504":{"position":[[15,4]]},"511":{"position":[[9,4]]}},"content":{"16":{"position":[[339,4],[708,4],[990,5],[1229,5],[1855,4]]},"31":{"position":[[634,4],[716,4],[1023,4],[2087,4]]},"37":{"position":[[88,4]]},"43":{"position":[[634,4],[716,4],[1023,4],[2087,4]]},"46":{"position":[[685,4],[767,4],[1074,4],[2212,4]]},"97":{"position":[[634,4],[716,4],[1023,4],[2112,4]]},"140":{"position":[[545,4]]},"150":{"position":[[646,4],[728,4],[1035,4],[2099,4]]},"191":{"position":[[203,5]]},"193":{"position":[[303,4],[394,4]]},"197":{"position":[[309,5]]},"199":{"position":[[1130,5]]},"200":{"position":[[877,5]]},"212":{"position":[[168,5]]},"214":{"position":[[1188,5]]},"226":{"position":[[284,4],[515,4],[597,4],[662,4],[712,4],[755,4]]},"230":{"position":[[375,5]]},"240":{"position":[[1821,5]]},"243":{"position":[[94,4]]},"245":{"position":[[147,4],[483,5],[545,5]]},"249":{"position":[[551,5]]},"250":{"position":[[332,5]]},"252":{"position":[[99,4]]},"254":{"position":[[157,4],[485,5],[722,5]]},"258":{"position":[[179,5]]},"264":{"position":[[99,4]]},"266":{"position":[[157,4],[253,4],[525,5],[612,5]]},"270":{"position":[[124,4],[230,4],[309,4],[323,4]]},"271":{"position":[[235,4],[299,4]]},"273":{"position":[[155,4],[202,4],[334,4],[439,4],[518,4],[532,4]]},"277":{"position":[[188,4],[397,5]]},"281":{"position":[[528,4],[586,4],[608,4],[722,4],[825,4],[860,4],[925,4],[1160,4]]},"287":{"position":[[171,5]]},"291":{"position":[[188,5]]},"295":{"position":[[184,5]]},"297":{"position":[[1137,5]]},"307":{"position":[[294,5]]},"308":{"position":[[171,4],[245,4],[259,5]]},"312":{"position":[[185,5]]},"320":{"position":[[1179,5]]},"324":{"position":[[1547,4],[1574,4]]},"334":{"position":[[158,5]]},"341":{"position":[[80,4]]},"342":{"position":[[112,5]]},"343":{"position":[[88,4]]},"358":{"position":[[271,5],[427,5]]},"360":{"position":[[860,4],[963,4],[1163,4]]},"368":{"position":[[268,8],[328,5],[613,5],[1057,8],[1095,5],[1486,4],[1585,4],[1807,9],[1831,5],[2094,4]]},"385":{"position":[[66,4]]},"411":{"position":[[13,4]]},"416":{"position":[[236,4]]},"462":{"position":[[9,4]]}},"keywords":{}}],["body.disablecontenttypeerror",{"_index":1640,"title":{},"content":{"244":{"position":[[103,28]]}},"keywords":{}}],["bodyhttp",{"_index":1813,"title":{},"content":{"282":{"position":[[94,8]]}},"keywords":{}}],["bodytyp",{"_index":800,"title":{},"content":{"122":{"position":[[310,9]]}},"keywords":{}}],["boilerpl",{"_index":2379,"title":{},"content":{"522":{"position":[[513,11]]}},"keywords":{}}],["bonjour",{"_index":1579,"title":{},"content":{"226":{"position":[[393,8]]}},"keywords":{}}],["bool",{"_index":1610,"title":{},"content":{"236":{"position":[[11,6]]},"240":{"position":[[13,6],[125,6]]}},"keywords":{}}],["boolean",{"_index":1093,"title":{},"content":{"166":{"position":[[649,9],[744,9]]},"170":{"position":[[196,10],[272,10],[550,9]]},"174":{"position":[[477,9],[592,9]]},"196":{"position":[[602,9],[1001,9]]},"207":{"position":[[598,9],[996,9]]},"221":{"position":[[13,9]]},"244":{"position":[[132,9]]},"253":{"position":[[317,9]]},"265":{"position":[[25,9]]},"286":{"position":[[329,9],[729,9]]},"290":{"position":[[90,7]]},"294":{"position":[[581,9],[973,9]]},"305":{"position":[[351,9]]},"311":{"position":[[630,9],[1023,9]]},"317":{"position":[[640,7],[699,8],[1075,9],[1480,9]]},"327":{"position":[[613,9],[1006,9]]},"333":{"position":[[441,9],[834,9]]},"346":{"position":[[566,9]]},"365":{"position":[[577,9]]}},"keywords":{}}],["boolean|object",{"_index":1905,"title":{},"content":{"317":{"position":[[606,16]]}},"keywords":{}}],["both",{"_index":1154,"title":{},"content":{"167":{"position":[[1702,4]]},"185":{"position":[[292,4]]},"189":{"position":[[918,4]]},"323":{"position":[[680,4]]}},"keywords":{}}],["boundari",{"_index":1699,"title":{},"content":{"254":{"position":[[433,9]]}},"keywords":{}}],["bowser/bundled.j",{"_index":409,"title":{},"content":{"18":{"position":[[830,20]]}},"keywords":{}}],["bowser/src",{"_index":408,"title":{},"content":{"18":{"position":[[816,13]]}},"keywords":{}}],["br",{"_index":1647,"title":{},"content":{"248":{"position":[[1,2],[309,3],[325,2],[387,2]]},"249":{"position":[[292,3],[462,6]]},"250":{"position":[[488,3],[658,6]]}},"keywords":{}}],["break",{"_index":1578,"title":{},"content":{"226":{"position":[[363,5],[412,5],[566,5],[631,5],[697,5]]},"378":{"position":[[56,9],[1035,9]]},"379":{"position":[[187,9],[264,9]]},"389":{"position":[[87,9]]},"390":{"position":[[72,9]]},"392":{"position":[[53,9]]},"394":{"position":[[73,9]]},"396":{"position":[[130,9]]},"400":{"position":[[60,9]]},"403":{"position":[[60,9]]},"406":{"position":[[194,9]]},"407":{"position":[[28,9]]},"409":{"position":[[83,9]]},"420":{"position":[[46,8]]},"423":{"position":[[127,8]]},"425":{"position":[[85,8]]},"426":{"position":[[40,8]]},"428":{"position":[[49,8]]},"429":{"position":[[66,8]]},"431":{"position":[[52,8]]},"432":{"position":[[52,8]]},"437":{"position":[[52,8]]},"441":{"position":[[113,8]]},"444":{"position":[[91,8]]},"449":{"position":[[40,8]]},"456":{"position":[[103,8]]},"462":{"position":[[97,8]]},"468":{"position":[[25,8]]},"474":{"position":[[42,8]]},"477":{"position":[[27,8]]},"478":{"position":[[27,8]]},"479":{"position":[[27,8]]},"480":{"position":[[27,8]]},"482":{"position":[[27,8]]},"483":{"position":[[27,8]]},"484":{"position":[[190,8],[228,8],[303,8],[434,8]]},"487":{"position":[[27,8]]}},"keywords":{}}],["brief",{"_index":982,"title":{"161":{"position":[[2,5]]}},"content":{},"keywords":{}}],["bring",{"_index":1070,"title":{},"content":{"164":{"position":[[380,6]]}},"keywords":{}}],["broken",{"_index":1805,"title":{},"content":{"281":{"position":[[653,6]]}},"keywords":{}}],["brotli",{"_index":2230,"title":{},"content":{"385":{"position":[[15,7]]}},"keywords":{}}],["brotlioptionsgzip",{"_index":1649,"title":{},"content":{"248":{"position":[[53,17]]}},"keywords":{}}],["brought",{"_index":2287,"title":{},"content":{"462":{"position":[[41,7]]}},"keywords":{}}],["browser",{"_index":1656,"title":{},"content":{"248":{"position":[[283,8]]},"261":{"position":[[29,7]]}},"keywords":{}}],["bucket",{"_index":781,"title":{},"content":{"107":{"position":[[463,7]]},"295":{"position":[[318,7]]},"297":{"position":[[1310,7]]}},"keywords":{}}],["bucketmiddytohof",{"_index":1987,"title":{},"content":{"324":{"position":[[428,17]]}},"keywords":{}}],["buffer",{"_index":1301,"title":{},"content":{"182":{"position":[[650,6]]},"253":{"position":[[475,6]]}},"keywords":{}}],["build",{"_index":232,"title":{},"content":{"16":{"position":[[88,8]]},"18":{"position":[[1344,6]]},"21":{"position":[[2377,5]]},"159":{"position":[[605,8]]},"163":{"position":[[96,5]]},"369":{"position":[[7,5]]},"491":{"position":[[112,8]]}},"keywords":{}}],["buildfederatedschema",{"_index":824,"title":{},"content":{"140":{"position":[[242,20],[440,22]]}},"keywords":{}}],["built",{"_index":452,"title":{},"content":{"19":{"position":[[26,5]]},"200":{"position":[[67,5]]},"507":{"position":[[86,5]]}},"keywords":{}}],["bundl",{"_index":19,"title":{"1":{"position":[[0,8]]},"198":{"position":[[0,9]]},"213":{"position":[[0,9]]},"288":{"position":[[0,9]]},"296":{"position":[[0,9]]},"313":{"position":[[0,9]]},"314":{"position":[[0,9]]},"319":{"position":[[0,9]]},"329":{"position":[[0,9]]},"335":{"position":[[0,9]]},"350":{"position":[[0,9]]}},"content":{"5":{"position":[[169,6]]},"369":{"position":[[182,6],[453,6]]},"484":{"position":[[53,6]]}},"keywords":{}}],["bundler",{"_index":44,"title":{"4":{"position":[[0,9]]}},"content":{"18":{"position":[[27,7]]}},"keywords":{}}],["busboy",{"_index":1681,"title":{},"content":{"253":{"position":[[1,6],[103,6],[528,7]]}},"keywords":{}}],["busi",{"_index":209,"title":{},"content":{"15":{"position":[[324,8],[518,8]]},"16":{"position":[[1075,8]]},"17":{"position":[[144,8],[268,8],[426,8],[771,8],[949,8]]},"156":{"position":[[173,8]]},"157":{"position":[[223,8],[701,8]]}},"keywords":{}}],["buy",{"_index":1521,"title":{},"content":{"204":{"position":[[408,5]]}},"keywords":{}}],["c",{"_index":1780,"title":{},"content":{"273":{"position":[[695,2]]}},"keywords":{}}],["ca",{"_index":663,"title":{},"content":{"31":{"position":[[1618,4],[1627,5]]},"43":{"position":[[1618,4],[1627,5]]},"46":{"position":[[1743,4],[1752,5]]},"97":{"position":[[1643,4],[1652,5]]},"150":{"position":[[1630,4],[1639,5]]},"151":{"position":[[644,2],[743,3]]},"287":{"position":[[322,3]]}},"keywords":{}}],["cach",{"_index":441,"title":{"375":{"position":[[0,6]]}},"content":{"18":{"position":[[1433,6]]},"159":{"position":[[623,7],[680,5],[1056,5],[1215,5]]},"182":{"position":[[910,5],[1361,5],[1520,5]]},"189":{"position":[[782,5],[958,6]]},"196":{"position":[[769,5],[923,6],[939,5],[963,6],[973,5]]},"207":{"position":[[764,5],[918,6],[934,5],[958,6],[968,5]]},"240":{"position":[[1266,5]]},"286":{"position":[[497,5],[651,6],[667,5],[691,6],[701,5]]},"294":{"position":[[741,5],[895,6],[911,5],[935,6],[945,5]]},"311":{"position":[[791,5],[945,6],[961,5],[985,6],[995,5]]},"317":{"position":[[753,6],[1248,5],[1402,6],[1418,5],[1442,6],[1452,5]]},"327":{"position":[[774,5],[928,6],[944,5],[968,6],[978,5]]},"333":{"position":[[602,5],[756,6],[772,5],[796,6],[806,5]]},"522":{"position":[[193,5]]}},"keywords":{}}],["cacheexpiri",{"_index":1397,"title":{},"content":{"189":{"position":[[792,11],[972,12]]},"317":{"position":[[820,11]]},"328":{"position":[[972,12]]},"330":{"position":[[1467,12]]},"522":{"position":[[719,12]]}},"keywords":{}}],["cachekey",{"_index":974,"title":{},"content":{"159":{"position":[[848,8],[911,8]]},"182":{"position":[[1078,8],[1141,8]]},"328":{"position":[[772,9],[1001,9]]},"330":{"position":[[1496,9]]},"375":{"position":[[529,8],[698,8]]},"522":{"position":[[699,9]]}},"keywords":{}}],["cachemiddlewar",{"_index":972,"title":{},"content":{"159":{"position":[[808,15],[1452,17]]},"182":{"position":[[1038,15],[1876,17]]}},"keywords":{}}],["cachemiddlewareaft",{"_index":980,"title":{},"content":{"159":{"position":[[1127,20],[1315,20]]},"182":{"position":[[1432,20],[1620,20]]},"375":{"position":[[715,20],[879,20]]}},"keywords":{}}],["cachemiddlewarebefor",{"_index":975,"title":{},"content":{"159":{"position":[[863,21],[1285,22]]},"182":{"position":[[1093,21],[1590,22]]},"375":{"position":[[475,21],[849,22]]}},"keywords":{}}],["calcul",{"_index":968,"title":{},"content":{"159":{"position":[[665,10],[1188,10]]},"182":{"position":[[895,10],[1493,10]]}},"keywords":{}}],["calculatecacheid",{"_index":970,"title":{},"content":{"159":{"position":[[722,16],[1470,17]]},"182":{"position":[[952,16],[1894,17]]},"375":{"position":[[203,17]]}},"keywords":{}}],["call",{"_index":895,"title":{},"content":{"153":{"position":[[206,6]]},"157":{"position":[[472,5]]},"163":{"position":[[581,6]]},"171":{"position":[[1438,5]]},"176":{"position":[[166,6],[541,6],[659,6]]},"182":{"position":[[374,4],[548,4]]},"189":{"position":[[1528,6]]},"199":{"position":[[583,5]]},"200":{"position":[[1006,4],[1091,4]]},"214":{"position":[[624,5]]},"297":{"position":[[575,5]]},"300":{"position":[[55,6]]},"320":{"position":[[592,5]]},"330":{"position":[[576,5]]},"388":{"position":[[114,6]]}},"keywords":{}}],["callback(err",{"_index":2183,"title":{},"content":{"373":{"position":[[12,13]]}},"keywords":{}}],["callbackwaitsforemptyeventloop",{"_index":1526,"title":{},"content":{"210":{"position":[[36,30]]},"280":{"position":[[139,30]]}},"keywords":{}}],["can't",{"_index":2277,"title":{},"content":{"429":{"position":[[46,5]]},"521":{"position":[[782,5]]}},"keywords":{}}],["cancel",{"_index":2365,"title":{},"content":{"520":{"position":[[584,6]]}},"keywords":{}}],["canon",{"_index":1609,"title":{},"content":{"236":{"position":[[1,9],[63,9],[368,9]]},"281":{"position":[[502,9]]},"361":{"position":[[94,9]]}},"keywords":{}}],["canonical:fals",{"_index":2238,"title":{},"content":{"390":{"position":[[56,15]]}},"keywords":{}}],["canprefetch",{"_index":2380,"title":{},"content":{"522":{"position":[[554,12]]}},"keywords":{}}],["canprefetch(opt",{"_index":2388,"title":{},"content":{"522":{"position":[[1118,22]]}},"keywords":{}}],["capabl",{"_index":967,"title":{},"content":{"159":{"position":[[590,10]]},"324":{"position":[[371,12]]}},"keywords":{}}],["captur",{"_index":1039,"title":{},"content":{"163":{"position":[[293,7],[513,7],[699,9]]},"164":{"position":[[16,9]]},"167":{"position":[[1235,8]]},"168":{"position":[[21,9]]},"170":{"position":[[294,7],[583,7]]},"171":{"position":[[866,8],[1123,8],[1418,7]]},"174":{"position":[[625,7]]}},"keywords":{}}],["captureawsv3cli",{"_index":794,"title":{},"content":{"122":{"position":[[107,20],[256,19]]},"196":{"position":[[460,18]]},"207":{"position":[[456,18]]},"294":{"position":[[439,18]]},"305":{"position":[[295,18]]},"311":{"position":[[488,18]]},"317":{"position":[[454,18]]},"327":{"position":[[419,18]]},"333":{"position":[[299,18]]},"346":{"position":[[510,18]]}},"keywords":{}}],["capturecoldstartmetr",{"_index":1295,"title":{},"content":{"181":{"position":[[881,23]]},"182":{"position":[[1837,23]]}},"keywords":{}}],["capturehttpsglob",{"_index":795,"title":{},"content":{"122":{"position":[[128,19],[290,19]]}},"keywords":{}}],["capturelambdahandl",{"_index":1182,"title":{},"content":{"171":{"position":[[51,20]]}},"keywords":{}}],["capturerespons",{"_index":1181,"title":{},"content":{"170":{"position":[[534,15]]}},"keywords":{}}],["care",{"_index":1053,"title":{},"content":{"163":{"position":[[691,4]]}},"keywords":{}}],["cart",{"_index":1115,"title":{},"content":{"167":{"position":[[561,4],[763,4]]}},"keywords":{}}],["case",{"_index":372,"title":{},"content":{"18":{"position":[[112,4]]},"21":{"position":[[2086,4],[2348,4]]},"157":{"position":[[947,4]]},"159":{"position":[[503,5]]},"167":{"position":[[1958,5]]},"182":{"position":[[147,5]]},"189":{"position":[[901,5]]},"226":{"position":[[326,4],[369,4],[491,4],[572,4],[637,4]]},"361":{"position":[[155,8]]},"518":{"position":[[134,6],[247,5]]},"519":{"position":[[244,4],[937,4]]}},"keywords":{}}],["case.error",{"_index":2082,"title":{},"content":{"357":{"position":[[476,11]]}},"keywords":{}}],["cases.timeoutearlyinmilli",{"_index":2219,"title":{},"content":{"378":{"position":[[696,27]]}},"keywords":{}}],["cast",{"_index":2009,"title":{},"content":{"324":{"position":[[1512,4]]},"456":{"position":[[59,7]]}},"keywords":{}}],["catch",{"_index":1278,"title":{},"content":{"179":{"position":[[685,5]]},"324":{"position":[[146,7]]},"444":{"position":[[10,5]]},"496":{"position":[[145,5]]}},"keywords":{}}],["caught",{"_index":2361,"title":{},"content":{"520":{"position":[[74,6]]}},"keywords":{}}],["caus",{"_index":1250,"title":{},"content":{"176":{"position":[[502,5]]},"189":{"position":[[1110,5],[1366,6],[1491,5]]},"365":{"position":[[1135,5]]},"377":{"position":[[115,5]]},"379":{"position":[[32,5]]},"416":{"position":[[167,6]]}},"keywords":{}}],["caution",{"_index":114,"title":{},"content":{"7":{"position":[[55,7]]},"140":{"position":[[14,7]]},"144":{"position":[[13,7]]},"145":{"position":[[5,7]]},"146":{"position":[[21,7]]},"147":{"position":[[17,7]]},"151":{"position":[[38,7]]},"188":{"position":[[10,7]]},"189":{"position":[[8,7]]}},"keywords":{}}],["cb",{"_index":2056,"title":{},"content":{"339":{"position":[[117,3]]}},"keywords":{}}],["central",{"_index":1841,"title":{},"content":{"287":{"position":[[326,7]]}},"keywords":{}}],["cert",{"_index":866,"title":{},"content":{"151":{"position":[[775,5],[833,5]]}},"keywords":{}}],["cert.subject.cn.endswith('.rds.amazonaws.com",{"_index":869,"title":{},"content":{"151":{"position":[[861,47]]}},"keywords":{}}],["certainli",{"_index":2369,"title":{},"content":{"521":{"position":[[788,9],[949,9]]}},"keywords":{}}],["certif",{"_index":855,"title":{},"content":{"151":{"position":[[442,11],[661,11]]},"261":{"position":[[74,11]]}},"keywords":{}}],["chain",{"_index":1282,"title":{},"content":{"181":{"position":[[70,8],[227,6]]}},"keywords":{}}],["champ",{"_index":1717,"title":{},"content":{"258":{"position":[[279,6]]}},"keywords":{}}],["chanc",{"_index":900,"title":{},"content":{"153":{"position":[[536,6]]}},"keywords":{}}],["chang",{"_index":467,"title":{"377":{"position":[[8,8]]},"416":{"position":[[8,8]]},"454":{"position":[[8,8]]}},"content":{"19":{"position":[[495,8]]},"185":{"position":[[741,6]]},"187":{"position":[[791,7]]},"253":{"position":[[270,6]]},"308":{"position":[[238,6]]},"361":{"position":[[200,7]]},"378":{"position":[[66,7],[114,6],[144,6],[1045,7]]},"379":{"position":[[274,7]]},"381":{"position":[[4,6]]},"382":{"position":[[4,6]]},"383":{"position":[[4,6]]},"389":{"position":[[97,7]]},"390":{"position":[[82,7]]},"391":{"position":[[4,6]]},"392":{"position":[[1,6],[63,7]]},"393":{"position":[[4,6]]},"396":{"position":[[140,7]]},"397":{"position":[[4,6]]},"398":{"position":[[4,6]]},"400":{"position":[[70,7]]},"402":{"position":[[4,6]]},"403":{"position":[[70,7]]},"406":{"position":[[204,7]]},"407":{"position":[[38,7]]},"408":{"position":[[4,6]]},"409":{"position":[[1,6]]},"410":{"position":[[4,6]]},"418":{"position":[[4,6]]},"420":{"position":[[55,6]]},"421":{"position":[[4,6]]},"422":{"position":[[4,6]]},"423":{"position":[[1,6],[136,6]]},"424":{"position":[[4,6]]},"425":{"position":[[94,6]]},"426":{"position":[[49,6]]},"427":{"position":[[4,6]]},"428":{"position":[[58,6]]},"429":{"position":[[75,6]]},"430":{"position":[[4,6]]},"431":{"position":[[1,6],[61,6]]},"432":{"position":[[1,6],[61,6]]},"433":{"position":[[4,6]]},"434":{"position":[[4,6]]},"435":{"position":[[4,6]]},"436":{"position":[[4,6]]},"437":{"position":[[1,6],[61,6]]},"438":{"position":[[4,6]]},"440":{"position":[[4,6]]},"441":{"position":[[122,6]]},"442":{"position":[[4,6]]},"443":{"position":[[4,6]]},"444":{"position":[[100,6]]},"445":{"position":[[4,6]]},"446":{"position":[[4,6]]},"448":{"position":[[4,6]]},"449":{"position":[[49,6]]},"450":{"position":[[4,6]]},"451":{"position":[[4,6]]},"456":{"position":[[112,6]]},"458":{"position":[[4,6]]},"459":{"position":[[4,6]]},"460":{"position":[[4,6]]},"461":{"position":[[4,6]]},"462":{"position":[[106,6]]},"463":{"position":[[4,6]]},"464":{"position":[[4,6]]},"465":{"position":[[4,6]]},"466":{"position":[[4,6]]},"467":{"position":[[4,6]]},"468":{"position":[[34,6]]},"470":{"position":[[4,6]]},"471":{"position":[[4,6]]},"472":{"position":[[4,6]]},"473":{"position":[[4,6]]},"474":{"position":[[51,6]]},"475":{"position":[[4,6]]},"476":{"position":[[4,6]]},"477":{"position":[[36,6]]},"478":{"position":[[36,6]]},"479":{"position":[[36,6]]},"480":{"position":[[36,6]]},"481":{"position":[[4,6]]},"482":{"position":[[36,6]]},"483":{"position":[[36,6]]},"485":{"position":[[4,6]]},"486":{"position":[[4,6]]},"487":{"position":[[36,6]]},"488":{"position":[[4,6]]},"492":{"position":[[4,6]]},"494":{"position":[[4,6]]},"497":{"position":[[4,6]]},"498":{"position":[[4,6]]},"499":{"position":[[4,6]]},"500":{"position":[[4,6]]},"501":{"position":[[4,6]]},"502":{"position":[[4,6]]},"505":{"position":[[4,6]]},"508":{"position":[[4,6]]},"511":{"position":[[4,6]]},"515":{"position":[[97,6]]}},"keywords":{}}],["change]add",{"_index":2257,"title":{},"content":{"409":{"position":[[93,10]]}},"keywords":{}}],["change]getcach",{"_index":2228,"title":{},"content":{"379":{"position":[[197,15]]}},"keywords":{}}],["change]onerror",{"_index":2241,"title":{},"content":{"394":{"position":[[83,14]]}},"keywords":{}}],["changead",{"_index":2300,"title":{},"content":{"484":{"position":[[312,11],[443,11]]}},"keywords":{}}],["changedeprec",{"_index":2296,"title":{},"content":{"484":{"position":[[199,16]]}},"keywords":{}}],["changemust",{"_index":2298,"title":{},"content":{"484":{"position":[[237,10]]}},"keywords":{}}],["charset",{"_index":1556,"title":{},"content":{"225":{"position":[[66,8],[154,8]]},"281":{"position":[[209,9]]},"392":{"position":[[16,7]]},"469":{"position":[[23,7]]}},"keywords":{}}],["charset.disablecontenttypeerror",{"_index":1686,"title":{},"content":{"253":{"position":[[285,31]]}},"keywords":{}}],["check",{"_index":382,"title":{},"content":{"18":{"position":[[281,5]]},"157":{"position":[[965,5]]},"200":{"position":[[1396,8]]},"338":{"position":[[191,5]]},"360":{"position":[[360,5]]},"361":{"position":[[520,5]]},"491":{"position":[[52,5]]},"517":{"position":[[14,5]]}},"keywords":{}}],["checkout",{"_index":812,"title":{},"content":{"139":{"position":[[108,8]]},"253":{"position":[[137,8]]}},"keywords":{}}],["checkserverident",{"_index":864,"title":{},"content":{"151":{"position":[[747,20]]}},"keywords":{}}],["child",{"_index":1857,"title":{},"content":{"291":{"position":[[636,5]]}},"keywords":{}}],["child.info(request.ev",{"_index":1859,"title":{},"content":{"291":{"position":[[674,24]]}},"keywords":{}}],["chosen",{"_index":1351,"title":{},"content":{"187":{"position":[[241,6]]}},"keywords":{}}],["chunk",{"_index":1428,"title":{},"content":{"193":{"position":[[330,5]]}},"keywords":{}}],["chunk?.payloadchunk?.payload",{"_index":1430,"title":{},"content":{"193":{"position":[[361,30]]}},"keywords":{}}],["ci/cd",{"_index":384,"title":{},"content":{"18":{"position":[[315,5]]},"189":{"position":[[1153,5]]}},"keywords":{}}],["ciao",{"_index":1576,"title":{},"content":{"226":{"position":[[350,5]]}},"keywords":{}}],["circuit",{"_index":2189,"title":{},"content":{"373":{"position":[[330,7]]},"378":{"position":[[400,7]]},"388":{"position":[[41,7]]}},"keywords":{}}],["citi",{"_index":1719,"title":{},"content":{"258":{"position":[[296,5]]}},"keywords":{}}],["cj",{"_index":87,"title":{},"content":{"6":{"position":[[408,4]]}},"keywords":{}}],["claim",{"_index":2370,"title":{},"content":{"521":{"position":[[798,5]]}},"keywords":{}}],["class",{"_index":1074,"title":{},"content":{"166":{"position":[[1,5]]},"170":{"position":[[1,5]]},"174":{"position":[[1,5]]},"178":{"position":[[85,5]]},"196":{"position":[[63,5],[251,5]]},"207":{"position":[[61,5],[247,5]]},"286":{"position":[[45,5],[209,5]]},"294":{"position":[[49,5],[230,5]]},"305":{"position":[[49,5],[214,5]]},"311":{"position":[[77,5],[279,5]]},"317":{"position":[[73,5],[263,5]]},"327":{"position":[[51,5],[219,5]]},"333":{"position":[[51,5],[218,5]]},"346":{"position":[[85,5],[301,5]]}},"keywords":{}}],["class.opt",{"_index":1091,"title":{},"content":{"166":{"position":[[571,12]]},"170":{"position":[[465,12]]},"174":{"position":[[388,12]]}},"keywords":{}}],["clean",{"_index":356,"title":{"182":{"position":[[0,8]]}},"content":{"17":{"position":[[982,6]]},"158":{"position":[[78,8]]},"159":{"position":[[465,6]]},"182":{"position":[[260,5],[752,5],[1243,5]]},"189":{"position":[[289,5]]},"520":{"position":[[191,5]]}},"keywords":{}}],["cleanupmiddlewar",{"_index":1306,"title":{},"content":{"182":{"position":[[813,18],[1294,20]]}},"keywords":{}}],["clear",{"_index":1096,"title":{},"content":{"166":{"position":[[777,5]]}},"keywords":{}}],["clearmetr",{"_index":1300,"title":{},"content":{"182":{"position":[[557,12]]}},"keywords":{}}],["cli",{"_index":117,"title":{},"content":{"8":{"position":[[18,3]]}},"keywords":{}}],["clickjackinghidepoweredbi",{"_index":1731,"title":{},"content":{"261":{"position":[[137,25]]}},"keywords":{}}],["client",{"_index":1169,"title":{},"content":{"168":{"position":[[150,7]]},"171":{"position":[[255,6]]},"261":{"position":[[299,7]]},"322":{"position":[[58,7]]},"420":{"position":[[39,6]]}},"keywords":{}}],["clientid",{"_index":780,"title":{},"content":{"107":{"position":[[356,9]]},"197":{"position":[[159,9]]},"199":{"position":[[1276,9]]}},"keywords":{}}],["close",{"_index":1289,"title":{},"content":{"181":{"position":[[518,7]]},"182":{"position":[[383,5],[428,5]]}},"keywords":{}}],["cloud",{"_index":714,"title":{"50":{"position":[[0,5]]}},"content":{},"keywords":{}}],["cloudform",{"_index":699,"title":{"38":{"position":[[0,14]]}},"content":{"39":{"position":[[27,14]]}},"keywords":{}}],["cloudfront",{"_index":720,"title":{"53":{"position":[[0,10]]}},"content":{"54":{"position":[[23,10]]}},"keywords":{}}],["cloudtrail",{"_index":713,"title":{"47":{"position":[[0,10]]}},"content":{"48":{"position":[[27,10]]}},"keywords":{}}],["cloudwatch",{"_index":716,"title":{"201":{"position":[[0,10]]},"381":{"position":[[0,10]]},"421":{"position":[[0,10]]},"458":{"position":[[0,10]]}},"content":{"51":{"position":[[19,10]]},"87":{"position":[[42,11]]},"163":{"position":[[383,11],[621,10],[745,10]]},"172":{"position":[[61,10],[256,10],[439,11]]},"175":{"position":[[466,10],[946,10],[979,10]]},"203":{"position":[[75,10]]},"280":{"position":[[1,10]]},"323":{"position":[[351,10]]}},"keywords":{}}],["cloudwatchmetr",{"_index":1508,"title":{},"content":{"204":{"position":[[44,17],[338,19]]}},"keywords":{}}],["cloudwatchmetricsmiddlewar",{"_index":744,"title":{},"content":{"105":{"position":[[40,27]]}},"keywords":{}}],["cmd",{"_index":2120,"title":{},"content":{"364":{"position":[[121,3]]},"369":{"position":[[162,4]]},"447":{"position":[[88,3],[183,4]]}},"keywords":{}}],["co/middi",{"_index":1992,"title":{},"content":{"324":{"position":[[691,8],[758,8]]}},"keywords":{}}],["code",{"_index":197,"title":{"56":{"position":[[0,4]]}},"content":{"15":{"position":[[86,4]]},"16":{"position":[[1,4]]},"17":{"position":[[394,4],[441,4],[475,4],[786,5],[964,4]]},"21":{"position":[[2750,4]]},"151":{"position":[[511,4]]},"152":{"position":[[233,4]]},"161":{"position":[[197,4]]},"167":{"position":[[404,4]]},"171":{"position":[[522,4]]},"175":{"position":[[447,4]]},"185":{"position":[[115,4],[263,4]]},"186":{"position":[[104,4]]},"189":{"position":[[840,5]]},"200":{"position":[[1366,4]]},"229":{"position":[[347,5]]},"322":{"position":[[839,5]]},"361":{"position":[[737,5]]},"517":{"position":[[24,4]]}},"keywords":{}}],["codecommit",{"_index":724,"title":{},"content":{"57":{"position":[[27,10]]}},"keywords":{}}],["codepipelin",{"_index":725,"title":{"62":{"position":[[0,12]]}},"content":{"63":{"position":[[27,12]]}},"keywords":{}}],["coerc",{"_index":2165,"title":{},"content":{"369":{"position":[[238,6],[333,6]]}},"keywords":{}}],["coercetyp",{"_index":2143,"title":{},"content":{"366":{"position":[[297,12]]}},"keywords":{}}],["cognito",{"_index":728,"title":{"71":{"position":[[0,7]]}},"content":{"72":{"position":[[30,7]]},"324":{"position":[[1356,7]]}},"keywords":{}}],["cognitomiddi",{"_index":2008,"title":{},"content":{"324":{"position":[[1469,12]]}},"keywords":{}}],["cold",{"_index":512,"title":{"370":{"position":[[17,4]]},"371":{"position":[[17,4]]}},"content":{"21":{"position":[[394,4],[2040,4]]},"163":{"position":[[337,4],[709,4]]},"164":{"position":[[62,4]]},"167":{"position":[[1413,4]]},"168":{"position":[[31,4]]},"171":{"position":[[879,4]]},"174":{"position":[[637,4]]},"196":{"position":[[632,4]]},"207":{"position":[[628,4]]},"286":{"position":[[359,4]]},"294":{"position":[[611,4]]},"305":{"position":[[381,4]]},"311":{"position":[[660,4]]},"317":{"position":[[1105,4]]},"327":{"position":[[643,4]]},"333":{"position":[[471,4]]},"346":{"position":[[596,4]]},"365":{"position":[[1175,4]]}},"keywords":{}}],["cold_start",{"_index":1146,"title":{},"content":{"167":{"position":[[1354,10]]}},"keywords":{}}],["collect",{"_index":1033,"title":{},"content":{"163":{"position":[[17,10]]},"322":{"position":[[27,10]]},"324":{"position":[[904,10]]}},"keywords":{}}],["combin",{"_index":1806,"title":{},"content":{"281":{"position":[[676,11]]}},"keywords":{}}],["come",{"_index":1005,"title":{},"content":{"161":{"position":[[405,6]]},"521":{"position":[[857,4]]}},"keywords":{}}],["comment",{"_index":842,"title":{},"content":{"146":{"position":[[156,7]]}},"keywords":{}}],["comments=extern",{"_index":61,"title":{},"content":{"5":{"position":[[308,17]]}},"keywords":{}}],["commit",{"_index":723,"title":{"56":{"position":[[5,6]]}},"content":{"161":{"position":[[712,6]]}},"keywords":{}}],["commit2017",{"_index":993,"title":{},"content":{"161":{"position":[[276,10]]}},"keywords":{}}],["common",{"_index":178,"title":{},"content":{"13":{"position":[[41,6]]},"15":{"position":[[381,6]]},"16":{"position":[[527,6],[2023,6]]},"17":{"position":[[234,6],[700,6]]},"18":{"position":[[1421,6]]},"172":{"position":[[115,6]]},"416":{"position":[[25,6]]}},"keywords":{}}],["commonj",{"_index":69,"title":{},"content":{"6":{"position":[[60,8],[190,8],[220,9],[286,11]]},"16":{"position":[[248,8]]}},"keywords":{}}],["commun",{"_index":2118,"title":{},"content":{"362":{"position":[[180,10]]}},"keywords":{}}],["compat",{"_index":1035,"title":{},"content":{"163":{"position":[[208,10],[360,10]]},"164":{"position":[[437,10]]},"167":{"position":[[2519,10]]},"367":{"position":[[52,10]]},"401":{"position":[[48,10]]},"405":{"position":[[48,10]]}},"keywords":{}}],["compil",{"_index":21,"title":{"2":{"position":[[0,10]]}},"content":{"21":{"position":[[2141,8],[2336,8]]},"365":{"position":[[49,8],[200,8],[460,8]]},"484":{"position":[[419,7]]}},"keywords":{}}],["complet",{"_index":1191,"title":{},"content":{"171":{"position":[[1071,9]]},"200":{"position":[[1414,10]]},"406":{"position":[[1,8]]}},"keywords":{}}],["complex",{"_index":369,"title":{},"content":{"18":{"position":[[71,7]]},"324":{"position":[[332,7]]}},"keywords":{}}],["compli",{"_index":587,"title":{},"content":{"21":{"position":[[2297,8]]}},"keywords":{}}],["compliment",{"_index":2376,"title":{},"content":{"522":{"position":[[161,10]]}},"keywords":{}}],["comprehens",{"_index":1980,"title":{},"content":{"324":{"position":[[208,14]]}},"keywords":{}}],["compress",{"_index":1661,"title":{},"content":{"248":{"position":[[339,12],[500,11],[578,11]]},"282":{"position":[[74,10]]},"385":{"position":[[42,11]]}},"keywords":{}}],["concept",{"_index":203,"title":{},"content":{"15":{"position":[[193,8]]}},"keywords":{}}],["concern",{"_index":329,"title":{},"content":{"17":{"position":[[251,8],[717,8]]}},"keywords":{}}],["concurrencyon",{"_index":2338,"title":{},"content":{"516":{"position":[[116,13]]}},"keywords":{}}],["condition",{"_index":1398,"title":{},"content":{"189":{"position":[[865,13]]}},"keywords":{}}],["conduct",{"_index":886,"title":{},"content":{"152":{"position":[[241,8]]}},"keywords":{}}],["config",{"_index":71,"title":{"59":{"position":[[0,6]]},"107":{"position":[[10,8]]}},"content":{"6":{"position":[[96,6]]},"19":{"position":[[325,6]]},"60":{"position":[[27,6]]},"197":{"position":[[129,7]]},"199":{"position":[[645,6],[1246,7]]},"212":{"position":[[298,7]]},"214":{"position":[[685,6],[1295,7]]},"295":{"position":[[308,7]]},"297":{"position":[[630,6],[1238,7]]}},"keywords":{}}],["configur",{"_index":352,"title":{"270":{"position":[[0,14]]},"490":{"position":[[0,12]]}},"content":{"17":{"position":[[901,13]]},"107":{"position":[[373,14]]},"136":{"position":[[1,11]]},"167":{"position":[[2150,9]]},"178":{"position":[[172,13]]},"197":{"position":[[176,14]]},"199":{"position":[[1293,14]]},"203":{"position":[[408,13]]},"214":{"position":[[538,13]]},"270":{"position":[[19,10]]},"272":{"position":[[382,13]]},"283":{"position":[[23,14],[69,14],[176,14]]},"297":{"position":[[495,13]]},"320":{"position":[[514,13]]},"322":{"position":[[331,10]]},"490":{"position":[[0,12],[54,13],[125,13]]}},"keywords":{}}],["conflict",{"_index":2335,"title":{},"content":{"515":{"position":[[315,9]]}},"keywords":{}}],["connect",{"_index":0,"title":{"0":{"position":[[0,10]]},"77":{"position":[[0,7]]}},"content":{"0":{"position":[[0,10],[72,10],[173,10],[235,11]]},"37":{"position":[[435,11]]},"78":{"position":[[26,7]]},"139":{"position":[[76,7]]},"151":{"position":[[477,11],[1004,12]]},"283":{"position":[[128,10],[385,10],[533,10]]},"322":{"position":[[1226,10]]},"324":{"position":[[20,10],[1200,10]]},"353":{"position":[[131,9],[454,9]]},"354":{"position":[[306,11],[492,11]]},"357":{"position":[[686,9]]},"507":{"position":[[50,10]]}},"keywords":{}}],["connecthandl",{"_index":687,"title":{},"content":{"37":{"position":[[222,14],[456,14]]},"354":{"position":[[191,14],[513,14]]}},"keywords":{}}],["connectid",{"_index":2066,"title":{},"content":{"346":{"position":[[908,10]]}},"keywords":{}}],["connectionid",{"_index":2070,"title":{},"content":{"349":{"position":[[133,13]]}},"keywords":{}}],["connectionopt",{"_index":861,"title":{},"content":{"151":{"position":[[683,17]]}},"keywords":{}}],["connector",{"_index":2002,"title":{},"content":{"324":{"position":[[1181,10]]}},"keywords":{}}],["consid",{"_index":819,"title":{},"content":{"140":{"position":[[111,8]]},"144":{"position":[[110,8]]},"145":{"position":[[102,8]]},"146":{"position":[[118,8]]},"147":{"position":[[114,8]]},"151":{"position":[[135,8],[305,10]]},"176":{"position":[[339,10]]},"188":{"position":[[107,8]]},"189":{"position":[[105,8]]},"253":{"position":[[934,8]]},"361":{"position":[[433,10]]}},"keywords":{}}],["consist",{"_index":2106,"title":{},"content":{"361":{"position":[[304,10]]},"416":{"position":[[133,10]]}},"keywords":{}}],["consol",{"_index":1937,"title":{},"content":{"322":{"position":[[180,7],[239,7],[284,7]]}},"keywords":{}}],["console.error",{"_index":1589,"title":{},"content":{"229":{"position":[[21,14]]},"300":{"position":[[108,13]]}},"keywords":{}}],["console.error(request.error",{"_index":1543,"title":{},"content":{"217":{"position":[[54,29]]}},"keywords":{}}],["console.log",{"_index":496,"title":{},"content":{"21":{"position":[[29,12]]},"22":{"position":[[73,11]]},"290":{"position":[[26,13]]}},"keywords":{}}],["console.log('exit",{"_index":2342,"title":{},"content":{"516":{"position":[[335,20]]}},"keywords":{}}],["console.log(`hello",{"_index":1605,"title":{},"content":{"233":{"position":[[142,18]]}},"keywords":{}}],["console.log(context.apitoken",{"_index":1493,"title":{},"content":{"200":{"position":[[821,29]]}},"keywords":{}}],["console.log(context.config",{"_index":1865,"title":{},"content":{"295":{"position":[[107,27]]},"297":{"position":[[1060,27]]},"320":{"position":[[1102,27]]}},"keywords":{}}],["console@keboola/middi",{"_index":1981,"title":{},"content":{"324":{"position":[[230,21]]}},"keywords":{}}],["const",{"_index":75,"title":{},"content":{"6":{"position":[[230,5]]},"8":{"position":[[149,5],[199,5]]},"16":{"position":[[206,7],[619,5],[761,5],[885,5],[1182,5],[1786,5]]},"19":{"position":[[252,5],[319,5],[566,5]]},"21":{"position":[[2,5],[58,5],[97,5],[150,5],[167,5],[232,5],[405,5],[452,5],[569,5],[600,5],[629,5],[677,5],[723,5],[890,5]]},"22":{"position":[[46,5],[87,5],[128,5],[172,5],[189,5],[254,5],[310,5],[357,5],[429,5],[460,5],[489,5],[537,5],[583,5],[750,5]]},"26":{"position":[[40,5]]},"28":{"position":[[40,5]]},"31":{"position":[[1361,5]]},"34":{"position":[[40,5]]},"37":{"position":[[406,5],[589,5]]},"40":{"position":[[40,5]]},"43":{"position":[[1361,5]]},"46":{"position":[[1344,5],[1486,5]]},"49":{"position":[[40,5]]},"52":{"position":[[104,5]]},"55":{"position":[[40,5]]},"58":{"position":[[40,5]]},"61":{"position":[[104,5]]},"64":{"position":[[104,5]]},"67":{"position":[[104,5]]},"70":{"position":[[40,5]]},"73":{"position":[[40,5]]},"76":{"position":[[40,5]]},"79":{"position":[[40,5]]},"82":{"position":[[40,5]]},"85":{"position":[[40,5]]},"88":{"position":[[40,5]]},"91":{"position":[[104,5]]},"94":{"position":[[104,5]]},"97":{"position":[[1361,5]]},"100":{"position":[[104,5]]},"103":{"position":[[104,5]]},"105":{"position":[[452,5]]},"106":{"position":[[274,5]]},"107":{"position":[[258,5]]},"110":{"position":[[104,5]]},"113":{"position":[[104,5]]},"116":{"position":[[104,5]]},"119":{"position":[[40,5]]},"122":{"position":[[180,5]]},"125":{"position":[[104,5]]},"128":{"position":[[40,5]]},"131":{"position":[[104,5]]},"134":{"position":[[40,5]]},"137":{"position":[[40,5]]},"140":{"position":[[397,5],[601,5]]},"143":{"position":[[174,5]]},"150":{"position":[[1373,5]]},"151":{"position":[[638,5],[789,5]]},"157":{"position":[[168,5],[250,5],[646,5],[728,5]]},"159":{"position":[[716,5],[769,5],[802,5],[857,5],[1121,5],[1356,5],[1422,5]]},"167":{"position":[[111,5],[176,5],[320,5]]},"171":{"position":[[184,5],[249,5],[323,5],[437,5]]},"175":{"position":[[117,5],[205,5],[371,5]]},"179":{"position":[[251,5],[346,5],[494,5],[555,5]]},"181":{"position":[[719,5]]},"182":{"position":[[946,5],[999,5],[1032,5],[1087,5],[1426,5],[1661,5]]},"191":{"position":[[89,5],[261,5]]},"192":{"position":[[89,5],[193,5]]},"193":{"position":[[88,5],[122,5],[258,5],[323,6]]},"197":{"position":[[74,5],[260,5]]},"199":{"position":[[1044,5],[1191,5],[1375,5]]},"200":{"position":[[423,5]]},"204":{"position":[[1,5],[38,5],[101,5],[308,5]]},"211":{"position":[[114,5],[180,5]]},"212":{"position":[[72,5],[119,5],[244,5]]},"214":{"position":[[1092,5],[1139,5],[1452,5]]},"218":{"position":[[79,5],[157,5]]},"222":{"position":[[87,5],[134,5],[164,6],[210,5]]},"226":{"position":[[224,5],[771,5]]},"230":{"position":[[90,5],[190,5]]},"233":{"position":[[96,5],[276,5]]},"237":{"position":[[98,5],[164,5]]},"240":{"position":[[1462,5],[1562,5]]},"241":{"position":[[69,5],[135,5]]},"245":{"position":[[160,5],[226,5],[353,5]]},"249":{"position":[[210,5]]},"250":{"position":[[259,5],[379,5]]},"254":{"position":[[170,5],[236,5],[368,5]]},"258":{"position":[[96,5],[143,5],[341,5],[415,5]]},"262":{"position":[[96,5],[162,5]]},"266":{"position":[[170,5],[279,5],[443,5]]},"273":{"position":[[102,5],[149,5],[218,5],[610,5]]},"277":{"position":[[105,5],[302,5]]},"287":{"position":[[75,5],[122,5],[247,5]]},"291":{"position":[[92,5],[139,5],[264,5],[453,5],[475,5],[554,5],[630,5]]},"295":{"position":[[60,5],[135,5],[260,5]]},"297":{"position":[[1013,5],[1088,5],[1398,5]]},"301":{"position":[[89,5],[136,5],[313,5]]},"307":{"position":[[114,5],[161,5],[233,5],[344,5]]},"308":{"position":[[114,5],[297,5]]},"312":{"position":[[89,5],[136,5],[261,5]]},"318":{"position":[[85,5],[151,5]]},"320":{"position":[[1055,5],[1130,5],[1255,5],[1454,5]]},"328":{"position":[[62,5],[152,5],[604,5],[694,5],[1097,5]]},"330":{"position":[[1062,5],[1152,5],[1592,5]]},"334":{"position":[[62,5],[109,5],[234,5]]},"339":{"position":[[1,5],[38,5],[78,5],[141,5],[209,5]]},"343":{"position":[[155,5],[228,5]]},"348":{"position":[[84,5]]},"349":{"position":[[77,5],[181,5]]},"354":{"position":[[185,5],[321,5],[463,5],[596,5]]},"358":{"position":[[135,5],[290,5],[446,5],[588,5]]},"368":{"position":[[166,5],[225,5],[431,5],[597,5],[931,5],[990,5],[1164,5],[1700,5],[1759,5],[2051,5]]},"369":{"position":[[782,5],[848,5]]},"370":{"position":[[242,5],[301,5],[356,5],[418,5]]},"371":{"position":[[311,5],[377,5]]},"375":{"position":[[92,5],[165,5],[184,5],[408,5],[469,5],[523,5],[586,5],[709,5]]},"414":{"position":[[126,5]]},"484":{"position":[[738,5],[1007,5]]},"490":{"position":[[270,5],[290,5],[330,5],[371,5],[426,5],[470,5],[524,5],[590,5],[1045,5],[1129,5]]},"518":{"position":[[447,5],[515,5]]},"519":{"position":[[333,5],[361,5],[404,5],[445,5],[507,5],[568,5]]},"520":{"position":[[494,5],[616,5]]},"521":{"position":[[228,5],[330,5],[507,5]]},"522":{"position":[[614,5],[758,5],[803,5],[844,5],[869,5],[918,6],[1174,5],[1229,5],[1352,5]]}},"keywords":{}}],["constant",{"_index":1667,"title":{},"content":{"249":{"position":[[174,9]]},"250":{"position":[[174,9]]}},"keywords":{}}],["constants.brotli_mode_text",{"_index":1673,"title":{},"content":{"249":{"position":[[339,27]]},"250":{"position":[[535,27]]}},"keywords":{}}],["constants.brotli_param_mod",{"_index":1672,"title":{},"content":{"249":{"position":[[308,30]]},"250":{"position":[[504,30]]}},"keywords":{}}],["constants.brotli_param_qu",{"_index":1677,"title":{},"content":{"249":{"position":[[394,33]]},"250":{"position":[[590,33]]}},"keywords":{}}],["constructor",{"_index":579,"title":{},"content":{"21":{"position":[[2125,11]]},"166":{"position":[[7,11]]},"170":{"position":[[7,11]]},"174":{"position":[[7,11]]},"196":{"position":[[69,11]]},"207":{"position":[[67,11]]},"286":{"position":[[51,11]]},"294":{"position":[[55,11]]},"305":{"position":[[55,11]]},"311":{"position":[[83,11]]},"317":{"position":[[79,11]]},"327":{"position":[[57,11]]},"333":{"position":[[57,11]]},"346":{"position":[[91,11]]},"366":{"position":[[255,12]]}},"keywords":{}}],["constructor.awsclientassumerol",{"_index":1439,"title":{},"content":{"196":{"position":[[257,31]]},"207":{"position":[[253,31]]},"294":{"position":[[236,31]]},"311":{"position":[[285,31]]},"317":{"position":[[269,31]]},"327":{"position":[[225,31]]},"346":{"position":[[307,31]]}},"keywords":{}}],["constructor.awsclientcaptur",{"_index":1880,"title":{},"content":{"305":{"position":[[220,28]]},"333":{"position":[[224,28]]}},"keywords":{}}],["constructor.fetchdata",{"_index":1835,"title":{},"content":{"286":{"position":[[215,21]]}},"keywords":{}}],["consum",{"_index":1955,"title":{},"content":{"322":{"position":[[1171,7]]}},"keywords":{}}],["contain",{"_index":1149,"title":{},"content":{"167":{"position":[[1462,8]]},"346":{"position":[[900,7]]},"519":{"position":[[57,7]]},"522":{"position":[[34,8]]}},"keywords":{}}],["content",{"_index":142,"title":{"223":{"position":[[5,7]]},"246":{"position":[[5,7]]},"272":{"position":[[0,7]]},"385":{"position":[[5,7]]},"386":{"position":[[5,7]]},"425":{"position":[[5,7]]},"426":{"position":[[5,7]]},"462":{"position":[[5,7]]},"463":{"position":[[5,7]]},"494":{"position":[[5,7]]}},"content":{"8":{"position":[[524,7],[590,7],[630,7]]},"31":{"position":[[216,7],[292,7]]},"43":{"position":[[216,7],[292,7]]},"46":{"position":[[267,7],[343,7]]},"97":{"position":[[216,7],[292,7]]},"150":{"position":[[216,7],[292,7]]},"163":{"position":[[896,8]]},"191":{"position":[[173,8]]},"224":{"position":[[89,7]]},"226":{"position":[[81,7]]},"236":{"position":[[231,7]]},"244":{"position":[[177,7]]},"245":{"position":[[380,8],[466,7]]},"247":{"position":[[89,7]]},"249":{"position":[[81,7],[147,7]]},"250":{"position":[[81,7],[147,7]]},"253":{"position":[[362,7]]},"254":{"position":[[395,8]]},"265":{"position":[[70,7]]},"266":{"position":[[470,8]]},"271":{"position":[[42,7]]},"272":{"position":[[89,7]]},"281":{"position":[[117,7],[189,7],[775,7]]},"282":{"position":[[6,7],[34,7]]},"360":{"position":[[636,7]]},"367":{"position":[[195,8]]},"425":{"position":[[63,7]]},"447":{"position":[[63,7]]}},"keywords":{}}],["contenttyp",{"_index":1863,"title":{},"content":{"294":{"position":[[1135,12]]}},"keywords":{}}],["context",{"_index":257,"title":{"19":{"position":[[9,7]]}},"content":{"16":{"position":[[655,8]]},"17":{"position":[[522,9]]},"19":{"position":[[9,7],[288,8],[979,7],[1111,7],[1327,7]]},"26":{"position":[[81,8]]},"28":{"position":[[80,8]]},"31":{"position":[[2309,8]]},"34":{"position":[[80,8]]},"40":{"position":[[81,8]]},"43":{"position":[[2320,8]]},"49":{"position":[[81,8]]},"52":{"position":[[179,8]]},"55":{"position":[[151,8]]},"58":{"position":[[81,8]]},"61":{"position":[[179,8]]},"64":{"position":[[179,8]]},"67":{"position":[[179,8]]},"70":{"position":[[81,8]]},"73":{"position":[[81,8]]},"76":{"position":[[80,8]]},"79":{"position":[[81,8]]},"82":{"position":[[81,8]]},"85":{"position":[[81,8]]},"88":{"position":[[80,8]]},"91":{"position":[[179,8]]},"94":{"position":[[179,8]]},"97":{"position":[[2334,8]]},"100":{"position":[[179,8]]},"103":{"position":[[179,8]]},"105":{"position":[[685,8]]},"106":{"position":[[824,8]]},"107":{"position":[[785,8]]},"110":{"position":[[209,8]]},"113":{"position":[[179,8]]},"116":{"position":[[179,8]]},"119":{"position":[[81,8]]},"122":{"position":[[351,8]]},"125":{"position":[[218,8]]},"128":{"position":[[81,8]]},"131":{"position":[[179,8]]},"134":{"position":[[81,8]]},"137":{"position":[[81,8]]},"143":{"position":[[280,8]]},"150":{"position":[[2321,8]]},"157":{"position":[[198,8],[676,8]]},"159":{"position":[[1386,8]]},"163":{"position":[[328,8]]},"164":{"position":[[53,8]]},"167":{"position":[[274,9],[1311,7]]},"182":{"position":[[1691,8]]},"186":{"position":[[145,7]]},"191":{"position":[[119,8]]},"192":{"position":[[119,8]]},"197":{"position":[[243,8]]},"199":{"position":[[848,7],[1074,8]]},"200":{"position":[[651,8],[675,7],[1283,7]]},"204":{"position":[[131,8]]},"211":{"position":[[144,8]]},"212":{"position":[[102,8]]},"214":{"position":[[900,7],[1122,8]]},"218":{"position":[[109,8]]},"222":{"position":[[117,8]]},"226":{"position":[[254,8]]},"230":{"position":[[120,8]]},"233":{"position":[[125,8]]},"237":{"position":[[128,8]]},"240":{"position":[[1492,8]]},"241":{"position":[[99,8]]},"245":{"position":[[190,8]]},"249":{"position":[[508,8]]},"250":{"position":[[289,8]]},"254":{"position":[[200,8]]},"258":{"position":[[126,8]]},"262":{"position":[[126,8]]},"266":{"position":[[200,8]]},"273":{"position":[[132,8]]},"277":{"position":[[135,8]]},"287":{"position":[[105,8]]},"290":{"position":[[134,7]]},"291":{"position":[[122,8],[505,8]]},"295":{"position":[[90,8]]},"297":{"position":[[845,7],[1043,8]]},"301":{"position":[[119,8]]},"307":{"position":[[144,8]]},"308":{"position":[[150,8]]},"312":{"position":[[119,8]]},"318":{"position":[[115,8],[433,8]]},"320":{"position":[[860,7],[1085,8]]},"322":{"position":[[749,7],[805,7]]},"328":{"position":[[92,8],[634,8]]},"330":{"position":[[844,7],[1092,8]]},"334":{"position":[[92,8]]},"339":{"position":[[108,8]]},"348":{"position":[[114,8]]},"349":{"position":[[107,8]]},"353":{"position":[[212,8]]},"354":{"position":[[282,8],[421,8]]},"357":{"position":[[347,8]]},"358":{"position":[[228,8],[384,8]]},"368":{"position":[[196,8],[961,8],[1730,8]]},"369":{"position":[[812,8]]},"370":{"position":[[272,8]]},"371":{"position":[[341,8]]},"377":{"position":[[134,7]]},"425":{"position":[[28,7]]},"426":{"position":[[32,7]]},"441":{"position":[[37,7]]},"447":{"position":[[28,7]]},"490":{"position":[[441,7],[1081,8]]},"518":{"position":[[477,8]]},"519":{"position":[[809,7]]},"520":{"position":[[353,7],[524,8]]}},"keywords":{}}],["context"",{"_index":1133,"title":{},"content":{"167":{"position":[[895,14]]}},"keywords":{}}],["context.config",{"_index":784,"title":{},"content":{"107":{"position":[[817,15]]}},"keywords":{}}],["context.getremainingtimeinmilli",{"_index":1394,"title":{},"content":{"189":{"position":[[676,32]]}},"keywords":{}}],["context.metr",{"_index":1792,"title":{},"content":{"280":{"position":[[39,15]]}},"keywords":{}}],["context.metrics.putmetric('processinglat",{"_index":1510,"title":{},"content":{"204":{"position":[[148,46]]}},"keywords":{}}],["context.metrics.setproperti",{"_index":1512,"title":{},"content":{"204":{"position":[[216,28]]}},"keywords":{}}],["context.preferredlanguag",{"_index":1575,"title":{},"content":{"226":{"position":[[296,27]]}},"keywords":{}}],["context.preferredmediatyp",{"_index":1582,"title":{},"content":{"226":{"position":[[460,28]]}},"keywords":{}}],["context.requiredcontenttyp",{"_index":1768,"title":{},"content":{"272":{"position":[[141,27]]}},"keywords":{}}],["context.s3objectfetch.then((r",{"_index":1897,"title":{},"content":{"308":{"position":[[184,32]]}},"keywords":{}}],["context.s3objectfetch.then(r",{"_index":1892,"title":{},"content":{"307":{"position":[[186,30]]}},"keywords":{}}],["context.secret",{"_index":772,"title":{},"content":{"106":{"position":[[856,15]]}},"keywords":{}}],["contextmetr",{"_index":1970,"title":{},"content":{"323":{"position":[[293,15]]}},"keywords":{}}],["contextschema",{"_index":2258,"title":{},"content":{"409":{"position":[[129,14]]}},"keywords":{}}],["contribut",{"_index":820,"title":{"152":{"position":[[0,12]]}},"content":{"140":{"position":[[120,12]]},"144":{"position":[[119,12]]},"145":{"position":[[111,12]]},"146":{"position":[[127,12]]},"147":{"position":[[123,12]]},"151":{"position":[[144,12]]},"152":{"position":[[0,12],[80,10],[172,12]]},"188":{"position":[[116,12]]},"189":{"position":[[114,12]]},"521":{"position":[[1023,13]]}},"keywords":{}}],["control",{"_index":888,"title":{},"content":{"153":{"position":[[94,7]]},"240":{"position":[[53,7],[323,7],[413,7],[526,7],[890,7],[980,7],[1077,7],[1176,7],[1272,7],[1751,7]]},"241":{"position":[[297,7]]},"261":{"position":[[20,8]]},"441":{"position":[[85,7]]},"512":{"position":[[66,8]]},"518":{"position":[[340,7]]}},"keywords":{}}],["convent",{"_index":2315,"title":{},"content":{"490":{"position":[[878,10]]}},"keywords":{}}],["convert",{"_index":308,"title":{},"content":{"16":{"position":[[1881,8]]},"221":{"position":[[93,10]]},"281":{"position":[[595,8],[812,8],[1235,8]]},"324":{"position":[[446,7],[1055,8]]}},"keywords":{}}],["cor",{"_index":633,"title":{"238":{"position":[[5,4]]},"387":{"position":[[5,5]]},"427":{"position":[[5,5]]},"464":{"position":[[5,5]]},"495":{"position":[[5,5]]}},"content":{"31":{"position":[[354,5]]},"43":{"position":[[354,5]]},"46":{"position":[[405,5]]},"97":{"position":[[354,5]]},"150":{"position":[[354,5]]},"239":{"position":[[89,4]]},"240":{"position":[[179,4],[1433,4],[1456,5]]},"241":{"position":[[40,4],[63,5]]},"282":{"position":[[103,5],[119,4]]}},"keywords":{}}],["core",{"_index":238,"title":{"373":{"position":[[0,5]]},"378":{"position":[[0,5]]},"417":{"position":[[0,5]]},"455":{"position":[[0,5]]}},"content":{"16":{"position":[[152,4]]},"19":{"position":[[57,5]]},"21":{"position":[[2720,5]]},"122":{"position":[[167,5]]},"158":{"position":[[37,4]]},"360":{"position":[[111,4],[425,4]]},"361":{"position":[[333,4],[626,4]]},"521":{"position":[[735,4]]}},"keywords":{}}],["correct",{"_index":575,"title":{},"content":{"21":{"position":[[1989,8]]}},"keywords":{}}],["correctli",{"_index":273,"title":{},"content":{"16":{"position":[[951,10]]}},"keywords":{}}],["correl",{"_index":1151,"title":{},"content":{"167":{"position":[[1586,9]]}},"keywords":{}}],["correspond",{"_index":870,"title":{},"content":{"151":{"position":[[934,13]]}},"keywords":{}}],["corsdonotwaitforemptyeventloop",{"_index":2091,"title":{},"content":{"360":{"position":[[519,30]]}},"keywords":{}}],["couldn't",{"_index":359,"title":{},"content":{"17":{"position":[[1031,8]]}},"keywords":{}}],["cover",{"_index":752,"title":{"106":{"position":[[26,7]]},"107":{"position":[[31,7]]}},"content":{},"keywords":{}}],["cpu",{"_index":1953,"title":{},"content":{"322":{"position":[[1104,3],[1195,3]]}},"keywords":{}}],["creat",{"_index":363,"title":{},"content":{"17":{"position":[[1103,6]]},"153":{"position":[[317,6],[431,7]]},"163":{"position":[[607,6]]},"171":{"position":[[559,6],[1303,6]]},"172":{"position":[[226,7]]},"175":{"position":[[1280,6]]},"179":{"position":[[411,6],[724,8]]},"181":{"position":[[328,6]]},"185":{"position":[[140,7]]},"282":{"position":[[163,7],[214,7]]},"322":{"position":[[1214,7]]},"323":{"position":[[112,8],[324,7]]},"324":{"position":[[1290,7]]},"518":{"position":[[41,6]]}},"keywords":{}}],["createerror.unprocessableent",{"_index":1596,"title":{},"content":{"230":{"position":[[147,33]]},"240":{"position":[[1519,33]]}},"keywords":{}}],["createhash",{"_index":2192,"title":{},"content":{"375":{"position":[[100,10]]}},"keywords":{}}],["createhash('md5').update(json.stringify(event)).digest('hex",{"_index":2195,"title":{},"content":{"375":{"position":[[241,62]]}},"keywords":{}}],["createreadablestream",{"_index":1415,"title":{},"content":{"191":{"position":[[42,20],[209,27]]},"192":{"position":[[42,20],[143,27]]},"250":{"position":[[212,20],[338,29]]}},"keywords":{}}],["createrequir",{"_index":56,"title":{},"content":{"5":{"position":[[214,13]]}},"keywords":{}}],["createrequire(import.meta.url);"",{"_index":59,"title":{},"content":{"5":{"position":[[260,37]]}},"keywords":{}}],["createsubscriptionpay",{"_index":1271,"title":{},"content":{"179":{"position":[[352,25]]}},"keywords":{}}],["createsubscriptionpayment(ev",{"_index":1275,"title":{},"content":{"179":{"position":[[577,33]]}},"keywords":{}}],["creation",{"_index":1390,"title":{},"content":{"189":{"position":[[521,8],[732,8]]},"253":{"position":[[122,8]]}},"keywords":{}}],["credenti",{"_index":1452,"title":{},"content":{"196":{"position":[[1034,11]]},"207":{"position":[[1029,11]]},"240":{"position":[[1,11],[67,11]]},"283":{"position":[[496,11]]},"294":{"position":[[1006,11]]},"311":{"position":[[1056,11]]},"333":{"position":[[867,11]]},"507":{"position":[[29,10]]},"514":{"position":[[37,12]]}},"keywords":{}}],["creditcardnumb",{"_index":261,"title":{},"content":{"16":{"position":[[769,17],[1267,17],[1616,20]]}},"keywords":{}}],["critical.servicenam",{"_index":1082,"title":{},"content":{"166":{"position":[[218,20]]}},"keywords":{}}],["culprit",{"_index":578,"title":{},"content":{"21":{"position":[[2108,8]]}},"keywords":{}}],["current",{"_index":969,"title":{},"content":{"159":{"position":[[702,7]]},"163":{"position":[[144,10]]},"182":{"position":[[438,7],[932,7]]},"229":{"position":[[82,7]]},"322":{"position":[[709,7]]},"338":{"position":[[94,7]]},"373":{"position":[[377,9]]},"519":{"position":[[801,7],[864,7]]}},"keywords":{}}],["currentcachekey",{"_index":2199,"title":{},"content":{"375":{"position":[[453,15]]}},"keywords":{}}],["custom",{"_index":1051,"title":{"519":{"position":[[0,6]]}},"content":{"163":{"position":[[632,6]]},"164":{"position":[[359,6]]},"167":{"position":[[2075,8],[2364,6]]},"171":{"position":[[568,6],[812,6],[1253,6]]},"172":{"position":[[296,6]]},"175":{"position":[[1019,6]]},"178":{"position":[[196,9]]},"200":{"position":[[1456,6]]},"240":{"position":[[246,6]]},"281":{"position":[[1137,6]]},"301":{"position":[[210,6]]},"323":{"position":[[121,6],[309,6]]},"369":{"position":[[115,9]]},"378":{"position":[[825,6]]},"484":{"position":[[487,6]]},"515":{"position":[[357,6]]},"519":{"position":[[0,6]]},"521":{"position":[[57,6]]},"522":{"position":[[709,9],[901,6],[1086,6]]}},"keywords":{}}],["customer_id",{"_index":1158,"title":{},"content":{"167":{"position":[[2043,11]]}},"keywords":{}}],["custommiddlewar",{"_index":2310,"title":{},"content":{"490":{"position":[[296,16],[851,16],[1001,16],[1159,18]]},"522":{"position":[[764,16],[1524,16]]}},"keywords":{}}],["custommiddleware.j",{"_index":2309,"title":{},"content":{"490":{"position":[[250,19],[1023,21]]}},"keywords":{}}],["custommiddlewareaft",{"_index":2312,"title":{},"content":{"490":{"position":[[476,21],[776,22]]}},"keywords":{}}],["custommiddlewareafter(request",{"_index":2314,"title":{},"content":{"490":{"position":[[695,30]]}},"keywords":{}}],["custommiddlewarebefor",{"_index":2311,"title":{},"content":{"490":{"position":[[377,22],[745,23]]},"522":{"position":[[1180,22],[1482,22]]}},"keywords":{}}],["custommiddlewareonerror",{"_index":2313,"title":{},"content":{"490":{"position":[[596,23],[808,23]]}},"keywords":{}}],["cvc",{"_index":264,"title":{},"content":{"16":{"position":[[812,4],[1474,4]]}},"keywords":{}}],["cycl",{"_index":1339,"title":{"187":{"position":[[8,5]]}},"content":{"187":{"position":[[8,5]]}},"keywords":{}}],["cycledeprec",{"_index":2222,"title":{},"content":{"378":{"position":[[984,14]]}},"keywords":{}}],["d",{"_index":24,"title":{},"content":{"3":{"position":[[8,1]]},"5":{"position":[[8,1]]},"6":{"position":[[8,1]]},"7":{"position":[[8,1]]},"8":{"position":[[8,1]]},"10":{"position":[[8,1]]},"11":{"position":[[8,1]]},"12":{"position":[[8,1]]},"16":{"position":[[1342,6],[1534,6]]}},"keywords":{}}],["data",{"_index":269,"title":{"283":{"position":[[6,5]]}},"content":{"16":{"position":[[873,4]]},"99":{"position":[[38,4]]},"171":{"position":[[1001,4],[1369,4]]},"182":{"position":[[682,5]]},"196":{"position":[[795,4],[898,4]]},"199":{"position":[[1,4],[57,5],[123,4],[827,4],[1381,4]]},"207":{"position":[[790,4],[893,4]]},"214":{"position":[[1,4],[56,5],[122,4],[879,4],[1458,4]]},"253":{"position":[[490,4],[609,5],[641,4],[724,4]]},"254":{"position":[[427,5]]},"281":{"position":[[803,4]]},"286":{"position":[[523,4],[626,4]]},"290":{"position":[[356,4]]},"294":{"position":[[767,4],[870,4]]},"297":{"position":[[1,4],[60,5],[126,4],[824,4],[1404,4]]},"311":{"position":[[817,4],[920,4]]},"317":{"position":[[1274,4],[1377,4]]},"320":{"position":[[1,4],[69,5],[135,4],[839,4],[1460,4]]},"324":{"position":[[67,4]]},"327":{"position":[[800,4],[903,4]]},"328":{"position":[[1103,4],[1211,5]]},"330":{"position":[[1,4],[823,4],[1598,4]]},"333":{"position":[[628,4],[731,4]]},"349":{"position":[[154,5]]},"368":{"position":[[2026,4]]},"416":{"position":[[198,8]]},"522":{"position":[[1358,4],[1455,5]]}},"keywords":{}}],["data.accesstoken",{"_index":2044,"title":{},"content":{"330":{"position":[[1664,16]]}},"keywords":{}}],["data.config.field1",{"_index":1474,"title":{},"content":{"199":{"position":[[1428,18]]},"214":{"position":[[1505,18]]},"297":{"position":[[1451,18]]}},"keywords":{}}],["data.config.field2",{"_index":1475,"title":{},"content":{"199":{"position":[[1459,18]]},"214":{"position":[[1536,18]]},"297":{"position":[[1482,18]]}},"keywords":{}}],["data.config.field3",{"_index":1476,"title":{},"content":{"199":{"position":[[1490,18]]},"214":{"position":[[1567,18]]},"297":{"position":[[1513,18]]}},"keywords":{}}],["data.dbparam",{"_index":2045,"title":{},"content":{"330":{"position":[[1693,13]]}},"keywords":{}}],["data.somesecret.password",{"_index":1925,"title":{},"content":{"320":{"position":[[1544,24]]}},"keywords":{}}],["data.somesecret.us",{"_index":1924,"title":{},"content":{"320":{"position":[[1511,20]]}},"keywords":{}}],["databas",{"_index":810,"title":{"151":{"position":[[15,8]]}},"content":{"139":{"position":[[67,8]]},"151":{"position":[[15,8]]}},"keywords":{}}],["datadog",{"_index":1041,"title":{},"content":{"163":{"position":[[395,8]]}},"keywords":{}}],["datastream/cor",{"_index":1416,"title":{},"content":{"191":{"position":[[70,18]]},"192":{"position":[[70,18]]},"250":{"position":[[240,18]]}},"keywords":{}}],["date",{"_index":1377,"title":{},"content":{"187":{"position":[[770,5]]}},"keywords":{}}],["day",{"_index":254,"title":{},"content":{"16":{"position":[[601,3]]},"161":{"position":[[32,4]]}},"keywords":{}}],["dazn",{"_index":1932,"title":{},"content":{"322":{"position":[[1,4]]}},"keywords":{}}],["db",{"_index":2318,"title":{"491":{"position":[[0,2]]}},"content":{"507":{"position":[[97,2]]}},"keywords":{}}],["db:#{aws::region}:#{aws::accountid}:dbuser:${database_resource}/${iam_rol",{"_index":1839,"title":{},"content":{"286":{"position":[[897,75]]}},"keywords":{}}],["db:connect",{"_index":1836,"title":{},"content":{"286":{"position":[[853,10]]}},"keywords":{}}],["dbparam",{"_index":2030,"title":{},"content":{"328":{"position":[[264,9],[890,9],[1145,11]]},"330":{"position":[[1314,9],[1639,12]]}},"keywords":{}}],["de",{"_index":1716,"title":{},"content":{"258":{"position":[[275,3]]}},"keywords":{}}],["deal",{"_index":327,"title":{},"content":{"17":{"position":[[219,4]]},"253":{"position":[[885,4]]},"515":{"position":[[344,7]]}},"keywords":{}}],["debub",{"_index":1090,"title":{},"content":{"166":{"position":[[457,5]]}},"keywords":{}}],["debug",{"_index":1080,"title":{},"content":{"166":{"position":[[192,6],[424,5]]}},"keywords":{}}],["decid",{"_index":362,"title":{},"content":{"17":{"position":[[1092,7]]},"153":{"position":[[286,6]]},"272":{"position":[[47,7]]}},"keywords":{}}],["decod",{"_index":1425,"title":{},"content":{"193":{"position":[[264,7]]}},"keywords":{}}],["decoder.decode(buffer.from(chunk.payloadchunk.payload",{"_index":1431,"title":{},"content":{"193":{"position":[[402,55]]}},"keywords":{}}],["decor",{"_index":222,"title":{},"content":{"15":{"position":[[498,10]]},"17":{"position":[[753,8]]},"168":{"position":[[232,11]]}},"keywords":{}}],["decoupl",{"_index":2086,"title":{},"content":{"360":{"position":[[31,9]]}},"keywords":{}}],["decrypted.disableprefetch",{"_index":2016,"title":{},"content":{"327":{"position":[[587,25]]}},"keywords":{}}],["deep",{"_index":416,"title":{},"content":{"18":{"position":[[981,4],[1004,4]]}},"keywords":{}}],["default",{"_index":79,"title":{"371":{"position":[[33,7]]}},"content":{"6":{"position":[[305,7]]},"8":{"position":[[249,7]]},"21":{"position":[[8,8],[127,12],[2328,7]]},"22":{"position":[[52,8],[149,12]]},"31":{"position":[[2127,8]]},"37":{"position":[[543,10]]},"46":{"position":[[2252,8]]},"97":{"position":[[2152,8]]},"150":{"position":[[2139,8]]},"166":{"position":[[121,8],[310,8],[439,8],[715,8],[823,8]]},"167":{"position":[[2439,7]]},"170":{"position":[[158,8],[234,8],[349,8],[641,8]]},"174":{"position":[[158,8],[215,7],[257,8],[551,8],[656,8]]},"175":{"position":[[1197,7]]},"178":{"position":[[210,7]]},"189":{"position":[[157,7]]},"196":{"position":[[20,8],[195,8],[298,8],[416,8],[612,8],[748,8],[869,8],[1011,8]]},"199":{"position":[[145,7]]},"203":{"position":[[32,8],[287,7],[395,8]]},"207":{"position":[[20,8],[192,8],[294,8],[412,8],[608,8],[744,8],[864,8],[1006,8]]},"210":{"position":[[4,7],[228,9],[301,9],[331,9]]},"214":{"position":[[144,7]]},"217":{"position":[[29,8]]},"221":{"position":[[23,8]]},"225":{"position":[[15,9],[100,9],[210,9],[297,9],[408,9],[495,9],[607,9],[697,9],[810,9]]},"226":{"position":[[418,8],[703,8]]},"229":{"position":[[8,9],[187,8]]},"236":{"position":[[131,8],[182,7],[244,8]]},"240":{"position":[[79,8],[257,8],[345,9],[435,9],[573,8],[676,9],[913,9],[1003,9],[1101,9],[1200,9],[1320,9]]},"244":{"position":[[202,8],[222,7]]},"248":{"position":[[13,8],[80,8],[138,8],[352,8],[406,8]]},"253":{"position":[[29,8],[236,8],[277,7],[387,8],[407,7]]},"257":{"position":[[39,8]]},"265":{"position":[[95,8],[115,7]]},"272":{"position":[[313,8]]},"286":{"position":[[20,8],[339,8],[475,8],[597,8],[739,8]]},"290":{"position":[[17,8],[98,8],[181,8],[371,8]]},"294":{"position":[[20,8],[181,8],[277,8],[395,8],[591,8],[727,8],[841,8],[983,8]]},"297":{"position":[[148,7]]},"300":{"position":[[99,8]]},"305":{"position":[[20,8],[361,8]]},"311":{"position":[[20,8],[216,8],[326,8],[444,8],[640,8],[776,8],[891,8],[1033,8]]},"317":{"position":[[20,8],[623,8],[1085,8],[1221,8],[1348,8],[1490,8]]},"320":{"position":[[157,7]]},"327":{"position":[[20,8],[623,8],[759,8],[874,8],[1016,8]]},"328":{"position":[[344,9],[743,9],[787,9],[1157,12]]},"330":{"position":[[145,7]]},"333":{"position":[[20,8],[451,8],[587,8],[702,8],[844,8]]},"338":{"position":[[169,7]]},"342":{"position":[[20,8]]},"346":{"position":[[20,8],[231,8],[348,8],[466,8],[576,8]]},"365":{"position":[[24,8],[175,8],[435,8],[587,8],[626,7],[667,8],[754,9]]},"366":{"position":[[41,7],[206,8],[268,8]]},"367":{"position":[[100,7]]},"369":{"position":[[281,8],[376,8]]},"375":{"position":[[190,8],[426,12]]},"378":{"position":[[774,7],[865,7]]},"392":{"position":[[8,7]]},"394":{"position":[[9,7]]},"423":{"position":[[69,7]]},"431":{"position":[[44,7]]},"432":{"position":[[44,7]]},"437":{"position":[[44,7]]},"454":{"position":[[30,8]]},"484":{"position":[[82,8]]},"490":{"position":[[276,8],[348,12],[843,7]]},"496":{"position":[[116,8]]},"515":{"position":[[83,8],[173,7],[296,7]]},"519":{"position":[[339,8],[422,12],[740,7]]},"521":{"position":[[700,7]]},"522":{"position":[[620,8],[821,12],[1516,7]]}},"keywords":{}}],["default).append",{"_index":1066,"title":{},"content":{"164":{"position":[[272,18]]}},"keywords":{}}],["default).print",{"_index":1063,"title":{},"content":{"164":{"position":[[174,17]]}},"keywords":{}}],["default_namespac",{"_index":1211,"title":{},"content":{"174":{"position":[[269,18]]}},"keywords":{}}],["defaultcontenttyp",{"_index":700,"title":{},"content":{"43":{"position":[[2127,19]]},"269":{"position":[[1,18]]},"270":{"position":[[333,19]]},"273":{"position":[[542,19]]},"394":{"position":[[27,18]]}},"keywords":{}}],["defaulthandl",{"_index":691,"title":{},"content":{"37":{"position":[[360,14],[563,14]]},"353":{"position":[[154,15]]}},"keywords":{}}],["defaultlanguag",{"_index":2299,"title":{},"content":{"484":{"position":[[260,15]]}},"keywords":{}}],["defaulttofirstlanguag",{"_index":2232,"title":{},"content":{"386":{"position":[[8,22]]}},"keywords":{}}],["defin",{"_index":1160,"title":{},"content":{"167":{"position":[[2355,6]]},"217":{"position":[[100,6]]},"225":{"position":[[133,8],[330,8],[528,8],[730,8]]},"270":{"position":[[33,8]]}},"keywords":{}}],["definit",{"_index":1197,"title":{},"content":{"172":{"position":[[129,11]]},"521":{"position":[[875,11]]}},"keywords":{}}],["deflat",{"_index":1680,"title":{},"content":{"249":{"position":[[477,10]]},"250":{"position":[[673,10]]},"385":{"position":[[34,7]]}},"keywords":{}}],["deflateoptionsoverridepreferredencod",{"_index":1653,"title":{},"content":{"248":{"position":[[171,39]]}},"keywords":{}}],["deleg",{"_index":897,"title":{},"content":{"153":{"position":[[348,8]]}},"keywords":{}}],["delet",{"_index":2076,"title":{},"content":{"357":{"position":[[135,7]]}},"keywords":{}}],["depend",{"_index":370,"title":{},"content":{"18":{"position":[[79,9],[360,12],[803,12]]},"155":{"position":[[194,11]]},"327":{"position":[[1175,9]]},"357":{"position":[[454,9]]},"360":{"position":[[318,12]]},"447":{"position":[[116,11]]},"521":{"position":[[1092,12]]}},"keywords":{}}],["deploy",{"_index":2161,"title":{},"content":{"369":{"position":[[50,11]]}},"keywords":{}}],["deprec",{"_index":1368,"title":{},"content":{"187":{"position":[[538,10],[585,10],[632,10],[679,10],[726,10]]},"375":{"position":[[1,11]]},"400":{"position":[[1,10]]},"401":{"position":[[1,10]]},"403":{"position":[[1,10]]},"405":{"position":[[1,10]]},"407":{"position":[[1,10]]},"468":{"position":[[1,9]]},"484":{"position":[[143,9]]},"491":{"position":[[1,11]]},"493":{"position":[[1,11]]},"516":{"position":[[1,11]]}},"keywords":{}}],["describ",{"_index":1304,"title":{},"content":{"182":{"position":[[711,9]]}},"keywords":{}}],["descript",{"_index":604,"title":{},"content":{"21":{"position":[[2645,11],[2813,11]]}},"keywords":{}}],["deseri",{"_index":259,"title":{},"content":{"16":{"position":[[692,11],[1094,16]]}},"keywords":{}}],["destroy",{"_index":2155,"title":{},"content":{"368":{"position":[[1409,7]]}},"keywords":{}}],["detail",{"_index":945,"title":{},"content":{"157":{"position":[[934,8]]},"323":{"position":[[271,7]]},"365":{"position":[[891,7]]}},"keywords":{}}],["details)if",{"_index":2212,"title":{},"content":{"378":{"position":[[219,10]]}},"keywords":{}}],["detectopenhandl",{"_index":1410,"title":{},"content":{"189":{"position":[[1435,17]]}},"keywords":{}}],["determin",{"_index":1087,"title":{},"content":{"166":{"position":[[394,9]]},"272":{"position":[[105,10]]},"429":{"position":[[55,10]]}},"keywords":{}}],["dev",{"_index":918,"title":{},"content":{"155":{"position":[[238,3]]},"167":{"position":[[1928,3]]},"195":{"position":[[113,3]]},"206":{"position":[[112,3]]},"285":{"position":[[114,3]]},"293":{"position":[[106,3]]},"299":{"position":[[155,3]]},"304":{"position":[[122,3]]},"310":{"position":[[121,3]]},"316":{"position":[[119,3]]},"326":{"position":[[107,3]]},"332":{"position":[[107,3]]},"345":{"position":[[115,3]]},"364":{"position":[[113,3]]}},"keywords":{}}],["dev/api_token",{"_index":1484,"title":{},"content":{"200":{"position":[[544,15]]},"318":{"position":[[221,15],[480,13]]}},"keywords":{}}],["dev/default",{"_index":2032,"title":{},"content":{"328":{"position":[[354,15],[753,15]]}},"keywords":{}}],["dev/service_name/access_token",{"_index":2029,"title":{},"content":{"328":{"position":[[214,33],[840,33]]}},"keywords":{}}],["dev/service_name/databas",{"_index":2031,"title":{},"content":{"328":{"position":[[274,30],[900,29]]},"330":{"position":[[1372,29]]}},"keywords":{}}],["dev/service_name/key_nam",{"_index":768,"title":{},"content":{"106":{"position":[[524,28],[600,28]]},"107":{"position":[[632,28]]}},"keywords":{}}],["devdepend",{"_index":404,"title":{},"content":{"18":{"position":[[737,15]]},"521":{"position":[[1044,15]]}},"keywords":{}}],["develop",{"_index":129,"title":{},"content":{"8":{"position":[[265,14]]},"17":{"position":[[72,9],[672,10]]},"21":{"position":[[2473,11]]}},"keywords":{}}],["dicer/bench",{"_index":410,"title":{},"content":{"18":{"position":[[851,14]]}},"keywords":{}}],["dicer/test",{"_index":411,"title":{},"content":{"18":{"position":[[866,13]]}},"keywords":{}}],["differ",{"_index":252,"title":{},"content":{"16":{"position":[[553,9]]},"167":{"position":[[2405,9]]},"172":{"position":[[392,9]]},"175":{"position":[[1309,9]]},"317":{"position":[[987,9]]},"395":{"position":[[37,9]]},"413":{"position":[[37,9]]},"518":{"position":[[193,9]]}},"keywords":{}}],["differenti",{"_index":1157,"title":{},"content":{"167":{"position":[[1893,13]]}},"keywords":{}}],["dimens",{"_index":1201,"title":{},"content":{"172":{"position":[[189,11],[402,11],[489,11]]},"175":{"position":[[1205,10],[1319,11]]},"203":{"position":[[254,11],[295,11],[368,11],[384,10]]},"204":{"position":[[385,11]]}},"keywords":{}}],["directli",{"_index":473,"title":{},"content":{"19":{"position":[[644,8]]},"159":{"position":[[334,8]]},"253":{"position":[[969,8]]}},"keywords":{}}],["directori",{"_index":375,"title":{},"content":{"18":{"position":[[171,9]]}},"keywords":{}}],["disabl",{"_index":1062,"title":{},"content":{"164":{"position":[[161,9],[259,9]]},"168":{"position":[[355,7]]},"189":{"position":[[509,7],[614,7],[720,7],[879,7]]},"196":{"position":[[712,8]]},"207":{"position":[[708,8]]},"286":{"position":[[439,8]]},"294":{"position":[[691,8]]},"305":{"position":[[461,8]]},"311":{"position":[[740,8]]},"317":{"position":[[1185,8]]},"327":{"position":[[723,8]]},"333":{"position":[[551,8]]},"346":{"position":[[676,8]]},"365":{"position":[[613,7]]},"520":{"position":[[269,7]]}},"keywords":{}}],["disablecontenttypeerror",{"_index":1748,"title":{},"content":{"265":{"position":[[1,23]]},"431":{"position":[[8,23]]},"432":{"position":[[8,23]]},"437":{"position":[[8,23]]}},"keywords":{}}],["disablecontenttypeerror:tru",{"_index":2270,"title":{},"content":{"416":{"position":[[289,28]]}},"keywords":{}}],["disableprefetch",{"_index":2383,"title":{},"content":{"522":{"position":[[675,16]]}},"keywords":{}}],["disconnect",{"_index":695,"title":{},"content":{"37":{"position":[[486,14]]},"353":{"position":[[141,12]]},"354":{"position":[[445,14],[543,14]]}},"keywords":{}}],["disconnecthandl",{"_index":689,"title":{},"content":{"37":{"position":[[288,17],[510,17]]},"354":{"position":[[327,17],[567,17]]}},"keywords":{}}],["discoveri",{"_index":105,"title":{"309":{"position":[[8,9]]},"404":{"position":[[8,10]]},"443":{"position":[[8,10]]},"480":{"position":[[8,10]]}},"content":{"6":{"position":[[726,9]]},"8":{"position":[[933,9]]},"283":{"position":[[322,10],[349,9]]},"310":{"position":[[92,9]]},"312":{"position":[[78,10]]}},"keywords":{}}],["discoveryinst",{"_index":2250,"title":{},"content":{"404":{"position":[[28,18]]}},"keywords":{}}],["discuss",{"_index":1296,"title":{},"content":{"182":{"position":[[4,9]]},"468":{"position":[[260,10]]}},"keywords":{}}],["dn",{"_index":1726,"title":{},"content":{"261":{"position":[[37,3]]}},"keywords":{}}],["dnsprefetchcontrol",{"_index":1725,"title":{},"content":{"261":{"position":[[1,18]]}},"keywords":{}}],["do",{"_index":253,"title":{},"content":{"16":{"position":[[589,5]]},"181":{"position":[[121,5]]},"182":{"position":[[782,5]]}},"keywords":{}}],["doc",{"_index":1507,"title":{},"content":{"203":{"position":[[451,5]]}},"keywords":{}}],["document",{"_index":618,"title":{"25":{"position":[[4,14]]},"27":{"position":[[4,14]]},"30":{"position":[[4,14]]},"33":{"position":[[4,14]]},"36":{"position":[[4,14]]},"39":{"position":[[4,14]]},"42":{"position":[[4,14]]},"45":{"position":[[4,14]]},"48":{"position":[[4,14]]},"51":{"position":[[4,14]]},"54":{"position":[[4,14]]},"57":{"position":[[4,14]]},"60":{"position":[[4,14]]},"63":{"position":[[4,14]]},"66":{"position":[[4,14]]},"69":{"position":[[4,14]]},"72":{"position":[[4,14]]},"75":{"position":[[4,14]]},"78":{"position":[[4,14]]},"81":{"position":[[4,14]]},"84":{"position":[[4,14]]},"87":{"position":[[4,14]]},"90":{"position":[[4,14]]},"93":{"position":[[4,14]]},"96":{"position":[[4,14]]},"99":{"position":[[4,14]]},"102":{"position":[[4,14]]},"109":{"position":[[4,14]]},"112":{"position":[[4,14]]},"115":{"position":[[4,14]]},"118":{"position":[[4,14]]},"121":{"position":[[4,14]]},"124":{"position":[[4,14]]},"127":{"position":[[4,14]]},"130":{"position":[[4,14]]},"133":{"position":[[4,14]]},"136":{"position":[[4,14]]},"142":{"position":[[4,14]]},"149":{"position":[[4,14]]}},"content":{"172":{"position":[[623,13]]},"253":{"position":[[159,13]]},"333":{"position":[[1082,13]]},"510":{"position":[[17,13]]},"513":{"position":[[17,13]]}},"keywords":{}}],["documentdb",{"_index":729,"title":{"74":{"position":[[0,10]]}},"content":{"75":{"position":[[30,10]]}},"keywords":{}}],["doe",{"_index":1710,"title":{},"content":{"258":{"position":[[216,6],[591,5]]}},"keywords":{}}],["doesn't",{"_index":376,"title":{},"content":{"18":{"position":[[194,7]]},"21":{"position":[[1962,7]]},"305":{"position":[[629,7]]},"368":{"position":[[1401,7]]}},"keywords":{}}],["domain",{"_index":856,"title":{},"content":{"151":{"position":[[462,6]]}},"keywords":{}}],["don't",{"_index":182,"title":{},"content":{"13":{"position":[[78,5]]},"16":{"position":[[678,5]]},"200":{"position":[[780,5]]},"229":{"position":[[138,5]]},"269":{"position":[[64,5]]}},"keywords":{}}],["done",{"_index":2169,"title":{},"content":{"369":{"position":[[466,4],[608,4]]}},"keywords":{}}],["done)remov",{"_index":2215,"title":{},"content":{"378":{"position":[[355,11]]}},"keywords":{}}],["donotwaitforemptyeventloop",{"_index":1530,"title":{},"content":{"211":{"position":[[40,26]]}},"keywords":{}}],["doubl",{"_index":2109,"title":{},"content":{"361":{"position":[[513,6]]}},"keywords":{}}],["down",{"_index":2211,"title":{},"content":{"378":{"position":[[163,4]]}},"keywords":{}}],["download",{"_index":1736,"title":{},"content":{"261":{"position":[[258,8]]}},"keywords":{}}],["draft",{"_index":2331,"title":{},"content":{"515":{"position":[[54,5]]}},"keywords":{}}],["draft2019",{"_index":2140,"title":{},"content":{"366":{"position":[[102,10]]}},"keywords":{}}],["draft2019/.github",{"_index":391,"title":{},"content":{"18":{"position":[[463,17]]}},"keywords":{}}],["draft2019/.prettierrc.j",{"_index":392,"title":{},"content":{"18":{"position":[[496,24]]}},"keywords":{}}],["draft2019/index.test.j",{"_index":393,"title":{},"content":{"18":{"position":[[536,23]]}},"keywords":{}}],["dramat",{"_index":598,"title":{},"content":{"21":{"position":[[2570,8]]}},"keywords":{}}],["drop",{"_index":2113,"title":{"362":{"position":[[54,8]]}},"content":{"362":{"position":[[98,7]]}},"keywords":{}}],["due",{"_index":1407,"title":{},"content":{"189":{"position":[[1390,3]]},"400":{"position":[[28,3]]},"403":{"position":[[28,3]]}},"keywords":{}}],["dump",{"_index":1940,"title":{},"content":{"322":{"position":[[434,7]]}},"keywords":{}}],["duplic",{"_index":984,"title":{},"content":{"161":{"position":[[100,11]]},"163":{"position":[[859,9]]}},"keywords":{}}],["duplicatesexpir",{"_index":1246,"title":{},"content":{"176":{"position":[[350,17]]}},"keywords":{}}],["durat",{"_index":1292,"title":{},"content":{"181":{"position":[[545,8]]}},"keywords":{}}],["dure",{"_index":511,"title":{"370":{"position":[[10,6]]},"371":{"position":[[10,6]]}},"content":{"21":{"position":[[387,6]]},"176":{"position":[[95,6]]},"322":{"position":[[1122,6]]},"324":{"position":[[666,6]]},"365":{"position":[[1168,6]]},"520":{"position":[[321,6]]},"522":{"position":[[244,6]]}},"keywords":{}}],["dvi",{"_index":1778,"title":{},"content":{"273":{"position":[[676,4]]}},"keywords":{}}],["dynam",{"_index":1966,"title":{},"content":{"322":{"position":[[1425,7]]}},"keywords":{}}],["dynamodb",{"_index":726,"title":{"65":{"position":[[0,8]]},"205":{"position":[[0,8]]}},"content":{"66":{"position":[[30,8]]},"107":{"position":[[538,9],[848,9]]},"177":{"position":[[83,8],[105,8]]},"206":{"position":[[132,8],[155,8]]},"207":{"position":[[753,10]]},"212":{"position":[[40,8],[274,10]]},"213":{"position":[[41,8]]},"214":{"position":[[9,8],[407,8],[1043,9],[1271,10]]},"221":{"position":[[219,8]]},"323":{"position":[[585,9]]}},"keywords":{}}],["dynamodb.awsclientopt",{"_index":1524,"title":{},"content":{"207":{"position":[[157,25]]}},"keywords":{}}],["dynamodb.rd",{"_index":1825,"title":{},"content":{"283":{"position":[[89,12]]}},"keywords":{}}],["dynamodb:batchgetitemcommand",{"_index":1525,"title":{},"content":{"207":{"position":[[1116,28]]}},"keywords":{}}],["dynamodbcli",{"_index":1523,"title":{},"content":{"207":{"position":[[29,16],[46,14],[232,14]]}},"keywords":{}}],["dynamodbmiddlewar",{"_index":777,"title":{},"content":{"107":{"position":[[170,18],[504,20]]}},"keywords":{}}],["dynamodbpersistencelay",{"_index":1268,"title":{},"content":{"179":{"position":[[172,24],[280,26]]}},"keywords":{}}],["dynamodbreq",{"_index":1536,"title":{},"content":{"214":{"position":[[285,11],[642,11],[990,12],[1055,11]]}},"keywords":{}}],["dynamodbreq<paramtype>(config",{"_index":1537,"title":{},"content":{"214":{"position":[[587,36]]}},"keywords":{}}],["dynamodbreq<{field1",{"_index":1539,"title":{},"content":{"214":{"position":[[1303,23]]}},"keywords":{}}],["e.g",{"_index":1569,"title":{},"content":{"225":{"position":[[948,5]]},"361":{"position":[[252,5]]},"490":{"position":[[242,4]]},"520":{"position":[[439,5]]}},"keywords":{}}],["each",{"_index":602,"title":{},"content":{"21":{"position":[[2621,4]]},"166":{"position":[[806,4]]},"168":{"position":[[186,4]]},"181":{"position":[[353,4]]},"187":{"position":[[14,4],[129,4]]},"328":{"position":[[334,4],[959,4]]},"521":{"position":[[1064,4]]}},"keywords":{}}],["earli",{"_index":958,"title":{"159":{"position":[[0,5]]},"182":{"position":[[15,5]]}},"content":{"159":{"position":[[0,5],[305,5],[1019,5]]},"161":{"position":[[26,5]]},"182":{"position":[[21,5],[1324,5]]},"196":{"position":[[665,5]]},"207":{"position":[[661,5]]},"286":{"position":[[392,5]]},"294":{"position":[[644,5]]},"305":{"position":[[414,5]]},"311":{"position":[[693,5]]},"317":{"position":[[1138,5]]},"327":{"position":[[676,5]]},"333":{"position":[[504,5]]},"346":{"position":[[629,5]]},"378":{"position":[[558,5],[762,5]]},"516":{"position":[[356,5]]},"520":{"position":[[168,5]]}},"keywords":{}}],["easi",{"_index":358,"title":{},"content":{"17":{"position":[[1003,4]]},"404":{"position":[[13,4]]}},"keywords":{}}],["easier",{"_index":1038,"title":{},"content":{"163":{"position":[[265,6]]},"323":{"position":[[178,6],[217,7]]},"378":{"position":[[946,6]]},"388":{"position":[[83,6]]}},"keywords":{}}],["easier.middi",{"_index":1935,"title":{},"content":{"322":{"position":[[117,12]]}},"keywords":{}}],["east",{"_index":1486,"title":{},"content":{"200":{"position":[[595,4]]},"318":{"position":[[272,4]]}},"keywords":{}}],["ec2",{"_index":727,"title":{"68":{"position":[[0,3]]}},"content":{"69":{"position":[[30,3]]}},"keywords":{}}],["ecosystem",{"_index":1332,"title":{},"content":{"186":{"position":[[218,10],[299,11]]}},"keywords":{}}],["editorconfig",{"_index":442,"title":{},"content":{"18":{"position":[[1440,13]]}},"keywords":{}}],["effect",{"_index":599,"title":{},"content":{"21":{"position":[[2579,7]]},"176":{"position":[[524,7]]},"378":{"position":[[168,7]]}},"keywords":{}}],["element",{"_index":213,"title":{},"content":{"15":{"position":[[388,8]]}},"keywords":{}}],["elseth",{"_index":1769,"title":{},"content":{"272":{"position":[[214,7]]}},"keywords":{}}],["email",{"_index":2156,"title":{},"content":{"368":{"position":[[1874,9],[1924,6],[1957,7]]}},"keywords":{}}],["embed",{"_index":1500,"title":{},"content":{"203":{"position":[[48,8],[434,8]]},"323":{"position":[[362,8]]}},"keywords":{}}],["emf",{"_index":1055,"title":{},"content":{"163":{"position":[[759,3]]},"172":{"position":[[72,3]]},"175":{"position":[[477,3],[919,3]]}},"keywords":{}}],["emf)paramet",{"_index":1971,"title":{},"content":{"323":{"position":[[385,16]]}},"keywords":{}}],["emit",{"_index":1238,"title":{},"content":{"175":{"position":[[1249,7]]},"182":{"position":[[609,4]]}},"keywords":{}}],["emoji",{"_index":1029,"title":{},"content":{"161":{"position":[[689,5]]}},"keywords":{}}],["empti",{"_index":808,"title":{"208":{"position":[[16,5]]},"382":{"position":[[16,5]]},"422":{"position":[[16,5]]},"459":{"position":[[16,5]]},"492":{"position":[[16,5]]}},"content":{"139":{"position":[[31,6],[140,5]]},"203":{"position":[[326,5]]},"209":{"position":[[100,5]]},"211":{"position":[[96,5]]},"280":{"position":[[116,5]]},"281":{"position":[[330,5]]},"360":{"position":[[579,5]]},"366":{"position":[[349,8]]},"369":{"position":[[290,5],[385,5]]}},"keywords":{}}],["en",{"_index":662,"title":{},"content":{"31":{"position":[[1613,4]]},"43":{"position":[[1613,4]]},"46":{"position":[[1738,4]]},"97":{"position":[[1638,4]]},"150":{"position":[[1625,4]]},"226":{"position":[[939,6]]},"365":{"position":[[676,4]]},"369":{"position":[[739,2],[916,3]]},"370":{"position":[[307,2],[516,3]]},"371":{"position":[[205,3],[475,3]]},"484":{"position":[[971,3],[1148,3]]}},"keywords":{}}],["en.j",{"_index":2175,"title":{},"content":{"369":{"position":[[747,9]]}},"keywords":{}}],["enabl",{"_index":497,"title":{},"content":{"21":{"position":[[42,8],[113,7],[261,10]]},"170":{"position":[[218,6]]},"196":{"position":[[437,6]]},"207":{"position":[[433,6]]},"294":{"position":[[416,6]]},"305":{"position":[[272,6]]},"311":{"position":[[465,6]]},"317":{"position":[[431,6]]},"327":{"position":[[391,6]]},"333":{"position":[[276,6]]},"346":{"position":[[487,6]]},"504":{"position":[[62,7]]}},"keywords":{}}],["enabling/dis",{"_index":1555,"title":{},"content":{"225":{"position":[[43,18],[238,18],[436,18],[635,18]]}},"keywords":{}}],["encod",{"_index":143,"title":{"246":{"position":[[13,8]]},"385":{"position":[[13,9]]},"425":{"position":[[13,9]]},"462":{"position":[[13,9]]}},"content":{"8":{"position":[[532,8],[598,8],[638,8]]},"31":{"position":[[300,9]]},"43":{"position":[[300,9]]},"46":{"position":[[351,9]]},"97":{"position":[[300,9]]},"150":{"position":[[300,9]]},"225":{"position":[[261,9],[351,9]]},"247":{"position":[[97,8]]},"248":{"position":[[262,8],[390,8]]},"249":{"position":[[155,9]]},"250":{"position":[[155,9]]},"253":{"position":[[740,7]]},"281":{"position":[[219,9],[917,7],[1042,7]]},"282":{"position":[[14,9],[42,8]]}},"keywords":{}}],["encodeuricomponent('mîddi",{"_index":1787,"title":{},"content":{"277":{"position":[[342,27]]}},"keywords":{}}],["encourag",{"_index":1329,"title":{},"content":{"186":{"position":[[54,9]]},"362":{"position":[[206,10]]}},"keywords":{}}],["end",{"_index":332,"title":{},"content":{"17":{"position":[[399,4]]},"31":{"position":[[1871,3]]},"43":{"position":[[1871,3]]},"46":{"position":[[1996,3]]},"97":{"position":[[1896,3]]},"150":{"position":[[1883,3]]},"153":{"position":[[595,3]]},"187":{"position":[[437,3]]},"189":{"position":[[1030,3]]},"378":{"position":[[310,3],[544,6]]},"522":{"position":[[152,5],[1077,3]]}},"keywords":{}}],["endpoint",{"_index":1823,"title":{},"content":{"282":{"position":[[645,9]]},"349":{"position":[[244,9]]},"416":{"position":[[261,8]]}},"keywords":{}}],["enforc",{"_index":872,"title":{},"content":{"151":{"position":[[992,7]]}},"keywords":{}}],["engin",{"_index":195,"title":{},"content":{"15":{"position":[[35,6],[283,6]]},"360":{"position":[[127,6]]}},"keywords":{}}],["enhanc",{"_index":927,"title":{},"content":{"156":{"position":[[324,8]]}},"keywords":{}}],["enrich",{"_index":1969,"title":{},"content":{"323":{"position":[[245,6]]}},"keywords":{}}],["ensur",{"_index":181,"title":{},"content":{"13":{"position":[[67,6]]},"18":{"position":[[184,6]]},"189":{"position":[[1503,6]]},"248":{"position":[[550,6]]}},"keywords":{}}],["enter",{"_index":1350,"title":{},"content":{"187":{"position":[[207,6]]}},"keywords":{}}],["entir",{"_index":1765,"title":{},"content":{"271":{"position":[[133,6],[331,6]]}},"keywords":{}}],["entiti",{"_index":1602,"title":{},"content":{"230":{"position":[[396,7]]},"240":{"position":[[1842,7]]}},"keywords":{}}],["entri",{"_index":130,"title":{},"content":{"8":{"position":[[280,6]]},"167":{"position":[[1182,5],[1330,6],[1693,5],[1853,8],[2024,6]]}},"keywords":{}}],["env",{"_index":151,"title":{},"content":{"10":{"position":[[47,3]]},"19":{"position":[[707,4]]},"324":{"position":[[1482,4]]}},"keywords":{}}],["env"",{"_index":158,"title":{},"content":{"10":{"position":[[190,10]]}},"keywords":{}}],["environ",{"_index":5,"title":{},"content":{"0":{"position":[[46,11]]},"107":{"position":[[395,12]]},"167":{"position":[[1874,11],[1932,13]]},"168":{"position":[[402,12]]},"189":{"position":[[1159,13]]},"197":{"position":[[198,12]]},"199":{"position":[[1315,12]]},"324":{"position":[[1517,11]]}},"keywords":{}}],["equal",{"_index":851,"title":{},"content":{"151":{"position":[[316,7]]},"322":{"position":[[310,5]]}},"keywords":{}}],["equal/es6",{"_index":417,"title":{},"content":{"18":{"position":[[986,9]]}},"keywords":{}}],["equal/react.j",{"_index":418,"title":{},"content":{"18":{"position":[[1009,14]]}},"keywords":{}}],["err",{"_index":2151,"title":{},"content":{"368":{"position":[[687,5],[1267,5]]}},"keywords":{}}],["error",{"_index":247,"title":{"153":{"position":[[9,6]]},"215":{"position":[[0,5]]},"227":{"position":[[5,5]]},"383":{"position":[[0,5]]},"388":{"position":[[5,5]]},"423":{"position":[[0,5]]},"428":{"position":[[5,5]]},"460":{"position":[[0,5]]},"465":{"position":[[5,5]]},"496":{"position":[[5,5]]}},"content":{"16":{"position":[[394,5],[1128,5],[2035,6]]},"17":{"position":[[341,5]]},"31":{"position":[[412,5]]},"43":{"position":[[412,5]]},"46":{"position":[[463,5]]},"97":{"position":[[412,5]]},"150":{"position":[[412,5]]},"151":{"position":[[795,5],[844,5],[920,5]]},"153":{"position":[[9,6],[51,6],[75,6],[307,5],[361,5],[421,5],[502,5],[606,5],[701,6],[759,6],[895,5],[921,12],[948,5]]},"158":{"position":[[680,7]]},"159":{"position":[[327,6],[447,5]]},"166":{"position":[[211,6]]},"171":{"position":[[963,5]]},"174":{"position":[[519,5]]},"179":{"position":[[691,7]]},"189":{"position":[[634,5],[1135,7]]},"217":{"position":[[142,5]]},"226":{"position":[[209,5]]},"228":{"position":[[89,5]]},"229":{"position":[[90,5],[223,6]]},"230":{"position":[[75,5]]},"233":{"position":[[251,5]]},"240":{"position":[[1411,5]]},"282":{"position":[[148,5],[198,6],[236,6]]},"324":{"position":[[116,5]]},"353":{"position":[[249,6],[360,6]]},"357":{"position":[[592,6]]},"360":{"position":[[690,5]]},"365":{"position":[[885,5]]},"366":{"position":[[131,7]]},"369":{"position":[[263,6],[358,6]]},"373":{"position":[[137,10],[259,10],[397,5]]},"377":{"position":[[62,5],[84,5]]},"378":{"position":[[246,6],[832,5]]},"379":{"position":[[13,5]]},"387":{"position":[[41,5]]},"389":{"position":[[60,5]]},"394":{"position":[[130,5]]},"396":{"position":[[41,5]]},"406":{"position":[[167,5]]},"409":{"position":[[14,6]]},"416":{"position":[[120,6]]},"417":{"position":[[55,5]]},"428":{"position":[[35,6]]},"429":{"position":[[25,5]]},"444":{"position":[[26,6]]},"484":{"position":[[331,5],[518,5]]},"496":{"position":[[46,6],[189,6]]},"515":{"position":[[264,6]]},"518":{"position":[[738,5]]},"519":{"position":[[252,6],[948,7]]},"520":{"position":[[53,5],[212,5]]}},"keywords":{}}],["error('error",{"_index":1279,"title":{},"content":{"179":{"position":[[711,12]]}},"keywords":{}}],["error('messag",{"_index":2268,"title":{},"content":{"416":{"position":[[148,16]]}},"keywords":{}}],["error('timeout",{"_index":2221,"title":{},"content":{"378":{"position":[[894,16]]}},"keywords":{}}],["error(in",{"_index":2360,"title":{},"content":{"519":{"position":[[928,8]]}},"keywords":{}}],["errorlogg",{"_index":1544,"title":{},"content":{"218":{"position":[[40,11]]}},"keywords":{}}],["errorloggermiddlewar",{"_index":625,"title":{},"content":{"31":{"position":[[40,21]]},"43":{"position":[[40,21]]},"46":{"position":[[91,21]]},"97":{"position":[[40,21]]},"105":{"position":[[108,21]]},"150":{"position":[[40,21]]}},"keywords":{}}],["errormessag",{"_index":2305,"title":{},"content":{"484":{"position":[[543,12]]}},"keywords":{}}],["errors.http",{"_index":1816,"title":{},"content":{"282":{"position":[[277,11]]}},"keywords":{}}],["errors/src",{"_index":389,"title":{},"content":{"18":{"position":[[418,10]]}},"keywords":{}}],["errorscatch",{"_index":2225,"title":{},"content":{"379":{"position":[[57,11]]}},"keywords":{}}],["errorsinput",{"_index":1795,"title":{},"content":{"280":{"position":[[206,11]]}},"keywords":{}}],["errorsplugin",{"_index":2217,"title":{},"content":{"378":{"position":[[582,12]]}},"keywords":{}}],["errrormessag",{"_index":2149,"title":{},"content":{"367":{"position":[[153,15]]}},"keywords":{}}],["es",{"_index":86,"title":{},"content":{"6":{"position":[[400,4],[413,2]]}},"keywords":{}}],["esbuild",{"_index":45,"title":{"5":{"position":[[0,8]]},"11":{"position":[[0,8]]}},"content":{"5":{"position":[[10,7]]},"11":{"position":[[10,7]]}},"keywords":{}}],["eslintignor",{"_index":443,"title":{},"content":{"18":{"position":[[1454,13]]}},"keywords":{}}],["eslintrc",{"_index":444,"title":{},"content":{"18":{"position":[[1468,9]]}},"keywords":{}}],["eslintrc.yml",{"_index":445,"title":{},"content":{"18":{"position":[[1478,13]]}},"keywords":{}}],["esm",{"_index":239,"title":{},"content":{"16":{"position":[[192,3]]}},"keywords":{}}],["especi",{"_index":2378,"title":{},"content":{"522":{"position":[[402,10]]}},"keywords":{}}],["establish",{"_index":12,"title":{},"content":{"0":{"position":[[184,11]]}},"keywords":{}}],["etc",{"_index":218,"title":{},"content":{"15":{"position":[[460,4]]},"17":{"position":[[357,4],[585,6]]},"172":{"position":[[507,4]]}},"keywords":{}}],["eu",{"_index":1117,"title":{},"content":{"167":{"position":[[582,2],[784,2]]}},"keywords":{}}],["evalu",{"_index":1694,"title":{},"content":{"253":{"position":[[823,8]]}},"keywords":{}}],["even",{"_index":453,"title":{},"content":{"19":{"position":[[44,4]]},"248":{"position":[[313,4]]}},"keywords":{}}],["event",{"_index":137,"title":{"83":{"position":[[4,6]]},"104":{"position":[[8,6]]},"208":{"position":[[22,5]]},"219":{"position":[[0,5]]},"231":{"position":[[5,5]]},"382":{"position":[[22,5]]},"384":{"position":[[0,5]]},"389":{"position":[[5,5]]},"422":{"position":[[22,5]]},"424":{"position":[[0,5]]},"429":{"position":[[5,5]]},"459":{"position":[[22,5]]},"461":{"position":[[0,5]]},"466":{"position":[[5,5]]},"492":{"position":[[22,5]]},"497":{"position":[[5,5]]}},"content":{"8":{"position":[[436,9]]},"16":{"position":[[647,7],[1665,5]]},"19":{"position":[[280,7]]},"31":{"position":[[482,5]]},"43":{"position":[[482,5]]},"46":{"position":[[533,5]]},"84":{"position":[[31,6]]},"87":{"position":[[54,7]]},"97":{"position":[[482,5]]},"105":{"position":[[677,7]]},"106":{"position":[[816,7]]},"107":{"position":[[777,7]]},"139":{"position":[[13,5],[146,5]]},"150":{"position":[[482,5]]},"157":{"position":[[190,7],[668,7]]},"159":{"position":[[710,5],[741,7],[1378,7]]},"164":{"position":[[138,6]]},"166":{"position":[[708,6]]},"167":{"position":[[2196,6],[2281,5]]},"176":{"position":[[81,5],[217,5]]},"179":{"position":[[388,5],[523,7]]},"181":{"position":[[414,5],[611,5]]},"182":{"position":[[940,5],[971,7]]},"191":{"position":[[111,7]]},"192":{"position":[[111,7]]},"199":{"position":[[1066,7]]},"200":{"position":[[192,6],[1269,5]]},"204":{"position":[[123,7]]},"209":{"position":[[106,5]]},"211":{"position":[[102,5],[136,7]]},"212":{"position":[[94,7]]},"218":{"position":[[101,7]]},"221":{"position":[[228,6]]},"222":{"position":[[109,7],[154,5]]},"226":{"position":[[246,7]]},"230":{"position":[[112,7]]},"232":{"position":[[89,5]]},"233":{"position":[[78,5],[117,7]]},"237":{"position":[[120,7]]},"240":{"position":[[1484,7]]},"241":{"position":[[91,7]]},"245":{"position":[[182,7],[359,5]]},"250":{"position":[[281,7]]},"254":{"position":[[192,7],[374,5]]},"258":{"position":[[118,7],[421,5]]},"262":{"position":[[118,7]]},"266":{"position":[[192,7],[434,8],[449,5]]},"273":{"position":[[124,7],[616,5]]},"277":{"position":[[293,8],[308,5]]},"280":{"position":[[122,5]]},"281":{"position":[[1,5],[59,5],[276,5],[310,6],[1099,6]]},"287":{"position":[[97,7]]},"291":{"position":[[114,7],[497,7]]},"295":{"position":[[82,7]]},"301":{"position":[[111,7]]},"307":{"position":[[136,7]]},"308":{"position":[[142,7]]},"312":{"position":[[111,7]]},"318":{"position":[[107,7]]},"320":{"position":[[1077,7]]},"322":{"position":[[400,5],[485,5],[739,5],[795,5],[1386,6]]},"324":{"position":[[77,6],[252,5],[281,5]]},"328":{"position":[[84,7],[626,7]]},"330":{"position":[[1084,7]]},"334":{"position":[[84,7]]},"338":{"position":[[42,5],[102,5],[120,5],[204,5]]},"339":{"position":[[100,7],[161,7]]},"343":{"position":[[177,7]]},"349":{"position":[[99,7]]},"360":{"position":[[585,5],[741,5]]},"368":{"position":[[13,5],[188,7],[390,5],[603,5],[724,6],[953,7],[1722,7]]},"369":{"position":[[804,7]]},"370":{"position":[[264,7]]},"371":{"position":[[333,7]]},"375":{"position":[[227,7]]},"389":{"position":[[81,5]]},"395":{"position":[[27,6]]},"401":{"position":[[25,5]]},"405":{"position":[[25,5]]},"406":{"position":[[128,5]]},"411":{"position":[[33,5]]},"413":{"position":[[27,6]]},"425":{"position":[[47,5]]},"426":{"position":[[23,5]]},"447":{"position":[[47,5]]},"449":{"position":[[34,5]]},"490":{"position":[[434,6],[1073,7]]},"509":{"position":[[62,6]]},"518":{"position":[[469,7]]},"519":{"position":[[872,5]]},"520":{"position":[[516,7],[591,6]]},"521":{"position":[[98,6]]},"522":{"position":[[146,5]]}},"keywords":{}}],["event.bodi",{"_index":267,"title":{},"content":{"16":{"position":[[840,10]]},"266":{"position":[[224,10]]},"277":{"position":[[159,10]]}},"keywords":{}}],["event.body.messag",{"_index":2060,"title":{},"content":{"343":{"position":[[200,18]]}},"keywords":{}}],["event.iswarmingup",{"_index":2057,"title":{},"content":{"339":{"position":[[175,17]]}},"keywords":{}}],["event.path",{"_index":1494,"title":{},"content":{"200":{"position":[[921,15]]}},"keywords":{}}],["event.pathparameters.userid",{"_index":1606,"title":{},"content":{"233":{"position":[[166,32]]}},"keywords":{}}],["event.productid",{"_index":1273,"title":{},"content":{"179":{"position":[[464,16]]}},"keywords":{}}],["event.rawbodi",{"_index":2288,"title":{},"content":{"468":{"position":[[11,13]]}},"keywords":{}}],["event.records.map(async",{"_index":1871,"title":{},"content":{"301":{"position":[[159,23]]}},"keywords":{}}],["event.requestcontext.connectionid",{"_index":2067,"title":{},"content":{"346":{"position":[[939,33]]}},"keywords":{}}],["event.requestcontext.{domainname,stage}if",{"_index":2065,"title":{},"content":{"346":{"position":[[840,41]]}},"keywords":{}}],["eventbridg",{"_index":733,"title":{"86":{"position":[[0,11]]}},"content":{"87":{"position":[[30,11]]}},"keywords":{}}],["eventnorm",{"_index":1552,"title":{},"content":{"222":{"position":[[40,15]]}},"keywords":{}}],["eventnormalizermiddlewar",{"_index":717,"title":{},"content":{"52":{"position":[[40,25]]},"61":{"position":[[40,25]]},"64":{"position":[[40,25]]},"67":{"position":[[40,25]]},"91":{"position":[[40,25]]},"94":{"position":[[40,25]]},"100":{"position":[[40,25]]},"103":{"position":[[40,25]]},"110":{"position":[[40,25]]},"113":{"position":[[40,25]]},"116":{"position":[[40,25]]},"125":{"position":[[40,25]]},"131":{"position":[[40,25]]},"143":{"position":[[40,25]]}},"keywords":{}}],["events.http",{"_index":1800,"title":{},"content":{"281":{"position":[[105,11]]}},"keywords":{}}],["eventschema",{"_index":310,"title":{},"content":{"16":{"position":[[1923,12]]},"31":{"position":[[1217,11],[2225,12]]},"43":{"position":[[1217,11],[2236,12]]},"97":{"position":[[1217,11],[2250,12]]},"105":{"position":[[315,11],[630,12]]},"150":{"position":[[1229,11],[2237,12]]},"365":{"position":[[1,11],[817,11]]},"368":{"position":[[473,12],[1765,11],[2170,12]]},"369":{"position":[[695,11],[890,12]]},"370":{"position":[[203,11],[460,12]]},"371":{"position":[[272,11],[419,12]]},"409":{"position":[[116,12]]},"484":{"position":[[832,12],[1061,12]]}},"keywords":{}}],["eventschema.json",{"_index":652,"title":{},"content":{"31":{"position":[[1234,20]]},"43":{"position":[[1234,20]]},"97":{"position":[[1234,20]]},"105":{"position":[[332,20]]},"150":{"position":[[1246,20]]}},"keywords":{}}],["eventsourcemap",{"_index":1877,"title":{},"content":{"302":{"position":[[95,19],[160,18]]}},"keywords":{}}],["eventsrefactor",{"_index":2229,"title":{},"content":{"384":{"position":[[33,16]]}},"keywords":{}}],["everyon",{"_index":876,"title":{},"content":{"152":{"position":[[52,8]]}},"keywords":{}}],["everyth",{"_index":566,"title":{},"content":{"21":{"position":[[1872,10]]},"272":{"position":[[203,10]]}},"keywords":{}}],["exampl",{"_index":225,"title":{"16":{"position":[[8,8]]},"26":{"position":[[0,8]]},"28":{"position":[[0,8]]},"31":{"position":[[0,8]]},"34":{"position":[[0,8]]},"37":{"position":[[0,8]]},"40":{"position":[[0,8]]},"43":{"position":[[0,8]]},"46":{"position":[[0,8]]},"49":{"position":[[0,8]]},"52":{"position":[[0,8]]},"55":{"position":[[0,8]]},"58":{"position":[[0,8]]},"61":{"position":[[0,8]]},"64":{"position":[[0,8]]},"67":{"position":[[0,8]]},"70":{"position":[[0,8]]},"73":{"position":[[0,8]]},"76":{"position":[[0,8]]},"79":{"position":[[0,8]]},"82":{"position":[[0,8]]},"85":{"position":[[0,8]]},"88":{"position":[[0,8]]},"91":{"position":[[0,8]]},"94":{"position":[[0,8]]},"97":{"position":[[0,8]]},"100":{"position":[[0,8]]},"103":{"position":[[0,8]]},"110":{"position":[[0,8]]},"113":{"position":[[0,8]]},"116":{"position":[[0,8]]},"119":{"position":[[0,8]]},"122":{"position":[[0,8]]},"125":{"position":[[0,8]]},"128":{"position":[[0,8]]},"131":{"position":[[0,8]]},"134":{"position":[[0,8]]},"137":{"position":[[0,8]]},"143":{"position":[[0,8]]},"150":{"position":[[0,8]]},"157":{"position":[[0,8]]},"191":{"position":[[20,8]]},"192":{"position":[[32,8]]},"369":{"position":[[16,7]]},"517":{"position":[[5,8]]}},"content":{"16":{"position":[[57,8]]},"21":{"position":[[2558,7]]},"139":{"position":[[99,8]]},"156":{"position":[[29,8]]},"157":{"position":[[956,8]]},"158":{"position":[[706,7]]},"159":{"position":[[565,8]]},"167":{"position":[[1341,8],[1783,8]]},"171":{"position":[[1206,8]]},"172":{"position":[[155,8]]},"182":{"position":[[306,8],[703,7]]},"189":{"position":[[1176,7]]},"199":{"position":[[907,7]]},"200":{"position":[[113,7],[761,8]]},"214":{"position":[[959,7]]},"290":{"position":[[385,9],[477,8]]},"297":{"position":[[904,7]]},"320":{"position":[[919,7]]},"330":{"position":[[903,7]]},"368":{"position":[[1,7],[763,7],[1474,7]]},"369":{"position":[[96,8]]},"490":{"position":[[953,8]]},"491":{"position":[[101,7]]},"517":{"position":[[5,8],[66,8]]},"518":{"position":[[406,8]]},"521":{"position":[[26,7]]}},"keywords":{}}],["except",{"_index":1166,"title":{},"content":{"168":{"position":[[97,10]]},"225":{"position":[[888,9]]},"324":{"position":[[161,10]]}},"keywords":{}}],["excess",{"_index":374,"title":{},"content":{"18":{"position":[[135,6],[216,6]]}},"keywords":{}}],["exclud",{"_index":1460,"title":{},"content":{"198":{"position":[[4,7],[58,7]]},"213":{"position":[[4,7],[57,7]]},"288":{"position":[[4,7],[52,7]]},"296":{"position":[[4,7],[51,7]]},"305":{"position":[[584,9]]},"313":{"position":[[4,7],[65,7]]},"314":{"position":[[4,7],[51,7]]},"319":{"position":[[4,7],[64,7]]},"329":{"position":[[4,7],[52,7]]},"335":{"position":[[4,7],[52,7]]},"350":{"position":[[4,7],[72,7]]}},"keywords":{}}],["execut",{"_index":890,"title":{"185":{"position":[[0,9]]}},"content":{"153":{"position":[[126,9],[455,9],[719,9]]},"158":{"position":[[145,9]]},"159":{"position":[[59,9],[216,9]]},"163":{"position":[[869,9]]},"171":{"position":[[1085,10]]},"176":{"position":[[44,9],[380,10]]},"182":{"position":[[89,9]]},"185":{"position":[[97,9],[245,9],[422,10],[608,8]]},"272":{"position":[[75,8],[521,9]]},"338":{"position":[[154,10]]},"346":{"position":[[750,7]]},"378":{"position":[[974,9]]},"519":{"position":[[123,8],[177,8],[232,8]]}},"keywords":{}}],["executed.requeststart",{"_index":951,"title":{},"content":{"158":{"position":[[239,24]]}},"keywords":{}}],["exist",{"_index":2343,"title":{},"content":{"517":{"position":[[33,8]]}},"keywords":{}}],["exit",{"_index":978,"title":{},"content":{"159":{"position":[[1013,5]]},"182":{"position":[[1318,5]]},"189":{"position":[[1308,4],[1343,7]]},"378":{"position":[[768,5]]}},"keywords":{}}],["expect",{"_index":1318,"title":{},"content":{"185":{"position":[[404,8]]},"199":{"position":[[329,8],[729,8]]},"214":{"position":[[362,8],[769,8]]},"272":{"position":[[623,8]]},"297":{"position":[[325,8],[714,8]]},"320":{"position":[[332,8],[729,8]]},"330":{"position":[[325,8],[725,8]]}},"keywords":{}}],["expect(response).not.tobe(nul",{"_index":2154,"title":{},"content":{"368":{"position":[[1363,31]]}},"keywords":{}}],["expect(response.body).toequ",{"_index":1724,"title":{},"content":{"258":{"position":[[530,31]]}},"keywords":{}}],["experi",{"_index":133,"title":{},"content":{"8":{"position":[[368,12]]},"21":{"position":[[2485,11]]},"200":{"position":[[1425,11]]},"521":{"position":[[928,11]]}},"keywords":{}}],["expert",{"_index":2371,"title":{},"content":{"521":{"position":[[827,8]]}},"keywords":{}}],["expir",{"_index":2375,"title":{},"content":{"522":{"position":[[129,7]]}},"keywords":{}}],["expirymonth",{"_index":262,"title":{},"content":{"16":{"position":[[787,12],[1352,12]]}},"keywords":{}}],["expiryyear",{"_index":263,"title":{},"content":{"16":{"position":[[800,11],[1411,11]]}},"keywords":{}}],["explicitli",{"_index":1506,"title":{},"content":{"203":{"position":[[229,10]]}},"keywords":{}}],["export",{"_index":78,"title":{},"content":{"6":{"position":[[298,6]]},"8":{"position":[[242,6]]},"16":{"position":[[1779,6]]},"19":{"position":[[559,6]]},"21":{"position":[[883,6]]},"22":{"position":[[743,6]]},"26":{"position":[[33,6]]},"28":{"position":[[33,6]]},"31":{"position":[[1354,6]]},"34":{"position":[[33,6]]},"37":{"position":[[582,6]]},"40":{"position":[[33,6]]},"43":{"position":[[1354,6]]},"46":{"position":[[1479,6]]},"49":{"position":[[33,6]]},"52":{"position":[[97,6]]},"55":{"position":[[33,6]]},"58":{"position":[[33,6]]},"61":{"position":[[97,6]]},"64":{"position":[[97,6]]},"67":{"position":[[97,6]]},"70":{"position":[[33,6]]},"73":{"position":[[33,6]]},"76":{"position":[[33,6]]},"79":{"position":[[33,6]]},"82":{"position":[[33,6]]},"85":{"position":[[33,6]]},"88":{"position":[[33,6]]},"91":{"position":[[97,6]]},"94":{"position":[[97,6]]},"97":{"position":[[1354,6]]},"100":{"position":[[97,6]]},"103":{"position":[[97,6]]},"106":{"position":[[267,6]]},"107":{"position":[[251,6]]},"110":{"position":[[97,6]]},"113":{"position":[[97,6]]},"116":{"position":[[97,6]]},"119":{"position":[[33,6]]},"122":{"position":[[173,6]]},"125":{"position":[[97,6]]},"128":{"position":[[33,6]]},"131":{"position":[[97,6]]},"134":{"position":[[33,6]]},"137":{"position":[[33,6]]},"140":{"position":[[594,6]]},"143":{"position":[[167,6]]},"150":{"position":[[1366,6]]},"157":{"position":[[243,6],[721,6]]},"159":{"position":[[1415,6]]},"167":{"position":[[313,6]]},"171":{"position":[[430,6]]},"175":{"position":[[364,6]]},"179":{"position":[[487,6]]},"181":{"position":[[712,6]]},"191":{"position":[[254,6]]},"192":{"position":[[186,6]]},"199":{"position":[[1184,6]]},"200":{"position":[[416,6]]},"204":{"position":[[301,6]]},"211":{"position":[[173,6]]},"212":{"position":[[237,6]]},"218":{"position":[[150,6]]},"222":{"position":[[203,6]]},"226":{"position":[[764,6]]},"230":{"position":[[183,6]]},"233":{"position":[[269,6]]},"237":{"position":[[157,6]]},"240":{"position":[[1555,6]]},"241":{"position":[[128,6]]},"245":{"position":[[219,6]]},"249":{"position":[[203,6]]},"250":{"position":[[372,6]]},"254":{"position":[[229,6]]},"258":{"position":[[334,6]]},"262":{"position":[[155,6]]},"266":{"position":[[272,6]]},"273":{"position":[[211,6]]},"287":{"position":[[240,6]]},"291":{"position":[[257,6],[547,6]]},"295":{"position":[[253,6]]},"301":{"position":[[306,6]]},"307":{"position":[[337,6]]},"308":{"position":[[290,6]]},"312":{"position":[[254,6]]},"318":{"position":[[144,6]]},"320":{"position":[[1248,6]]},"328":{"position":[[145,6],[687,6]]},"330":{"position":[[1145,6]]},"334":{"position":[[227,6]]},"339":{"position":[[202,6]]},"343":{"position":[[221,6]]},"348":{"position":[[77,6]]},"349":{"position":[[174,6]]},"354":{"position":[[589,6]]},"358":{"position":[[581,6]]},"368":{"position":[[424,6],[1157,6],[2044,6]]},"369":{"position":[[841,6]]},"370":{"position":[[411,6]]},"371":{"position":[[370,6]]},"484":{"position":[[731,6],[1000,6]]},"490":{"position":[[87,8],[836,6],[1122,6]]},"518":{"position":[[508,6]]},"519":{"position":[[733,6]]},"520":{"position":[[609,6]]},"521":{"position":[[693,6]]},"522":{"position":[[1509,6]]}},"keywords":{}}],["expos",{"_index":588,"title":{},"content":{"21":{"position":[[2317,6]]},"240":{"position":[[898,6]]},"518":{"position":[[821,7]]}},"keywords":{}}],["express",{"_index":201,"title":{},"content":{"15":{"position":[[149,8]]},"17":{"position":[[576,8]]},"324":{"position":[[1155,7]]},"361":{"position":[[399,7]]}},"keywords":{}}],["expressions@keboola/middi",{"_index":1978,"title":{},"content":{"324":{"position":[[90,25]]}},"keywords":{}}],["expressionsset",{"_index":1243,"title":{},"content":{"176":{"position":[[261,14]]}},"keywords":{}}],["extend",{"_index":2326,"title":{},"content":{"504":{"position":[[8,8],[81,10]]}},"keywords":{}}],["extern",{"_index":88,"title":{},"content":{"6":{"position":[[428,9]]},"8":{"position":[[405,10]]},"272":{"position":[[563,8]]},"522":{"position":[[477,8]]}},"keywords":{}}],["extract",{"_index":1501,"title":{},"content":{"203":{"position":[[101,9]]},"324":{"position":[[58,8]]}},"keywords":{}}],["extractor",{"_index":1977,"title":{},"content":{"324":{"position":[[47,10]]}},"keywords":{}}],["extraparamet",{"_index":1682,"title":{},"content":{"253":{"position":[[71,15]]}},"keywords":{}}],["fact",{"_index":1028,"title":{},"content":{"161":{"position":[[665,5]]}},"keywords":{}}],["factori",{"_index":926,"title":{},"content":{"156":{"position":[[283,7]]}},"keywords":{}}],["fail",{"_index":904,"title":{},"content":{"153":{"position":[[729,5]]},"189":{"position":[[994,7],[1298,6]]},"225":{"position":[[919,5]]},"282":{"position":[[582,6]]},"300":{"position":[[76,5]]},"368":{"position":[[738,6],[1343,6]]},"406":{"position":[[188,5]]},"444":{"position":[[57,7]]}},"keywords":{}}],["failur",{"_index":837,"title":{"298":{"position":[[18,7]]},"406":{"position":[[18,8]]},"444":{"position":[[18,8]]},"481":{"position":[[18,8]]},"512":{"position":[[18,8]]}},"content":{"143":{"position":[[158,8]]},"282":{"position":[[555,8]]},"299":{"position":[[102,7]]},"301":{"position":[[80,8]]},"302":{"position":[[140,8]]}},"keywords":{}}],["fallback",{"_index":1594,"title":{},"content":{"229":{"position":[[277,8]]},"365":{"position":[[723,8]]},"386":{"position":[[40,8]]}},"keywords":{}}],["fallbackmessag",{"_index":2324,"title":{},"content":{"496":{"position":[[197,15]]}},"keywords":{}}],["fals",{"_index":36,"title":{},"content":{"3":{"position":[[261,6]]},"166":{"position":[[835,6]]},"189":{"position":[[965,6]]},"196":{"position":[[621,7],[1020,7]]},"207":{"position":[[617,7],[1015,7]]},"210":{"position":[[79,5],[344,6]]},"226":{"position":[[870,6],[893,6]]},"229":{"position":[[125,5]]},"240":{"position":[[147,6]]},"244":{"position":[[233,5]]},"253":{"position":[[418,5]]},"265":{"position":[[126,5]]},"286":{"position":[[348,7],[748,7]]},"290":{"position":[[107,7]]},"294":{"position":[[600,7],[992,7]]},"305":{"position":[[370,7]]},"311":{"position":[[649,7],[1042,7]]},"317":{"position":[[632,7],[1094,7],[1499,7]]},"327":{"position":[[632,7],[1025,7]]},"333":{"position":[[460,7],[853,7]]},"338":{"position":[[130,5]]},"346":{"position":[[585,7]]},"431":{"position":[[35,5]]},"432":{"position":[[35,5]]},"437":{"position":[[35,5]]},"522":{"position":[[692,6],[750,5]]}},"keywords":{}}],["false)cachecontrol",{"_index":1631,"title":{},"content":{"240":{"position":[[1210,18]]}},"keywords":{}}],["false)defaulthead",{"_index":1613,"title":{},"content":{"236":{"position":[[140,20]]}},"keywords":{}}],["false)disablebeforepreflightrespons",{"_index":1616,"title":{},"content":{"240":{"position":[[88,36]]}},"keywords":{}}],["false)getorigin",{"_index":1621,"title":{},"content":{"240":{"position":[[445,15]]}},"keywords":{}}],["false)maxag",{"_index":1627,"title":{},"content":{"240":{"position":[[923,12]]}},"keywords":{}}],["false)method",{"_index":1620,"title":{},"content":{"240":{"position":[[355,13]]}},"keywords":{}}],["false)requestmethod",{"_index":1630,"title":{},"content":{"240":{"position":[[1111,20]]}},"keywords":{}}],["false)runonerror",{"_index":1529,"title":{},"content":{"210":{"position":[[314,16]]}},"keywords":{}}],["false.capturecoldstartmetr",{"_index":1214,"title":{},"content":{"174":{"position":[[563,28]]}},"keywords":{}}],["false.clearst",{"_index":1095,"title":{},"content":{"166":{"position":[[727,16]]}},"keywords":{}}],["falseerror",{"_index":1794,"title":{},"content":{"280":{"position":[[182,10]]}},"keywords":{}}],["falsi",{"_index":1395,"title":{},"content":{"189":{"position":[[711,5]]}},"keywords":{}}],["familiar",{"_index":202,"title":{},"content":{"15":{"position":[[175,8]]}},"keywords":{}}],["famou",{"_index":2107,"title":{},"content":{"361":{"position":[[371,6]]}},"keywords":{}}],["faq",{"_index":804,"title":{"138":{"position":[[0,3]]}},"content":{},"keywords":{}}],["fast",{"_index":415,"title":{},"content":{"18":{"position":[[973,7],[996,7]]}},"keywords":{}}],["faster",{"_index":2295,"title":{},"content":{"484":{"position":[[72,6]]}},"keywords":{}}],["fastifi",{"_index":341,"title":{},"content":{"17":{"position":[[560,9]]},"361":{"position":[[410,7]]}},"keywords":{}}],["favour",{"_index":2248,"title":{},"content":{"401":{"position":[[15,6]]},"405":{"position":[[15,6]]}},"keywords":{}}],["fe3fd9b100f8",{"_index":1518,"title":{},"content":{"204":{"position":[[283,13]]}},"keywords":{}}],["featur",{"_index":590,"title":{},"content":{"21":{"position":[[2402,7]]},"164":{"position":[[5,9]]},"168":{"position":[[5,9]]},"172":{"position":[[5,9]]},"176":{"position":[[5,9]]},"178":{"position":[[246,8]]},"360":{"position":[[22,8],[269,8]]},"516":{"position":[[49,7]]}},"keywords":{}}],["feature)frameguard",{"_index":1730,"title":{},"content":{"261":{"position":[[107,18]]}},"keywords":{}}],["feel",{"_index":879,"title":{},"content":{"152":{"position":[[111,4]]}},"keywords":{}}],["fetch",{"_index":1445,"title":{"283":{"position":[[0,5]]}},"content":{"196":{"position":[[787,7],[892,5]]},"199":{"position":[[115,7],[157,7],[356,7]]},"200":{"position":[[220,8]]},"207":{"position":[[782,7],[887,5]]},"214":{"position":[[114,7],[156,7],[389,7],[778,7]]},"283":{"position":[[12,5],[63,5],[110,7],[165,5],[270,7],[333,7],[423,7],[488,7]]},"286":{"position":[[515,7],[620,5]]},"294":{"position":[[759,7],[864,5]]},"297":{"position":[[118,7],[160,7],[352,7],[723,7]]},"305":{"position":[[656,6]]},"311":{"position":[[809,7],[914,5]]},"317":{"position":[[743,5],[1266,7],[1371,5]]},"318":{"position":[[391,5]]},"320":{"position":[[127,7],[169,7],[359,7],[738,7]]},"324":{"position":[[1487,6]]},"327":{"position":[[792,7],[897,5]]},"328":{"position":[[1059,5]]},"330":{"position":[[105,7],[157,7],[352,7],[1554,5]]},"333":{"position":[[620,7],[725,5]]},"441":{"position":[[19,5]]},"507":{"position":[[19,5]]},"509":{"position":[[19,5]]},"514":{"position":[[19,5]]},"522":{"position":[[850,5],[908,5],[996,12],[1093,5],[1165,6],[1269,6]]}},"keywords":{}}],["fetchdata",{"_index":758,"title":{},"content":{"106":{"position":[[326,10],[495,10],[582,10],[658,10]]},"107":{"position":[[310,10],[444,10],[525,10],[614,10]]},"197":{"position":[[116,10]]},"199":{"position":[[447,9],[1233,10]]},"200":{"position":[[521,10]]},"212":{"position":[[285,10]]},"214":{"position":[[479,9],[1282,10]]},"287":{"position":[[289,10]]},"295":{"position":[[295,10]]},"297":{"position":[[436,9],[1225,10]]},"312":{"position":[[310,10]]},"318":{"position":[[198,10]]},"320":{"position":[[455,9],[1302,10]]},"328":{"position":[[188,10],[730,10],[814,10]]},"330":{"position":[[437,9],[1188,10]]},"334":{"position":[[270,10]]},"522":{"position":[[633,10]]}},"keywords":{}}],["fetchrotationd",{"_index":1915,"title":{},"content":{"317":{"position":[[1636,17]]}},"keywords":{}}],["few",{"_index":920,"title":{},"content":{"156":{"position":[[83,3]]},"172":{"position":[[463,3]]},"189":{"position":[[428,3]]}},"keywords":{}}],["field",{"_index":1040,"title":{},"content":{"163":{"position":[[305,6]]},"164":{"position":[[30,6]]},"167":{"position":[[1205,6],[1365,5],[1456,5]]},"189":{"position":[[937,6]]},"257":{"position":[[51,6]]},"258":{"position":[[456,7]]},"290":{"position":[[269,6]]}},"keywords":{}}],["field2",{"_index":1540,"title":{},"content":{"214":{"position":[[1335,7]]},"297":{"position":[[1272,7]]}},"keywords":{}}],["field3",{"_index":1541,"title":{},"content":{"214":{"position":[[1351,7]]},"297":{"position":[[1288,7]]}},"keywords":{}}],["file",{"_index":83,"title":{},"content":{"6":{"position":[[359,5]]},"10":{"position":[[90,4]]},"12":{"position":[[66,4]]},"18":{"position":[[142,5],[268,4]]},"253":{"position":[[899,6],[985,5]]},"294":{"position":[[1112,4]]},"324":{"position":[[410,4]]},"367":{"position":[[38,4],[214,4]]},"369":{"position":[[416,4],[460,5],[566,4],[602,5]]}},"keywords":{}}],["filenam",{"_index":131,"title":{},"content":{"8":{"position":[[311,9]]}},"keywords":{}}],["fileurltopath",{"_index":122,"title":{},"content":{"8":{"position":[[117,13]]}},"keywords":{}}],["fileurltopath(import.meta.url",{"_index":125,"title":{},"content":{"8":{"position":[[168,30]]}},"keywords":{}}],["filter",{"_index":1705,"title":{},"content":{"257":{"position":[[99,6]]},"282":{"position":[[418,6]]},"322":{"position":[[211,9]]}},"keywords":{}}],["filteringkeynam",{"_index":1703,"title":{},"content":{"257":{"position":[[1,16]]}},"keywords":{}}],["final",{"_index":1159,"title":{},"content":{"167":{"position":[[2325,8]]}},"keywords":{}}],["find",{"_index":177,"title":{},"content":{"13":{"position":[[31,4]]},"17":{"position":[[1040,4]]},"189":{"position":[[1456,4]]}},"keywords":{}}],["firehos",{"_index":741,"title":{"98":{"position":[[8,8]]}},"content":{"99":{"position":[[43,8]]}},"keywords":{}}],["first",{"_index":11,"title":{},"content":{"0":{"position":[[167,5]]},"21":{"position":[[2178,5]]},"151":{"position":[[168,6]]},"158":{"position":[[302,5]]},"161":{"position":[[270,5],[301,5]]},"185":{"position":[[649,5],[727,5]]},"186":{"position":[[36,5]]},"200":{"position":[[1026,6]]},"217":{"position":[[158,5]]},"272":{"position":[[487,5]]},"368":{"position":[[2119,5]]},"378":{"position":[[333,5]]}},"keywords":{}}],["firstdefaultcontenttyp",{"_index":1773,"title":{},"content":{"272":{"position":[[347,23]]}},"keywords":{}}],["firstnam",{"_index":1707,"title":{},"content":{"258":{"position":[[187,10],[562,10]]}},"keywords":{}}],["firstname,lastnam",{"_index":1723,"title":{},"content":{"258":{"position":[[464,20]]}},"keywords":{}}],["fli",{"_index":2136,"title":{},"content":{"365":{"position":[[1126,3]]}},"keywords":{}}],["flight",{"_index":1633,"title":{},"content":{"240":{"position":[[1294,6]]}},"keywords":{}}],["flow",{"_index":889,"title":{},"content":{"153":{"position":[[102,4]]},"159":{"position":[[69,4]]},"182":{"position":[[99,4]]},"518":{"position":[[348,5]]}},"keywords":{}}],["fluent",{"_index":2147,"title":{},"content":{"367":{"position":[[11,6]]}},"keywords":{}}],["flush",{"_index":1054,"title":{},"content":{"163":{"position":[[726,7]]}},"keywords":{}}],["focu",{"_index":207,"title":{},"content":{"15":{"position":[[304,5]]},"17":{"position":[[100,5]]}},"keywords":{}}],["focus",{"_index":922,"title":{},"content":{"156":{"position":[[132,8]]}},"keywords":{}}],["follow",{"_index":4,"title":{},"content":{"0":{"position":[[36,9]]},"153":{"position":[[222,9]]},"163":{"position":[[179,9]]},"166":{"position":[[31,9],[166,9],[497,9],[624,9]]},"167":{"position":[[425,9]]},"170":{"position":[[31,9],[391,9],[518,9]]},"174":{"position":[[31,9],[312,9],[441,9]]},"175":{"position":[[503,10]]},"178":{"position":[[24,9]]},"181":{"position":[[234,8]]},"182":{"position":[[689,9],[792,10]]},"189":{"position":[[947,8],[1268,8]]},"199":{"position":[[897,9]]},"214":{"position":[[949,9]]},"272":{"position":[[123,9]]},"297":{"position":[[894,9]]},"320":{"position":[[909,9]]},"330":{"position":[[893,9]]},"375":{"position":[[70,9]]},"490":{"position":[[943,9]]},"516":{"position":[[208,9]]},"519":{"position":[[312,9]]}},"keywords":{}}],["foo",{"_index":1104,"title":{},"content":{"167":{"position":[[286,4]]},"245":{"position":[[506,4],[572,4]]},"254":{"position":[[749,4]]},"368":{"position":[[277,7],[396,4],[582,3]]},"490":{"position":[[1187,6]]}},"keywords":{}}],["forc",{"_index":1405,"title":{},"content":{"189":{"position":[[1337,5]]}},"keywords":{}}],["forev",{"_index":1448,"title":{},"content":{"196":{"position":[[945,8]]},"207":{"position":[[940,8]]},"286":{"position":[[673,8]]},"294":{"position":[[917,8]]},"311":{"position":[[967,8]]},"317":{"position":[[1424,8]]},"327":{"position":[[950,8]]},"333":{"position":[[778,8]]}},"keywords":{}}],["form",{"_index":1752,"title":{},"content":{"266":{"position":[[505,4]]},"281":{"position":[[957,4]]}},"keywords":{}}],["formal",{"_index":2328,"title":{},"content":{"504":{"position":[[53,8]]}},"keywords":{}}],["format",{"_index":85,"title":{},"content":{"6":{"position":[[392,7]]},"18":{"position":[[455,7],[488,7],[528,7]]},"163":{"position":[[763,9]]},"236":{"position":[[73,7]]},"323":{"position":[[378,6]]},"353":{"position":[[107,9]]},"357":{"position":[[228,9]]},"361":{"position":[[104,7],[245,6],[684,7]]},"366":{"position":[[81,8],[94,7]]},"367":{"position":[[63,7]]},"368":{"position":[[1949,7]]}},"keywords":{}}],["format=cj",{"_index":162,"title":{},"content":{"11":{"position":[[78,10]]}},"keywords":{}}],["format=esm",{"_index":52,"title":{},"content":{"5":{"position":[[140,10]]}},"keywords":{}}],["formathttp",{"_index":1804,"title":{},"content":{"281":{"position":[[512,10]]}},"keywords":{}}],["formats/src",{"_index":390,"title":{},"content":{"18":{"position":[[436,11]]}},"keywords":{}}],["formatt",{"_index":1069,"title":{},"content":{"164":{"position":[[370,9],[396,10]]},"167":{"position":[[2375,9]]}},"keywords":{}}],["former.shar",{"_index":2072,"title":{},"content":{"353":{"position":[[427,13]]},"357":{"position":[[659,13]]}},"keywords":{}}],["forward",{"_index":1822,"title":{},"content":{"282":{"position":[[614,8]]}},"keywords":{}}],["found",{"_index":1764,"title":{},"content":{"271":{"position":[[31,6]]},"365":{"position":[[699,6],[1043,5]]},"379":{"position":[[258,5]]}},"keywords":{}}],["fr",{"_index":664,"title":{},"content":{"31":{"position":[[1623,3]]},"43":{"position":[[1623,3]]},"46":{"position":[[1748,3]]},"97":{"position":[[1648,3]]},"150":{"position":[[1635,3]]},"226":{"position":[[374,3],[378,4],[930,3],[934,4]]},"369":{"position":[[764,2],[920,2]]},"370":{"position":[[362,2],[520,2]]},"371":{"position":[[209,2],[479,2]]},"484":{"position":[[975,2],[1152,2]]}},"keywords":{}}],["fr.j",{"_index":2176,"title":{},"content":{"369":{"position":[[772,9]]}},"keywords":{}}],["framework",{"_index":200,"title":{"146":{"position":[[11,9]]}},"content":{"15":{"position":[[133,10]]},"17":{"position":[[549,10],[1136,9]]},"146":{"position":[[11,9]]},"324":{"position":[[1436,9]]},"361":{"position":[[383,10]]}},"keywords":{}}],["frappucino",{"_index":1755,"title":{},"content":{"266":{"position":[[646,11]]}},"keywords":{}}],["frappucino=muffin&goat%5b%5d=scone&pond=moos",{"_index":1753,"title":{},"content":{"266":{"position":[[531,55]]}},"keywords":{}}],["free",{"_index":880,"title":{},"content":{"152":{"position":[[116,4]]}},"keywords":{}}],["ftl",{"_index":2148,"title":{},"content":{"367":{"position":[[18,6],[170,3],[210,3]]},"369":{"position":[[516,3]]},"371":{"position":[[224,3]]},"484":{"position":[[990,3]]}},"keywords":{}}],["full",{"_index":1165,"title":{},"content":{"168":{"position":[[92,4]]},"187":{"position":[[96,4]]},"240":{"position":[[521,4]]}},"keywords":{}}],["fun",{"_index":1027,"title":{},"content":{"161":{"position":[[661,3]]}},"keywords":{}}],["function",{"_index":347,"title":{"95":{"position":[[0,8]]},"191":{"position":[[7,8]]},"271":{"position":[[11,10]]},"493":{"position":[[0,8]]}},"content":{"17":{"position":[[803,9]]},"21":{"position":[[2688,8]]},"118":{"position":[[53,8]]},"156":{"position":[[291,9],[475,8]]},"157":{"position":[[882,9]]},"158":{"position":[[429,9],[443,8]]},"159":{"position":[[651,8]]},"163":{"position":[[532,8],[826,9]]},"167":{"position":[[1400,8]]},"168":{"position":[[218,9]]},"171":{"position":[[1062,8],[1192,9],[1223,8],[1456,9]]},"172":{"position":[[344,8]]},"175":{"position":[[1067,8]]},"176":{"position":[[405,8]]},"181":{"position":[[58,8],[569,9],[636,8]]},"182":{"position":[[881,8]]},"189":{"position":[[822,9]]},"193":{"position":[[205,9]]},"196":{"position":[[405,10]]},"199":{"position":[[272,9],[287,8],[619,8]]},"207":{"position":[[401,10]]},"214":{"position":[[305,9],[320,8],[659,8]]},"217":{"position":[[20,8]]},"229":{"position":[[48,8]]},"236":{"position":[[275,10],[300,8]]},"244":{"position":[[9,10]]},"271":{"position":[[88,8],[110,8]]},"280":{"position":[[292,8]]},"290":{"position":[[8,8],[48,8],[508,9],[537,8]]},"294":{"position":[[384,10]]},"297":{"position":[[268,9],[283,8],[604,8]]},"300":{"position":[[8,10],[33,8]]},"305":{"position":[[249,10]]},"311":{"position":[[433,10]]},"317":{"position":[[408,10]]},"318":{"position":[[353,8]]},"320":{"position":[[275,9],[290,8],[622,8]]},"322":{"position":[[520,8],[586,8]]},"323":{"position":[[71,9],[445,9],[657,8],[714,9]]},"324":{"position":[[495,9],[1033,8]]},"327":{"position":[[368,10]]},"330":{"position":[[268,9],[283,8],[608,8]]},"333":{"position":[[253,10]]},"338":{"position":[[16,8],[177,8]]},"342":{"position":[[9,10]]},"346":{"position":[[455,10]]},"353":{"position":[[170,10],[231,8]]},"357":{"position":[[305,10],[356,8]]},"360":{"position":[[441,13]]},"365":{"position":[[13,10],[164,10],[424,10]]},"378":{"position":[[805,8]]},"484":{"position":[[127,14]]},"490":{"position":[[101,8],[152,8]]},"518":{"position":[[303,9]]},"519":{"position":[[106,8],[160,8],[215,8],[285,9]]},"520":{"position":[[282,14],[398,8]]}},"keywords":{}}],["function(incomingorigin:str",{"_index":1622,"title":{},"content":{"240":{"position":[[461,32]]}},"keywords":{}}],["functionfailonmismatch",{"_index":1566,"title":{},"content":{"225":{"position":[[787,22]]}},"keywords":{}}],["functionnam",{"_index":1423,"title":{},"content":{"193":{"position":[[191,13]]}},"keywords":{}}],["functionparseencod",{"_index":1558,"title":{},"content":{"225":{"position":[[187,22]]}},"keywords":{}}],["functionparselanguag",{"_index":1560,"title":{},"content":{"225":{"position":[[385,22]]}},"keywords":{}}],["functionparsemediatyp",{"_index":1563,"title":{},"content":{"225":{"position":[[583,23]]}},"keywords":{}}],["functionresponsetyp",{"_index":1876,"title":{},"content":{"302":{"position":[[66,21]]}},"keywords":{}}],["futur",{"_index":1729,"title":{},"content":{"261":{"position":[[99,7]]},"462":{"position":[[79,6]]}},"keywords":{}}],["gain",{"_index":1330,"title":{},"content":{"186":{"position":[[187,4]]}},"keywords":{}}],["gateway",{"_index":616,"title":{"23":{"position":[[4,7]]},"29":{"position":[[4,7]]},"35":{"position":[[4,7]]},"41":{"position":[[4,7]]},"348":{"position":[[4,8]]}},"content":{"27":{"position":[[73,7]]},"200":{"position":[[208,7]]},"322":{"position":[[1378,7]]},"357":{"position":[[389,7]]},"412":{"position":[[39,7]]},"521":{"position":[[114,8]]}},"keywords":{}}],["gatewaywork",{"_index":624,"title":{},"content":{"30":{"position":[[34,14]]},"36":{"position":[[34,14]]},"42":{"position":[[34,14]]},"96":{"position":[[34,14]]}},"keywords":{}}],["gender",{"_index":1711,"title":{},"content":{"258":{"position":[[223,7]]}},"keywords":{}}],["gener",{"_index":340,"title":{"349":{"position":[[0,8]]}},"content":{"17":{"position":[[537,7],[817,9]]},"168":{"position":[[162,10]]},"171":{"position":[[722,9]]},"189":{"position":[[1197,9]]},"199":{"position":[[690,8]]},"214":{"position":[[730,8]]},"240":{"position":[[541,10]]},"297":{"position":[[675,8]]},"320":{"position":[[690,8]]},"330":{"position":[[686,8]]},"375":{"position":[[17,7]]},"490":{"position":[[77,9]]},"491":{"position":[[17,7]]}},"keywords":{}}],["get",{"_index":912,"title":{"154":{"position":[[0,7]]}},"content":{"185":{"position":[[807,4]]},"200":{"position":[[688,4]]},"283":{"position":[[219,4]]}},"keywords":{}}],["gethandl",{"_index":704,"title":{},"content":{"46":{"position":[[1237,10],[1407,10]]},"358":{"position":[[141,10],[509,10]]}},"keywords":{}}],["getintern",{"_index":455,"title":{},"content":{"19":{"position":[[219,13]]},"106":{"position":[[42,11]]},"107":{"position":[[42,11]]},"328":{"position":[[542,11],[1116,12]]},"330":{"position":[[986,11]]},"379":{"position":[[1,11]]},"522":{"position":[[567,12]]}},"keywords":{}}],["getinternal('config",{"_index":1473,"title":{},"content":{"199":{"position":[[1394,21]]},"214":{"position":[[1471,21]]},"297":{"position":[[1417,21]]}},"keywords":{}}],["getinternal('somesecret",{"_index":1923,"title":{},"content":{"320":{"position":[[1473,25]]}},"keywords":{}}],["getinternal(['accesstoken",{"_index":2043,"title":{},"content":{"330":{"position":[[1611,27]]}},"keywords":{}}],["getinternal(['key",{"_index":488,"title":{},"content":{"19":{"position":[[939,20]]}},"keywords":{}}],["getinternal(['node_env",{"_index":2262,"title":{},"content":{"414":{"position":[[147,25]]}},"keywords":{}}],["getinternal(object.keys(options.fetchdata",{"_index":2392,"title":{},"content":{"522":{"position":[[1371,43]]}},"keywords":{}}],["getinternal(tru",{"_index":492,"title":{},"content":{"19":{"position":[[1290,17]]},"106":{"position":[[771,17]]},"107":{"position":[[732,17]]}},"keywords":{}}],["getinternal({'newkey':'key",{"_index":489,"title":{},"content":{"19":{"position":[[1062,29]]}},"keywords":{}}],["getremainingtimeinmilli",{"_index":2362,"title":{},"content":{"520":{"position":[[368,24]]}},"keywords":{}}],["getvalu",{"_index":2196,"title":{},"content":{"375":{"position":[[304,9]]}},"keywords":{}}],["gitattribut",{"_index":446,"title":{},"content":{"18":{"position":[[1492,14]]}},"keywords":{}}],["github",{"_index":821,"title":{},"content":{"140":{"position":[[136,7]]},"144":{"position":[[135,7]]},"145":{"position":[[127,7]]},"146":{"position":[[143,7]]},"147":{"position":[[139,7]]},"151":{"position":[[160,7]]},"161":{"position":[[218,6]]},"183":{"position":[[171,6]]},"188":{"position":[[132,7]]},"189":{"position":[[130,7]]}},"keywords":{}}],["give",{"_index":2372,"title":{},"content":{"521":{"position":[[899,4]]}},"keywords":{}}],["global",{"_index":1155,"title":{},"content":{"167":{"position":[[1711,6]]}},"keywords":{}}],["globaldefault",{"_index":2027,"title":{},"content":{"328":{"position":[[125,14],[423,14],[667,14]]},"330":{"position":[[1125,14]]}},"keywords":{}}],["go",{"_index":1943,"title":{},"content":{"322":{"position":[[570,5]]}},"keywords":{}}],["goat",{"_index":1757,"title":{},"content":{"266":{"position":[[668,9]]}},"keywords":{}}],["goe",{"_index":1347,"title":{},"content":{"187":{"position":[[142,4]]}},"keywords":{}}],["good",{"_index":568,"title":{},"content":{"21":{"position":[[1889,5]]},"182":{"position":[[531,4]]},"253":{"position":[[793,4]]},"521":{"position":[[923,4]]}},"keywords":{}}],["gql",{"_index":823,"title":{},"content":{"140":{"position":[[199,3]]}},"keywords":{}}],["gql(graphqlfiletostr",{"_index":831,"title":{},"content":{"140":{"position":[[473,22]]}},"keywords":{}}],["gracefulli",{"_index":1404,"title":{},"content":{"189":{"position":[[1313,10]]},"281":{"position":[[642,10]]}},"keywords":{}}],["graphql",{"_index":829,"title":{},"content":{"140":{"position":[[403,7]]}},"keywords":{}}],["graphql/resolvers.j",{"_index":826,"title":{},"content":{"140":{"position":[[317,24]]}},"keywords":{}}],["graphql/schema.j",{"_index":828,"title":{},"content":{"140":{"position":[[375,21]]}},"keywords":{}}],["graphqlfiletostr",{"_index":827,"title":{},"content":{"140":{"position":[[351,16]]}},"keywords":{}}],["great",{"_index":1313,"title":{},"content":{"183":{"position":[[149,5]]}},"keywords":{}}],["gt",{"_index":81,"title":{},"content":{"6":{"position":[[321,5]]},"16":{"position":[[664,5]]},"19":{"position":[[309,5],[392,5],[467,5],[678,5],[840,5],[974,4],[1106,4],[1322,4]]},"21":{"position":[[89,5],[186,5],[250,5],[431,5],[476,5],[654,5],[701,5],[745,5]]},"22":{"position":[[120,5],[208,5],[272,5],[336,5],[381,5],[514,5],[561,5],[605,5]]},"26":{"position":[[100,5]]},"28":{"position":[[101,5]]},"31":{"position":[[1410,5],[2095,5],[2330,5]]},"34":{"position":[[101,5]]},"40":{"position":[[100,5]]},"43":{"position":[[1410,5],[2095,5],[2341,5]]},"46":{"position":[[1535,5],[2220,5]]},"49":{"position":[[100,5]]},"52":{"position":[[198,5]]},"55":{"position":[[170,5]]},"58":{"position":[[100,5]]},"61":{"position":[[198,5]]},"64":{"position":[[198,5]]},"67":{"position":[[198,5]]},"70":{"position":[[100,5]]},"73":{"position":[[100,5]]},"76":{"position":[[101,5]]},"79":{"position":[[100,5]]},"82":{"position":[[100,5]]},"85":{"position":[[100,5]]},"88":{"position":[[101,5]]},"91":{"position":[[198,5]]},"94":{"position":[[198,5]]},"97":{"position":[[1410,5],[2120,5],[2355,5]]},"100":{"position":[[198,5]]},"103":{"position":[[198,5]]},"105":{"position":[[706,5]]},"106":{"position":[[731,5],[845,5]]},"107":{"position":[[692,5],[806,5]]},"110":{"position":[[170,4],[180,4],[228,5]]},"113":{"position":[[198,5]]},"116":{"position":[[198,5]]},"119":{"position":[[100,5]]},"122":{"position":[[370,5]]},"125":{"position":[[169,4],[179,4],[189,4],[237,5]]},"128":{"position":[[100,5]]},"131":{"position":[[198,5]]},"134":{"position":[[100,5]]},"137":{"position":[[100,5]]},"143":{"position":[[299,5]]},"150":{"position":[[1422,5],[2107,5],[2342,5]]},"151":{"position":[[781,5]]},"157":{"position":[[207,5],[685,5]]},"159":{"position":[[749,5],[836,5],[903,5],[1166,5],[1395,5]]},"167":{"position":[[223,5]]},"171":{"position":[[370,5]]},"175":{"position":[[291,5]]},"179":{"position":[[396,5],[541,5]]},"181":{"position":[[744,5]]},"182":{"position":[[979,5],[1066,5],[1133,5],[1471,5],[1700,5]]},"189":{"position":[[599,5]]},"191":{"position":[[128,5]]},"192":{"position":[[128,5]]},"197":{"position":[[252,5]]},"199":{"position":[[1083,5],[1367,5]]},"200":{"position":[[660,5]]},"204":{"position":[[140,5]]},"211":{"position":[[153,5]]},"212":{"position":[[111,5]]},"214":{"position":[[1131,5],[1444,5]]},"217":{"position":[[48,5]]},"218":{"position":[[118,5]]},"222":{"position":[[126,5]]},"226":{"position":[[263,5]]},"230":{"position":[[129,5],[326,5]]},"233":{"position":[[134,5]]},"237":{"position":[[137,5]]},"240":{"position":[[1501,5],[1713,5]]},"241":{"position":[[108,5],[259,5]]},"245":{"position":[[199,5],[551,5]]},"249":{"position":[[517,5]]},"250":{"position":[[298,5]]},"254":{"position":[[209,5],[728,5]]},"258":{"position":[[135,5],[522,5]]},"262":{"position":[[135,5]]},"266":{"position":[[209,5],[618,5]]},"270":{"position":[[132,5],[238,5],[317,5]]},"273":{"position":[[141,5],[342,5],[447,5],[526,5],[735,5]]},"277":{"position":[[144,5],[403,5]]},"287":{"position":[[114,5]]},"291":{"position":[[131,5],[514,5],[622,5]]},"295":{"position":[[99,5]]},"297":{"position":[[1052,5],[1390,5]]},"301":{"position":[[128,5],[199,5]]},"307":{"position":[[153,5],[217,5]]},"308":{"position":[[159,5],[217,5]]},"312":{"position":[[128,5]]},"318":{"position":[[124,5],[456,5]]},"320":{"position":[[1094,5],[1446,5]]},"328":{"position":[[101,5],[415,5],[643,5],[1089,5]]},"330":{"position":[[1101,5],[1365,6],[1584,5]]},"334":{"position":[[101,5]]},"339":{"position":[[121,5],[169,5]]},"343":{"position":[[185,5]]},"348":{"position":[[123,5]]},"349":{"position":[[116,5]]},"354":{"position":[[291,5],[430,5]]},"358":{"position":[[237,5],[393,5]]},"360":{"position":[[456,4],[479,4],[502,4],[551,4],[619,4],[673,4],[724,4],[779,4],[838,4],[892,4],[941,4],[991,4],[1036,4],[1068,4],[1094,4],[1136,4],[1182,4]]},"368":{"position":[[205,5],[698,5],[970,5],[1283,5],[1739,5]]},"369":{"position":[[821,5]]},"370":{"position":[[281,5]]},"371":{"position":[[350,5]]},"375":{"position":[[157,5],[235,5],[326,5],[375,5],[515,5],[754,5]]},"378":{"position":[[876,5]]},"414":{"position":[[118,5]]},"468":{"position":[[115,5]]},"490":{"position":[[322,5],[418,5],[516,5],[638,5],[1090,5]]},"496":{"position":[[69,5],[179,5]]},"516":{"position":[[268,5]]},"518":{"position":[[486,5],[563,5],[633,5],[704,5]]},"519":{"position":[[396,5],[490,5],[551,5],[614,5]]},"520":{"position":[[448,5],[545,5],[573,5],[691,5]]},"521":{"position":[[322,5],[472,5],[631,5]]},"522":{"position":[[795,5],[861,5],[1053,5],[1221,5]]}},"keywords":{}}],["gzip",{"_index":1657,"title":{},"content":{"248":{"position":[[299,4]]},"249":{"position":[[469,7]]},"250":{"position":[[665,7]]},"385":{"position":[[23,5]]}},"keywords":{}}],["gzipoptionsdefl",{"_index":1651,"title":{},"content":{"248":{"position":[[110,18]]}},"keywords":{}}],["hack",{"_index":47,"title":{},"content":{"5":{"position":[[32,4]]}},"keywords":{}}],["halfway",{"_index":1247,"title":{},"content":{"176":{"position":[[424,7]]}},"keywords":{}}],["handl",{"_index":313,"title":{"153":{"position":[[0,8]]},"520":{"position":[[0,6]]}},"content":{"16":{"position":[[2015,7]]},"17":{"position":[[347,9]]},"140":{"position":[[572,7]]},"153":{"position":[[0,8],[296,6],[409,7],[937,6]]},"159":{"position":[[453,8],[530,7]]},"240":{"position":[[219,8]]},"261":{"position":[[65,8]]},"281":{"position":[[634,7]]},"282":{"position":[[564,7]]},"353":{"position":[[266,7],[352,7]]},"357":{"position":[[498,7],[584,7]]},"365":{"position":[[943,7]]},"378":{"position":[[237,8],[567,6]]},"394":{"position":[[145,7]]},"520":{"position":[[0,6]]}},"keywords":{}}],["handledcomplet",{"_index":2242,"title":{},"content":{"396":{"position":[[56,15]]}},"keywords":{}}],["handledsmal",{"_index":2234,"title":{},"content":{"387":{"position":[[56,12]]}},"keywords":{}}],["handler",{"_index":248,"title":{"227":{"position":[[11,7]]},"388":{"position":[[11,8]]},"428":{"position":[[11,8]]},"465":{"position":[[11,8]]},"496":{"position":[[11,8]]}},"content":{"16":{"position":[[400,8],[534,8],[1047,7],[1134,9],[1721,8],[1792,7]]},"17":{"position":[[192,8],[454,9],[1079,9]]},"19":{"position":[[572,7],[1245,7]]},"21":{"position":[[896,7],[1226,9],[1656,7],[1932,8]]},"22":{"position":[[756,7],[1088,9]]},"26":{"position":[[46,7]]},"28":{"position":[[46,7]]},"31":{"position":[[418,8],[1367,7]]},"34":{"position":[[46,7]]},"37":{"position":[[211,7],[277,7],[349,7],[447,8],[501,8],[554,8],[595,7]]},"40":{"position":[[46,7]]},"43":{"position":[[418,8],[1367,7]]},"46":{"position":[[469,8],[1226,7],[1289,7],[1398,8],[1454,8],[1492,7]]},"49":{"position":[[46,7]]},"52":{"position":[[110,7]]},"55":{"position":[[46,7]]},"58":{"position":[[46,7]]},"61":{"position":[[110,7]]},"64":{"position":[[110,7]]},"67":{"position":[[110,7]]},"70":{"position":[[46,7]]},"73":{"position":[[46,7]]},"76":{"position":[[46,7]]},"79":{"position":[[46,7]]},"82":{"position":[[46,7]]},"85":{"position":[[46,7]]},"88":{"position":[[46,7]]},"91":{"position":[[110,7]]},"94":{"position":[[110,7]]},"97":{"position":[[418,8],[1367,7]]},"100":{"position":[[110,7]]},"103":{"position":[[110,7]]},"105":{"position":[[458,7]]},"106":{"position":[[280,7]]},"107":{"position":[[264,7]]},"110":{"position":[[110,7]]},"113":{"position":[[110,7]]},"116":{"position":[[110,7]]},"119":{"position":[[46,7]]},"122":{"position":[[186,7]]},"125":{"position":[[110,7]]},"128":{"position":[[46,7]]},"131":{"position":[[110,7]]},"134":{"position":[[46,7]]},"137":{"position":[[46,7]]},"140":{"position":[[607,7]]},"143":{"position":[[180,7]]},"150":{"position":[[418,8],[1379,7]]},"156":{"position":[[113,8],[260,7],[359,8]]},"157":{"position":[[256,7],[734,7]]},"159":{"position":[[1428,7]]},"167":{"position":[[326,7]]},"171":{"position":[[443,7],[745,7]]},"175":{"position":[[377,7]]},"176":{"position":[[31,7],[129,7]]},"179":{"position":[[500,7]]},"181":{"position":[[725,7]]},"182":{"position":[[1667,7]]},"185":{"position":[[86,7],[234,7],[655,7]]},"189":{"position":[[245,7],[355,8]]},"191":{"position":[[267,7]]},"192":{"position":[[199,7]]},"197":{"position":[[80,7]]},"199":{"position":[[1197,7]]},"200":{"position":[[429,7],[1033,7],[1100,7],[1358,7]]},"204":{"position":[[314,7]]},"210":{"position":[[142,7]]},"211":{"position":[[186,7]]},"212":{"position":[[250,7]]},"214":{"position":[[1098,7]]},"218":{"position":[[134,7],[163,7]]},"222":{"position":[[216,7]]},"226":{"position":[[215,8],[777,7]]},"228":{"position":[[95,7]]},"230":{"position":[[81,8],[196,7],[285,10],[296,11]]},"233":{"position":[[282,7]]},"237":{"position":[[170,7]]},"240":{"position":[[1417,8],[1568,7],[1672,10],[1683,11]]},"241":{"position":[[141,7],[218,10],[229,11]]},"245":{"position":[[232,7],[345,7]]},"249":{"position":[[216,7]]},"250":{"position":[[385,7]]},"254":{"position":[[242,7],[360,7]]},"258":{"position":[[347,7]]},"262":{"position":[[168,7]]},"266":{"position":[[285,7],[412,7]]},"269":{"position":[[56,7]]},"272":{"position":[[183,7],[289,7]]},"273":{"position":[[224,7]]},"277":{"position":[[111,7],[271,7]]},"282":{"position":[[154,8]]},"287":{"position":[[253,7]]},"291":{"position":[[270,7],[560,7]]},"295":{"position":[[266,7]]},"297":{"position":[[1019,7]]},"301":{"position":[[319,7]]},"305":{"position":[[511,7]]},"307":{"position":[[350,7]]},"308":{"position":[[303,7]]},"312":{"position":[[267,7]]},"318":{"position":[[157,7],[362,8]]},"320":{"position":[[1261,7]]},"322":{"position":[[1396,8]]},"323":{"position":[[666,9]]},"324":{"position":[[1042,8]]},"328":{"position":[[158,7],[700,7]]},"330":{"position":[[1158,7]]},"334":{"position":[[240,7]]},"339":{"position":[[215,7]]},"343":{"position":[[234,7]]},"348":{"position":[[90,7]]},"349":{"position":[[187,7]]},"353":{"position":[[26,10]]},"354":{"position":[[504,8],[558,8],[602,7]]},"357":{"position":[[30,10]]},"358":{"position":[[500,8],[556,8],[594,7]]},"365":{"position":[[295,8]]},"368":{"position":[[437,7],[554,8],[1170,7],[1251,11],[2057,7]]},"369":{"position":[[854,7]]},"370":{"position":[[424,7]]},"371":{"position":[[383,7]]},"373":{"position":[[4,7]]},"378":{"position":[[919,10]]},"379":{"position":[[102,7]]},"395":{"position":[[47,8]]},"413":{"position":[[47,8]]},"484":{"position":[[744,7],[1013,7]]},"490":{"position":[[1135,7]]},"518":{"position":[[48,8],[521,7]]},"520":{"position":[[622,7]]},"522":{"position":[[21,7]]}},"keywords":{}}],["handler(()=>",{"_index":538,"title":{},"content":{"21":{"position":[[1200,19]]},"22":{"position":[[1062,19]]}},"keywords":{}}],["handler((ev",{"_index":619,"title":{},"content":{"26":{"position":[[64,16]]},"31":{"position":[[2292,16]]},"40":{"position":[[64,16]]},"43":{"position":[[2303,16]]},"49":{"position":[[64,16]]},"52":{"position":[[162,16]]},"55":{"position":[[134,16]]},"58":{"position":[[64,16]]},"61":{"position":[[162,16]]},"64":{"position":[[162,16]]},"67":{"position":[[162,16]]},"70":{"position":[[64,16]]},"73":{"position":[[64,16]]},"79":{"position":[[64,16]]},"82":{"position":[[64,16]]},"85":{"position":[[64,16]]},"91":{"position":[[162,16]]},"94":{"position":[[162,16]]},"97":{"position":[[2317,16]]},"100":{"position":[[162,16]]},"103":{"position":[[162,16]]},"110":{"position":[[192,16]]},"113":{"position":[[162,16]]},"116":{"position":[[162,16]]},"119":{"position":[[64,16]]},"122":{"position":[[334,16]]},"125":{"position":[[201,16]]},"128":{"position":[[64,16]]},"131":{"position":[[162,16]]},"134":{"position":[[64,16]]},"137":{"position":[[64,16]]},"143":{"position":[[263,16]]},"150":{"position":[[2304,16]]},"197":{"position":[[226,16]]},"249":{"position":[[491,16]]},"354":{"position":[[265,16],[404,16]]},"358":{"position":[[211,16],[367,16]]}},"keywords":{}}],["handler(async",{"_index":750,"title":{},"content":{"105":{"position":[[662,14]]},"106":{"position":[[801,14]]},"107":{"position":[[762,14]]},"200":{"position":[[630,14]]}},"keywords":{}}],["handler(ev",{"_index":1645,"title":{},"content":{"245":{"position":[[522,14]]},"254":{"position":[[699,14]]},"258":{"position":[[489,14]]},"266":{"position":[[589,14]]},"273":{"position":[[702,14]]},"277":{"position":[[374,14]]},"318":{"position":[[418,14]]},"353":{"position":[[197,14]]},"357":{"position":[[332,14]]},"368":{"position":[[668,14]]}},"keywords":{}}],["handler(httprouterhandler(rout",{"_index":712,"title":{},"content":{"46":{"position":[[2358,35]]},"358":{"position":[[641,35]]}},"keywords":{}}],["handler(lambdahandl",{"_index":315,"title":{},"content":{"16":{"position":[[2071,23]]},"19":{"position":[[1357,23]]},"157":{"position":[[334,23],[804,23]]},"159":{"position":[[1501,23]]},"191":{"position":[[309,25]]},"192":{"position":[[241,25]]},"199":{"position":[[1521,23]]},"204":{"position":[[422,23]]},"211":{"position":[[259,23]]},"212":{"position":[[355,23]]},"226":{"position":[[1073,23]]},"237":{"position":[[217,23]]},"240":{"position":[[1624,23]]},"245":{"position":[[306,23]]},"250":{"position":[[687,23]]},"254":{"position":[[321,23]]},"266":{"position":[[364,23]]},"273":{"position":[[586,23]]},"287":{"position":[[415,23]]},"291":{"position":[[745,23]]},"295":{"position":[[373,23]]},"312":{"position":[[386,23]]},"318":{"position":[[307,23]]},"320":{"position":[[1715,23]]},"328":{"position":[[475,23],[1220,23]]},"330":{"position":[[1741,23]]},"334":{"position":[[354,23]]},"339":{"position":[[263,23]]},"343":{"position":[[316,23]]},"349":{"position":[[267,23]]},"368":{"position":[[515,23],[1224,23],[2217,23]]},"369":{"position":[[930,23]]},"370":{"position":[[530,23]]},"371":{"position":[[489,23]]},"490":{"position":[[1214,23]]},"518":{"position":[[753,23]]},"520":{"position":[[728,25]]}},"keywords":{}}],["handler(wsrouterhandler(rout",{"_index":698,"title":{},"content":{"37":{"position":[[677,33]]},"354":{"position":[[649,33]]}},"keywords":{}}],["handler.contextschema",{"_index":2122,"title":{},"content":{"365":{"position":[[142,21]]}},"keywords":{}}],["handler.i18nen",{"_index":2126,"title":{},"content":{"365":{"position":[[557,19]]}},"keywords":{}}],["handler.j",{"_index":237,"title":{},"content":{"16":{"position":[[131,10]]}},"keywords":{}}],["handler.requestend(request",{"_index":956,"title":{},"content":{"158":{"position":[[585,28]]}},"keywords":{}}],["handler.us",{"_index":1538,"title":{},"content":{"214":{"position":[[1258,12]]},"297":{"position":[[1207,12]]}},"keywords":{}}],["handler.use(httpurlencodepathpars",{"_index":1785,"title":{},"content":{"277":{"position":[[208,38]]}},"keywords":{}}],["handler.use(wsrespons",{"_index":2069,"title":{},"content":{"348":{"position":[[151,25]]}},"keywords":{}}],["handlerhttpeventnorm",{"_index":2094,"title":{},"content":{"360":{"position":[[696,26]]}},"keywords":{}}],["handlerrunonaft",{"_index":1528,"title":{},"content":{"210":{"position":[[283,17]]}},"keywords":{}}],["handlers/*/*.ftl",{"_index":2173,"title":{},"content":{"369":{"position":[[574,17]]}},"keywords":{}}],["handlers/*/schema.*.json",{"_index":2168,"title":{},"content":{"369":{"position":[[424,25]]}},"keywords":{}}],["handlers/connect.j",{"_index":688,"title":{},"content":{"37":{"position":[[244,23]]}},"keywords":{}}],["handlers/default.j",{"_index":692,"title":{},"content":{"37":{"position":[[382,23]]}},"keywords":{}}],["handlers/disconnect.j",{"_index":690,"title":{},"content":{"37":{"position":[[313,26]]}},"keywords":{}}],["handlers/get",{"_index":705,"title":{},"content":{"46":{"position":[[1255,15],[1319,15]]}},"keywords":{}}],["handlerswrap",{"_index":1988,"title":{},"content":{"324":{"position":[[522,12]]}},"keywords":{}}],["handlingerror",{"_index":2207,"title":{},"content":{"377":{"position":[[90,14]]}},"keywords":{}}],["handlingtimeout",{"_index":2206,"title":{},"content":{"377":{"position":[[68,15]]}},"keywords":{}}],["hapi",{"_index":342,"title":{},"content":{"17":{"position":[[570,5]]}},"keywords":{}}],["happen",{"_index":809,"title":{},"content":{"139":{"position":[[43,7]]},"153":{"position":[[26,7]]},"185":{"position":[[67,7],[216,7]]}},"keywords":{}}],["happen.fallbackmessag",{"_index":1590,"title":{},"content":{"229":{"position":[[164,22]]}},"keywords":{}}],["happens.middi",{"_index":1944,"title":{},"content":{"322":{"position":[[608,13]]}},"keywords":{}}],["happi",{"_index":2374,"title":{},"content":{"521":{"position":[[1006,5]]}},"keywords":{}}],["harder",{"_index":337,"title":{},"content":{"17":{"position":[[480,6]]}},"keywords":{}}],["header",{"_index":638,"title":{"234":{"position":[[5,6]]},"259":{"position":[[14,7]]},"361":{"position":[[0,6],[29,6]]},"390":{"position":[[5,6]]},"396":{"position":[[14,8]]},"430":{"position":[[5,6]]},"436":{"position":[[14,8]]},"467":{"position":[[5,6]]},"473":{"position":[[14,8]]},"498":{"position":[[5,6]]},"503":{"position":[[14,8]]}},"content":{"31":{"position":[[556,6],[945,8]]},"43":{"position":[[556,6],[945,8]]},"46":{"position":[[607,6],[996,8]]},"97":{"position":[[556,6],[945,8]]},"150":{"position":[[568,6],[957,8]]},"191":{"position":[[162,8]]},"197":{"position":[[296,8]]},"199":{"position":[[1117,8]]},"212":{"position":[[155,8]]},"214":{"position":[[1175,8]]},"225":{"position":[[940,7]]},"226":{"position":[[148,6]]},"235":{"position":[[89,6]]},"236":{"position":[[52,7],[95,7],[190,7],[325,6]]},"237":{"position":[[79,6]]},"240":{"position":[[337,7],[669,6],[905,7],[996,6],[1093,7],[1280,6]]},"245":{"position":[[79,6],[369,8]]},"254":{"position":[[79,6],[384,8]]},"260":{"position":[[98,7]]},"262":{"position":[[87,8]]},"266":{"position":[[79,6],[459,8]]},"271":{"position":[[55,6],[408,7]]},"272":{"position":[[5,6],[229,6]]},"273":{"position":[[626,8]]},"281":{"position":[[154,7],[445,6],[480,6]]},"282":{"position":[[51,6],[124,7],[298,8],[338,7]]},"287":{"position":[[158,8]]},"291":{"position":[[175,8]]},"295":{"position":[[171,8]]},"297":{"position":[[1124,8]]},"312":{"position":[[172,8]]},"320":{"position":[[1166,8]]},"334":{"position":[[145,8]]},"360":{"position":[[796,6]]},"361":{"position":[[66,6],[219,6],[554,7]]},"390":{"position":[[22,7]]},"396":{"position":[[122,7]]},"495":{"position":[[35,7]]}},"keywords":{}}],["headerhst",{"_index":1734,"title":{},"content":{"261":{"position":[[197,10]]}},"keywords":{}}],["headerxssfilt",{"_index":1743,"title":{},"content":{"261":{"position":[[369,15]]}},"keywords":{}}],["hello",{"_index":1458,"title":{},"content":{"197":{"position":[[341,6]]},"199":{"position":[[1162,6]]},"200":{"position":[[909,6]]},"212":{"position":[[200,6]]},"214":{"position":[[1220,6]]},"226":{"position":[[437,6]]},"233":{"position":[[216,6]]},"273":{"position":[[162,6]]},"287":{"position":[[203,6]]},"291":{"position":[[220,6]]},"295":{"position":[[216,6]]},"297":{"position":[[1169,6]]},"312":{"position":[[217,6]]},"320":{"position":[[1211,6]]},"334":{"position":[[190,6]]}},"keywords":{}}],["helmetjs.http",{"_index":1817,"title":{},"content":{"282":{"position":[[386,13]]}},"keywords":{}}],["help",{"_index":591,"title":{},"content":{"21":{"position":[[2415,4]]},"140":{"position":[[70,4]]},"144":{"position":[[69,4]]},"145":{"position":[[61,4]]},"146":{"position":[[77,4]]},"147":{"position":[[73,4]]},"151":{"position":[[94,4]]},"163":{"position":[[87,4]]},"167":{"position":[[1280,4]]},"188":{"position":[[66,4]]},"189":{"position":[[64,4]]},"324":{"position":[[638,4]]},"369":{"position":[[177,4]]}},"keywords":{}}],["helper",{"_index":1933,"title":{},"content":{"322":{"position":[[70,6]]}},"keywords":{}}],["here",{"_index":302,"title":{},"content":{"16":{"position":[[1647,4]]},"200":{"position":[[703,4]]},"378":{"position":[[262,4]]},"522":{"position":[[492,4]]}},"keywords":{}}],["here'",{"_index":1478,"title":{},"content":{"200":{"position":[[103,6]]},"521":{"position":[[16,6]]}},"keywords":{}}],["hide",{"_index":1741,"title":{},"content":{"261":{"position":[[352,4]]}},"keywords":{}}],["high",{"_index":1235,"title":{},"content":{"175":{"position":[[1115,4]]},"323":{"position":[[434,4]]}},"keywords":{}}],["higher",{"_index":1660,"title":{},"content":{"248":{"position":[[332,6]]},"324":{"position":[[482,6]]}},"keywords":{}}],["highest",{"_index":1325,"title":{},"content":{"185":{"position":[[692,7]]}},"keywords":{}}],["highli",{"_index":2119,"title":{},"content":{"362":{"position":[[199,6]]},"365":{"position":[[1227,6]]}},"keywords":{}}],["hint",{"_index":1465,"title":{},"content":{"199":{"position":[[227,5],[715,5]]},"214":{"position":[[261,5],[755,5]]},"297":{"position":[[230,5],[700,5]]},"320":{"position":[[236,5],[715,5]]},"330":{"position":[[227,5],[711,5]]}},"keywords":{}}],["histori",{"_index":981,"title":{"160":{"position":[[0,7]]},"161":{"position":[[8,7]]}},"content":{},"keywords":{}}],["hit",{"_index":183,"title":{},"content":{"13":{"position":[[84,3]]},"365":{"position":[[1164,3]]}},"keywords":{}}],["honour",{"_index":2322,"title":{},"content":{"496":{"position":[[21,6]]}},"keywords":{}}],["hook",{"_index":596,"title":{"158":{"position":[[0,5]]}},"content":{"21":{"position":[[2528,5]]},"158":{"position":[[0,5],[21,5]]},"518":{"position":[[167,4],[316,4],[890,4]]}},"keywords":{}}],["hope",{"_index":589,"title":{},"content":{"21":{"position":[[2392,4]]}},"keywords":{}}],["host",{"_index":865,"title":{},"content":{"151":{"position":[[768,6]]}},"keywords":{}}],["hostnam",{"_index":762,"title":{},"content":{"106":{"position":[[384,9]]},"287":{"position":[[338,9]]}},"keywords":{}}],["html",{"_index":2244,"title":{},"content":{"396":{"position":[[112,4]]}},"keywords":{}}],["http",{"_index":139,"title":{"29":{"position":[[12,6]]},"223":{"position":[[0,4]]},"227":{"position":[[0,4]]},"231":{"position":[[0,4]]},"234":{"position":[[0,4]]},"238":{"position":[[0,4]]},"242":{"position":[[0,4]]},"246":{"position":[[0,4]]},"251":{"position":[[0,4]]},"255":{"position":[[0,4]]},"259":{"position":[[0,4]]},"263":{"position":[[0,4]]},"267":{"position":[[0,4]]},"274":{"position":[[0,4]]},"355":{"position":[[0,4]]},"361":{"position":[[24,4]]},"385":{"position":[[0,4]]},"386":{"position":[[0,4]]},"387":{"position":[[0,4]]},"388":{"position":[[0,4]]},"389":{"position":[[0,4]]},"390":{"position":[[0,4]]},"391":{"position":[[0,4]]},"392":{"position":[[0,4]]},"393":{"position":[[0,4]]},"394":{"position":[[0,4]]},"395":{"position":[[0,4]]},"396":{"position":[[0,4]]},"397":{"position":[[0,4]]},"398":{"position":[[0,4]]},"425":{"position":[[0,4]]},"426":{"position":[[0,4]]},"427":{"position":[[0,4]]},"428":{"position":[[0,4]]},"429":{"position":[[0,4]]},"430":{"position":[[0,4]]},"431":{"position":[[0,4]]},"432":{"position":[[0,4]]},"433":{"position":[[0,4]]},"434":{"position":[[0,4]]},"435":{"position":[[0,4]]},"436":{"position":[[0,4]]},"437":{"position":[[0,4]]},"438":{"position":[[0,4]]},"462":{"position":[[0,4]]},"463":{"position":[[0,4]]},"464":{"position":[[0,4]]},"465":{"position":[[0,4]]},"466":{"position":[[0,4]]},"467":{"position":[[0,4]]},"468":{"position":[[0,4]]},"469":{"position":[[0,4]]},"470":{"position":[[0,4]]},"471":{"position":[[0,4]]},"472":{"position":[[0,4]]},"473":{"position":[[0,4]]},"474":{"position":[[0,4]]},"475":{"position":[[0,4]]},"494":{"position":[[0,4]]},"495":{"position":[[0,4]]},"496":{"position":[[0,4]]},"497":{"position":[[0,4]]},"498":{"position":[[0,4]]},"499":{"position":[[0,4]]},"500":{"position":[[0,4]]},"501":{"position":[[0,4]]},"502":{"position":[[0,4]]},"503":{"position":[[0,4]]},"504":{"position":[[0,4]]},"505":{"position":[[0,4]]}},"content":{"8":{"position":[[461,8]]},"16":{"position":[[2030,4]]},"27":{"position":[[41,4]]},"30":{"position":[[54,4]]},"96":{"position":[[54,4]]},"163":{"position":[[554,4]]},"225":{"position":[[863,4]]},"229":{"position":[[218,4]]},"261":{"position":[[212,4]]},"281":{"position":[[258,4],[305,4],[475,4],[562,4],[756,4],[894,4],[1019,4]]},"282":{"position":[[1,4],[29,4],[114,4],[180,4],[231,4],[272,4],[512,4]]},"322":{"position":[[1345,4]]},"324":{"position":[[767,4],[863,4]]},"361":{"position":[[61,4],[338,4],[378,4],[549,4]]},"389":{"position":[[76,4]]},"416":{"position":[[229,4]]},"425":{"position":[[58,4]]},"429":{"position":[[36,4]]},"441":{"position":[[30,6]]},"447":{"position":[[58,4]]},"496":{"position":[[159,4]]}},"keywords":{}}],["http(",{"_index":1168,"title":{},"content":{"168":{"position":[[142,7]]},"170":{"position":[[311,7]]},"171":{"position":[[1156,7]]}},"keywords":{}}],["httpcontentencod",{"_index":1666,"title":{},"content":{"249":{"position":[[109,19]]},"250":{"position":[[109,19]]}},"keywords":{}}],["httpcontentencodingmiddlewar",{"_index":631,"title":{},"content":{"31":{"position":[[244,29]]},"43":{"position":[[244,29]]},"46":{"position":[[295,29]]},"97":{"position":[[244,29]]},"150":{"position":[[244,29]]}},"keywords":{}}],["httpcontentnegoti",{"_index":1572,"title":{},"content":{"226":{"position":[[40,22],[830,24]]},"249":{"position":[[40,22]]},"250":{"position":[[40,22]]}},"keywords":{}}],["httpcontentnegotiationmiddlewar",{"_index":629,"title":{},"content":{"31":{"position":[[165,32],[1558,34]]},"43":{"position":[[165,32],[1558,34]]},"46":{"position":[[216,32],[1683,34]]},"97":{"position":[[165,32],[1583,34]]},"150":{"position":[[165,32],[1570,34]]}},"keywords":{}}],["httpcontentnegotiationmiddlewarebefor",{"_index":552,"title":{},"content":{"21":{"position":[[1567,38]]}},"keywords":{}}],["httpcorsmiddlewar",{"_index":632,"title":{},"content":{"31":{"position":[[317,18]]},"43":{"position":[[317,18]]},"46":{"position":[[368,18]]},"97":{"position":[[317,18]]},"150":{"position":[[317,18]]}},"keywords":{}}],["httpcorsmiddlewareaft",{"_index":561,"title":{},"content":{"21":{"position":[[1759,23]]}},"keywords":{}}],["httperror.expos",{"_index":2323,"title":{},"content":{"496":{"position":[[28,17]]}},"keywords":{}}],["httperrorhandl",{"_index":246,"title":{},"content":{"16":{"position":[[359,16]]},"226":{"position":[[174,16]]},"230":{"position":[[40,16]]},"240":{"position":[[1376,16]]}},"keywords":{}}],["httperrorhandlermiddlewar",{"_index":634,"title":{},"content":{"31":{"position":[[367,26]]},"43":{"position":[[367,26]]},"46":{"position":[[418,26]]},"97":{"position":[[367,26]]},"150":{"position":[[367,26]]}},"keywords":{}}],["httpeventnorm",{"_index":1603,"title":{},"content":{"233":{"position":[[40,19]]}},"keywords":{}}],["httpeventnormalizermiddlewar",{"_index":635,"title":{},"content":{"31":{"position":[[434,29]]},"43":{"position":[[434,29]]},"46":{"position":[[485,29]]},"97":{"position":[[434,29]]},"150":{"position":[[434,29]]}},"keywords":{}}],["httpeventnormalizermiddlewarebefor",{"_index":542,"title":{},"content":{"21":{"position":[[1319,35]]}},"keywords":{}}],["httpheadernorm",{"_index":1573,"title":{},"content":{"226":{"position":[[109,20]]},"237":{"position":[[40,20]]},"245":{"position":[[40,20]]},"254":{"position":[[40,20]]},"266":{"position":[[40,20]]},"361":{"position":[[18,20]]}},"keywords":{}}],["httpheadernormalizermiddlewar",{"_index":637,"title":{},"content":{"31":{"position":[[507,30]]},"43":{"position":[[507,30]]},"46":{"position":[[558,30]]},"97":{"position":[[507,30]]},"150":{"position":[[519,30]]}},"keywords":{}}],["httpheadernormalizermiddlewarebefor",{"_index":544,"title":{},"content":{"21":{"position":[[1367,36]]}},"keywords":{}}],["httpjsonbodypars",{"_index":1644,"title":{},"content":{"245":{"position":[[105,18]]},"368":{"position":[[1543,18]]}},"keywords":{}}],["httpjsonbodyparsermiddlewar",{"_index":639,"title":{},"content":{"31":{"position":[[582,28]]},"43":{"position":[[582,28]]},"46":{"position":[[633,28]]},"97":{"position":[[582,28]]},"150":{"position":[[594,28]]}},"keywords":{}}],["httpjsonbodyparsermiddlewarebefor",{"_index":550,"title":{},"content":{"21":{"position":[[1520,34]]}},"keywords":{}}],["httpmultipartbodypars",{"_index":1696,"title":{},"content":{"254":{"position":[[105,23]]}},"keywords":{}}],["httpmultipartbodyparsermiddlewar",{"_index":640,"title":{},"content":{"31":{"position":[[654,33]]},"43":{"position":[[654,33]]},"46":{"position":[[705,33]]},"97":{"position":[[654,33]]},"150":{"position":[[666,33]]}},"keywords":{}}],["httppartialrespons",{"_index":1706,"title":{},"content":{"258":{"position":[[40,19]]}},"keywords":{}}],["httppartialresponsemiddlewar",{"_index":642,"title":{},"content":{"31":{"position":[[736,29]]},"43":{"position":[[736,29]]},"46":{"position":[[787,29]]},"97":{"position":[[736,29]]},"150":{"position":[[748,29]]}},"keywords":{}}],["httpresponseseri",{"_index":1775,"title":{},"content":{"273":{"position":[[40,22],[248,24]]}},"keywords":{}}],["httpresponseserializermiddlewar",{"_index":644,"title":{},"content":{"31":{"position":[[809,32],[1990,34]]},"43":{"position":[[809,32],[1990,34]]},"46":{"position":[[860,32],[2115,34]]},"97":{"position":[[809,32],[2015,34]]},"150":{"position":[[821,32],[2002,34]]}},"keywords":{}}],["httprouterhandl",{"_index":703,"title":{},"content":{"46":{"position":[[40,17]]},"358":{"position":[[40,17]]}},"keywords":{}}],["https://ajv.js.org/json",{"_index":2157,"title":{},"content":{"368":{"position":[[1985,23]]}},"keywords":{}}],["https://aws.amazon.com/about",{"_index":2252,"title":{},"content":{"406":{"position":[[39,28]]}},"keywords":{}}],["https://docs.aws.amazon.com/amazonrds/latest/userguide/usingwithrds.ssl.html",{"_index":859,"title":{},"content":{"151":{"position":[[561,76]]}},"keywords":{}}],["https://github.com/aws/aw",{"_index":1886,"title":{},"content":{"305":{"position":[[695,26]]}},"keywords":{}}],["https://github.com/evanw/esbuild/pull/2067",{"_index":48,"title":{},"content":{"5":{"position":[[42,42]]}},"keywords":{}}],["https://github.com/middyjs/middy/issues/945",{"_index":2291,"title":{},"content":{"468":{"position":[[212,43]]}},"keywords":{}}],["httpscaptur",{"_index":799,"title":{},"content":{"122":{"position":[[276,13]]}},"keywords":{}}],["httpsecurityhead",{"_index":1746,"title":{},"content":{"262":{"position":[[40,19]]}},"keywords":{}}],["httpsecurityheadersmiddlewar",{"_index":645,"title":{},"content":{"31":{"position":[[888,29]]},"43":{"position":[[888,29]]},"46":{"position":[[939,29]]},"97":{"position":[[888,29]]},"150":{"position":[[900,29]]}},"keywords":{}}],["httpsecurityheadersmiddlewareaft",{"_index":559,"title":{},"content":{"21":{"position":[[1713,34]]}},"keywords":{}}],["httpurlencodebodypars",{"_index":1749,"title":{},"content":{"266":{"position":[[105,23]]}},"keywords":{}}],["httpurlencodebodyparsermiddlewar",{"_index":646,"title":{},"content":{"31":{"position":[[961,33]]},"43":{"position":[[961,33]]},"46":{"position":[[1012,33]]},"97":{"position":[[961,33]]},"150":{"position":[[973,33]]}},"keywords":{}}],["httpurlencodebodyparsermiddlewarebefor",{"_index":548,"title":{},"content":{"21":{"position":[[1468,39]]}},"keywords":{}}],["httpurlencodepathparametersparsermiddlewar",{"_index":648,"title":{},"content":{"31":{"position":[[1043,43]]},"43":{"position":[[1043,43]]},"46":{"position":[[1094,43]]},"97":{"position":[[1043,43]]},"150":{"position":[[1055,43]]}},"keywords":{}}],["httpurlencodepathpars",{"_index":1784,"title":{},"content":{"277":{"position":[[40,23]]}},"keywords":{}}],["httpurlencodepathparsermiddlewarebefor",{"_index":546,"title":{},"content":{"21":{"position":[[1416,39]]}},"keywords":{}}],["hydrat",{"_index":1790,"title":{},"content":{"280":{"position":[[21,8]]}},"keywords":{}}],["i.",{"_index":1435,"title":{},"content":{"196":{"position":[[81,5]]},"207":{"position":[[79,5]]},"236":{"position":[[226,4]]},"286":{"position":[[63,5]]},"294":{"position":[[67,5]]},"305":{"position":[[67,5]]},"311":{"position":[[95,5]]},"317":{"position":[[91,5]]},"327":{"position":[[69,5]]},"333":{"position":[[69,5]]},"346":{"position":[[103,5]]}},"keywords":{}}],["i18n",{"_index":2127,"title":{},"content":{"365":{"position":[[621,4]]},"366":{"position":[[71,5]]},"371":{"position":[[228,5],[242,5]]},"484":{"position":[[994,5]]},"515":{"position":[[334,4]]}},"keywords":{}}],["i18n/localize/.eslintrc.yml",{"_index":394,"title":{},"content":{"18":{"position":[[567,27]]}},"keywords":{}}],["i18nen",{"_index":2297,"title":{},"content":{"484":{"position":[[216,11]]}},"keywords":{}}],["iam",{"_index":1454,"title":{},"content":{"196":{"position":[[1102,3]]},"207":{"position":[[1097,3]]},"283":{"position":[[151,3],[519,3]]},"286":{"position":[[830,3]]},"294":{"position":[[1074,3]]},"305":{"position":[[797,3]]},"311":{"position":[[1124,3]]},"317":{"position":[[1577,3]]},"327":{"position":[[1107,3]]},"333":{"position":[[935,3]]},"346":{"position":[[731,3]]},"507":{"position":[[66,3]]}},"keywords":{}}],["iam_rol",{"_index":765,"title":{},"content":{"106":{"position":[[430,11]]},"287":{"position":[[383,11]]}},"keywords":{}}],["icon",{"_index":1030,"title":{},"content":{"161":{"position":[[695,4]]}},"keywords":{}}],["id",{"_index":501,"title":{},"content":{"21":{"position":[[181,4],[245,4]]},"22":{"position":[[203,4],[267,4]]},"159":{"position":[[686,2]]},"167":{"position":[[1491,2]]},"179":{"position":[[435,3]]},"182":{"position":[[916,2]]},"357":{"position":[[270,7]]}},"keywords":{}}],["idea",{"_index":1334,"title":{},"content":{"186":{"position":[[284,5]]},"199":{"position":[[398,4]]},"214":{"position":[[430,4]]},"297":{"position":[[387,4]]},"320":{"position":[[406,4]]},"330":{"position":[[386,4]]}},"keywords":{}}],["idempot",{"_index":1057,"title":{"176":{"position":[[0,12]]}},"content":{"163":{"position":[[836,10]]},"176":{"position":[[230,11],[457,11],[595,10],[718,10]]},"178":{"position":[[234,11]]},"322":{"position":[[622,11],[634,11]]}},"keywords":{}}],["idempotencyconfig",{"_index":1262,"title":{},"content":{"178":{"position":[[140,19]]}},"keywords":{}}],["idempotencytablenam",{"_index":1270,"title":{},"content":{"179":{"position":[[318,23]]}},"keywords":{}}],["identifi",{"_index":592,"title":{},"content":{"21":{"position":[[2430,8]]},"167":{"position":[[2062,8]]}},"keywords":{}}],["ie",{"_index":466,"title":{},"content":{"19":{"position":[[482,2]]},"353":{"position":[[128,2]]}},"keywords":{}}],["ie8+nosniff",{"_index":1737,"title":{},"content":{"261":{"position":[[279,11]]}},"keywords":{}}],["ignored.middi",{"_index":1939,"title":{},"content":{"322":{"position":[[386,13]]}},"keywords":{}}],["illustr",{"_index":1472,"title":{},"content":{"199":{"position":[[915,11]]},"214":{"position":[[967,11]]},"297":{"position":[[912,11]]},"320":{"position":[[927,11]]},"330":{"position":[[911,11]]}},"keywords":{}}],["imag",{"_index":1317,"title":{},"content":{"185":{"position":[[378,5]]}},"keywords":{}}],["immedi",{"_index":960,"title":{},"content":{"159":{"position":[[96,12]]},"182":{"position":[[126,12]]}},"keywords":{}}],["impact",{"_index":1203,"title":{},"content":{"172":{"position":[[327,6]]},"175":{"position":[[1050,6]]},"253":{"position":[[836,6]]}},"keywords":{}}],["implement",{"_index":323,"title":{},"content":{"17":{"position":[[131,12]]},"153":{"position":[[178,11]]},"156":{"position":[[151,12]]}},"keywords":{}}],["import",{"_index":73,"title":{"302":{"position":[[0,10]]}},"content":{"6":{"position":[[125,6],[183,6]]},"8":{"position":[[79,6],[108,6]]},"16":{"position":[[145,6],[157,6],[270,6],[294,6],[352,6],[409,6],[450,6]]},"19":{"position":[[180,6],[212,6]]},"22":{"position":[[1,6]]},"26":{"position":[[1,6]]},"28":{"position":[[1,6]]},"31":{"position":[[1,6],[33,6],[89,6],[158,6],[237,6],[310,6],[360,6],[427,6],[500,6],[575,6],[647,6],[729,6],[802,6],[881,6],[954,6],[1036,6],[1128,6],[1172,6],[1210,6],[1279,6]]},"34":{"position":[[1,6]]},"37":{"position":[[1,6],[33,6],[101,6],[155,6],[202,6],[268,6],[340,6]]},"40":{"position":[[1,6]]},"43":{"position":[[1,6],[33,6],[89,6],[158,6],[237,6],[310,6],[360,6],[427,6],[500,6],[575,6],[647,6],[729,6],[802,6],[881,6],[954,6],[1036,6],[1128,6],[1172,6],[1210,6],[1279,6]]},"46":{"position":[[1,6],[33,6],[84,6],[140,6],[209,6],[288,6],[361,6],[411,6],[478,6],[551,6],[626,6],[698,6],[780,6],[853,6],[932,6],[1005,6],[1087,6],[1179,6],[1217,6],[1280,6]]},"49":{"position":[[1,6]]},"52":{"position":[[1,6],[33,6]]},"55":{"position":[[1,6]]},"58":{"position":[[1,6]]},"61":{"position":[[1,6],[33,6]]},"64":{"position":[[1,6],[33,6]]},"67":{"position":[[1,6],[33,6]]},"70":{"position":[[1,6]]},"73":{"position":[[1,6]]},"76":{"position":[[1,6]]},"79":{"position":[[1,6]]},"82":{"position":[[1,6]]},"85":{"position":[[1,6]]},"88":{"position":[[1,6]]},"91":{"position":[[1,6],[33,6]]},"94":{"position":[[1,6],[33,6]]},"97":{"position":[[1,6],[33,6],[89,6],[158,6],[237,6],[310,6],[360,6],[427,6],[500,6],[575,6],[647,6],[729,6],[802,6],[881,6],[954,6],[1036,6],[1128,6],[1172,6],[1210,6],[1279,6]]},"100":{"position":[[1,6],[33,6]]},"103":{"position":[[1,6],[33,6]]},"105":{"position":[[1,6],[33,6],[101,6],[157,6],[226,6],[270,6],[308,6],[377,6]]},"106":{"position":[[1,6],[33,6],[75,6],[127,6],[189,6],[228,6]]},"107":{"position":[[1,6],[33,6],[75,6],[126,6],[163,6],[212,6]]},"110":{"position":[[1,6],[33,6]]},"113":{"position":[[1,6],[33,6]]},"116":{"position":[[1,6],[33,6]]},"119":{"position":[[1,6]]},"122":{"position":[[1,6],[33,6],[100,6]]},"125":{"position":[[1,6],[33,6]]},"128":{"position":[[1,6]]},"131":{"position":[[1,6],[33,6]]},"134":{"position":[[1,6]]},"137":{"position":[[1,6]]},"140":{"position":[[144,6],[176,6],[233,6],[291,6],[342,6]]},"143":{"position":[[1,6],[33,6],[97,6]]},"150":{"position":[[1,6],[33,6],[89,6],[158,6],[237,6],[310,6],[360,6],[427,6],[512,6],[587,6],[659,6],[741,6],[814,6],[893,6],[966,6],[1048,6],[1140,6],[1184,6],[1222,6],[1291,6]]},"151":{"position":[[536,6]]},"157":{"position":[[1,6],[33,6],[78,6],[123,6],[479,6],[511,6],[556,6],[601,6]]},"167":{"position":[[1,6],[34,6]]},"171":{"position":[[1,6],[34,6],[112,6]]},"175":{"position":[[1,6],[34,6]]},"179":{"position":[[1,6],[34,6],[76,6],[163,6]]},"182":{"position":[[804,6]]},"189":{"position":[[852,9]]},"191":{"position":[[1,6],[33,6]]},"192":{"position":[[1,6],[33,6]]},"193":{"position":[[1,6]]},"197":{"position":[[1,6],[33,6]]},"199":{"position":[[953,6],[985,6]]},"200":{"position":[[259,6],[291,6],[343,6]]},"211":{"position":[[1,6],[33,6]]},"212":{"position":[[1,6],[33,6]]},"214":{"position":[[1004,6],[1036,6]]},"218":{"position":[[1,6],[33,6]]},"222":{"position":[[1,6],[33,6]]},"226":{"position":[[1,6],[33,6],[102,6],[167,6]]},"230":{"position":[[1,6],[33,6]]},"233":{"position":[[1,6],[33,6]]},"237":{"position":[[1,6],[33,6]]},"240":{"position":[[1337,6],[1369,6],[1426,6]]},"241":{"position":[[1,6],[33,6]]},"245":{"position":[[1,6],[33,6],[98,6],[424,9]]},"248":{"position":[[373,9]]},"249":{"position":[[1,6],[33,6],[102,6],[165,6]]},"250":{"position":[[1,6],[33,6],[102,6],[165,6],[203,6]]},"254":{"position":[[1,6],[33,6],[98,6]]},"258":{"position":[[1,6],[33,6]]},"262":{"position":[[1,6],[33,6]]},"266":{"position":[[1,6],[33,6],[98,6]]},"273":{"position":[[1,6],[33,6]]},"277":{"position":[[1,6],[33,6]]},"287":{"position":[[1,6],[33,6]]},"290":{"position":[[276,6]]},"291":{"position":[[1,6],[33,6],[338,6],[370,6],[429,6]]},"295":{"position":[[1,6],[33,6]]},"297":{"position":[[943,6],[975,6]]},"301":{"position":[[1,6],[33,6]]},"307":{"position":[[1,6],[25,6],[57,6]]},"308":{"position":[[1,6],[25,6],[57,6]]},"312":{"position":[[1,6],[33,6]]},"318":{"position":[[1,6],[33,6]]},"320":{"position":[[959,6],[991,6]]},"328":{"position":[[1,6],[33,6],[501,6],[533,6],[575,6]]},"330":{"position":[[945,6],[977,6],[1019,6]]},"334":{"position":[[1,6],[33,6]]},"343":{"position":[[1,6],[33,6],[101,6]]},"348":{"position":[[1,6],[33,6]]},"349":{"position":[[1,6],[33,6]]},"354":{"position":[[1,6],[33,6],[80,6],[134,6]]},"358":{"position":[[1,6],[33,6],[84,6]]},"368":{"position":[[32,6],[64,6],[105,6],[797,6],[829,6],[870,6],[1504,6],[1536,6],[1598,6],[1639,6]]},"369":{"position":[[615,6],[647,6],[688,6],[732,6],[757,6]]},"370":{"position":[[1,6],[45,6],[77,6],[118,6],[196,6]]},"371":{"position":[[1,6],[45,6],[77,6],[118,6],[196,6],[265,6]]},"484":{"position":[[590,6],[647,6],[670,6],[884,6],[941,6],[962,6]]},"490":{"position":[[962,6],[994,6]]},"518":{"position":[[415,6]]},"520":{"position":[[462,6]]},"521":{"position":[[123,6],[155,6]]},"522":{"position":[[545,6]]}},"keywords":{}}],["improp",{"_index":1408,"title":{},"content":{"189":{"position":[[1397,8]]}},"keywords":{}}],["improv",{"_index":594,"title":{},"content":{"21":{"position":[[2460,7]]},"384":{"position":[[66,12]]},"387":{"position":[[94,12]]},"394":{"position":[[49,7]]},"521":{"position":[[968,12]]}},"keywords":{}}],["in.disableprefetch",{"_index":1881,"title":{},"content":{"305":{"position":[[332,18]]},"346":{"position":[[547,18]]}},"keywords":{}}],["in.fetchdata",{"_index":1441,"title":{},"content":{"196":{"position":[[497,12]]},"207":{"position":[[493,12]]},"294":{"position":[[476,12]]},"311":{"position":[[525,12]]},"317":{"position":[[491,12]]},"327":{"position":[[456,12]]},"333":{"position":[[336,12]]}},"keywords":{}}],["incas",{"_index":471,"title":{},"content":{"19":{"position":[[599,6]]}},"keywords":{}}],["includ",{"_index":576,"title":{},"content":{"21":{"position":[[2004,8]]},"158":{"position":[[663,9]]},"167":{"position":[[1188,8],[1834,7],[1982,7]]},"290":{"position":[[115,7]]},"333":{"position":[[985,8]]},"379":{"position":[[23,8]]},"484":{"position":[[533,9]]},"515":{"position":[[161,8],[284,8]]}},"keywords":{}}],["inclus",{"_index":2243,"title":{},"content":{"396":{"position":[[95,9]]},"449":{"position":[[8,9]]}},"keywords":{}}],["incom",{"_index":1625,"title":{},"content":{"240":{"position":[[761,8]]},"281":{"position":[[1090,8]]}},"keywords":{}}],["incomplet",{"_index":115,"title":{},"content":{"7":{"position":[[63,10]]}},"keywords":{}}],["increas",{"_index":2024,"title":{},"content":{"327":{"position":[[1307,10]]}},"keywords":{}}],["independ",{"_index":349,"title":{"360":{"position":[[0,11]]}},"content":{"17":{"position":[[838,11]]},"163":{"position":[[58,13]]},"186":{"position":[[247,11]]},"360":{"position":[[41,11]]}},"keywords":{}}],["index",{"_index":1872,"title":{},"content":{"301":{"position":[[192,6]]}},"keywords":{}}],["index.bundle.rollup.mj",{"_index":84,"title":{},"content":{"6":{"position":[[365,26]]}},"keywords":{}}],["index.bundle.webpack.mj",{"_index":132,"title":{},"content":{"8":{"position":[[321,27]]}},"keywords":{}}],["index.handl",{"_index":1187,"title":{},"content":{"171":{"position":[[592,13]]}},"keywords":{}}],["index.j",{"_index":50,"title":{},"content":{"5":{"position":[[111,8]]},"6":{"position":[[337,11]]},"8":{"position":[[287,13]]},"10":{"position":[[75,8]]},"11":{"position":[[89,8]]},"12":{"position":[[51,8]]}},"keywords":{}}],["index.transpile.babel.cj",{"_index":154,"title":{},"content":{"10":{"position":[[95,25]]}},"keywords":{}}],["index.transpile.swc.cj",{"_index":166,"title":{},"content":{"12":{"position":[[71,23]]}},"keywords":{}}],["indic",{"_index":1147,"title":{},"content":{"167":{"position":[[1371,9]]},"171":{"position":[[788,8]]},"317":{"position":[[713,9]]}},"keywords":{}}],["inevit",{"_index":1692,"title":{},"content":{"253":{"position":[[692,10]]}},"keywords":{}}],["infinit",{"_index":2280,"title":{},"content":{"444":{"position":[[76,8]]}},"keywords":{}}],["influenc",{"_index":1328,"title":{"186":{"position":[[0,9]]}},"content":{"186":{"position":[[0,9]]}},"keywords":{}}],["info",{"_index":1078,"title":{},"content":{"166":{"position":[[133,5],[199,5]]},"167":{"position":[[255,4],[876,4]]}},"keywords":{}}],["inform",{"_index":1683,"title":{},"content":{"253":{"position":[[182,11]]}},"keywords":{}}],["inherits/inherits_browser.j",{"_index":412,"title":{},"content":{"18":{"position":[[880,31]]}},"keywords":{}}],["initi",{"_index":577,"title":{},"content":{"21":{"position":[[2017,7]]},"153":{"position":[[769,10]]},"161":{"position":[[70,9]]}},"keywords":{}}],["injectlambdacontext",{"_index":1098,"title":{},"content":{"167":{"position":[[51,19]]}},"keywords":{}}],["inlin",{"_index":944,"title":{"518":{"position":[[0,6]]}},"content":{"157":{"position":[[850,6]]},"468":{"position":[[60,6]]},"518":{"position":[[0,6],[265,6],[368,6],[905,6]]}},"keywords":{}}],["inpath",{"_index":2077,"title":{},"content":{"357":{"position":[[196,6]]}},"keywords":{}}],["input",{"_index":80,"title":{"278":{"position":[[0,5]]},"399":{"position":[[0,5]]},"439":{"position":[[0,5]]},"476":{"position":[[0,5]]},"506":{"position":[[0,5]]}},"content":{"6":{"position":[[313,7],[330,6]]},"16":{"position":[[1981,5]]},"17":{"position":[[289,5]]},"176":{"position":[[577,5]]},"272":{"position":[[572,6]]},"294":{"position":[[1220,5]]},"365":{"position":[[106,5],[257,5]]}},"keywords":{}}],["inputoutputlogg",{"_index":1855,"title":{},"content":{"291":{"position":[[40,17],[377,17],[584,19]]}},"keywords":{}}],["inputoutputloggermiddlewar",{"_index":627,"title":{},"content":{"31":{"position":[[96,27]]},"43":{"position":[[96,27]]},"46":{"position":[[147,27]]},"97":{"position":[[96,27]]},"105":{"position":[[164,27]]},"150":{"position":[[96,27]]}},"keywords":{}}],["inputoutputloggermiddlewareaft",{"_index":563,"title":{},"content":{"21":{"position":[[1795,32]]}},"keywords":{}}],["inputoutputloggermiddlewarebefor",{"_index":540,"title":{},"content":{"21":{"position":[[1273,33]]}},"keywords":{}}],["inputschema",{"_index":2259,"title":{},"content":{"409":{"position":[[160,11]]},"484":{"position":[[153,11]]}},"keywords":{}}],["insert",{"_index":301,"title":{},"content":{"16":{"position":[[1640,6]]}},"keywords":{}}],["insid",{"_index":1498,"title":{},"content":{"200":{"position":[[1346,6]]}},"keywords":{}}],["instal",{"_index":913,"title":{"155":{"position":[[0,8]]},"165":{"position":[[0,8]]},"169":{"position":[[0,8]]},"173":{"position":[[0,8]]},"177":{"position":[[0,8]]},"195":{"position":[[0,8]]},"202":{"position":[[0,8]]},"206":{"position":[[0,8]]},"209":{"position":[[0,8]]},"216":{"position":[[0,8]]},"220":{"position":[[0,8]]},"224":{"position":[[0,8]]},"228":{"position":[[0,8]]},"232":{"position":[[0,8]]},"235":{"position":[[0,8]]},"239":{"position":[[0,8]]},"243":{"position":[[0,8]]},"247":{"position":[[0,8]]},"252":{"position":[[0,8]]},"256":{"position":[[0,8]]},"260":{"position":[[0,8]]},"264":{"position":[[0,8]]},"268":{"position":[[0,8]]},"275":{"position":[[0,8]]},"285":{"position":[[0,8]]},"289":{"position":[[0,8]]},"293":{"position":[[0,8]]},"299":{"position":[[0,8]]},"304":{"position":[[0,8]]},"310":{"position":[[0,8]]},"316":{"position":[[0,8]]},"326":{"position":[[0,8]]},"332":{"position":[[0,8]]},"337":{"position":[[0,8]]},"341":{"position":[[0,8]]},"345":{"position":[[0,8]]},"352":{"position":[[0,8]]},"356":{"position":[[0,8]]},"364":{"position":[[0,8]]}},"content":{"155":{"position":[[4,7],[53,7],[157,9],[223,7]]},"165":{"position":[[17,7]]},"169":{"position":[[17,7]]},"173":{"position":[[17,7]]},"177":{"position":[[17,7]]},"195":{"position":[[4,7],[62,7],[98,7]]},"202":{"position":[[4,7],[62,7]]},"206":{"position":[[4,7],[62,7],[97,7]]},"209":{"position":[[4,7],[62,7]]},"216":{"position":[[4,7],[62,7]]},"220":{"position":[[4,7],[62,7]]},"224":{"position":[[4,7],[62,7]]},"228":{"position":[[4,7],[62,7]]},"232":{"position":[[4,7],[62,7]]},"235":{"position":[[4,7],[62,7]]},"239":{"position":[[4,7],[62,7]]},"243":{"position":[[4,7],[62,7]]},"247":{"position":[[4,7],[62,7]]},"252":{"position":[[4,7],[62,7]]},"256":{"position":[[4,7],[62,7]]},"260":{"position":[[4,7],[62,7]]},"264":{"position":[[4,7],[62,7]]},"268":{"position":[[4,7],[62,7]]},"275":{"position":[[4,7],[62,7]]},"285":{"position":[[4,7],[62,7],[99,7]]},"289":{"position":[[4,7],[62,7]]},"293":{"position":[[4,7],[62,7],[91,7]]},"299":{"position":[[4,7],[62,7],[140,7]]},"304":{"position":[[4,7],[62,7],[107,7]]},"310":{"position":[[4,7],[62,7],[106,7]]},"316":{"position":[[4,7],[62,7],[104,7]]},"326":{"position":[[4,7],[62,7],[92,7]]},"332":{"position":[[4,7],[62,7],[92,7]]},"337":{"position":[[4,7],[62,7]]},"341":{"position":[[4,7],[50,7]]},"345":{"position":[[4,7],[62,7],[100,7]]},"352":{"position":[[4,7],[50,7]]},"356":{"position":[[4,7],[62,7]]},"360":{"position":[[257,7]]},"364":{"position":[[4,7],[62,7],[98,7]]}},"keywords":{}}],["instanc",{"_index":928,"title":{},"content":{"156":{"position":[[333,8]]},"166":{"position":[[548,8]]},"170":{"position":[[442,8]]},"174":{"position":[[364,8]]},"253":{"position":[[110,8]]},"280":{"position":[[72,8]]},"283":{"position":[[359,9]]},"312":{"position":[[323,10]]},"317":{"position":[[1030,9]]},"361":{"position":[[116,8]]},"518":{"position":[[807,8]]}},"keywords":{}}],["instead",{"_index":1547,"title":{},"content":{"221":{"position":[[82,7]]},"379":{"position":[[228,7]]},"399":{"position":[[27,7]]},"423":{"position":[[41,7]]},"425":{"position":[[36,7]]},"447":{"position":[[36,7]]}},"keywords":{}}],["instruct",{"_index":1061,"title":{},"content":{"164":{"position":[[150,10]]},"171":{"position":[[527,9]]}},"keywords":{}}],["instrument",{"_index":1436,"title":{},"content":{"196":{"position":[[101,12]]},"207":{"position":[[99,12]]},"286":{"position":[[83,12]]},"294":{"position":[[87,12]]},"305":{"position":[[87,12]]},"311":{"position":[[115,12]]},"317":{"position":[[111,12]]},"327":{"position":[[89,12]]},"333":{"position":[[89,12]]},"346":{"position":[[123,12]]}},"keywords":{}}],["instrumentation.support",{"_index":1173,"title":{},"content":{"168":{"position":[[267,26]]}},"keywords":{}}],["integ",{"_index":292,"title":{},"content":{"16":{"position":[[1373,10],[1431,10]]}},"keywords":{}}],["integr",{"_index":839,"title":{"144":{"position":[[0,12]]}},"content":{"144":{"position":[[0,12]]}},"keywords":{}}],["interact",{"_index":1259,"title":{},"content":{"178":{"position":[[99,8]]}},"keywords":{}}],["intern",{"_index":451,"title":{"19":{"position":[[0,8]]},"522":{"position":[[0,8]]}},"content":{"19":{"position":[[0,8],[95,9],[336,9],[635,8],[851,8]]},"196":{"position":[[319,8],[542,8]]},"199":{"position":[[589,11],[874,8]]},"207":{"position":[[315,8],[538,8]]},"214":{"position":[[630,11],[926,8]]},"253":{"position":[[94,8],[514,10]]},"286":{"position":[[269,8]]},"294":{"position":[[298,8],[521,8]]},"297":{"position":[[581,11],[871,8]]},"311":{"position":[[347,8],[570,8]]},"317":{"position":[[322,8],[536,8],[678,8]]},"320":{"position":[[598,11],[886,8]]},"327":{"position":[[278,8],[501,8]]},"330":{"position":[[582,11],[870,8]]},"333":{"position":[[381,8]]},"346":{"position":[[369,8]]},"378":{"position":[[618,9]]},"522":{"position":[[0,8],[46,8],[292,8]]}},"keywords":{}}],["internalkey",{"_index":2382,"title":{},"content":{"522":{"position":[[653,12],[925,11]]}},"keywords":{}}],["internation",{"_index":2304,"title":{},"content":{"484":{"position":[[494,20]]}},"keywords":{}}],["internet",{"_index":730,"title":{"80":{"position":[[0,8]]}},"content":{},"keywords":{}}],["into"steps"",{"_index":346,"title":{},"content":{"17":{"position":[[726,21]]}},"keywords":{}}],["intro",{"_index":175,"title":{"13":{"position":[[0,5]]},"163":{"position":[[0,6]]}},"content":{"13":{"position":[[0,5]]}},"keywords":{}}],["introduct",{"_index":190,"title":{"14":{"position":[[0,12]]}},"content":{},"keywords":{}}],["intuit",{"_index":2108,"title":{},"content":{"361":{"position":[[451,9]]}},"keywords":{}}],["invalid",{"_index":1643,"title":{},"content":{"244":{"position":[[193,8]]},"253":{"position":[[378,8]]},"265":{"position":[[86,8]]}},"keywords":{}}],["invert",{"_index":1324,"title":{},"content":{"185":{"position":[[620,8]]}},"keywords":{}}],["invoc",{"_index":14,"title":{},"content":{"0":{"position":[[210,12]]},"163":{"position":[[541,12]]},"164":{"position":[[127,10],[230,11]]},"166":{"position":[[697,10],[811,11]]},"167":{"position":[[1509,11],[1732,10],[2110,11],[2185,10],[2313,11]]},"170":{"position":[[602,10]]},"171":{"position":[[938,10]]},"181":{"position":[[365,11],[446,11],[645,10]]},"322":{"position":[[672,11],[728,10],[1129,10]]},"379":{"position":[[110,10]]}},"keywords":{}}],["invok",{"_index":961,"title":{},"content":{"159":{"position":[[140,6],[487,7]]},"229":{"position":[[65,7]]},"245":{"position":[[333,7]]},"254":{"position":[[348,7]]},"368":{"position":[[542,7]]}},"keywords":{}}],["invokewithresponsestream",{"_index":1418,"title":{"192":{"position":[[7,24]]}},"content":{},"keywords":{}}],["invokewithresponsestreamcommand",{"_index":1420,"title":{},"content":{"193":{"position":[[24,31],[157,33]]}},"keywords":{}}],["iot",{"_index":732,"title":{"80":{"position":[[19,5]]},"83":{"position":[[0,3]]}},"content":{"81":{"position":[[27,3]]},"84":{"position":[[27,3]]}},"keywords":{}}],["isbase64encod",{"_index":1702,"title":{},"content":{"254":{"position":[[675,16]]}},"keywords":{}}],["isol",{"_index":345,"title":{},"content":{"17":{"position":[[686,7]]}},"keywords":{}}],["issu",{"_index":186,"title":{},"content":{"13":{"position":[[116,7]]},"152":{"position":[[130,6]]},"189":{"position":[[1116,6]]}},"keywords":{}}],["iswarmingup",{"_index":2054,"title":{},"content":{"338":{"position":[[1,12]]},"339":{"position":[[147,11],[247,11]]}},"keywords":{}}],["it'",{"_index":307,"title":{},"content":{"16":{"position":[[1865,4]]},"19":{"position":[[52,4]]},"158":{"position":[[32,4]]},"159":{"position":[[1065,4]]},"181":{"position":[[663,4]]},"182":{"position":[[524,4],[1370,4]]},"199":{"position":[[63,4]]},"214":{"position":[[62,4]]},"253":{"position":[[788,4]]},"282":{"position":[[360,4]]},"297":{"position":[[66,4]]},"320":{"position":[[75,4]]},"330":{"position":[[53,4]]},"338":{"position":[[139,4]]},"441":{"position":[[102,4]]},"515":{"position":[[18,4],[189,4]]}},"keywords":{}}],["item",{"_index":1878,"title":{},"content":{"302":{"position":[[135,4]]},"323":{"position":[[256,5]]}},"keywords":{}}],["iter",{"_index":1798,"title":{},"content":{"281":{"position":[[34,9]]}},"keywords":{}}],["itself",{"_index":2116,"title":{},"content":{"362":{"position":[[132,6]]}},"keywords":{}}],["javascript",{"_index":1022,"title":{},"content":{"161":{"position":[[575,10]]},"221":{"position":[[119,10]]},"324":{"position":[[1002,10]]},"366":{"position":[[29,11]]}},"keywords":{}}],["jest",{"_index":1403,"title":{},"content":{"189":{"position":[[1210,4]]}},"keywords":{}}],["jmespath",{"_index":1242,"title":{},"content":{"176":{"position":[[252,8]]}},"keywords":{}}],["john",{"_index":1708,"title":{},"content":{"258":{"position":[[198,7],[573,7]]}},"keywords":{}}],["joi",{"_index":1963,"title":{},"content":{"322":{"position":[[1314,4],[1319,3]]},"324":{"position":[[269,3]]}},"keywords":{}}],["js",{"_index":2265,"title":{},"content":{"416":{"position":[[32,2]]}},"keywords":{}}],["js.map",{"_index":436,"title":{},"content":{"18":{"position":[[1370,8]]}},"keywords":{}}],["js/dist/esnext",{"_index":431,"title":{},"content":{"18":{"position":[[1283,14]]}},"keywords":{}}],["jsawardsi",{"_index":1020,"title":{},"content":{"161":{"position":[[547,10]]}},"keywords":{}}],["json",{"_index":233,"title":{"242":{"position":[[5,4]]},"308":{"position":[[0,5]]},"340":{"position":[[3,4]]},"391":{"position":[[5,4]]},"405":{"position":[[4,4]]},"411":{"position":[[3,4]]},"431":{"position":[[5,4]]},"449":{"position":[[3,4]]},"468":{"position":[[5,4]]},"486":{"position":[[3,4]]},"499":{"position":[[5,4]]},"511":{"position":[[4,4]]}},"content":{"16":{"position":[[99,4],[334,4],[1872,4]]},"18":{"position":[[595,7],[612,7],[912,7],[944,7]]},"31":{"position":[[629,4],[1270,6],[1345,6]]},"37":{"position":[[83,4]]},"43":{"position":[[629,4],[1270,6],[1345,6]]},"46":{"position":[[680,4]]},"97":{"position":[[629,4],[1270,6],[1345,6]]},"105":{"position":[[368,6],[443,6]]},"140":{"position":[[540,4]]},"150":{"position":[[641,4],[1282,6],[1357,6]]},"167":{"position":[[2415,4]]},"243":{"position":[[89,4]]},"245":{"position":[[142,4]]},"253":{"position":[[757,4]]},"281":{"position":[[523,4],[581,4],[660,4],[1155,4],[1218,4]]},"283":{"position":[[18,4],[171,4]]},"324":{"position":[[836,4],[1106,4],[1542,4]]},"330":{"position":[[40,4]]},"341":{"position":[[75,4]]},"343":{"position":[[83,4]]},"360":{"position":[[855,4],[958,4]]},"365":{"position":[[1197,4]]},"366":{"position":[[11,4],[168,4]]},"368":{"position":[[1580,4]]},"474":{"position":[[37,4]]},"515":{"position":[[42,4]]}},"keywords":{}}],["json.log",{"_index":1060,"title":{},"content":{"164":{"position":[[107,12]]}},"keywords":{}}],["json.pars",{"_index":1639,"title":{},"content":{"244":{"position":[[85,13]]},"342":{"position":[[94,13]]}},"keywords":{}}],["json.stringifi",{"_index":1424,"title":{},"content":{"193":{"position":[[231,21]]},"197":{"position":[[315,16]]},"199":{"position":[[1136,16]]},"200":{"position":[[883,16]]},"212":{"position":[[174,16]]},"214":{"position":[[1194,16]]},"226":{"position":[[669,16]]},"245":{"position":[[489,16]]},"287":{"position":[[177,16]]},"291":{"position":[[194,16]]},"295":{"position":[[190,16]]},"297":{"position":[[1143,16]]},"312":{"position":[[191,16]]},"320":{"position":[[1185,16]]},"334":{"position":[[164,16]]},"368":{"position":[[619,16]]},"506":{"position":[[151,16]]}},"keywords":{}}],["json.stringify(bodi",{"_index":677,"title":{},"content":{"31":{"position":[[2101,20]]},"43":{"position":[[2101,20]]},"46":{"position":[[2226,20]]},"97":{"position":[[2126,20]]},"150":{"position":[[2113,20]]},"270":{"position":[[244,20]]},"273":{"position":[[453,20]]},"308":{"position":[[265,20]]}},"keywords":{}}],["json.stringify(respons",{"_index":277,"title":{},"content":{"16":{"position":[[996,24]]}},"keywords":{}}],["jsonapi",{"_index":1952,"title":{},"content":{"322":{"position":[[939,8],[948,7]]}},"keywords":{}}],["jsonbodypars",{"_index":243,"title":{},"content":{"16":{"position":[[301,14]]}},"keywords":{}}],["jsonmiddi",{"_index":2011,"title":{},"content":{"324":{"position":[[1582,9]]}},"keywords":{}}],["jump",{"_index":230,"title":{},"content":{"16":{"position":[[44,4]]}},"keywords":{}}],["jwtmiddi",{"_index":2000,"title":{},"content":{"324":{"position":[[1163,8]]}},"keywords":{}}],["kafka",{"_index":734,"title":{"89":{"position":[[0,6]]},"92":{"position":[[0,6]]}},"content":{"93":{"position":[[39,5]]}},"keywords":{}}],["keep",{"_index":16,"title":{"139":{"position":[[10,4]]}},"content":{"0":{"position":[[252,4]]},"253":{"position":[[615,4],[801,4]]},"261":{"position":[[294,4]]},"324":{"position":[[643,4]]},"360":{"position":[[301,4]]}},"keywords":{}}],["key",{"_index":482,"title":{"401":{"position":[[3,3]]},"508":{"position":[[3,3]]}},"content":{"19":{"position":[[865,4],[992,4],[1340,4]]},"107":{"position":[[478,4],[568,4]]},"163":{"position":[[301,3]]},"164":{"position":[[1,3],[26,3],[302,4]]},"166":{"position":[[634,5]]},"167":{"position":[[1677,4],[1812,4],[1886,3],[1995,4],[2055,3]]},"168":{"position":[[1,3]]},"170":{"position":[[528,5]]},"171":{"position":[[646,3]]},"172":{"position":[[1,3]]},"174":{"position":[[451,5]]},"176":{"position":[[1,3],[242,3]]},"196":{"position":[[328,3],[551,3],[775,3]]},"207":{"position":[[324,3],[547,3],[770,3]]},"212":{"position":[[326,4]]},"214":{"position":[[1390,4]]},"257":{"position":[[74,3]]},"286":{"position":[[278,3],[503,3]]},"294":{"position":[[307,3],[530,3],[747,3]]},"295":{"position":[[333,4]]},"297":{"position":[[1325,4]]},"311":{"position":[[356,3],[579,3],[797,3]]},"317":{"position":[[331,3],[545,3],[687,3],[1254,3]]},"318":{"position":[[502,5]]},"320":{"position":[[648,3]]},"323":{"position":[[267,3]]},"327":{"position":[[287,3],[510,3],[780,3]]},"328":{"position":[[326,3],[951,3]]},"333":{"position":[[390,3],[608,3]]},"346":{"position":[[378,3]]},"353":{"position":[[123,4]]},"360":{"position":[[1006,3]]},"361":{"position":[[139,3],[272,5]]},"375":{"position":[[320,5],[362,5]]},"490":{"position":[[236,5]]},"519":{"position":[[90,5]]}},"keywords":{}}],["keyword",{"_index":2124,"title":{},"content":{"365":{"position":[[338,7]]},"366":{"position":[[117,9]]},"515":{"position":[[133,8],[237,7]]}},"keywords":{}}],["kinesi",{"_index":740,"title":{"98":{"position":[[0,7]]},"114":{"position":[[0,7]]}},"content":{"99":{"position":[[30,7]]},"115":{"position":[[30,7]]}},"keywords":{}}],["kms:decrypt.ssm",{"_index":2021,"title":{},"content":{"327":{"position":[[1223,15]]}},"keywords":{}}],["knex",{"_index":1958,"title":{},"content":{"322":{"position":[[1243,4]]}},"keywords":{}}],["know",{"_index":189,"title":{},"content":{"13":{"position":[[154,5]]},"55":{"position":[[104,4]]},"186":{"position":[[401,5]]},"199":{"position":[[84,4]]},"214":{"position":[[83,4]]},"297":{"position":[[87,4]]},"320":{"position":[[96,4]]},"330":{"position":[[74,4]]}},"keywords":{}}],["lambda",{"_index":13,"title":{"1":{"position":[[9,6]]},"105":{"position":[[33,7]]},"139":{"position":[[3,6]]},"162":{"position":[[19,6]]},"191":{"position":[[0,6]]},"192":{"position":[[0,6]]},"193":{"position":[[11,7]]}},"content":{"0":{"position":[[203,6]]},"15":{"position":[[79,6],[347,6]]},"16":{"position":[[612,6]]},"17":{"position":[[49,6],[1072,6]]},"21":{"position":[[1840,6]]},"25":{"position":[[11,6]]},"27":{"position":[[18,6],[81,6]]},"30":{"position":[[11,6]]},"33":{"position":[[11,6]]},"36":{"position":[[11,6]]},"39":{"position":[[11,6]]},"42":{"position":[[11,6]]},"45":{"position":[[11,6]]},"48":{"position":[[11,6]]},"51":{"position":[[7,6]]},"54":{"position":[[11,6]]},"57":{"position":[[11,6]]},"60":{"position":[[11,6]]},"63":{"position":[[11,6]]},"66":{"position":[[11,6]]},"69":{"position":[[11,6]]},"72":{"position":[[11,6]]},"75":{"position":[[11,6]]},"78":{"position":[[7,6]]},"81":{"position":[[11,6]]},"84":{"position":[[11,6]]},"87":{"position":[[11,6]]},"90":{"position":[[7,6]]},"93":{"position":[[7,6]]},"96":{"position":[[11,6]]},"99":{"position":[[11,6]]},"102":{"position":[[7,6]]},"109":{"position":[[11,6]]},"110":{"position":[[185,6]]},"112":{"position":[[11,6]]},"115":{"position":[[11,6]]},"118":{"position":[[11,6],[46,6]]},"121":{"position":[[82,6]]},"124":{"position":[[11,6]]},"125":{"position":[[194,6]]},"127":{"position":[[11,6]]},"130":{"position":[[11,6]]},"133":{"position":[[11,6]]},"136":{"position":[[17,6]]},"140":{"position":[[225,7]]},"142":{"position":[[11,6]]},"149":{"position":[[11,6]]},"153":{"position":[[712,6]]},"155":{"position":[[182,6],[253,6]]},"156":{"position":[[106,6]]},"159":{"position":[[350,6]]},"161":{"position":[[44,6],[153,8]]},"163":{"position":[[321,6],[819,6]]},"164":{"position":[[46,6],[120,6]]},"165":{"position":[[37,6]]},"166":{"position":[[690,6]]},"167":{"position":[[84,6],[570,6],[772,6],[1393,6],[1502,6],[2103,6],[2178,6],[2306,6]]},"168":{"position":[[395,6]]},"169":{"position":[[37,6]]},"170":{"position":[[595,6]]},"171":{"position":[[85,6],[931,6],[1055,6],[1185,6]]},"172":{"position":[[337,6]]},"173":{"position":[[37,6]]},"175":{"position":[[89,6],[1060,6]]},"176":{"position":[[24,6],[122,6],[398,6]]},"177":{"position":[[37,6]]},"179":{"position":[[120,6],[210,6]]},"181":{"position":[[51,6],[358,6],[439,6],[562,6]]},"182":{"position":[[845,6]]},"186":{"position":[[156,7]]},"187":{"position":[[271,6],[362,6]]},"189":{"position":[[214,6],[306,6],[348,6]]},"193":{"position":[[80,7],[94,6]]},"196":{"position":[[1075,6]]},"200":{"position":[[175,6],[408,7]]},"207":{"position":[[1070,6]]},"225":{"position":[[180,6],[378,6],[576,6],[780,6]]},"230":{"position":[[269,6]]},"240":{"position":[[1656,6]]},"241":{"position":[[202,6]]},"253":{"position":[[708,7]]},"266":{"position":[[396,6]]},"271":{"position":[[452,6]]},"277":{"position":[[255,6]]},"280":{"position":[[285,6]]},"286":{"position":[[803,6]]},"290":{"position":[[127,6]]},"294":{"position":[[1047,6]]},"302":{"position":[[153,6]]},"311":{"position":[[1097,6]]},"317":{"position":[[1550,6]]},"322":{"position":[[6,6],[110,6],[513,6],[721,6],[1115,6]]},"323":{"position":[[5,6],[64,6],[286,6],[650,6]]},"324":{"position":[[515,6],[653,7],[1026,6]]},"327":{"position":[[1080,6]]},"333":{"position":[[908,6]]},"346":{"position":[[704,6]]},"360":{"position":[[311,6]]},"362":{"position":[[117,6]]},"365":{"position":[[135,6],[288,6],[550,6]]},"378":{"position":[[551,6],[736,6]]},"406":{"position":[[94,6]]},"516":{"position":[[64,7]]},"520":{"position":[[23,6],[346,6]]},"521":{"position":[[81,6],[220,7]]}},"keywords":{}}],["lambda'",{"_index":1791,"title":{},"content":{"280":{"position":[[30,8]]},"302":{"position":[[57,8]]}},"keywords":{}}],["lambda.send",{"_index":1422,"title":{},"content":{"193":{"position":[[140,12]]}},"keywords":{}}],["lambda:writegetobjectrespons",{"_index":1889,"title":{},"content":{"305":{"position":[[826,29]]}},"keywords":{}}],["lambda@edg",{"_index":721,"title":{"53":{"position":[[11,11]]}},"content":{"54":{"position":[[34,11]]}},"keywords":{}}],["lambda_proxi",{"_index":1997,"title":{},"content":{"324":{"position":[[1074,12]]}},"keywords":{}}],["lambdacli",{"_index":1419,"title":{},"content":{"193":{"position":[[10,13],[107,14]]}},"keywords":{}}],["lambdahand",{"_index":1604,"title":{},"content":{"233":{"position":[[102,12]]}},"keywords":{}}],["lambdahandl",{"_index":255,"title":{},"content":{"16":{"position":[[625,13]]},"19":{"position":[[258,13]]},"157":{"position":[[174,13],[652,13]]},"159":{"position":[[1362,13]]},"167":{"position":[[182,13]]},"171":{"position":[[329,13]]},"175":{"position":[[211,13]]},"191":{"position":[[95,13]]},"192":{"position":[[95,13]]},"199":{"position":[[1050,13]]},"204":{"position":[[107,13]]},"211":{"position":[[120,13]]},"212":{"position":[[78,13]]},"218":{"position":[[85,13]]},"222":{"position":[[93,13]]},"226":{"position":[[230,13]]},"230":{"position":[[96,13]]},"237":{"position":[[104,13]]},"240":{"position":[[1468,13]]},"241":{"position":[[75,13]]},"245":{"position":[[166,13]]},"250":{"position":[[265,13]]},"254":{"position":[[176,13]]},"258":{"position":[[102,13]]},"262":{"position":[[102,13]]},"266":{"position":[[176,13]]},"273":{"position":[[108,13]]},"287":{"position":[[81,13]]},"291":{"position":[[98,13],[481,13]]},"295":{"position":[[66,13]]},"301":{"position":[[95,13]]},"307":{"position":[[120,13]]},"308":{"position":[[120,13]]},"312":{"position":[[95,13]]},"318":{"position":[[91,13]]},"320":{"position":[[1061,13]]},"328":{"position":[[68,13],[610,13]]},"330":{"position":[[1068,13]]},"334":{"position":[[68,13]]},"339":{"position":[[84,13]]},"343":{"position":[[161,13]]},"349":{"position":[[83,13]]},"353":{"position":[[320,13],[523,13]]},"357":{"position":[[552,13],[755,13]]},"368":{"position":[[172,13],[937,13],[1706,13]]},"369":{"position":[[788,13]]},"370":{"position":[[248,13]]},"371":{"position":[[317,13]]},"378":{"position":[[476,13]]},"490":{"position":[[1051,13]]},"518":{"position":[[453,13]]},"520":{"position":[[500,13]]}},"keywords":{}}],["lambdatransform",{"_index":792,"title":{},"content":{"121":{"position":[[40,18]]}},"keywords":{}}],["land",{"_index":364,"title":{},"content":{"17":{"position":[[1168,5]]}},"keywords":{}}],["langaug",{"_index":2307,"title":{},"content":{"484":{"position":[[1135,10]]}},"keywords":{}}],["languag",{"_index":1561,"title":{},"content":{"225":{"position":[[459,9],[549,9],[966,9]]},"281":{"position":[[229,8]]},"365":{"position":[[686,8],[711,8]]},"367":{"position":[[144,8]]},"369":{"position":[[903,10]]},"370":{"position":[[503,10]]},"371":{"position":[[462,10]]},"386":{"position":[[59,8]]},"484":{"position":[[293,9]]},"515":{"position":[[386,9]]}},"keywords":{}}],["larg",{"_index":2333,"title":{},"content":{"515":{"position":[[202,5]]},"520":{"position":[[427,5]]}},"keywords":{}}],["last",{"_index":1327,"title":{},"content":{"185":{"position":[[764,4]]},"200":{"position":[[1041,4],[1115,5]]}},"keywords":{}}],["lastchangedd",{"_index":1909,"title":{},"content":{"317":{"position":[[928,16]]}},"keywords":{}}],["lastnam",{"_index":1709,"title":{},"content":{"258":{"position":[[206,9],[581,9]]}},"keywords":{}}],["lastrotationd",{"_index":1908,"title":{},"content":{"317":{"position":[[908,16]]}},"keywords":{}}],["latenc",{"_index":1234,"title":{},"content":{"175":{"position":[[1076,8]]}},"keywords":{}}],["latency.cr",{"_index":1204,"title":{},"content":{"172":{"position":[[353,16]]}},"keywords":{}}],["later",{"_index":583,"title":{},"content":{"21":{"position":[[2205,5]]},"353":{"position":[[374,5]]},"357":{"position":[[606,5]]},"378":{"position":[[431,5]]}},"keywords":{}}],["lattic",{"_index":845,"title":{"148":{"position":[[4,7]]}},"content":{"149":{"position":[[34,7]]}},"keywords":{}}],["le",{"_index":1580,"title":{},"content":{"226":{"position":[[402,2]]}},"keywords":{}}],["leak",{"_index":1406,"title":{},"content":{"189":{"position":[[1382,7],[1461,6]]}},"keywords":{}}],["learn",{"_index":1208,"title":{},"content":{"172":{"position":[[585,5]]}},"keywords":{}}],["left",{"_index":597,"title":{},"content":{"21":{"position":[[2542,4]]}},"keywords":{}}],["legaci",{"_index":2049,"title":{},"content":{"333":{"position":[[998,6]]}},"keywords":{}}],["legal",{"_index":60,"title":{},"content":{"5":{"position":[[302,5]]}},"keywords":{}}],["lesslog",{"_index":1947,"title":{},"content":{"322":{"position":[[852,8],[876,8],[982,8],[1006,8]]},"324":{"position":[[1592,8],[1616,8]]}},"keywords":{}}],["let",{"_index":1771,"title":{},"content":{"272":{"position":[[326,4]]},"324":{"position":[[979,4]]}},"keywords":{}}],["let'",{"_index":229,"title":{},"content":{"16":{"position":[[38,5],[67,5],[1691,5]]},"518":{"position":[[354,5]]}},"keywords":{}}],["level",{"_index":963,"title":{},"content":{"159":{"position":[[357,6]]},"166":{"position":[[107,5]]},"167":{"position":[[1718,6],[1743,6],[1772,6]]},"248":{"position":[[422,6],[491,5]]},"322":{"position":[[271,5],[342,6]]},"323":{"position":[[439,5]]}},"keywords":{}}],["leverag",{"_index":1466,"title":{},"content":{"199":{"position":[[236,10]]},"214":{"position":[[270,10]]},"297":{"position":[[239,10]]},"320":{"position":[[245,10]]},"330":{"position":[[236,10]]}},"keywords":{}}],["lex",{"_index":788,"title":{"117":{"position":[[0,3]]}},"content":{"118":{"position":[[74,3]]}},"keywords":{}}],["lexus",{"_index":789,"title":{},"content":{"118":{"position":[[30,8]]}},"keywords":{}}],["librari",{"_index":1934,"title":{},"content":{"322":{"position":[[77,9]]}},"keywords":{}}],["licens",{"_index":448,"title":{},"content":{"18":{"position":[[1526,7]]}},"keywords":{}}],["life",{"_index":1492,"title":{},"content":{"200":{"position":[[815,5]]}},"keywords":{}}],["lifev6",{"_index":1357,"title":{},"content":{"187":{"position":[[444,6]]}},"keywords":{}}],["likewis",{"_index":1299,"title":{},"content":{"182":{"position":[[476,9]]}},"keywords":{}}],["limit",{"_index":2023,"title":{},"content":{"327":{"position":[[1254,12]]}},"keywords":{}}],["link",{"_index":1305,"title":{},"content":{"182":{"position":[[728,6]]}},"keywords":{}}],["list",{"_index":1461,"title":{},"content":{"198":{"position":[[66,5]]},"213":{"position":[[65,5]]},"225":{"position":[[146,4],[343,4],[541,4],[743,4]]},"240":{"position":[[800,4]]},"288":{"position":[[60,5]]},"296":{"position":[[59,5]]},"313":{"position":[[73,5]]},"314":{"position":[[59,5]]},"319":{"position":[[72,5]]},"329":{"position":[[60,5]]},"335":{"position":[[60,5]]},"350":{"position":[[80,5]]},"360":{"position":[[346,4]]},"521":{"position":[[1084,4]]}},"keywords":{}}],["lmammino2020",{"_index":1002,"title":{},"content":{"161":{"position":[[356,13]]}},"keywords":{}}],["lmammino2022",{"_index":1011,"title":{},"content":{"161":{"position":[[472,13]]}},"keywords":{}}],["load",{"_index":701,"title":{"44":{"position":[[12,4]]}},"content":{"45":{"position":[[38,4]]}},"keywords":{}}],["local",{"_index":2130,"title":{},"content":{"365":{"position":[[769,12],[1111,7]]},"367":{"position":[[25,12]]},"369":{"position":[[471,6],[527,6],[534,9],[595,6]]},"484":{"position":[[276,13],[948,13],[1118,13]]}},"keywords":{}}],["locale=$(basenam",{"_index":2170,"title":{},"content":{"369":{"position":[[483,17]]}},"keywords":{}}],["lock.json",{"_index":437,"title":{},"content":{"18":{"position":[[1387,9]]}},"keywords":{}}],["log",{"_index":539,"title":{"50":{"position":[[12,4]]}},"content":{"21":{"position":[[1248,3]]},"51":{"position":[[30,4]]},"163":{"position":[[252,7]]},"164":{"position":[[89,7],[200,4],[246,3],[321,4],[366,3],[417,4],[473,7]]},"166":{"position":[[103,3],[294,3],[430,8],[463,9],[682,3]]},"167":{"position":[[260,3],[435,4],[881,3],[1178,3],[1326,3],[1600,4],[1689,3],[1768,3],[1849,3],[2020,3],[2170,3],[2371,3],[2395,4],[2491,4]]},"170":{"position":[[142,3]]},"174":{"position":[[142,3]]},"181":{"position":[[406,3]]},"200":{"position":[[791,3]]},"217":{"position":[[111,7]]},"229":{"position":[[40,7],[153,7]]},"280":{"position":[[201,4],[233,4]]},"290":{"position":[[40,7],[287,6],[366,4]]},"322":{"position":[[221,4],[247,7],[292,7],[353,3],[918,7],[1048,7]]},"323":{"position":[[103,8],[204,7],[252,3]]},"324":{"position":[[198,4],[1658,7]]},"506":{"position":[[18,4]]},"520":{"position":[[204,3]]}},"keywords":{}}],["logev",{"_index":1092,"title":{},"content":{"166":{"position":[[640,8]]},"181":{"position":[[835,9]]},"182":{"position":[[1791,9]]}},"keywords":{}}],["logger",{"_index":495,"title":{"164":{"position":[[0,7]]},"215":{"position":[[6,6]]},"278":{"position":[[13,6]]},"383":{"position":[[6,7]]},"399":{"position":[[13,7]]},"423":{"position":[[6,7]]},"439":{"position":[[13,7]]},"460":{"position":[[6,7]]},"476":{"position":[[13,7]]},"506":{"position":[[13,7]]}},"content":{"21":{"position":[[21,7],[105,7]]},"22":{"position":[[65,7],[136,6]]},"31":{"position":[[81,7],[150,7]]},"43":{"position":[[81,7],[150,7]]},"46":{"position":[[132,7],[201,7]]},"97":{"position":[[81,7],[150,7]]},"105":{"position":[[149,7],[218,7]]},"150":{"position":[[81,7],[150,7]]},"163":{"position":[[232,6]]},"166":{"position":[[517,6],[524,8],[564,6],[787,6]]},"167":{"position":[[43,7],[117,6],[130,8],[1251,6],[1627,6],[2160,6],[2334,6]]},"181":{"position":[[250,6],[385,6]]},"216":{"position":[[90,6]]},"217":{"position":[[1,6]]},"218":{"position":[[71,7]]},"229":{"position":[[1,6]]},"280":{"position":[[193,7],[225,7]]},"289":{"position":[[97,6]]},"290":{"position":[[1,6]]},"291":{"position":[[84,7],[421,7],[459,6],[604,7]]},"300":{"position":[[1,6]]},"322":{"position":[[188,7]]},"323":{"position":[[185,7]]},"324":{"position":[[122,7]]},"423":{"position":[[8,6]]}},"keywords":{}}],["logger(id",{"_index":505,"title":{},"content":{"21":{"position":[[279,10]]},"22":{"position":[[280,10]]}},"keywords":{}}],["logger.child(request.context",{"_index":1858,"title":{},"content":{"291":{"position":[[644,29]]}},"keywords":{}}],["logger.info('thi",{"_index":1103,"title":{},"content":{"167":{"position":[[231,17]]}},"keywords":{}}],["loggeromitpath",{"_index":1845,"title":{},"content":{"290":{"position":[[156,15]]}},"keywords":{}}],["logic",{"_index":210,"title":{},"content":{"15":{"position":[[333,5],[527,6]]},"16":{"position":[[1084,5]]},"17":{"position":[[153,6],[277,6],[435,5],[780,5],[958,5]]},"156":{"position":[[182,5]]},"157":{"position":[[232,5],[710,5]]},"217":{"position":[[119,6]]},"218":{"position":[[142,5]]},"301":{"position":[[236,5]]},"518":{"position":[[321,5]]},"521":{"position":[[499,5],[658,5]]}},"keywords":{}}],["loglevel",{"_index":1076,"title":{},"content":{"166":{"position":[[75,8]]}},"keywords":{}}],["logmetr",{"_index":1216,"title":{},"content":{"175":{"position":[[65,10]]}},"keywords":{}}],["long",{"_index":607,"title":{},"content":{"21":{"position":[[2808,4]]},"183":{"position":[[102,4]]},"187":{"position":[[315,4]]},"196":{"position":[[887,4]]},"207":{"position":[[882,4]]},"286":{"position":[[615,4]]},"294":{"position":[[859,4]]},"311":{"position":[[909,4]]},"317":{"position":[[1366,4]]},"327":{"position":[[892,4]]},"333":{"position":[[720,4]]}},"keywords":{}}],["longer",{"_index":1379,"title":{},"content":{"187":{"position":[[831,6]]},"362":{"position":[[25,6]]},"388":{"position":[[4,6]]},"389":{"position":[[32,6]]},"406":{"position":[[151,6]]},"416":{"position":[[10,6]]},"429":{"position":[[9,6]]},"447":{"position":[[98,6]]},"496":{"position":[[86,6]]},"503":{"position":[[4,6]]}},"keywords":{}}],["look",{"_index":567,"title":{},"content":{"21":{"position":[[1883,5],[1970,4],[2736,6]]},"152":{"position":[[221,4]]},"490":{"position":[[929,4]]}},"keywords":{}}],["loop",{"_index":807,"title":{"208":{"position":[[28,4]]},"382":{"position":[[28,5]]},"422":{"position":[[28,5]]},"459":{"position":[[28,5]]},"492":{"position":[[28,5]]}},"content":{"139":{"position":[[19,4],[152,5]]},"209":{"position":[[112,4]]},"211":{"position":[[108,5]]},"280":{"position":[[128,5]]},"322":{"position":[[406,4]]},"444":{"position":[[85,5]]}},"keywords":{}}],["loophttpcontentnegoti",{"_index":2092,"title":{},"content":{"360":{"position":[[591,26]]}},"keywords":{}}],["lose",{"_index":1303,"title":{},"content":{"182":{"position":[[671,6]]}},"keywords":{}}],["lot",{"_index":580,"title":{},"content":{"21":{"position":[[2155,3]]},"484":{"position":[[13,3]]}},"keywords":{}}],["low",{"_index":2191,"title":{},"content":{"375":{"position":[[33,3]]},"491":{"position":[[33,3]]}},"keywords":{}}],["lower",{"_index":1664,"title":{},"content":{"248":{"position":[[465,5]]}},"keywords":{}}],["lowercas",{"_index":1612,"title":{},"content":{"236":{"position":[[121,9]]},"361":{"position":[[235,9],[580,9]]},"390":{"position":[[41,9]]}},"keywords":{}}],["ls0tls0tv2vis2l0rm9ybujvdw5kyxj5chbzuuv3zjjcvkplq2uwtq0kq29udgvudc1eaxnwb3npdglvbjogzm9ybs1kyxrhoybuyw1lpsjmb28idqoncmjhcg0kls0tls0tv2vis2l0rm9ybujvdw5kyxj5chbzuuv3zjjcvkplq2uwts0t",{"_index":1701,"title":{},"content":{"254":{"position":[[491,183]]}},"keywords":{}}],["lt",{"_index":1354,"title":{},"content":{"187":{"position":[[333,5]]}},"keywords":{}}],["lt;message>${body}</message>",{"_index":1762,"title":{},"content":{"270":{"position":[[138,41]]},"273":{"position":[[348,40]]}},"keywords":{}}],["lt;message>${message}</message>",{"_index":1584,"title":{},"content":{"226":{"position":[[522,43]]}},"keywords":{}}],["lt;message>hello",{"_index":1782,"title":{},"content":{"273":{"position":[[763,21]]}},"keywords":{}}],["lysé",{"_index":1718,"title":{},"content":{"258":{"position":[[286,9]]}},"keywords":{}}],["made",{"_index":1037,"title":{},"content":{"163":{"position":[[260,4]]},"171":{"position":[[1173,4],[1444,4]]},"323":{"position":[[212,4]]}},"keywords":{}}],["magic",{"_index":581,"title":{},"content":{"21":{"position":[[2162,5]]}},"keywords":{}}],["main",{"_index":223,"title":{},"content":{"15":{"position":[[513,4]]},"17":{"position":[[12,4],[766,4],[944,4]]},"333":{"position":[[1077,4]]}},"keywords":{}}],["maintain",{"_index":339,"title":{},"content":{"17":{"position":[[502,9],[1011,9]]},"394":{"position":[[57,15]]},"520":{"position":[[117,9]]}},"keywords":{}}],["mainten",{"_index":1311,"title":{},"content":{"183":{"position":[[112,12]]},"187":{"position":[[152,11],[838,11]]}},"keywords":{}}],["major",{"_index":1340,"title":{},"content":{"187":{"position":[[19,5]]},"244":{"position":[[247,5]]},"253":{"position":[[432,5]]},"265":{"position":[[140,5]]}},"keywords":{}}],["make",{"_index":336,"title":{},"content":{"17":{"position":[[464,6]]},"140":{"position":[[81,4]]},"144":{"position":[[80,4]]},"145":{"position":[[72,4]]},"146":{"position":[[88,4]]},"147":{"position":[[84,4]]},"151":{"position":[[105,4]]},"152":{"position":[[201,4]]},"155":{"position":[[133,4]]},"161":{"position":[[225,6]]},"163":{"position":[[809,4]]},"171":{"position":[[1232,5]]},"176":{"position":[[712,5]]},"182":{"position":[[247,4],[361,4]]},"188":{"position":[[77,4]]},"189":{"position":[[75,4],[1015,4]]},"200":{"position":[[1189,5]]},"322":{"position":[[92,4]]},"323":{"position":[[86,5]]},"361":{"position":[[499,4]]},"484":{"position":[[30,6]]},"490":{"position":[[37,4]]}},"keywords":{}}],["makehandleridempot",{"_index":1266,"title":{},"content":{"179":{"position":[[85,21],[755,23]]}},"keywords":{}}],["male",{"_index":1712,"title":{},"content":{"258":{"position":[[231,7]]}},"keywords":{}}],["manag",{"_index":102,"title":{"89":{"position":[[7,7]]},"92":{"position":[[12,7]]},"132":{"position":[[8,7]]},"315":{"position":[[8,7]]},"403":{"position":[[8,8]]},"442":{"position":[[8,8]]},"479":{"position":[[8,8]]},"491":{"position":[[3,8]]},"510":{"position":[[8,8]]}},"content":{"6":{"position":[[664,7]]},"8":{"position":[[871,7]]},"93":{"position":[[24,7]]},"106":{"position":[[180,8]]},"133":{"position":[[31,7]]},"153":{"position":[[689,7]]},"171":{"position":[[174,9]]},"200":{"position":[[250,8],[334,8]]},"283":{"position":[[261,8],[459,7]]},"316":{"position":[[92,7],[147,7]]},"317":{"position":[[1238,9]]},"318":{"position":[[76,8],[410,7]]},"319":{"position":[[49,7]]},"320":{"position":[[1046,8]]},"323":{"position":[[517,7],[554,8]]},"324":{"position":[[1411,10]]},"507":{"position":[[100,8]]}},"keywords":{}}],["manager.awsclientopt",{"_index":1903,"title":{},"content":{"317":{"position":[[177,24]]}},"keywords":{}}],["manager.servic",{"_index":1830,"title":{},"content":{"283":{"position":[[306,15]]}},"keywords":{}}],["managerssm",{"_index":2101,"title":{},"content":{"360":{"position":[[1056,10]]}},"keywords":{}}],["manipul",{"_index":1767,"title":{},"content":{"271":{"position":[[397,10]]}},"keywords":{}}],["manual",{"_index":1172,"title":{},"content":{"168":{"position":[[260,6]]}},"keywords":{}}],["map",{"_index":483,"title":{},"content":{"19":{"position":[[883,3],[1009,3]]},"171":{"position":[[1386,4]]},"196":{"position":[[531,7]]},"207":{"position":[[527,7]]},"286":{"position":[[258,7]]},"294":{"position":[[510,7]]},"311":{"position":[[559,7]]},"317":{"position":[[525,7],[667,7]]},"327":{"position":[[490,7]]},"333":{"position":[[370,7]]}},"keywords":{}}],["mask",{"_index":2245,"title":{},"content":{"399":{"position":[[22,4]]}},"keywords":{}}],["mask/bin",{"_index":395,"title":{},"content":{"18":{"position":[[603,8]]}},"keywords":{}}],["mask/build",{"_index":396,"title":{},"content":{"18":{"position":[[620,10]]}},"keywords":{}}],["match",{"_index":1290,"title":{},"content":{"181":{"position":[[526,7]]},"240":{"position":[[780,7]]},"271":{"position":[[8,8]]},"272":{"position":[[493,8]]},"305":{"position":[[524,5]]},"357":{"position":[[169,5]]},"378":{"position":[[44,5]]},"417":{"position":[[87,5]]}},"keywords":{}}],["max",{"_index":1200,"title":{},"content":{"172":{"position":[[185,3],[201,3]]},"240":{"position":[[988,3]]}},"keywords":{}}],["maximum",{"_index":295,"title":{},"content":{"16":{"position":[[1396,8],[1457,8]]}},"keywords":{}}],["maxlength",{"_index":289,"title":{},"content":{"16":{"position":[[1318,10],[1511,10]]}},"keywords":{}}],["maxretri",{"_index":2025,"title":{},"content":{"327":{"position":[[1318,10]]}},"keywords":{}}],["md",{"_index":449,"title":{},"content":{"18":{"position":[[1534,4]]}},"keywords":{}}],["mean",{"_index":1249,"title":{},"content":{"176":{"position":[[469,5]]},"200":{"position":[[1062,5]]},"210":{"position":[[111,7]]}},"keywords":{}}],["media",{"_index":1564,"title":{},"content":{"225":{"position":[[658,5],[751,5]]},"281":{"position":[[242,5]]}},"keywords":{}}],["meet",{"_index":2164,"title":{},"content":{"369":{"position":[[128,4]]}},"keywords":{}}],["memori",{"_index":609,"title":{"22":{"position":[[0,7]]}},"content":{"253":{"position":[[667,7],[765,6]]}},"keywords":{}}],["memoryplugin",{"_index":612,"title":{},"content":{"22":{"position":[[93,12]]}},"keywords":{}}],["memwatch",{"_index":610,"title":{},"content":{"22":{"position":[[8,8],[36,9]]}},"keywords":{}}],["memwatch.heapdiff",{"_index":613,"title":{},"content":{"22":{"position":[[232,19]]}},"keywords":{}}],["messag",{"_index":272,"title":{"371":{"position":[[41,9]]}},"content":{"16":{"position":[[923,8]]},"179":{"position":[[643,8]]},"189":{"position":[[1189,7]]},"197":{"position":[[332,8]]},"199":{"position":[[1153,8]]},"200":{"position":[[900,8]]},"212":{"position":[[191,8]]},"214":{"position":[[1211,8]]},"226":{"position":[[275,8],[340,7],[383,7],[427,7],[619,11],[686,7],[719,7]]},"229":{"position":[[286,7]]},"281":{"position":[[1223,7],[1248,7]]},"287":{"position":[[194,8]]},"291":{"position":[[211,8]]},"295":{"position":[[207,8]]},"297":{"position":[[1160,8]]},"301":{"position":[[217,7]]},"312":{"position":[[208,8]]},"320":{"position":[[1202,8]]},"334":{"position":[[181,8]]},"348":{"position":[[138,9]]},"349":{"position":[[160,9]]},"366":{"position":[[358,9]]},"367":{"position":[[108,8]]},"406":{"position":[[180,7]]},"444":{"position":[[45,8]]},"484":{"position":[[524,8]]},"515":{"position":[[364,8]]}},"keywords":{}}],["metadata",{"_index":1180,"title":{},"content":{"170":{"position":[[339,9],[631,9]]},"171":{"position":[[979,9]]}},"keywords":{}}],["metadata.automat",{"_index":1167,"title":{},"content":{"168":{"position":[[111,22]]}},"keywords":{}}],["method",{"_index":708,"title":{},"content":{"46":{"position":[[1363,7],[1423,7]]},"182":{"position":[[389,6],[570,6]]},"200":{"position":[[1108,6]]},"240":{"position":[[427,7],[1192,7]]},"322":{"position":[[255,8],[300,6]]},"357":{"position":[[77,6],[182,6]]},"358":{"position":[[465,7],[525,7]]},"378":{"position":[[930,6]]}},"keywords":{}}],["methods/modul",{"_index":1954,"title":{},"content":{"322":{"position":[[1155,15]]}},"keywords":{}}],["methodsexposeheadersrequestheadersrequestmethod",{"_index":2321,"title":{},"content":{"495":{"position":[[44,48]]}},"keywords":{}}],["metric",{"_index":746,"title":{"172":{"position":[[0,8]]},"201":{"position":[[11,7]]},"381":{"position":[[11,8]]},"421":{"position":[[11,8]]},"458":{"position":[[11,8]]}},"content":{"105":{"position":[[92,8]]},"163":{"position":[[639,7],[734,7]]},"172":{"position":[[38,7],[99,7],[122,6],[164,6],[380,6],[565,7],[651,8]]},"174":{"position":[[248,8],[332,7],[340,8],[380,7],[531,7],[648,7]]},"175":{"position":[[43,8],[123,7],[137,9],[1090,7],[1131,7],[1162,8],[1241,7],[1297,6]]},"182":{"position":[[507,7],[589,7],[618,7]]},"202":{"position":[[95,7]]},"203":{"position":[[57,8],[111,7],[352,7],[443,7]]},"204":{"position":[[91,9]]},"280":{"position":[[12,8]]},"323":{"position":[[128,7],[316,7],[371,6]]}},"keywords":{}}],["metricloggerdo",{"_index":1793,"title":{},"content":{"280":{"position":[[88,14]]}},"keywords":{}}],["metrics).metr",{"_index":1202,"title":{},"content":{"172":{"position":[[205,16]]}},"keywords":{}}],["metrics.addmetric('successfulbook",{"_index":1219,"title":{},"content":{"175":{"position":[[299,38]]}},"keywords":{}}],["metricunit",{"_index":1215,"title":{},"content":{"175":{"position":[[52,12]]}},"keywords":{}}],["metricunits.count",{"_index":1220,"title":{},"content":{"175":{"position":[[338,18]]}},"keywords":{}}],["middi",{"_index":191,"title":{"15":{"position":[[8,6]]},"161":{"position":[[19,6]]}},"content":{"15":{"position":[[1,5],[213,5]]},"16":{"position":[[164,5],[214,5],[1802,7]]},"17":{"position":[[1110,6]]},"19":{"position":[[17,5],[187,5]]},"21":{"position":[[2714,5]]},"26":{"position":[[8,5],[56,7]]},"28":{"position":[[8,5]]},"31":{"position":[[8,5],[1377,7]]},"34":{"position":[[8,5]]},"37":{"position":[[8,5],[605,7]]},"40":{"position":[[8,5],[56,7]]},"43":{"position":[[8,5],[1377,7]]},"46":{"position":[[8,5],[1502,7]]},"49":{"position":[[8,5],[56,7]]},"52":{"position":[[8,5],[120,7]]},"55":{"position":[[8,5],[56,7]]},"58":{"position":[[8,5],[56,7]]},"61":{"position":[[8,5],[120,7]]},"64":{"position":[[8,5],[120,7]]},"67":{"position":[[8,5],[120,7]]},"70":{"position":[[8,5],[56,7]]},"73":{"position":[[8,5],[56,7]]},"76":{"position":[[8,5]]},"79":{"position":[[8,5],[56,7]]},"82":{"position":[[8,5],[56,7]]},"85":{"position":[[8,5],[56,7]]},"88":{"position":[[8,5]]},"91":{"position":[[8,5],[120,7]]},"94":{"position":[[8,5],[120,7]]},"97":{"position":[[8,5],[1377,7]]},"100":{"position":[[8,5],[120,7]]},"103":{"position":[[8,5],[120,7]]},"105":{"position":[[8,5],[468,7]]},"106":{"position":[[8,5],[290,7]]},"107":{"position":[[8,5],[274,7]]},"110":{"position":[[8,5],[120,7]]},"113":{"position":[[8,5],[120,7]]},"116":{"position":[[8,5],[120,7]]},"119":{"position":[[8,5],[56,7]]},"122":{"position":[[8,5],[196,7]]},"125":{"position":[[8,5],[120,7]]},"128":{"position":[[8,5],[56,7]]},"131":{"position":[[8,5],[120,7]]},"134":{"position":[[8,5],[56,7]]},"137":{"position":[[8,5],[56,7]]},"140":{"position":[[151,5]]},"143":{"position":[[8,5],[190,7]]},"150":{"position":[[8,5],[1389,7]]},"155":{"position":[[12,6]]},"156":{"position":[[44,5],[204,5],[275,7]]},"157":{"position":[[8,5],[266,7],[486,5],[744,7]]},"158":{"position":[[6,5]]},"159":{"position":[[1438,7]]},"161":{"position":[[1,5]]},"163":{"position":[[224,6]]},"167":{"position":[[8,5]]},"171":{"position":[[8,5]]},"175":{"position":[[8,5]]},"179":{"position":[[8,5],[510,6]]},"181":{"position":[[735,8]]},"183":{"position":[[14,5]]},"186":{"position":[[10,5],[170,5]]},"187":{"position":[[860,6]]},"189":{"position":[[144,5],[377,5],[776,5],[923,5]]},"191":{"position":[[8,5],[277,7]]},"192":{"position":[[8,5],[209,7]]},"197":{"position":[[8,5],[90,7]]},"199":{"position":[[960,5],[1207,7]]},"200":{"position":[[20,5],[147,5],[266,5]]},"204":{"position":[[7,5],[324,7]]},"211":{"position":[[8,5],[196,7]]},"212":{"position":[[8,5],[260,7]]},"214":{"position":[[1011,5]]},"218":{"position":[[8,5]]},"222":{"position":[[8,5]]},"226":{"position":[[8,5],[787,7]]},"230":{"position":[[8,5]]},"233":{"position":[[8,5]]},"237":{"position":[[8,5],[180,7]]},"240":{"position":[[1344,5],[1578,7]]},"241":{"position":[[8,5]]},"245":{"position":[[8,5],[242,7]]},"249":{"position":[[8,5],[226,7]]},"250":{"position":[[8,5],[395,7]]},"254":{"position":[[8,5],[252,7]]},"258":{"position":[[8,5]]},"262":{"position":[[8,5]]},"266":{"position":[[8,5],[295,7]]},"273":{"position":[[8,5],[234,7]]},"277":{"position":[[8,5]]},"287":{"position":[[8,5],[263,7]]},"291":{"position":[[8,5],[345,5],[570,7]]},"295":{"position":[[8,5],[276,7]]},"297":{"position":[[950,5]]},"301":{"position":[[8,5]]},"307":{"position":[[32,5]]},"308":{"position":[[32,5]]},"312":{"position":[[8,5],[277,7]]},"318":{"position":[[8,5],[167,7]]},"320":{"position":[[966,5],[1271,7]]},"322":{"position":[[846,5]]},"324":{"position":[[1,5],[454,5],[622,5],[1430,5]]},"328":{"position":[[8,5],[168,7],[508,5],[710,7]]},"330":{"position":[[952,5],[1168,7]]},"334":{"position":[[8,5],[250,7]]},"339":{"position":[[7,5],[225,7]]},"343":{"position":[[8,5],[244,7]]},"348":{"position":[[8,5]]},"349":{"position":[[8,5],[197,7]]},"354":{"position":[[8,5],[208,7],[347,7],[612,7]]},"358":{"position":[[8,5],[154,7],[310,7],[604,7]]},"360":{"position":[[16,5],[89,6]]},"361":{"position":[[4,5],[167,5],[488,5],[620,5]]},"362":{"position":[[16,5],[286,5]]},"368":{"position":[[39,5],[447,7],[804,5],[1180,7],[1511,5],[2067,7]]},"369":{"position":[[622,5],[864,7]]},"370":{"position":[[52,5],[434,7]]},"371":{"position":[[52,5],[393,7]]},"378":{"position":[[90,8]]},"416":{"position":[[1,5]]},"454":{"position":[[1,5]]},"484":{"position":[[754,10],[1023,10]]},"490":{"position":[[969,5],[1145,7]]},"491":{"position":[[62,5]]},"518":{"position":[[422,5],[531,7],[801,5]]},"520":{"position":[[84,6],[111,5],[469,5],[632,7]]},"521":{"position":[[130,5],[729,5]]}},"keywords":{}}],["middlewar",{"_index":194,"title":{"105":{"position":[[0,11]]},"279":{"position":[[9,11]]},"321":{"position":[[12,11]]},"374":{"position":[[0,11]]},"380":{"position":[[0,11]]},"419":{"position":[[0,11]]},"457":{"position":[[0,11]]},"490":{"position":[[13,11]]},"518":{"position":[[7,11]]},"519":{"position":[[7,11]]}},"content":{"15":{"position":[[24,10],[272,10]]},"16":{"position":[[282,11],[726,10],[1170,11],[1761,11]]},"17":{"position":[[631,10],[792,10],[1125,10]]},"19":{"position":[[63,11]]},"21":{"position":[[1913,10],[2065,12],[2260,10],[2444,11],[2626,10],[2778,12]]},"153":{"position":[[161,11],[271,10],[379,11],[398,10],[508,11],[612,11],[678,10]]},"156":{"position":[[222,11],[408,11],[444,11]]},"157":{"position":[[382,10],[408,12],[448,11],[857,11],[985,10]]},"158":{"position":[[121,11],[195,11],[418,10],[487,11]]},"159":{"position":[[18,11],[171,11],[240,11],[372,11],[631,11],[791,10]]},"163":{"position":[[279,10],[485,10],[669,10],[795,10]]},"166":{"position":[[474,10]]},"168":{"position":[[244,11]]},"170":{"position":[[368,10]]},"174":{"position":[[289,10]]},"178":{"position":[[1,10]]},"181":{"position":[[94,11],[187,10],[216,10],[271,12],[312,10],[698,12]]},"182":{"position":[[48,11],[181,10],[1021,10]]},"185":{"position":[[1,11],[346,11],[592,11]]},"186":{"position":[[80,11]]},"189":{"position":[[275,10]]},"195":{"position":[[17,10]]},"200":{"position":[[730,11],[1015,10],[1153,11],[1220,12],[1330,11],[1463,11]]},"202":{"position":[[17,10]]},"206":{"position":[[17,10]]},"209":{"position":[[17,10]]},"210":{"position":[[16,10]]},"216":{"position":[[17,10]]},"220":{"position":[[17,10]]},"224":{"position":[[17,10]]},"228":{"position":[[17,10]]},"232":{"position":[[17,10]]},"235":{"position":[[17,10]]},"239":{"position":[[17,10]]},"243":{"position":[[17,10]]},"247":{"position":[[17,10]]},"252":{"position":[[17,10]]},"253":{"position":[[459,10]]},"256":{"position":[[17,10]]},"260":{"position":[[17,10]]},"264":{"position":[[17,10]]},"268":{"position":[[17,10]]},"270":{"position":[[5,10]]},"272":{"position":[[36,10],[371,10]]},"275":{"position":[[17,10]]},"281":{"position":[[19,10]]},"285":{"position":[[17,10]]},"289":{"position":[[17,10]]},"293":{"position":[[17,10]]},"299":{"position":[[17,10]]},"304":{"position":[[17,10]]},"310":{"position":[[17,10]]},"316":{"position":[[17,10]]},"318":{"position":[[375,10]]},"322":{"position":[[41,12],[196,10],[419,10],[646,10],[684,10],[861,10],[956,10],[991,10],[1079,10]]},"323":{"position":[[231,10]]},"324":{"position":[[130,10],[460,10],[543,10],[601,10],[798,10],[892,11],[963,10],[1135,10],[1211,10],[1274,10],[1601,10]]},"326":{"position":[[17,10]]},"328":{"position":[[1043,10]]},"330":{"position":[[1538,10]]},"332":{"position":[[17,10]]},"337":{"position":[[17,10]]},"341":{"position":[[17,10]]},"345":{"position":[[17,10]]},"352":{"position":[[17,10]]},"353":{"position":[[296,10],[334,10],[403,10],[441,12],[478,10],[537,10]]},"356":{"position":[[17,10]]},"357":{"position":[[528,10],[566,10],[635,10],[673,12],[710,10],[769,10]]},"360":{"position":[[116,10],[182,11],[403,11],[430,10]]},"361":{"position":[[39,10]]},"364":{"position":[[17,10]]},"368":{"position":[[1457,11]]},"373":{"position":[[111,10],[167,10],[187,10],[289,10],[342,10]]},"378":{"position":[[9,10],[99,11],[179,11],[437,10]]},"388":{"position":[[53,10]]},"462":{"position":[[63,10],[86,10]]},"468":{"position":[[67,10]]},"484":{"position":[[42,10],[374,10],[578,10]]},"490":{"position":[[13,11],[42,11],[184,10],[906,10]]},"506":{"position":[[49,10]]},"507":{"position":[[5,10]]},"509":{"position":[[5,10]]},"514":{"position":[[5,10]]},"516":{"position":[[373,12]]},"517":{"position":[[42,11],[93,11]]},"518":{"position":[[7,11],[272,11],[375,11],[912,12]]},"519":{"position":[[7,11],[21,10]]},"521":{"position":[[64,10],[234,10],[488,10],[647,10],[708,10],[1069,10]]},"522":{"position":[[112,11],[205,10],[436,10],[502,10]]}},"keywords":{}}],["middleware.beforemiddleware/aftermiddleware(fctnam",{"_index":952,"title":{},"content":{"158":{"position":[[308,53]]}},"keywords":{}}],["middleware.cacheexpiri",{"_index":1447,"title":{},"content":{"196":{"position":[[837,22]]},"207":{"position":[[832,22]]},"286":{"position":[[565,22]]},"294":{"position":[[809,22]]},"311":{"position":[[859,22]]},"317":{"position":[[1316,22]]},"327":{"position":[[842,22]]},"333":{"position":[[670,22]]}},"keywords":{}}],["middleware.disableprefetch",{"_index":1913,"title":{},"content":{"317":{"position":[[1048,26]]}},"keywords":{}}],["middleware1",{"_index":932,"title":{},"content":{"157":{"position":[[40,11],[65,12],[518,11],[543,12]]},"185":{"position":[[434,11]]}},"keywords":{}}],["middleware2",{"_index":934,"title":{},"content":{"157":{"position":[[85,11],[110,12],[563,11],[588,12],[773,14]]}},"keywords":{}}],["middleware3",{"_index":935,"title":{},"content":{"157":{"position":[[130,11],[155,12],[608,11],[633,12],[788,15]]}},"keywords":{}}],["middleware@sharecov",{"_index":1993,"title":{},"content":{"324":{"position":[[736,21]]}},"keywords":{}}],["middlewaremiddi",{"_index":1961,"title":{},"content":{"322":{"position":[[1291,15]]},"324":{"position":[[31,15],[298,15]]}},"keywords":{}}],["middlewareshttp",{"_index":2204,"title":{},"content":{"377":{"position":[[15,15]]}},"keywords":{}}],["middlewaresmiddi",{"_index":1995,"title":{},"content":{"324":{"position":[[925,16]]}},"keywords":{}}],["middy<apigatewayproxyev",{"_index":1481,"title":{},"content":{"200":{"position":[[439,30]]}},"keywords":{}}],["middy'",{"_index":988,"title":{},"content":{"161":{"position":[[182,7]]},"518":{"position":[[332,7]]}},"keywords":{}}],["middy((ev",{"_index":1308,"title":{},"content":{"182":{"position":[[1677,13]]},"214":{"position":[[1108,13]]},"277":{"position":[[121,13]]},"297":{"position":[[1029,13]]},"348":{"position":[[100,13]]}},"keywords":{}}],["middy().handler((ev",{"_index":623,"title":{},"content":{"28":{"position":[[56,23]]},"34":{"position":[[56,23]]},"76":{"position":[[56,23]]},"88":{"position":[[56,23]]}},"keywords":{}}],["middy().handler(graphql.createhandl",{"_index":834,"title":{},"content":{"140":{"position":[[617,40]]}},"keywords":{}}],["middy().use(cors()).handler(lambdahandl",{"_index":1637,"title":{},"content":{"241":{"position":[[151,42]]}},"keywords":{}}],["middy().use(errorlogger()).handler(lambdahandl",{"_index":1545,"title":{},"content":{"218":{"position":[[173,49]]}},"keywords":{}}],["middy().use(eventnormalizer()).handler(lambdahandl",{"_index":1553,"title":{},"content":{"222":{"position":[[226,53]]}},"keywords":{}}],["middy().use(httperrorhandler()).handler(lambdahandl",{"_index":1597,"title":{},"content":{"230":{"position":[[206,54]]}},"keywords":{}}],["middy().use(httpeventnormalizer()).handler(lambdahand",{"_index":1608,"title":{},"content":{"233":{"position":[[292,56]]}},"keywords":{}}],["middy().use(httppartialresponse()).handler(lambdahandl",{"_index":1721,"title":{},"content":{"258":{"position":[[357,57]]}},"keywords":{}}],["middy().use(httpsecurityheaders()).handler(lambdahandl",{"_index":1747,"title":{},"content":{"262":{"position":[[178,57]]}},"keywords":{}}],["middy().use(inputoutputlogger()).handler(lambdahandl",{"_index":1856,"title":{},"content":{"291":{"position":[[280,55]]}},"keywords":{}}],["middy().use(s3objectresponse()).handler(lambdahandl",{"_index":1896,"title":{},"content":{"307":{"position":[[360,54]]},"308":{"position":[[313,54]]}},"keywords":{}}],["middy().use(sqsbatch()).handler(lambdahandl",{"_index":1874,"title":{},"content":{"301":{"position":[[329,46]]}},"keywords":{}}],["middy(config",{"_index":470,"title":{},"content":{"19":{"position":[[582,13]]}},"keywords":{}}],["middy(handl",{"_index":1387,"title":{},"content":{"189":{"position":[[448,14],[557,14]]}},"keywords":{}}],["middy(lambdahandl",{"_index":1107,"title":{},"content":{"167":{"position":[[336,20]]},"171":{"position":[[453,20]]},"175":{"position":[[387,20]]},"414":{"position":[[59,20]]}},"keywords":{}}],["middy(lambdahandler).before((request",{"_index":2340,"title":{},"content":{"516":{"position":[[230,37]]}},"keywords":{}}],["middy(memoryplugin",{"_index":615,"title":{},"content":{"22":{"position":[[766,21]]}},"keywords":{}}],["middy(timeplugin",{"_index":527,"title":{},"content":{"21":{"position":[[906,19]]}},"keywords":{}}],["middy.j",{"_index":385,"title":{},"content":{"18":{"position":[[346,8]]}},"keywords":{}}],["middy.middlewarefn<apigatewayproxyev",{"_index":2367,"title":{},"content":{"521":{"position":[[344,43],[520,43]]}},"keywords":{}}],["middy.middlewareobj<apigatewayproxyev",{"_index":2366,"title":{},"content":{"521":{"position":[[251,44]]}},"keywords":{}}],["middy/appconfig",{"_index":775,"title":{},"content":{"107":{"position":[[107,18]]},"195":{"position":[[77,16]]},"197":{"position":[[55,18]]},"199":{"position":[[1025,18]]}},"keywords":{}}],["middy/cachecor",{"_index":2090,"title":{},"content":{"360":{"position":[[484,16]]}},"keywords":{}}],["middy/cloudwatch",{"_index":745,"title":{},"content":{"105":{"position":[[73,18]]},"202":{"position":[[77,17]]}},"keywords":{}}],["middy/cor",{"_index":138,"title":{},"content":{"8":{"position":[[449,11]]},"16":{"position":[[175,13]]},"19":{"position":[[198,13]]},"26":{"position":[[19,13]]},"28":{"position":[[19,13]]},"31":{"position":[[19,13]]},"34":{"position":[[19,13]]},"37":{"position":[[19,13]]},"40":{"position":[[19,13]]},"43":{"position":[[19,13]]},"46":{"position":[[19,13]]},"49":{"position":[[19,13]]},"52":{"position":[[19,13]]},"55":{"position":[[19,13]]},"58":{"position":[[19,13]]},"61":{"position":[[19,13]]},"64":{"position":[[19,13]]},"67":{"position":[[19,13]]},"70":{"position":[[19,13]]},"73":{"position":[[19,13]]},"76":{"position":[[19,13]]},"79":{"position":[[19,13]]},"82":{"position":[[19,13]]},"85":{"position":[[19,13]]},"88":{"position":[[19,13]]},"91":{"position":[[19,13]]},"94":{"position":[[19,13]]},"97":{"position":[[19,13]]},"100":{"position":[[19,13]]},"103":{"position":[[19,13]]},"105":{"position":[[19,13]]},"106":{"position":[[19,13]]},"107":{"position":[[19,13]]},"110":{"position":[[19,13]]},"113":{"position":[[19,13]]},"116":{"position":[[19,13]]},"119":{"position":[[19,13]]},"122":{"position":[[19,13]]},"125":{"position":[[19,13]]},"128":{"position":[[19,13]]},"131":{"position":[[19,13]]},"134":{"position":[[19,13]]},"137":{"position":[[19,13]]},"140":{"position":[[162,13]]},"143":{"position":[[19,13]]},"150":{"position":[[19,13]]},"155":{"position":[[68,11]]},"157":{"position":[[19,13],[497,13]]},"167":{"position":[[19,14]]},"171":{"position":[[19,14]]},"175":{"position":[[19,14]]},"179":{"position":[[19,14]]},"191":{"position":[[19,13]]},"192":{"position":[[19,13]]},"197":{"position":[[19,13]]},"199":{"position":[[971,13]]},"200":{"position":[[277,13]]},"211":{"position":[[19,13]]},"212":{"position":[[19,13]]},"214":{"position":[[1022,13]]},"218":{"position":[[19,13]]},"222":{"position":[[19,13]]},"226":{"position":[[19,13]]},"230":{"position":[[19,13]]},"233":{"position":[[19,13]]},"237":{"position":[[19,13]]},"240":{"position":[[1355,13]]},"241":{"position":[[19,13]]},"245":{"position":[[19,13]]},"249":{"position":[[19,13]]},"250":{"position":[[19,13]]},"254":{"position":[[19,13]]},"258":{"position":[[19,13]]},"262":{"position":[[19,13]]},"266":{"position":[[19,13]]},"273":{"position":[[19,13]]},"277":{"position":[[19,13]]},"287":{"position":[[19,13]]},"291":{"position":[[19,13],[356,13]]},"295":{"position":[[19,13]]},"297":{"position":[[961,13]]},"301":{"position":[[19,13]]},"307":{"position":[[43,13]]},"308":{"position":[[43,13]]},"312":{"position":[[19,13]]},"318":{"position":[[19,13]]},"320":{"position":[[977,13]]},"328":{"position":[[19,13],[519,13]]},"330":{"position":[[963,13]]},"334":{"position":[[19,13]]},"343":{"position":[[19,13]]},"348":{"position":[[19,13]]},"349":{"position":[[19,13]]},"354":{"position":[[19,13]]},"358":{"position":[[19,13]]},"360":{"position":[[152,11]]},"368":{"position":[[50,13],[815,13],[1522,13]]},"369":{"position":[[633,13]]},"370":{"position":[[63,13]]},"371":{"position":[[63,13]]},"490":{"position":[[980,13]]},"518":{"position":[[433,13]]},"520":{"position":[[480,13]]},"521":{"position":[[141,13]]}},"keywords":{}}],["middy/corecach",{"_index":2089,"title":{},"content":{"360":{"position":[[461,16]]}},"keywords":{}}],["middy/do",{"_index":813,"title":{},"content":{"139":{"position":[[117,9]]},"209":{"position":[[77,9]]},"211":{"position":[[72,10]]},"360":{"position":[[556,9]]}},"keywords":{}}],["middy/dynamodb",{"_index":778,"title":{},"content":{"107":{"position":[[194,17]]},"206":{"position":[[77,15]]},"212":{"position":[[54,17]]},"214":{"position":[[1074,17]]}},"keywords":{}}],["middy/error",{"_index":626,"title":{},"content":{"31":{"position":[[67,13]]},"43":{"position":[[67,13]]},"46":{"position":[[118,13]]},"97":{"position":[[67,13]]},"105":{"position":[[135,13]]},"150":{"position":[[67,13]]},"216":{"position":[[77,12]]},"218":{"position":[[57,13]]}},"keywords":{}}],["middy/ev",{"_index":718,"title":{},"content":{"52":{"position":[[71,13]]},"61":{"position":[[71,13]]},"64":{"position":[[71,13]]},"67":{"position":[[71,13]]},"91":{"position":[[71,13]]},"94":{"position":[[71,13]]},"100":{"position":[[71,13]]},"103":{"position":[[71,13]]},"110":{"position":[[71,13]]},"113":{"position":[[71,13]]},"116":{"position":[[71,13]]},"125":{"position":[[71,13]]},"131":{"position":[[71,13]]},"143":{"position":[[71,13]]},"220":{"position":[[77,12]]},"222":{"position":[[61,13]]}},"keywords":{}}],["middy/http",{"_index":141,"title":{},"content":{"8":{"position":[[512,11],[578,11],[618,11]]},"16":{"position":[[321,12],[381,12]]},"31":{"position":[[203,12],[279,12],[341,12],[399,12],[469,12],[543,12],[616,12],[693,12],[771,12],[847,12],[923,12],[1000,12],[1092,12]]},"43":{"position":[[203,12],[279,12],[341,12],[399,12],[469,12],[543,12],[616,12],[693,12],[771,12],[847,12],[923,12],[1000,12],[1092,12]]},"46":{"position":[[63,12],[254,12],[330,12],[392,12],[450,12],[520,12],[594,12],[667,12],[744,12],[822,12],[898,12],[974,12],[1051,12],[1143,12]]},"97":{"position":[[203,12],[279,12],[341,12],[399,12],[469,12],[543,12],[616,12],[693,12],[771,12],[847,12],[923,12],[1000,12],[1092,12]]},"140":{"position":[[527,12]]},"150":{"position":[[203,12],[279,12],[341,12],[399,12],[469,12],[555,12],[628,12],[705,12],[783,12],[859,12],[935,12],[1012,12],[1104,12]]},"224":{"position":[[77,11]]},"226":{"position":[[68,12],[135,12],[196,12]]},"228":{"position":[[77,11]]},"230":{"position":[[62,12]]},"232":{"position":[[77,11]]},"233":{"position":[[65,12]]},"235":{"position":[[77,11]]},"237":{"position":[[66,12]]},"239":{"position":[[77,11]]},"240":{"position":[[1398,12],[1443,12]]},"241":{"position":[[50,12]]},"243":{"position":[[77,11]]},"245":{"position":[[66,12],[129,12]]},"247":{"position":[[77,11]]},"249":{"position":[[68,12],[134,12]]},"250":{"position":[[68,12],[134,12]]},"252":{"position":[[77,11]]},"254":{"position":[[66,12],[134,12]]},"256":{"position":[[77,11]]},"258":{"position":[[65,12]]},"260":{"position":[[77,11]]},"262":{"position":[[65,12]]},"264":{"position":[[77,11]]},"266":{"position":[[66,12],[134,12]]},"268":{"position":[[77,11]]},"273":{"position":[[68,12]]},"275":{"position":[[77,11]]},"277":{"position":[[69,12]]},"356":{"position":[[77,11]]},"358":{"position":[[63,12]]},"360":{"position":[[507,11],[624,11],[678,11],[729,11],[784,11],[843,11],[897,11],[946,11],[1141,11]]},"368":{"position":[[1567,12]]}},"keywords":{}}],["middy/input",{"_index":628,"title":{},"content":{"31":{"position":[[129,13]]},"43":{"position":[[129,13]]},"46":{"position":[[180,13]]},"97":{"position":[[129,13]]},"105":{"position":[[197,13]]},"150":{"position":[[129,13]]},"289":{"position":[[77,12]]},"291":{"position":[[63,13],[400,13]]}},"keywords":{}}],["middy/rd",{"_index":95,"title":{},"content":{"6":{"position":[[542,10]]},"8":{"position":[[749,10]]},"106":{"position":[[107,11]]},"285":{"position":[[77,10]]},"287":{"position":[[55,11]]}},"keywords":{}}],["middy/s3",{"_index":98,"title":{},"content":{"6":{"position":[[585,9]]},"8":{"position":[[473,9],[541,9],[792,9]]},"107":{"position":[[151,11]]},"122":{"position":[[72,10]]},"293":{"position":[[77,9]]},"295":{"position":[[48,11]]},"297":{"position":[[1001,11]]},"304":{"position":[[77,9]]},"307":{"position":[[86,10]]},"308":{"position":[[86,10]]},"360":{"position":[[996,9]]}},"keywords":{}}],["middy/secret",{"_index":755,"title":{},"content":{"106":{"position":[[164,15]]},"200":{"position":[[318,15]]},"316":{"position":[[77,14]]},"318":{"position":[[60,15]]},"320":{"position":[[1030,15]]},"360":{"position":[[1041,14]]}},"keywords":{}}],["middy/sercret",{"_index":101,"title":{},"content":{"6":{"position":[[648,15]]},"8":{"position":[[855,15]]}},"keywords":{}}],["middy/servic",{"_index":104,"title":{},"content":{"6":{"position":[[711,14]]},"8":{"position":[[918,14]]},"310":{"position":[[77,14]]},"312":{"position":[[62,15]]}},"keywords":{}}],["middy/sq",{"_index":836,"title":{},"content":{"143":{"position":[[132,11]]},"299":{"position":[[77,10]]},"301":{"position":[[54,11]]}},"keywords":{}}],["middy/ssm",{"_index":107,"title":{},"content":{"6":{"position":[[762,10]]},"8":{"position":[[969,10]]},"106":{"position":[[215,12]]},"107":{"position":[[238,12]]},"326":{"position":[[77,10]]},"328":{"position":[[49,12],[591,12]]},"330":{"position":[[1049,12]]}},"keywords":{}}],["middy/ssmvalid",{"_index":2102,"title":{},"content":{"360":{"position":[[1073,19]]}},"keywords":{}}],["middy/st",{"_index":109,"title":{},"content":{"6":{"position":[[798,10]]},"8":{"position":[[1005,10]]},"106":{"position":[[254,12]]},"196":{"position":[[362,10]]},"207":{"position":[[358,10]]},"294":{"position":[[341,10]]},"311":{"position":[[390,10]]},"317":{"position":[[365,10]]},"327":{"position":[[325,10]]},"332":{"position":[[77,10]]},"334":{"position":[[49,12]]},"346":{"position":[[412,10]]}},"keywords":{}}],["middy/util",{"_index":456,"title":{},"content":{"19":{"position":[[238,13]]},"106":{"position":[[61,13]]},"107":{"position":[[61,13]]},"328":{"position":[[561,13]]},"330":{"position":[[1005,13]]},"522":{"position":[[600,13]]}},"keywords":{}}],["middy/valid",{"_index":249,"title":{},"content":{"16":{"position":[[431,18]]},"354":{"position":[[166,18]]},"358":{"position":[[116,18]]},"364":{"position":[[77,16]]},"368":{"position":[[86,18],[851,18],[1620,18]]},"369":{"position":[[669,18]]},"370":{"position":[[99,18]]},"371":{"position":[[99,18]]},"484":{"position":[[622,18],[916,18]]}},"keywords":{}}],["middy/validator/transpil",{"_index":251,"title":{},"content":{"16":{"position":[[482,28]]},"368":{"position":[[137,28],[902,28],[1671,28]]},"370":{"position":[[167,28]]},"371":{"position":[[167,28]]},"484":{"position":[[702,28]]}},"keywords":{}}],["middy/validatorurlencodebodypars",{"_index":2103,"title":{},"content":{"360":{"position":[[1099,35]]}},"keywords":{}}],["middy/w",{"_index":92,"title":{},"content":{"6":{"position":[[497,9]]},"8":{"position":[[704,9]]},"37":{"position":[[72,10],[134,10],[183,10]]},"341":{"position":[[65,9]]},"343":{"position":[[72,10],[134,10]]},"345":{"position":[[77,9]]},"348":{"position":[[56,10]]},"349":{"position":[[56,10]]},"352":{"position":[[65,9]]},"354":{"position":[[61,10],[113,10]]}},"keywords":{}}],["middy/warmup",{"_index":2053,"title":{},"content":{"337":{"position":[[77,13]]},"360":{"position":[[1187,13]]}},"keywords":{}}],["middymiddi",{"_index":1945,"title":{},"content":{"322":{"position":[[661,10],[971,10]]}},"keywords":{}}],["millisecond",{"_index":1511,"title":{},"content":{"204":{"position":[[200,15]]}},"keywords":{}}],["mime",{"_index":1739,"title":{},"content":{"261":{"position":[[325,4]]}},"keywords":{}}],["mind",{"_index":1689,"title":{},"content":{"253":{"position":[[623,4],[814,4]]},"490":{"position":[[892,5]]}},"keywords":{}}],["minifi",{"_index":54,"title":{},"content":{"5":{"position":[[178,6]]}},"keywords":{}}],["minimum",{"_index":293,"title":{},"content":{"16":{"position":[[1384,8],[1442,8]]}},"keywords":{}}],["minlength",{"_index":287,"title":{},"content":{"16":{"position":[[1303,10],[1497,10]]}},"keywords":{}}],["misc",{"_index":1789,"title":{"280":{"position":[[0,5]]}},"content":{},"keywords":{}}],["miss",{"_index":187,"title":{},"content":{"13":{"position":[[131,4]]},"236":{"position":[[217,8]]},"368":{"position":[[589,7]]},"384":{"position":[[21,7]]},"456":{"position":[[95,7]]},"516":{"position":[[41,7]]}},"keywords":{}}],["missing.http",{"_index":1803,"title":{},"content":{"281":{"position":[[432,12]]}},"keywords":{}}],["mistak",{"_index":1198,"title":{},"content":{"172":{"position":[[141,8]]}},"keywords":{}}],["misus",{"_index":2247,"title":{},"content":{"400":{"position":[[53,6]]},"403":{"position":[[53,6]]}},"keywords":{}}],["mock",{"_index":406,"title":{},"content":{"18":{"position":[[784,5]]},"520":{"position":[[337,4]]}},"keywords":{}}],["mode",{"_index":128,"title":{},"content":{"8":{"position":[[259,5]]}},"keywords":{}}],["modif",{"_index":2359,"title":{},"content":{"519":{"position":[[843,12]]}},"keywords":{}}],["modifi",{"_index":1294,"title":{},"content":{"181":{"position":[[680,8]]},"185":{"position":[[777,6]]},"236":{"position":[[39,8]]},"378":{"position":[[453,9]]},"387":{"position":[[18,6]]},"390":{"position":[[1,8]]},"394":{"position":[[107,6]]},"396":{"position":[[18,6]]}},"keywords":{}}],["modul",{"_index":136,"title":{},"content":{"8":{"position":[[428,7]]},"17":{"position":[[850,7]]},"282":{"position":[[243,6]]},"361":{"position":[[631,7]]}},"keywords":{}}],["modular",{"_index":219,"title":{},"content":{"15":{"position":[[470,7]]}},"keywords":{}}],["module';const",{"_index":57,"title":{},"content":{"5":{"position":[[235,14]]}},"keywords":{}}],["module.export",{"_index":2194,"title":{},"content":{"375":{"position":[[133,14]]}},"keywords":{}}],["modules.upd",{"_index":2266,"title":{},"content":{"416":{"position":[[35,14]]}},"keywords":{}}],["mond",{"_index":1581,"title":{},"content":{"226":{"position":[[405,6]]}},"keywords":{}}],["mondo",{"_index":1577,"title":{},"content":{"226":{"position":[[356,6]]}},"keywords":{}}],["mongodb",{"_index":2003,"title":{},"content":{"324":{"position":[[1192,7]]}},"keywords":{}}],["mongoos",{"_index":2001,"title":{},"content":{"324":{"position":[[1172,8]]}},"keywords":{}}],["mongoose.js@ematipico/middi",{"_index":2004,"title":{},"content":{"324":{"position":[[1226,27]]}},"keywords":{}}],["monitor",{"_index":947,"title":{},"content":{"158":{"position":[[55,11]]}},"keywords":{}}],["month",{"_index":1342,"title":{},"content":{"187":{"position":[[47,5],[75,5],[179,7]]}},"keywords":{}}],["moos",{"_index":1760,"title":{},"content":{"266":{"position":[[693,7]]}},"keywords":{}}],["more",{"_index":909,"title":{"517":{"position":[[0,4]]}},"content":{"153":{"position":[[873,6]]},"157":{"position":[[929,4]]},"163":{"position":[[354,5]]},"172":{"position":[[591,4]]},"176":{"position":[[54,4],[548,4]]},"253":{"position":[[177,4]]},"317":{"position":[[958,4]]},"361":{"position":[[299,4],[446,4]]},"441":{"position":[[80,4]]},"484":{"position":[[122,4]]},"495":{"position":[[30,4]]},"512":{"position":[[49,4]]},"517":{"position":[[0,4],[61,4]]},"521":{"position":[[996,4]]}},"keywords":{}}],["more.metr",{"_index":1050,"title":{},"content":{"163":{"position":[[592,12]]}},"keywords":{}}],["more.trac",{"_index":1042,"title":{},"content":{"163":{"position":[[408,11]]}},"keywords":{}}],["mostli",{"_index":320,"title":{},"content":{"17":{"position":[[109,6]]},"156":{"position":[[141,6]]}},"keywords":{}}],["move",{"_index":891,"title":{},"content":{"153":{"position":[[139,5]]},"360":{"position":[[143,5],[198,5]]},"362":{"position":[[220,4]]},"426":{"position":[[1,5]]}},"keywords":{}}],["mq",{"_index":742,"title":{"101":{"position":[[0,2]]}},"content":{"102":{"position":[[26,2]]}},"keywords":{}}],["ms",{"_index":509,"title":{},"content":{"21":{"position":[[367,5],[1316,2],[1364,2],[1413,2],[1465,2],[1517,2],[1564,2],[1615,2],[1653,2],[1673,2],[1710,2],[1756,2],[1792,2],[1837,2],[1857,2]]}},"keywords":{}}],["ms.settocontext",{"_index":1451,"title":{},"content":{"196":{"position":[[985,15]]},"207":{"position":[[980,15]]},"286":{"position":[[713,15]]},"294":{"position":[[957,15]]},"311":{"position":[[1007,15]]},"317":{"position":[[1464,15]]},"327":{"position":[[990,15]]},"333":{"position":[[818,15]]}},"keywords":{}}],["msk",{"_index":735,"title":{"89":{"position":[[25,5]]}},"content":{"90":{"position":[[26,3]]}},"keywords":{}}],["muffin",{"_index":1756,"title":{},"content":{"266":{"position":[[658,9]]}},"keywords":{}}],["multi",{"_index":1237,"title":{},"content":{"175":{"position":[[1150,5]]},"367":{"position":[[138,5]]}},"keywords":{}}],["multipart",{"_index":641,"title":{"251":{"position":[[5,9]]},"392":{"position":[[5,9]]},"432":{"position":[[5,9]]},"469":{"position":[[5,9]]},"500":{"position":[[5,9]]}},"content":{"31":{"position":[[706,9]]},"43":{"position":[[706,9]]},"46":{"position":[[757,9]]},"97":{"position":[[706,9]]},"150":{"position":[[718,9]]},"252":{"position":[[89,9]]},"254":{"position":[[147,9]]},"281":{"position":[[712,9]]}},"keywords":{}}],["multipart/form",{"_index":1698,"title":{},"content":{"254":{"position":[[411,15]]},"281":{"position":[[788,14]]}},"keywords":{}}],["multipl",{"_index":942,"title":{"181":{"position":[[6,8]]}},"content":{"157":{"position":[[439,8]]},"176":{"position":[[666,8]]},"181":{"position":[[13,8]]},"272":{"position":[[419,8]]},"317":{"position":[[1021,8]]},"323":{"position":[[474,8]]},"416":{"position":[[220,8]]},"515":{"position":[[377,8]]},"522":{"position":[[427,8]]}},"keywords":{}}],["multivaluequerystringparamet",{"_index":1802,"title":{},"content":{"281":{"position":[[370,31]]}},"keywords":{}}],["mutat",{"_index":2227,"title":{},"content":{"379":{"position":[[170,7]]}},"keywords":{}}],["myapplict",{"_index":1519,"title":{},"content":{"204":{"position":[[369,15]]}},"keywords":{}}],["mîddi",{"_index":1788,"title":{},"content":{"277":{"position":[[437,7]]}},"keywords":{}}],["n",{"_index":1450,"title":{},"content":{"196":{"position":[[970,2],[983,1]]},"207":{"position":[[965,2],[978,1]]},"286":{"position":[[698,2],[711,1]]},"294":{"position":[[942,2],[955,1]]},"311":{"position":[[992,2],[1005,1]]},"317":{"position":[[1449,2],[1462,1]]},"327":{"position":[[975,2],[988,1]]},"333":{"position":[[803,2],[816,1]]}},"keywords":{}}],["name",{"_index":485,"title":{},"content":{"19":{"position":[[897,4],[1020,4]]},"21":{"position":[[2657,5],[2697,4],[2834,5]]},"158":{"position":[[452,4],[513,6]]},"166":{"position":[[257,4]]},"168":{"position":[[54,4]]},"170":{"position":[[105,4]]},"171":{"position":[[583,5],[700,4],[753,5],[902,4]]},"174":{"position":[[105,4]]},"189":{"position":[[1143,6]]},"193":{"position":[[215,6]]},"196":{"position":[[555,4]]},"207":{"position":[[551,4]]},"236":{"position":[[332,4]]},"277":{"position":[[336,5],[431,5]]},"281":{"position":[[487,5]]},"286":{"position":[[282,4]]},"290":{"position":[[395,5]]},"294":{"position":[[534,4]]},"311":{"position":[[583,4]]},"317":{"position":[[549,4],[691,4]]},"327":{"position":[[514,4]]},"333":{"position":[[394,4]]},"361":{"position":[[73,5],[226,5]]},"368":{"position":[[1865,8],[1898,5]]},"417":{"position":[[66,4]]}},"keywords":{}}],["namemiddlewar",{"_index":2355,"title":{},"content":{"519":{"position":[[367,14],[748,14]]}},"keywords":{}}],["namemiddlewareaft",{"_index":2357,"title":{},"content":{"519":{"position":[[513,19],[677,20]]}},"keywords":{}}],["namemiddlewarebefor",{"_index":2356,"title":{},"content":{"519":{"position":[[451,20],[648,21]]}},"keywords":{}}],["namemiddlewareonerror",{"_index":2358,"title":{},"content":{"519":{"position":[[574,21],[707,21]]}},"keywords":{}}],["nameoncard",{"_index":265,"title":{},"content":{"16":{"position":[[817,11],[1544,11]]}},"keywords":{}}],["names/path",{"_index":2014,"title":{},"content":{"327":{"position":[[544,11]]}},"keywords":{}}],["namespac",{"_index":1206,"title":{},"content":{"172":{"position":[[478,10]]},"174":{"position":[[223,9]]},"175":{"position":[[147,10]]},"203":{"position":[[1,9],[86,9]]},"204":{"position":[[358,10]]},"360":{"position":[[96,10]]}},"keywords":{}}],["namespacenam",{"_index":1902,"title":{},"content":{"312":{"position":[[336,14]]}},"keywords":{}}],["nativ",{"_index":421,"title":{},"content":{"18":{"position":[[1053,6],[1095,6],[1133,6],[1180,6],[1211,6]]},"221":{"position":[[112,6]]}},"keywords":{}}],["nativeattributevalue>",{"_index":1535,"title":{},"content":{"214":{"position":[[208,25]]}},"keywords":{}}],["natur",{"_index":2377,"title":{},"content":{"522":{"position":[[387,6]]}},"keywords":{}}],["near",{"_index":2214,"title":{},"content":{"378":{"position":[[301,4]]}},"keywords":{}}],["necessari",{"_index":331,"title":{},"content":{"17":{"position":[[384,9]]}},"keywords":{}}],["necessarili",{"_index":2345,"title":{},"content":{"518":{"position":[[103,11]]}},"keywords":{}}],["need",{"_index":258,"title":{"106":{"position":[[0,4]]}},"content":{"16":{"position":[[684,4]]},"19":{"position":[[169,4],[1183,4],[1232,4]]},"151":{"position":[[179,4]]},"153":{"position":[[580,7]]},"156":{"position":[[460,4]]},"159":{"position":[[36,4]]},"172":{"position":[[287,4]]},"175":{"position":[[1010,4]]},"182":{"position":[[66,4]]},"189":{"position":[[390,4],[1248,4]]},"200":{"position":[[1169,5]]},"210":{"position":[[161,7]]},"305":{"position":[[672,4]]},"322":{"position":[[779,4]]},"360":{"position":[[287,6],[385,4]]},"365":{"position":[[932,4]]},"368":{"position":[[2102,4]]},"369":{"position":[[138,5]]},"375":{"position":[[83,7]]},"414":{"position":[[14,4]]},"416":{"position":[[277,4]]},"447":{"position":[[161,4]]},"516":{"position":[[155,4],[221,7]]},"518":{"position":[[81,4],[159,4]]},"519":{"position":[[295,4]]},"522":{"position":[[325,7]]}},"keywords":{}}],["need.attach",{"_index":930,"title":{},"content":{"156":{"position":[[424,11]]}},"keywords":{}}],["neededwil",{"_index":2237,"title":{},"content":{"389":{"position":[[39,10]]}},"keywords":{}}],["negoti",{"_index":630,"title":{"223":{"position":[[13,11]]},"272":{"position":[[13,12]]},"386":{"position":[[13,12]]},"426":{"position":[[13,12]]},"463":{"position":[[13,12]]},"494":{"position":[[13,12]]}},"content":{"31":{"position":[[224,12]]},"43":{"position":[[224,12]]},"46":{"position":[[275,12]]},"97":{"position":[[224,12]]},"150":{"position":[[224,12]]},"224":{"position":[[97,11]]},"225":{"position":[[907,11]]},"226":{"position":[[89,12]]},"249":{"position":[[89,12]]},"250":{"position":[[89,12]]},"281":{"position":[[125,12],[197,11]]},"425":{"position":[[71,13]]}},"keywords":{}}],["negotiation).ajv",{"_index":2281,"title":{},"content":{"447":{"position":[[71,16]]}},"keywords":{}}],["negotiationhttperrorhandl",{"_index":2093,"title":{},"content":{"360":{"position":[[644,27]]}},"keywords":{}}],["nest",{"_index":1799,"title":{},"content":{"281":{"position":[[98,6]]},"506":{"position":[[92,6]]}},"keywords":{}}],["net",{"_index":1335,"title":{},"content":{"186":{"position":[[311,4]]}},"keywords":{}}],["never",{"_index":1449,"title":{},"content":{"196":{"position":[[957,5]]},"207":{"position":[[952,5]]},"286":{"position":[[685,5]]},"294":{"position":[[929,5]]},"311":{"position":[[979,5]]},"317":{"position":[[1436,5]]},"327":{"position":[[962,5]]},"333":{"position":[[790,5]]}},"keywords":{}}],["new",{"_index":458,"title":{},"content":{"19":{"position":[[346,3],[1016,3]]},"22":{"position":[[228,3]]},"140":{"position":[[413,3]]},"153":{"position":[[917,3]]},"156":{"position":[[320,3]]},"167":{"position":[[126,3]]},"171":{"position":[[199,3],[291,3]]},"172":{"position":[[425,3]]},"175":{"position":[[133,3]]},"179":{"position":[[276,3],[707,3]]},"181":{"position":[[337,3]]},"193":{"position":[[103,3],[153,3],[274,3]]},"230":{"position":[[143,3]]},"240":{"position":[[1515,3]]},"361":{"position":[[283,3],[680,3]]},"362":{"position":[[260,3]]},"373":{"position":[[133,3],[255,3]]},"377":{"position":[[1,3]]},"378":{"position":[[645,3],[890,3]]},"385":{"position":[[1,5]]},"395":{"position":[[1,5]]},"396":{"position":[[108,3]]},"399":{"position":[[8,3]]},"404":{"position":[[1,5]]},"409":{"position":[[104,3]]},"411":{"position":[[1,5]]},"412":{"position":[[1,5]]},"413":{"position":[[1,5]]},"416":{"position":[[144,3]]},"417":{"position":[[51,3],[93,3]]},"456":{"position":[[72,3]]},"462":{"position":[[59,3]]},"469":{"position":[[5,3]]},"495":{"position":[[7,3]]},"496":{"position":[[131,3]]},"507":{"position":[[1,3]]},"509":{"position":[[1,3]]},"514":{"position":[[1,3]]}},"keywords":{}}],["new/2021/11/aw",{"_index":2254,"title":{},"content":{"406":{"position":[[78,15]]}},"keywords":{}}],["newer",{"_index":2274,"title":{},"content":{"420":{"position":[[19,5]]}},"keywords":{}}],["newkey",{"_index":490,"title":{},"content":{"19":{"position":[[1124,7]]}},"keywords":{}}],["next",{"_index":898,"title":{},"content":{"153":{"position":[[374,4]]},"156":{"position":[[24,4]]},"187":{"position":[[194,4]]},"244":{"position":[[242,4]]},"253":{"position":[[427,4]]},"265":{"position":[[135,4]]}},"keywords":{}}],["next(err",{"_index":2186,"title":{},"content":{"373":{"position":[[198,9]]}},"keywords":{}}],["nextrotationd",{"_index":1907,"title":{},"content":{"317":{"position":[[847,17]]}},"keywords":{}}],["nextrotationdate/lastrotationdate/lastchangedd",{"_index":1906,"title":{},"content":{"317":{"position":[[769,50]]}},"keywords":{}}],["nice",{"_index":1499,"title":{},"content":{"200":{"position":[[1386,4]]}},"keywords":{}}],["nine",{"_index":1348,"title":{},"content":{"187":{"position":[[170,4]]}},"keywords":{}}],["nmessag",{"_index":1586,"title":{},"content":{"226":{"position":[[608,10]]}},"keywords":{}}],["node",{"_index":67,"title":{},"content":{"6":{"position":[[32,4],[169,4]]},"16":{"position":[[196,4],[257,4]]},"493":{"position":[[34,4]]},"522":{"position":[[397,4]]}},"keywords":{}}],["node.j",{"_index":18,"title":{"362":{"position":[[0,7],[34,7]]}},"content":{"0":{"position":[[266,7]]},"15":{"position":[[102,8]]},"163":{"position":[[470,7]]},"186":{"position":[[210,7]]},"187":{"position":[[307,7]]},"361":{"position":[[325,7]]},"362":{"position":[[41,7],[172,7],[228,7]]}},"keywords":{}}],["node.js.auto",{"_index":1175,"title":{},"content":{"168":{"position":[[342,12]]}},"keywords":{}}],["node/issues/531#issuecom",{"_index":1887,"title":{},"content":{"305":{"position":[[731,28]]}},"keywords":{}}],["node:crypto",{"_index":1265,"title":{},"content":{"179":{"position":[[61,14]]}},"keywords":{}}],["node:fs/promis",{"_index":2178,"title":{},"content":{"370":{"position":[[26,18]]},"371":{"position":[[26,18]]}},"keywords":{}}],["node:path",{"_index":121,"title":{},"content":{"8":{"position":[[96,11]]}},"keywords":{}}],["node:url",{"_index":123,"title":{},"content":{"8":{"position":[[138,10]]}},"keywords":{}}],["node:zlib",{"_index":1668,"title":{},"content":{"249":{"position":[[191,11]]},"250":{"position":[[191,11]]}},"keywords":{}}],["node_modul",{"_index":366,"title":{"18":{"position":[[6,12]]}},"content":{"18":{"position":[[6,12],[158,12]]}},"keywords":{}}],["node_modules/.bin/babel",{"_index":152,"title":{},"content":{"10":{"position":[[51,23]]}},"keywords":{}}],["node_modules/.bin/esbuild",{"_index":49,"title":{},"content":{"5":{"position":[[85,25]]},"11":{"position":[[18,25]]}},"keywords":{}}],["node_modules/.bin/rollup",{"_index":70,"title":{},"content":{"6":{"position":[[69,24]]}},"keywords":{}}],["node_modules/.bin/spack",{"_index":113,"title":{},"content":{"7":{"position":[[29,23]]}},"keywords":{}}],["node_modules/.bin/swc",{"_index":165,"title":{},"content":{"12":{"position":[[29,21]]}},"keywords":{}}],["node_modules/.bin/tsc",{"_index":25,"title":{},"content":{"3":{"position":[[21,21]]}},"keywords":{}}],["node_modules/.bin/webpack",{"_index":118,"title":{},"content":{"8":{"position":[[30,25]]}},"keywords":{}}],["nodej",{"_index":135,"title":{},"content":{"8":{"position":[[421,6]]},"187":{"position":[[278,6]]},"248":{"position":[[399,6]]}},"keywords":{}}],["noderesolv",{"_index":74,"title":{},"content":{"6":{"position":[[134,11],[246,14]]}},"keywords":{}}],["non",{"_index":1591,"title":{},"content":{"229":{"position":[[214,3]]},"496":{"position":[[155,3]]}},"keywords":{}}],["none",{"_index":1570,"title":{},"content":{"225":{"position":[[954,4]]},"276":{"position":[[1,4]]},"452":{"position":[[1,4]]},"489":{"position":[[1,4]]}},"keywords":{}}],["normal",{"_index":636,"title":{"219":{"position":[[6,10]]},"231":{"position":[[11,10]]},"234":{"position":[[12,10]]},"361":{"position":[[7,13],[36,11]]},"384":{"position":[[6,11]]},"389":{"position":[[11,11]]},"390":{"position":[[12,11]]},"401":{"position":[[7,11]]},"424":{"position":[[6,11]]},"429":{"position":[[11,11]]},"430":{"position":[[12,11]]},"461":{"position":[[6,11]]},"466":{"position":[[11,11]]},"467":{"position":[[12,11]]},"497":{"position":[[11,11]]},"498":{"position":[[12,11]]},"508":{"position":[[7,11]]}},"content":{"31":{"position":[[488,11],[563,11]]},"43":{"position":[[488,11],[563,11]]},"46":{"position":[[539,11],[614,11]]},"52":{"position":[[85,11]]},"61":{"position":[[85,11]]},"64":{"position":[[85,11]]},"67":{"position":[[85,11]]},"91":{"position":[[85,11]]},"94":{"position":[[85,11]]},"97":{"position":[[488,11],[563,11]]},"100":{"position":[[85,11]]},"103":{"position":[[85,11]]},"110":{"position":[[85,11]]},"113":{"position":[[85,11]]},"116":{"position":[[85,11]]},"125":{"position":[[85,11]]},"131":{"position":[[85,11]]},"143":{"position":[[85,11]]},"150":{"position":[[488,11],[575,11]]},"220":{"position":[[90,10]]},"222":{"position":[[75,11]]},"226":{"position":[[155,11]]},"232":{"position":[[95,10]]},"233":{"position":[[84,11]]},"235":{"position":[[96,10]]},"236":{"position":[[107,10]]},"237":{"position":[[86,11]]},"245":{"position":[[86,11]]},"254":{"position":[[86,11]]},"266":{"position":[[86,11]]},"281":{"position":[[7,11],[86,11],[282,11],[294,10],[452,11],[464,10]]},"361":{"position":[[50,10]]},"401":{"position":[[31,11]]},"405":{"position":[[31,11]]}},"keywords":{}}],["normalizeheaderkey",{"_index":1614,"title":{},"content":{"236":{"position":[[253,21]]}},"keywords":{}}],["normalizerespons",{"_index":2286,"title":{},"content":{"456":{"position":[[1,17]]}},"keywords":{}}],["normalizerhttpheadernorm",{"_index":2095,"title":{},"content":{"360":{"position":[[747,30]]}},"keywords":{}}],["normalizerhttpmultipartbodypars",{"_index":2096,"title":{},"content":{"360":{"position":[[803,33]]}},"keywords":{}}],["normalizersecretsmanag",{"_index":2100,"title":{},"content":{"360":{"position":[[1010,24]]}},"keywords":{}}],["notabl",{"_index":2203,"title":{"377":{"position":[[0,7]]},"416":{"position":[[0,7]]},"454":{"position":[[0,7]]}},"content":{},"keywords":{}}],["notaccept",{"_index":1567,"title":{},"content":{"225":{"position":[[868,13]]}},"keywords":{}}],["note",{"_index":962,"title":{"414":{"position":[[0,6]]},"452":{"position":[[0,6]]},"489":{"position":[[0,6]]}},"content":{"159":{"position":[[183,5]]},"196":{"position":[[1067,6]]},"200":{"position":[[950,4]]},"207":{"position":[[1062,6]]},"248":{"position":[[365,6]]},"253":{"position":[[448,5]]},"286":{"position":[[795,6]]},"294":{"position":[[1039,6]]},"305":{"position":[[481,6]]},"311":{"position":[[1089,6]]},"317":{"position":[[1542,6]]},"327":{"position":[[1072,6]]},"333":{"position":[[900,6]]},"346":{"position":[[696,6]]},"353":{"position":[[241,6]]},"357":{"position":[[366,6]]},"365":{"position":[[793,6]]},"368":{"position":[[563,4]]},"521":{"position":[[719,5]]}},"keywords":{}}],["notic",{"_index":278,"title":{},"content":{"16":{"position":[[1028,6]]},"21":{"position":[[2609,6]]},"185":{"position":[[560,6]]},"361":{"position":[[143,7]]}},"keywords":{}}],["now",{"_index":584,"title":{"362":{"position":[[18,3],[50,3]]}},"content":{"21":{"position":[[2274,3]]},"377":{"position":[[105,3]]},"378":{"position":[[490,3],[604,3]]},"379":{"position":[[19,3],[148,3]]},"388":{"position":[[94,3]]},"389":{"position":[[50,3]]},"441":{"position":[[45,3]]},"444":{"position":[[6,3]]},"454":{"position":[[7,3]]},"456":{"position":[[19,3]]},"474":{"position":[[1,3]]},"484":{"position":[[248,3]]},"506":{"position":[[1,3]]}},"keywords":{}}],["npm",{"_index":23,"title":{},"content":{"3":{"position":[[1,3]]},"5":{"position":[[1,3]]},"6":{"position":[[1,3]]},"7":{"position":[[1,3]]},"8":{"position":[[1,3]]},"10":{"position":[[1,3]]},"11":{"position":[[1,3]]},"12":{"position":[[1,3]]},"155":{"position":[[31,4],[49,3],[219,3]]},"165":{"position":[[13,3]]},"169":{"position":[[13,3]]},"173":{"position":[[13,3]]},"177":{"position":[[13,3]]},"195":{"position":[[40,4],[58,3],[94,3]]},"202":{"position":[[40,4],[58,3]]},"206":{"position":[[40,4],[58,3],[93,3]]},"209":{"position":[[40,4],[58,3]]},"216":{"position":[[40,4],[58,3]]},"220":{"position":[[40,4],[58,3]]},"224":{"position":[[40,4],[58,3]]},"228":{"position":[[40,4],[58,3]]},"232":{"position":[[40,4],[58,3]]},"235":{"position":[[40,4],[58,3]]},"239":{"position":[[40,4],[58,3]]},"243":{"position":[[40,4],[58,3]]},"247":{"position":[[40,4],[58,3]]},"252":{"position":[[40,4],[58,3]]},"256":{"position":[[40,4],[58,3]]},"260":{"position":[[40,4],[58,3]]},"264":{"position":[[40,4],[58,3]]},"268":{"position":[[40,4],[58,3]]},"275":{"position":[[40,4],[58,3]]},"285":{"position":[[40,4],[58,3],[95,3]]},"289":{"position":[[40,4],[58,3]]},"293":{"position":[[40,4],[58,3],[87,3]]},"299":{"position":[[40,4],[58,3],[136,3]]},"304":{"position":[[40,4],[58,3],[103,3]]},"310":{"position":[[40,4],[58,3],[102,3]]},"316":{"position":[[40,4],[58,3],[100,3]]},"326":{"position":[[40,4],[58,3],[88,3]]},"332":{"position":[[40,4],[58,3],[88,3]]},"337":{"position":[[40,4],[58,3]]},"341":{"position":[[40,4],[46,3]]},"345":{"position":[[40,4],[58,3],[96,3]]},"352":{"position":[[40,4],[46,3]]},"356":{"position":[[40,4],[58,3]]},"360":{"position":[[75,3]]},"364":{"position":[[40,4],[58,3],[94,3]]},"447":{"position":[[173,3]]}},"keywords":{}}],["npmignor",{"_index":447,"title":{},"content":{"18":{"position":[[1507,10]]}},"keywords":{}}],["npmyarnpnpm",{"_index":914,"title":{},"content":{"155":{"position":[[37,11],[207,11]]},"165":{"position":[[1,11]]},"169":{"position":[[1,11]]},"173":{"position":[[1,11]]},"177":{"position":[[1,11]]},"195":{"position":[[46,11]]},"202":{"position":[[46,11]]},"206":{"position":[[46,11]]},"209":{"position":[[46,11]]},"216":{"position":[[46,11]]},"220":{"position":[[46,11]]},"224":{"position":[[46,11]]},"228":{"position":[[46,11]]},"232":{"position":[[46,11]]},"235":{"position":[[46,11]]},"239":{"position":[[46,11]]},"243":{"position":[[46,11]]},"247":{"position":[[46,11]]},"252":{"position":[[46,11]]},"256":{"position":[[46,11]]},"260":{"position":[[46,11]]},"264":{"position":[[46,11]]},"268":{"position":[[46,11]]},"275":{"position":[[46,11]]},"285":{"position":[[46,11]]},"289":{"position":[[46,11]]},"293":{"position":[[46,11]]},"299":{"position":[[46,11]]},"304":{"position":[[46,11]]},"310":{"position":[[46,11]]},"316":{"position":[[46,11]]},"326":{"position":[[46,11]]},"332":{"position":[[46,11]]},"337":{"position":[[46,11]]},"345":{"position":[[46,11]]},"356":{"position":[[46,11]]},"364":{"position":[[46,11]]}},"keywords":{}}],["null",{"_index":1634,"title":{},"content":{"240":{"position":[[1330,5]]},"368":{"position":[[1302,5]]}},"keywords":{}}],["null)requesthead",{"_index":1629,"title":{},"content":{"240":{"position":[[1013,19]]}},"keywords":{}}],["number",{"_index":300,"title":{},"content":{"16":{"position":[[1592,8]]},"166":{"position":[[356,9],[366,6]]},"196":{"position":[[860,8]]},"199":{"position":[[1509,8]]},"207":{"position":[[855,8]]},"214":{"position":[[1586,8]]},"221":{"position":[[62,7],[130,8],[188,7]]},"286":{"position":[[588,8]]},"294":{"position":[[832,8]]},"297":{"position":[[1532,8]]},"311":{"position":[[882,8]]},"317":{"position":[[1339,8]]},"327":{"position":[[865,8]]},"333":{"position":[[693,8]]},"368":{"position":[[1141,8]]}},"keywords":{}}],["number.parseint((process.hrtime.bigint",{"_index":506,"title":{},"content":{"21":{"position":[[290,40]]}},"keywords":{}}],["number}>",{"_index":1542,"title":{},"content":{"214":{"position":[[1359,13]]},"297":{"position":[[1296,13]]}},"keywords":{}}],["o",{"_index":2166,"title":{},"content":{"369":{"position":[[394,1],[545,1]]}},"keywords":{}}],["obj",{"_index":464,"title":{},"content":{"19":{"position":[[448,5]]}},"keywords":{}}],["obj[prop",{"_index":469,"title":{},"content":{"19":{"position":[[522,9]]}},"keywords":{}}],["object",{"_index":99,"title":{"120":{"position":[[3,6]]},"303":{"position":[[3,6]]},"402":{"position":[[3,6]]},"441":{"position":[[3,6]]},"478":{"position":[[3,6]]},"509":{"position":[[3,6]]}},"content":{"6":{"position":[[595,6]]},"8":{"position":[[483,6],[551,6],[802,6]]},"16":{"position":[[1205,9],[1243,9],[1899,6]]},"121":{"position":[[17,7],[33,6],[59,7],[75,6]]},"122":{"position":[[83,6]]},"166":{"position":[[584,8],[608,6]]},"170":{"position":[[478,8],[502,6]]},"174":{"position":[[401,8],[425,6]]},"175":{"position":[[481,6],[923,6]]},"178":{"position":[[186,6]]},"196":{"position":[[11,8],[186,8],[510,8]]},"207":{"position":[[11,8],[183,8],[506,8]]},"214":{"position":[[558,7]]},"217":{"position":[[148,6]]},"236":{"position":[[161,8]]},"248":{"position":[[4,8],[71,8],[129,8]]},"253":{"position":[[8,8]]},"271":{"position":[[149,7],[197,7],[285,6],[347,6]]},"281":{"position":[[336,6],[621,7],[1264,7]]},"282":{"position":[[434,7]]},"283":{"position":[[202,6],[237,6]]},"286":{"position":[[11,8],[162,8],[237,8]]},"290":{"position":[[142,6],[294,8]]},"294":{"position":[[11,8],[172,8],[489,8]]},"297":{"position":[[15,6],[515,7]]},"304":{"position":[[87,6]]},"305":{"position":[[11,8],[165,8],[819,6]]},"307":{"position":[[97,6]]},"308":{"position":[[97,6]]},"311":{"position":[[11,8],[207,8],[538,8]]},"317":{"position":[[11,8],[202,8],[504,8]]},"320":{"position":[[534,7]]},"324":{"position":[[1013,7]]},"327":{"position":[[11,8],[169,8],[469,8]]},"328":{"position":[[308,6],[933,6]]},"330":{"position":[[1407,6]]},"333":{"position":[[11,8],[168,8],[349,8]]},"338":{"position":[[48,6],[210,6]]},"346":{"position":[[11,8],[222,8]]},"353":{"position":[[64,8]]},"357":{"position":[[68,8]]},"365":{"position":[[745,8]]},"366":{"position":[[147,8],[197,8]]},"368":{"position":[[248,9],[731,6],[1037,9],[1109,8],[1336,6],[1787,9],[1845,9]]},"456":{"position":[[76,6]]},"490":{"position":[[139,7],[195,6]]},"509":{"position":[[43,6]]},"519":{"position":[[38,6]]},"522":{"position":[[55,6]]}},"keywords":{}}],["object.assign(request.context",{"_index":486,"title":{},"content":{"19":{"position":[[902,30],[1025,30],[1253,30]]},"328":{"position":[[1180,30]]},"522":{"position":[[1424,30]]}},"keywords":{}}],["object.assign(request.intern",{"_index":2390,"title":{},"content":{"522":{"position":[[1285,31]]}},"keywords":{}}],["object.http",{"_index":1808,"title":{},"content":{"281":{"position":[[838,11]]}},"keywords":{}}],["object.keys(options.fetchdata",{"_index":2384,"title":{},"content":{"522":{"position":[[940,31]]}},"keywords":{}}],["object.valid",{"_index":1195,"title":{},"content":{"172":{"position":[[76,17]]}},"keywords":{}}],["objectajvopt",{"_index":2141,"title":{},"content":{"366":{"position":[[180,16]]}},"keywords":{}}],["objectawscontext",{"_index":1844,"title":{},"content":{"290":{"position":[[73,16]]}},"keywords":{}}],["objects@marcosantonocito/middi",{"_index":2007,"title":{},"content":{"324":{"position":[[1325,30]]}},"keywords":{}}],["obvious",{"_index":1490,"title":{},"content":{"200":{"position":[[770,9]]}},"keywords":{}}],["occur",{"_index":1593,"title":{},"content":{"229":{"position":[[257,5]]}},"keywords":{}}],["offici",{"_index":1477,"title":{"279":{"position":[[0,8]]}},"content":{"200":{"position":[[85,8]]},"253":{"position":[[150,8]]}},"keywords":{}}],["ofhttperrorhandler.http",{"_index":1807,"title":{},"content":{"281":{"position":[[688,23]]}},"keywords":{}}],["omit",{"_index":1852,"title":{},"content":{"290":{"position":[[456,7]]},"399":{"position":[[38,4]]},"506":{"position":[[77,7]]}},"keywords":{}}],["omitted***replac",{"_index":1853,"title":{},"content":{"290":{"position":[[486,21]]}},"keywords":{}}],["on",{"_index":316,"title":{},"content":{"17":{"position":[[1,3]]},"167":{"position":[[2447,4]]},"172":{"position":[[372,3]]},"175":{"position":[[1289,3]]},"185":{"position":[[679,3]]},"186":{"position":[[25,3]]},"187":{"position":[[67,3]]},"225":{"position":[[929,3]]},"323":{"position":[[467,3]]},"357":{"position":[[105,3]]},"365":{"position":[[810,3]]},"369":{"position":[[133,4]]},"515":{"position":[[233,3]]},"518":{"position":[[182,3]]}},"keywords":{}}],["onc",{"_index":949,"title":{},"content":{"158":{"position":[[183,4]]},"176":{"position":[[64,4],[558,4]]}},"keywords":{}}],["oneof",{"_index":668,"title":{},"content":{"31":{"position":[[1741,5],[1875,5]]},"43":{"position":[[1741,5],[1875,5]]},"46":{"position":[[1866,5],[2000,5]]},"97":{"position":[[1766,5],[1900,5]]},"150":{"position":[[1753,5],[1887,5]]}},"keywords":{}}],["onerror",{"_index":896,"title":{},"content":{"153":{"position":[[213,8],[263,7]]},"157":{"position":[[912,9]]},"158":{"position":[[410,7]]},"159":{"position":[[281,8]]},"373":{"position":[[159,7],[281,7]]},"378":{"position":[[1,7],[196,7]]},"387":{"position":[[1,7]]},"388":{"position":[[103,7]]},"396":{"position":[[1,7]]},"490":{"position":[[225,7],[799,8]]},"506":{"position":[[41,7]]},"518":{"position":[[228,9]]},"519":{"position":[[277,7],[698,8]]}},"keywords":{}}],["onerror(async",{"_index":2350,"title":{},"content":{"518":{"position":[[679,14]]}},"keywords":{}}],["onerrormethod",{"_index":2351,"title":{},"content":{"518":{"position":[[851,14]]}},"keywords":{}}],["op.set",{"_index":1393,"title":{},"content":{"189":{"position":[[669,6]]}},"keywords":{}}],["open",{"_index":811,"title":{},"content":{"139":{"position":[[90,4]]},"152":{"position":[[30,4]]},"161":{"position":[[238,4],[586,4]]}},"keywords":{}}],["oper",{"_index":787,"title":{},"content":{"112":{"position":[[39,10]]},"176":{"position":[[483,9],[606,10],[729,10]]}},"keywords":{}}],["opinion",{"_index":1043,"title":{},"content":{"163":{"position":[[425,11]]}},"keywords":{}}],["opt",{"_index":499,"title":{},"content":{"21":{"position":[[77,5],[140,7]]},"22":{"position":[[108,5],[162,7]]},"375":{"position":[[150,6],[439,7]]},"484":{"position":[[110,6]]},"490":{"position":[[315,6],[361,7]]},"519":{"position":[[384,5],[435,7]]},"522":{"position":[[783,5],[834,7]]}},"keywords":{}}],["optim",{"_index":367,"title":{},"content":{"18":{"position":[[42,7]]},"322":{"position":[[149,9]]}},"keywords":{}}],["option",{"_index":973,"title":{"166":{"position":[[0,8]]},"170":{"position":[[0,8]]},"174":{"position":[[0,8]]},"178":{"position":[[0,8]]},"196":{"position":[[0,8]]},"203":{"position":[[0,8]]},"207":{"position":[[0,8]]},"210":{"position":[[0,8]]},"217":{"position":[[0,8]]},"221":{"position":[[0,8]]},"225":{"position":[[0,8]]},"229":{"position":[[0,8]]},"236":{"position":[[0,8]]},"240":{"position":[[0,8]]},"244":{"position":[[0,8]]},"248":{"position":[[0,8]]},"253":{"position":[[0,8]]},"257":{"position":[[0,8]]},"261":{"position":[[0,8]]},"265":{"position":[[0,8]]},"269":{"position":[[0,8]]},"276":{"position":[[0,8]]},"286":{"position":[[0,8]]},"290":{"position":[[0,8]]},"294":{"position":[[0,8]]},"300":{"position":[[0,8]]},"305":{"position":[[0,8]]},"311":{"position":[[0,8]]},"317":{"position":[[0,8]]},"327":{"position":[[0,8]]},"333":{"position":[[0,8]]},"338":{"position":[[0,8]]},"342":{"position":[[0,8]]},"346":{"position":[[0,8]]},"353":{"position":[[0,8]]},"357":{"position":[[0,8]]},"365":{"position":[[0,8]]}},"content":{"159":{"position":[[826,9]]},"166":{"position":[[41,8],[64,9],[507,8],[593,11],[659,11],[754,11]]},"170":{"position":[[41,8],[64,9],[401,8],[487,11],[560,11]]},"174":{"position":[[41,8],[64,9],[322,8],[410,11],[487,11],[602,11]]},"178":{"position":[[34,8],[160,11]]},"182":{"position":[[1056,9]]},"189":{"position":[[929,7]]},"196":{"position":[[216,7]]},"199":{"position":[[457,7]]},"203":{"position":[[20,11],[217,11]]},"207":{"position":[[213,7]]},"210":{"position":[[206,8]]},"214":{"position":[[489,7]]},"236":{"position":[[18,11],[170,11],[286,11]]},"240":{"position":[[20,11],[132,11],[288,11],[378,11],[494,9],[504,11],[636,11],[716,11],[855,11],[945,11],[1042,11],[1141,11],[1238,11],[1301,9]]},"244":{"position":[[20,11],[142,11]]},"248":{"position":[[227,11]]},"253":{"position":[[17,11],[327,11]]},"257":{"position":[[27,11]]},"261":{"position":[[267,7]]},"265":{"position":[[35,11]]},"269":{"position":[[20,11]]},"272":{"position":[[401,7]]},"286":{"position":[[171,11],[183,7]]},"294":{"position":[[202,7]]},"297":{"position":[[446,7]]},"300":{"position":[[19,11]]},"305":{"position":[[174,11],[186,7],[260,11]]},"311":{"position":[[237,7]]},"317":{"position":[[211,11],[223,7],[310,11],[419,11]]},"320":{"position":[[465,7]]},"327":{"position":[[178,11],[190,7],[266,11],[379,11]]},"330":{"position":[[447,7]]},"333":{"position":[[177,11],[189,7],[264,11]]},"334":{"position":[[336,8]]},"346":{"position":[[252,7]]},"357":{"position":[[143,7]]},"364":{"position":[[127,9]]},"365":{"position":[[603,6]]},"366":{"position":[[227,7]]},"368":{"position":[[1977,7]]},"375":{"position":[[414,7]]},"389":{"position":[[1,6]]},"394":{"position":[[17,6]]},"396":{"position":[[83,7]]},"399":{"position":[[12,6]]},"400":{"position":[[21,6]]},"403":{"position":[[21,6]]},"407":{"position":[[21,6]]},"409":{"position":[[108,7]]},"469":{"position":[[9,6]]},"484":{"position":[[182,7],[427,6]]},"490":{"position":[[336,7]]},"495":{"position":[[11,7]]},"496":{"position":[[135,6]]},"504":{"position":[[17,7],[73,7]]},"512":{"position":[[10,6],[54,7]]},"519":{"position":[[410,7]]},"522":{"position":[[809,7]]}},"keywords":{}}],["option.origin",{"_index":1623,"title":{},"content":{"240":{"position":[[613,13]]}},"keywords":{}}],["option1",{"_index":2316,"title":{},"content":{"490":{"position":[[1178,8]]}},"keywords":{}}],["option2",{"_index":2317,"title":{},"content":{"490":{"position":[[1194,8]]}},"keywords":{}}],["options.calculatecacheid(request.ev",{"_index":976,"title":{},"content":{"159":{"position":[[922,39]]},"182":{"position":[[1152,39]]},"375":{"position":[[546,39]]}},"keywords":{}}],["options.charset",{"_index":1684,"title":{},"content":{"253":{"position":[[211,15]]}},"keywords":{}}],["options.fetchdata[internalkey]).then",{"_index":2386,"title":{},"content":{"522":{"position":[[1009,37]]}},"keywords":{}}],["options.getvalue(cachekey",{"_index":2200,"title":{},"content":{"375":{"position":[[609,26]]}},"keywords":{}}],["options.settocontext",{"_index":2391,"title":{},"content":{"522":{"position":[[1327,22]]}},"keywords":{}}],["options.setvalue(request.internal.cachekey",{"_index":2202,"title":{},"content":{"375":{"position":[[768,43]]}},"keywords":{}}],["options.storage.hasownproperty(cachekey",{"_index":977,"title":{},"content":{"159":{"position":[[965,42]]},"182":{"position":[[1195,42]]}},"keywords":{}}],["options.storage[cachekey",{"_index":979,"title":{},"content":{"159":{"position":[[1091,25],[1221,25]]},"182":{"position":[[1396,25],[1526,25]]}},"keywords":{}}],["order",{"_index":848,"title":{"185":{"position":[[10,6]]}},"content":{"151":{"position":[[210,5]]},"153":{"position":[[241,5]]},"158":{"position":[[136,5]]},"175":{"position":[[192,8]]},"185":{"position":[[413,5],[629,6]]},"248":{"position":[[271,6]]},"272":{"position":[[133,6],[458,5]]},"324":{"position":[[489,5]]},"378":{"position":[[26,5]]},"388":{"position":[[132,6]]},"490":{"position":[[28,5]]}},"keywords":{}}],["organ",{"_index":1310,"title":{},"content":{"183":{"position":[[55,12]]},"187":{"position":[[807,12]]}},"keywords":{}}],["organization'",{"_index":1161,"title":{},"content":{"167":{"position":[[2540,14]]}},"keywords":{}}],["organization’",{"_index":1071,"title":{},"content":{"164":{"position":[[458,14]]}},"keywords":{}}],["origin",{"_index":929,"title":{},"content":{"156":{"position":[[350,8]]},"240":{"position":[[565,7],[595,6],[605,7],[648,6],[748,8],[770,6],[1765,9]]},"241":{"position":[[311,9]]},"365":{"position":[[1018,8]]}},"keywords":{}}],["otherwis",{"_index":1611,"title":{},"content":{"236":{"position":[[81,9]]},"322":{"position":[[369,10]]}},"keywords":{}}],["ourself",{"_index":260,"title":{},"content":{"16":{"position":[[713,7]]}},"keywords":{}}],["out",{"_index":153,"title":{"139":{"position":[[22,3]]}},"content":{"10":{"position":[[86,3]]},"12":{"position":[[62,3]]},"18":{"position":[[287,3]]},"21":{"position":[[1252,3],[2547,3],[2680,3]]},"176":{"position":[[420,3]]},"187":{"position":[[880,4]]},"189":{"position":[[227,3]]},"484":{"position":[[367,3]]},"491":{"position":[[58,3]]},"520":{"position":[[36,3]]},"522":{"position":[[469,3]]}},"keywords":{}}],["outfile=index.cj",{"_index":163,"title":{},"content":{"11":{"position":[[100,17]]}},"keywords":{}}],["outfile=index.mj",{"_index":64,"title":{},"content":{"5":{"position":[[369,17]]}},"keywords":{}}],["outgo",{"_index":1179,"title":{},"content":{"170":{"position":[[302,8]]},"171":{"position":[[1147,8]]},"281":{"position":[[1110,8]]}},"keywords":{}}],["output",{"_index":82,"title":{"278":{"position":[[6,6]]},"399":{"position":[[6,6]]},"439":{"position":[[6,6]]},"476":{"position":[[6,6]]},"506":{"position":[[6,6]]}},"content":{"6":{"position":[[349,7]]},"8":{"position":[[301,7]]},"17":{"position":[[319,6]]},"31":{"position":[[143,6]]},"43":{"position":[[143,6]]},"46":{"position":[[194,6]]},"97":{"position":[[143,6]]},"105":{"position":[[211,6]]},"150":{"position":[[143,6]]},"159":{"position":[[425,6]]},"164":{"position":[[97,6],[410,6]]},"167":{"position":[[414,6],[2388,6],[2484,6]]},"175":{"position":[[457,6]]},"280":{"position":[[218,6]]},"289":{"position":[[90,6]]},"291":{"position":[[77,6],[414,6]]},"365":{"position":[[517,6]]}},"keywords":{}}],["outputmodul",{"_index":134,"title":{},"content":{"8":{"position":[[383,13]]}},"keywords":{}}],["outputschema",{"_index":2260,"title":{},"content":{"409":{"position":[[176,12]]},"484":{"position":[[169,12]]}},"keywords":{}}],["outsid",{"_index":330,"title":{},"content":{"17":{"position":[[260,7]]},"379":{"position":[[91,7]]}},"keywords":{}}],["over",{"_index":1658,"title":{},"content":{"248":{"position":[[304,4]]},"322":{"position":[[234,4]]},"441":{"position":[[25,4],[93,4]]}},"keywords":{}}],["overrid",{"_index":910,"title":{},"content":{"153":{"position":[[883,8]]},"203":{"position":[[240,9]]},"210":{"position":[[127,8]]},"248":{"position":[[239,8]]},"272":{"position":[[194,8],[300,8]]},"365":{"position":[[782,9]]},"367":{"position":[[82,10]]},"520":{"position":[[312,8]]}},"keywords":{}}],["overridepreferredencod",{"_index":1679,"title":{},"content":{"249":{"position":[[435,26]]},"250":{"position":[[631,26]]}},"keywords":{}}],["overwrit",{"_index":63,"title":{},"content":{"5":{"position":[[357,9]]}},"keywords":{}}],["packag",{"_index":20,"title":{"1":{"position":[[16,8]]},"360":{"position":[[12,8]]}},"content":{"18":{"position":[[1379,7]]},"200":{"position":[[94,8]]},"360":{"position":[[53,8],[219,8],[372,8]]},"361":{"position":[[343,7]]},"515":{"position":[[208,7]]}},"keywords":{}}],["package.defaultlanguag",{"_index":2128,"title":{},"content":{"365":{"position":[[634,23]]}},"keywords":{}}],["package:'@middi",{"_index":2269,"title":{},"content":{"416":{"position":[[176,21]]}},"keywords":{}}],["packagesupd",{"_index":2267,"title":{},"content":{"416":{"position":[[101,14]]}},"keywords":{}}],["page",{"_index":816,"title":{},"content":{"140":{"position":[[27,4],[91,4]]},"144":{"position":[[26,4],[90,4]]},"145":{"position":[[18,4],[82,4]]},"146":{"position":[[34,4],[98,4]]},"147":{"position":[[30,4],[94,4]]},"151":{"position":[[51,4],[115,4]]},"188":{"position":[[23,4],[87,4]]},"189":{"position":[[21,4],[85,4]]}},"keywords":{}}],["pair",{"_index":2005,"title":{},"content":{"324":{"position":[[1300,4]]}},"keywords":{}}],["param",{"_index":1671,"title":{},"content":{"249":{"position":[[298,7]]},"250":{"position":[[494,7]]},"522":{"position":[[666,6]]}},"keywords":{}}],["paramet",{"_index":1252,"title":{},"content":{"176":{"position":[[583,11],[695,11]]},"199":{"position":[[165,10],[496,9],[752,10]]},"214":{"position":[[164,10],[528,9]]},"217":{"position":[[173,10]]},"236":{"position":[[342,9]]},"244":{"position":[[42,9]]},"283":{"position":[[278,10],[431,10],[467,9]]},"297":{"position":[[168,10],[485,9]]},"305":{"position":[[542,10]]},"317":{"position":[[569,9]]},"320":{"position":[[504,9]]},"323":{"position":[[406,10],[483,9],[525,9],[607,9]]},"327":{"position":[[534,9],[1289,9]]},"330":{"position":[[117,10],[165,10],[370,10],[410,9],[486,9],[748,10]]},"338":{"position":[[60,9]]},"342":{"position":[[51,9]]}},"keywords":{}}],["parameterpath",{"_index":2040,"title":{},"content":{"330":{"position":[[634,13]]}},"keywords":{}}],["parameters.disableprefetch",{"_index":1442,"title":{},"content":{"196":{"position":[[575,26]]},"207":{"position":[[571,26]]},"286":{"position":[[302,26]]},"294":{"position":[[554,26]]},"311":{"position":[[603,26]]},"333":{"position":[[414,26]]}},"keywords":{}}],["parameters.http",{"_index":1819,"title":{},"content":{"282":{"position":[[475,15]]}},"keywords":{}}],["pari",{"_index":1720,"title":{},"content":{"258":{"position":[[302,7]]}},"keywords":{}}],["pars",{"_index":305,"title":{},"content":{"16":{"position":[[1836,6]]},"17":{"position":[[295,7]]},"253":{"position":[[574,5]]},"281":{"position":[[74,7],[138,6],[555,6],[749,6],[887,6],[1012,6],[1187,6]]},"324":{"position":[[1560,5]]},"368":{"position":[[2110,5]]},"411":{"position":[[7,5]]},"474":{"position":[[31,5]]}},"keywords":{}}],["parsecharset",{"_index":1554,"title":{},"content":{"225":{"position":[[1,13]]},"226":{"position":[[855,14]]}},"keywords":{}}],["parseencod",{"_index":1587,"title":{},"content":{"226":{"position":[[877,15]]}},"keywords":{}}],["parser",{"_index":245,"title":{"242":{"position":[[15,6]]},"251":{"position":[[20,6]]},"263":{"position":[[20,6]]},"274":{"position":[[20,6]]},"340":{"position":[[13,6]]},"391":{"position":[[15,7]]},"392":{"position":[[20,7]]},"397":{"position":[[20,7]]},"398":{"position":[[20,7]]},"405":{"position":[[14,7]]},"411":{"position":[[13,7]]},"431":{"position":[[15,7]]},"432":{"position":[[20,7]]},"437":{"position":[[20,7]]},"438":{"position":[[20,7]]},"449":{"position":[[13,7]]},"468":{"position":[[15,7]]},"469":{"position":[[20,7]]},"474":{"position":[[20,7]]},"475":{"position":[[20,7]]},"486":{"position":[[13,7]]},"499":{"position":[[15,7]]},"500":{"position":[[20,7]]},"504":{"position":[[20,7]]},"505":{"position":[[20,7]]},"511":{"position":[[14,7]]}},"content":{"16":{"position":[[344,7]]},"31":{"position":[[639,7],[721,7],[1028,7],[1120,7]]},"37":{"position":[[93,7]]},"43":{"position":[[639,7],[721,7],[1028,7],[1120,7]]},"46":{"position":[[690,7],[772,7],[1079,7],[1171,7]]},"97":{"position":[[639,7],[721,7],[1028,7],[1120,7]]},"140":{"position":[[550,7]]},"150":{"position":[[651,7],[733,7],[1040,7],[1132,7]]},"243":{"position":[[99,6]]},"245":{"position":[[152,7]]},"252":{"position":[[104,6]]},"254":{"position":[[162,7]]},"264":{"position":[[104,6]]},"266":{"position":[[162,7]]},"275":{"position":[[104,6]]},"277":{"position":[[97,7]]},"281":{"position":[[533,7],[727,7],[865,7],[990,7],[1165,7]]},"324":{"position":[[1552,7]]},"341":{"position":[[85,6]]},"343":{"position":[[93,7]]},"368":{"position":[[1590,7]]},"416":{"position":[[241,7]]},"504":{"position":[[45,7]]}},"keywords":{}}],["parserhttppartialrespons",{"_index":2097,"title":{},"content":{"360":{"position":[[865,25]]}},"keywords":{}}],["parsers3keynorm",{"_index":2099,"title":{},"content":{"360":{"position":[[968,21]]}},"keywords":{}}],["parserwarmup",{"_index":2104,"title":{},"content":{"360":{"position":[[1168,12]]}},"keywords":{}}],["parsingavailablecharset",{"_index":1557,"title":{},"content":{"225":{"position":[[75,24]]}},"keywords":{}}],["parsingavailableencod",{"_index":1559,"title":{},"content":{"225":{"position":[[271,25]]}},"keywords":{}}],["parsingavailablelanguag",{"_index":1562,"title":{},"content":{"225":{"position":[[469,25]]}},"keywords":{}}],["parsingavailablemediatyp",{"_index":1565,"title":{},"content":{"225":{"position":[[670,26]]}},"keywords":{}}],["part",{"_index":383,"title":{},"content":{"18":{"position":[[302,4]]},"294":{"position":[[1208,4]]},"353":{"position":[[277,4]]},"357":{"position":[[509,4]]},"365":{"position":[[902,4]]}},"keywords":{}}],["parti",{"_index":1929,"title":{"321":{"position":[[6,5]]}},"content":{},"keywords":{}}],["partial",{"_index":643,"title":{"255":{"position":[[5,7]]},"298":{"position":[[4,7]]},"393":{"position":[[5,7]]},"406":{"position":[[4,7]]},"433":{"position":[[5,7]]},"444":{"position":[[4,7]]},"470":{"position":[[5,7]]},"481":{"position":[[4,7]]},"501":{"position":[[5,7]]},"512":{"position":[[4,7]]}},"content":{"31":{"position":[[784,7]]},"43":{"position":[[784,7]]},"46":{"position":[[835,7]]},"97":{"position":[[784,7]]},"143":{"position":[[144,7]]},"150":{"position":[[796,7]]},"256":{"position":[[89,7]]},"258":{"position":[[78,7]]},"282":{"position":[[400,7],[541,7],[572,9]]},"299":{"position":[[88,7]]},"301":{"position":[[66,7]]},"360":{"position":[[909,7]]},"406":{"position":[[101,7]]}},"keywords":{}}],["particular",{"_index":1846,"title":{},"content":{"290":{"position":[[258,10]]}},"keywords":{}}],["pass",{"_index":586,"title":{},"content":{"21":{"position":[[2286,7],[2702,6]]},"151":{"position":[[187,4]]},"158":{"position":[[460,6]]},"196":{"position":[[227,4],[452,7]]},"207":{"position":[[224,4],[448,7]]},"229":{"position":[[120,4]]},"244":{"position":[[59,6]]},"253":{"position":[[66,4]]},"271":{"position":[[122,6]]},"286":{"position":[[194,4]]},"294":{"position":[[213,4],[431,7]]},"305":{"position":[[197,4],[287,7]]},"311":{"position":[[248,4],[480,7]]},"317":{"position":[[234,4],[446,7]]},"322":{"position":[[787,7]]},"327":{"position":[[201,4],[411,7]]},"330":{"position":[[1352,5],[1449,5],[1723,5]]},"333":{"position":[[200,4],[291,7]]},"342":{"position":[[68,6]]},"346":{"position":[[263,4],[502,7]]},"357":{"position":[[189,6]]},"366":{"position":[[238,4]]},"368":{"position":[[312,4]]},"378":{"position":[[494,6]]},"423":{"position":[[31,6]]},"484":{"position":[[252,4]]},"506":{"position":[[139,6]]}},"keywords":{}}],["password",{"_index":847,"title":{},"content":{"151":{"position":[[197,9],[370,8]]},"318":{"position":[[523,10],[610,11]]},"320":{"position":[[1352,9]]}},"keywords":{}}],["patch",{"_index":2075,"title":{},"content":{"357":{"position":[[128,6]]}},"keywords":{}}],["path",{"_index":120,"title":{"274":{"position":[[15,4]]},"398":{"position":[[15,4]]},"438":{"position":[[15,4]]},"475":{"position":[[15,4]]},"505":{"position":[[15,4]]}},"content":{"8":{"position":[[86,4],[349,5]]},"31":{"position":[[1115,4]]},"43":{"position":[[1115,4]]},"46":{"position":[[1166,4],[1378,5],[1439,5]]},"97":{"position":[[1115,4]]},"150":{"position":[[1127,4]]},"199":{"position":[[506,4]]},"275":{"position":[[99,4]]},"277":{"position":[[92,4]]},"281":{"position":[[985,4]]},"290":{"position":[[224,5]]},"322":{"position":[[1350,4],[1433,5]]},"328":{"position":[[339,4],[964,4]]},"330":{"position":[[496,4]]},"357":{"position":[[24,5],[238,4]]},"358":{"position":[[480,5],[541,5]]},"399":{"position":[[45,5]]}},"keywords":{}}],["path.dirname(__filenam",{"_index":127,"title":{},"content":{"8":{"position":[[217,24]]}},"keywords":{}}],["path.valid",{"_index":1811,"title":{},"content":{"281":{"position":[[1050,15]]}},"keywords":{}}],["pathparamet",{"_index":1786,"title":{},"content":{"277":{"position":[[318,15]]},"281":{"position":[[405,14]]}},"keywords":{}}],["pattern",{"_index":291,"title":{},"content":{"16":{"position":[[1333,8],[1525,8]]},"17":{"position":[[642,8],[657,7]]},"522":{"position":[[338,7],[536,8]]}},"keywords":{}}],["pattern.beforehandler/afterhandl",{"_index":955,"title":{},"content":{"158":{"position":[[520,37]]}},"keywords":{}}],["payload",{"_index":1059,"title":{},"content":{"163":{"position":[[888,7]]},"176":{"position":[[87,7],[321,7]]},"193":{"position":[[222,8]]}},"keywords":{}}],["payloadformatvers",{"_index":2236,"title":{},"content":{"389":{"position":[[8,20]]}},"keywords":{}}],["payloadselect",{"_index":1240,"title":{},"content":{"176":{"position":[[187,13]]}},"keywords":{}}],["payment",{"_index":236,"title":{},"content":{"16":{"position":[[121,8],[932,8]]},"179":{"position":[[418,7],[561,7],[733,10]]}},"keywords":{}}],["payment.id",{"_index":1277,"title":{},"content":{"179":{"position":[[631,11]]}},"keywords":{}}],["paymentid",{"_index":1276,"title":{},"content":{"179":{"position":[[620,10]]}},"keywords":{}}],["peer",{"_index":917,"title":{},"content":{"155":{"position":[[189,4]]}},"keywords":{}}],["percent",{"_index":1956,"title":{},"content":{"322":{"position":[[1184,7]]}},"keywords":{}}],["percentag",{"_index":1064,"title":{},"content":{"164":{"position":[[216,10]]}},"keywords":{}}],["perform",{"_index":184,"title":{},"content":{"13":{"position":[[92,11]]},"248":{"position":[[471,11],[596,12]]},"333":{"position":[[1039,11]]},"365":{"position":[[1152,11]]},"384":{"position":[[54,11]]},"387":{"position":[[82,11]]}},"keywords":{}}],["performancemiddi",{"_index":1936,"title":{},"content":{"322":{"position":[[163,16]]}},"keywords":{}}],["period",{"_index":1344,"title":{},"content":{"187":{"position":[[59,7],[231,6],[850,6]]}},"keywords":{}}],["permiss",{"_index":1455,"title":{},"content":{"196":{"position":[[1106,10]]},"207":{"position":[[1101,10]]},"286":{"position":[[834,10]]},"294":{"position":[[1078,10]]},"305":{"position":[[801,10]]},"311":{"position":[[1128,10]]},"317":{"position":[[1581,10]]},"324":{"position":[[1364,11],[1400,10]]},"327":{"position":[[1111,10]]},"333":{"position":[[939,10]]},"346":{"position":[[735,10]]}},"keywords":{}}],["persist",{"_index":1260,"title":{},"content":{"178":{"position":[[115,11]]}},"keywords":{}}],["persistencestor",{"_index":1257,"title":{},"content":{"178":{"position":[[44,16]]},"179":{"position":[[257,16],[779,17]]}},"keywords":{}}],["perspect",{"_index":319,"title":{},"content":{"17":{"position":[[82,12]]}},"keywords":{}}],["pgmiddi",{"_index":1959,"title":{},"content":{"322":{"position":[[1251,7]]}},"keywords":{}}],["phase",{"_index":894,"title":{},"content":{"153":{"position":[[200,5]]},"159":{"position":[[259,5]]},"185":{"position":[[22,7],[60,6],[209,6],[585,6]]},"210":{"position":[[104,6]]},"518":{"position":[[203,6],[601,5],[670,5],[744,5]]},"519":{"position":[[916,7]]}},"keywords":{}}],["phaseaft",{"_index":2352,"title":{},"content":{"519":{"position":[[146,11]]}},"keywords":{}}],["phaseonerror",{"_index":2353,"title":{},"content":{"519":{"position":[[199,13]]}},"keywords":{}}],["pino",{"_index":840,"title":{"145":{"position":[[0,4]]}},"content":{"145":{"position":[[0,4]]},"291":{"position":[[436,4],[446,6],[468,6]]}},"keywords":{}}],["pk",{"_index":1533,"title":{},"content":{"212":{"position":[[333,3]]},"214":{"position":[[1397,3]]}},"keywords":{}}],["place",{"_index":1286,"title":{},"content":{"181":{"position":[[170,5]]},"324":{"position":[[394,7]]}},"keywords":{}}],["placement",{"_index":1288,"title":{},"content":{"181":{"position":[[468,9]]}},"keywords":{}}],["plan",{"_index":1774,"title":{},"content":{"272":{"position":[[536,8]]}},"keywords":{}}],["platform=nod",{"_index":51,"title":{},"content":{"5":{"position":[[124,13]]},"11":{"position":[[46,13]]}},"keywords":{}}],["pleas",{"_index":818,"title":{},"content":{"140":{"position":[[104,6]]},"144":{"position":[[103,6]]},"145":{"position":[[95,6]]},"146":{"position":[[111,6]]},"147":{"position":[[107,6]]},"151":{"position":[[128,6]]},"187":{"position":[[867,6]]},"188":{"position":[[100,6]]},"189":{"position":[[98,6]]}},"keywords":{}}],["plug",{"_index":350,"title":{},"content":{"17":{"position":[[867,7]]}},"keywords":{}}],["plugin",{"_index":76,"title":{},"content":{"6":{"position":[[236,7],[419,8]]},"324":{"position":[[471,7],[628,6]]},"338":{"position":[[257,6]]},"366":{"position":[[53,7]]},"515":{"position":[[23,7],[122,6]]},"516":{"position":[[317,6]]}},"keywords":{}}],["plugin.timeoutearlyrespons",{"_index":2271,"title":{},"content":{"417":{"position":[[9,32]]}},"keywords":{}}],["point",{"_index":1067,"title":{},"content":{"164":{"position":[[333,5]]}},"keywords":{}}],["pollut",{"_index":334,"title":{},"content":{"17":{"position":[[407,9],[930,9]]}},"keywords":{}}],["polyfil",{"_index":2283,"title":{},"content":{"455":{"position":[[8,8],[42,8]]}},"keywords":{}}],["pond",{"_index":1759,"title":{},"content":{"266":{"position":[[687,5]]}},"keywords":{}}],["popular",{"_index":1331,"title":{},"content":{"186":{"position":[[192,10]]}},"keywords":{}}],["port",{"_index":766,"title":{},"content":{"106":{"position":[[442,5]]},"186":{"position":[[316,4],[351,4]]},"282":{"position":[[378,4]]},"287":{"position":[[395,5]]}},"keywords":{}}],["possibl",{"_index":948,"title":{},"content":{"158":{"position":[[103,8]]},"199":{"position":[[72,8]]},"214":{"position":[[71,8]]},"297":{"position":[[75,8]]},"320":{"position":[[84,8]]},"330":{"position":[[62,8]]},"400":{"position":[[35,8]]},"403":{"position":[[35,8]]},"491":{"position":[[77,8]]},"519":{"position":[[81,8]]}},"keywords":{}}],["post",{"_index":710,"title":{},"content":{"46":{"position":[[1431,7]]},"357":{"position":[[117,5]]},"358":{"position":[[533,7]]},"412":{"position":[[7,4]]}},"keywords":{}}],["posthandl",{"_index":707,"title":{},"content":{"46":{"position":[[1300,11],[1463,11]]},"358":{"position":[[296,11],[565,11]]}},"keywords":{}}],["potenti",{"_index":1293,"title":{},"content":{"181":{"position":[[668,11]]}},"keywords":{}}],["power",{"_index":1733,"title":{},"content":{"261":{"position":[[186,7]]},"324":{"position":[[273,7]]},"369":{"position":[[146,7]]}},"keywords":{}}],["powertool",{"_index":1032,"title":{"162":{"position":[[0,10]]}},"content":{"163":{"position":[[1,10],[155,10]]},"172":{"position":[[640,10]]},"181":{"position":[[22,10],[134,10]]},"182":{"position":[[216,10],[1256,10]]},"322":{"position":[[13,11]]},"323":{"position":[[12,10]]}},"keywords":{}}],["powertools/common",{"_index":1307,"title":{},"content":{"182":{"position":[[852,20]]}},"keywords":{}}],["powertools/idempot",{"_index":1255,"title":{},"content":{"177":{"position":[[44,22]]}},"keywords":{}}],["powertools/idempotency/dynamodb",{"_index":1269,"title":{},"content":{"179":{"position":[[217,33]]}},"keywords":{}}],["powertools/idempotency/middlewar",{"_index":1267,"title":{},"content":{"179":{"position":[[127,35]]}},"keywords":{}}],["powertools/logg",{"_index":1073,"title":{},"content":{"165":{"position":[[44,17]]},"167":{"position":[[91,19]]}},"keywords":{}}],["powertools/metr",{"_index":1209,"title":{},"content":{"173":{"position":[[44,18]]},"175":{"position":[[96,20]]}},"keywords":{}}],["powertools/trac",{"_index":1176,"title":{},"content":{"169":{"position":[[44,17]]},"171":{"position":[[92,19]]}},"keywords":{}}],["practic",{"_index":1281,"title":{"180":{"position":[[5,10]]}},"content":{"182":{"position":[[536,8]]},"186":{"position":[[124,9]]},"282":{"position":[[320,8]]},"333":{"position":[[1105,10]]}},"keywords":{}}],["pre",{"_index":1632,"title":{"369":{"position":[[0,3]]}},"content":{"240":{"position":[[1290,3]]},"280":{"position":[[274,3]]},"364":{"position":[[141,3]]},"378":{"position":[[850,3]]},"447":{"position":[[138,3]]},"484":{"position":[[415,3]]}},"keywords":{}}],["precompil",{"_index":2139,"title":{},"content":{"365":{"position":[[1211,12]]}},"keywords":{}}],["prefer",{"_index":1655,"title":{},"content":{"248":{"position":[[252,9],[292,6]]},"272":{"position":[[467,11]]},"426":{"position":[[7,10]]}},"keywords":{}}],["preferbuiltin",{"_index":77,"title":{},"content":{"6":{"position":[[261,15]]}},"keywords":{}}],["preferredlanguag",{"_index":2275,"title":{},"content":{"425":{"position":[[5,17]]},"447":{"position":[[5,17]]}},"keywords":{}}],["prefetch",{"_index":950,"title":{},"content":{"158":{"position":[[224,10]]},"305":{"position":[[470,9]]},"346":{"position":[[685,9]]}},"keywords":{}}],["prefetch.cachekey",{"_index":1444,"title":{},"content":{"196":{"position":[[721,17]]},"207":{"position":[[717,17]]},"286":{"position":[[448,17]]},"294":{"position":[[700,17]]},"311":{"position":[[749,17]]},"317":{"position":[[1194,17]]},"327":{"position":[[732,17]]},"333":{"position":[[560,17]]}},"keywords":{}}],["prefetchingexpectct",{"_index":1727,"title":{},"content":{"261":{"position":[[41,19]]}},"keywords":{}}],["prefix",{"_index":1189,"title":{},"content":{"171":{"position":[[770,6]]},"357":{"position":[[419,6]]}},"keywords":{}}],["preflight",{"_index":1618,"title":{},"content":{"240":{"position":[[184,9]]}},"keywords":{}}],["present.exposehead",{"_index":1626,"title":{},"content":{"240":{"position":[[824,21]]}},"keywords":{}}],["prevent",{"_index":1058,"title":{},"content":{"163":{"position":[[851,7]]},"176":{"position":[[16,7]]},"261":{"position":[[129,7]]},"444":{"position":[[65,10]]}},"keywords":{}}],["print",{"_index":605,"title":{},"content":{"21":{"position":[[2671,8]]},"322":{"position":[[226,7],[360,8]]}},"keywords":{}}],["prioriti",{"_index":1326,"title":{},"content":{"185":{"position":[[700,8]]}},"keywords":{}}],["probabl",{"_index":2347,"title":{},"content":{"518":{"position":[[145,8]]}},"keywords":{}}],["problem",{"_index":343,"title":{},"content":{"17":{"position":[[597,7]]},"167":{"position":[[1566,7],[2253,7]]}},"keywords":{}}],["process",{"_index":235,"title":{},"content":{"16":{"position":[[111,7],[941,9]]},"18":{"position":[[321,8]]},"189":{"position":[[1057,10],[1286,7]]},"253":{"position":[[504,9]]},"300":{"position":[[88,10]]},"301":{"position":[[225,10]]}},"keywords":{}}],["process.env.aws_region",{"_index":761,"title":{},"content":{"106":{"position":[[360,23]]}},"keywords":{}}],["process.env.node_env",{"_index":476,"title":{},"content":{"19":{"position":[[712,20]]},"414":{"position":[[182,20]]}},"keywords":{}}],["process.env.rds_hostnam",{"_index":763,"title":{},"content":{"106":{"position":[[394,25]]}},"keywords":{}}],["process.hrtime.bigint",{"_index":503,"title":{},"content":{"21":{"position":[[206,23]]}},"keywords":{}}],["processcach",{"_index":2381,"title":{},"content":{"522":{"position":[[580,12]]}},"keywords":{}}],["processcache(opt",{"_index":2389,"title":{},"content":{"522":{"position":[[1143,21],[1247,21]]}},"keywords":{}}],["prod",{"_index":1116,"title":{},"content":{"167":{"position":[[577,4],[779,4],[1919,4]]}},"keywords":{}}],["produc",{"_index":1607,"title":{},"content":{"233":{"position":[[208,7]]}},"keywords":{}}],["product",{"_index":1034,"title":{},"content":{"163":{"position":[[102,10]]}},"keywords":{}}],["productid",{"_index":1272,"title":{},"content":{"179":{"position":[[453,10]]}},"keywords":{}}],["profil",{"_index":493,"title":{"20":{"position":[[0,9]]}},"content":{"158":{"position":[[692,9]]},"322":{"position":[[1069,9],[1094,9]]}},"keywords":{}}],["progress",{"_index":817,"title":{},"content":{"140":{"position":[[45,9]]},"144":{"position":[[44,9]]},"145":{"position":[[36,9]]},"146":{"position":[[52,9]]},"147":{"position":[[48,9]]},"151":{"position":[[69,9]]},"176":{"position":[[371,8]]},"188":{"position":[[41,9]]},"189":{"position":[[39,9]]}},"keywords":{}}],["project",{"_index":885,"title":{},"content":{"152":{"position":[[192,8]]},"161":{"position":[[132,7],[726,8]]},"183":{"position":[[44,7]]},"186":{"position":[[42,8],[259,8],[385,8]]}},"keywords":{}}],["project.2017",{"_index":990,"title":{},"content":{"161":{"position":[[250,12]]}},"keywords":{}}],["project2023",{"_index":1023,"title":{},"content":{"161":{"position":[[598,11]]}},"keywords":{}}],["promis",{"_index":454,"title":{},"content":{"19":{"position":[[83,8]]},"122":{"position":[[320,9]]},"324":{"position":[[185,8],[579,8]]},"522":{"position":[[234,9],[264,8]]}},"keywords":{}}],["promise<apigatewayproxyresult>",{"_index":2368,"title":{},"content":{"521":{"position":[[435,36]]}},"keywords":{}}],["promise<void>",{"_index":1218,"title":{},"content":{"175":{"position":[[271,19]]},"521":{"position":[[611,19]]}},"keywords":{}}],["promise.allsettled(recordpromis",{"_index":1873,"title":{},"content":{"301":{"position":[[269,34]]}},"keywords":{}}],["prop",{"_index":461,"title":{},"content":{"19":{"position":[[376,5],[454,5],[488,6]]}},"keywords":{}}],["propag",{"_index":899,"title":{},"content":{"153":{"position":[[474,10]]},"266":{"position":[[238,10]]},"277":{"position":[[173,10]]}},"keywords":{}}],["proper",{"_index":314,"title":{},"content":{"16":{"position":[[2054,6]]},"153":{"position":[[326,6]]},"245":{"position":[[459,6]]},"282":{"position":[[173,6],[265,6]]}},"keywords":{}}],["properli",{"_index":1297,"title":{},"content":{"182":{"position":[[419,8]]},"520":{"position":[[218,9]]}},"keywords":{}}],["properti",{"_index":285,"title":{},"content":{"16":{"position":[[1215,11],[1253,11],[1671,10]]},"176":{"position":[[445,8]]},"210":{"position":[[67,8],[254,8]]},"217":{"position":[[8,9]]},"280":{"position":[[55,8],[170,8]]},"290":{"position":[[195,8]]},"338":{"position":[[230,8]]},"368":{"position":[[285,11],[573,8],[1081,11],[1817,11],[1884,11]]}},"keywords":{}}],["protect",{"_index":1745,"title":{},"content":{"261":{"position":[[405,11]]}},"keywords":{}}],["provid",{"_index":946,"title":{},"content":{"158":{"position":[[12,8]]},"163":{"position":[[166,8]]},"199":{"position":[[209,7],[482,9],[702,7]]},"203":{"position":[[315,7]]},"214":{"position":[[243,7],[514,9],[742,7]]},"281":{"position":[[166,8]]},"297":{"position":[[212,7],[471,9],[687,7]]},"320":{"position":[[218,7],[490,9],[702,7]]},"323":{"position":[[425,8]]},"324":{"position":[[323,8]]},"330":{"position":[[209,7],[472,9],[698,7]]},"361":{"position":[[211,7]]}},"keywords":{}}],["provis",{"_index":2337,"title":{},"content":{"516":{"position":[[104,11]]}},"keywords":{}}],["proxi",{"_index":459,"title":{},"content":{"19":{"position":[[350,9]]},"324":{"position":[[362,8]]},"378":{"position":[[649,7]]}},"keywords":{}}],["proxy+}handl",{"_index":2079,"title":{},"content":{"357":{"position":[[288,16]]}},"keywords":{}}],["publish",{"_index":1502,"title":{},"content":{"203":{"position":[[129,9]]},"360":{"position":[[62,9]]}},"keywords":{}}],["pull",{"_index":883,"title":{},"content":{"152":{"position":[[150,4]]}},"keywords":{}}],["pure",{"_index":335,"title":{},"content":{"17":{"position":[[421,4]]}},"keywords":{}}],["put",{"_index":379,"title":{},"content":{"18":{"position":[[242,3]]},"240":{"position":[[309,3],[399,3],[658,3],[876,3],[966,3],[1063,3],[1162,3],[1259,3]]},"357":{"position":[[123,4]]},"484":{"position":[[7,3]]}},"keywords":{}}],["q=0.8",{"_index":1779,"title":{},"content":{"273":{"position":[[681,6]]}},"keywords":{}}],["qs",{"_index":2327,"title":{},"content":{"504":{"position":[[35,2]]}},"keywords":{}}],["qs/.editorconfig",{"_index":400,"title":{},"content":{"18":{"position":[[667,19]]}},"keywords":{}}],["qs/.eslintrc",{"_index":401,"title":{},"content":{"18":{"position":[[687,15]]}},"keywords":{}}],["qs/.github",{"_index":397,"title":{},"content":{"18":{"position":[[631,13]]}},"keywords":{}}],["qs/.nycrc",{"_index":402,"title":{},"content":{"18":{"position":[[703,12]]}},"keywords":{}}],["qs/changelog.md",{"_index":403,"title":{},"content":{"18":{"position":[[716,18]]}},"keywords":{}}],["qs/dist",{"_index":398,"title":{},"content":{"18":{"position":[[645,10]]}},"keywords":{}}],["qs/test",{"_index":399,"title":{},"content":{"18":{"position":[[656,10]]}},"keywords":{}}],["queri",{"_index":1818,"title":{},"content":{"282":{"position":[[462,5]]}},"keywords":{}}],["querystr",{"_index":1704,"title":{},"content":{"257":{"position":[[62,11]]}},"keywords":{}}],["querystring/test",{"_index":419,"title":{},"content":{"18":{"position":[[1024,19]]}},"keywords":{}}],["querystringparamet",{"_index":1722,"title":{},"content":{"258":{"position":[[431,22]]},"281":{"position":[[347,22]]}},"keywords":{}}],["queue",{"_index":1942,"title":{},"content":{"322":{"position":[[491,5]]}},"keywords":{}}],["quick",{"_index":224,"title":{"16":{"position":[[2,5]]}},"content":{},"keywords":{}}],["quickli",{"_index":206,"title":{},"content":{"15":{"position":[[260,8]]},"518":{"position":[[882,7]]}},"keywords":{}}],["quit",{"_index":2332,"title":{},"content":{"515":{"position":[[194,5]]}},"keywords":{}}],["quot;*")origin",{"_index":1624,"title":{},"content":{"240":{"position":[[686,21]]}},"keywords":{}}],["quot;./"",{"_index":30,"title":{},"content":{"3":{"position":[[115,15]]}},"keywords":{}}],["quot;16"",{"_index":160,"title":{},"content":{"10":{"position":[[244,14]]}},"keywords":{}}],["quot;2021",{"_index":1140,"title":{},"content":{"167":{"position":[[1040,10]]}},"keywords":{}}],["quot;@babel/preset",{"_index":157,"title":{},"content":{"10":{"position":[[170,19]]}},"keywords":{}}],["quot;_aws"",{"_index":1224,"title":{},"content":{"175":{"position":[[553,17]]}},"keywords":{}}],["quot;abcdef123456abcdef123456abcdef123456"",{"_index":1143,"title":{},"content":{"167":{"position":[[1105,48]]}},"keywords":{}}],["quot;allowjs"",{"_index":35,"title":{},"content":{"3":{"position":[[240,20]]}},"keywords":{}}],["quot;arn:aws:lambda:eu",{"_index":1112,"title":{},"content":{"167":{"position":[[499,23]]}},"keywords":{}}],["quot;bar"",{"_index":1135,"title":{},"content":{"167":{"position":[[929,16]]}},"keywords":{}}],["quot;baseurl"",{"_index":29,"title":{},"content":{"3":{"position":[[94,20]]}},"keywords":{}}],["quot;baz"",{"_index":1136,"title":{},"content":{"167":{"position":[[946,15]]}},"keywords":{}}],["quot;c6af9ac6",{"_index":1122,"title":{},"content":{"167":{"position":[[671,14]]}},"keywords":{}}],["quot;cloudwatchmetrics"",{"_index":1226,"title":{},"content":{"175":{"position":[[611,30]]}},"keywords":{}}],["quot;cold_start"",{"_index":1110,"title":{},"content":{"167":{"position":[[443,23]]}},"keywords":{}}],["quot;commonjs"",{"_index":174,"title":{},"content":{"12":{"position":[[277,20]]}},"keywords":{}}],["quot;compileroptions"",{"_index":28,"title":{},"content":{"3":{"position":[[63,28]]}},"keywords":{}}],["quot;count"",{"_index":1232,"title":{},"content":{"175":{"position":[[843,17]]}},"keywords":{}}],["quot;dimensions"",{"_index":1228,"title":{},"content":{"175":{"position":[[699,23]]}},"keywords":{}}],["quot;ecmascript"",{"_index":171,"title":{},"content":{"12":{"position":[[169,22]]}},"keywords":{}}],["quot;es2021"",{"_index":38,"title":{},"content":{"3":{"position":[[288,19]]},"12":{"position":[[215,18]]}},"keywords":{}}],["quot;esmoduleinterop"",{"_index":31,"title":{},"content":{"3":{"position":[[131,28]]}},"keywords":{}}],["quot;foo"",{"_index":1134,"title":{},"content":{"167":{"position":[[910,16]]}},"keywords":{}}],["quot;function_arn"",{"_index":1111,"title":{},"content":{"167":{"position":[[473,25]]}},"keywords":{}}],["quot;function_memory_size"",{"_index":1119,"title":{},"content":{"167":{"position":[[599,33]]}},"keywords":{}}],["quot;function_name"",{"_index":1127,"title":{},"content":{"167":{"position":[[721,26]]}},"keywords":{}}],["quot;function_request_id"",{"_index":1121,"title":{},"content":{"167":{"position":[[638,32]]}},"keywords":{}}],["quot;info"",{"_index":1130,"title":{},"content":{"167":{"position":[[820,17]]}},"keywords":{}}],["quot;jsc"",{"_index":168,"title":{},"content":{"12":{"position":[[108,16]]}},"keywords":{}}],["quot;level"",{"_index":1129,"title":{},"content":{"167":{"position":[[801,18]]}},"keywords":{}}],["quot;message"",{"_index":1131,"title":{},"content":{"167":{"position":[[838,20]]}},"keywords":{}}],["quot;metrics"",{"_index":1229,"title":{},"content":{"175":{"position":[[752,20]]}},"keywords":{}}],["quot;middyfy"",{"_index":303,"title":{},"content":{"16":{"position":[[1697,19]]}},"keywords":{}}],["quot;module"",{"_index":172,"title":{},"content":{"12":{"position":[[237,19]]}},"keywords":{}}],["quot;moduleresolution"",{"_index":42,"title":{},"content":{"3":{"position":[[403,29]]}},"keywords":{}}],["quot;name"",{"_index":1230,"title":{},"content":{"175":{"position":[[776,17]]}},"keywords":{}}],["quot;namespace"",{"_index":1227,"title":{},"content":{"175":{"position":[[645,22]]}},"keywords":{}}],["quot;node"",{"_index":43,"title":{},"content":{"3":{"position":[[433,16]]},"10":{"position":[[226,17]]}},"keywords":{}}],["quot;node_modules/@types"",{"_index":40,"title":{},"content":{"3":{"position":[[331,34]]}},"keywords":{}}],["quot;orders"",{"_index":1233,"title":{},"content":{"175":{"position":[[889,18]]}},"keywords":{}}],["quot;parser"",{"_index":169,"title":{},"content":{"12":{"position":[[127,19]]}},"keywords":{}}],["quot;preserveconstenums"",{"_index":33,"title":{},"content":{"3":{"position":[[166,31]]}},"keywords":{}}],["quot;presets"",{"_index":156,"title":{},"content":{"10":{"position":[[145,20]]}},"keywords":{}}],["quot;resolvejsonmodule"",{"_index":41,"title":{},"content":{"3":{"position":[[366,30]]}},"keywords":{}}],["quot;serverlessairline"",{"_index":1138,"title":{},"content":{"167":{"position":[[986,30]]}},"keywords":{}}],["quot;service"",{"_index":1137,"title":{},"content":{"167":{"position":[[965,20]]},"175":{"position":[[727,19],[868,20]]}},"keywords":{}}],["quot;shop",{"_index":1128,"title":{},"content":{"167":{"position":[[748,14]]}},"keywords":{}}],["quot;strictnullchecks"",{"_index":34,"title":{},"content":{"3":{"position":[[204,29]]}},"keywords":{}}],["quot;successfulbooking"",{"_index":1222,"title":{},"content":{"175":{"position":[[517,30],[668,30],[794,30]]}},"keywords":{}}],["quot;syntax"",{"_index":170,"title":{},"content":{"12":{"position":[[149,19]]}},"keywords":{}}],["quot;target"",{"_index":37,"title":{},"content":{"3":{"position":[[268,19]]},"12":{"position":[[195,19]]}},"keywords":{}}],["quot;targets"",{"_index":159,"title":{},"content":{"10":{"position":[[203,20]]}},"keywords":{}}],["quot;thi",{"_index":1132,"title":{},"content":{"167":{"position":[[859,10]]}},"keywords":{}}],["quot;timestamp"",{"_index":1139,"title":{},"content":{"167":{"position":[[1017,22]]},"175":{"position":[[573,22]]}},"keywords":{}}],["quot;type"",{"_index":173,"title":{},"content":{"12":{"position":[[259,17]]}},"keywords":{}}],["quot;typeof":"function".responseschema",{"_index":2125,"title":{},"content":{"365":{"position":[[369,54]]}},"keywords":{}}],["quot;typeroots"",{"_index":39,"title":{},"content":{"3":{"position":[[308,22]]}},"keywords":{}}],["quot;unit"",{"_index":1231,"title":{},"content":{"175":{"position":[[825,17]]}},"keywords":{}}],["quot;xray_trace_id"",{"_index":1142,"title":{},"content":{"167":{"position":[[1078,26]]}},"keywords":{}}],["rais",{"_index":881,"title":{},"content":{"152":{"position":[[124,5]]}},"keywords":{}}],["random",{"_index":422,"title":{},"content":{"18":{"position":[[1064,6],[1106,6],[1144,6],[1191,6],[1222,6]]}},"keywords":{}}],["randomuuid",{"_index":1264,"title":{},"content":{"179":{"position":[[43,10],[439,13]]}},"keywords":{}}],["rate",{"_index":1088,"title":{},"content":{"166":{"position":[[415,4]]}},"keywords":{}}],["rawbodi",{"_index":2282,"title":{},"content":{"449":{"position":[[21,7]]}},"keywords":{}}],["ray",{"_index":1047,"title":{},"content":{"163":{"position":[[458,3]]},"167":{"position":[[1481,3]]},"168":{"position":[[330,3]]},"171":{"position":[[1042,3]]},"182":{"position":[[471,4]]},"323":{"position":[[174,3]]},"324":{"position":[[724,3]]},"327":{"position":[[113,5],[404,3]]},"379":{"position":[[76,3]]}},"keywords":{}}],["rd",{"_index":94,"title":{"108":{"position":[[0,3]]},"151":{"position":[[32,5]]},"284":{"position":[[0,3]]},"400":{"position":[[0,3]]},"440":{"position":[[0,3]]},"477":{"position":[[0,3]]},"507":{"position":[[0,3]]}},"content":{"6":{"position":[[533,5]]},"8":{"position":[[740,5]]},"109":{"position":[[30,3]]},"110":{"position":[[165,3]]},"151":{"position":[[32,5],[438,3]]},"283":{"position":[[142,3]]},"286":{"position":[[484,3],[849,3]]},"322":{"position":[[1209,4],[1222,3]]},"491":{"position":[[68,3]]},"507":{"position":[[25,3]]}},"keywords":{}}],["rds.amazonaws.com",{"_index":1842,"title":{},"content":{"287":{"position":[[348,24]]}},"keywords":{}}],["rds.parametergroup",{"_index":871,"title":{},"content":{"151":{"position":[[948,19]]}},"keywords":{}}],["rds.signer",{"_index":849,"title":{},"content":{"151":{"position":[[243,11]]}},"keywords":{}}],["rdssigner",{"_index":759,"title":{},"content":{"106":{"position":[[339,10],[876,10]]},"287":{"position":[[40,9],[277,11]]}},"keywords":{}}],["rdssignermiddlewar",{"_index":753,"title":{},"content":{"106":{"position":[[82,19],[304,21]]}},"keywords":{}}],["rdstoken",{"_index":1840,"title":{},"content":{"287":{"position":[[302,9]]}},"keywords":{}}],["re",{"_index":1421,"title":{},"content":{"193":{"position":[[128,3]]},"368":{"position":[[693,4]]},"395":{"position":[[13,2]]},"413":{"position":[[13,2]]},"518":{"position":[[115,2]]},"522":{"position":[[1047,5]]}},"keywords":{}}],["reach",{"_index":1380,"title":{},"content":{"187":{"position":[[874,5]]},"522":{"position":[[460,8]]}},"keywords":{}}],["react",{"_index":420,"title":{},"content":{"18":{"position":[[1044,8],[1086,8],[1124,8],[1171,8]]}},"keywords":{}}],["read",{"_index":338,"title":{},"content":{"17":{"position":[[490,4]]},"361":{"position":[[601,4]]}},"keywords":{}}],["readabl",{"_index":357,"title":{},"content":{"17":{"position":[[989,9]]}},"keywords":{}}],["readfil",{"_index":2177,"title":{},"content":{"370":{"position":[[10,8]]},"371":{"position":[[10,8]]}},"keywords":{}}],["readfile('./en.ftl",{"_index":2181,"title":{},"content":{"370":{"position":[[334,21]]}},"keywords":{}}],["readfile('./fr.ftl",{"_index":2182,"title":{},"content":{"370":{"position":[[389,21]]}},"keywords":{}}],["readi",{"_index":582,"title":{},"content":{"21":{"position":[[2195,5]]},"163":{"position":[[113,5]]},"322":{"position":[[912,5],[1042,5]]},"324":{"position":[[1652,5]]}},"keywords":{}}],["readstream",{"_index":1891,"title":{},"content":{"307":{"position":[[167,10]]}},"keywords":{}}],["readstream.pipe(transformstream",{"_index":1895,"title":{},"content":{"307":{"position":[[300,32]]}},"keywords":{}}],["real",{"_index":1491,"title":{},"content":{"200":{"position":[[810,4]]}},"keywords":{}}],["realli",{"_index":491,"title":{},"content":{"19":{"position":[[1176,6]]},"253":{"position":[[870,6]]}},"keywords":{}}],["reason",{"_index":2050,"title":{},"content":{"333":{"position":[[1064,8]]},"468":{"position":[[275,10]]}},"keywords":{}}],["recaptcha",{"_index":1960,"title":{},"content":{"322":{"position":[[1259,10],[1270,9]]}},"keywords":{}}],["receiv",{"_index":462,"title":{},"content":{"19":{"position":[[382,9]]},"199":{"position":[[655,9]]},"200":{"position":[[182,9]]},"214":{"position":[[695,9]]},"217":{"position":[[129,8]]},"297":{"position":[[640,9]]},"320":{"position":[[655,9]]},"330":{"position":[[651,9]]},"521":{"position":[[88,9],[1015,7]]}},"keywords":{}}],["recent",{"_index":1911,"title":{},"content":{"317":{"position":[[963,7]]}},"keywords":{}}],["recommend",{"_index":1285,"title":{"369":{"position":[[24,14]]}},"content":{"181":{"position":[[150,10]]},"248":{"position":[[535,11]]},"272":{"position":[[585,11]]},"365":{"position":[[1234,12]]}},"keywords":{}}],["record",{"_index":1245,"title":{},"content":{"176":{"position":[[299,7]]},"203":{"position":[[341,6]]},"222":{"position":[[142,7],[171,6],[181,8]]},"281":{"position":[[65,8]]},"300":{"position":[[69,6]]},"301":{"position":[[183,8],[252,6]]}},"keywords":{}}],["record<str",{"_index":1504,"title":{},"content":{"203":{"position":[[153,18],[185,17]]},"214":{"position":[[190,17]]}},"keywords":{}}],["recordpromis",{"_index":1870,"title":{},"content":{"301":{"position":[[142,14]]}},"keywords":{}}],["redact",{"_index":1848,"title":{},"content":{"290":{"position":[[339,6]]}},"keywords":{}}],["redi",{"_index":1976,"title":{},"content":{"324":{"position":[[7,6],[14,5]]}},"keywords":{}}],["redirect",{"_index":1983,"title":{},"content":{"324":{"position":[[340,9]]}},"keywords":{}}],["refactor",{"_index":2235,"title":{},"content":{"387":{"position":[[69,8]]},"416":{"position":[[84,8]]},"441":{"position":[[1,10]]},"510":{"position":[[1,11]]},"513":{"position":[[1,11]]}},"keywords":{}}],["refer",{"_index":1742,"title":{},"content":{"261":{"position":[[361,7]]},"361":{"position":[[535,10]]},"519":{"position":[[784,9]]}},"keywords":{}}],["reflect.get(...argu",{"_index":463,"title":{},"content":{"19":{"position":[[414,25]]}},"keywords":{}}],["regex",{"_index":675,"title":{},"content":{"31":{"position":[[2042,6]]},"43":{"position":[[2042,6]]},"46":{"position":[[2167,6]]},"97":{"position":[[2067,6]]},"150":{"position":[[2054,6]]},"270":{"position":[[80,6],[185,6],[270,6]]},"273":{"position":[[290,6],[394,6],[479,6]]}},"keywords":{}}],["region",{"_index":760,"title":{},"content":{"106":{"position":[[352,7]]},"200":{"position":[[583,7]]},"287":{"position":[[314,7]]},"318":{"position":[[260,7]]}},"keywords":{}}],["regular",{"_index":887,"title":{},"content":{"153":{"position":[[86,7]]},"338":{"position":[[146,7]]}},"keywords":{}}],["reject",{"_index":1979,"title":{},"content":{"324":{"position":[[176,8]]}},"keywords":{}}],["rejectunauthor",{"_index":863,"title":{},"content":{"151":{"position":[[717,19]]}},"keywords":{}}],["relat",{"_index":846,"title":{"151":{"position":[[4,10]]}},"content":{"151":{"position":[[4,10]]}},"keywords":{}}],["releas",{"_index":989,"title":{"187":{"position":[[0,7]]}},"content":{"161":{"position":[[206,8],[651,8]]},"187":{"position":[[0,7],[25,7],[101,7],[134,7],[199,7],[293,9],[339,8],[414,7],[429,7]]}},"keywords":{}}],["release2020",{"_index":997,"title":{},"content":{"161":{"position":[[307,11]]}},"keywords":{}}],["released2020",{"_index":1000,"title":{},"content":{"161":{"position":[[333,12]]}},"keywords":{}}],["released2021",{"_index":1008,"title":{},"content":{"161":{"position":[[435,12]]}},"keywords":{}}],["released2022",{"_index":1014,"title":{},"content":{"161":{"position":[[500,12]]}},"keywords":{}}],["released2023",{"_index":1018,"title":{},"content":{"161":{"position":[[527,12]]}},"keywords":{}}],["released2024",{"_index":1025,"title":{},"content":{"161":{"position":[[624,12]]}},"keywords":{}}],["remain",{"_index":355,"title":{},"content":{"17":{"position":[[974,7]]}},"keywords":{}}],["remov",{"_index":373,"title":{},"content":{"18":{"position":[[128,6]]},"161":{"position":[[93,6]]},"203":{"position":[[276,6]]},"261":{"position":[[166,6]]},"290":{"position":[[251,6]]},"373":{"position":[[46,7],[217,7]]},"449":{"position":[[1,6]]},"455":{"position":[[1,6]]},"462":{"position":[[1,7]]},"504":{"position":[[1,6]]},"515":{"position":[[142,7],[271,7]]},"516":{"position":[[142,8]]}},"keywords":{}}],["renam",{"_index":2240,"title":{},"content":{"394":{"position":[[1,7]]}},"keywords":{}}],["replac",{"_index":902,"title":{},"content":{"153":{"position":[[556,7]]},"271":{"position":[[357,9]]},"290":{"position":[[448,7],[528,8]]},"491":{"position":[[130,12]]},"506":{"position":[[124,8]]},"512":{"position":[[1,8]]}},"keywords":{}}],["repli",{"_index":1617,"title":{},"content":{"240":{"position":[[154,7]]}},"keywords":{}}],["report",{"_index":905,"title":{},"content":{"153":{"position":[[735,9]]},"302":{"position":[[119,9]]}},"keywords":{}}],["reportbatchitemfailur",{"_index":1875,"title":{},"content":{"302":{"position":[[11,23]]}},"keywords":{}}],["repositori",{"_index":878,"title":{},"content":{"152":{"position":[[99,11]]}},"keywords":{}}],["repres",{"_index":1815,"title":{},"content":{"282":{"position":[[254,10]]}},"keywords":{}}],["represent",{"_index":1615,"title":{},"content":{"236":{"position":[[378,15]]}},"keywords":{}}],["req",{"_index":1488,"title":{},"content":{"200":{"position":[[645,5],[937,3]]}},"keywords":{}}],["request",{"_index":306,"title":{"193":{"position":[[0,10]]},"281":{"position":[[0,7]]}},"content":{"16":{"position":[[1847,7]]},"19":{"position":[[668,9],[830,9],[960,9],[1092,9],[1215,7],[1308,9]]},"106":{"position":[[721,9],[789,8]]},"107":{"position":[[682,9],[750,8]]},"152":{"position":[[155,9]]},"158":{"position":[[283,7]]},"159":{"position":[[412,7],[893,9],[1156,9]]},"163":{"position":[[559,9]]},"170":{"position":[[319,8]]},"171":{"position":[[1164,8],[1240,7],[1329,7]]},"182":{"position":[[1123,9],[1461,9]]},"185":{"position":[[189,8],[301,7],[752,7]]},"196":{"position":[[567,7],[643,8]]},"199":{"position":[[384,8],[422,7],[1357,9],[1416,8]]},"207":{"position":[[563,7],[639,8]]},"214":{"position":[[416,8],[454,7],[806,8],[1434,9],[1493,8]]},"217":{"position":[[38,9]]},"225":{"position":[[976,9]]},"240":{"position":[[194,9],[1085,7],[1184,7],[1311,8]]},"245":{"position":[[443,7]]},"269":{"position":[[44,7]]},"272":{"position":[[335,7]]},"280":{"position":[[238,7]]},"281":{"position":[[567,8],[761,8],[899,8],[1024,8],[1204,8]]},"286":{"position":[[294,7],[370,8]]},"291":{"position":[[612,9]]},"294":{"position":[[546,7],[622,8]]},"297":{"position":[[373,8],[411,7],[751,8],[1380,9],[1439,8]]},"305":{"position":[[392,8]]},"311":{"position":[[595,7],[671,8]]},"317":{"position":[[561,7],[1116,8]]},"320":{"position":[[392,8],[430,7],[766,8],[1436,9],[1499,8]]},"324":{"position":[[1254,7]]},"327":{"position":[[526,7],[654,8],[1200,11]]},"328":{"position":[[1079,9],[1170,7]]},"330":{"position":[[1574,9],[1652,8]]},"333":{"position":[[406,7],[482,8]]},"346":{"position":[[607,8]]},"375":{"position":[[505,9],[744,9]]},"379":{"position":[[158,7]]},"414":{"position":[[108,9],[173,8]]},"423":{"position":[[23,7]]},"490":{"position":[[408,9],[453,7],[506,9],[545,7],[628,9]]},"509":{"position":[[54,7]]},"518":{"position":[[553,9],[623,9],[694,9]]},"519":{"position":[[480,9],[541,9],[604,9],[770,8],[878,10]]},"521":{"position":[[424,7],[600,7]]},"522":{"position":[[226,7],[1211,9],[1276,8],[1415,8]]}},"keywords":{}}],["request.context",{"_index":1453,"title":{},"content":{"196":{"position":[[1049,16]]},"207":{"position":[[1044,16]]},"286":{"position":[[777,16]]},"294":{"position":[[1021,16]]},"311":{"position":[[1071,16]]},"317":{"position":[[1524,16]]},"327":{"position":[[1054,16]]},"333":{"position":[[882,16]]},"365":{"position":[[263,17]]},"423":{"position":[[93,15]]}},"keywords":{}}],["request.context.config",{"_index":783,"title":{},"content":{"107":{"position":[[700,23]]}},"keywords":{}}],["request.context.defaults.glob",{"_index":2034,"title":{},"content":{"328":{"position":[[440,31]]}},"keywords":{}}],["request.context.secret",{"_index":771,"title":{},"content":{"106":{"position":[[739,23]]}},"keywords":{}}],["request.context.somesecret.password",{"_index":1927,"title":{},"content":{"320":{"position":[[1667,35]]}},"keywords":{}}],["request.context.somesecret.us",{"_index":1926,"title":{},"content":{"320":{"position":[[1623,31]]}},"keywords":{}}],["request.error",{"_index":911,"title":{},"content":{"153":{"position":[[901,13]]},"423":{"position":[[52,13]]}},"keywords":{}}],["request.error.caus",{"_index":2256,"title":{},"content":{"409":{"position":[[63,19]]}},"keywords":{}}],["request.error.cause.data",{"_index":2134,"title":{},"content":{"365":{"position":[[988,25]]}},"keywords":{}}],["request.error.detail",{"_index":2255,"title":{},"content":{"409":{"position":[[38,21]]}},"keywords":{}}],["request.error.response.import",{"_index":2135,"title":{},"content":{"365":{"position":[[1052,32]]}},"keywords":{}}],["request.ev",{"_index":2121,"title":{},"content":{"365":{"position":[[112,15]]},"423":{"position":[[113,13]]}},"keywords":{}}],["request.event.bodi",{"_index":2290,"title":{},"content":{"468":{"position":[[147,18]]}},"keywords":{}}],["request.event.rawbodi",{"_index":2289,"title":{},"content":{"468":{"position":[[123,21]]}},"keywords":{}}],["request.event.sourc",{"_index":2341,"title":{},"content":{"516":{"position":[[279,21]]}},"keywords":{}}],["request.intern",{"_index":475,"title":{},"content":{"19":{"position":[[686,16]]}},"keywords":{}}],["request.internal.cachekey",{"_index":2201,"title":{},"content":{"375":{"position":[[670,25]]}},"keywords":{}}],["request.respons",{"_index":907,"title":{},"content":{"153":{"position":[[789,16],[808,16],[961,16]]},"159":{"position":[[1249,16]]},"182":{"position":[[1554,16]]},"291":{"position":[[702,17]]},"365":{"position":[[524,18]]},"375":{"position":[[812,17]]},"490":{"position":[[560,16],[649,17]]}},"keywords":{}}],["request.response.add",{"_index":908,"title":{},"content":{"153":{"position":[[850,20]]}},"keywords":{}}],["request.support",{"_index":1171,"title":{},"content":{"168":{"position":[[191,18]]}},"keywords":{}}],["request/respons",{"_index":2006,"title":{},"content":{"324":{"position":[[1308,16]]}},"keywords":{}}],["requestend",{"_index":525,"title":{},"content":{"21":{"position":[[729,10],[868,10]]},"22":{"position":[[589,10],[728,10]]}},"keywords":{}}],["requestid",{"_index":1513,"title":{},"content":{"204":{"position":[[245,12]]}},"keywords":{}}],["requestrout",{"_index":1883,"title":{},"content":{"305":{"position":[[594,12]]}},"keywords":{}}],["requestshttp",{"_index":1801,"title":{},"content":{"281":{"position":[[263,12]]}},"keywords":{}}],["requeststart",{"_index":515,"title":{},"content":{"21":{"position":[[458,12],[790,13]]},"22":{"position":[[363,12],[650,13]]}},"keywords":{}}],["requesttoken.xray",{"_index":1884,"title":{},"content":{"305":{"position":[[611,17]]}},"keywords":{}}],["requir",{"_index":58,"title":{},"content":{"5":{"position":[[250,7]]},"16":{"position":[[1606,9],[1656,8]]},"150":{"position":[[503,8]]},"156":{"position":[[69,8]]},"166":{"position":[[533,11]]},"167":{"position":[[2555,13]]},"170":{"position":[[427,11]]},"174":{"position":[[349,11]]},"187":{"position":[[820,8]]},"196":{"position":[[519,11],[1085,8]]},"207":{"position":[[515,11],[1080,8]]},"286":{"position":[[246,11],[813,8]]},"294":{"position":[[498,11],[1057,8]]},"299":{"position":[[112,8]]},"305":{"position":[[780,8]]},"311":{"position":[[547,11],[1107,8]]},"317":{"position":[[513,11],[1560,8]]},"327":{"position":[[478,11],[1090,8],[1383,9]]},"333":{"position":[[358,11],[918,8]]},"346":{"position":[[714,8]]},"353":{"position":[[37,11],[91,11],[181,11]]},"357":{"position":[[41,11],[93,11],[212,11],[316,11],[407,8]]},"366":{"position":[[156,11]]},"367":{"position":[[183,11]]},"368":{"position":[[258,9],[1047,9],[1797,9],[1855,9]]},"447":{"position":[[107,8]]},"521":{"position":[[1117,8]]},"522":{"position":[[452,7]]}},"keywords":{}}],["require('@middy/cloudwatch",{"_index":1509,"title":{},"content":{"204":{"position":[[64,26]]}},"keywords":{}}],["require('@middy/cor",{"_index":241,"title":{},"content":{"16":{"position":[[222,22]]},"204":{"position":[[15,22]]},"339":{"position":[[15,22]]}},"keywords":{}}],["require('@middy/warmup",{"_index":2055,"title":{},"content":{"339":{"position":[[53,24]]}},"keywords":{}}],["require('crypto",{"_index":2193,"title":{},"content":{"375":{"position":[[115,17]]}},"keywords":{}}],["required.if",{"_index":2131,"title":{},"content":{"365":{"position":[[850,11]]}},"keywords":{}}],["requiredthi",{"_index":2209,"title":{},"content":{"378":{"position":[[131,12]]}},"keywords":{}}],["rerout",{"_index":1982,"title":{},"content":{"324":{"position":[[314,8]]}},"keywords":{}}],["res.bodi",{"_index":1893,"title":{},"content":{"307":{"position":[[223,9]]}},"keywords":{}}],["res.eventstream",{"_index":1429,"title":{},"content":{"193":{"position":[[339,16]]}},"keywords":{}}],["res.json",{"_index":1898,"title":{},"content":{"308":{"position":[[223,11]]}},"keywords":{}}],["res.text",{"_index":2387,"title":{},"content":{"522":{"position":[[1059,10]]}},"keywords":{}}],["resolut",{"_index":1236,"title":{},"content":{"175":{"position":[[1120,10]]}},"keywords":{}}],["resolv",{"_index":68,"title":{},"content":{"6":{"position":[[37,7],[174,8]]},"19":{"position":[[137,8]]},"140":{"position":[[300,9],[496,9]]},"522":{"position":[[306,8]]}},"keywords":{}}],["resourc",{"_index":1837,"title":{},"content":{"286":{"position":[[871,8]]}},"keywords":{}}],["respect",{"_index":1283,"title":{},"content":{"181":{"position":[[83,10]]}},"keywords":{}}],["respond",{"_index":806,"title":{"139":{"position":[[34,11]]}},"content":{"373":{"position":[[363,8]]},"509":{"position":[[29,7]]}},"keywords":{}}],["respons",{"_index":93,"title":{"190":{"position":[[10,8]]},"255":{"position":[[13,8]]},"267":{"position":[[5,8]]},"282":{"position":[[0,8]]},"303":{"position":[[10,8]]},"344":{"position":[[3,8]]},"393":{"position":[[13,9]]},"394":{"position":[[5,8]]},"402":{"position":[[10,9]]},"412":{"position":[[3,9]]},"433":{"position":[[13,9]]},"434":{"position":[[5,8]]},"441":{"position":[[10,9]]},"450":{"position":[[3,9]]},"470":{"position":[[13,9]]},"471":{"position":[[5,8]]},"478":{"position":[[10,9]]},"487":{"position":[[3,9]]},"501":{"position":[[13,9]]},"502":{"position":[[5,8]]},"509":{"position":[[10,9]]}},"content":{"6":{"position":[[507,8],[602,8]]},"8":{"position":[[490,8],[558,8],[714,8],[809,8]]},"16":{"position":[[891,8],[2061,9]]},"31":{"position":[[792,9],[860,8]]},"37":{"position":[[145,9]]},"43":{"position":[[792,9],[860,8]]},"46":{"position":[[843,9],[911,8]]},"97":{"position":[[792,9],[860,8]]},"122":{"position":[[90,9]]},"150":{"position":[[804,9],[872,8]]},"153":{"position":[[333,8],[441,9],[568,8],[638,8],[780,8],[841,8]]},"158":{"position":[[641,8]]},"159":{"position":[[87,8],[154,8],[311,8],[1199,8]]},"168":{"position":[[79,9]]},"182":{"position":[[117,8],[1504,8]]},"185":{"position":[[124,8],[317,9],[788,8]]},"196":{"position":[[800,10],[903,9]]},"197":{"position":[[266,8],[367,8]]},"207":{"position":[[795,10],[898,9]]},"212":{"position":[[125,8],[226,8]]},"214":{"position":[[1145,8],[1246,8]]},"230":{"position":[[316,9]]},"240":{"position":[[232,8],[1703,9]]},"241":{"position":[[249,9]]},"256":{"position":[[97,8]]},"257":{"position":[[110,9]]},"258":{"position":[[86,9],[149,8],[323,8],[512,9]]},"266":{"position":[[261,8]]},"268":{"position":[[89,8]]},"271":{"position":[[140,8],[257,8],[338,8],[459,9]]},"273":{"position":[[81,8],[725,9]]},"277":{"position":[[196,8]]},"281":{"position":[[1119,9]]},"282":{"position":[[61,8],[85,8],[185,8],[349,10],[408,9],[425,8],[491,8],[517,8],[604,9],[623,8]]},"283":{"position":[[209,9]]},"286":{"position":[[528,10],[631,9]]},"287":{"position":[[128,8],[229,8]]},"291":{"position":[[145,8],[246,8],[536,8]]},"294":{"position":[[772,10],[875,9],[1170,8]]},"295":{"position":[[141,8],[242,8]]},"297":{"position":[[1094,8],[1195,8]]},"304":{"position":[[94,8]]},"305":{"position":[[493,8]]},"307":{"position":[[104,9]]},"308":{"position":[[104,9]]},"311":{"position":[[822,10],[925,9]]},"312":{"position":[[142,8],[243,8]]},"317":{"position":[[1279,10],[1382,9]]},"318":{"position":[[446,9]]},"320":{"position":[[1136,8],[1237,8]]},"324":{"position":[[772,8],[824,8],[1262,9]]},"327":{"position":[[805,10],[908,9]]},"333":{"position":[[633,10],[736,9]]},"334":{"position":[[115,8],[216,8]]},"343":{"position":[[145,9]]},"345":{"position":[[87,8]]},"346":{"position":[[882,8]]},"348":{"position":[[67,9]]},"349":{"position":[[67,9]]},"354":{"position":[[124,9]]},"365":{"position":[[914,9],[1027,8]]},"368":{"position":[[775,8],[1273,9],[1326,9],[1421,8]]},"373":{"position":[[26,9],[85,8],[312,8]]},"375":{"position":[[592,8],[639,10],[659,8]]},"378":{"position":[[374,9],[412,8],[467,8]]},"379":{"position":[[178,8]]},"385":{"position":[[57,8]]},"387":{"position":[[25,8]]},"388":{"position":[[23,8]]},"394":{"position":[[114,8]]},"396":{"position":[[25,8]]},"406":{"position":[[115,8]]},"412":{"position":[[12,9]]},"490":{"position":[[532,8],[579,8]]},"496":{"position":[[104,8]]},"503":{"position":[[48,9]]},"506":{"position":[[23,8]]},"519":{"position":[[893,8]]}},"keywords":{}}],["response.secret",{"_index":1829,"title":{},"content":{"283":{"position":[[244,16]]}},"keywords":{}}],["response@seedrs/middyj",{"_index":1994,"title":{},"content":{"324":{"position":[[868,23]]}},"keywords":{}}],["responsecontenttyp",{"_index":1864,"title":{},"content":{"294":{"position":[[1185,19]]}},"keywords":{}}],["responsehttp",{"_index":1814,"title":{},"content":{"282":{"position":[[135,12]]}},"keywords":{}}],["responsejsonbodypars",{"_index":2098,"title":{},"content":{"360":{"position":[[917,22]]}},"keywords":{}}],["responseschema",{"_index":654,"title":{},"content":{"31":{"position":[[1286,14],[2238,14]]},"43":{"position":[[1286,14],[2249,14]]},"97":{"position":[[1286,14],[2263,14]]},"105":{"position":[[384,14],[643,14]]},"150":{"position":[[1298,14],[2250,14]]},"365":{"position":[[832,14]]},"368":{"position":[[996,14],[1205,14]]},"409":{"position":[[144,15]]}},"keywords":{}}],["responseschema.json",{"_index":655,"title":{},"content":{"31":{"position":[[1306,23]]},"43":{"position":[[1306,23]]},"97":{"position":[[1306,23]]},"105":{"position":[[404,23]]},"150":{"position":[[1318,23]]}},"keywords":{}}],["responsesjwt",{"_index":1998,"title":{},"content":{"324":{"position":[[1087,12]]}},"keywords":{}}],["responsewarmup",{"_index":1796,"title":{},"content":{"280":{"position":[[250,15]]}},"keywords":{}}],["rest",{"_index":282,"title":{"41":{"position":[[12,6]]}},"content":{"16":{"position":[[1160,4]]},"42":{"position":[[54,4]]}},"keywords":{}}],["result",{"_index":270,"title":{},"content":{"16":{"position":[[904,7]]},"170":{"position":[[613,6]]},"171":{"position":[[949,6]]},"176":{"position":[[154,6],[638,6]]},"281":{"position":[[945,6]]}},"keywords":{}}],["retri",{"_index":1254,"title":{},"content":{"176":{"position":[[748,6]]}},"keywords":{}}],["retriev",{"_index":1972,"title":{},"content":{"323":{"position":[[458,8]]}},"keywords":{}}],["retrydelayoptions.bas",{"_index":2026,"title":{},"content":{"327":{"position":[[1333,22]]}},"keywords":{}}],["return",{"_index":274,"title":{"159":{"position":[[6,6]]},"182":{"position":[[21,8]]}},"content":{"16":{"position":[[964,6],[2046,7]]},"19":{"position":[[407,6],[540,6]]},"21":{"position":[[272,6],[765,6],[2856,9]]},"22":{"position":[[625,6]]},"31":{"position":[[1418,6]]},"43":{"position":[[1418,6]]},"46":{"position":[[1543,6]]},"97":{"position":[[1418,6]]},"150":{"position":[[1430,6]]},"151":{"position":[[913,6]]},"153":{"position":[[650,8],[954,6]]},"156":{"position":[[311,6]]},"158":{"position":[[653,9]]},"159":{"position":[[6,6],[78,6],[147,6],[294,7],[549,7],[1029,7],[1084,6],[1268,6]]},"176":{"position":[[137,7],[622,6]]},"179":{"position":[[426,6],[611,6]]},"182":{"position":[[27,6],[108,6],[290,10],[1284,9],[1334,7],[1389,6],[1573,6]]},"191":{"position":[[136,6]]},"192":{"position":[[136,6]]},"197":{"position":[[360,6]]},"199":{"position":[[638,6],[1091,6]]},"200":{"position":[[851,6]]},"211":{"position":[[161,6]]},"212":{"position":[[219,6]]},"214":{"position":[[678,6],[1239,6]]},"221":{"position":[[55,6]]},"226":{"position":[[729,6]]},"229":{"position":[[320,8]]},"233":{"position":[[257,6]]},"236":{"position":[[356,7]]},"237":{"position":[[145,6]]},"240":{"position":[[556,8],[812,8]]},"241":{"position":[[116,6]]},"245":{"position":[[207,6]]},"249":{"position":[[525,6]]},"250":{"position":[[306,6]]},"254":{"position":[[217,6]]},"258":{"position":[[316,6]]},"262":{"position":[[143,6]]},"266":{"position":[[217,6]]},"271":{"position":[[168,6],[221,9],[317,9]]},"273":{"position":[[176,6]]},"277":{"position":[[152,6]]},"287":{"position":[[222,6]]},"291":{"position":[[239,6],[529,6]]},"295":{"position":[[235,6]]},"297":{"position":[[623,6],[1188,6]]},"301":{"position":[[245,6],[262,6]]},"307":{"position":[[285,6]]},"308":{"position":[[250,6]]},"312":{"position":[[236,6]]},"318":{"position":[[132,6]]},"320":{"position":[[641,6],[1230,6]]},"324":{"position":[[505,9],[988,6]]},"328":{"position":[[109,6],[651,6]]},"330":{"position":[[627,6],[1109,6]]},"334":{"position":[[209,6]]},"338":{"position":[[74,7]]},"343":{"position":[[193,6]]},"348":{"position":[[131,6]]},"349":{"position":[[124,6]]},"354":{"position":[[299,6],[438,6]]},"358":{"position":[[245,6],[401,6]]},"368":{"position":[[213,6],[978,6],[1747,6]]},"369":{"position":[[829,6]]},"370":{"position":[[289,6]]},"371":{"position":[[358,6]]},"373":{"position":[[78,6],[421,8]]},"375":{"position":[[652,6],[832,6]]},"378":{"position":[[367,6],[841,6]]},"379":{"position":[[218,6]]},"388":{"position":[[11,7]]},"428":{"position":[[6,6]]},"441":{"position":[[49,7]]},"490":{"position":[[173,6],[682,6],[728,6],[1110,6]]},"516":{"position":[[386,6]]},"519":{"position":[[631,6]]},"520":{"position":[[412,7],[699,6]]},"521":{"position":[[666,6]]},"522":{"position":[[1099,6],[1465,6]]}},"keywords":{}}],["reus",{"_index":1,"title":{"0":{"position":[[11,5]]}},"content":{"0":{"position":[[11,5],[157,5],[227,7]]},"186":{"position":[[109,5]]}},"keywords":{}}],["reusabl",{"_index":220,"title":{},"content":{"15":{"position":[[482,8]]}},"keywords":{}}],["revers",{"_index":2208,"title":{},"content":{"378":{"position":[[32,8]]},"388":{"position":[[124,7]]}},"keywords":{}}],["review",{"_index":1001,"title":{},"content":{"161":{"position":[[346,6],[370,6],[460,6]]},"378":{"position":[[286,7]]}},"keywords":{}}],["reviv",{"_index":1638,"title":{},"content":{"244":{"position":[[1,7],[34,7]]},"342":{"position":[[1,7],[43,7]]}},"keywords":{}}],["rewrit",{"_index":1984,"title":{},"content":{"324":{"position":[[350,7]]},"396":{"position":[[72,7]]},"406":{"position":[[10,7]]}},"keywords":{}}],["rfc",{"_index":1072,"title":{},"content":{"164":{"position":[[481,4]]}},"keywords":{}}],["right",{"_index":573,"title":{},"content":{"21":{"position":[[1975,6]]},"158":{"position":[[624,5]]},"248":{"position":[[561,5]]}},"keywords":{}}],["role",{"_index":770,"title":{},"content":{"106":{"position":[[687,10]]},"283":{"position":[[523,5]]},"286":{"position":[[762,4]]},"324":{"position":[[1394,5]]},"327":{"position":[[297,4],[1039,4]]},"507":{"position":[[70,6]]},"514":{"position":[[32,4]]}},"keywords":{}}],["rolearn",{"_index":769,"title":{},"content":{"106":{"position":[[678,8]]},"334":{"position":[[297,8]]}},"keywords":{}}],["rolesessionnam",{"_index":2052,"title":{},"content":{"334":{"position":[[313,16]]}},"keywords":{}}],["rollup",{"_index":65,"title":{"6":{"position":[[0,7]]}},"content":{"6":{"position":[[10,6]]}},"keywords":{}}],["rollup.config.mj",{"_index":72,"title":{},"content":{"6":{"position":[[105,18]]}},"keywords":{}}],["rollup/plugin",{"_index":66,"title":{},"content":{"6":{"position":[[17,14],[45,14],[153,15],[204,15]]}},"keywords":{}}],["room",{"_index":2373,"title":{},"content":{"521":{"position":[[959,4]]}},"keywords":{}}],["rotat",{"_index":852,"title":{},"content":{"151":{"position":[[379,8]]},"317":{"position":[[997,8]]}},"keywords":{}}],["round",{"_index":1548,"title":{},"content":{"221":{"position":[[164,5]]},"516":{"position":[[29,5]]}},"keywords":{}}],["rout",{"_index":693,"title":{},"content":{"37":{"position":[[412,6]]},"46":{"position":[[1350,6]]},"322":{"position":[[1363,6]]},"353":{"position":[[1,6],[58,5],[117,5]]},"354":{"position":[[469,6]]},"357":{"position":[[1,6],[62,5]]},"358":{"position":[[452,6]]},"395":{"position":[[16,7]]},"413":{"position":[[16,7]]}},"keywords":{}}],["routekey",{"_index":694,"title":{},"content":{"37":{"position":[[425,9],[476,9],[533,9]]},"353":{"position":[[73,8]]},"354":{"position":[[482,9],[533,9]]}},"keywords":{}}],["router",{"_index":686,"title":{"351":{"position":[[3,6]]},"355":{"position":[[5,6]]},"395":{"position":[[5,7]]},"413":{"position":[[3,7]]},"435":{"position":[[5,7]]},"451":{"position":[[3,7]]},"472":{"position":[[5,7]]},"488":{"position":[[3,7]]}},"content":{"37":{"position":[[194,7]]},"46":{"position":[[76,7]]},"322":{"position":[[1355,7]]},"352":{"position":[[75,6]]},"353":{"position":[[289,6],[471,6]]},"354":{"position":[[72,7]]},"356":{"position":[[89,6]]},"357":{"position":[[521,6],[703,6]]},"358":{"position":[[76,7]]}},"keywords":{}}],["routers!bett",{"_index":2205,"title":{},"content":{"377":{"position":[[47,14]]}},"keywords":{}}],["routes[].path",{"_index":2080,"title":{},"content":{"357":{"position":[[426,13]]}},"keywords":{}}],["rule",{"_index":1986,"title":{},"content":{"324":{"position":[[404,5]]}},"keywords":{}}],["run",{"_index":510,"title":{},"content":{"21":{"position":[[383,3],[2184,3]]},"168":{"position":[[380,7]]},"189":{"position":[[1420,7]]},"210":{"position":[[270,7]]},"230":{"position":[[276,4]]},"240":{"position":[[1663,4]]},"241":{"position":[[209,4]]},"266":{"position":[[403,4]]},"271":{"position":[[100,4]]},"277":{"position":[[262,4]]},"318":{"position":[[341,7]]},"353":{"position":[[508,3]]},"357":{"position":[[740,3]]},"369":{"position":[[1,3],[30,7]]},"447":{"position":[[169,3]]}},"keywords":{}}],["runonbefor",{"_index":1527,"title":{},"content":{"210":{"position":[[216,11]]}},"keywords":{}}],["runonerror",{"_index":1532,"title":{},"content":{"211":{"position":[[238,11]]}},"keywords":{}}],["runtim",{"_index":1353,"title":{},"content":{"187":{"position":[[285,7],[369,8]]},"362":{"position":[[124,7]]}},"keywords":{}}],["s3",{"_index":97,"title":{"111":{"position":[[0,2]]},"120":{"position":[[0,2]]},"123":{"position":[[0,2]]},"292":{"position":[[0,2]]},"303":{"position":[[0,2]]},"401":{"position":[[0,2]]},"402":{"position":[[0,2]]},"441":{"position":[[0,2]]},"478":{"position":[[0,2]]},"508":{"position":[[0,2]]},"509":{"position":[[0,2]]}},"content":{"6":{"position":[[577,4]]},"8":{"position":[[784,4]]},"107":{"position":[[457,3],[858,3]]},"112":{"position":[[30,2]]},"121":{"position":[[14,2],[30,2],[72,2]]},"124":{"position":[[30,2]]},"125":{"position":[[165,2]]},"253":{"position":[[994,2]]},"283":{"position":[[234,2]]},"293":{"position":[[126,2]]},"294":{"position":[[736,4]]},"295":{"position":[[40,2],[290,4]]},"296":{"position":[[41,2]]},"297":{"position":[[12,2],[370,2],[982,3],[1220,4]]},"304":{"position":[[142,2]]},"305":{"position":[[816,2]]},"314":{"position":[[41,2]]},"324":{"position":[[425,2]]},"509":{"position":[[40,2]]}},"keywords":{}}],["s3.awsclientopt",{"_index":1879,"title":{},"content":{"305":{"position":[[145,19]]}},"keywords":{}}],["s3.s3",{"_index":1828,"title":{},"content":{"283":{"position":[[196,5]]}},"keywords":{}}],["s3.writegetobjectrespons",{"_index":1882,"title":{},"content":{"305":{"position":[[557,26]]}},"keywords":{}}],["s3:getobjectif",{"_index":1862,"title":{},"content":{"294":{"position":[[1093,14]]}},"keywords":{}}],["s3client",{"_index":1861,"title":{},"content":{"294":{"position":[[29,10],[40,8],[221,8]]},"305":{"position":[[29,10],[40,8],[205,8]]}},"keywords":{}}],["s3middlewar",{"_index":776,"title":{},"content":{"107":{"position":[[133,12],[429,14]]}},"keywords":{}}],["s3objectfetch",{"_index":2279,"title":{},"content":{"441":{"position":[[57,13]]}},"keywords":{}}],["s3objectrespons",{"_index":1890,"title":{},"content":{"307":{"position":[[64,16]]},"308":{"position":[[64,16]]}},"keywords":{}}],["s3objectresponsemiddlewar",{"_index":793,"title":{},"content":{"122":{"position":[[40,26]]}},"keywords":{}}],["s3req",{"_index":1866,"title":{},"content":{"297":{"position":[[254,5],[593,5],[935,6],[988,5]]}},"keywords":{}}],["s3req<paramtype>(config",{"_index":1867,"title":{},"content":{"297":{"position":[[544,30]]}},"keywords":{}}],["s3req<{field1",{"_index":1868,"title":{},"content":{"297":{"position":[[1246,17]]}},"keywords":{}}],["safe",{"_index":1253,"title":{},"content":{"176":{"position":[[740,4]]},"189":{"position":[[256,6]]},"221":{"position":[[159,4]]},"386":{"position":[[54,4]]}},"keywords":{}}],["same",{"_index":484,"title":{},"content":{"19":{"position":[[892,4]]},"153":{"position":[[236,4]]},"171":{"position":[[1477,4]]},"176":{"position":[[76,4],[149,4],[182,4],[316,4],[572,4],[633,4],[690,4]]},"186":{"position":[[279,4]]},"416":{"position":[[256,4]]}},"keywords":{}}],["sampl",{"_index":933,"title":{"167":{"position":[[0,6]]},"171":{"position":[[0,6]]},"175":{"position":[[0,6]]},"179":{"position":[[0,6]]},"197":{"position":[[0,6]]},"204":{"position":[[0,6]]},"211":{"position":[[0,6]]},"212":{"position":[[0,6]]},"218":{"position":[[0,6]]},"222":{"position":[[0,6]]},"226":{"position":[[0,6]]},"230":{"position":[[0,6]]},"233":{"position":[[0,6]]},"237":{"position":[[0,6]]},"241":{"position":[[0,6]]},"245":{"position":[[0,6]]},"249":{"position":[[0,6]]},"254":{"position":[[0,6]]},"258":{"position":[[0,6]]},"262":{"position":[[0,6]]},"266":{"position":[[0,6]]},"273":{"position":[[0,6]]},"277":{"position":[[0,6]]},"287":{"position":[[0,6]]},"291":{"position":[[0,6]]},"295":{"position":[[0,6]]},"301":{"position":[[0,6]]},"306":{"position":[[0,6]]},"312":{"position":[[0,6]]},"318":{"position":[[0,6]]},"328":{"position":[[0,6]]},"334":{"position":[[0,6]]},"339":{"position":[[0,6]]},"343":{"position":[[0,6]]},"347":{"position":[[0,6]]},"354":{"position":[[0,6]]},"358":{"position":[[0,6]]},"368":{"position":[[0,6]]}},"content":{"157":{"position":[[57,7],[102,7],[147,7],[535,7],[580,7],[625,7]]},"159":{"position":[[616,6],[1343,6]]},"164":{"position":[[250,8]]},"166":{"position":[[408,6]]},"182":{"position":[[1648,6]]},"266":{"position":[[427,6]]},"277":{"position":[[286,6]]}},"keywords":{}}],["save",{"_index":915,"title":{},"content":{"155":{"position":[[63,4],[233,4]]},"165":{"position":[[27,4]]},"169":{"position":[[27,4]]},"173":{"position":[[27,4]]},"177":{"position":[[27,4]]},"195":{"position":[[72,4],[108,4]]},"202":{"position":[[72,4]]},"206":{"position":[[72,4],[107,4]]},"209":{"position":[[72,4]]},"216":{"position":[[72,4]]},"220":{"position":[[72,4]]},"224":{"position":[[72,4]]},"228":{"position":[[72,4]]},"232":{"position":[[72,4]]},"235":{"position":[[72,4]]},"239":{"position":[[72,4]]},"243":{"position":[[72,4]]},"247":{"position":[[72,4]]},"252":{"position":[[72,4]]},"256":{"position":[[72,4]]},"260":{"position":[[72,4]]},"264":{"position":[[72,4]]},"268":{"position":[[72,4]]},"275":{"position":[[72,4]]},"285":{"position":[[72,4],[109,4]]},"289":{"position":[[72,4]]},"293":{"position":[[72,4],[101,4]]},"299":{"position":[[72,4],[150,4]]},"304":{"position":[[72,4],[117,4]]},"310":{"position":[[72,4],[116,4]]},"316":{"position":[[72,4],[114,4]]},"326":{"position":[[72,4],[102,4]]},"332":{"position":[[72,4],[102,4]]},"337":{"position":[[72,4]]},"341":{"position":[[60,4]]},"345":{"position":[[72,4],[110,4]]},"352":{"position":[[60,4]]},"356":{"position":[[72,4]]},"364":{"position":[[72,4],[108,4]]}},"keywords":{}}],["schedul",{"_index":1912,"title":{},"content":{"317":{"position":[[1006,10]]}},"keywords":{}}],["schema",{"_index":283,"title":{},"content":{"16":{"position":[[1188,6]]},"18":{"position":[[920,6],[952,6]]},"21":{"position":[[2211,6],[2306,6]]},"140":{"position":[[432,7]]},"365":{"position":[[1097,7],[1202,8]]},"366":{"position":[[16,6],[140,6],[173,6]]},"368":{"position":[[231,6],[1970,6]]},"484":{"position":[[803,7]]},"515":{"position":[[47,6]]}},"keywords":{}}],["schema.event.j",{"_index":2174,"title":{},"content":{"369":{"position":[[712,19]]}},"keywords":{}}],["schema.event.json",{"_index":2179,"title":{},"content":{"370":{"position":[[220,21]]},"371":{"position":[[289,21]]}},"keywords":{}}],["schema.html#json",{"_index":2158,"title":{},"content":{"368":{"position":[[2009,16]]}},"keywords":{}}],["schemas.w",{"_index":1812,"title":{},"content":{"281":{"position":[[1144,10]]}},"keywords":{}}],["scone",{"_index":1758,"title":{},"content":{"266":{"position":[[678,8]]}},"keywords":{}}],["scope",{"_index":1358,"title":{},"content":{"187":{"position":[[451,7]]}},"keywords":{}}],["scopenormalizehttprespons",{"_index":2226,"title":{},"content":{"379":{"position":[[121,26]]}},"keywords":{}}],["script",{"_index":2160,"title":{},"content":{"369":{"position":[[13,6]]}},"keywords":{}}],["sdk",{"_index":89,"title":{},"content":{"6":{"position":[[447,3]]},"8":{"position":[[654,3]]},"122":{"position":[[163,3]]},"163":{"position":[[462,3],[577,3]]},"168":{"position":[[306,3],[334,3]]},"171":{"position":[[1434,3]]},"196":{"position":[[493,3]]},"198":{"position":[[17,3]]},"207":{"position":[[489,3]]},"213":{"position":[[17,3]]},"288":{"position":[[17,3]]},"294":{"position":[[472,3]]},"296":{"position":[[17,3]]},"305":{"position":[[328,3],[727,3]]},"311":{"position":[[521,3]]},"313":{"position":[[17,3]]},"314":{"position":[[17,3]]},"317":{"position":[[487,3]]},"319":{"position":[[17,3]]},"327":{"position":[[452,3]]},"329":{"position":[[17,3]]},"333":{"position":[[332,3]]},"335":{"position":[[17,3]]},"346":{"position":[[543,3]]},"350":{"position":[[17,3]]},"420":{"position":[[8,3]]},"454":{"position":[[20,3]]},"477":{"position":[[20,3]]},"478":{"position":[[20,3]]},"479":{"position":[[20,3]]},"480":{"position":[[20,3]]},"482":{"position":[[20,3]]},"483":{"position":[[20,3]]},"487":{"position":[[20,3]]}},"keywords":{}}],["sdk/client",{"_index":90,"title":{},"content":{"6":{"position":[[457,10],[522,10],[566,10],[617,10],[678,10],[742,10],[779,10]]},"8":{"position":[[664,10],[729,10],[773,10],[824,10],[885,10],[949,10],[986,10]]},"171":{"position":[[155,10]]},"177":{"position":[[72,10]]},"193":{"position":[[69,10]]},"195":{"position":[[122,10]]},"196":{"position":[[148,10]]},"198":{"position":[[30,10]]},"206":{"position":[[121,10]]},"207":{"position":[[146,10]]},"213":{"position":[[30,10]]},"293":{"position":[[115,10]]},"294":{"position":[[134,10]]},"296":{"position":[[30,10]]},"299":{"position":[[164,10]]},"304":{"position":[[131,10]]},"305":{"position":[[134,10]]},"310":{"position":[[130,10]]},"311":{"position":[[162,10]]},"313":{"position":[[30,10]]},"314":{"position":[[30,10]]},"316":{"position":[[128,10]]},"317":{"position":[[158,10]]},"319":{"position":[[30,10]]},"326":{"position":[[116,10]]},"327":{"position":[[137,10]]},"329":{"position":[[30,10]]},"332":{"position":[[116,10]]},"333":{"position":[[136,10]]},"335":{"position":[[30,10]]},"345":{"position":[[124,10]]},"346":{"position":[[170,10]]},"350":{"position":[[30,10]]}},"keywords":{}}],["sdk/lib",{"_index":1256,"title":{},"content":{"177":{"position":[[97,7]]}},"keywords":{}}],["sdk/rd",{"_index":1833,"title":{},"content":{"285":{"position":[[123,7]]},"286":{"position":[[130,7]]},"288":{"position":[[30,7]]}},"keywords":{}}],["sdk/util",{"_index":1522,"title":{},"content":{"206":{"position":[[146,8]]}},"keywords":{}}],["se",{"_index":802,"title":{"126":{"position":[[0,3]]}},"content":{"127":{"position":[[30,3]]}},"keywords":{}}],["sec",{"_index":2105,"title":{},"content":{"361":{"position":[[125,3],[258,3]]}},"keywords":{}}],["secret",{"_index":751,"title":{"106":{"position":[[5,8]]},"132":{"position":[[0,7]]},"315":{"position":[[0,7]]},"403":{"position":[[0,7]]},"442":{"position":[[0,7]]},"479":{"position":[[0,7]]},"510":{"position":[[0,7]]}},"content":{"133":{"position":[[23,7]]},"171":{"position":[[166,7]]},"196":{"position":[[338,7]]},"200":{"position":[[229,7],[242,7],[800,6]]},"207":{"position":[[334,7]]},"283":{"position":[[298,7]]},"294":{"position":[[317,7]]},"311":{"position":[[366,7]]},"316":{"position":[[139,7]]},"317":{"position":[[169,7],[341,7],[728,7],[974,7],[1230,7],[1513,7]]},"318":{"position":[[402,7]]},"319":{"position":[[41,7]]},"320":{"position":[[177,7],[260,6],[610,6],[950,7],[1016,6]]},"323":{"position":[[546,7]]},"328":{"position":[[1016,8]]},"330":{"position":[[1511,8]]},"346":{"position":[[388,7]]}},"keywords":{}}],["secret<paramtype>(key",{"_index":1919,"title":{},"content":{"320":{"position":[[563,28]]}},"keywords":{}}],["secret<{us",{"_index":1921,"title":{},"content":{"320":{"position":[[1327,16]]}},"keywords":{}}],["secretid.fetchrotationd",{"_index":1904,"title":{},"content":{"317":{"position":[[579,26]]}},"keywords":{}}],["secretsmanag",{"_index":100,"title":{},"content":{"6":{"position":[[628,16]]},"8":{"position":[[835,16]]},"106":{"position":[[508,15],[887,15]]},"151":{"position":[[255,15],[334,14]]},"200":{"position":[[298,14],[504,16],[715,14]]},"318":{"position":[[40,14],[181,16]]},"320":{"position":[[16,14],[377,14],[998,15],[1285,16]]}},"keywords":{}}],["secretsmanager:describesecret",{"_index":1916,"title":{},"content":{"317":{"position":[[1658,29]]}},"keywords":{}}],["secretsmanager:getsecretvalu",{"_index":1914,"title":{},"content":{"317":{"position":[[1596,30]]}},"keywords":{}}],["secretsmanagercli",{"_index":1183,"title":{},"content":{"171":{"position":[[121,20],[295,24]]},"317":{"position":[[29,22],[52,20],[242,20]]}},"keywords":{}}],["secretsmanagermiddlewar",{"_index":754,"title":{},"content":{"106":{"position":[[134,24],[468,26]]}},"keywords":{}}],["section",{"_index":176,"title":{},"content":{"13":{"position":[[14,7]]},"157":{"position":[[996,8]]},"182":{"position":[[34,8],[735,8]]}},"keywords":{}}],["secur",{"_index":185,"title":{"259":{"position":[[5,8]]},"396":{"position":[[5,8]]},"436":{"position":[[5,8]]},"473":{"position":[[5,8]]},"503":{"position":[[5,8]]}},"content":{"13":{"position":[[107,8]]},"31":{"position":[[936,8]]},"43":{"position":[[936,8]]},"46":{"position":[[987,8]]},"97":{"position":[[936,8]]},"150":{"position":[[948,8]]},"151":{"position":[[226,6],[324,6]]},"260":{"position":[[89,8]]},"262":{"position":[[78,8]]},"282":{"position":[[289,8],[329,8]]},"333":{"position":[[1055,8]]},"400":{"position":[[44,8]]},"403":{"position":[[44,8]]},"522":{"position":[[95,8]]}},"keywords":{}}],["securestr",{"_index":2015,"title":{},"content":{"327":{"position":[[556,12]]}},"keywords":{}}],["securestring.ssm",{"_index":850,"title":{},"content":{"151":{"position":[[281,16]]}},"keywords":{}}],["securityienoopen",{"_index":1735,"title":{},"content":{"261":{"position":[[234,16]]}},"keywords":{}}],["see",{"_index":15,"title":{},"content":{"0":{"position":[[223,3]]},"21":{"position":[[2798,3]]},"156":{"position":[[13,3]]},"158":{"position":[[688,3]]},"167":{"position":[[1169,4],[2273,3]]},"172":{"position":[[615,3]]},"181":{"position":[[603,3]]},"196":{"position":[[358,3]]},"203":{"position":[[422,3]]},"207":{"position":[[354,3]]},"294":{"position":[[337,3]]},"302":{"position":[[115,3]]},"305":{"position":[[691,3]]},"311":{"position":[[386,3]]},"317":{"position":[[361,3]]},"327":{"position":[[321,3]]},"333":{"position":[[1073,3]]},"346":{"position":[[408,3]]},"360":{"position":[[338,3]]},"378":{"position":[[204,4]]},"425":{"position":[[53,4]]},"447":{"position":[[53,4]]},"468":{"position":[[208,3]]},"510":{"position":[[13,3]]},"513":{"position":[[13,3]]},"517":{"position":[[57,3]]},"518":{"position":[[360,3],[788,3]]},"521":{"position":[[1040,3]]}},"keywords":{}}],["seen",{"_index":1333,"title":{},"content":{"186":{"position":[[237,4]]}},"keywords":{}}],["segment",{"_index":1170,"title":{},"content":{"168":{"position":[[173,8]]},"170":{"position":[[331,7],[623,7]]},"171":{"position":[[575,7],[692,7],[819,8],[993,7],[1312,7]]},"181":{"position":[[341,7],[505,7]]},"182":{"position":[[446,7]]}},"keywords":{}}],["self",{"_index":736,"title":{"92":{"position":[[7,4]]}},"content":{"93":{"position":[[19,4]]}},"keywords":{}}],["send",{"_index":1298,"title":{},"content":{"182":{"position":[[458,4]]}},"keywords":{}}],["sensit",{"_index":1849,"title":{},"content":{"290":{"position":[[346,9]]}},"keywords":{}}],["sent",{"_index":1190,"title":{},"content":{"171":{"position":[[1028,4]]},"175":{"position":[[938,4]]},"185":{"position":[[812,4]]}},"keywords":{}}],["separ",{"_index":2133,"title":{},"content":{"365":{"position":[[951,11]]}},"keywords":{}}],["sequenc",{"_index":903,"title":{},"content":{"153":{"position":[[624,9]]}},"keywords":{}}],["serial",{"_index":217,"title":{"267":{"position":[[14,10]]},"271":{"position":[[0,10]]},"394":{"position":[[14,11]]},"434":{"position":[[14,11]]},"471":{"position":[[14,11]]},"502":{"position":[[14,11]]}},"content":{"15":{"position":[[445,14]]},"17":{"position":[[326,14]]},"31":{"position":[[869,11],[2025,12],[2072,11]]},"43":{"position":[[869,11],[2025,12],[2072,11]]},"46":{"position":[[920,11],[2150,12],[2197,11]]},"97":{"position":[[869,11],[2050,12],[2097,11]]},"150":{"position":[[881,11],[2037,12],[2084,11]]},"159":{"position":[[432,14]]},"268":{"position":[[98,10]]},"270":{"position":[[47,12],[63,12],[109,11],[215,11],[294,11]]},"271":{"position":[[17,10],[77,10]]},"272":{"position":[[61,10],[502,10]]},"273":{"position":[[90,11],[273,12],[319,11],[424,11],[503,11]]},"282":{"position":[[500,11]]},"324":{"position":[[781,11],[809,10]]}},"keywords":{}}],["serializer.sq",{"_index":1820,"title":{},"content":{"282":{"position":[[526,14]]}},"keywords":{}}],["serv",{"_index":1847,"title":{},"content":{"290":{"position":[[314,5]]},"518":{"position":[[62,5]]}},"keywords":{}}],["server",{"_index":815,"title":{"140":{"position":[[7,6]]}},"content":{"140":{"position":[[7,6],[218,6]]}},"keywords":{}}],["server/x",{"_index":1732,"title":{},"content":{"261":{"position":[[177,8]]}},"keywords":{}}],["serverless",{"_index":318,"title":{"146":{"position":[[0,10]]},"147":{"position":[[0,10]]}},"content":{"17":{"position":[[30,10],[1150,10]]},"146":{"position":[[0,10],[170,10]]},"147":{"position":[[0,10]]},"161":{"position":[[121,10]]},"163":{"position":[[119,10]]},"338":{"position":[[246,10]]},"516":{"position":[[305,11]]}},"keywords":{}}],["serverless/ev",{"_index":405,"title":{},"content":{"18":{"position":[[763,20]]}},"keywords":{}}],["serverlessairlin",{"_index":1100,"title":{},"content":{"167":{"position":[[152,19]]},"171":{"position":[[225,19]]},"175":{"position":[[158,20]]}},"keywords":{}}],["servic",{"_index":8,"title":{"151":{"position":[[24,7]]},"309":{"position":[[0,7]]},"404":{"position":[[0,7]]},"443":{"position":[[0,7]]},"480":{"position":[[0,7]]}},"content":{"0":{"position":[[90,9]]},"151":{"position":[[24,7]]},"166":{"position":[[249,7]]},"168":{"position":[[46,7]]},"170":{"position":[[97,7]]},"171":{"position":[[894,7],[1378,7]]},"172":{"position":[[267,8]]},"174":{"position":[[97,7]]},"175":{"position":[[990,8]]},"283":{"position":[[341,7],[557,9]]}},"keywords":{}}],["service_undefined.defaultnamespac",{"_index":1210,"title":{},"content":{"174":{"position":[[170,34]]}},"keywords":{}}],["service_undefined.en",{"_index":1177,"title":{},"content":{"170":{"position":[[170,25]]}},"keywords":{}}],["service_undefined.sampleratevalu",{"_index":1084,"title":{},"content":{"166":{"position":[[322,33]]}},"keywords":{}}],["servicediscoveri",{"_index":103,"title":{},"content":{"6":{"position":[[689,18]]},"8":{"position":[[896,18]]},"310":{"position":[[141,16]]},"312":{"position":[[40,16],[291,18]]},"313":{"position":[[41,16]]}},"keywords":{}}],["servicediscovery.awsclientopt",{"_index":1900,"title":{},"content":{"311":{"position":[[173,33]]}},"keywords":{}}],["servicediscovery:discoverinst",{"_index":1901,"title":{},"content":{"311":{"position":[[1143,34]]}},"keywords":{}}],["servicediscoverycli",{"_index":1899,"title":{},"content":{"311":{"position":[[29,24],[54,22],[256,22]]}},"keywords":{}}],["servicenam",{"_index":1099,"title":{},"content":{"167":{"position":[[139,12]]},"170":{"position":[[75,11]]},"171":{"position":[[212,12]]},"174":{"position":[[75,11]]},"175":{"position":[[179,12]]},"312":{"position":[[358,12]]}},"keywords":{}}],["services.ssm",{"_index":1831,"title":{},"content":{"283":{"position":[[409,13]]}},"keywords":{}}],["set",{"_index":3,"title":{},"content":{"0":{"position":[[28,3]]},"19":{"position":[[79,3],[443,4]]},"21":{"position":[[2846,4]]},"151":{"position":[[985,3]]},"189":{"position":[[444,3],[910,7]]},"196":{"position":[[379,3],[684,7]]},"203":{"position":[[66,4]]},"207":{"position":[[375,3],[680,7]]},"210":{"position":[[27,4],[177,3],[249,4]]},"225":{"position":[[834,3]]},"229":{"position":[[271,3]]},"240":{"position":[[41,4],[204,3]]},"261":{"position":[[251,4]]},"271":{"position":[[65,3]]},"280":{"position":[[134,4]]},"282":{"position":[[24,4],[109,4]]},"286":{"position":[[411,7]]},"294":{"position":[[358,3],[663,7],[1156,3]]},"305":{"position":[[433,7]]},"311":{"position":[[407,3],[712,7]]},"317":{"position":[[382,3],[1157,7]]},"327":{"position":[[342,3],[695,7]]},"333":{"position":[[523,7]]},"338":{"position":[[239,3]]},"346":{"position":[[429,3],[648,7],[815,3],[830,3],[930,3]]},"357":{"position":[[823,3],[842,3]]},"378":{"position":[[854,3]]},"379":{"position":[[38,3]]},"390":{"position":[[34,3]]},"416":{"position":[[285,3]]},"444":{"position":[[37,3]]},"456":{"position":[[28,3]]},"469":{"position":[[19,3]]},"520":{"position":[[236,3],[364,3]]}},"keywords":{}}],["setprototypeof/test",{"_index":428,"title":{},"content":{"18":{"position":[[1244,22]]}},"keywords":{}}],["settocontext",{"_index":1487,"title":{},"content":{"200":{"position":[[606,13]]},"295":{"position":[[349,13]]},"297":{"position":[[1342,13]]},"318":{"position":[[283,13]]},"320":{"position":[[1398,13],[1599,14]]},"328":{"position":[[373,13]]},"522":{"position":[[736,13]]}},"keywords":{}}],["settoenv",{"_index":2246,"title":{},"content":{"400":{"position":[[12,8]]},"403":{"position":[[12,8]]},"407":{"position":[[12,8]]},"414":{"position":[[19,8]]}},"keywords":{}}],["setup",{"_index":371,"title":{},"content":{"18":{"position":[[97,6]]},"21":{"position":[[2025,5]]},"158":{"position":[[67,6]]}},"keywords":{}}],["setvalu",{"_index":2198,"title":{},"content":{"375":{"position":[[346,9]]}},"keywords":{}}],["sever",{"_index":1144,"title":{},"content":{"167":{"position":[[1197,7]]}},"keywords":{}}],["severless",{"_index":1950,"title":{},"content":{"322":{"position":[[902,9],[1032,9]]},"324":{"position":[[1642,9]]}},"keywords":{}}],["shake",{"_index":2303,"title":{},"content":{"484":{"position":[[403,7]]}},"keywords":{}}],["shape",{"_index":1464,"title":{},"content":{"199":{"position":[[105,5]]},"214":{"position":[[104,5]]},"297":{"position":[[108,5]]},"320":{"position":[[117,5]]},"330":{"position":[[95,5]]}},"keywords":{}}],["shield",{"_index":2319,"title":{"493":{"position":[[9,7]]}},"content":{},"keywords":{}}],["shift",{"_index":321,"title":{},"content":{"17":{"position":[[116,7]]}},"keywords":{}}],["ship",{"_index":378,"title":{},"content":{"18":{"position":[[223,7]]}},"keywords":{}}],["short",{"_index":2188,"title":{},"content":{"373":{"position":[[324,5]]},"378":{"position":[[394,5]]},"388":{"position":[[35,5]]}},"keywords":{}}],["shortcut",{"_index":2348,"title":{},"content":{"518":{"position":[[294,8]]}},"keywords":{}}],["shortli",{"_index":1383,"title":{},"content":{"189":{"position":[[197,7]]}},"keywords":{}}],["show",{"_index":603,"title":{},"content":{"21":{"position":[[2637,5]]},"322":{"position":[[1144,5]]}},"keywords":{}}],["shown",{"_index":1663,"title":{},"content":{"248":{"position":[[451,5]]}},"keywords":{}}],["side",{"_index":1251,"title":{},"content":{"176":{"position":[[519,4]]}},"keywords":{}}],["signal",{"_index":457,"title":{},"content":{"19":{"position":[[299,6]]},"26":{"position":[[90,9]]},"28":{"position":[[91,6]]},"31":{"position":[[2320,6]]},"34":{"position":[[91,6]]},"40":{"position":[[90,9]]},"43":{"position":[[2331,6]]},"49":{"position":[[90,9]]},"52":{"position":[[188,9]]},"55":{"position":[[160,9]]},"58":{"position":[[90,9]]},"61":{"position":[[188,9]]},"64":{"position":[[188,9]]},"67":{"position":[[188,9]]},"70":{"position":[[90,9]]},"73":{"position":[[90,9]]},"76":{"position":[[91,6]]},"79":{"position":[[90,9]]},"82":{"position":[[90,9]]},"85":{"position":[[90,9]]},"88":{"position":[[91,6]]},"91":{"position":[[188,9]]},"94":{"position":[[188,9]]},"97":{"position":[[2345,6]]},"100":{"position":[[188,9]]},"103":{"position":[[188,9]]},"105":{"position":[[696,6]]},"106":{"position":[[835,6]]},"107":{"position":[[796,6]]},"110":{"position":[[218,9]]},"113":{"position":[[188,9]]},"116":{"position":[[188,9]]},"119":{"position":[[90,9]]},"122":{"position":[[360,9]]},"125":{"position":[[227,9]]},"128":{"position":[[90,9]]},"131":{"position":[[188,9]]},"134":{"position":[[90,9]]},"137":{"position":[[90,9]]},"143":{"position":[[289,9]]},"150":{"position":[[2332,6]]},"189":{"position":[[190,6],[1236,7]]},"353":{"position":[[221,9]]},"378":{"position":[[501,8]]},"520":{"position":[[158,9],[535,6]]}},"keywords":{}}],["signal.onabort",{"_index":2364,"title":{},"content":{"520":{"position":[[553,14]]}},"keywords":{}}],["signatur",{"_index":2354,"title":{},"content":{"519":{"position":[[322,10]]}},"keywords":{}}],["signer",{"_index":96,"title":{"284":{"position":[[4,6]]},"400":{"position":[[4,7]]},"440":{"position":[[4,7]]},"477":{"position":[[4,7]]},"507":{"position":[[4,7]]}},"content":{"6":{"position":[[553,6]]},"8":{"position":[[760,6]]},"106":{"position":[[119,7]]},"283":{"position":[[102,7]]},"285":{"position":[[88,6],[131,6]]},"286":{"position":[[29,8],[38,6],[202,6],[488,8]]},"287":{"position":[[67,7]]},"288":{"position":[[38,6]]}},"keywords":{}}],["signer.awsclientopt",{"_index":1834,"title":{},"content":{"286":{"position":[[138,23]]}},"keywords":{}}],["significantli",{"_index":1687,"title":{},"content":{"253":{"position":[[580,13]]}},"keywords":{}}],["silent",{"_index":1079,"title":{},"content":{"166":{"position":[[184,7]]}},"keywords":{}}],["similar",{"_index":360,"title":{},"content":{"17":{"position":[[1047,7]]},"175":{"position":[[488,7]]},"186":{"position":[[377,7]]}},"keywords":{}}],["simpl",{"_index":193,"title":{},"content":{"15":{"position":[[17,6]]},"156":{"position":[[58,6]]},"290":{"position":[[325,6]]},"324":{"position":[[995,6]]},"365":{"position":[[1190,6]]},"518":{"position":[[399,6],[898,6]]}},"keywords":{}}],["simpli",{"_index":1985,"title":{},"content":{"324":{"position":[[387,6]]}},"keywords":{}}],["simplifi",{"_index":196,"title":{},"content":{"15":{"position":[[61,8]]},"186":{"position":[[95,8]]},"282":{"position":[[367,10]]}},"keywords":{}}],["singl",{"_index":940,"title":{},"content":{"157":{"position":[[375,6],[465,6]]},"167":{"position":[[1761,6]]},"172":{"position":[[54,6]]},"328":{"position":[[251,6],[877,6]]},"330":{"position":[[1275,6]]}},"keywords":{}}],["size",{"_index":1551,"title":{},"content":{"221":{"position":[[209,5]]}},"keywords":{}}],["skip",{"_index":1641,"title":{},"content":{"244":{"position":[[154,4]]},"253":{"position":[[339,4]]},"265":{"position":[[47,4]]}},"keywords":{}}],["slow",{"_index":593,"title":{},"content":{"21":{"position":[[2439,4]]}},"keywords":{}}],["small",{"_index":365,"title":{"18":{"position":[[0,5]]}},"content":{"18":{"position":[[0,5]]},"261":{"position":[[395,5]]},"360":{"position":[[331,6]]},"518":{"position":[[75,5]]}},"keywords":{}}],["smaller",{"_index":2294,"title":{},"content":{"484":{"position":[[60,7]]}},"keywords":{}}],["smarter",{"_index":2218,"title":{},"content":{"378":{"position":[[661,7]]}},"keywords":{}}],["sn",{"_index":785,"title":{"129":{"position":[[0,3]]}},"content":{"110":{"position":[[175,3]]},"125":{"position":[[174,3]]},"130":{"position":[[30,3]]}},"keywords":{}}],["snif",{"_index":1738,"title":{},"content":{"261":{"position":[[312,8]]}},"keywords":{}}],["softwar",{"_index":875,"title":{},"content":{"152":{"position":[[42,9]]}},"keywords":{}}],["solut",{"_index":368,"title":{},"content":{"18":{"position":[[50,9]]}},"keywords":{}}],["solv",{"_index":344,"title":{},"content":{"17":{"position":[[614,6]]}},"keywords":{}}],["somesecret",{"_index":1920,"title":{},"content":{"320":{"position":[[1315,11]]}},"keywords":{}}],["someth",{"_index":188,"title":{},"content":{"13":{"position":[[136,10]]},"19":{"position":[[512,9]]},"21":{"position":[[1256,9]]},"368":{"position":[[636,10]]},"373":{"position":[[408,9]]},"414":{"position":[[39,9]]},"518":{"position":[[577,9],[647,9],[718,9]]}},"keywords":{}}],["somethingels",{"_index":2150,"title":{},"content":{"368":{"position":[[647,15]]}},"keywords":{}}],["sometim",{"_index":2344,"title":{},"content":{"518":{"position":[[19,9]]}},"keywords":{}}],["somewhat",{"_index":1691,"title":{},"content":{"253":{"position":[[683,8]]}},"keywords":{}}],["soon2021",{"_index":1006,"title":{},"content":{"161":{"position":[[412,8]]}},"keywords":{}}],["sourc",{"_index":874,"title":{},"content":{"152":{"position":[[35,6]]},"161":{"position":[[190,6],[243,6],[591,6]]},"338":{"position":[[223,6]]},"406":{"position":[[134,8]]}},"keywords":{}}],["sourcemap=extern",{"_index":62,"title":{},"content":{"5":{"position":[[328,18]]}},"keywords":{}}],["spark",{"_index":1962,"title":{},"content":{"322":{"position":[[1307,6]]}},"keywords":{}}],["special",{"_index":893,"title":{},"content":{"153":{"position":[[192,7]]}},"keywords":{}}],["specif",{"_index":964,"title":{},"content":{"159":{"position":[[389,8]]},"167":{"position":[[2011,8]]},"515":{"position":[[68,14]]}},"keywords":{}}],["specifi",{"_index":1468,"title":{},"content":{"199":{"position":[[310,7],[430,9]]},"214":{"position":[[343,7],[462,9]]},"269":{"position":[[70,7]]},"272":{"position":[[440,9]]},"297":{"position":[[306,7],[419,9]]},"320":{"position":[[313,7],[438,9]]},"330":{"position":[[306,7],[420,9]]}},"keywords":{}}],["spirit",{"_index":873,"title":{},"content":{"152":{"position":[[20,6]]}},"keywords":{}}],["sponsor",{"_index":1309,"title":{"183":{"position":[[0,10]]}},"content":{"183":{"position":[[0,10],[136,7],[178,8]]}},"keywords":{}}],["sq",{"_index":801,"title":{"141":{"position":[[0,3]]},"298":{"position":[[0,3]]},"405":{"position":[[0,3]]},"406":{"position":[[0,3]]},"444":{"position":[[0,3]]},"481":{"position":[[0,3]]},"511":{"position":[[0,3]]},"512":{"position":[[0,3]]}},"content":{"125":{"position":[[184,3]]},"142":{"position":[[30,3]]},"282":{"position":[[589,3]]},"299":{"position":[[175,3]]},"324":{"position":[[1570,3]]},"406":{"position":[[124,3]]},"512":{"position":[[17,3]]}},"keywords":{}}],["sqsbatch",{"_index":1869,"title":{},"content":{"301":{"position":[[40,8]]}},"keywords":{}}],["sqspartialbatchfailur",{"_index":835,"title":{},"content":{"143":{"position":[[104,22]]}},"keywords":{}}],["ssl",{"_index":862,"title":{},"content":{"151":{"position":[[710,4]]}},"keywords":{}}],["ssm",{"_index":106,"title":{"325":{"position":[[0,3]]},"407":{"position":[[0,4]]},"445":{"position":[[0,4]]},"482":{"position":[[0,4]]},"513":{"position":[[0,4]]}},"content":{"6":{"position":[[753,5]]},"8":{"position":[[960,5]]},"106":{"position":[[595,4],[903,4]]},"107":{"position":[[627,4],[862,3]]},"151":{"position":[[271,3]]},"326":{"position":[[127,3]]},"327":{"position":[[768,5]]},"328":{"position":[[40,3],[182,5],[582,3],[724,5],[782,4],[808,5],[1011,4]]},"329":{"position":[[41,3]]},"330":{"position":[[9,3],[113,3],[1026,4],[1182,5],[1506,4]]}},"keywords":{}}],["ssm.awsclientopt",{"_index":2013,"title":{},"content":{"327":{"position":[[148,20]]}},"keywords":{}}],["ssm:getparamet",{"_index":2017,"title":{},"content":{"327":{"position":[[1126,17]]}},"keywords":{}}],["ssm:getparametersbypath",{"_index":2019,"title":{},"content":{"327":{"position":[[1151,23]]}},"keywords":{}}],["ssmclient",{"_index":2012,"title":{},"content":{"327":{"position":[[29,11],[41,9],[209,9]]}},"keywords":{}}],["ssmmiddlewar",{"_index":756,"title":{},"content":{"106":{"position":[[196,13],[566,15]]},"107":{"position":[[219,13],[598,15]]}},"keywords":{}}],["ssmparam",{"_index":2038,"title":{},"content":{"330":{"position":[[251,8],[594,8],[934,9],[1033,8]]}},"keywords":{}}],["ssmparam<",{"_index":2042,"title":{},"content":{"330":{"position":[[1324,13]]}},"keywords":{}}],["ssmparam<paramtype>(parameterpath",{"_index":2039,"title":{},"content":{"330":{"position":[[535,40]]}},"keywords":{}}],["ssmparam<string>('/dev/service_name/access_token",{"_index":2041,"title":{},"content":{"330":{"position":[[1214,57]]}},"keywords":{}}],["st",{"_index":108,"title":{"331":{"position":[[0,3]]},"408":{"position":[[0,4]]},"446":{"position":[[0,4]]},"483":{"position":[[0,4]]},"514":{"position":[[0,4]]}},"content":{"6":{"position":[[790,4]]},"8":{"position":[[997,4]]},"106":{"position":[[671,4],[908,3]]},"311":{"position":[[785,5]]},"332":{"position":[[127,3]]},"333":{"position":[[596,5]]},"334":{"position":[[40,3],[264,5]]},"335":{"position":[[41,3]]}},"keywords":{}}],["stabl",{"_index":1346,"title":{},"content":{"187":{"position":[[121,7],[422,6],[495,6]]}},"keywords":{}}],["stack",{"_index":843,"title":{"147":{"position":[[11,5]]}},"content":{"147":{"position":[[11,5]]},"172":{"position":[[303,7]]},"175":{"position":[[1026,7]]},"353":{"position":[[307,5],[345,6],[414,5],[489,6],[548,6]]},"357":{"position":[[539,5],[577,6],[646,5],[721,6]]},"373":{"position":[[178,5],[353,5]]},"378":{"position":[[20,5]]},"388":{"position":[[64,5]]}},"keywords":{}}],["stack.pathparamet",{"_index":2083,"title":{},"content":{"357":{"position":[[780,20]]}},"keywords":{}}],["stackreturn",{"_index":2187,"title":{},"content":{"373":{"position":[[300,11]]}},"keywords":{}}],["stacksupport",{"_index":2329,"title":{},"content":{"506":{"position":[[60,12]]}},"keywords":{}}],["stackthrow",{"_index":2185,"title":{},"content":{"373":{"position":[[122,10]]}},"keywords":{}}],["stacktrac",{"_index":1941,"title":{},"content":{"322":{"position":[[466,11]]}},"keywords":{}}],["stage",{"_index":2081,"title":{},"content":{"357":{"position":[[445,8]]}},"keywords":{}}],["start",{"_index":205,"title":{"154":{"position":[[8,7]]},"370":{"position":[[22,6]]},"371":{"position":[[22,5]]}},"content":{"15":{"position":[[247,7]]},"21":{"position":[[173,5],[399,5],[594,5],[2045,5]]},"22":{"position":[[195,5],[454,5]]},"31":{"position":[[1735,5]]},"43":{"position":[[1735,5]]},"46":{"position":[[1860,5]]},"97":{"position":[[1760,5]]},"150":{"position":[[1747,5]]},"151":{"position":[[527,8]]},"161":{"position":[[11,7]]},"163":{"position":[[342,7],[714,7]]},"164":{"position":[[67,7]]},"167":{"position":[[1418,7]]},"168":{"position":[[36,5]]},"171":{"position":[[884,5]]},"172":{"position":[[549,5]]},"174":{"position":[[642,5]]},"186":{"position":[[176,7]]},"196":{"position":[[637,5]]},"207":{"position":[[633,5]]},"286":{"position":[[364,5]]},"294":{"position":[[616,5]]},"305":{"position":[[386,5]]},"311":{"position":[[665,5]]},"317":{"position":[[1110,5]]},"327":{"position":[[648,5]]},"333":{"position":[[476,5]]},"346":{"position":[[601,5]]},"357":{"position":[[243,8]]},"365":{"position":[[1180,5]]},"522":{"position":[[890,5]]}},"keywords":{}}],["start('handl",{"_index":522,"title":{},"content":{"21":{"position":[[660,16]]},"22":{"position":[[520,16]]}},"keywords":{}}],["start('tot",{"_index":514,"title":{},"content":{"21":{"position":[[437,14],[550,14]]},"22":{"position":[[342,14]]}},"keywords":{}}],["state",{"_index":1097,"title":{},"content":{"166":{"position":[[794,5]]}},"keywords":{}}],["statement",{"_index":1083,"title":{},"content":{"166":{"position":[[298,11]]},"170":{"position":[[146,11]]},"174":{"position":[[146,11]]}},"keywords":{}}],["static",{"_index":1965,"title":{},"content":{"322":{"position":[[1414,6]]}},"keywords":{}}],["statu",{"_index":1356,"title":{},"content":{"187":{"position":[[401,6]]},"229":{"position":[[340,6]]}},"keywords":{}}],["statuscod",{"_index":275,"title":{},"content":{"16":{"position":[[973,11]]},"31":{"position":[[1427,11]]},"43":{"position":[[1427,11]]},"46":{"position":[[1552,11]]},"97":{"position":[[1427,11]]},"150":{"position":[[1439,11]]},"179":{"position":[[663,11]]},"191":{"position":[[145,11]]},"197":{"position":[[279,11]]},"199":{"position":[[1100,11]]},"200":{"position":[[860,11]]},"212":{"position":[[138,11]]},"214":{"position":[[1158,11]]},"226":{"position":[[738,11]]},"229":{"position":[[245,11]]},"230":{"position":[[358,11]]},"240":{"position":[[1804,11]]},"249":{"position":[[534,11]]},"250":{"position":[[315,11]]},"258":{"position":[[162,11]]},"273":{"position":[[185,11]]},"287":{"position":[[141,11]]},"291":{"position":[[158,11]]},"295":{"position":[[154,11]]},"297":{"position":[[1107,11]]},"312":{"position":[[155,11]]},"320":{"position":[[1149,11]]},"334":{"position":[[128,11]]},"358":{"position":[[254,11],[410,11]]},"368":{"position":[[1066,14],[1121,11]]},"456":{"position":[[36,10]]},"496":{"position":[[58,10],[168,10]]},"520":{"position":[[708,11]]}},"keywords":{}}],["statuscode:500",{"_index":2325,"title":{},"content":{"503":{"position":[[16,14]]}},"keywords":{}}],["step",{"_index":353,"title":{},"content":{"17":{"position":[[915,5]]},"21":{"position":[[2383,5]]},"156":{"position":[[87,6]]},"210":{"position":[[191,5]]}},"keywords":{}}],["still",{"_index":326,"title":{},"content":{"17":{"position":[[205,5]]},"139":{"position":[[84,5]]},"153":{"position":[[468,5]]},"189":{"position":[[1086,5]]},"414":{"position":[[8,5]]}},"keywords":{}}],["stop",{"_index":504,"title":{},"content":{"21":{"position":[[238,4],[624,4]]},"22":{"position":[[260,4],[484,4]]},"153":{"position":[[110,7]]},"159":{"position":[[44,4],[207,4]]},"182":{"position":[[74,4]]},"189":{"position":[[263,4]]}},"keywords":{}}],["stop('handl",{"_index":524,"title":{},"content":{"21":{"position":[[707,15]]},"22":{"position":[[567,15]]}},"keywords":{}}],["stop('init",{"_index":518,"title":{},"content":{"21":{"position":[[528,12]]},"22":{"position":[[414,12]]}},"keywords":{}}],["stop('tot",{"_index":526,"title":{},"content":{"21":{"position":[[751,13]]},"22":{"position":[[611,13]]}},"keywords":{}}],["storag",{"_index":971,"title":{"522":{"position":[[9,7]]}},"content":{"159":{"position":[[775,7],[1488,7]]},"182":{"position":[[1005,7],[1912,7]]},"199":{"position":[[883,8]]},"214":{"position":[[935,8]]},"297":{"position":[[880,8]]},"320":{"position":[[895,8]]},"330":{"position":[[879,8]]},"375":{"position":[[171,7]]},"522":{"position":[[9,7]]}},"keywords":{}}],["storage[key",{"_index":2197,"title":{},"content":{"375":{"position":[[332,13],[383,12]]}},"keywords":{}}],["store",{"_index":500,"title":{},"content":{"21":{"position":[[156,5]]},"22":{"position":[[178,5]]},"159":{"position":[[1177,6]]},"182":{"position":[[636,6],[1482,6]]},"196":{"position":[[350,7],[1028,5]]},"199":{"position":[[26,6],[860,6]]},"207":{"position":[[346,7],[1023,5]]},"214":{"position":[[25,6],[912,6]]},"286":{"position":[[756,5]]},"294":{"position":[[329,7],[1000,5],[1120,6]]},"297":{"position":[[29,6],[857,6]]},"311":{"position":[[378,7],[1050,5]]},"317":{"position":[[353,7],[1507,5]]},"320":{"position":[[6,6],[38,6],[872,6]]},"323":{"position":[[535,6]]},"327":{"position":[[313,7],[1033,5]]},"330":{"position":[[20,6],[856,6]]},"333":{"position":[[861,5]]},"346":{"position":[[400,7]]},"409":{"position":[[25,7]]},"522":{"position":[[82,5],[220,5],[280,6]]}},"keywords":{}}],["store.config",{"_index":1261,"title":{},"content":{"178":{"position":[[127,12]]}},"keywords":{}}],["store.init",{"_index":516,"title":{},"content":{"21":{"position":[[487,13],[503,10]]},"22":{"position":[[389,10]]}},"keywords":{}}],["store.st",{"_index":1832,"title":{},"content":{"283":{"position":[[477,10]]}},"keywords":{}}],["store.tot",{"_index":517,"title":{},"content":{"21":{"position":[[516,11]]},"22":{"position":[[402,11]]}},"keywords":{}}],["store.trac",{"_index":1973,"title":{},"content":{"323":{"position":[[617,13]]}},"keywords":{}}],["store[id",{"_index":502,"title":{},"content":{"21":{"position":[[194,9]]},"22":{"position":[[216,9]]}},"keywords":{}}],["store[id]).tostr",{"_index":507,"title":{},"content":{"21":{"position":[[333,22]]}},"keywords":{}}],["store[id].end",{"_index":614,"title":{},"content":{"22":{"position":[[291,16]]}},"keywords":{}}],["stream",{"_index":140,"title":{"89":{"position":[[15,9]]},"114":{"position":[[8,7]]},"250":{"position":[[6,8]]},"307":{"position":[[0,7]]}},"content":{"8":{"position":[[499,9]]},"462":{"position":[[17,6]]}},"keywords":{}}],["streamifi",{"_index":1414,"title":{"190":{"position":[[0,9]]}},"content":{},"keywords":{}}],["streamifyrespons",{"_index":739,"title":{},"content":{"97":{"position":[[1448,18]]},"191":{"position":[[285,18]]},"192":{"position":[[217,18]]},"250":{"position":[[403,18]]}},"keywords":{}}],["street",{"_index":1714,"title":{},"content":{"258":{"position":[[259,7]]}},"keywords":{}}],["strength",{"_index":317,"title":{},"content":{"17":{"position":[[17,9]]}},"keywords":{}}],["strict",{"_index":208,"title":{},"content":{"15":{"position":[[317,6]]},"261":{"position":[[217,6]]},"366":{"position":[[283,7]]},"369":{"position":[[224,6],[319,6]]}},"keywords":{}}],["string",{"_index":286,"title":{},"content":{"16":{"position":[[1293,9],[1487,9],[1564,8]]},"166":{"position":[[239,9]]},"170":{"position":[[87,9]]},"174":{"position":[[87,9],[205,9]]},"191":{"position":[[243,6]]},"192":{"position":[[177,6]]},"196":{"position":[[289,8],[739,8]]},"199":{"position":[[516,7],[1447,8],[1478,8]]},"203":{"position":[[11,8]]},"207":{"position":[[285,8],[735,8]]},"214":{"position":[[1327,7],[1343,7],[1524,8],[1555,8]]},"221":{"position":[[75,6]]},"240":{"position":[[279,8],[369,8],[627,8],[846,8],[936,8],[1033,8],[1132,8],[1229,8]]},"253":{"position":[[227,8]]},"257":{"position":[[18,8]]},"271":{"position":[[184,6],[211,6]]},"282":{"position":[[468,6]]},"286":{"position":[[466,8]]},"290":{"position":[[172,8],[430,7],[438,6]]},"294":{"position":[[268,8],[718,8]]},"297":{"position":[[1264,7],[1280,7],[1470,8],[1501,8]]},"311":{"position":[[317,8],[767,8]]},"317":{"position":[[301,8],[1212,8]]},"320":{"position":[[1344,7],[1532,8],[1569,8],[1655,8],[1703,8]]},"327":{"position":[[257,8],[750,8]]},"330":{"position":[[506,7],[1306,7],[1344,7],[1358,6],[1441,7],[1455,8],[1681,8],[1715,7],[1729,8]]},"333":{"position":[[578,8]]},"346":{"position":[[339,8]]},"353":{"position":[[82,8]]},"357":{"position":[[84,8],[203,8]]},"365":{"position":[[658,8]]},"367":{"position":[[174,8]]},"368":{"position":[[342,8],[409,8],[1912,8],[1939,9]]}},"keywords":{}}],["string>",{"_index":1505,"title":{},"content":{"203":{"position":[[172,10],[203,13]]}},"keywords":{}}],["stringifi",{"_index":1854,"title":{},"content":{"290":{"position":[[518,9]]}},"keywords":{}}],["string|loglevel",{"_index":1077,"title":{},"content":{"166":{"position":[[84,18]]}},"keywords":{}}],["string}>('somehiddensecret",{"_index":1922,"title":{},"content":{"320":{"position":[[1362,31]]}},"keywords":{}}],["structur",{"_index":1036,"title":{"360":{"position":[[21,10]]}},"content":{"163":{"position":[[241,10]]},"164":{"position":[[79,9],[310,10],[427,9]]},"167":{"position":[[2420,9],[2501,9]]},"199":{"position":[[46,10]]},"214":{"position":[[45,10]]},"297":{"position":[[49,10]]},"320":{"position":[[58,10]]},"323":{"position":[[92,10],[193,10]]}},"keywords":{}}],["structuredclon",{"_index":2278,"title":{},"content":{"439":{"position":[[16,15]]}},"keywords":{}}],["sts.awsclientopt",{"_index":2047,"title":{},"content":{"333":{"position":[[147,20]]}},"keywords":{}}],["sts:assumerolesettocontext",{"_index":2048,"title":{},"content":{"333":{"position":[[954,26]]}},"keywords":{}}],["stsclient",{"_index":2046,"title":{},"content":{"333":{"position":[[29,11],[41,9],[208,9]]}},"keywords":{}}],["stsmiddlewar",{"_index":757,"title":{},"content":{"106":{"position":[[235,13],[642,15]]}},"keywords":{}}],["stuff",{"_index":268,"title":{},"content":{"16":{"position":[[857,5]]},"490":{"position":[[1104,5]]},"518":{"position":[[500,5]]}},"keywords":{}}],["sub",{"_index":569,"title":{},"content":{"21":{"position":[[1895,3]]}},"keywords":{}}],["sub[/sub",{"_index":407,"title":{},"content":{"18":{"position":[[793,9]]}},"keywords":{}}],["subject",{"_index":1378,"title":{},"content":{"187":{"position":[[780,7]]}},"keywords":{}}],["submit",{"_index":882,"title":{},"content":{"152":{"position":[[143,6]]}},"keywords":{}}],["submit).http",{"_index":1810,"title":{},"content":{"281":{"position":[[962,12]]}},"keywords":{}}],["subset",{"_index":1241,"title":{},"content":{"176":{"position":[[203,6]]}},"keywords":{}}],["succe",{"_index":1402,"title":{},"content":{"189":{"position":[[1092,8]]}},"keywords":{}}],["success",{"_index":271,"title":{},"content":{"16":{"position":[[912,10]]},"159":{"position":[[229,10]]},"179":{"position":[[652,10]]}},"keywords":{}}],["successfulbook",{"_index":1188,"title":{},"content":{"171":{"position":[[650,17]]}},"keywords":{}}],["such",{"_index":1156,"title":{},"content":{"167":{"position":[[1862,4],[2031,4]]},"518":{"position":[[129,4]]}},"keywords":{}}],["sudo",{"_index":857,"title":{},"content":{"151":{"position":[[506,4]]}},"keywords":{}}],["suit",{"_index":1968,"title":{},"content":{"323":{"position":[[37,5]]}},"keywords":{}}],["support",{"_index":585,"title":{"362":{"position":[[22,9]]}},"content":{"21":{"position":[[2278,7],[2768,9]]},"175":{"position":[[1106,8]]},"183":{"position":[[90,7]]},"187":{"position":[[325,7],[382,10]]},"225":{"position":[[163,9],[361,9],[559,9],[763,9],[990,9]]},"253":{"position":[[201,9]]},"305":{"position":[[637,7]]},"333":{"position":[[1005,7]]},"361":{"position":[[668,7]]},"362":{"position":[[32,8],[147,9],[264,9]]},"365":{"position":[[319,7]]},"367":{"position":[[126,7]]},"373":{"position":[[70,7],[241,7]]},"378":{"position":[[608,9]]},"384":{"position":[[5,7]]},"416":{"position":[[17,7]]},"462":{"position":[[24,8]]},"493":{"position":[[18,9]]},"495":{"position":[[22,7]]},"496":{"position":[[10,7]]},"506":{"position":[[112,7]]},"515":{"position":[[34,7]]}},"keywords":{}}],["supportpul",{"_index":2301,"title":{},"content":{"484":{"position":[[337,13]]}},"keywords":{}}],["sure",{"_index":2,"title":{},"content":{"0":{"position":[[20,4]]},"152":{"position":[[206,4]]},"155":{"position":[[138,4]]},"182":{"position":[[252,4],[366,4]]},"200":{"position":[[1195,4]]},"361":{"position":[[504,4]]}},"keywords":{}}],["swc",{"_index":164,"title":{"12":{"position":[[0,4]]}},"content":{},"keywords":{}}],["swc/cli",{"_index":111,"title":{},"content":{"7":{"position":[[10,8]]},"12":{"position":[[10,8]]}},"keywords":{}}],["swc/core",{"_index":112,"title":{},"content":{"7":{"position":[[19,9]]},"12":{"position":[[19,9]]}},"keywords":{}}],["swc/pack",{"_index":110,"title":{"7":{"position":[[0,9]]}},"content":{},"keywords":{}}],["swcrc",{"_index":167,"title":{},"content":{"12":{"position":[[97,7]]}},"keywords":{}}],["switch",{"_index":1574,"title":{},"content":{"226":{"position":[[289,6],[453,6]]},"327":{"position":[[1267,9]]},"361":{"position":[[566,6]]}},"keywords":{}}],["synchron",{"_index":1974,"title":{},"content":{"323":{"position":[[685,11]]}},"keywords":{}}],["system",{"_index":853,"title":{},"content":{"151":{"position":[[388,7]]},"200":{"position":[[1242,6]]},"283":{"position":[[451,7]]},"323":{"position":[[509,7]]}},"keywords":{}}],["t.deepequal(bodi",{"_index":1754,"title":{},"content":{"266":{"position":[[626,17]]},"277":{"position":[[411,17]]}},"keywords":{}}],["t.deepequal(respons",{"_index":1599,"title":{},"content":{"230":{"position":[[334,21]]},"240":{"position":[[1780,21]]}},"keywords":{}}],["t.is(bodi",{"_index":1646,"title":{},"content":{"245":{"position":[[559,10]]},"254":{"position":[[736,10]]}},"keywords":{}}],["t.is(context.apitoken.password",{"_index":1918,"title":{},"content":{"318":{"position":[[578,31]]}},"keywords":{}}],["t.is(context.apitoken.usernam",{"_index":1917,"title":{},"content":{"318":{"position":[[534,31]]}},"keywords":{}}],["t.is(err.messag",{"_index":2152,"title":{},"content":{"368":{"position":[[706,17],[1308,17]]}},"keywords":{}}],["t.is(response.bodi",{"_index":1781,"title":{},"content":{"273":{"position":[[743,19]]}},"keywords":{}}],["t.is(response.headers['access",{"_index":1636,"title":{},"content":{"240":{"position":[[1721,29]]},"241":{"position":[[267,29]]}},"keywords":{}}],["t.not(err",{"_index":2153,"title":{},"content":{"368":{"position":[[1291,10]]}},"keywords":{}}],["tablenam",{"_index":782,"title":{},"content":{"107":{"position":[[550,10]]},"179":{"position":[[307,10]]},"212":{"position":[[308,10]]},"214":{"position":[[1373,10]]}},"keywords":{}}],["take",{"_index":939,"title":{},"content":{"157":{"position":[[367,5]]},"163":{"position":[[685,5]]},"186":{"position":[[268,6]]},"240":{"position":[[516,4]]},"379":{"position":[[152,5]]},"406":{"position":[[21,4]]},"522":{"position":[[359,4]]}},"keywords":{}}],["target",{"_index":460,"title":{},"content":{"19":{"position":[[367,8]]}},"keywords":{}}],["target=node16",{"_index":161,"title":{},"content":{"11":{"position":[[62,13]]}},"keywords":{}}],["target=node18",{"_index":53,"title":{},"content":{"5":{"position":[[153,13]]}},"keywords":{}}],["task",{"_index":965,"title":{},"content":{"159":{"position":[[398,4]]},"322":{"position":[[449,5]]}},"keywords":{}}],["team",{"_index":1284,"title":{},"content":{"181":{"position":[[145,4]]},"521":{"position":[[740,4]]}},"keywords":{}}],["teardown",{"_index":1409,"title":{},"content":{"189":{"position":[[1406,9]]}},"keywords":{}}],["technic",{"_index":328,"title":{},"content":{"17":{"position":[[241,9],[707,9]]}},"keywords":{}}],["teeni",{"_index":1948,"title":{},"content":{"322":{"position":[[887,5],[1017,5]]},"324":{"position":[[1627,5]]}},"keywords":{}}],["term",{"_index":1205,"title":{},"content":{"172":{"position":[[467,5],[608,6]]},"183":{"position":[[107,4]]},"187":{"position":[[320,4]]}},"keywords":{}}],["termin",{"_index":1384,"title":{},"content":{"189":{"position":[[313,11]]}},"keywords":{}}],["test",{"_index":1381,"title":{"189":{"position":[[0,7]]}},"content":{"189":{"position":[[0,7],[338,5],[812,5],[896,4],[1024,5],[1220,5],[1376,5]]},"248":{"position":[[524,7]]},"369":{"position":[[38,5]]},"520":{"position":[[328,8]]}},"keywords":{}}],["text",{"_index":1676,"title":{},"content":{"249":{"position":[[389,4]]},"250":{"position":[[585,4]]}},"keywords":{}}],["text/csv",{"_index":1417,"title":{},"content":{"191":{"position":[[189,10]]}},"keywords":{}}],["text/plain",{"_index":1588,"title":{},"content":{"226":{"position":[[1028,12]]}},"keywords":{}}],["text/x",{"_index":1777,"title":{},"content":{"273":{"position":[[669,6],[688,6]]}},"keywords":{}}],["text\\/plain",{"_index":1763,"title":{},"content":{"270":{"position":[[277,16]]},"273":{"position":[[486,16]]}},"keywords":{}}],["textdecoder('utf",{"_index":1426,"title":{},"content":{"193":{"position":[[278,16]]}},"keywords":{}}],["them.import",{"_index":924,"title":{},"content":{"156":{"position":[[192,11]]}},"keywords":{}}],["thing",{"_index":731,"title":{"80":{"position":[[12,6]]}},"content":{"378":{"position":[[276,6]]}},"keywords":{}}],["third",{"_index":1928,"title":{"321":{"position":[[0,5]]}},"content":{},"keywords":{}}],["this.awsclientcaptur",{"_index":1440,"title":{},"content":{"196":{"position":[[383,21]]},"207":{"position":[[379,21]]},"294":{"position":[[362,21]]},"311":{"position":[[411,21]]},"317":{"position":[[386,21]]},"327":{"position":[[346,21]]},"346":{"position":[[433,21]]}},"keywords":{}}],["those",{"_index":1592,"title":{},"content":{"229":{"position":[[230,6]]}},"keywords":{}}],["though",{"_index":1659,"title":{},"content":{"248":{"position":[[318,6]]}},"keywords":{}}],["three",{"_index":1316,"title":{},"content":{"185":{"position":[[340,5]]}},"keywords":{}}],["through",{"_index":1248,"title":{},"content":{"176":{"position":[[432,7]]},"281":{"position":[[44,7]]},"322":{"position":[[826,7]]}},"keywords":{}}],["throughput",{"_index":2022,"title":{},"content":{"327":{"position":[[1243,10]]}},"keywords":{}}],["throw",{"_index":1213,"title":{},"content":{"174":{"position":[[510,5]]},"179":{"position":[[701,5]]},"225":{"position":[[854,5]]},"230":{"position":[[137,5]]},"240":{"position":[[1509,5]]},"244":{"position":[[159,8]]},"253":{"position":[[344,8]]},"265":{"position":[[52,8]]},"373":{"position":[[249,5],[387,6]]},"378":{"position":[[817,5],[884,5]]},"389":{"position":[[54,5]]},"406":{"position":[[158,5]]},"417":{"position":[[45,5]]},"429":{"position":[[16,5]]},"474":{"position":[[5,6]]},"520":{"position":[[43,6]]}},"keywords":{}}],["thrown",{"_index":957,"title":{},"content":{"158":{"position":[[673,6]]},"171":{"position":[[969,6]]},"189":{"position":[[651,6]]},"324":{"position":[[154,6]]},"428":{"position":[[42,6]]}},"keywords":{}}],["throwonemptymetr",{"_index":1212,"title":{},"content":{"174":{"position":[[457,19]]}},"keywords":{}}],["thu",{"_index":354,"title":{},"content":{"17":{"position":[[921,4]]}},"keywords":{}}],["time",{"_index":494,"title":{"21":{"position":[[0,5]]},"139":{"position":[[15,6]]}},"content":{"21":{"position":[[2031,4],[2051,5]]},"176":{"position":[[104,4],[278,4],[414,5],[675,5]]},"187":{"position":[[226,4]]},"189":{"position":[[221,5]]},"253":{"position":[[131,5]]},"520":{"position":[[30,5],[183,4]]}},"keywords":{}}],["time.provid",{"_index":1068,"title":{},"content":{"164":{"position":[[342,14]]}},"keywords":{}}],["timemiddi",{"_index":1957,"title":{},"content":{"322":{"position":[[1199,9]]}},"keywords":{}}],["timeout",{"_index":1392,"title":{"520":{"position":[[7,8]]}},"content":{"189":{"position":[[626,7],[1127,7]]},"322":{"position":[[529,9],[600,7]]},"378":{"position":[[574,7],[743,7]]},"520":{"position":[[7,8]]}},"keywords":{}}],["timeoutearlyinmilli",{"_index":1388,"title":{},"content":{"189":{"position":[[465,21]]},"520":{"position":[[240,20],[640,21]]}},"keywords":{}}],["timeoutearlyrespons",{"_index":656,"title":{},"content":{"31":{"position":[[1385,21]]},"43":{"position":[[1385,21]]},"46":{"position":[[1510,21]]},"97":{"position":[[1385,21]]},"150":{"position":[[1397,21]]},"189":{"position":[[574,21]]},"520":{"position":[[666,21]]}},"keywords":{}}],["timeouterror",{"_index":2272,"title":{},"content":{"417":{"position":[[71,12]]}},"keywords":{}}],["timeplugin",{"_index":498,"title":{},"content":{"21":{"position":[[64,10]]}},"keywords":{}}],["timer",{"_index":1412,"title":{},"content":{"189":{"position":[[1475,6]]}},"keywords":{}}],["timers/promis",{"_index":2285,"title":{},"content":{"455":{"position":[[55,15]]}},"keywords":{}}],["tini",{"_index":1949,"title":{},"content":{"322":{"position":[[893,4],[1023,4]]},"324":{"position":[[1633,4]]}},"keywords":{}}],["tip",{"_index":179,"title":{},"content":{"13":{"position":[[48,4]]}},"keywords":{}}],["tl",{"_index":858,"title":{},"content":{"151":{"position":[[543,3],[552,5],[1000,3]]}},"keywords":{}}],["tls.checkserveridentity(host",{"_index":867,"title":{},"content":{"151":{"position":[[803,29]]}},"keywords":{}}],["to.dimens",{"_index":1503,"title":{},"content":{"203":{"position":[[139,13]]}},"keywords":{}}],["to.languag",{"_index":2129,"title":{},"content":{"365":{"position":[[732,12]]}},"keywords":{}}],["todo",{"_index":841,"title":{},"content":{"146":{"position":[[151,4]]}},"keywords":{}}],["togeth",{"_index":380,"title":{},"content":{"18":{"position":[[246,8]]},"19":{"position":[[146,8]]},"163":{"position":[[75,8]]},"181":{"position":[[106,9]]}},"keywords":{}}],["token",{"_index":1826,"title":{},"content":{"283":{"position":[[118,5]]},"286":{"position":[[767,6]]},"324":{"position":[[1115,5]]},"327":{"position":[[302,6],[1044,6]]}},"keywords":{}}],["ton",{"_index":986,"title":{},"content":{"161":{"position":[[145,4]]}},"keywords":{}}],["top",{"_index":1287,"title":{},"content":{"181":{"position":[[205,3]]}},"keywords":{}}],["total",{"_index":572,"title":{},"content":{"21":{"position":[[1956,5],[1998,5]]},"159":{"position":[[199,7]]}},"keywords":{}}],["toward",{"_index":322,"title":{},"content":{"17":{"position":[[124,6]]}},"keywords":{}}],["trace",{"_index":1049,"title":{},"content":{"163":{"position":[[521,6]]},"167":{"position":[[1485,5],[1614,7]]},"168":{"position":[[134,7],[210,7],[294,7],[363,7]]},"170":{"position":[[225,8]]},"171":{"position":[[1136,6],[1363,5]]},"305":{"position":[[645,7]]},"323":{"position":[[155,7],[644,5]]},"324":{"position":[[709,8],[728,7]]}},"keywords":{}}],["tracer",{"_index":1162,"title":{"168":{"position":[[0,7]]}},"content":{"170":{"position":[[411,6],[418,8],[458,6]]},"171":{"position":[[43,7],[190,6],[203,8],[541,6],[832,6],[1097,6],[1269,6]]},"181":{"position":[[180,6],[305,6]]},"182":{"position":[[336,6],[408,6]]},"322":{"position":[[411,7]]}},"keywords":{}}],["tracer.captureawsv3cli",{"_index":1184,"title":{},"content":{"171":{"position":[[264,26]]}},"keywords":{}}],["tracer.putannotation('successfulbook",{"_index":1185,"title":{},"content":{"171":{"position":[[378,41]]}},"keywords":{}}],["transform",{"_index":791,"title":{"281":{"position":[[8,15]]},"282":{"position":[[9,15]]}},"content":{"121":{"position":[[1,12]]}},"keywords":{}}],["transformstream",{"_index":1894,"title":{},"content":{"307":{"position":[[239,15]]}},"keywords":{}}],["transpar",{"_index":1728,"title":{},"content":{"261":{"position":[[86,12]]}},"keywords":{}}],["transpil",{"_index":146,"title":{"9":{"position":[[0,12]]},"369":{"position":[[4,11]]},"370":{"position":[[0,9]]},"371":{"position":[[0,9]]}},"content":{"364":{"position":[[145,11]]},"365":{"position":[[1085,11]]},"366":{"position":[[1,9]]},"367":{"position":[[1,9],[225,11]]},"369":{"position":[[300,9]]},"447":{"position":[[142,11]]},"521":{"position":[[1131,11]]}},"keywords":{}}],["transpilelocal",{"_index":2146,"title":{"367":{"position":[[0,16]]}},"content":{"370":{"position":[[144,15]]},"371":{"position":[[144,15]]},"484":{"position":[[458,15]]}},"keywords":{}}],["transpilelocale(await",{"_index":2180,"title":{},"content":{"370":{"position":[[312,21],[367,21]]}},"keywords":{}}],["transpileschema",{"_index":250,"title":{"366":{"position":[[0,16]]}},"content":{"16":{"position":[[459,15]]},"368":{"position":[[114,15],[879,15],[1013,17],[1648,15]]},"370":{"position":[[127,16]]},"371":{"position":[[127,16]]},"484":{"position":[[351,15],[654,15],[679,15],[816,15]]}},"keywords":{}}],["transpileschema(eventjsonschema",{"_index":2306,"title":{},"content":{"484":{"position":[[845,32],[1074,33]]}},"keywords":{}}],["transpileschema(eventschema",{"_index":2159,"title":{},"content":{"368":{"position":[[2183,28]]},"370":{"position":[[473,29]]},"371":{"position":[[432,29]]}},"keywords":{}}],["transpileschema(schema",{"_index":311,"title":{},"content":{"16":{"position":[[1936,23]]},"368":{"position":[[486,23]]}},"keywords":{}}],["transport",{"_index":1550,"title":{},"content":{"221":{"position":[[175,9]]},"261":{"position":[[224,9]]}},"keywords":{}}],["traverse/.github",{"_index":413,"title":{},"content":{"18":{"position":[[927,16]]}},"keywords":{}}],["traverse/spec",{"_index":414,"title":{},"content":{"18":{"position":[[959,13]]}},"keywords":{}}],["travis.yml",{"_index":439,"title":{},"content":{"18":{"position":[[1407,11]]}},"keywords":{}}],["treat",{"_index":1471,"title":{},"content":{"199":{"position":[[806,5]]},"214":{"position":[[858,5]]},"297":{"position":[[803,5]]},"320":{"position":[[818,5]]},"330":{"position":[[802,5]]}},"keywords":{}}],["tree",{"_index":2302,"title":{},"content":{"484":{"position":[[398,4]]}},"keywords":{}}],["tri",{"_index":1274,"title":{},"content":{"179":{"position":[[549,3]]},"189":{"position":[[1416,3]]},"521":{"position":[[839,5]]}},"keywords":{}}],["trick",{"_index":180,"title":{},"content":{"13":{"position":[[57,6]]}},"keywords":{}}],["trickl",{"_index":2210,"title":{},"content":{"378":{"position":[[155,7]]}},"keywords":{}}],["trigger",{"_index":468,"title":{},"content":{"19":{"position":[[504,7]]},"158":{"position":[[173,9],[264,9],[362,9],[558,9],[614,9]]},"167":{"position":[[2089,9],[2292,9]]},"181":{"position":[[425,9],[622,9]]},"189":{"position":[[173,7]]},"196":{"position":[[657,7]]},"207":{"position":[[653,7]]},"286":{"position":[[384,7]]},"294":{"position":[[636,7]]},"305":{"position":[[406,7]]},"311":{"position":[[685,7]]},"317":{"position":[[1130,7]]},"327":{"position":[[668,7]]},"333":{"position":[[496,7]]},"346":{"position":[[621,7]]},"353":{"position":[[385,7]]},"357":{"position":[[617,7]]},"373":{"position":[[97,7],[151,7],[273,7]]},"378":{"position":[[323,9],[669,10],[754,7]]}},"keywords":{}}],["trip",{"_index":1549,"title":{},"content":{"221":{"position":[[170,4]]}},"keywords":{}}],["troubleshoot",{"_index":1150,"title":{},"content":{"167":{"position":[[1548,15],[2235,15]]}},"keywords":{}}],["true",{"_index":32,"title":{},"content":{"3":{"position":[[160,5],[198,5],[234,5],[397,5]]},"6":{"position":[[277,4]]},"8":{"position":[[397,4]]},"19":{"position":[[547,4]]},"21":{"position":[[51,4]]},"97":{"position":[[1467,4]]},"151":{"position":[[737,5]]},"167":{"position":[[467,5]]},"170":{"position":[[361,5],[653,5]]},"171":{"position":[[420,6],[682,5]]},"174":{"position":[[668,5]]},"181":{"position":[[845,4],[905,4]]},"182":{"position":[[1801,4],[1861,4]]},"191":{"position":[[304,4]]},"192":{"position":[[236,4]]},"200":{"position":[[620,4]]},"210":{"position":[[153,4],[241,5]]},"211":{"position":[[250,4]]},"225":{"position":[[28,5],[223,5],[421,5],[620,5],[823,5],[841,4]]},"236":{"position":[[33,5]]},"240":{"position":[[35,5],[211,4]]},"244":{"position":[[211,5]]},"250":{"position":[[422,4]]},"253":{"position":[[396,5]]},"254":{"position":[[692,4]]},"265":{"position":[[104,5]]},"291":{"position":[[735,4]]},"295":{"position":[[363,4]]},"297":{"position":[[1356,4]]},"318":{"position":[[297,4]]},"320":{"position":[[1412,4],[1614,5]]},"328":{"position":[[387,4]]},"338":{"position":[[82,4]]},"339":{"position":[[197,4]]},"365":{"position":[[596,6]]},"366":{"position":[[291,5],[330,5],[368,4]]},"369":{"position":[[231,4],[270,4],[326,4],[365,4]]},"504":{"position":[[92,6]]}},"keywords":{}}],["true)head",{"_index":1619,"title":{},"content":{"240":{"position":[[266,12]]}},"keywords":{}}],["true.capturehttpsrequest",{"_index":1178,"title":{},"content":{"170":{"position":[[246,25]]}},"keywords":{}}],["ts",{"_index":435,"title":{},"content":{"18":{"position":[[1351,4]]}},"keywords":{}}],["tsconfig.json",{"_index":26,"title":{},"content":{"3":{"position":[[45,14]]},"18":{"position":[[1356,13]]}},"keywords":{}}],["tslib",{"_index":429,"title":{},"content":{"18":{"position":[[1267,8]]}},"keywords":{}}],["two",{"_index":1314,"title":{},"content":{"185":{"position":[[18,3]]},"187":{"position":[[39,3]]},"318":{"position":[[498,3]]}},"keywords":{}}],["txt",{"_index":450,"title":{},"content":{"18":{"position":[[1539,5]]}},"keywords":{}}],["type",{"_index":284,"title":{"272":{"position":[[8,4]]}},"content":{"16":{"position":[[1199,5],[1237,5],[1287,5],[1367,5],[1425,5],[1481,5],[1558,5],[1586,5]]},"18":{"position":[[753,9]]},"31":{"position":[[1264,5],[1339,5]]},"43":{"position":[[1264,5],[1339,5]]},"97":{"position":[[1264,5],[1339,5]]},"105":{"position":[[362,5],[437,5]]},"150":{"position":[[1276,5],[1351,5]]},"191":{"position":[[182,6]]},"199":{"position":[[186,4],[222,4],[338,4],[710,4],[738,4]]},"200":{"position":[[59,7],[683,4],[1237,4],[1391,4]]},"214":{"position":[[185,4],[256,4],[371,4],[750,4],[792,4]]},"225":{"position":[[664,5],[757,5]]},"236":{"position":[[239,4]]},"244":{"position":[[185,4]]},"245":{"position":[[389,6],[474,5]]},"253":{"position":[[370,4]]},"254":{"position":[[404,6]]},"265":{"position":[[78,4]]},"266":{"position":[[479,6]]},"269":{"position":[[83,4]]},"271":{"position":[[50,4]]},"272":{"position":[[97,4],[428,5]]},"281":{"position":[[248,5],[783,4]]},"297":{"position":[[189,4],[225,4],[334,4],[695,4],[737,4]]},"299":{"position":[[125,5]]},"320":{"position":[[195,4],[231,4],[341,4],[710,4],[752,4]]},"324":{"position":[[1507,4]]},"327":{"position":[[1299,4]]},"330":{"position":[[186,4],[222,4],[334,4],[706,4],[734,4],[1297,5],[1424,6]]},"368":{"position":[[242,5],[336,5],[403,5],[1031,5],[1103,5],[1135,5],[1781,5],[1839,5],[1906,5],[1933,5],[2031,4]]},"369":{"position":[[245,5],[340,5]]},"429":{"position":[[41,4]]},"521":{"position":[[870,4]]}},"keywords":{}}],["typedef",{"_index":830,"title":{},"content":{"140":{"position":[[463,9]]}},"keywords":{}}],["typeof",{"_index":2123,"title":{},"content":{"365":{"position":[[331,6]]}},"keywords":{}}],["typereferrerpolici",{"_index":1740,"title":{},"content":{"261":{"position":[[330,18]]}},"keywords":{}}],["types/aw",{"_index":916,"title":{},"content":{"155":{"position":[[171,10],[242,10]]}},"keywords":{}}],["typescript",{"_index":22,"title":{"3":{"position":[[0,11]]},"199":{"position":[[11,11]]},"200":{"position":[[9,10]]},"214":{"position":[[11,11]]},"297":{"position":[[11,11]]},"320":{"position":[[11,11]]},"330":{"position":[[11,11]]},"521":{"position":[[5,10]]}},"content":{"3":{"position":[[10,10]]},"155":{"position":[[99,11]]},"199":{"position":[[773,10]]},"200":{"position":[[9,10],[43,10],[158,10],[971,11],[1480,11]]},"214":{"position":[[825,10]]},"297":{"position":[[770,10]]},"320":{"position":[[785,10]]},"323":{"position":[[23,11]]},"330":{"position":[[769,10]]},"416":{"position":[[57,10]]},"521":{"position":[[5,10],[758,10],[816,10],[904,10],[1143,11]]}},"keywords":{}}],["typic",{"_index":1809,"title":{},"content":{"281":{"position":[[930,10]]}},"keywords":{}}],["unabl",{"_index":2292,"title":{},"content":{"474":{"position":[[21,6]]}},"keywords":{}}],["undefin",{"_index":1438,"title":{},"content":{"196":{"position":[[204,11],[307,11],[425,11]]},"207":{"position":[[201,11],[303,11],[421,11]]},"221":{"position":[[32,11]]},"225":{"position":[[113,10],[310,10],[508,10],[710,10]]},"229":{"position":[[196,10]]},"233":{"position":[[228,11]]},"294":{"position":[[190,11],[286,11],[404,11]]},"311":{"position":[[225,11],[335,11],[453,11]]},"342":{"position":[[29,11]]},"346":{"position":[[240,11],[357,11],[475,11]]},"365":{"position":[[33,11],[184,11],[444,11]]},"366":{"position":[[215,11]]},"379":{"position":[[239,9]]},"490":{"position":[[671,10]]}},"keywords":{}}],["under",{"_index":2087,"title":{},"content":{"360":{"position":[[79,5]]}},"keywords":{}}],["understand",{"_index":1145,"title":{},"content":{"167":{"position":[[1296,10]]},"199":{"position":[[788,10]]},"200":{"position":[[1249,11]]},"214":{"position":[[840,10]]},"297":{"position":[[785,10]]},"320":{"position":[[800,10]]},"322":{"position":[[550,10]]},"330":{"position":[[784,10]]},"378":{"position":[[953,13]]}},"keywords":{}}],["unfinish",{"_index":1399,"title":{},"content":{"189":{"position":[[1039,10]]}},"keywords":{}}],["unhandl",{"_index":2276,"title":{},"content":{"428":{"position":[[25,9]]},"444":{"position":[[16,9]]}},"keywords":{}}],["uniqu",{"_index":1446,"title":{},"content":{"196":{"position":[[819,6]]},"207":{"position":[[814,6]]},"286":{"position":[[547,6]]},"294":{"position":[[791,6]]},"311":{"position":[[841,6]]},"317":{"position":[[1298,6]]},"327":{"position":[[824,6]]},"333":{"position":[[652,6]]}},"keywords":{}}],["unit",{"_index":1199,"title":{},"content":{"172":{"position":[[171,5],[501,5]]},"189":{"position":[[807,4],[1215,4]]}},"keywords":{}}],["unknown",{"_index":1217,"title":{},"content":{"175":{"position":[[242,8],[261,9]]},"199":{"position":[[191,8]]},"297":{"position":[[194,8]]},"320":{"position":[[200,8]]},"330":{"position":[[191,8]]}},"keywords":{}}],["unless",{"_index":2233,"title":{},"content":{"387":{"position":[[34,6]]},"394":{"position":[[123,6]]},"396":{"position":[[34,6]]}},"keywords":{}}],["unmanag",{"_index":906,"title":{},"content":{"153":{"position":[[749,9]]}},"keywords":{}}],["unprocess",{"_index":1601,"title":{},"content":{"230":{"position":[[381,14]]},"240":{"position":[[1827,14]]}},"keywords":{}}],["unref",{"_index":1413,"title":{},"content":{"189":{"position":[[1515,8]]}},"keywords":{}}],["up",{"_index":333,"title":{"182":{"position":[[9,2]]}},"content":{"17":{"position":[[404,2]]},"172":{"position":[[28,2]]},"182":{"position":[[266,2],[758,2],[1249,2]]},"189":{"position":[[268,2]]},"493":{"position":[[28,2]]},"520":{"position":[[197,2]]},"521":{"position":[[862,2]]}},"keywords":{}}],["updat",{"_index":901,"title":{},"content":{"153":{"position":[[546,6]]},"271":{"position":[[269,8]]},"361":{"position":[[476,8],[657,7]]},"417":{"position":[[1,7]]},"420":{"position":[[1,6]]},"439":{"position":[[1,7]]},"477":{"position":[[1,7]]},"478":{"position":[[1,7]]},"479":{"position":[[1,7]]},"480":{"position":[[1,7]]},"482":{"position":[[1,7]]},"483":{"position":[[1,7]]},"484":{"position":[[564,6]]},"487":{"position":[[1,7]]}},"keywords":{}}],["upgrad",{"_index":2084,"title":{"359":{"position":[[0,7]]},"372":{"position":[[0,7]]},"376":{"position":[[0,7]]},"415":{"position":[[0,7]]},"453":{"position":[[0,7]]}},"content":{"515":{"position":[[1,8]]}},"keywords":{}}],["upload",{"_index":1695,"title":{},"content":{"253":{"position":[[978,6]]}},"keywords":{}}],["uri",{"_index":430,"title":{},"content":{"18":{"position":[[1276,6]]}},"keywords":{}}],["url",{"_index":738,"title":{"95":{"position":[[9,3]]},"191":{"position":[[16,3]]}},"content":{"281":{"position":[[913,3],[1038,3]]}},"keywords":{}}],["url/.zuul.yml",{"_index":432,"title":{},"content":{"18":{"position":[[1298,16]]}},"keywords":{}}],["url/test.j",{"_index":433,"title":{},"content":{"18":{"position":[[1315,14]]}},"keywords":{}}],["urlencod",{"_index":647,"title":{"263":{"position":[[5,9]]},"274":{"position":[[5,9]]},"397":{"position":[[5,9]]},"398":{"position":[[5,9]]},"437":{"position":[[5,9]]},"438":{"position":[[5,9]]},"474":{"position":[[5,9]]},"475":{"position":[[5,9]]},"504":{"position":[[5,9]]},"505":{"position":[[5,9]]}},"content":{"31":{"position":[[1013,9],[1105,9]]},"43":{"position":[[1013,9],[1105,9]]},"46":{"position":[[1064,9],[1156,9]]},"97":{"position":[[1013,9],[1105,9]]},"150":{"position":[[1025,9],[1117,9]]},"264":{"position":[[89,9]]},"266":{"position":[[147,9],[510,11]]},"275":{"position":[[89,9]]},"277":{"position":[[82,9]]},"281":{"position":[[850,9],[975,9]]},"360":{"position":[[1153,9]]}},"keywords":{}}],["us",{"_index":198,"title":{"181":{"position":[[0,5]]},"200":{"position":[[0,3]]},"250":{"position":[[0,5]]}},"content":{"15":{"position":[[96,5],[124,4]]},"16":{"position":[[581,4],[745,4]]},"17":{"position":[[621,5]]},"18":{"position":[[19,5],[295,3]]},"21":{"position":[[2365,3]]},"25":{"position":[[1,5]]},"30":{"position":[[1,5]]},"31":{"position":[[1552,5],[1984,5]]},"33":{"position":[[1,5]]},"36":{"position":[[1,5]]},"39":{"position":[[1,5]]},"42":{"position":[[1,5]]},"43":{"position":[[1552,5],[1984,5]]},"45":{"position":[[1,5]]},"46":{"position":[[1677,5],[2109,5]]},"48":{"position":[[1,5]]},"51":{"position":[[1,5]]},"54":{"position":[[1,5]]},"55":{"position":[[100,3]]},"57":{"position":[[1,5]]},"60":{"position":[[1,5]]},"63":{"position":[[1,5]]},"66":{"position":[[1,5]]},"69":{"position":[[1,5]]},"72":{"position":[[1,5]]},"75":{"position":[[1,5]]},"78":{"position":[[1,5]]},"81":{"position":[[1,5]]},"84":{"position":[[1,5]]},"87":{"position":[[1,5]]},"90":{"position":[[1,5]]},"93":{"position":[[1,5]]},"96":{"position":[[1,5]]},"97":{"position":[[1577,5],[2009,5]]},"99":{"position":[[1,5]]},"102":{"position":[[1,5]]},"106":{"position":[[298,5],[462,5],[560,5],[636,5]]},"107":{"position":[[282,5],[423,5],[498,5],[592,5]]},"109":{"position":[[1,5]]},"112":{"position":[[1,5]]},"115":{"position":[[1,5]]},"118":{"position":[[1,5]]},"124":{"position":[[1,5]]},"127":{"position":[[1,5]]},"130":{"position":[[1,5]]},"133":{"position":[[1,5]]},"140":{"position":[[522,4]]},"142":{"position":[[1,5]]},"149":{"position":[[1,5]]},"150":{"position":[[1564,5],[1996,5]]},"151":{"position":[[275,5],[497,3]]},"155":{"position":[[27,3],[93,5]]},"156":{"position":[[38,5],[465,5]]},"157":{"position":[[360,6],[872,5],[943,3]]},"158":{"position":[[499,3]]},"159":{"position":[[581,3],[1446,5]]},"161":{"position":[[85,4]]},"163":{"position":[[53,4]]},"166":{"position":[[116,4],[151,3],[265,3],[282,4]]},"167":{"position":[[1529,6],[2216,6],[2460,6]]},"170":{"position":[[113,3],[130,4]]},"171":{"position":[[780,4]]},"172":{"position":[[46,5],[555,5]]},"174":{"position":[[113,3],[130,4],[236,3]]},"175":{"position":[[1225,4]]},"176":{"position":[[246,5]]},"178":{"position":[[91,4]]},"179":{"position":[[748,6]]},"181":{"position":[[9,3]]},"182":{"position":[[326,5],[497,5],[1870,5]]},"189":{"position":[[658,5],[770,5]]},"195":{"position":[[36,3]]},"197":{"position":[[98,5]]},"199":{"position":[[686,3],[934,3],[1215,5]]},"200":{"position":[[0,3],[33,4],[141,5],[498,5],[965,5],[994,3]]},"202":{"position":[[36,3]]},"204":{"position":[[332,5]]},"206":{"position":[[36,3]]},"209":{"position":[[36,3]]},"212":{"position":[[268,5]]},"214":{"position":[[726,3],[986,3]]},"216":{"position":[[36,3]]},"217":{"position":[[92,4]]},"220":{"position":[[36,3]]},"224":{"position":[[36,3]]},"226":{"position":[[824,5]]},"228":{"position":[[36,3]]},"229":{"position":[[300,5]]},"232":{"position":[[36,3]]},"235":{"position":[[36,3]]},"236":{"position":[[201,4]]},"239":{"position":[[36,3]]},"240":{"position":[[585,5]]},"243":{"position":[[36,3]]},"244":{"position":[[80,4]]},"247":{"position":[[36,3]]},"252":{"position":[[36,3]]},"253":{"position":[[58,4],[262,4],[551,5]]},"256":{"position":[[36,3]]},"257":{"position":[[91,4]]},"260":{"position":[[36,3]]},"264":{"position":[[36,3]]},"268":{"position":[[36,3]]},"269":{"position":[[32,4]]},"271":{"position":[[375,6]]},"272":{"position":[[548,3]]},"273":{"position":[[242,5]]},"275":{"position":[[36,3]]},"280":{"position":[[266,4]]},"281":{"position":[[668,4]]},"283":{"position":[[375,4]]},"285":{"position":[[36,3]]},"287":{"position":[[271,5]]},"289":{"position":[[36,3]]},"290":{"position":[[243,4]]},"291":{"position":[[578,5]]},"293":{"position":[[36,3]]},"294":{"position":[[1179,5]]},"295":{"position":[[284,5]]},"297":{"position":[[671,3],[931,3]]},"299":{"position":[[36,3]]},"304":{"position":[[36,3]]},"310":{"position":[[36,3]]},"312":{"position":[[285,5]]},"316":{"position":[[36,3]]},"317":{"position":[[843,3],[1017,3],[1630,5]]},"318":{"position":[[175,5]]},"320":{"position":[[686,3],[946,3],[1279,5]]},"322":{"position":[[1237,5]]},"324":{"position":[[84,5],[918,6]]},"326":{"position":[[36,3]]},"328":{"position":[[176,5],[718,5],[802,5]]},"330":{"position":[[682,3],[930,3],[1176,5]]},"332":{"position":[[36,3]]},"334":{"position":[[258,5]]},"337":{"position":[[36,3]]},"341":{"position":[[36,3]]},"342":{"position":[[89,4]]},"345":{"position":[[36,3]]},"346":{"position":[[834,5]]},"349":{"position":[[205,5]]},"352":{"position":[[36,3]]},"356":{"position":[[36,3]]},"357":{"position":[[379,5],[472,3]]},"360":{"position":[[419,4]]},"364":{"position":[[36,3]]},"365":{"position":[[85,4],[236,4],[496,4]]},"366":{"position":[[61,5]]},"368":{"position":[[455,5],[1443,4],[2152,5]]},"369":{"position":[[277,3],[372,3],[872,5]]},"370":{"position":[[442,5]]},"371":{"position":[[260,4],[401,5]]},"375":{"position":[[62,3]]},"377":{"position":[[109,3]]},"378":{"position":[[86,3],[638,3],[692,3]]},"386":{"position":[[71,3]]},"388":{"position":[[90,3]]},"414":{"position":[[80,13]]},"416":{"position":[[53,3],[214,5]]},"420":{"position":[[15,3]]},"425":{"position":[[1,3]]},"439":{"position":[[12,3]]},"441":{"position":[[15,3],[107,5]]},"447":{"position":[[1,3]]},"454":{"position":[[11,4]]},"477":{"position":[[12,3]]},"478":{"position":[[12,3]]},"479":{"position":[[12,3]]},"480":{"position":[[12,3]]},"482":{"position":[[12,3]]},"483":{"position":[[12,3]]},"484":{"position":[[571,3]]},"487":{"position":[[12,3]]},"490":{"position":[[898,5],[1153,5]]},"504":{"position":[[30,4]]},"507":{"position":[[40,4]]},"516":{"position":[[100,3],[200,3]]},"518":{"position":[[261,3]]},"521":{"position":[[754,3]]},"522":{"position":[[74,4],[349,6],[525,5]]}},"keywords":{}}],["usabl",{"_index":2346,"title":{},"content":{"518":{"position":[[118,7]]}},"keywords":{}}],["usag",{"_index":919,"title":{"156":{"position":[[0,6]]},"167":{"position":[[7,6]]},"171":{"position":[[7,6]]},"175":{"position":[[7,6]]},"179":{"position":[[7,6]]},"197":{"position":[[7,6]]},"199":{"position":[[0,5]]},"204":{"position":[[7,6]]},"211":{"position":[[7,6]]},"212":{"position":[[7,6]]},"214":{"position":[[0,5]]},"218":{"position":[[7,6]]},"222":{"position":[[7,6]]},"226":{"position":[[7,6]]},"230":{"position":[[7,6]]},"233":{"position":[[7,6]]},"237":{"position":[[7,6]]},"241":{"position":[[7,6]]},"245":{"position":[[7,6]]},"249":{"position":[[7,6]]},"254":{"position":[[7,6]]},"258":{"position":[[7,6]]},"262":{"position":[[7,6]]},"266":{"position":[[7,6]]},"273":{"position":[[7,6]]},"277":{"position":[[7,6]]},"287":{"position":[[7,6]]},"291":{"position":[[7,6]]},"295":{"position":[[7,6]]},"297":{"position":[[0,5]]},"301":{"position":[[7,6]]},"306":{"position":[[7,6]]},"312":{"position":[[7,6]]},"318":{"position":[[7,6]]},"320":{"position":[[0,5]]},"328":{"position":[[7,6]]},"330":{"position":[[0,5]]},"334":{"position":[[7,6]]},"339":{"position":[[7,6]]},"343":{"position":[[7,6]]},"347":{"position":[[7,6]]},"354":{"position":[[7,6]]},"358":{"position":[[7,6]]},"368":{"position":[[7,6]]}},"content":{"158":{"position":[[714,6]]},"159":{"position":[[1350,5]]},"182":{"position":[[1655,5]]},"375":{"position":[[37,6]]},"491":{"position":[[37,6]]}},"keywords":{}}],["use([middleware1",{"_index":943,"title":{},"content":{"157":{"position":[[752,20]]}},"keywords":{}}],["use(capturelambdahandler(trac",{"_index":1186,"title":{},"content":{"171":{"position":[[474,35]]},"181":{"position":[[765,34]]},"182":{"position":[[1721,34]]}},"keywords":{}}],["use(cfheadernorm",{"_index":722,"title":{},"content":{"55":{"position":[[64,28]]}},"keywords":{}}],["use(cloudwatchmetricsmiddlewar",{"_index":747,"title":{},"content":{"105":{"position":[[501,35]]}},"keywords":{}}],["use(cor",{"_index":1635,"title":{},"content":{"240":{"position":[[1611,12]]}},"keywords":{}}],["use(donotwaitforemptyeventloop",{"_index":1531,"title":{},"content":{"211":{"position":[[204,33]]}},"keywords":{}}],["use(errorlogg",{"_index":529,"title":{},"content":{"21":{"position":[[946,19]]},"22":{"position":[[808,19]]}},"keywords":{}}],["use(errorloggermiddlewar",{"_index":749,"title":{},"content":{"105":{"position":[[573,29]]}},"keywords":{}}],["use(eventlogg",{"_index":528,"title":{},"content":{"21":{"position":[[926,19]]},"22":{"position":[[788,19]]}},"keywords":{}}],["use(eventnormalizermiddlewar",{"_index":719,"title":{},"content":{"52":{"position":[[128,33]]},"61":{"position":[[128,33]]},"64":{"position":[[128,33]]},"67":{"position":[[128,33]]},"91":{"position":[[128,33]]},"94":{"position":[[128,33]]},"100":{"position":[[128,33]]},"103":{"position":[[128,33]]},"110":{"position":[[128,33]]},"113":{"position":[[128,33]]},"116":{"position":[[128,33]]},"125":{"position":[[128,33]]},"131":{"position":[[128,33]]},"143":{"position":[[198,33]]}},"keywords":{}}],["use(httpcontentencod",{"_index":1670,"title":{},"content":{"249":{"position":[[265,26]]},"250":{"position":[[461,26]]}},"keywords":{}}],["use(httpcontentencodingmiddlewar",{"_index":674,"title":{},"content":{"31":{"position":[[1946,37]]},"43":{"position":[[1946,37]]},"46":{"position":[[2071,37]]},"97":{"position":[[1971,37]]},"150":{"position":[[1958,37]]}},"keywords":{}}],["use(httpcontentnegoti",{"_index":1669,"title":{},"content":{"249":{"position":[[234,30]]},"250":{"position":[[430,30]]}},"keywords":{}}],["use(httpcor",{"_index":535,"title":{},"content":{"21":{"position":[[1124,16]]},"22":{"position":[[986,16]]}},"keywords":{}}],["use(httpcorsmiddlewar",{"_index":673,"title":{},"content":{"31":{"position":[[1919,26]]},"43":{"position":[[1919,26]]},"46":{"position":[[2044,26]]},"97":{"position":[[1944,26]]},"150":{"position":[[1931,26]]}},"keywords":{}}],["use(httperrorhandl",{"_index":312,"title":{},"content":{"16":{"position":[[1987,24]]},"226":{"position":[[1048,24]]},"240":{"position":[[1586,24]]}},"keywords":{}}],["use(httperrorhandlermiddlewar",{"_index":680,"title":{},"content":{"31":{"position":[[2257,34]]},"43":{"position":[[2268,34]]},"46":{"position":[[2323,34]]},"97":{"position":[[2282,34]]},"150":{"position":[[2269,34]]}},"keywords":{}}],["use(httpeventnorm",{"_index":530,"title":{},"content":{"21":{"position":[[966,27]]},"22":{"position":[[828,27]]}},"keywords":{}}],["use(httpeventnormalizermiddlewar",{"_index":659,"title":{},"content":{"31":{"position":[[1475,37]]},"43":{"position":[[1475,37]]},"46":{"position":[[1600,37]]},"97":{"position":[[1500,37]]},"150":{"position":[[1487,37]]}},"keywords":{}}],["use(httpheadernorm",{"_index":531,"title":{},"content":{"21":{"position":[[994,28]]},"22":{"position":[[856,28]]},"226":{"position":[[795,28]]},"237":{"position":[[188,28]]},"245":{"position":[[250,28]]},"254":{"position":[[260,28]]},"266":{"position":[[303,28]]},"358":{"position":[[612,28]]}},"keywords":{}}],["use(httpheadernormalizermiddlewar",{"_index":660,"title":{},"content":{"31":{"position":[[1513,38]]},"43":{"position":[[1513,38]]},"46":{"position":[[1638,38]]},"97":{"position":[[1538,38]]},"150":{"position":[[1525,38]]}},"keywords":{}}],["use(httpjsonbodypars",{"_index":534,"title":{},"content":{"21":{"position":[[1097,26]]},"22":{"position":[[959,26]]},"245":{"position":[[279,26]]},"368":{"position":[[2125,26]]}},"keywords":{}}],["use(httpjsonbodyparsermiddlewar",{"_index":670,"title":{},"content":{"31":{"position":[[1789,36]]},"43":{"position":[[1789,36]]},"46":{"position":[[1914,36]]},"97":{"position":[[1814,36]]},"150":{"position":[[1801,36]]},"468":{"position":[[169,36]]}},"keywords":{}}],["use(httpmultipartbodypars",{"_index":1697,"title":{},"content":{"254":{"position":[[289,31]]}},"keywords":{}}],["use(httpmultipartbodyparsermiddlewar",{"_index":671,"title":{},"content":{"31":{"position":[[1826,41]]},"43":{"position":[[1826,41]]},"46":{"position":[[1951,41]]},"97":{"position":[[1851,41]]},"150":{"position":[[1838,41]]}},"keywords":{}}],["use(httppartialresponsemiddlewar",{"_index":678,"title":{},"content":{"31":{"position":[[2160,37]]},"43":{"position":[[2171,37]]},"46":{"position":[[2285,37]]},"97":{"position":[[2185,37]]},"150":{"position":[[2172,37]]}},"keywords":{}}],["use(httpsecurityhead",{"_index":536,"title":{},"content":{"21":{"position":[[1141,27]]},"22":{"position":[[1003,27]]}},"keywords":{}}],["use(httpsecurityheadersmiddlewar",{"_index":672,"title":{},"content":{"31":{"position":[[1881,37]]},"43":{"position":[[1881,37]]},"46":{"position":[[2006,37]]},"97":{"position":[[1906,37]]},"150":{"position":[[1893,37]]}},"keywords":{}}],["use(httpurlencodebodypars",{"_index":533,"title":{},"content":{"21":{"position":[[1065,31]]},"22":{"position":[[927,31]]},"266":{"position":[[332,31]]}},"keywords":{}}],["use(httpurlencodebodyparsermiddlewar",{"_index":669,"title":{},"content":{"31":{"position":[[1747,41]]},"43":{"position":[[1747,41]]},"46":{"position":[[1872,41]]},"97":{"position":[[1772,41]]},"150":{"position":[[1759,41]]}},"keywords":{}}],["use(httpurlencodepathparameterspars",{"_index":532,"title":{},"content":{"21":{"position":[[1023,41]]},"22":{"position":[[885,41]]}},"keywords":{}}],["use(httpurlencodepathparametersparsermiddlewar",{"_index":667,"title":{},"content":{"31":{"position":[[1680,51]]},"43":{"position":[[1680,51]]},"46":{"position":[[1805,51]]},"97":{"position":[[1705,51]]},"150":{"position":[[1692,51]]}},"keywords":{}}],["use(injectlambdacontext(logg",{"_index":1108,"title":{},"content":{"167":{"position":[[357,34]]},"181":{"position":[[800,32]]},"182":{"position":[[1756,32]]}},"keywords":{}}],["use(inputoutputloggermiddlewar",{"_index":748,"title":{},"content":{"105":{"position":[[537,35]]}},"keywords":{}}],["use(jsonbodypars",{"_index":304,"title":{},"content":{"16":{"position":[[1810,22]]}},"keywords":{}}],["use(logmetrics(metr",{"_index":1221,"title":{},"content":{"175":{"position":[[408,26]]},"181":{"position":[[854,24]]},"182":{"position":[[1810,24]]}},"keywords":{}}],["use(middleware1",{"_index":936,"title":{},"content":{"157":{"position":[[274,19]]}},"keywords":{}}],["use(middleware2",{"_index":937,"title":{},"content":{"157":{"position":[[294,19]]}},"keywords":{}}],["use(middleware3",{"_index":938,"title":{},"content":{"157":{"position":[[314,19]]}},"keywords":{}}],["use(rdssign",{"_index":479,"title":{},"content":{"19":{"position":[[769,20]]}},"keywords":{}}],["use(s3objectresponsemiddlewar",{"_index":797,"title":{},"content":{"122":{"position":[[204,33]]}},"keywords":{}}],["use(secretsmanag",{"_index":480,"title":{},"content":{"19":{"position":[[790,25]]}},"keywords":{}}],["use(somemiddlewar",{"_index":931,"title":{},"content":{"156":{"position":[[484,22]]}},"keywords":{}}],["use(sqspartialbatchfailur",{"_index":838,"title":{},"content":{"143":{"position":[[232,30]]}},"keywords":{}}],["use(ssm",{"_index":478,"title":{},"content":{"19":{"position":[[754,14]]}},"keywords":{}}],["use(st",{"_index":477,"title":{},"content":{"19":{"position":[[739,14]]}},"keywords":{}}],["use(valid",{"_index":309,"title":{},"content":{"16":{"position":[[1906,16]]},"368":{"position":[[1188,16]]}},"keywords":{}}],["use(validator({eventschema",{"_index":537,"title":{},"content":{"21":{"position":[[1169,30]]},"22":{"position":[[1031,30]]}},"keywords":{}}],["use(validatormiddlewar",{"_index":679,"title":{},"content":{"31":{"position":[[2198,26]]},"43":{"position":[[2209,26]]},"97":{"position":[[2223,26]]},"105":{"position":[[603,26]]},"150":{"position":[[2210,26]]},"484":{"position":[[765,26],[1034,26]]}},"keywords":{}}],["use(validatormiddleware({eventschema",{"_index":2073,"title":{},"content":{"354":{"position":[[216,38],[355,38]]},"358":{"position":[[162,38],[318,38]]}},"keywords":{}}],["use(warmup",{"_index":2058,"title":{},"content":{"339":{"position":[[233,13]]}},"keywords":{}}],["use(warmupmiddlewar",{"_index":658,"title":{},"content":{"31":{"position":[[1450,24]]},"43":{"position":[[1450,24]]},"46":{"position":[[1575,24]]},"97":{"position":[[1475,24]]},"105":{"position":[[476,24]]},"150":{"position":[[1462,24]]}},"keywords":{}}],["use(wsjsonbodyparsermiddlewar",{"_index":696,"title":{},"content":{"37":{"position":[[613,34]]},"343":{"position":[[252,34]]}},"keywords":{}}],["use(wsresponsemiddlewar",{"_index":697,"title":{},"content":{"37":{"position":[[648,28]]},"343":{"position":[[287,28]]},"354":{"position":[[620,28]]}},"keywords":{}}],["use.wrap",{"_index":925,"title":{},"content":{"156":{"position":[[246,8]]}},"keywords":{}}],["used.plugin",{"_index":2334,"title":{},"content":{"515":{"position":[[248,11]]}},"keywords":{}}],["usedefault",{"_index":2145,"title":{},"content":{"366":{"position":[[336,12]]}},"keywords":{}}],["user",{"_index":711,"title":{},"content":{"46":{"position":[[1445,8]]},"153":{"position":[[666,5]]},"185":{"position":[[824,5]]},"233":{"position":[[161,4],[223,4]]},"253":{"position":[[960,5]]},"330":{"position":[[1338,5],[1434,6],[1707,7]]},"358":{"position":[[547,8]]},"521":{"position":[[915,5]]}},"keywords":{}}],["user.j",{"_index":706,"title":{},"content":{"46":{"position":[[1271,8],[1335,8]]}},"keywords":{}}],["user.nam",{"_index":1850,"title":{},"content":{"290":{"position":[[401,10]]}},"keywords":{}}],["user/{id",{"_index":709,"title":{},"content":{"46":{"position":[[1384,13]]},"358":{"position":[[486,13]]}},"keywords":{}}],["userland",{"_index":2111,"title":{},"content":{"361":{"position":[[728,8]]}},"keywords":{}}],["usernam",{"_index":764,"title":{},"content":{"106":{"position":[[420,9]]},"287":{"position":[[373,9]]},"318":{"position":[[508,10],[566,11]]}},"keywords":{}}],["users.[].namemask",{"_index":1851,"title":{},"content":{"290":{"position":[[412,17]]}},"keywords":{}}],["users.s3",{"_index":1827,"title":{},"content":{"283":{"position":[[155,9]]}},"keywords":{}}],["usr/bin/env",{"_index":2162,"title":{},"content":{"369":{"position":[[63,14]]}},"keywords":{}}],["usual",{"_index":921,"title":{},"content":{"156":{"position":[[125,6]]},"515":{"position":[[220,7]]}},"keywords":{}}],["utf",{"_index":1675,"title":{},"content":{"249":{"position":[[383,3]]},"250":{"position":[[579,3]]},"392":{"position":[[46,3]]}},"keywords":{}}],["utf8",{"_index":1685,"title":{},"content":{"253":{"position":[[245,6]]}},"keywords":{}}],["util",{"_index":144,"title":{"181":{"position":[[15,10]]},"188":{"position":[[0,9]]},"379":{"position":[[0,5]]},"418":{"position":[[0,5]]},"456":{"position":[[0,5]]}},"content":{"8":{"position":[[567,7]]},"163":{"position":[[31,9],[189,9]]},"167":{"position":[[1258,8],[1634,7]]},"171":{"position":[[548,7],[839,7],[1276,7]]},"172":{"position":[[573,8]]},"175":{"position":[[1098,7]]},"181":{"position":[[33,9]]},"182":{"position":[[227,10],[273,9],[343,8],[515,8],[597,7],[769,9],[1267,9]]},"188":{"position":[[0,9]]},"199":{"position":[[264,7]]},"214":{"position":[[297,7]]},"281":{"position":[[175,9]]},"297":{"position":[[260,7]]},"320":{"position":[[267,7]]},"323":{"position":[[46,9],[417,7],[631,9]]},"324":{"position":[[1666,7]]},"330":{"position":[[260,7]]}},"keywords":{}}],["utilitymiddi",{"_index":1951,"title":{},"content":{"322":{"position":[[926,12],[1056,12]]}},"keywords":{}}],["uuid/bin",{"_index":434,"title":{},"content":{"18":{"position":[[1330,11]]}},"keywords":{}}],["v0",{"_index":1376,"title":{},"content":{"187":{"position":[[723,2]]}},"keywords":{}}],["v0.2.1",{"_index":996,"title":{},"content":{"161":{"position":[[294,6]]}},"keywords":{}}],["v1",{"_index":1372,"title":{},"content":{"187":{"position":[[676,2]]}},"keywords":{}}],["v1.0.0",{"_index":999,"title":{},"content":{"161":{"position":[[326,6]]}},"keywords":{}}],["v1.x",{"_index":2190,"title":{},"content":{"373":{"position":[[372,4]]}},"keywords":{}}],["v10",{"_index":2320,"title":{},"content":{"493":{"position":[[39,4]]}},"keywords":{}}],["v12",{"_index":242,"title":{},"content":{"16":{"position":[[262,4]]}},"keywords":{}}],["v14",{"_index":240,"title":{},"content":{"16":{"position":[[201,4]]}},"keywords":{}}],["v2",{"_index":790,"title":{},"content":{"118":{"position":[[78,2]]},"168":{"position":[[310,2]]},"187":{"position":[[629,2]]}},"keywords":{}}],["v2.0.0",{"_index":1004,"title":{},"content":{"161":{"position":[[398,6],[428,6]]}},"keywords":{}}],["v2.x",{"_index":2249,"title":{},"content":{"401":{"position":[[43,4]]},"405":{"position":[[43,4]]}},"keywords":{}}],["v3",{"_index":1174,"title":{},"content":{"168":{"position":[[317,2]]},"187":{"position":[[582,2]]},"189":{"position":[[150,3]]},"401":{"position":[[64,2]]},"405":{"position":[[64,2]]},"454":{"position":[[24,2]]},"477":{"position":[[24,2]]},"478":{"position":[[24,2]]},"479":{"position":[[24,2]]},"480":{"position":[[24,2]]},"482":{"position":[[24,2]]},"483":{"position":[[24,2]]},"487":{"position":[[24,2]]}},"keywords":{}}],["v3.0.0",{"_index":1013,"title":{},"content":{"161":{"position":[[493,6]]}},"keywords":{}}],["v4",{"_index":1367,"title":{},"content":{"187":{"position":[[535,2]]}},"keywords":{}}],["v4.0.0",{"_index":1017,"title":{},"content":{"161":{"position":[[520,6]]}},"keywords":{}}],["v5",{"_index":1364,"title":{},"content":{"187":{"position":[[492,2]]},"416":{"position":[[68,2]]}},"keywords":{}}],["v5.0.0",{"_index":1024,"title":{},"content":{"161":{"position":[[617,6]]}},"keywords":{}}],["v6.0.0",{"_index":1026,"title":{},"content":{"161":{"position":[[644,6]]}},"keywords":{}}],["valid",{"_index":216,"title":{"363":{"position":[[0,9]]},"409":{"position":[[0,10]]},"447":{"position":[[0,10]]},"484":{"position":[[0,10]]},"515":{"position":[[0,10]]}},"content":{"15":{"position":[[433,11]]},"16":{"position":[[416,9],[1114,10],[1967,9]]},"17":{"position":[[307,11]]},"21":{"position":[[2091,9],[2218,12],[2250,9]]},"31":{"position":[[1160,11]]},"43":{"position":[[1160,11]]},"97":{"position":[[1160,11]]},"105":{"position":[[258,11]]},"150":{"position":[[1172,11]]},"272":{"position":[[600,8]]},"281":{"position":[[1080,9]]},"322":{"position":[[139,9],[1280,10]]},"324":{"position":[[258,10],[287,10],[1494,8]]},"365":{"position":[[62,9],[93,8],[213,9],[244,8],[355,10],[473,9],[504,8]]},"368":{"position":[[19,11],[71,9],[317,10],[461,11],[745,12],[784,11],[836,9],[1350,12],[1491,11],[1605,9],[2081,8],[2158,11]]},"369":{"position":[[198,8],[214,5],[654,9],[878,11]]},"370":{"position":[[84,9],[448,11]]},"371":{"position":[[84,9],[407,11]]}},"keywords":{}}],["validator@iress/middi",{"_index":1964,"title":{},"content":{"322":{"position":[[1323,21]]}},"keywords":{}}],["validatormiddlewar",{"_index":649,"title":{},"content":{"31":{"position":[[1135,19]]},"43":{"position":[[1135,19]]},"97":{"position":[[1135,19]]},"105":{"position":[[233,19]]},"150":{"position":[[1147,19]]},"354":{"position":[[141,19]]},"358":{"position":[[91,19]]},"484":{"position":[[597,19],[891,19]]}},"keywords":{}}],["validatormiddlewareaft",{"_index":557,"title":{},"content":{"21":{"position":[[1676,24]]}},"keywords":{}}],["validatormiddlewarebefor",{"_index":554,"title":{},"content":{"21":{"position":[[1618,25]]}},"keywords":{}}],["valu",{"_index":465,"title":{},"content":{"19":{"position":[[460,6],[534,5],[622,6],[870,7],[997,8],[1132,8],[1156,7],[1345,8]]},"55":{"position":[[128,5]]},"151":{"position":[[968,6]]},"159":{"position":[[1041,5]]},"161":{"position":[[568,6]]},"166":{"position":[[176,7]]},"171":{"position":[[676,5]]},"172":{"position":[[177,7]]},"175":{"position":[[1156,5]]},"182":{"position":[[1346,5]]},"183":{"position":[[30,5]]},"214":{"position":[[786,5]]},"240":{"position":[[300,5],[390,5],[867,5],[957,5],[1054,5],[1153,5],[1250,5]]},"272":{"position":[[632,6]]},"290":{"position":[[464,6]]},"297":{"position":[[731,5]]},"302":{"position":[[5,5]]},"317":{"position":[[881,5]]},"320":{"position":[[746,5]]},"323":{"position":[[493,6]]},"328":{"position":[[258,5],[318,7],[884,5],[943,7]]},"330":{"position":[[45,7],[1282,5],[1417,6]]},"375":{"position":[[368,6],[398,5]]},"378":{"position":[[858,6]]},"414":{"position":[[132,6]]},"520":{"position":[[433,5]]},"522":{"position":[[88,6],[875,6],[1106,6],[1237,5],[1317,6]]}},"keywords":{}}],["values.node_env",{"_index":2263,"title":{},"content":{"414":{"position":[[205,15]]}},"keywords":{}}],["values.podspec",{"_index":427,"title":{},"content":{"18":{"position":[[1229,14]]}},"keywords":{}}],["values/android",{"_index":423,"title":{},"content":{"18":{"position":[[1071,14]]}},"keywords":{}}],["values/index.web.j",{"_index":425,"title":{},"content":{"18":{"position":[[1151,19]]}},"keywords":{}}],["values/io",{"_index":424,"title":{},"content":{"18":{"position":[[1113,10]]}},"keywords":{}}],["values/react",{"_index":426,"title":{},"content":{"18":{"position":[[1198,12]]}},"keywords":{}}],["values[internalkey",{"_index":2385,"title":{},"content":{"522":{"position":[[974,19]]}},"keywords":{}}],["variabl",{"_index":6,"title":{},"content":{"0":{"position":[[58,8]]},"21":{"position":[[2825,8]]},"357":{"position":[[260,9]]}},"keywords":{}}],["variablessq",{"_index":2010,"title":{},"content":{"324":{"position":[[1529,12]]}},"keywords":{}}],["variou",{"_index":1497,"title":{},"content":{"200":{"position":[[1322,7]]}},"keywords":{}}],["verbos",{"_index":954,"title":{},"content":{"158":{"position":[[505,7]]}},"keywords":{}}],["veri",{"_index":192,"title":{},"content":{"15":{"position":[[12,4],[255,4]]},"17":{"position":[[363,4]]},"152":{"position":[[64,4]]},"156":{"position":[[53,4]]},"518":{"position":[[70,4]]},"520":{"position":[[422,4]]}},"keywords":{}}],["verifi",{"_index":854,"title":{},"content":{"151":{"position":[[427,6]]}},"keywords":{}}],["version",{"_index":1355,"title":{"322":{"position":[[0,7]]},"323":{"position":[[0,7]]},"324":{"position":[[0,7]]}},"content":{"187":{"position":[[393,7]]},"244":{"position":[[253,8]]},"253":{"position":[[438,8]]},"265":{"position":[[146,8]]},"360":{"position":[[1,7]]},"361":{"position":[[590,7]]},"362":{"position":[[1,7],[49,8],[79,8],[274,8]]}},"keywords":{}}],["vesper",{"_index":1338,"title":{},"content":{"186":{"position":[[356,6]]}},"keywords":{}}],["vgaltesgolang",{"_index":1337,"title":{},"content":{"186":{"position":[[336,14]]}},"keywords":{}}],["via",{"_index":1065,"title":{},"content":{"164":{"position":[[242,3]]},"168":{"position":[[228,3],[320,3]]},"272":{"position":[[236,3]]},"323":{"position":[[347,3]]},"516":{"position":[[362,3]]}},"keywords":{}}],["volum",{"_index":1688,"title":{},"content":{"253":{"position":[[598,7]]}},"keywords":{}}],["voxel.middynet",{"_index":1336,"title":{},"content":{"186":{"position":[[321,14]]}},"keywords":{}}],["vpc",{"_index":844,"title":{"148":{"position":[[0,3]]}},"content":{"149":{"position":[[30,3]]}},"keywords":{}}],["wait",{"_index":571,"title":{"208":{"position":[[7,4]]},"382":{"position":[[7,4]]},"422":{"position":[[7,4]]},"459":{"position":[[7,4]]},"492":{"position":[[7,4]]}},"content":{"21":{"position":[[1945,5]]},"139":{"position":[[131,4]]},"209":{"position":[[91,4]]},"211":{"position":[[87,4]]},"280":{"position":[[107,4]]},"360":{"position":[[570,4]]}},"keywords":{}}],["want",{"_index":472,"title":{},"content":{"19":{"position":[[610,4]]},"21":{"position":[[2357,4]]},"140":{"position":[[62,4]]},"144":{"position":[[61,4]]},"145":{"position":[[53,4]]},"146":{"position":[[69,4]]},"147":{"position":[[65,4]]},"151":{"position":[[86,4],[419,4]]},"155":{"position":[[125,4]]},"156":{"position":[[238,4]]},"159":{"position":[[116,4]]},"167":{"position":[[1578,4],[1826,4],[1974,4],[2265,4],[2476,4]]},"181":{"position":[[398,4]]},"188":{"position":[[58,4]]},"189":{"position":[[56,4]]},"229":{"position":[[144,4]]},"253":{"position":[[926,4]]},"269":{"position":[[91,7]]},"271":{"position":[[389,4]]},"518":{"position":[[33,4]]},"520":{"position":[[304,4]]}},"keywords":{}}],["ware",{"_index":1989,"title":{},"content":{"324":{"position":[[535,5]]}},"keywords":{}}],["warm",{"_index":1797,"title":{},"content":{"280":{"position":[[278,4]]},"324":{"position":[[661,4]]}},"keywords":{}}],["warmup",{"_index":651,"title":{"336":{"position":[[0,6]]},"410":{"position":[[0,7]]},"448":{"position":[[0,7]]},"485":{"position":[[0,7]]},"516":{"position":[[0,7]]}},"content":{"31":{"position":[[1201,8]]},"43":{"position":[[1201,8]]},"46":{"position":[[1208,8]]},"97":{"position":[[1201,8]]},"105":{"position":[[299,8]]},"146":{"position":[[181,6]]},"150":{"position":[[1213,8]]},"324":{"position":[[612,7]]},"338":{"position":[[113,6],[264,7]]},"339":{"position":[[44,6]]},"516":{"position":[[324,8],[366,6],[393,8]]}},"keywords":{}}],["warmupmiddlewar",{"_index":650,"title":{},"content":{"31":{"position":[[1179,16]]},"43":{"position":[[1179,16]]},"46":{"position":[[1186,16]]},"97":{"position":[[1179,16]]},"105":{"position":[[277,16]]},"150":{"position":[[1191,16]]}},"keywords":{}}],["warn",{"_index":1081,"title":{},"content":{"166":{"position":[[205,5]]}},"keywords":{}}],["watch",{"_index":715,"title":{"50":{"position":[[6,5]]}},"content":{},"keywords":{}}],["way",{"_index":221,"title":{},"content":{"15":{"position":[[491,3]]},"16":{"position":[[549,3]]},"183":{"position":[[155,3]]},"185":{"position":[[641,3]]},"199":{"position":[[769,3]]},"214":{"position":[[821,3]]},"240":{"position":[[253,3]]},"272":{"position":[[28,3]]},"290":{"position":[[332,3]]},"297":{"position":[[766,3]]},"320":{"position":[[781,3]]},"330":{"position":[[765,3]]}},"keywords":{}}],["we'v",{"_index":2293,"title":{},"content":{"484":{"position":[[1,5]]}},"keywords":{}}],["web",{"_index":199,"title":{},"content":{"15":{"position":[[129,3]]},"17":{"position":[[545,3]]},"324":{"position":[[1111,3]]}},"keywords":{}}],["webkitformboundaryppsqewf2bvjece0m",{"_index":1700,"title":{},"content":{"254":{"position":[[446,35]]}},"keywords":{}}],["webpack",{"_index":116,"title":{"8":{"position":[[0,8]]}},"content":{"8":{"position":[[10,7],[22,7]]}},"keywords":{}}],["webpack.config.mj",{"_index":119,"title":{},"content":{"8":{"position":[[58,19]]}},"keywords":{}}],["websocket",{"_index":682,"title":{"35":{"position":[[12,11]]}},"content":{"36":{"position":[[54,9]]},"281":{"position":[[1194,9]]},"282":{"position":[[635,9]]},"361":{"position":[[129,9],[262,9]]},"377":{"position":[[5,9],[37,9]]},"411":{"position":[[23,9]]},"412":{"position":[[25,9]]}},"keywords":{}}],["welcom",{"_index":877,"title":{},"content":{"152":{"position":[[69,7]]}},"keywords":{}}],["well",{"_index":773,"title":{"107":{"position":[[48,5]]}},"content":{"175":{"position":[[1142,4]]},"317":{"position":[[1694,5]]},"360":{"position":[[231,5]]}},"keywords":{}}],["west",{"_index":1113,"title":{},"content":{"167":{"position":[[523,4],[585,4],[787,4]]}},"keywords":{}}],["what'",{"_index":1469,"title":{},"content":{"199":{"position":[[318,6]]},"214":{"position":[[351,6]]},"297":{"position":[[314,6]]},"320":{"position":[[321,6]]},"330":{"position":[[314,6]]}},"keywords":{}}],["whether",{"_index":1094,"title":{},"content":{"166":{"position":[[671,7],[766,7]]},"167":{"position":[[1381,7]]},"170":{"position":[[207,7],[283,7],[572,7]]},"174":{"position":[[499,7],[614,7]]},"221":{"position":[[44,7]]}},"keywords":{}}],["whichev",{"_index":1910,"title":{},"content":{"317":{"position":[[945,9]]}},"keywords":{}}],["whole",{"_index":959,"title":{},"content":{"159":{"position":[[53,5]]},"182":{"position":[[83,5]]}},"keywords":{}}],["wildcard",{"_index":2078,"title":{},"content":{"357":{"position":[[278,9]]}},"keywords":{}}],["willfarrell2021",{"_index":1003,"title":{},"content":{"161":{"position":[[380,17]]}},"keywords":{}}],["window",{"_index":1244,"title":{},"content":{"176":{"position":[[283,6]]}},"keywords":{}}],["windowensur",{"_index":1239,"title":{},"content":{"176":{"position":[[109,12]]}},"keywords":{}}],["winter@sharecov",{"_index":1991,"title":{},"content":{"324":{"position":[[673,17]]}},"keywords":{}}],["within",{"_index":833,"title":{},"content":{"140":{"position":[[580,6]]},"158":{"position":[[112,6]]},"186":{"position":[[134,6]]},"506":{"position":[[85,6]]}},"keywords":{}}],["without",{"_index":805,"title":{"139":{"position":[[26,7]]}},"content":{"203":{"position":[[360,7]]},"229":{"position":[[237,7]]},"294":{"position":[[1127,7]]},"322":{"position":[[771,7]]}},"keywords":{}}],["won't",{"_index":966,"title":{},"content":{"159":{"position":[[478,5]]},"368":{"position":[[362,5],[374,5]]}},"keywords":{}}],["word",{"_index":228,"title":{},"content":{"16":{"position":[[28,6]]}},"keywords":{}}],["work",{"_index":620,"title":{"184":{"position":[[7,5]]}},"content":{"27":{"position":[[1,7]]},"140":{"position":[[37,4]]},"144":{"position":[[36,4]]},"145":{"position":[[28,4]]},"146":{"position":[[44,4]]},"147":{"position":[[40,4]]},"151":{"position":[[61,4]]},"182":{"position":[[202,4]]},"188":{"position":[[33,4]]},"189":{"position":[[31,4]]},"322":{"position":[[97,7]]},"324":{"position":[[568,5],[1451,5]]},"484":{"position":[[20,4]]},"516":{"position":[[24,4],[169,4]]},"518":{"position":[[387,4]]},"520":{"position":[[94,4]]}},"keywords":{}}],["workaround",{"_index":1885,"title":{},"content":{"305":{"position":[[679,11]]},"468":{"position":[[83,11]]}},"keywords":{}}],["worker",{"_index":1400,"title":{},"content":{"189":{"position":[[1050,6],[1279,6]]}},"keywords":{}}],["workmail",{"_index":803,"title":{"135":{"position":[[0,8]]}},"content":{"136":{"position":[[35,8]]}},"keywords":{}}],["world",{"_index":1459,"title":{},"content":{"197":{"position":[[348,6]]},"199":{"position":[[1169,6]]},"212":{"position":[[207,6]]},"214":{"position":[[1227,6]]},"226":{"position":[[444,6]]},"273":{"position":[[169,6]]},"287":{"position":[[210,6]]},"291":{"position":[[227,6]]},"295":{"position":[[223,6]]},"297":{"position":[[1176,6]]},"312":{"position":[[224,6]]},"320":{"position":[[1218,6]]},"334":{"position":[[197,6]]}},"keywords":{}}],["world</message>",{"_index":1783,"title":{},"content":{"273":{"position":[[785,23]]}},"keywords":{}}],["worri",{"_index":2110,"title":{},"content":{"361":{"position":[[706,5]]}},"keywords":{}}],["wrap",{"_index":1385,"title":{},"content":{"189":{"position":[[364,7]]},"199":{"position":[[532,4]]},"214":{"position":[[574,4]]},"297":{"position":[[531,4]]},"320":{"position":[[550,4]]},"324":{"position":[[845,5]]},"330":{"position":[[522,4]]},"484":{"position":[[798,4]]}},"keywords":{}}],["wrapnumb",{"_index":1546,"title":{},"content":{"221":{"position":[[1,11]]}},"keywords":{}}],["wrapper",{"_index":1044,"title":{},"content":{"163":{"position":[[437,7]]},"324":{"position":[[554,7]]}},"keywords":{}}],["write",{"_index":325,"title":{},"content":{"17":{"position":[[182,7]]},"156":{"position":[[95,5]]},"157":{"position":[[975,7]]},"182":{"position":[[164,7]]},"189":{"position":[[330,7]]},"200":{"position":[[1450,5]]},"283":{"position":[[228,5]]},"517":{"position":[[85,5]]},"521":{"position":[[49,5]]}},"keywords":{}}],["written",{"_index":348,"title":{},"content":{"17":{"position":[[827,7]]}},"keywords":{}}],["ws",{"_index":2059,"title":{"340":{"position":[[0,2]]},"344":{"position":[[0,2]]},"351":{"position":[[0,2]]},"411":{"position":[[0,2]]},"412":{"position":[[0,2]]},"413":{"position":[[0,2]]},"449":{"position":[[0,2]]},"450":{"position":[[0,2]]},"451":{"position":[[0,2]]},"486":{"position":[[0,2]]},"487":{"position":[[0,2]]},"488":{"position":[[0,2]]}},"content":{},"keywords":{}}],["wsjsonbodyparsermiddlewar",{"_index":683,"title":{},"content":{"37":{"position":[[40,26]]},"343":{"position":[[40,26]]}},"keywords":{}}],["wsrespons",{"_index":2068,"title":{},"content":{"348":{"position":[[40,10]]},"349":{"position":[[40,10],[211,12]]}},"keywords":{}}],["wsresponsemiddlewar",{"_index":684,"title":{},"content":{"37":{"position":[[108,20]]},"343":{"position":[[108,20]]},"354":{"position":[[87,20]]}},"keywords":{}}],["wsrouterhandl",{"_index":685,"title":{},"content":{"37":{"position":[[162,15]]},"354":{"position":[[40,15]]}},"keywords":{}}],["www",{"_index":1751,"title":{},"content":{"266":{"position":[[501,3]]}},"keywords":{}}],["x",{"_index":1046,"title":{},"content":{"163":{"position":[[456,1]]},"167":{"position":[[1479,1]]},"168":{"position":[[328,1]]},"171":{"position":[[1040,1]]},"182":{"position":[[469,1]]},"261":{"position":[[256,1]]},"323":{"position":[[172,1]]},"324":{"position":[[722,1]]},"327":{"position":[[111,1],[402,1]]},"379":{"position":[[74,1]]}},"keywords":{}}],["xray",{"_index":796,"title":{},"content":{"122":{"position":[[158,4]]},"196":{"position":[[123,6],[444,4],[488,4]]},"207":{"position":[[121,6],[440,4],[484,4]]},"286":{"position":[[105,6]]},"294":{"position":[[109,6],[423,4],[467,4]]},"305":{"position":[[109,6],[279,4],[323,4],[722,4]]},"311":{"position":[[137,6],[472,4],[516,4]]},"317":{"position":[[133,6],[438,4],[482,4]]},"324":{"position":[[704,4]]},"327":{"position":[[447,4]]},"333":{"position":[[111,6],[283,4],[327,4]]},"346":{"position":[[145,6],[494,4],[538,4]]}},"keywords":{}}],["xray_trace_id",{"_index":1148,"title":{},"content":{"167":{"position":[[1442,13]]}},"keywords":{}}],["xss",{"_index":1744,"title":{},"content":{"261":{"position":[[401,3]]}},"keywords":{}}],["yarn.lock",{"_index":438,"title":{},"content":{"18":{"position":[[1397,9]]}},"keywords":{}}],["yarnclean",{"_index":381,"title":{},"content":{"18":{"position":[[257,10],[330,10]]}},"keywords":{}}],["you'd",{"_index":2132,"title":{},"content":{"365":{"position":[[862,5]]}},"keywords":{}}],["you'll",{"_index":601,"title":{},"content":{"21":{"position":[[2602,6],[2791,6]]},"189":{"position":[[383,6]]},"416":{"position":[[270,6]]},"447":{"position":[[154,6]]}},"keywords":{}}],["you'r",{"_index":574,"title":{},"content":{"21":{"position":[[1982,6]]},"167":{"position":[[1541,6],[2228,6]]},"172":{"position":[[418,6]]},"327":{"position":[[1193,6]]},"378":{"position":[[230,6]]},"447":{"position":[[131,6]]}},"keywords":{}}],["you'v",{"_index":606,"title":{},"content":{"21":{"position":[[2729,6]]}},"keywords":{}}],["yourself",{"_index":2213,"title":{},"content":{"378":{"position":[[253,8]]}},"keywords":{}}],["zlib",{"_index":145,"title":{},"content":{"8":{"position":[[607,7]]},"307":{"position":[[8,4],[18,6]]},"308":{"position":[[8,4],[18,6]]}},"keywords":{}}],["zlib.createbrotlicompress",{"_index":1648,"title":{},"content":{"248":{"position":[[27,25]]},"307":{"position":[[257,27]]}},"keywords":{}}],["zlib.createdefl",{"_index":1652,"title":{},"content":{"248":{"position":[[152,18]]}},"keywords":{}}],["zlib.creategzip",{"_index":1650,"title":{},"content":{"248":{"position":[[94,15]]}},"keywords":{}}]],"pipeline":["stemmer"]} \ No newline at end of file diff --git a/markdown-page/index.html b/markdown-page/index.html index 2434462a9..50a797ff0 100644 --- a/markdown-page/index.html +++ b/markdown-page/index.html @@ -2,15 +2,13 @@ - -Markdown page example | Middy.js - - + +Markdown page example | Middy.js + + -
-

Markdown page example

You don't need React to write simple standalone pages.

- - +

Markdown page example

+

You don't need React to write simple standalone pages.

\ No newline at end of file diff --git a/search-doc-1699550506581.json b/search-doc-1699550506581.json deleted file mode 100644 index 5e3ca38ee..000000000 --- a/search-doc-1699550506581.json +++ /dev/null @@ -1 +0,0 @@ -[{"title":"Connection reuse","type":0,"sectionRef":"#","url":"/docs/best-practices/connection-reuse","content":"Connection reuse Be sure to set the following environment variable when connecting to AWS services: AWS_NODEJS_CONNECTION_REUSE_ENABLED=1 This allows you to reuse the first connection established across lambda invocations. See Reusing Connections with Keep-Alive in Node.js","keywords":"","version":"Next"},{"title":"Intro","type":0,"sectionRef":"#","url":"/docs/best-practices/intro","content":"Intro In this section you will find some common tips and tricks to ensure you don't hit any performance or security issues. Did we miss something? Let us know.","keywords":"","version":"Next"},{"title":"Internal Context","type":0,"sectionRef":"#","url":"/docs/best-practices/internal-context","content":"Internal Context Middy is built to be async even at it's core. Middlewares can set promises to internal. This approach allows them to be resolved together just when you need them. import middy from '@middy/core' import {getInternal} from '@middy/util' const config = { internal: new Proxy({}, { get: (target, prop, receiver) => { // ... return Reflect.get(...arguments) }, set: (obj, prop, value) => { // ... ie if `prop` changes, trigger something obj[prop] = value return true } }) } export const handler = middy() // Incase you want to add values on to internal directly .before((async (request) => { request.internal = { env: process.env.NODE_ENV } })) .use(sts(...)) .use(ssm(...)) .use(rdsSigner(...)) .use(secretsManager(...)) .before(async (request) => { // internal == { key: 'value' } // Map with same name Object.assign(request.context, await getInternal(['key'], request)) // -> context == { key: 'value'} // Map to new name Object.assign(request.context, await getInternal({'newKey':'key'}, request)) // -> context == { newKey: 'value'} // get all the values, only if you really need to, // but you should only request what you need for the handler Object.assign(request.context, await getInternal(true, request)) // -> context == { key: 'value'} }) .handler(async (event, context, { signal }) => { }) ","keywords":"","version":"Next"},{"title":"Introduction","type":0,"sectionRef":"#","url":"/docs/","content":"","keywords":"","version":"Next"},{"title":"What is middy​","type":1,"pageTitle":"Introduction","url":"/docs/#what-is-middy","content":"Middy is a very simple middleware engine that allows you to simplify your AWS Lambda code when using Node.js. If you have used web frameworks like Express, then you will be familiar with the concepts adopted in Middy and you will be able to get started very quickly. A middleware engine allows you to focus on the strict business logic of your Lambda and then attach additional common elements like authentication, authorization, validation, serialization, etc. in a modular and reusable way by decorating the main business logic. ","version":"Next","tagName":"h2"},{"title":"A quick example​","type":1,"pageTitle":"Introduction","url":"/docs/#a-quick-example","content":"Code is better than 10,000 words, so let's jump into an example. Let's assume you are building a JSON API to process a payment: handler.js // import core import middy from '@middy/core' // esm Node v14+ //const middy = require('@middy/core') // commonjs Node v12+ // import some middlewares import jsonBodyParser from '@middy/http-json-body-parser' import httpErrorHandler from '@middy/http-error-handler' import validator from '@middy/validator' import { transpileSchema } from '@middy/validator/transpile' // This is your common handler, in no way different than what you are used to doing every day in AWS Lambda const lambdaHandler = async (event, context) => { // we don't need to deserialize the body ourself as a middleware will be used to do that const { creditCardNumber, expiryMonth, expiryYear, cvc, nameOnCard, amount } = event.body // do stuff with this data // ... const response = { result: 'success', message: 'payment processed correctly' } return { statusCode: 200, body: JSON.stringify(response) } } // Notice that in the handler you only added base business logic (no deserialization, // validation or error handler), we will add the rest with middlewares const schema = { type: 'object', properties: { body: { type: 'object', properties: { creditCardNumber: { type: 'string', minLength: 12, maxLength: 19, pattern: '\\\\d+' }, expiryMonth: { type: 'integer', minimum: 1, maximum: 12 }, expiryYear: { type: 'integer', minimum: 2017, maximum: 2027 }, cvc: { type: 'string', minLength: 3, maxLength: 4, pattern: '\\\\d+' }, nameOnCard: { type: 'string' }, amount: { type: 'number' } }, required: ['creditCardNumber'] // Insert here all required event properties } } } // Let's "middyfy" our handler, then we will be able to attach middlewares to it const handler = middy() .use(jsonBodyParser()) // parses the request body when it's a JSON and converts it to an object .use(validator({ eventSchema: transpileSchema(schema) })) // validates the input .use(httpErrorHandler()) // handles common http errors and returns proper responses .handler(lambdaHandler) ","version":"Next","tagName":"h2"},{"title":"Why?​","type":1,"pageTitle":"Introduction","url":"/docs/#why","content":"One of the main strengths of serverless and AWS Lambda is that, from a developer perspective, your focus is mostly shifted toward implementing business logic. Anyway, when you are writing a handler, you still have to deal with some common technical concerns outside business logic, like input parsing and validation, output serialization, error handling, etc. Very often, all this necessary code ends up polluting the pure business logic code in your handlers, making the code harder to read and to maintain. In other contexts, like generic web frameworks (fastify, hapi, express, etc.), this problem has been solved using the middleware pattern. This pattern allows developers to isolate these common technical concerns into"steps" that decorate the main business logic code. Middleware functions are generally written as independent modules and then plugged into the application in a configuration step, thus not polluting the main business logic code that remains clean, readable, and easy to maintain. Since we couldn't find a similar approach for AWS Lambda handlers, we decided to create middy, our own middleware framework for serverless in AWS land. ","version":"Next","tagName":"h2"},{"title":"Small node_modules","type":0,"sectionRef":"#","url":"/docs/best-practices/small-node-modules","content":"Small node_modules Using a bundler is the optimal solution, but can be complex depending on your setup. In this case you should remove excess files from your node_modules directory to ensure it doesn't have anything excess shipped to AWS. We put together a .yarnclean file you can check out and use as part of your CI/CD process: .yarnclean # -- Middy.js -- # Dependencies **/ajv/lib **/ajv/.runkit_examples.js **/ajv-errors/src **/ajv-formats/src **/ajv-formats-draft2019/.github **/ajv-formats-draft2019/.prettierrc.js **/ajv-formats-draft2019/index.test.js **/ajv-i18n/localize/.eslintrc.yml **/json-mask/bin **/json-mask/build **/qs/.github **/qs/dist **/qs/test **/qs/.editorconfig **/qs/.eslintrc **/qs/.nycrc **/qs/CHANGELOG.md # DevDependencies **/@types **/@serverless/event-mocks ## Sub[/Sub] Dependencies **/bowser/src **/bowser/bundled.js **/dicer/bench **/dicer/test **/inherits/inherits_browser.js **/json-schema-traverse/.github **/json-schema-traverse/spec **/fast-deep-equal/es6 **/fast-deep-equal/react.js **/querystring/test **/react-native-get-random-values/android **/react-native-get-random-values/ios **/react-native-get-random-values/index.web.js **/react-native-get-random-values/react-native-get-random-values.podspec **/setprototypeof/test **/tslib **/uri-js/dist/esnext **/url/.zuul.yml **/url/test.js **/uuid/bin # Builds *.ts tsconfig.json *.js.map package-lock.json yarn.lock .travis.yml # Common .bin .cache .editorconfig .eslintignore .eslintrc .eslintrc.yml .gitattributes .npmignore AUTHORS LICENSE *.md *.txt ","keywords":"","version":"Next"},{"title":"Bundling Lambda packages","type":0,"sectionRef":"#","url":"/docs/best-practices/bundling","content":"","keywords":"","version":"Next"},{"title":"Compilers​","type":1,"pageTitle":"Bundling Lambda packages","url":"/docs/best-practices/bundling#compilers","content":"","version":"Next","tagName":"h2"},{"title":"typescript​","type":1,"pageTitle":"Bundling Lambda packages","url":"/docs/best-practices/bundling#typescript","content":"npm i -D typescript node_modules/.bin/tsc tsconfig.json​ { "compilerOptions": { "baseUrl": "./", "esModuleInterop": true, "preserveConstEnums": true, "strictNullChecks": true, "allowJs": false, "target": "es2021", "typeRoots": ["node_modules/@types"], "resolveJsonModule": true, "moduleResolution": "node" } } ","version":"Next","tagName":"h3"},{"title":"Bundlers​","type":1,"pageTitle":"Bundling Lambda packages","url":"/docs/best-practices/bundling#bundlers","content":"","version":"Next","tagName":"h2"},{"title":"esbuild​","type":1,"pageTitle":"Bundling Lambda packages","url":"/docs/best-practices/bundling#esbuild","content":"npm i -D esbuild # --banner:js hack from https://github.com/evanw/esbuild/pull/2067 node_modules/.bin/esbuild index.js \\ --platform=node --format=esm --target=node18 --bundle --minify \\ --banner:js="import { createRequire } from 'module';const require = createRequire(import.meta.url);" \\ --legal-comments=external --sourcemap=external \\ --allow-overwrite --outfile=index.mjs ","version":"Next","tagName":"h3"},{"title":"rollup​","type":1,"pageTitle":"Bundling Lambda packages","url":"/docs/best-practices/bundling#rollup","content":"npm i -D rollup @rollup/plugin-node-resolve @rollup/plugin-commonjs node_modules/.bin/rollup --config rollup.config.mjs​ import { nodeResolve } from '@rollup/plugin-node-resolve' import commonjs from '@rollup/plugin-commonjs' const plugins = [nodeResolve({ preferBuiltins: true }), commonjs()] export default (input) => ({ input: 'index.js', output: { file: 'index.bundle.rollup.mjs', format: 'es' // cjs, es }, plugins, external: [ // AWS SDK '@aws-sdk/client-apigatewaymanagementapi', // @middy/ws-response '@aws-sdk/client-rds', // @middy/rds-signer '@aws-sdk/client-s3', // @middy/s3-object-response '@aws-sdk/client-secretsmanager', // @middy/sercrets-manager '@aws-sdk/client-servicediscovery', // @middy/service-discovery '@aws-sdk/client-ssm', // @middy/ssm '@aws-sdk/client-sts' // @middy/sts ] }) ","version":"Next","tagName":"h3"},{"title":"swc/pack​","type":1,"pageTitle":"Bundling Lambda packages","url":"/docs/best-practices/bundling#swcpack","content":"npm i -D @swc/cli @swc/core node_modules/.bin/spack caution Incomplete ","version":"Next","tagName":"h3"},{"title":"webpack​","type":1,"pageTitle":"Bundling Lambda packages","url":"/docs/best-practices/bundling#webpack","content":"npm i -D webpack-cli webpack node_modules/.bin/webpack webpack.config.mjs​ import path from 'node:path' import { fileURLToPath } from 'node:url' const __filename = fileURLToPath(import.meta.url) const __dirname = path.dirname(__filename) export default { mode: 'development', entry: './index.js', output: { filename: 'index.bundle.webpack.mjs', path: __dirname }, experiments: { outputModule: true }, externals: [ // NodeJS modules 'events', // @middy/core 'https', // @middy/s3-object-response 'stream', // @middy/http-content-encoding @middy/s3-object-response 'util', // @middy/http-content-encoding 'zlib', // @middy/http-content-encoding // AWS SDK '@aws-sdk/client-apigatewaymanagementapi', // @middy/ws-response '@aws-sdk/client-rds', // @middy/rds-signer '@aws-sdk/client-s3', // @middy/s3-object-response '@aws-sdk/client-secretsmanager', // @middy/sercrets-manager '@aws-sdk/client-servicediscovery', // @middy/service-discovery '@aws-sdk/client-ssm', // @middy/ssm '@aws-sdk/client-sts' // @middy/sts ] } ","version":"Next","tagName":"h3"},{"title":"Transpilers​","type":1,"pageTitle":"Bundling Lambda packages","url":"/docs/best-practices/bundling#transpilers","content":"","version":"Next","tagName":"h2"},{"title":"babel​","type":1,"pageTitle":"Bundling Lambda packages","url":"/docs/best-practices/bundling#babel","content":"npm i -D @babel/cli @babel/core @babel/preset-env node_modules/.bin/babel index.js --out-file index.transpile.babel.cjs babel.config.json​ { "presets": [ [ "@babel/preset-env", { "targets": { "node": "16" } } ] ] } ","version":"Next","tagName":"h3"},{"title":"esbuild​","type":1,"pageTitle":"Bundling Lambda packages","url":"/docs/best-practices/bundling#esbuild-1","content":"npm i -D esbuild node_modules/.bin/esbuild --platform=node --target=node16 --format=cjs index.js --outfile=index.cjs ","version":"Next","tagName":"h3"},{"title":"swc​","type":1,"pageTitle":"Bundling Lambda packages","url":"/docs/best-practices/bundling#swc","content":"npm i -D @swc/cli @swc/core node_modules/.bin/swc index.js --out-file index.transpile.swc.cjs .swcrc​ { "jsc": { "parser": { "syntax": "ecmascript" }, "target": "es2021" }, "module": { "type": "commonjs" } } ","version":"Next","tagName":"h3"},{"title":"Profiling","type":0,"sectionRef":"#","url":"/docs/best-practices/profiling","content":"","keywords":"","version":"Next"},{"title":"Time​","type":1,"pageTitle":"Profiling","url":"/docs/best-practices/profiling#time","content":" const defaults = { logger: console.log, enabled: true } const timePlugin = (opts = {}) => { const { logger, enabled } = { ...defaults, ...opts } const store = {} const start = (id) => { store[id] = process.hrtime.bigint() } const stop = (id) => { if (!enabled) return logger(id, Number.parseInt((process.hrtime.bigint() - store[id]).toString()) / 1000000, 'ms') } // Only run during cold start const beforePrefetch = () => start('total') const requestStart = () => { if (!store.init) { store.init = store.total stop('init') } else { start('total') } } const beforeMiddleware = start const afterMiddleware = stop const beforeHandler = () => start('handler') const afterHandler = () => stop('handler') const requestEnd = () => stop('total') return { beforePrefetch, requestStart, beforeMiddleware, afterMiddleware, beforeHandler, afterHandler, requestEnd } } export const handler = middy(timePlugin()) .use(eventLogger()) .use(errorLogger()) .use(httpEventNormalizer()) .use(httpHeaderNormalizer()) .use(httpUrlencodePathParametersParser()) .use(httpUrlencodeBodyParser()) .use(httpJsonBodyParser()) .use(httpCors()) .use(httpSecurityHeaders()) .use(validator({eventSchema})) .handler(()=>{}) await handler() This will log out something this: inputOutputLoggerMiddlewareBefore 0.156033 ms httpEventNormalizerMiddlewareBefore 0.073921 ms httpHeaderNormalizerMiddlewareBefore 0.095098 ms httpUrlencodePathParserMiddlewareBefore 0.036255 ms httpUrlencodeBodyParserMiddlewareBefore 0.038809 ms httpJsonBodyParserMiddlewareBefore 0.048383 ms httpContentNegotiationMiddlewareBefore 0.042311 ms validatorMiddlewareBefore 0.083366 ms handler 0.094875 ms validatorMiddlewareAfter 0.083601 ms httpSecurityHeadersMiddlewareAfter 0.19702 ms httpCorsMiddlewareAfter 0.080532 ms inputOutputLoggerMiddlewareAfter 0.066886 ms lambda 66.141835 ms From this everything looks good. Sub 1ms for every middleware and the handler. But wait, that total doesn't look right. You're correct, total includes the initial setup time (or cold start time) for all middlewares. In this case validator is the culprit. The Ajv constructor and compiler do a lot of magic when they first run to get ready for later schema validations. This is why in the validator middleware we now support passing in complied schema and expose the default compiler in case you want to use it in a build step. We hope this feature will help to you in identify slow middlewares and improve your development experience. There is also a beforeRequest hook, but was left out of the example for dramatic effect. Additionally, you'll notice that each middleware shows a descriptive name. This is printing out the function name passed into middy core. If you've looked at the code for some the supported middlewares, you'll see these long descriptive variable names being set, then returned. This is why. ","version":"Next","tagName":"h2"},{"title":"Memory​","type":1,"pageTitle":"Profiling","url":"/docs/best-practices/profiling#memory","content":"import memwatch from '@airbnb/node-memwatch' const defaults = { logger: console.log } const memoryPlugin = (opts = {}) => { const { logger } = { ...defaults, ...opts } const store = {} const start = (id) => { store[id] = new memwatch.HeapDiff() } const stop = (id) => { logger(id, store[id].end()) } const beforePrefetch = () => start('total') const requestStart = () => { store.init = store.total stop('init') } const beforeMiddleware = start const afterMiddleware = stop const beforeHandler = () => start('handler') const afterHandler = () => stop('handler') const requestEnd = () => stop('total') return { beforePrefetch, requestStart, beforeMiddleware, afterMiddleware, beforeHandler, afterHandler, requestEnd } } export const handler = middy(memoryPlugin()) .use(eventLogger()) .use(errorLogger()) .use(httpEventNormalizer()) .use(httpHeaderNormalizer()) .use(httpUrlencodePathParametersParser()) .use(httpUrlencodeBodyParser()) .use(httpJsonBodyParser()) .use(httpCors()) .use(httpSecurityHeaders()) .use(validator({eventSchema})) .handler(()=>{}) await handler() ","version":"Next","tagName":"h2"},{"title":"API Gateway Authorizer","type":0,"sectionRef":"#","url":"/docs/events/api-gateway-authorizer","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"API Gateway Authorizer","url":"/docs/events/api-gateway-authorizer#aws-documentation","content":"Working with AWS Lambda authorizers for HTTP APIsInput to an Amazon API Gateway Lambda authorizer ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"API Gateway Authorizer","url":"/docs/events/api-gateway-authorizer#example","content":"import middy from '@middy/core' export const handler = middy().handler((event, context, { signal }) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"Alexa","type":0,"sectionRef":"#","url":"/docs/events/alexa","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"Alexa","url":"/docs/events/alexa#aws-documentation","content":"Using AWS Lambda with Alexa ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"Alexa","url":"/docs/events/alexa#example","content":"import middy from '@middy/core' export const handler = middy() .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"API Gateway (WebSocket)","type":0,"sectionRef":"#","url":"/docs/events/api-gateway-ws","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"API Gateway (WebSocket)","url":"/docs/events/api-gateway-ws#aws-documentation","content":"Using AWS Lambda with Amazon API GatewayWorking with WebSocket APIs ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"API Gateway (WebSocket)","url":"/docs/events/api-gateway-ws#example","content":"import middy from '@middy/core' import wsJsonBodyParserMiddleware from '@middy/ws-json-body-parser' import wsResponseMiddleware from '@middy/ws-response' import wsRouterHandler from '@middy/ws-router' import { handler as connectHandler } from './handlers/connect.js' import { handler as disconnectHandler } from './handlers/disconnect.js' import { handler as defaultHandler } from './handlers/default.js' const routes = [ { routeKey: '$connect', handler: connectHandler }, { routeKey: '$disconnect', handler: disconnectHandler }, { routeKey: 'default', handler: defaultHandler } ] export const handler = middy() .use(wsJsonBodyParserMiddleware()) .use(wsResponseMiddleware()) .handler(wsRouterHandler(routes)) ","version":"Next","tagName":"h2"},{"title":"API Gateway (HTTP)","type":0,"sectionRef":"#","url":"/docs/events/api-gateway-http","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"API Gateway (HTTP)","url":"/docs/events/api-gateway-http#aws-documentation","content":"Using AWS Lambda with Amazon API GatewayWorking with HTTP APIs ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"API Gateway (HTTP)","url":"/docs/events/api-gateway-http#example","content":"import middy from '@middy/core' import errorLoggerMiddleware from '@middy/error-logger' import inputOutputLoggerMiddleware from '@middy/input-output-logger' import httpContentNegotiationMiddleware from '@middy/http-content-negotiation' import httpContentEncodingMiddleware from '@middy/http-content-encoding' import httpCorsMiddleware from '@middy/http-cors' import httpErrorHandlerMiddleware from '@middy/http-error-handler' import httpEventNormalizerMiddleware from '@middy/http-event-normalizer' import httpHeaderNormalizerMiddleware from '@middy/http-header-normalizer' import httpJsonBodyParserMiddleware from '@middy/http-json-body-parser' import httpMultipartBodyParserMiddleware from '@middy/http-multipart-body-parser' import httpPartialResponseMiddleware from '@middy/http-partial-response' import httpResponseSerializerMiddleware from '@middy/http-response-serializer' import httpSecurityHeadersMiddleware from '@middy/http-security-headers' import httpUrlencodeBodyParserMiddleware from '@middy/http-urlencode-body-parser' import httpUrlencodePathParametersParserMiddleware from '@middy/http-urlencode-path-parser' import validatorMiddleware from 'validator' import warmupMiddleware from 'warmup' import eventSchema from './eventSchema.json' assert { type: 'json' } import responseSchema from './responseSchema.json' assert { type: 'json' } export const handler = middy({ timeoutEarlyResponse: () => { return { statusCode: 408 } } }) .use(warmupMiddleware()) .use(httpEventNormalizerMiddleware()) .use(httpHeaderNormalizerMiddleware()) .use( httpContentNegotiationMiddleware({ availableLanguages: ['en-CA', 'fr-CA'], availableMediaTypes: ['application/json'] }) ) .use(httpUrlencodePathParametersParserMiddleware()) // Start oneOf .use(httpUrlencodeBodyParserMiddleware()) .use(httpJsonBodyParserMiddleware()) .use(httpMultipartBodyParserMiddleware()) // End oneOf .use(httpSecurityHeadersMiddleware()) .use(httpCorsMiddleware()) .use(httpContentEncodingMiddleware()) .use( httpResponseSerializerMiddleware({ serializers: [ { regex: /^application\\/json$/, serializer: ({ body }) => JSON.stringify(body) } ], default: 'application/json' }) ) .use(httpPartialResponseMiddleware()) .use(validatorMiddleware({ eventSchema, responseSchema })) .use(httpErrorHandlerMiddleware()) .handler((event, context, { signal }) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"Application Load Balancer","type":0,"sectionRef":"#","url":"/docs/events/application-load-balancer","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"Application Load Balancer","url":"/docs/events/application-load-balancer#aws-documentation","content":"Using AWS Lambda with an Application Load Balancer ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"Application Load Balancer","url":"/docs/events/application-load-balancer#example","content":"import middy from '@middy/core' import httpRouterHandler from '@middy/http-router' import errorLoggerMiddleware from '@middy/error-logger' import inputOutputLoggerMiddleware from '@middy/input-output-logger' import httpContentNegotiationMiddleware from '@middy/http-content-negotiation' import httpContentEncodingMiddleware from '@middy/http-content-encoding' import httpCorsMiddleware from '@middy/http-cors' import httpErrorHandlerMiddleware from '@middy/http-error-handler' import httpEventNormalizerMiddleware from '@middy/http-event-normalizer' import httpHeaderNormalizerMiddleware from '@middy/http-header-normalizer' import httpJsonBodyParserMiddleware from '@middy/http-json-body-parser' import httpMultipartBodyParserMiddleware from '@middy/http-multipart-body-parser' import httpPartialResponseMiddleware from '@middy/http-partial-response' import httpResponseSerializerMiddleware from '@middy/http-response-serializer' import httpSecurityHeadersMiddleware from '@middy/http-security-headers' import httpUrlencodeBodyParserMiddleware from '@middy/http-urlencode-body-parser' import httpUrlencodePathParametersParserMiddleware from '@middy/http-urlencode-path-parser' import warmupMiddleware from 'warmup' import { handler as getHandler } from './handlers/get-user.js' import { handler as postHandler } from './handlers/get-user.js' const routes = [ { method: 'GET', path: '/user/{id}', handler: getHandler }, { method: 'POST', path: '/user', handler: postHandler } ] export const handler = middy({ timeoutEarlyResponse: () => { return { statusCode: 408 } } }) .use(warmupMiddleware()) .use(httpEventNormalizerMiddleware()) .use(httpHeaderNormalizerMiddleware()) .use( httpContentNegotiationMiddleware({ availableLanguages: ['en-CA', 'fr-CA'], availableMediaTypes: ['application/json'] }) ) .use(httpUrlencodePathParametersParserMiddleware()) // Start oneOf .use(httpUrlencodeBodyParserMiddleware()) .use(httpJsonBodyParserMiddleware()) .use(httpMultipartBodyParserMiddleware()) // End oneOf .use(httpSecurityHeadersMiddleware()) .use(httpCorsMiddleware()) .use(httpContentEncodingMiddleware()) .use( httpResponseSerializerMiddleware({ serializers: [ { regex: /^application\\/json$/, serializer: ({ body }) => JSON.stringify(body) } ], default: 'application/json' }) ) .use(httpPartialResponseMiddleware()) .use(httpErrorHandlerMiddleware()) .handler(httpRouterHandler(routes)) ","version":"Next","tagName":"h2"},{"title":"AppSync","type":0,"sectionRef":"#","url":"/docs/events/appsync","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"AppSync","url":"/docs/events/appsync#aws-documentation","content":"Using AWS Lambda with AppSync ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"AppSync","url":"/docs/events/appsync#example","content":"import middy from '@middy/core' export const handler = middy().handler((event, context, { signal }) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"API Gateway (REST)","type":0,"sectionRef":"#","url":"/docs/events/api-gateway-rest","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"API Gateway (REST)","url":"/docs/events/api-gateway-rest#aws-documentation","content":"Using AWS Lambda with Amazon API GatewayWorking with REST APIs ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"API Gateway (REST)","url":"/docs/events/api-gateway-rest#example","content":"import middy from '@middy/core' import errorLoggerMiddleware from '@middy/error-logger' import inputOutputLoggerMiddleware from '@middy/input-output-logger' import httpContentNegotiationMiddleware from '@middy/http-content-negotiation' import httpContentEncodingMiddleware from '@middy/http-content-encoding' import httpCorsMiddleware from '@middy/http-cors' import httpErrorHandlerMiddleware from '@middy/http-error-handler' import httpEventNormalizerMiddleware from '@middy/http-event-normalizer' import httpHeaderNormalizerMiddleware from '@middy/http-header-normalizer' import httpJsonBodyParserMiddleware from '@middy/http-json-body-parser' import httpMultipartBodyParserMiddleware from '@middy/http-multipart-body-parser' import httpPartialResponseMiddleware from '@middy/http-partial-response' import httpResponseSerializerMiddleware from '@middy/http-response-serializer' import httpSecurityHeadersMiddleware from '@middy/http-security-headers' import httpUrlencodeBodyParserMiddleware from '@middy/http-urlencode-body-parser' import httpUrlencodePathParametersParserMiddleware from '@middy/http-urlencode-path-parser' import validatorMiddleware from 'validator' import warmupMiddleware from 'warmup' import eventSchema from './eventSchema.json' assert { type: 'json' } import responseSchema from './responseSchema.json' assert { type: 'json' } export const handler = middy({ timeoutEarlyResponse: () => { return { statusCode: 408 } } }) .use(warmupMiddleware()) .use(httpEventNormalizerMiddleware()) .use(httpHeaderNormalizerMiddleware()) .use( httpContentNegotiationMiddleware({ availableLanguages: ['en-CA', 'fr-CA'], availableMediaTypes: ['application/json'] }) ) .use(httpUrlencodePathParametersParserMiddleware()) // Start oneOf .use(httpUrlencodeBodyParserMiddleware()) .use(httpJsonBodyParserMiddleware()) .use(httpMultipartBodyParserMiddleware()) // End oneOf .use(httpSecurityHeadersMiddleware()) .use(httpCorsMiddleware()) .use(httpContentEncodingMiddleware()) .use( httpResponseSerializerMiddleware({ serializers: [ { regex: /^application\\/json$/, serializer: ({ body }) => JSON.stringify(body) } ], defaultContentType: 'application/json' }) ) .use(httpPartialResponseMiddleware()) .use(validatorMiddleware({ eventSchema, responseSchema })) .use(httpErrorHandlerMiddleware()) .handler((event, context, { signal }) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"CloudFront Lambda@Edge","type":0,"sectionRef":"#","url":"/docs/events/cloud-front","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"CloudFront Lambda@Edge","url":"/docs/events/cloud-front#aws-documentation","content":"Using AWS Lambda with CloudFront Lambda@Edge ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"CloudFront Lambda@Edge","url":"/docs/events/cloud-front#example","content":"import middy from '@middy/core' export const handler = middy() //.use(cfHeaderNormalizer()) // Let use know if this would have value .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"CloudFormation","type":0,"sectionRef":"#","url":"/docs/events/cloud-formation","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"CloudFormation","url":"/docs/events/cloud-formation#aws-documentation","content":"Using AWS Lambda with AWS CloudFormation ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"CloudFormation","url":"/docs/events/cloud-formation#example","content":"import middy from '@middy/core' export const handler = middy() .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"CloudTrail","type":0,"sectionRef":"#","url":"/docs/events/cloud-trail","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"CloudTrail","url":"/docs/events/cloud-trail#aws-documentation","content":"Using AWS Lambda with AWS CloudTrail ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"CloudTrail","url":"/docs/events/cloud-trail#example","content":"import middy from '@middy/core' export const handler = middy() .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"CodePipeline","type":0,"sectionRef":"#","url":"/docs/events/code-pipeline","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"CodePipeline","url":"/docs/events/code-pipeline#aws-documentation","content":"Using AWS Lambda with AWS CodePipeline ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"CodePipeline","url":"/docs/events/code-pipeline#example","content":"import middy from '@middy/core' import eventNormalizerMiddleware from '@middy/event-normalizer' export const handler = middy() .use(eventNormalizerMiddleware()) .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"Cognito","type":0,"sectionRef":"#","url":"/docs/events/cognito","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"Cognito","url":"/docs/events/cognito#aws-documentation","content":"Using AWS Lambda with Amazon Cognito ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"Cognito","url":"/docs/events/cognito#example","content":"import middy from '@middy/core' export const handler = middy() .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"Code Commit","type":0,"sectionRef":"#","url":"/docs/events/code-commit","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"Code Commit","url":"/docs/events/code-commit#aws-documentation","content":"Using AWS Lambda with AWS CodeCommit ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"Code Commit","url":"/docs/events/code-commit#example","content":"import middy from '@middy/core' export const handler = middy() .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"Cloud Watch Logs","type":0,"sectionRef":"#","url":"/docs/events/cloud-watch-logs","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"Cloud Watch Logs","url":"/docs/events/cloud-watch-logs#aws-documentation","content":"Using Lambda with CloudWatch Logs ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"Cloud Watch Logs","url":"/docs/events/cloud-watch-logs#example","content":"import middy from '@middy/core' import eventNormalizerMiddleware from '@middy/event-normalizer' export const handler = middy() .use(eventNormalizerMiddleware()) .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"DocumentDB","type":0,"sectionRef":"#","url":"/docs/events/documentdb","content":"","keywords":"","version":"Next"},{"title":"Connect","type":0,"sectionRef":"#","url":"/docs/events/connect","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"Connect","url":"/docs/events/connect#aws-documentation","content":"Using Lambda with Amazon Connect ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"Connect","url":"/docs/events/connect#example","content":"import middy from '@middy/core' export const handler = middy() .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"AWS Documentation​","type":1,"pageTitle":"DocumentDB","url":"/docs/events/documentdb#aws-documentation","content":"Using AWS Lambda with Amazon DocumentDB ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"DocumentDB","url":"/docs/events/documentdb#example","content":"import middy from '@middy/core' export const handler = middy().handler((event, context, { signal }) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"Config","type":0,"sectionRef":"#","url":"/docs/events/config","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"Config","url":"/docs/events/config#aws-documentation","content":"Using AWS Lambda with AWS Config ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"Config","url":"/docs/events/config#example","content":"import middy from '@middy/core' import eventNormalizerMiddleware from '@middy/event-normalizer' export const handler = middy() .use(eventNormalizerMiddleware()) .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"EventBridge","type":0,"sectionRef":"#","url":"/docs/events/event-bridge","content":"","keywords":"","version":"Next"},{"title":"EC2","type":0,"sectionRef":"#","url":"/docs/events/ec2","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"EC2","url":"/docs/events/ec2#aws-documentation","content":"Using AWS Lambda with Amazon EC2 ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"EC2","url":"/docs/events/ec2#example","content":"import middy from '@middy/core' export const handler = middy() .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"AWS Documentation​","type":1,"pageTitle":"EventBridge","url":"/docs/events/event-bridge#aws-documentation","content":"Using AWS Lambda with Amazon EventBridge (CloudWatch Events) ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"EventBridge","url":"/docs/events/event-bridge#example","content":"import middy from '@middy/core' export const handler = middy().handler((event, context, { signal }) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"DynamoDB","type":0,"sectionRef":"#","url":"/docs/events/dynamodb","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"DynamoDB","url":"/docs/events/dynamodb#aws-documentation","content":"Using AWS Lambda with Amazon DynamoDB ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"DynamoDB","url":"/docs/events/dynamodb#example","content":"import middy from '@middy/core' import eventNormalizerMiddleware from '@middy/event-normalizer' export const handler = middy() .use(eventNormalizerMiddleware()) .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"Internet of things (IoT)","type":0,"sectionRef":"#","url":"/docs/events/iot","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"Internet of things (IoT)","url":"/docs/events/iot#aws-documentation","content":"Using AWS Lambda with AWS IoT ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"Internet of things (IoT)","url":"/docs/events/iot#example","content":"import middy from '@middy/core' export const handler = middy() .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"IoT Events","type":0,"sectionRef":"#","url":"/docs/events/iot-events","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"IoT Events","url":"/docs/events/iot-events#aws-documentation","content":"Using AWS Lambda with AWS IoT Events ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"IoT Events","url":"/docs/events/iot-events#example","content":"import middy from '@middy/core' export const handler = middy() .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"Function URL","type":0,"sectionRef":"#","url":"/docs/events/function-url","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"Function URL","url":"/docs/events/function-url#aws-documentation","content":"Using AWS Lambda with Amazon API GatewayWorking with HTTP APIs ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"Function URL","url":"/docs/events/function-url#example","content":"import middy from '@middy/core' import errorLoggerMiddleware from '@middy/error-logger' import inputOutputLoggerMiddleware from '@middy/input-output-logger' import httpContentNegotiationMiddleware from '@middy/http-content-negotiation' import httpContentEncodingMiddleware from '@middy/http-content-encoding' import httpCorsMiddleware from '@middy/http-cors' import httpErrorHandlerMiddleware from '@middy/http-error-handler' import httpEventNormalizerMiddleware from '@middy/http-event-normalizer' import httpHeaderNormalizerMiddleware from '@middy/http-header-normalizer' import httpJsonBodyParserMiddleware from '@middy/http-json-body-parser' import httpMultipartBodyParserMiddleware from '@middy/http-multipart-body-parser' import httpPartialResponseMiddleware from '@middy/http-partial-response' import httpResponseSerializerMiddleware from '@middy/http-response-serializer' import httpSecurityHeadersMiddleware from '@middy/http-security-headers' import httpUrlencodeBodyParserMiddleware from '@middy/http-urlencode-body-parser' import httpUrlencodePathParametersParserMiddleware from '@middy/http-urlencode-path-parser' import validatorMiddleware from 'validator' import warmupMiddleware from 'warmup' import eventSchema from './eventSchema.json' assert { type: 'json' } import responseSchema from './responseSchema.json' assert { type: 'json' } export const handler = middy({ timeoutEarlyResponse: () => { return { statusCode: 408 } }, streamifyResponse: true }) .use(warmupMiddleware()) .use(httpEventNormalizerMiddleware()) .use(httpHeaderNormalizerMiddleware()) .use( httpContentNegotiationMiddleware({ availableLanguages: ['en-CA', 'fr-CA'], availableMediaTypes: ['application/json'] }) ) .use(httpUrlencodePathParametersParserMiddleware()) // Start oneOf .use(httpUrlencodeBodyParserMiddleware()) .use(httpJsonBodyParserMiddleware()) .use(httpMultipartBodyParserMiddleware()) // End oneOf .use(httpSecurityHeadersMiddleware()) .use(httpCorsMiddleware()) .use(httpContentEncodingMiddleware()) .use( httpResponseSerializerMiddleware({ serializers: [ { regex: /^application\\/json$/, serializer: ({ body }) => JSON.stringify(body) } ], default: 'application/json' }) ) .use(httpPartialResponseMiddleware()) .use(validatorMiddleware({ eventSchema, responseSchema })) .use(httpErrorHandlerMiddleware()) .handler((event, context, { signal }) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"Kafka, Managed Streaming (MSK)","type":0,"sectionRef":"#","url":"/docs/events/kafka-managed-streaming","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"Kafka, Managed Streaming (MSK)","url":"/docs/events/kafka-managed-streaming#aws-documentation","content":"Using Lambda with Amazon MSK ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"Kafka, Managed Streaming (MSK)","url":"/docs/events/kafka-managed-streaming#example","content":"import middy from '@middy/core' import eventNormalizerMiddleware from '@middy/event-normalizer' export const handler = middy() .use(eventNormalizerMiddleware()) .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"Kafka, Self-Managed","type":0,"sectionRef":"#","url":"/docs/events/kafka-self-managed","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"Kafka, Self-Managed","url":"/docs/events/kafka-self-managed#aws-documentation","content":"Using Lambda with self-managed Apache Kafka ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"Kafka, Self-Managed","url":"/docs/events/kafka-self-managed#example","content":"import middy from '@middy/core' import eventNormalizerMiddleware from '@middy/event-normalizer' export const handler = middy() .use(eventNormalizerMiddleware()) .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"Kinesis Firehose","type":0,"sectionRef":"#","url":"/docs/events/kinesis-firehose","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"Kinesis Firehose","url":"/docs/events/kinesis-firehose#aws-documentation","content":"Using AWS Lambda with Amazon Kinesis Data Firehose ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"Kinesis Firehose","url":"/docs/events/kinesis-firehose#example","content":"import middy from '@middy/core' import eventNormalizerMiddleware from '@middy/event-normalizer' export const handler = middy() .use(eventNormalizerMiddleware()) .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"All AWS Events","type":0,"sectionRef":"#","url":"/docs/events/intro","content":"","keywords":"","version":"Next"},{"title":"Middlewares that can benefit any Lambda​","type":1,"pageTitle":"All AWS Events","url":"/docs/events/intro#middlewares-that-can-benefit-any-lambda","content":"import middy from '@middy/core' import cloudWatchMetricsMiddleware from '@middy/cloudwatch-metrics' import errorLoggerMiddleware from '@middy/error-logger' import inputOutputLoggerMiddleware from '@middy/input-output-logger' import validatorMiddleware from 'validator' import warmupMiddleware from 'warmup' import eventSchema from './eventSchema.json' assert { type: 'json' } import responseSchema from './responseSchema.json' assert { type: 'json' } const handler = middy() .use(warmupMiddleware()) .use(cloudWatchMetricsMiddleware()) .use(inputOutputLoggerMiddleware()) .use(errorLoggerMiddleware()) .use(validatorMiddleware({ eventSchema, responseSchema })) .handler(async (event, context, { signal }) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"Need secrets? We have you covered there too​","type":1,"pageTitle":"All AWS Events","url":"/docs/events/intro#need-secrets-we-have-you-covered-there-too","content":"import middy from '@middy/core' import { getInternal } from '@middy/util' import rdsSignerMiddleware from '@middy/rds-signer' import secretsManagerMiddleware from '@middy/secrets-manager' import ssmMiddleware from '@middy/ssm' import stsMiddleware from '@middy/sts' export const handler = middy() .use( rdsSignerMiddleware({ fetchData: { rdsSigner: { region: process.env.AWS_REGION, hostname: process.env.RDS_HOSTNAME, username: 'iam_role', database: 'database', port: 5555 } } }) ) .use( secretsManagerMiddleware({ fetchData: { secretsManager: '/dev/service_name/key_name' } }) ) .use( ssmMiddleware({ fetchData: { ssm: '/dev/service_name/key_name' } }) ) .use( stsMiddleware({ fetchData: { sts: { RoleArn: '.../role' } } }) ) .before(async (request) => { request.context.secrets = await getInternal(true, request) }) .handler(async (event, context, { signal }) => { // context.secrets = { rdsSigner, secretsManager, ssm, sts } }) ","version":"Next","tagName":"h2"},{"title":"How about configs? We have you covered there as well​","type":1,"pageTitle":"All AWS Events","url":"/docs/events/intro#how-about-configs-we-have-you-covered-there-as-well","content":"import middy from '@middy/core' import { getInternal } from '@middy/util' import appConfigMiddleware from '@middy/appconfig' import s3Middleware from '@middy/s3' import dynamoDBMiddleware from '@middy/dynamodb' import ssmMiddleware from '@middy/ssm' export const handler = middy() .use( appConfigMiddleware({ fetchData: { appConfig: { Application: '...', ClientId: '...', Configuration: '...', Environment: '...' } } }) ) .use( s3Middleware({ fetchData: { s3: { Bucket: '...', Key: '...' } } }) ) .use( dynamoDBMiddleware({ fetchData: { dynamodb: { TableName: '...', Key: { '...' } } } }) ) .use( ssmMiddleware({ fetchData: { ssm: '/dev/service_name/key_name' } }) ) .before(async (request) => { request.context.configs = await getInternal(true, request) }) .handler(async (event, context, { signal }) => { // context.configs = { appConfig, dynamodb, s3, ssm } }) ","version":"Next","tagName":"h2"},{"title":"Lex","type":0,"sectionRef":"#","url":"/docs/events/lex","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"Lex","url":"/docs/events/lex#aws-documentation","content":"Using AWS Lambda with Amazon LexUsing an AWS Lambda function with Amazon Lex V2 ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"Lex","url":"/docs/events/lex#example","content":"import middy from '@middy/core' export const handler = middy() .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"MQ","type":0,"sectionRef":"#","url":"/docs/events/mq","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"MQ","url":"/docs/events/mq#aws-documentation","content":"Using Lambda with Amazon MQ ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"MQ","url":"/docs/events/mq#example","content":"import middy from '@middy/core' import eventNormalizerMiddleware from '@middy/event-normalizer' export const handler = middy() .use(eventNormalizerMiddleware()) .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"S3","type":0,"sectionRef":"#","url":"/docs/events/s3","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"S3","url":"/docs/events/s3#aws-documentation","content":"Using AWS Lambda with Amazon S3 ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"S3","url":"/docs/events/s3#example","content":"import middy from '@middy/core' import eventNormalizerMiddleware from '@middy/event-normalizer' export const handler = middy() .use(eventNormalizerMiddleware()) // S3 -> SNS -> SQS -> Lambda .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"RDS","type":0,"sectionRef":"#","url":"/docs/events/rds","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"RDS","url":"/docs/events/rds#aws-documentation","content":"Using AWS Lambda with Amazon RDS ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"RDS","url":"/docs/events/rds#example","content":"import middy from '@middy/core' import eventNormalizerMiddleware from '@middy/event-normalizer' export const handler = middy() .use(eventNormalizerMiddleware()) // RDS -> SNS -> Lambda .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"S3 Batch","type":0,"sectionRef":"#","url":"/docs/events/s3-batch","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"S3 Batch","url":"/docs/events/s3-batch#aws-documentation","content":"Using AWS Lambda with Amazon S3 batch operations ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"S3 Batch","url":"/docs/events/s3-batch#example","content":"import middy from '@middy/core' import eventNormalizerMiddleware from '@middy/event-normalizer' export const handler = middy() .use(eventNormalizerMiddleware()) .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"Kinesis Streams","type":0,"sectionRef":"#","url":"/docs/events/kinesis-streams","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"Kinesis Streams","url":"/docs/events/kinesis-streams#aws-documentation","content":"Using AWS Lambda with Amazon Kinesis ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"Kinesis Streams","url":"/docs/events/kinesis-streams#example","content":"import middy from '@middy/core' import eventNormalizerMiddleware from '@middy/event-normalizer' export const handler = middy() .use(eventNormalizerMiddleware()) .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"Secrets Manager","type":0,"sectionRef":"#","url":"/docs/events/secrets-manager","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"Secrets Manager","url":"/docs/events/secrets-manager#aws-documentation","content":"Using AWS Lambda with Secrets Manager ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"Secrets Manager","url":"/docs/events/secrets-manager#example","content":"import middy from '@middy/core' export const handler = middy() .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"S3 Object","type":0,"sectionRef":"#","url":"/docs/events/s3-object","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"S3 Object","url":"/docs/events/s3-object#aws-documentation","content":"Transforming S3 Objects with S3 Object LambdaTransforming objects with S3 Object Lambda ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"S3 Object","url":"/docs/events/s3-object#example","content":"import middy from '@middy/core' import s3ObjectResponseMiddleware from '@middy/s3-object-response' import {captureAWSv3Client, captureHTTPsGlobal} from 'aws-xray-sdk-core' export const handler = middy() .use(s3ObjectResponseMiddleware({ awsClientCapture: captureAWSv3Client, httpsCapture: captureHTTPsGlobal, bodyType: 'promise' })) .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"SES","type":0,"sectionRef":"#","url":"/docs/events/ses","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"SES","url":"/docs/events/ses#aws-documentation","content":"Using AWS Lambda with Amazon SES ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"SES","url":"/docs/events/ses#example","content":"import middy from '@middy/core' export const handler = middy() .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"SNS","type":0,"sectionRef":"#","url":"/docs/events/sns","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"SNS","url":"/docs/events/sns#aws-documentation","content":"Using AWS Lambda with Amazon SNS ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"SNS","url":"/docs/events/sns#example","content":"import middy from '@middy/core' import eventNormalizerMiddleware from '@middy/event-normalizer' export const handler = middy() .use(eventNormalizerMiddleware()) .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"FAQ","type":0,"sectionRef":"#","url":"/docs/faq","content":"","keywords":"","version":"Next"},{"title":"My lambda keep timing out without responding, what do I do?​","type":1,"pageTitle":"FAQ","url":"/docs/faq#my-lambda-keep-timing-out-without-responding-what-do-i-do","content":"Likely your event loop is not empty. This happens when you have a database connect still open for example. Checkout @middy/do-not-wait-for-empty-event-loop. ","version":"Next","tagName":"h3"},{"title":"SQS","type":0,"sectionRef":"#","url":"/docs/events/sqs","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"SQS","url":"/docs/events/sqs#aws-documentation","content":"Using AWS Lambda with Amazon SQS ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"SQS","url":"/docs/events/sqs#example","content":"import middy from '@middy/core' import eventNormalizerMiddleware from '@middy/event-normalizer' import sqsPartialBatchFailure from '@middy/sqs-partial-batch-failure' export const handler = middy() .use(eventNormalizerMiddleware()) .use(sqsPartialBatchFailure()) .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"WorkMail","type":0,"sectionRef":"#","url":"/docs/events/workmail","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"WorkMail","url":"/docs/events/workmail#aws-documentation","content":"Configuring AWS Lambda for Amazon WorkMail ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"WorkMail","url":"/docs/events/workmail#example","content":"import middy from '@middy/core' export const handler = middy() .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"Integrations","type":0,"sectionRef":"#","url":"/docs/integrations/intro","content":"Integrations caution This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","keywords":"","version":"Next"},{"title":"VPC Lattice","type":0,"sectionRef":"#","url":"/docs/events/vpc-lattice","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"VPC Lattice","url":"/docs/events/vpc-lattice#aws-documentation","content":"Using AWS Lambda with Amazon VPC Lattice ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"VPC Lattice","url":"/docs/events/vpc-lattice#example","content":"import middy from '@middy/core' import errorLoggerMiddleware from '@middy/error-logger' import inputOutputLoggerMiddleware from '@middy/input-output-logger' import httpContentNegotiationMiddleware from '@middy/http-content-negotiation' import httpContentEncodingMiddleware from '@middy/http-content-encoding' import httpCorsMiddleware from '@middy/http-cors' import httpErrorHandlerMiddleware from '@middy/http-error-handler' import httpEventNormalizerMiddleware from '@middy/http-event-normalizer' // required import httpHeaderNormalizerMiddleware from '@middy/http-header-normalizer' import httpJsonBodyParserMiddleware from '@middy/http-json-body-parser' import httpMultipartBodyParserMiddleware from '@middy/http-multipart-body-parser' import httpPartialResponseMiddleware from '@middy/http-partial-response' import httpResponseSerializerMiddleware from '@middy/http-response-serializer' import httpSecurityHeadersMiddleware from '@middy/http-security-headers' import httpUrlencodeBodyParserMiddleware from '@middy/http-urlencode-body-parser' import httpUrlencodePathParametersParserMiddleware from '@middy/http-urlencode-path-parser' import validatorMiddleware from 'validator' import warmupMiddleware from 'warmup' import eventSchema from './eventSchema.json' assert { type: 'json' } import responseSchema from './responseSchema.json' assert { type: 'json' } export const handler = middy({ timeoutEarlyResponse: () => { return { statusCode: 408 } } }) .use(warmupMiddleware()) .use(httpEventNormalizerMiddleware()) .use(httpHeaderNormalizerMiddleware()) .use( httpContentNegotiationMiddleware({ availableLanguages: ['en-CA', 'fr-CA'], availableMediaTypes: ['application/json'] }) ) .use(httpUrlencodePathParametersParserMiddleware()) // Start oneOf .use(httpUrlencodeBodyParserMiddleware()) .use(httpJsonBodyParserMiddleware()) .use(httpMultipartBodyParserMiddleware()) // End oneOf .use(httpSecurityHeadersMiddleware()) .use(httpCorsMiddleware()) .use(httpContentEncodingMiddleware()) .use( httpResponseSerializerMiddleware({ serializers: [ { regex: /^application\\/json$/, serializer: ({ body }) => JSON.stringify(body) } ], default: 'application/json' }) ) .use(httpPartialResponseMiddleware()) .use(validatorMiddleware({ eventSchema, responseSchema })) .use(httpErrorHandlerMiddleware()) .handler((event, context, { signal }) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"Pino","type":0,"sectionRef":"#","url":"/docs/integrations/pino","content":"Pino caution This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","keywords":"","version":"Next"},{"title":"Apollo Server","type":0,"sectionRef":"#","url":"/docs/integrations/apollo-server","content":"Apollo Server caution This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub. import middy from '@middy/core' import { ApolloServer, gql } from 'apollo-server-lambda' import { buildFederatedSchema } from '@apollo/federation' import { resolvers } from './graphql/resolvers.js' import { graphqlFileToStr } from './graphql/schema.js' const graphQL = new ApolloServer({ schema: buildFederatedSchema({ typeDefs: gql(graphqlFileToStr), resolvers }) }) // Do not use: `@middy/http-json-body-parser` it is already handled within apollo export const handler = middy(graphQL.createHandler()) ","keywords":"","version":"Next"},{"title":"Serverless Framework","type":0,"sectionRef":"#","url":"/docs/integrations/serverless-framework","content":"Serverless Framework caution This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub. TODO comment about serverless-warmup","keywords":"","version":"Next"},{"title":"Serverless Stack","type":0,"sectionRef":"#","url":"/docs/integrations/serverless-stack","content":"Serverless Stack caution This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","keywords":"","version":"Next"},{"title":"AWS Relational Database Service (RDS)","type":0,"sectionRef":"#","url":"/docs/integrations/RDS","content":"AWS Relational Database Service (RDS) caution This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub. First, you need to pass in a password. In order from most secure to least: RDS.Signer, SecretsManager, SSM using SecureString.SSM can be considered equally secure to SecretsManager if you have your own password rotation system. Additionally, you will want to verify the RDS certificate and the domain of your connection. You can use this sudo code to get you started: import tls from 'tls' // https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html const ca = `-----BEGIN CERTIFICATE----- ...` connectionOptions = { ..., ssl: { rejectUnauthorized: true, ca, checkServerIdentity: (host, cert) => { const error = tls.checkServerIdentity(host, cert) if ( error && !cert.subject.CN.endsWith('.rds.amazonaws.com') ) { return error } } } } Corresponding RDS.ParameterGroups values should be set to enforce TLS connections.","keywords":"","version":"Next"},{"title":"Contributing","type":0,"sectionRef":"#","url":"/docs/intro/contributing","content":"Contributing In the spirit of Open Source Software, everyone is very welcome to contribute to this repository. Feel free to raise issues or to submit Pull Requests. Before contributing to the project, make sure to have a look at our Code of Conduct.","keywords":"","version":"Next"},{"title":"Early return","type":0,"sectionRef":"#","url":"/docs/intro/early-interrupt","content":"Early return Some middlewares might need to stop the whole execution flow and return a response immediately. If you want to do this you can invoke return response in your middleware. Note: this will totally stop the execution of successive middlewares in any phase (before, after, onError) and returns an early response (or an error) directly at the Lambda level. If your middlewares do a specific task on every request like output serialization, error handling or clean, these won't be invoked in this case. They will have to be handled before the return. In this example, we can use this capability for building a sample caching middleware: // some function that calculates the cache id based on the current event const calculateCacheId = (event) => { /* ... */ } const storage = {} // middleware const cacheMiddleware = (options) => { let cacheKey const cacheMiddlewareBefore = async (request) => { cacheKey = options.calculateCacheId(request.event) if (options.storage.hasOwnProperty(cacheKey)) { // exits early and returns the value from the cache if it's already there return options.storage[cacheKey] } } const cacheMiddlewareAfter = async (request) => { // stores the calculated response in the cache options.storage[cacheKey] = request.response } return { before: cacheMiddlewareBefore, after: cacheMiddlewareAfter } } // sample usage const handler = middy((event, context) => { /* ... */ }).use( cacheMiddleware({ calculateCacheId, storage }) ) ","keywords":"","version":"Next"},{"title":"Getting started","type":0,"sectionRef":"#","url":"/docs/intro/getting-started","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"Getting started","url":"/docs/intro/getting-started#install","content":"To install middy, you can use NPM: npmYarnpnpm npm install --save @middy/core If you are using TypeScript, you will also want to make sure that you have installed the @types/aws-lambda peer-dependency: npmYarnpnpm npm install --save-dev @types/aws-lambda ","version":"Next","tagName":"h2"},{"title":"Usage​","type":1,"pageTitle":"Getting started","url":"/docs/intro/getting-started#usage","content":"As you will see in the next example, using middy is very simple and requires just few steps: Write your Lambda handlers as usual, focusing mostly on implementing the bare business logic for them.Import middy and all the middlewares you want to use.Wrap your handler in the middy() factory function. This will return a new enhanced instance of your original handler, to which you will be able to attach the middlewares you need.Attach all the middlewares you need using the function .use(somemiddleware()) ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"Getting started","url":"/docs/intro/getting-started#example","content":"import middy from '@middy/core' import middleware1 from 'sample-middleware1' import middleware2 from 'sample-middleware2' import middleware3 from 'sample-middleware3' const lambdaHandler = (event, context) => { /* your business logic */ } export const handler = middy(lambdaHandler) handler .use(middleware1()) .use(middleware2()) .use(middleware3()) .use() takes a single middleware or an array of middlewares, so you can attach multiple middlewares in a single call: import middy from "@middy/core" import middleware1 from "sample-middleware1" import middleware2 from "sample-middleware2" import middleware3 from "sample-middleware3" const middlewares = [middleware1(), middleware2(), middleware3()] const lambdaHandler = (event, context) => { /* your business logic */ }; export const handler = middy(lambdaHandler) handler.use(middlewares) You can also attach inline middlewares by using the functions .before, .after and .onError. For a more detailed use case and examples check the Writing a middleware section. ","version":"Next","tagName":"h2"},{"title":"History","type":0,"sectionRef":"#","url":"/docs/intro/history","content":"","keywords":"","version":"Next"},{"title":"A brief history of Middy​","type":1,"pageTitle":"History","url":"/docs/intro/history#a-brief-history-of-middy","content":"Middy was started in the early days of AWS Lambda (~2016) and it was initially only used to remove duplication in a big serverless project with tons of lambdas. Only in August 2017 Middy's source code was released on GitHub making it an open source project.2017-08-03: First commit2017-09-04: v0.2.1 First release2020-04-25: v1.0.0 Released2020 Review by @lmammino2020 Review by @willfarrell2021: v2.0.0 Coming soon2021-04-01: v2.0.0 Released2021-02-02: 2021 Review from @lmammino2022-05-12: v3.0.0 Released2022-11-24: v4.0.0 Released Fun Fact: The adding of the emoji-icon was the 2nd commit to the project. ","version":"Next","tagName":"h2"},{"title":"Handling Errors","type":0,"sectionRef":"#","url":"/docs/intro/handling-errors","content":"Handling Errors But, what happens when there is an error? When there is an error, the regular control flow is stopped and the execution is moved back to all the middlewares that implemented a special phase called onError, following the same order as after. Every onError middleware can decide to handle the error and create a proper response or to delegate the error to the next middleware. When a middleware handles the error and creates a response, the execution is still propagated to all the other error middlewares and they have a chance to update or replace the response as needed. At the end of the error middlewares sequence, the response is returned to the user. If no middleware manages the error, the Lambda execution fails reporting the unmanaged error. // Initialize response request.response = request.response ?? {} // Add to response request.response.add = 'more' // Override an error request.error = new Error('...') // handle the error return request.response ","keywords":"","version":"Next"},{"title":"Hooks","type":0,"sectionRef":"#","url":"/docs/intro/hooks","content":"Hooks Middy provides hooks into it's core to allow for monitoring, setup, and cleaning that may not be possible within a middleware. In order of execution beforePrefetch(): Triggered once before middlewares are attached and prefetches are executed.requestStart(): Triggered on every request before the first middleware.beforeMiddleware/afterMiddleware(fctName): Triggered before/after every before, after, and onError middleware function. The function name is passed in, this is why all middlewares use a verbose naming pattern.beforeHandler/afterHandler(): Triggered before/after the handler.requestEnd(request): Triggered right before the response is returned, including thrown errors. See Profiling for example usage.","keywords":"","version":"Next"},{"title":"How it works","type":0,"sectionRef":"#","url":"/docs/intro/how-it-works","content":"","keywords":"","version":"Next"},{"title":"Execution order​","type":1,"pageTitle":"How it works","url":"/docs/intro/how-it-works#execution-order","content":"Middlewares have two phases: before and after. The before phase, happens before the handler is executed. In this code the response is not created yet, so you will have access only to the request. The after phase, happens after the handler is executed. In this code you will have access to both the request and the response. If you have three middlewares attached (as in the image above), this is the expected order of execution: middleware1 (before)middleware2 (before)middleware3 (before)handlermiddleware3 (after)middleware2 (after)middleware1 (after) Notice that in the after phase, middlewares are executed in inverted order, this way the first handler attached is the one with the highest priority as it will be the first able to change the request and last able to modify the response before it gets sent to the user. ","version":"Next","tagName":"h2"},{"title":"Influence","type":0,"sectionRef":"#","url":"/docs/intro/influence","content":"Influence Middy has been one of the first projects to encourage the adoption of middlewares to simplify code reuse and best practices within the context of Lambda. Since middy started to gain popularity in the Node.js ecosystem, we have seen some independent projects taking the same ideas to other ecosystems: .Net port Voxel.MiddyNet @vgaltesGoLang port Vesper Do you have a similar project? Let us know.","keywords":"","version":"Next"},{"title":"Sponsoring","type":0,"sectionRef":"#","url":"/docs/intro/sponsoring","content":"Sponsoring If Middy is adding value to your project or organization and you would like to support its long term maintenance, becoming a sponsor is a great way to do that. GitHub Sponsors","keywords":"","version":"Next"},{"title":"Release Cycle","type":0,"sectionRef":"#","url":"/docs/intro/release-cycle","content":"Release Cycle Each major release has a two (2) month Alpha period, one (1) month Beta, before a full release and becomes Stable. Each release goes into Maintenance after nine (9) months, as the next release enters Alpha. This time period is chosen for alignment with AWS Lambda nodejs runtime releases. All Node.js Long-Term Support (LTS) releases that have AWS Lambda runtimes are supported. Version\tStatus\tAlpha Release\tStable Release\tEnd-of-Lifev5\tScoping\t2023-06-01\t2023-09-01\t2025-04-30 v4\tStable\t2022-10-17\t2022-11-24\t2023-09-11 v3\tDeprecated\t2022-01-04\t2022-05-12\t2022-12-31 v2\tDeprecated\t2021-01-24\t2021-04-01\t2022-05-12 v1\tDeprecated\t2018-05-20\t2020-04-25\t2021-04-01 v0\tDeprecated\t2017-08-03\t2017-09-04\t2020-04-25 Dates are subject to change. If your organization requires a longer maintenance period of Middy, please reach out.","keywords":"","version":"Next"},{"title":"Testing","type":0,"sectionRef":"#","url":"/docs/intro/testing","content":"Testing caution This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub. As of Middy v3, by default it will trigger an Abort signal shortly before a lambda times out to allow your handler to safely stop up and middleware to clean before the lambda terminates. When writing tests for lambda handlers wrapped with middy you'll need to account for this. There are a few approaches: Set middy(handler, { timeoutEarlyInMillis: 0 }) to alternatively disable the creation of the AbortController.Set middy(handler, { timeoutEarlyResponse: () => {} }) to disable the timeout error from being thrown using a no-op.Set context.getRemainingTimeInMillis = falsy to disable the creation of the AbortController. When using Middy cache and cacheExpiry in unit tests for functions in your code, it is important to conditionally disable them for test cases by setting both Middy options fields as follows: { cache: false, cacheExpiry: 0, ... } Failing to do so may make the tests end with unfinished worker processes. Although they may still succeed, this can cause issues and timeout errors, namely in CI/CD environments. An example of a message generated by Jest unit tests and which signals the need for this is as follows: A worker process has failed to exit gracefully and has been force exited. This is likely caused by tests leaking due to improper teardown. Try running with --detectOpenHandles to find leaks. Active timers can also cause this, ensure that .unref() was called on them. ","keywords":"","version":"Next"},{"title":"Use with TypeScript","type":0,"sectionRef":"#","url":"/docs/intro/typescript","content":"Use with TypeScript Middy can be used with TypeScript with typings built in in every official package. Here's an example of how you might be using Middy with TypeScript for a Lambda receiving events from API Gateway: import middy from '@middy/core' import { APIGatewayProxyEvent, APIGatewayProxyResult } from 'aws-lambda' async function lambdaHandler (event: APIGatewayProxyEvent): Promise<APIGatewayProxyResult> { // the returned response will be checked against the type `APIGatewayProxyResult` return { statusCode: 200, body: `Hello from ${event.path}` } } let handler = middy(lambdaHandler) .use(someMiddleware) .use(someOtherMiddleware) export default handler You can also write custom middlewares with TypeScript.","keywords":"","version":"Next"},{"title":"Powertools for AWS Lambda","type":0,"sectionRef":"#","url":"/docs/integrations/lambda-powertools","content":"","keywords":"","version":"Next"},{"title":"Intro​","type":1,"pageTitle":"Powertools for AWS Lambda","url":"/docs/integrations/lambda-powertools#intro","content":"Powertools is a collection of utilities that can be used independently or together to help you build production-ready serverless applications. Currently, Powertools provides the following utilities that are compatible with Middy: Logger - Structured logging made easier with a middleware to capture key fields from the Lambda context, cold starts, and more. Compatible with Amazon CloudWatch, Datadog, and more.Tracer - An opinionated wrapper around AWS X-Ray SDK for Node.js with a middleware to automatically capture traces for function invocations, HTTP requests, and AWS SDK calls, and more.Metrics - Create Amazon CloudWatch custom metrics asynchronously with a middleware that takes care of capturing cold starts, and flushes metrics to CloudWatch in EMF-formatted batches.Idempotency - Middleware to make your Lambda functions idempotent and prevent duplicate execution based on payload content. ","version":"Next","tagName":"h2"},{"title":"Logger​","type":1,"pageTitle":"Powertools for AWS Lambda","url":"/docs/integrations/lambda-powertools#logger","content":"Key features: Capturing key fields from the Lambda context, cold starts, and structure logging output as JSON.Logging Lambda invocation events when instructed (disabled by default).Printing all the logs only for a percentage of invocations via log sampling (disabled by default).Appending additional keys to structured logs at any point in time.Providing a custom log formatter (Bring Your Own Formatter) to output logs in a structure compatible with your organization’s Logging RFC. ","version":"Next","tagName":"h2"},{"title":"Install​","type":1,"pageTitle":"Powertools for AWS Lambda","url":"/docs/integrations/lambda-powertools#install","content":"npmYarnpnpm npm install --save @aws-lambda-powertools/logger ","version":"Next","tagName":"h3"},{"title":"Options​","type":1,"pageTitle":"Powertools for AWS Lambda","url":"/docs/integrations/lambda-powertools#options","content":"Class constructor accepts the following options, which are all optional: logLevel (string|LogLevel): Log level to use. Defaults to INFO, but you can use any of the following values: SILENT, DEBUG, INFO, WARN, ERROR, CRITICAL.serviceName (string): Service name to use that will be used in all log statements. Defaults to service_undefined.sampleRateValue (number): number between 0.0 and 1 to determine the sample rate for debug logging. Defaults to 0 (no debub logging). Middleware accepts the following options: logger (Logger) (required): An instance of the Logger class.option (object) (optional): An object with the following keys: logEvent (boolean) (optional): Whether to log the Lambda invocation event. Defaults to false.clearState (boolean) (optional): Whether to clear the logger state after each invocation. Defaults to false. ","version":"Next","tagName":"h3"},{"title":"Sample usage​","type":1,"pageTitle":"Powertools for AWS Lambda","url":"/docs/integrations/lambda-powertools#sample-usage","content":"import middy from '@middy/core'; import { Logger, injectLambdaContext } from '@aws-lambda-powertools/logger'; const logger = new Logger({ serviceName: 'serverlessAirline' }); const lambdaHandler = async (_event, _context) => { logger.info('This is an INFO log with some context', { foo: { bar: 'baz' } }); }; export const handler = middy(lambdaHandler) .use(injectLambdaContext(logger)); The above code will output the following log: { "cold_start": true, "function_arn": "arn:aws:lambda:eu-west-1:123456789012:function:shopping-cart-api-lambda-prod-eu-west-1", "function_memory_size": 128, "function_request_id": "c6af9ac6-7b61-11e6-9a41-93e812345678", "function_name": "shopping-cart-api-lambda-prod-eu-west-1", "level": "INFO", "message": "This is an INFO log with some context", "foo": { "bar": "baz" }, "service": "serverlessAirline", "timestamp": "2021-12-12T21:21:08.921Z", "xray_trace_id": "abcdef123456abcdef123456abcdef123456" } As you can see, the log entry includes several fields that are automatically captured by the Logger utility, and that can help you better understand the context of the log entry. For example, the cold_start field indicates whether the Lambda function was cold started or not, and the xray_trace_id field contains the AWS X-Ray trace ID for the Lambda invocation. This is useful when you're troubleshooting a problem and want to correlate the logs with the traces. The Logger utility also allows you to append arbitary keys to the log entry at both the global level, at the invocation level, and at the single log level. For example, there might be some keys that you want to include in all log entries, such as the environment key to differentiate between the prod and dev environments, or in other cases you might want to include some keys only for a specific log entry, such as the customer_id key to identify the customer that triggered the Lambda invocation. Additionally, you can also configure Logger to log the Lambda invocation event, which can be useful when you're troubleshooting a problem and want to see the event that triggered the Lambda invocation. Finally, Logger allows you to define a custom log formatter to output logs in a different JSON structure from the default one. This is useful when you want to output logs in a structure that is compatible with your organization's requirements. ","version":"Next","tagName":"h3"},{"title":"Tracer​","type":1,"pageTitle":"Powertools for AWS Lambda","url":"/docs/integrations/lambda-powertools#tracer","content":"Key features: Auto-capturing cold start and service name as annotations, and responses or full exceptions as metadata.Automatically tracing HTTP(S) clients and generating segments for each request.Supporting tracing functions via decorators, middleware, and manual instrumentation.Supporting tracing AWS SDK v2 and v3 via AWS X-Ray SDK for Node.js.Auto-disable tracing when not running in the Lambda environment. ","version":"Next","tagName":"h2"},{"title":"Install​","type":1,"pageTitle":"Powertools for AWS Lambda","url":"/docs/integrations/lambda-powertools#install-1","content":"npmYarnpnpm npm install --save @aws-lambda-powertools/tracer ","version":"Next","tagName":"h3"},{"title":"Options​","type":1,"pageTitle":"Powertools for AWS Lambda","url":"/docs/integrations/lambda-powertools#options-1","content":"Class constructor accepts the following options, which are all optional: serviceName (string): Service name to use that will be used in all log statements. Defaults to service_undefined.enabled (boolean): Whether to enable tracing. Defaults to true.captureHTTPsRequests (boolean): Whether to capture outgoing HTTP(S) requests as segment metadata. Defaults to true. Middleware accepts the following options: tracer (Tracer) (required): An instance of the Tracer class.option (object) (optional): An object with the following keys: captureResponse (boolean) (optional): Whether to capture the Lambda invocation result as segment metadata. Defaults to true. ","version":"Next","tagName":"h3"},{"title":"Sample usage​","type":1,"pageTitle":"Powertools for AWS Lambda","url":"/docs/integrations/lambda-powertools#sample-usage-1","content":"import middy from '@middy/core'; import { Tracer, captureLambdaHandler } from '@aws-lambda-powertools/tracer'; import { SecretsManagerClient } from '@aws-sdk/client-secrets-manager'; const tracer = new Tracer({ serviceName: 'serverlessAirline' }); const client = tracer.captureAWSv3Client( new SecretsManagerClient({}) ); const lambdaHandler = async (_event, _context) => { tracer.putAnnotation('successfulBooking', true); }; export const handler = middy(lambdaHandler) .use(captureLambdaHandler(tracer)); The above code instructs the Tracer utility to create a custom segment named ## index.handler and to add an annotation to it with the key successfulBooking and the value true. The segment name is automatically generated based on the handler name, and the ## prefix is used to indicate that this is a custom segment. The Tracer utility also automatically captures the cold start and service name as annotations, and the Lambda invocation result or any error thrown as metadata. The segment data will be automatically sent to AWS X-Ray when the Lambda function completes its execution. Tracer also automatically captures and traces any outgoing HTTP(S) requests made by the Lambda function. For example, if your function makes a request to a custom API, the Tracer utility will automatically create a segment for that request which will appear in your trace data and service map. Additionally, it will also capture any AWS SDK calls made by the function, and do the same for them. ","version":"Next","tagName":"h3"},{"title":"Metrics​","type":1,"pageTitle":"Powertools for AWS Lambda","url":"/docs/integrations/lambda-powertools#metrics","content":"Key features: Aggregating up to 100 metrics using a single CloudWatch EMF object.Validating your metrics against common metric definitions mistakes (for example, metric unit, values, max dimensions, max metrics).Metrics are created asynchronously by the CloudWatch service. You do not need any custom stacks, and there is no impact to Lambda function latency.Creating a one-off metric with different dimensions. If you're new to Amazon CloudWatch, there are a few terms like Namespace, Dimensions, Unit, etc, that you must be aware of before you start using the Metrics utility. To learn more about these terms, see the documentation on PowerTools Metrics. ","version":"Next","tagName":"h2"},{"title":"Install​","type":1,"pageTitle":"Powertools for AWS Lambda","url":"/docs/integrations/lambda-powertools#install-2","content":"npmYarnpnpm npm install --save @aws-lambda-powertools/metrics ","version":"Next","tagName":"h3"},{"title":"Options​","type":1,"pageTitle":"Powertools for AWS Lambda","url":"/docs/integrations/lambda-powertools#options-2","content":"Class constructor accepts the following options, which are all optional: serviceName (string): Service name to use that will be used in all log statements. Defaults to service_undefined.defaultNamespace (string): Default namespace to use for all metrics. Defaults to default_namespace. Middleware accepts the following options: metrics (Metric) (required): An instance of the Metrics class.option (object) (optional): An object with the following keys: throwOnEmptyMetrics (boolean) (optional): Whether to throw an error if no metrics were added. Defaults to false.captureColdStartMetric (boolean) (optional): Whether to capture the cold start metric. Defaults to true. ","version":"Next","tagName":"h3"},{"title":"Sample usage​","type":1,"pageTitle":"Powertools for AWS Lambda","url":"/docs/integrations/lambda-powertools#sample-usage-2","content":"import middy from '@middy/core'; import { Metrics, MetricUnits, logMetrics } from '@aws-lambda-powertools/metrics'; const metrics = new Metrics({ namespace: 'serverlessAirline', serviceName: 'orders' }); const lambdaHandler = async (_event: unknown, _context: unknown): Promise<void> => { metrics.addMetric('successfulBooking', MetricUnits.Count, 1); }; export const handler = middy(lambdaHandler) .use(logMetrics(metrics)); The above code will output a CloudWatch EMF object similar to the following: { "successfulBooking": 1.0, "_aws": { "Timestamp": 1592234975665, "CloudWatchMetrics": [{ "Namespace": "successfulBooking", "Dimensions": [ [ "service" ] ], "Metrics": [{ "Name": "successfulBooking", "Unit": "Count" }] }], "service": "orders" } } This EMF object will be sent to CloudWatch asynchronously by the CloudWatch service. You do not need any custom stacks, and there is no impact to Lambda function latency. The Metrics utility supports high-resolution metrics as well as multi-value metrics. It also allows you to add default dimensions that are used in all the metrics emitted by your application or create a one-off metric with different dimensions. ","version":"Next","tagName":"h3"},{"title":"Idempotency​","type":1,"pageTitle":"Powertools for AWS Lambda","url":"/docs/integrations/lambda-powertools#idempotency","content":"Key features: Prevent Lambda handler from executing more than once on the same event payload during a time windowEnsure Lambda handler returns the same result when called with the same payloadSelect a subset of the event as the idempotency key using JMESPath expressionsSet a time window in which records with the same payload should be considered duplicatesExpires in-progress executions if the Lambda function times out halfway through The property of idempotency means that an operation does not cause additional side effects if it is called more than once with the same input parameters. Idempotent operations will return the same result when they are called multiple times with the same parameters. This makes idempotent operations safe to retry. ","version":"Next","tagName":"h2"},{"title":"Install​","type":1,"pageTitle":"Powertools for AWS Lambda","url":"/docs/integrations/lambda-powertools#install-3","content":"npmYarnpnpm npm install --save @aws-lambda-powertools/idempotency @aws-sdk/client-dynamodb @aws-sdk/lib-dynamodb ","version":"Next","tagName":"h3"},{"title":"Options​","type":1,"pageTitle":"Powertools for AWS Lambda","url":"/docs/integrations/lambda-powertools#options-3","content":"Middleware accepts the following options: persistenceStore (BasePersistenceLayer): Class used to interact with a persistence store.config (IdempotencyConfig) (optional): Configuration object to customize the default behavior of the idempotency feature. ","version":"Next","tagName":"h3"},{"title":"Sample usage​","type":1,"pageTitle":"Powertools for AWS Lambda","url":"/docs/integrations/lambda-powertools#sample-usage-3","content":"import middy from '@middy/core'; import { randomUUID } from 'node:crypto'; import { makeHandlerIdempotent } from '@aws-lambda-powertools/idempotency/middleware'; import { DynamoDBPersistenceLayer } from '@aws-lambda-powertools/idempotency/dynamodb'; const persistenceStore = new DynamoDBPersistenceLayer({ tableName: 'idempotencyTableName', }); const createSubscriptionPayment = async ( event ) => { // ... create payment return { id: randomUUID(), productId: event.productId, }; }; export const handler = middy( async (event, _context) => { try { const payment = await createSubscriptionPayment(event); return { paymentId: payment.id, message: 'success', statusCode: 200, }; } catch (error) { throw new Error('Error creating payment'); } } ).use( makeHandlerIdempotent({ persistenceStore, }) ); ","version":"Next","tagName":"h3"},{"title":"Best practices​","type":1,"pageTitle":"Powertools for AWS Lambda","url":"/docs/integrations/lambda-powertools#best-practices","content":"","version":"Next","tagName":"h2"},{"title":"Using multiple utilities​","type":1,"pageTitle":"Powertools for AWS Lambda","url":"/docs/integrations/lambda-powertools#using-multiple-utilities","content":"You can use multiple Powertools utilities in your Lambda function by chaining the respective middlewares together. When doing so the Powertools team recommends that you place the Tracer middleware at the top of the middleware chain, followed by the Logger and any other middlewares. This is because the Tracer middleware will create a new segment for each Lambda invocation, and the Logger might want to log the event that triggered the Lambda invocation. With this placement you will be able to have a segment that closely matches the actual duration of your Lambda function, and you will be able to see the event that triggered the function invocation before it's potentially modified by other middlewares. export const handler = middy(() => { /* ... */ }) .use(captureLambdaHandler(tracer)) .use(injectLambdaContext(logger, { logEvent: true })) .use(logMetrics(metrics, { captureColdStartMetric: true })); ","version":"Next","tagName":"h3"},{"title":"Cleaning up on early returns​","type":1,"pageTitle":"Powertools for AWS Lambda","url":"/docs/integrations/lambda-powertools#cleaning-up-on-early-returns","content":"As discussed in the early return section, some middlewares might need to stop the whole execution flow and return a response immediately. In this case, if you are writing your own middleware that will work with the Powertools utilities, you must make sure to clean up the utilities before returning. For example, if you are using the Tracer utility, you must make sure to call the close method so that the Tracer can properly close the current segment and send it to X-Ray. Likewise, if you are using the Metrics utility, it's a good practice to call the clearMetrics method so that the Metrics utility can emit the metrics that were stored in the buffer and avoid you losing any data. Following the example described in the linked section, you can clean up all the utilities by doing the following: import { cleanupMiddlewares } from '@aws-lambda-powertools/commons'; // some function that calculates the cache id based on the current event const calculateCacheId = (event) => { /* ... */ } const storage = {} // middleware const cacheMiddleware = (options) => { let cacheKey const cacheMiddlewareBefore = async (request) => { cacheKey = options.calculateCacheId(request.event) if (options.storage.hasOwnProperty(cacheKey)) { // clean up the Powertools utilities before returning cleanupMiddlewares() // exits early and returns the value from the cache if it's already there return options.storage[cacheKey] } } const cacheMiddlewareAfter = async (request) => { // stores the calculated response in the cache options.storage[cacheKey] = request.response } return { before: cacheMiddlewareBefore, after: cacheMiddlewareAfter } } // sample usage const handler = middy((event, context) => { /* ... */ }) .use(captureLambdaHandler(tracer)) .use(injectLambdaContext(logger, { logEvent: true })) .use(logMetrics(metrics, { captureColdStartMetric: true })) .use( cacheMiddleware({ calculateCacheId, storage }) ); ","version":"Next","tagName":"h3"},{"title":"Utilities","type":0,"sectionRef":"#","url":"/docs/intro/utilities","content":"Utilities caution This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","keywords":"","version":"Next"},{"title":"Streamify Response","type":0,"sectionRef":"#","url":"/docs/intro/streamify-response","content":"","keywords":"","version":"Next"},{"title":"Lambda Function URL Example​","type":1,"pageTitle":"Streamify Response","url":"/docs/intro/streamify-response#lambda-function-url-example","content":"import middy from '@middy/core' import { createReadableStream } from '@datastream/core' export const handler = middy({ streamifyResponse: true }).handler( (event, context) => { return { statusCode: 200, headers: { 'Content-Type': 'text/csv' }, body: createReadableStream('...') // or string } } ) ","version":"Next","tagName":"h2"},{"title":"Lambda InvokeWithResponseStream Example​","type":1,"pageTitle":"Streamify Response","url":"/docs/intro/streamify-response#lambda-invokewithresponsestream-example","content":"import middy from '@middy/core' import { createReadableStream } from '@datastream/core' export const handler = middy({ streamifyResponse: true }).handler( (event, context) => { return createReadableStream('...') // or string } ) ","version":"Next","tagName":"h2"},{"title":"Requesting Lambda​","type":1,"pageTitle":"Streamify Response","url":"/docs/intro/streamify-response#requesting-lambda","content":"import { LambdaClient, InvokeWithResponseStreamCommand } from '@aws-sdk/client-lambda' const lambda = new LambdaClient() const res = await lambda.send( new InvokeWithResponseStreamCommand({ FunctionName: 'function-name', Payload: JSON.stringify({...}) }) ) const decoder = new TextDecoder('utf-8') let body = '' for await (const chunk of res.EventStream) { if (chunk?.PayloadChunk?.Payload) { body += decoder.decode(Buffer.from(chunk.PayloadChunk.Payload)) } } ","version":"Next","tagName":"h3"},{"title":"appconfig","type":0,"sectionRef":"#","url":"/docs/middlewares/appconfig","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"appconfig","url":"/docs/middlewares/appconfig#install","content":"To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/appconfig npm install --save-dev @aws-sdk/client-appconfig ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"appconfig","url":"/docs/middlewares/appconfig#options","content":"AwsClient (object) (default AppConfigClient): AppConfigClient class constructor (i.e. that has been instrumented with AWS XRay). Must be from @aws-sdk/client-appconfig.awsClientOptions (object) (default undefined): Options to pass to AppConfigClient class constructor.awsClientAssumeRole (string) (default undefined): Internal key where secrets are stored. See @middy/sts on to set this.awsClientCapture (function) (default undefined): Enable XRay by passing captureAWSv3Client from aws-xray-sdk in.fetchData (object) (required): Mapping of internal key name to API request parameters.disablePrefetch (boolean) (default false): On cold start requests will trigger early if they can. Setting awsClientAssumeRole disables prefetch.cacheKey (string) (default appconfig): Cache key for the fetched data responses. Must be unique across all middleware.cacheExpiry (number) (default -1): How long fetch data responses should be cached for. -1: cache forever, 0: never cache, n: cache for n ms.setToContext (boolean) (default false): Store credentials to request.context. NOTES: Lambda is required to have IAM permission for appconfig:GetConfiguration ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"appconfig","url":"/docs/middlewares/appconfig#sample-usage","content":"import middy from '@middy/core' import appConfig from '@middy/appconfig' const handler = middy((event, context) => { const response = { statusCode: 200, headers: {}, body: JSON.stringify({ message: 'hello world' }) } return response }) handler.use( appConfig({ fetchData: { config: { Application: '...', ClientId: '...', Configuration: '...', Environment: '...' } } }) ) ","version":"Next","tagName":"h2"},{"title":"Bundling​","type":1,"pageTitle":"appconfig","url":"/docs/middlewares/appconfig#bundling","content":"To exclude @aws-sdk add @aws-sdk/client-appconfig to the exclude list. ","version":"Next","tagName":"h2"},{"title":"dynamodb","type":0,"sectionRef":"#","url":"/docs/middlewares/dynamodb","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"dynamodb","url":"/docs/middlewares/dynamodb#install","content":"To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/dynamodb npm install --save-dev @aws-sdk/client-dynamodb @aws-sdk/util-dynamodb ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"dynamodb","url":"/docs/middlewares/dynamodb#options","content":"AwsClient (object) (default DynamoDBClient): DynamoDBClient class constructor (i.e. that has been instrumented with AWS XRay). Must be from @aws-sdk/client-dynamodb.awsClientOptions (object) (default undefined): Options to pass to DynamoDBClient class constructor.awsClientAssumeRole (string) (default undefined): Internal key where secrets are stored. See @middy/sts on to set this.awsClientCapture (function) (default undefined): Enable XRay by passing captureAWSv3Client from aws-xray-sdk in.fetchData (object) (required): Mapping of internal key name to API request parameters.disablePrefetch (boolean) (default false): On cold start requests will trigger early if they can. Setting awsClientAssumeRole disables prefetch.cacheKey (string) (default dynamodb): Cache key for the fetched data responses. Must be unique across all middleware.cacheExpiry (number) (default -1): How long fetch data responses should be cached for. -1: cache forever, 0: never cache, n: cache for n ms.setToContext (boolean) (default false): Store credentials to request.context. NOTES: Lambda is required to have IAM permission for dynamodb:BatchGetItemCommand ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"dynamodb","url":"/docs/middlewares/dynamodb#sample-usage","content":"import middy from '@middy/core' import dynamodb from '@middy/dynamodb' const handler = middy((event, context) => { const response = { statusCode: 200, headers: {}, body: JSON.stringify({ message: 'hello world' }) } return response }) handler.use( dynamodb({ fetchData: { config: { TableName: '...' Key: { pk: '0000' } } } }) ) ","version":"Next","tagName":"h2"},{"title":"Bundling​","type":1,"pageTitle":"dynamodb","url":"/docs/middlewares/dynamodb#bundling","content":"To exclude @aws-sdk add @aws-sdk/client-dynamodb to the exclude list. ","version":"Next","tagName":"h2"},{"title":"cloudwatch-metrics","type":0,"sectionRef":"#","url":"/docs/middlewares/cloudwatch-metrics","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"cloudwatch-metrics","url":"/docs/middlewares/cloudwatch-metrics#install","content":"To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/cloudwatch-metrics ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"cloudwatch-metrics","url":"/docs/middlewares/cloudwatch-metrics#options","content":"namespace (string) (optional): Defaults to aws-embedded-metrics. Sets the CloudWatch namespace that extracted metrics should be published to.dimensions (Record<String, String> | Record<String, String>[]) (optional): Explicitly overrides all dimensions. This will remove the default dimensions. You can provide an empty array to record all metrics without dimensions. For dimensions defaults and configuration see the aws-embedded-metrics docs. ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"cloudwatch-metrics","url":"/docs/middlewares/cloudwatch-metrics#sample-usage","content":"const middy = require('@middy/core') const cloudwatchMetrics = require('@middy/cloudwatch-metrics') const handler = middy((event, context) => { context.metrics.putMetric('ProcessingLatency', 100, 'Milliseconds') context.metrics.setProperty( 'RequestId', '422b1569-16f6-4a03-b8f0-fe3fd9b100f8' ) }) handler.use( cloudwatchMetrics({ namespace: 'myAppliction', dimensions: [{ Action: 'Buy' }] }) ) ","version":"Next","tagName":"h2"},{"title":"do-not-wait-for-empty-event-loop","type":0,"sectionRef":"#","url":"/docs/middlewares/do-not-wait-for-empty-event-loop","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"do-not-wait-for-empty-event-loop","url":"/docs/middlewares/do-not-wait-for-empty-event-loop#install","content":"To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/do-not-wait-for-empty-event-loop ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"do-not-wait-for-empty-event-loop","url":"/docs/middlewares/do-not-wait-for-empty-event-loop#options","content":"By default the middleware sets the callbackWaitsForEmptyEventLoop property to false only in the before phase, meaning you can override it in handler to true if needed. You can set it in all steps with the options: runOnBefore (defaults to true) - sets property before running your handlerrunOnAfter (defaults to false)runOnError (defaults to false) ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"do-not-wait-for-empty-event-loop","url":"/docs/middlewares/do-not-wait-for-empty-event-loop#sample-usage","content":"import middy from '@middy/core' import doNotWaitForEmptyEventLoop from '@middy/do-not-wait-for-empty-event-loop' const handler = middy((event, context) => { return {} }) handler.use(doNotWaitForEmptyEventLoop({runOnError: true})) // When Lambda runs the handler it gets context with // callbackWaitsForEmptyEventLoop property set to false handler(event, context, (_, response) => { t.is(context.callbackWaitsForEmptyEventLoop,false) }) ","version":"Next","tagName":"h2"},{"title":"error-logger","type":0,"sectionRef":"#","url":"/docs/middlewares/error-logger","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"error-logger","url":"/docs/middlewares/error-logger#install","content":"To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/error-logger ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"error-logger","url":"/docs/middlewares/error-logger#options","content":"logger property: a function (default console.error) that is used to define the logging logic. It receives the Error object as first and only parameter. ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"error-logger","url":"/docs/middlewares/error-logger#sample-usage","content":"import middy from '@middy/core' import errorLogger from '@middy/error-logger' const handler = middy((event, context) => { // your handler logic }) handler .use(errorLogger()) ","version":"Next","tagName":"h2"},{"title":"http-content-encoding","type":0,"sectionRef":"#","url":"/docs/middlewares/http-content-encoding","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"http-content-encoding","url":"/docs/middlewares/http-content-encoding#install","content":"To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/http-content-encoding ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"http-content-encoding","url":"/docs/middlewares/http-content-encoding#options","content":"br (object) (default {}): zlib.createBrotliCompress brotliOptionsgzip (object) (default {}): zlib.createGzip gzipOptionsdeflate (object) (default {}): zlib.createDeflate deflateOptionsoverridePreferredEncoding (array[string]) (optional): Override the preferred encoding order, most browsers prefer gzip over br, even though br has higher compression. Default: [] NOTES: Important For br encoding NodeJS defaults to 11. Levels 10 & 11 have been shown to have lower performance for the level of compression they apply. Testing is recommended to ensure the right balance of compression & performance. ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"http-content-encoding","url":"/docs/middlewares/http-content-encoding#sample-usage","content":"import middy from '@middy/core' import httpContentNegotiation from '@middy/http-content-negotiation' import httpContentEncoding from '@middy/http-content-encoding' import { constants } from 'node:zlib' export const handler = middy() .use(httpContentNegotiation()) .use(httpContentEncoding({ br: { params: { [constants.BROTLI_PARAM_MODE]: constants.BROTLI_MODE_TEXT, // adjusted for UTF-8 text [constants.BROTLI_PARAM_QUALITY]: 7 } }, overridePreferredEncoding: ['br', 'gzip', 'deflate'] }) .handler((event, context) => { return { statusCode: 200, body: '{...}' } }) ","version":"Next","tagName":"h2"},{"title":"Using streams​","type":1,"pageTitle":"http-content-encoding","url":"/docs/middlewares/http-content-encoding#using-streams","content":"import middy from '@middy/core' import httpContentNegotiation from '@middy/http-content-negotiation' import httpContentEncoding from '@middy/http-content-encoding' import { constants } from 'node:zlib' import { createReadableStream } from '@datastream/core' export const handler = middy({ streamifyResponse: true }) .use(httpContentNegotiation()) .use(httpContentEncoding({ br: { params: { [constants.BROTLI_PARAM_MODE]: constants.BROTLI_MODE_TEXT, // adjusted for UTF-8 text [constants.BROTLI_PARAM_QUALITY]: 7 } }, overridePreferredEncoding: ['br', 'gzip', 'deflate'] }) .handler((event, context) => { return { statusCode: 200, body: createReadableStream('{...}') } }) ","version":"Next","tagName":"h3"},{"title":"event-normalizer","type":0,"sectionRef":"#","url":"/docs/middlewares/event-normalizer","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"event-normalizer","url":"/docs/middlewares/event-normalizer#install","content":"To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/event-normalizer ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"event-normalizer","url":"/docs/middlewares/event-normalizer#options","content":"wrapNumbers (boolean) (default undefined): Whether to return numbers as a string instead of converting them to native JavaScript numbers. This allows for the safe round-trip transport of numbers of arbitrary size. For DynamoDB Events only. ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"event-normalizer","url":"/docs/middlewares/event-normalizer#sample-usage","content":"import middy from '@middy/core' import eventNormalizer from '@middy/event-normalizer' const lambdaHandler = (event, context) => { const { Records } = event for (const record of Records) { // ... } } const handler = middy(lambdaHandler).use(eventNormalizer()) ","version":"Next","tagName":"h2"},{"title":"http-content-negotiation","type":0,"sectionRef":"#","url":"/docs/middlewares/http-content-negotiation","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"http-content-negotiation","url":"/docs/middlewares/http-content-negotiation#install","content":"To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/http-content-negotiation ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"http-content-negotiation","url":"/docs/middlewares/http-content-negotiation#options","content":"parseCharsets (defaults to true) - Allows enabling/disabling the charsets parsingavailableCharsets (defaults to undefined) - Allows defining the list of charsets supported by the Lambda functionparseEncodings (defaults to true) - Allows enabling/disabling the encodings parsingavailableEncodings (defaults to undefined) - Allows defining the list of encodings supported by the Lambda functionparseLanguages (defaults to true) - Allows enabling/disabling the languages parsingavailableLanguages (defaults to undefined) - Allows defining the list of languages supported by the Lambda functionparseMediaTypes (defaults to true) - Allows enabling/disabling the media types parsingavailableMediaTypes (defaults to undefined) - Allows defining the list of media types supported by the Lambda functionfailOnMismatch (defaults to true) - If set to true it will throw an HTTP NotAcceptable (406) exception when the negotiation fails for one of the headers (e.g. none of the languages requested are supported by the app) ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"http-content-negotiation","url":"/docs/middlewares/http-content-negotiation#sample-usage","content":"import middy from '@middy/core' import httpContentNegotiation from '@middy/http-content-negotiation' import httpHeaderNormalizer from '@middy/http-header-normalizer' import httpErrorHandler from '@middy/http-error-handler' export const handler = middy((event, context) => { let message, body switch (event.preferredLanguage) { case 'it-it': message = 'Ciao Mondo' break case 'fr-fr': message = 'Bonjour le monde' break default: message = 'Hello world' } switch (event.preferredMediaType) { case 'application/xml': body = `<message>${message}</message>` break case 'application/yaml': body = `---\\nmessage: ${message}` break case 'application/json': body = JSON.stringify({ message }) break default: body = message } return { statusCode: 200, body } }) handler .use(httpHeaderNormalizer()) .use(httpContentNegotiation({ parseCharsets: false, parseEncodings: false, availableLanguages: ['it-it', 'fr-fr', 'en'], availableMediaTypes: ['application/xml', 'application/yaml', 'application/json', 'text/plain'] })) .use(httpErrorHandler()) ","version":"Next","tagName":"h2"},{"title":"http-cors","type":0,"sectionRef":"#","url":"/docs/middlewares/http-cors","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"http-cors","url":"/docs/middlewares/http-cors#install","content":"To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/http-cors ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"http-cors","url":"/docs/middlewares/http-cors#options","content":"credentials (bool) (optional): if true, sets Access-Control-Allow-Credentials (default false)disableBeforePreflightResponse (bool) (optional): if false, replies automatically to cors preflight requests. Set to true if handling the response in a custom way (default true)headers (string) (optional): value to put in Access-Control-Allow-Headers (default: false)methods (string) (optional): value to put in Access-Control-Allow-Methods (default: false)getOrigin (function(incomingOrigin:string, options)) (optional): take full control of the generating the returned origin. Defaults to using the origin or origins option.origin (string) (optional): origin to put in the header (default: "*")origins (array) (optional): An array of allowed origins. The incoming origin is matched against the list and is returned if present.exposeHeaders (string) (optional): value to put in Access-Control-Expose-Headers (default: false)maxAge (string) (optional): value to put in Access-Control-Max-Age header (default: null)requestHeaders (string) (optional): value to put in Access-Control-Request-Headers (default: false)requestMethods (string) (optional): value to put in Access-Control-Request-Methods (default: false)cacheControl (string) (optional): value to put in Cache-Control header on pre-flight (OPTIONS) requests (default: null) import middy from '@middy/core' import httpErrorHandler from '@middy/http-error-handler' import cors from '@middy/http-cors' const handler = middy((event, context) => { throw new createError.UnprocessableEntity() }) handler.use(httpErrorHandler()).use(cors()) // when Lambda runs the handler... handler({}, {}, (_, response) => { t.is(response.headers['Access-Control-Allow-Origin'], '*') t.deepEqual(response, { statusCode: 422, body: 'Unprocessable Entity' }) }) ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"http-cors","url":"/docs/middlewares/http-cors#sample-usage","content":"import middy from '@middy/core' import cors from '@middy/http-cors' const handler = middy((event, context) => { return {} }) handler.use(cors()) // when Lambda runs the handler... handler({}, {}, (_, response) => { t.is(response.headers['Access-Control-Allow-Origin'], '*') }) ","version":"Next","tagName":"h2"},{"title":"http-event-normalizer","type":0,"sectionRef":"#","url":"/docs/middlewares/http-event-normalizer","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"http-event-normalizer","url":"/docs/middlewares/http-event-normalizer#install","content":"To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/http-event-normalizer ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"http-event-normalizer","url":"/docs/middlewares/http-event-normalizer#sample-usage","content":"import middy from '@middy/core' import httpEventNormalizer from '@middy/http-event-normalizer' const handler = middy((event, context) => { console.log(`Hello user ${event.pathParameters.userId}`) // might produce `Hello user undefined`, but not an error return {} }) handler.use(httpEventNormalizer()) ","version":"Next","tagName":"h2"},{"title":"http-header-normalizer","type":0,"sectionRef":"#","url":"/docs/middlewares/http-header-normalizer","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"http-header-normalizer","url":"/docs/middlewares/http-header-normalizer#install","content":"To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/http-header-normalizer ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"http-header-normalizer","url":"/docs/middlewares/http-header-normalizer#options","content":"canonical (bool) (optional): if true, modifies the headers to canonical format, otherwise the headers are normalized to lowercase (default false)defaultHeaders (object) (optional): Default headers to used if any are missing. i.e. Content-Type (default {})normalizeHeaderKey (function) (optional): a function that accepts an header name as a parameter and returns its canonical representation. ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"http-header-normalizer","url":"/docs/middlewares/http-header-normalizer#sample-usage","content":"import middy from '@middy/core' import httpHeaderNormalizer from '@middy/http-header-normalizer' const handler = middy() .use(httpHeaderNormalizer()) .handler((event, context) => { return {} }) ","version":"Next","tagName":"h2"},{"title":"http-error-handler","type":0,"sectionRef":"#","url":"/docs/middlewares/http-error-handler","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"http-error-handler","url":"/docs/middlewares/http-error-handler#install","content":"To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/http-error-handler ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"http-error-handler","url":"/docs/middlewares/http-error-handler#options","content":"logger (defaults to console.error) - a logging function that is invoked with the current error as an argument. You can pass false if you don't want the logging to happen.fallbackMessage (default to null) - When non-http errors (those without `statusCode) occur you can catch them by setting a fallback message to be used. These will be returned with a 500 status code. ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"http-error-handler","url":"/docs/middlewares/http-error-handler#sample-usage","content":"import middy from '@middy/core' import httpErrorHandler from '@middy/http-error-handler' const handler = middy((event, context) => { throw new createError.UnprocessableEntity() }) handler .use(httpErrorHandler()) // when Lambda runs the handler... handler({}, {}, (_, response) => { t.deepEqual(response,{ statusCode: 422, body: 'Unprocessable Entity' }) }) ","version":"Next","tagName":"h2"},{"title":"http-json-body-parser","type":0,"sectionRef":"#","url":"/docs/middlewares/http-json-body-parser","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"http-json-body-parser","url":"/docs/middlewares/http-json-body-parser#install","content":"To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/http-json-body-parser ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"http-json-body-parser","url":"/docs/middlewares/http-json-body-parser#options","content":"reviver (function) (optional): A reviver parameter may be passed which will be used JSON.parseing the body.disableContentTypeError (boolean) (optional): Skip throwing 415 when Content-Type is invalid. Default: true, will default to false in next major version. ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"http-json-body-parser","url":"/docs/middlewares/http-json-body-parser#sample-usage","content":"import middy from '@middy/core' import httpHeaderNormalizer from '@middy/http-header-normalizer' import httpJsonBodyParser from '@middy/http-json-body-parser' const handler = middy((event, context) => { return {} }) handler.use(httpHeaderNormalizer()).use(httpJsonBodyParser()) // invokes the handler const event = { headers: { 'Content-Type': 'application/json' // It is important that the request has the proper content type. }, body: JSON.stringify({ foo: 'bar' }) } handler(event, {}, (_, body) => { t.is(body, { foo: 'bar' }) }) ","version":"Next","tagName":"h2"},{"title":"http-multipart-body-parser","type":0,"sectionRef":"#","url":"/docs/middlewares/http-multipart-body-parser","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"http-multipart-body-parser","url":"/docs/middlewares/http-multipart-body-parser#install","content":"To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/http-multipart-body-parser ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"http-multipart-body-parser","url":"/docs/middlewares/http-multipart-body-parser#options","content":"busboy (object) (optional): defaults to {} and it can be used to pass extraparameters to the internal busboy instance at creation time. Checkout the official documentation for more information on the supported options.charset (string) (default utf8): it can be used to change default charset.disableContentTypeError (boolean) (optional): Skip throwing 415 when Content-Type is invalid. Default: true, will default to false in next major version. Note: this middleware will buffer all the data as it is processed internally by busboy, so, if you are using this approach to parse significantly big volumes of data, keep in mind that all the data will be allocated in memory. This is somewhat inevitable with Lambdas (as the data is already encoded into the JSON in memory as Base64), but it's good to keep this in mind and evaluate the impact on you application. If you really have to deal with big files, then you might also want to consider to allowing your users to directly upload files to S3 ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"http-multipart-body-parser","url":"/docs/middlewares/http-multipart-body-parser#sample-usage","content":"import middy from '@middy/core' import httpHeaderNormalizer from '@middy/http-header-normalizer' import httpMultipartBodyParser from '@middy/http-multipart-body-parser' const handler = middy((event, context) => { return {} }) handler.use(httpHeaderNormalizer()).use(httpMultipartBodyParser()) // invokes the handler const event = { headers: { 'Content-Type': 'multipart/form-data; boundary=----WebKitFormBoundaryppsQEwf2BVJeCe0M' }, body: 'LS0tLS0tV2ViS2l0Rm9ybUJvdW5kYXJ5cHBzUUV3ZjJCVkplQ2UwTQ0KQ29udGVudC1EaXNwb3NpdGlvbjogZm9ybS1kYXRhOyBuYW1lPSJmb28iDQoNCmJhcg0KLS0tLS0tV2ViS2l0Rm9ybUJvdW5kYXJ5cHBzUUV3ZjJCVkplQ2UwTS0t', isBase64Encoded: true } handler(event, {}, (_, body) => { t.is(body, { foo: 'bar' }) }) ","version":"Next","tagName":"h2"},{"title":"http-security-headers","type":0,"sectionRef":"#","url":"/docs/middlewares/http-security-headers","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"http-security-headers","url":"/docs/middlewares/http-security-headers#install","content":"To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/http-security-headers ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"http-security-headers","url":"/docs/middlewares/http-security-headers#options","content":"dnsPrefetchControl controls browser DNS prefetchingexpectCt for handling Certificate Transparency (Future Feature)frameguard to prevent clickjackinghidePoweredBy to remove the Server/X-Powered-By headerhsts for HTTP Strict Transport SecurityieNoOpen sets X-Download-Options for IE8+noSniff to keep clients from sniffing the MIME typereferrerPolicy to hide the Referer headerxssFilter adds some small XSS protections ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"http-security-headers","url":"/docs/middlewares/http-security-headers#sample-usage","content":"import middy from '@middy/core' import httpSecurityHeaders from '@middy/http-security-headers' const handler = middy((event, context) => { return {} }) handler .use(httpSecurityHeaders()) ","version":"Next","tagName":"h2"},{"title":"http-partial-response","type":0,"sectionRef":"#","url":"/docs/middlewares/http-partial-response","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"http-partial-response","url":"/docs/middlewares/http-partial-response#install","content":"To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/http-partial-response ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"http-partial-response","url":"/docs/middlewares/http-partial-response#options","content":"filteringKeyName (string) (optional): defaults to fields the querystring key that will be used to filter the response. ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"http-partial-response","url":"/docs/middlewares/http-partial-response#sample-usage","content":"import middy from '@middy/core' import httpPartialResponse from '@middy/http-partial-response' const handler = middy((event, context) => { const response = { statusCode: 200, body: { firstname: 'John', lastname: 'Doe', gender: 'male', age: 30, address: { street: 'Avenue des Champs-Élysées', city: 'Paris' } } } return response }) handler.use(httpPartialResponse()) const event = { queryStringParameters: { fields: 'firstname,lastname' } } handler(event, {}, (_, response) => { expect(response.body).toEqual({ firstname: 'John', lastname: 'Doe' }) }) ","version":"Next","tagName":"h2"},{"title":"http-response-serializer","type":0,"sectionRef":"#","url":"/docs/middlewares/http-response-serializer","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"http-response-serializer","url":"/docs/middlewares/http-response-serializer#install","content":"To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/http-response-serializer ","version":"Next","tagName":"h2"},{"title":"Configuration​","type":1,"pageTitle":"http-response-serializer","url":"/docs/middlewares/http-response-serializer#configuration","content":"The middleware is configured by defining some serializers. { serializers: [ { regex: /^application\\/xml$/, serializer: ({ body }) => `<message>${body}</message>`, }, { regex: /^application\\/json$/, serializer: ({ body }) => JSON.stringify(body) }, { regex: /^text\\/plain$/, serializer: ({ body }) => body } ], default: 'application/json' } The default (optional) option is used if the request and handler don't specify what type is wanted. ","version":"Next","tagName":"h2"},{"title":"Serializer Functions​","type":1,"pageTitle":"http-response-serializer","url":"/docs/middlewares/http-response-serializer#serializer-functions","content":"When a matching serializer is found, the Content-Type header is set and the serializer function is run. The function is passed the entire response object, and should return either a string or an object. If a string is returned, the body attribute of the response is updated. If an object with a body attribute is returned, the entire response object is replaced. This is useful if you want to manipulate headers or add additional attributes in the Lambda response. ","version":"Next","tagName":"h2"},{"title":"Content Type Negotiation​","type":1,"pageTitle":"http-response-serializer","url":"/docs/middlewares/http-response-serializer#content-type-negotiation","content":"The header is not the only way the middleware decides which serializer to execute. The content type is determined in the following order: event.requiredContentType -- allows the handler to override everything elseThe Accept header via acceptevent.preferredContentType -- allows the handler to override the default, but lets the request ask firstdefault middleware configuration All options allow for multiple types to be specified in your order of preference, and the first matching serializer will be executed. When planning to use Accept, an external input, it is recommended to validate that it is an expected value. ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"http-response-serializer","url":"/docs/middlewares/http-response-serializer#sample-usage","content":"import middy from '@middy/core' import httpResponseSerializer from '@middy/http-response-serializer' const handler = middy((event, context) => { const body = 'Hello World' return { statusCode: 200, body } }) handler .use(httpResponseSerializer({ serializers: [ { regex: /^application\\/xml$/, serializer: ({ body }) => `<message>${body}</message>`, }, { regex: /^application\\/json$/, serializer: ({ body }) => JSON.stringify(body) }, { regex: /^text\\/plain$/, serializer: ({ body }) => body } ], defaultContentType: 'application/json' })) const event = { headers: { 'Accept': 'application/xml;q=0.9, text/x-dvi; q=0.8, text/x-c' } } handler(event, {}, (_, response) => { t.is(response.body,'<message>Hello World</message>') }) ","version":"Next","tagName":"h2"},{"title":"http-urlencode-path-parser","type":0,"sectionRef":"#","url":"/docs/middlewares/http-urlencode-path-parser","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"http-urlencode-path-parser","url":"/docs/middlewares/http-urlencode-path-parser#install","content":"To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/http-urlencode-path-parser ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"http-urlencode-path-parser","url":"/docs/middlewares/http-urlencode-path-parser#options","content":"None ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"http-urlencode-path-parser","url":"/docs/middlewares/http-urlencode-path-parser#sample-usage","content":"import middy from '@middy/core' import httpUrlEncodePathParser from '@middy/http-urlencode-path-parser' const handler = middy((event, context) => { return event.body // propagates the body as response }) handler.use(httpUrlEncodePathParser()) // When Lambda runs the handler with a sample event... const event = { pathParameters: { name: encodeURIComponent('Mîddy') } } handler(event, {}, (_, body) => { t.deepEqual(body, { name: 'Mîddy' }) }) ","version":"Next","tagName":"h2"},{"title":"http-urlencode-body-parser","type":0,"sectionRef":"#","url":"/docs/middlewares/http-urlencode-body-parser","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"http-urlencode-body-parser","url":"/docs/middlewares/http-urlencode-body-parser#install","content":"To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/http-urlencode-body-parser ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"http-urlencode-body-parser","url":"/docs/middlewares/http-urlencode-body-parser#options","content":"disableContentTypeError (boolean) (optional): Skip throwing 415 when Content-Type is invalid. Default: true, will default to false in next major version. ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"http-urlencode-body-parser","url":"/docs/middlewares/http-urlencode-body-parser#sample-usage","content":"import middy from '@middy/core' import httpHeaderNormalizer from '@middy/http-header-normalizer' import httpUrlEncodeBodyParser from '@middy/http-urlencode-body-parser' const handler = middy((event, context) => { return event.body // propagates the body as response }) handler.use(httpHeaderNormalizer()).use(httpUrlEncodeBodyParser()) // When Lambda runs the handler with a sample event... const event = { headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, body: 'frappucino=muffin&goat%5B%5D=scone&pond=moose' } handler(event, {}, (_, body) => { t.deepEqual(body, { frappucino: 'muffin', 'goat[]': 'scone', pond: 'moose' }) }) ","version":"Next","tagName":"h2"},{"title":"input-output-logger","type":0,"sectionRef":"#","url":"/docs/middlewares/input-output-logger","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"input-output-logger","url":"/docs/middlewares/input-output-logger#install","content":"To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/input-output-logger ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"input-output-logger","url":"/docs/middlewares/input-output-logger#options","content":"logger function (default console.log): logging function that accepts an objectawsContext boolean (default false): Include AWS Lambda context object to the loggeromitPaths string[] (default []): property accepts an array of paths that will be used to remove particular fields import the logged objects. This could serve as a simple way to redact sensitive data from logs (default []). Examples: name, user.name, users.[].namemask string: String to replace omitted values with. Example: ***omitted***replacer function: stringify replacer function ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"input-output-logger","url":"/docs/middlewares/input-output-logger#sample-usage","content":"import middy from '@middy/core' import inputOutputLogger from '@middy/input-output-logger' const handler = middy((event, context) => { const response = { statusCode: 200, headers: {}, body: JSON.stringify({ message: 'hello world' }) } return response }) handler.use(inputOutputLogger()) import middy from '@middy/core' import inputOutputLogger from '@middy/input-output-logger' import pino from 'pino' const logger = pino() const handler = middy((event, context) => { // ... return response }) handler.use( inputOutputLogger({ logger: (request) => { const child = logger.child(request.context) child.info(request.event ?? request.response) }, awsContext: true }) ) ","version":"Next","tagName":"h2"},{"title":"Official middlewares","type":0,"sectionRef":"#","url":"/docs/middlewares/intro","content":"","keywords":"","version":"Next"},{"title":"Misc​","type":1,"pageTitle":"Official middlewares","url":"/docs/middlewares/intro#misc","content":"cloudwatch-metrics: Hydrates lambda's context.metrics property with an instance of AWS MetricLoggerdo-not-wait-for-empty-event-loop: Sets callbackWaitsForEmptyEventLoop property to falseerror-logger: Logs errorsinput-output-logger: Logs request and responsewarmup: Used to pre-warm a lambda function ","version":"Next","tagName":"h2"},{"title":"Request Transformation​","type":1,"pageTitle":"Official middlewares","url":"/docs/middlewares/intro#request-transformation","content":"event-normalizer: Middleware for iterating through an AWS event records, parsing and normalizing nested events.http-content-negotiation: Parses Accept-* headers and provides utilities for content negotiation (charset, encoding, language and media type) for HTTP requestshttp-event-normalizer: Normalizes HTTP events by adding an empty object for queryStringParameters, multiValueQueryStringParameters or pathParameters if they are missing.http-header-normalizer: Normalizes HTTP header names to their canonical formathttp-json-body-parser: Automatically parses HTTP requests with JSON body and converts the body into an object. Also handles gracefully broken JSON if used in combination ofhttpErrorHandler.http-multipart-body-parser: Automatically parses HTTP requests with content type multipart/form-data and converts the body into an object.http-urlencode-body-parser: Automatically parses HTTP requests with URL encoded body (typically the result of a form submit).http-urlencode-path-parser: Automatically parses HTTP requests with URL encoded path.validator: Automatically validates incoming events and outgoing responses against custom schemas.ws-json-body-parser: Automatically parses WebSocket requests with JSON message and converts the message into an object. ","version":"Next","tagName":"h2"},{"title":"Response Transformation​","type":1,"pageTitle":"Official middlewares","url":"/docs/middlewares/intro#response-transformation","content":"http-content-encoding: Sets HTTP Content-Encoding header on response and compresses response bodyhttp-cors: Sets HTTP CORS headers on responsehttp-error-handler: Creates a proper HTTP response for errors that are created with the http-errors module and represents proper HTTP errors.http-security-headers: Applies best practice security headers to responses. It's a simplified port of HelmetJS.http-partial-response: Filter response objects attributes based on query string parameters.http-response-serializer: HTTP response serializer.sqs-partial-batch-failure: Handles partially failed SQS batches.ws-response: Forwards response to WebSocket endpoint. ","version":"Next","tagName":"h2"},{"title":"Fetch Data​","type":1,"pageTitle":"Official middlewares","url":"/docs/middlewares/intro#fetch-data","content":"appconfig: Fetch JSON configurations from AppConfig.dynamodb: Fetch configurations from DynamoDB.rds-signer: Fetches token for connecting to RDS with IAM users.s3: Fetch JSON configurations from S3.s3-object-response: Gets and write S3 object response.secrets-manager: Fetches parameters from AWS Secrets Manager.service-discovery: Fetches Service Discovery instances to be used when connecting to other AWS services.ssm: Fetches parameters from AWS Systems Manager Parameter Store.sts: Fetches credentials to assumes IAM roles for connection to other AWS services. ","version":"Next","tagName":"h2"},{"title":"rds-signer","type":0,"sectionRef":"#","url":"/docs/middlewares/rds-signer","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"rds-signer","url":"/docs/middlewares/rds-signer#install","content":"To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/rds-signer npm install --save-dev @aws-sdk/rds-signer ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"rds-signer","url":"/docs/middlewares/rds-signer#options","content":"AwsClient (object) (default Signer): Signer class constructor (i.e. that has been instrumented with AWS XRay). Must be from @aws-sdk/rds-signer.awsClientOptions (object) (optional): Options to pass to Signer class constructor.fetchData (object) (required): Mapping of internal key name to API request parameters.disablePrefetch (boolean) (default false): On cold start requests will trigger early if they can. Setting awsClientAssumeRole disables prefetch.cacheKey (string) (default rds-signer): Cache key for the fetched data responses. Must be unique across all middleware.cacheExpiry (number) (default -1): How long fetch data responses should be cached for. -1: cache forever, 0: never cache, n: cache for n ms.setToContext (boolean) (default false): Store role tokens to request.context. NOTES: Lambda is required to have IAM permission for rds-db:connect with a resource like arn:aws:rds-db:#{AWS::Region}:#{AWS::AccountId}:dbuser:${database_resource}/${iam_role} ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"rds-signer","url":"/docs/middlewares/rds-signer#sample-usage","content":"import middy from '@middy/core' import rdsSigner from '@middy/rds-signer' const handler = middy((event, context) => { const response = { statusCode: 200, headers: {}, body: JSON.stringify({ message: 'hello world' }) } return response }) handler.use( rdsSigner({ fetchData: { rdsToken: { region: 'ca-central-1', hostname: '***.rds.amazonaws.com', username: 'iam_role', database: 'postgres', port: 5432 } } }) ) ","version":"Next","tagName":"h2"},{"title":"Bundling​","type":1,"pageTitle":"rds-signer","url":"/docs/middlewares/rds-signer#bundling","content":"To exclude @aws-sdk add @aws-sdk/rds-signer to the exclude list. ","version":"Next","tagName":"h2"},{"title":"s3-object-response","type":0,"sectionRef":"#","url":"/docs/middlewares/s3-object-response","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"s3-object-response","url":"/docs/middlewares/s3-object-response#install","content":"To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/s3-object-response npm install --save-dev @aws-sdk/client-s3 ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"s3-object-response","url":"/docs/middlewares/s3-object-response#options","content":"bodyType (string) (required): How to pass in the s3 object through the handler. Can be stream or promise.AwsClient (object) (default S3Client): S3Client class constructor (i.e. that has been instrumented with AWS XRay). Must be from @aws-sdk/client-s3.awsClientOptions (object) (optional): Options to pass to S3Client class constructor.awsClientCapture (function) (optional): Enable XRay by passing captureAWSv3Client from aws-xray-sdk in.httpsCapture (function) (optional): Enable XRay by passing captureHTTPsGlobal from aws-xray-sdk in.disablePrefetch (boolean) (default false): On cold start requests will trigger early if they can. Setting awsClientAssumeRole disables prefetch. NOTES: The response from the handler must match the allowed parameters for S3.writeGetObjectResponse, excluding RequestRoute and RequestToken.Lambda is required to have IAM permission for s3-object-lambda:WriteGetObjectResponse ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"s3-object-response","url":"/docs/middlewares/s3-object-response#sample-usage","content":"","version":"Next","tagName":"h2"},{"title":"Stream​","type":1,"pageTitle":"s3-object-response","url":"/docs/middlewares/s3-object-response#stream","content":"import zlib from 'zlib' import middy from '@middy/core' import s3ObjectResponse from '@middy/s3-object-response' const handler = middy((event, context) => { const readStream = context.s3Object const transformStream = zlib.createBrotliCompress() return { Body: readStream.pipe(transformStream) } }) handler.use( s3ObjectResponse({ bodyType: 'stream' }) ) ","version":"Next","tagName":"h3"},{"title":"Promise​","type":1,"pageTitle":"s3-object-response","url":"/docs/middlewares/s3-object-response#promise","content":"import zlib from 'zlib' import middy from '@middy/core' import s3ObjectResponse from '@middy/s3-object-response' const handler = middy(async (event, context) => { let body = await context.s3Object // change body return { Body: JSON.stringify(body) } }) handler.use( s3ObjectResponse({ bodyType: 'promise' }) ) ","version":"Next","tagName":"h3"},{"title":"Bundling​","type":1,"pageTitle":"s3-object-response","url":"/docs/middlewares/s3-object-response#bundling","content":"To exclude @aws-sdk add @aws-sdk/client-s3 to the exclude list. ","version":"Next","tagName":"h2"},{"title":"secrets-manager","type":0,"sectionRef":"#","url":"/docs/middlewares/secrets-manager","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"secrets-manager","url":"/docs/middlewares/secrets-manager#install","content":"To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/secrets-manager npm install --save-dev @aws-sdk/client-secrets-manager ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"secrets-manager","url":"/docs/middlewares/secrets-manager#options","content":"AwsClient (object) (default SecretsManagerClient): SecretsManagerClient class constructor (i.e. that has been instrumented with AWS XRay). Must be from @aws-sdk/client-secrets-manager.awsClientOptions (object) (optional): Options to pass to SecretsManagerClient class constructor.awsClientAssumeRole (string) (optional): Internal key where secrets are stored. See @middy/sts on to set this.awsClientCapture (function) (optional): Enable XRay by passing captureAWSv3Client from aws-xray-sdk in.fetchData (object) (required): Mapping of internal key name to API request parameter SecretId.fetchRotationDate (boolean|object) (default false): Boolean to apply to all or mapping of internal key name to boolean. This indicates what secrets should fetch and cached based on NextRotationDate/LastRotationDate/LastChangedDate. cacheExpiry of -1 will use NextRotationDate, while any other value will be added to the LastRotationDate or LastChangedDate, whichever is more recent. If secrets have different rotation schedules, use multiple instances of this middleware.disablePrefetch (boolean) (default false): On cold start requests will trigger early if they can. Setting awsClientAssumeRole disables prefetch.cacheKey (string) (default secrets-manager): Cache key for the fetched data responses. Must be unique across all middleware.cacheExpiry (number) (default -1): How long fetch data responses should be cached for. -1: cache forever, 0: never cache, n: cache for n ms.setToContext (boolean) (default false): Store secrets to request.context. NOTES: Lambda is required to have IAM permission for secretsmanager:GetSecretValue. If using fetchRotationDate add secretsmanager:DescribeSecret in as well. ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"secrets-manager","url":"/docs/middlewares/secrets-manager#sample-usage","content":"import middy from '@middy/core' import secretsManager from '@middy/secrets-manager' const handler = middy((event, context) => { return {} }) handler.use( secretsManager({ fetchData: { apiToken: 'dev/api_token' }, awsClientOptions: { region: 'us-east-1' }, setToContext: true }) ) // Before running the function handler, the middleware will fetch from Secrets Manager handler(event, context, (_, response) => { // assuming the dev/api_token has two keys, 'Username' and 'Password' t.is(context.apiToken.Username, 'username') t.is(context.apiToken.Password, 'password') }) ","version":"Next","tagName":"h2"},{"title":"Bundling​","type":1,"pageTitle":"secrets-manager","url":"/docs/middlewares/secrets-manager#bundling","content":"To exclude @aws-sdk add @aws-sdk/client-secrets-manager to the exclude list. ","version":"Next","tagName":"h2"},{"title":"s3","type":0,"sectionRef":"#","url":"/docs/middlewares/s3","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"s3","url":"/docs/middlewares/s3#install","content":"To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/s3 npm install --save-dev @aws-sdk/client-s3 ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"s3","url":"/docs/middlewares/s3#options","content":"AwsClient (object) (default S3Client): S3Client class constructor (i.e. that has been instrumented with AWS XRay). Must be from @aws-sdk/client-appconfig.awsClientOptions (object) (default undefined): Options to pass to S3Client class constructor.awsClientAssumeRole (string) (default undefined): Internal key where secrets are stored. See @middy/sts on to set this.awsClientCapture (function) (default undefined): Enable XRay by passing captureAWSv3Client from aws-xray-sdk in.fetchData (object) (required): Mapping of internal key name to API request parameters.disablePrefetch (boolean) (default false): On cold start requests will trigger early if they can. Setting awsClientAssumeRole disables prefetch.cacheKey (string) (default s3): Cache key for the fetched data responses. Must be unique across all middleware.cacheExpiry (number) (default -1): How long fetch data responses should be cached for. -1: cache forever, 0: never cache, n: cache for n ms.setToContext (boolean) (default false): Store credentials to request.context. NOTES: Lambda is required to have IAM permission for s3:GetObjectIf the file is stored without ContentType, you can set it on the response using ResponseContentType as part of the input ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"s3","url":"/docs/middlewares/s3#sample-usage","content":"import middy from '@middy/core' import s3 from '@middy/s3' const handler = middy((event, context) => { console.log(context.config) const response = { statusCode: 200, headers: {}, body: JSON.stringify({ message: 'hello world' }) } return response }) handler.use( s3({ fetchData: { config: { Bucket: '...', Key: '...' } }, setToContext: true }) ) ","version":"Next","tagName":"h2"},{"title":"Bundling​","type":1,"pageTitle":"s3","url":"/docs/middlewares/s3#bundling","content":"To exclude @aws-sdk add @aws-sdk/client-s3 to the exclude list. ","version":"Next","tagName":"h2"},{"title":"service-discovery","type":0,"sectionRef":"#","url":"/docs/middlewares/service-discovery","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"service-discovery","url":"/docs/middlewares/service-discovery#install","content":"To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/service-discovery npm install --save-dev @aws-sdk/client-servicediscovery ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"service-discovery","url":"/docs/middlewares/service-discovery#options","content":"AwsClient (object) (default ServiceDiscoveryClient): ServiceDiscoveryClient class constructor (i.e. that has been instrumented with AWS XRay). Must be from @aws-sdk/client-servicediscovery.awsClientOptions (object) (default undefined): Options to pass to ServiceDiscoveryClient class constructor.awsClientAssumeRole (string) (default undefined): Internal key where secrets are stored. See @middy/sts on to set this.awsClientCapture (function) (default undefined): Enable XRay by passing captureAWSv3Client from aws-xray-sdk in.fetchData (object) (required): Mapping of internal key name to API request parameters.disablePrefetch (boolean) (default false): On cold start requests will trigger early if they can. Setting awsClientAssumeRole disables prefetch.cacheKey (string) (default sts): Cache key for the fetched data responses. Must be unique across all middleware.cacheExpiry (number) (default -1): How long fetch data responses should be cached for. -1: cache forever, 0: never cache, n: cache for n ms.setToContext (boolean) (default false): Store credentials to request.context. NOTES: Lambda is required to have IAM permission for servicediscovery:DiscoverInstances ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"service-discovery","url":"/docs/middlewares/service-discovery#sample-usage","content":"import middy from '@middy/core' import serviceDiscovery from '@middy/service-discovery' const handler = middy((event, context) => { const response = { statusCode: 200, headers: {}, body: JSON.stringify({ message: 'hello world' }) } return response }) handler.use( serviceDiscovery({ fetchData: { instances: { NamespaceName: '...', ServiceName: '...' } } }) ) ","version":"Next","tagName":"h2"},{"title":"Bundling​","type":1,"pageTitle":"service-discovery","url":"/docs/middlewares/service-discovery#bundling","content":"To exclude @aws-sdk add @aws-sdk/client-servicediscovery to the exclude list. ","version":"Next","tagName":"h2"},{"title":"sqs-partial-batch-failure","type":0,"sectionRef":"#","url":"/docs/middlewares/sqs-partial-batch-failure","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"sqs-partial-batch-failure","url":"/docs/middlewares/sqs-partial-batch-failure#install","content":"To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/sqs-partial-batch-failure # Required for types only npm install --save-dev @aws-sdk/client-sqs ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"sqs-partial-batch-failure","url":"/docs/middlewares/sqs-partial-batch-failure#options","content":"logger (function) (optional): A function that will be called when a record fails to be processed. Default: console.error ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"sqs-partial-batch-failure","url":"/docs/middlewares/sqs-partial-batch-failure#sample-usage","content":"import middy from '@middy/core' import sqsBatch from '@middy/sqs-partial-batch-failure' const lambdaHandler = (event, context) => { const recordPromises = event.Records.map(async (record, index) => { /* Custom message processing logic */ return record }) return Promise.allSettled(recordPromises) } export const handler = middy(lambdaHandler).use(sqsBatch()) ","version":"Next","tagName":"h2"},{"title":"Important​","type":1,"pageTitle":"sqs-partial-batch-failure","url":"/docs/middlewares/sqs-partial-batch-failure#important","content":"The value ReportBatchItemFailures must be added to your Lambda's FunctionResponseTypes in the EventSourceMapping. See Reporting batch item failures and Lambda EventSourceMapping When being used with @middy/validator, ensure errors are caught and handled properly to avoid infinite loops. ","version":"Next","tagName":"h2"},{"title":"sts","type":0,"sectionRef":"#","url":"/docs/middlewares/sts","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"sts","url":"/docs/middlewares/sts#install","content":"To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/sts npm install --save-dev @aws-sdk/client-sts ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"sts","url":"/docs/middlewares/sts#options","content":"AwsClient (object) (default STSClient): STSClient class constructor (i.e. that has been instrumented with AWS XRay). Must be from @aws-sdk/client-sts.awsClientOptions (object) (optional): Options to pass to STSClient class constructor.awsClientCapture (function) (optional): Enable XRay by passing captureAWSv3Client from aws-xray-sdk in.fetchData (object) (required): Mapping of internal key name to API request parameters.disablePrefetch (boolean) (default false): On cold start requests will trigger early if they can. Setting awsClientAssumeRole disables prefetch.cacheKey (string) (default sts): Cache key for the fetched data responses. Must be unique across all middleware.cacheExpiry (number) (default -1): How long fetch data responses should be cached for. -1: cache forever, 0: never cache, n: cache for n ms.setToContext (boolean) (default false): Store credentials to request.context. NOTES: Lambda is required to have IAM permission for sts:AssumeRolesetToContext are included for legacy support and should be avoided for performance and security reasons. See main documentation for best practices. ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"sts","url":"/docs/middlewares/sts#sample-usage","content":"import middy from '@middy/core' import sts from '@middy/sts' const handler = middy((event, context) => { const response = { statusCode: 200, headers: {}, body: JSON.stringify({ message: 'hello world' }) } return response }) handler.use( sts({ fetchData: { assumeRole: { RoleArn: '...', RoleSessionName: '' // optional } } }) ) ","version":"Next","tagName":"h2"},{"title":"Bundling​","type":1,"pageTitle":"sts","url":"/docs/middlewares/sts#bundling","content":"To exclude @aws-sdk add @aws-sdk/client-sts to the exclude list. ","version":"Next","tagName":"h2"},{"title":"Third-party middlewares","type":0,"sectionRef":"#","url":"/docs/middlewares/third-party","content":"","keywords":"","version":"Next"},{"title":"Version 2.x - 4.x​","type":1,"pageTitle":"Third-party middlewares","url":"/docs/middlewares/third-party#version-2x---4x","content":"dazn-lambda-powertools: A collection of middlewares, AWS clients and helper libraries that make working with lambda easier.middy-ajv: AJV validator optimized for performancemiddy-console-logger: Middleware for filtering logs printed over console logging methods. If the level of the console logging method is equal or bigger than configured level, the log is printed, Otherwise, it is ignored.middy-event-loop-tracer: Middleware for dumping active tasks with their stacktraces in the event queue just before AWS Lambda function timeouts. So you can understand what was going on in the function when timeout happens.middy-idempotent: idempotency middleware for middymiddy-invocation: Middleware for accessing current AWS Lambda invocation event and context from anywhere without need to passing event and context as arguments through your code.- middy-lesslog: Middleware for lesslog, a teeny-tiny and severless-ready logging utilitymiddy-jsonapi: JSONAPI middleware for middymiddy-lesslog: Middleware for lesslog, a teeny-tiny and severless-ready logging utilitymiddy-profiler: Middleware for profiling CPU on AWS Lambda during invocation and shows what methods/modules consume what percent of CPU timemiddy-rds: Creates RDS connection using knex or pgmiddy-recaptcha: reCAPTCHA validation middlewaremiddy-sparks-joi: Joi validator@iress/middy-http-path-router: Routes AWS API Gateway events to handlers based on static and dynamic paths ","version":"Next","tagName":"h2"},{"title":"Version 2.x - 3.x​","type":1,"pageTitle":"Third-party middlewares","url":"/docs/middlewares/third-party#version-2x---3x","content":"aws-lambda-powertools-typescript: A suite of utilities for AWS Lambda Functions that makes structured logging, creating custom metrics asynchronously and tracing with AWS X-Ray easier logger: Structured logging made easier, and a middleware to enrich log items with key details of the Lambda contextmetrics: Custom Metrics created asynchronously via CloudWatch Embedded Metric Format (EMF)parameters: The Parameters utility provides high-level functions to retrieve one or multiple parameter values from AWS Systems Manager Parameter Store, AWS Secrets Manager, AWS AppConfig, Amazon DynamoDB, or your own parameter store.tracer: Utilities to trace Lambda function handlers, and both synchronous and asynchronous functions ","version":"Next","tagName":"h2"},{"title":"Version 1.x​","type":1,"pageTitle":"Third-party middlewares","url":"/docs/middlewares/third-party#version-1x","content":"middy-redis: Redis connection middlewaremiddy-extractor: Extracts data from events using expressions@keboola/middy-error-logger: middleware that catches thrown exceptions and rejected promises and logs them comprehensibly to the console@keboola/middy-event-validator: Joi powered event validation middlewaremiddy-reroute: provides complex redirect, rewrite and proxying capabilities by simply placing a rules file into your S3 bucketmiddytohof: Convert Middy middleware plugins to higher-order functions returning lambda handlerswrap-ware: A middleware wrapper which works with promises / asyncmiddy-middleware-warmup: A middy plugin to help keep your Lambdas warm during Winter@sharecover-co/middy-aws-xray-tracing: AWS X-Ray Tracing Middleware@sharecover-co/middy-http-response-serializer: This middleware serializes the response to JSON and wraps it in a 200 HTTP response@seedrs/middyjs-middleware: Collection of useful middlewaresmiddy-autoproxyresponse: A middleware that lets you return simple JavaScript objects from Lambda function handlers and converts them into LAMBDA_PROXY responsesjwt-auth: JSON web token authorization middleware based on express-jwtmiddy-mongoose-connector: MongoDB connection middleware for mongoose.js@ematipico/middy-request-response: a middleware that creates a pair of request/response objects@marcosantonocito/middy-cognito-permission: Authorization and roles permission management for the Middy framework that works with Amazon Cognitomiddy-env: Fetch, validate and type cast environment variablessqs-json-body-parser: Parse the SQS body to JSONmiddy-lesslog: Middleware for lesslog, a teeny-tiny and severless-ready logging utility ","version":"Next","tagName":"h2"},{"title":"ssm","type":0,"sectionRef":"#","url":"/docs/middlewares/ssm","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"ssm","url":"/docs/middlewares/ssm#install","content":"To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/ssm npm install --save-dev @aws-sdk/client-ssm ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"ssm","url":"/docs/middlewares/ssm#options","content":"AwsClient (object) (default SSMClient): SSMClient class constructor (i.e. that has been instrumented with AWS X-Ray). Must be from @aws-sdk/client-ssm.awsClientOptions (object) (optional): Options to pass to SSMClient class constructor.awsClientAssumeRole (string) (optional): Internal key where role tokens are stored. See @middy/sts on to set this.awsClientCapture (function) (optional): Enable AWS X-Ray by passing captureAWSv3Client from aws-xray-sdk in.fetchData (object) (required): Mapping of internal key name to API request parameter Names/Path. SecureString are automatically decrypted.disablePrefetch (boolean) (default false): On cold start requests will trigger early if they can. Setting awsClientAssumeRole disables prefetch.cacheKey (string) (default ssm): Cache key for the fetched data responses. Must be unique across all middleware.cacheExpiry (number) (default -1): How long fetch data responses should be cached for. -1: cache forever, 0: never cache, n: cache for n ms.setToContext (boolean) (default false): Store role tokens to request.context. NOTES: Lambda is required to have IAM permission for ssm:GetParameters and/or ssm:GetParametersByPath depending on what you're requesting, along with kms:Decrypt.SSM has throughput limitations. Switching to Advanced Parameter type or increasing maxRetries and retryDelayOptions.base in awsClientOptions may be required. ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"ssm","url":"/docs/middlewares/ssm#sample-usage","content":"import middy from '@middy/core' import ssm from '@middy/ssm' const handler = middy((event, context) => { return {} }) let globalDefaults = {} handler .use( ssm({ fetchData: { accessToken: '/dev/service_name/access_token', // single value dbParams: '/dev/service_name/database/', // object of values, key for each path defaults: '/dev/defaults' }, setToContext: true }) ) .before((request) => { globalDefaults = request.context.defaults.global }) import middy from '@middy/core' import { getInternal } from '@middy/util' import ssm from '@middy/ssm' const handler = middy((event, context) => { return {} }) let globalDefaults = {} handler .use( ssm({ fetchData: { defaults: '/dev/defaults' }, cacheKey: 'ssm-defaults' }) ) .use( ssm({ fetchData: { accessToken: '/dev/service_name/access_token', // single value dbParams: '/dev/service_name/database/' // object of values, key for each path }, cacheExpiry: 15 * 60 * 1000, cacheKey: 'ssm-secrets' }) ) // ... other middleware that fetch .before(async (request) => { const data = await getInternal( ['accessToken', 'dbParams', 'defaults'], request ) Object.assign(request.context, data) }) ","version":"Next","tagName":"h2"},{"title":"Bundling​","type":1,"pageTitle":"ssm","url":"/docs/middlewares/ssm#bundling","content":"To exclude @aws-sdk add @aws-sdk/client-ssm to the exclude list. ","version":"Next","tagName":"h2"},{"title":"warmup","type":0,"sectionRef":"#","url":"/docs/middlewares/warmup","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"warmup","url":"/docs/middlewares/warmup#install","content":"To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/warmup ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"warmup","url":"/docs/middlewares/warmup#options","content":"isWarmingUp: a function that accepts the event object as a parameter and returns true if the current event is a warmup event and false if it's a regular execution. The default function will check if the event object has a source property set to serverless-plugin-warmup. ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"warmup","url":"/docs/middlewares/warmup#sample-usage","content":"const middy = require('@middy/core') const warmup = require('@middy/warmup') const isWarmingUp = (event) => event.isWarmingUp === true const originalHandler = (event, context, cb) => { /* ... */ } const handler = middy(originalHandler) .use(warmup({ isWarmingUp })) ","version":"Next","tagName":"h2"},{"title":"ws-json-body-parser","type":0,"sectionRef":"#","url":"/docs/middlewares/ws-json-body-parser","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"ws-json-body-parser","url":"/docs/middlewares/ws-json-body-parser#install","content":"To install this middleware you can use NPM: npm install --save @middy/ws-json-body-parser ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"ws-json-body-parser","url":"/docs/middlewares/ws-json-body-parser#options","content":"reviver (function) (default undefined): A reviver parameter may be passed which will be used JSON.parseing the body. ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"ws-json-body-parser","url":"/docs/middlewares/ws-json-body-parser#sample-usage","content":"import middy from '@middy/core' import wsJsonBodyParserMiddleware from '@middy/ws-json-body-parser' import wsResponseMiddleware from '@middy/ws-response' export const handler = middy() .use(wsJsonBodyParserMiddleware()) .use(wsResponseMiddleware()) .handler((event) => { return event.body.message }) ","version":"Next","tagName":"h2"},{"title":"ws-response","type":0,"sectionRef":"#","url":"/docs/middlewares/ws-response","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"ws-response","url":"/docs/middlewares/ws-response#install","content":"To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/ws-response npm install --save-dev @aws-sdk/client-apigatewaymanagementapi ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"ws-response","url":"/docs/middlewares/ws-response#options","content":"AwsClient (object) (default ApiGatewayManagementApiClient): ApiGatewayManagementApi class constructor (i.e. that has been instrumented with AWS XRay). Must be from @aws-sdk/client-apigatewaymanagementapi.awsClientOptions (object) (default undefined): Options to pass to ApiGatewayManagementApiClient class constructor.awsClientAssumeRole (string) (default undefined): Internal key where secrets are stored. See @middy/sts on to set this.awsClientCapture (function) (default undefined): Enable XRay by passing captureAWSv3Client from aws-xray-sdk in.disablePrefetch (boolean) (default false): On cold start requests will trigger early if they can. Setting awsClientAssumeRole disables prefetch. NOTES: Lambda is required to have IAM permission for execute-api:ManageConnectionsIf awsClientOptions.endpoint is not set it will be set using event.requestContext.{domainName,stage}If response does not contain ConnectId, it will be set from event.requestContext.connectionId ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"ws-response","url":"/docs/middlewares/ws-response#sample-usage","content":"","version":"Next","tagName":"h2"},{"title":"API Gateway​","type":1,"pageTitle":"ws-response","url":"/docs/middlewares/ws-response#api-gateway","content":"import middy from '@middy/core' import wsResponse from '@middy/ws-response' export const handler = middy((event, context) => { return 'message' }) handler.use(wsResponse()) ","version":"Next","tagName":"h3"},{"title":"General​","type":1,"pageTitle":"ws-response","url":"/docs/middlewares/ws-response#general","content":"import middy from '@middy/core' import wsResponse from '@middy/ws-response' export const handler = middy((event, context) => { return { ConnectionId: '...', Data: 'message' } }) handler.use( wsResponse({ awsClientOptions: { endpoint: '...' } }) ) ","version":"Next","tagName":"h3"},{"title":"Bundling​","type":1,"pageTitle":"ws-response","url":"/docs/middlewares/ws-response#bundling","content":"To exclude @aws-sdk add @aws-sdk/client-apigatewaymanagementapi to the exclude list. ","version":"Next","tagName":"h2"},{"title":"http-router","type":0,"sectionRef":"#","url":"/docs/routers/http-router","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"http-router","url":"/docs/routers/http-router#install","content":"To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/http-router ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"http-router","url":"/docs/routers/http-router#options","content":"routes (array[{method, path, handler}]) (required): Array of route objects. method (string) (required): One of GET, POST, PUT, PATCH, DELETE, OPTIONS and ANY that will match to any method passed inpath (string) (required): AWS formatted path starting with /. Variable: /{id}/, Wildcard: /{proxy+}handler (function) (required): Any handler(event, context) function NOTES: When using API Gateway it may be required to prefix routes[].path with /{stage} depending on your use case.Errors should be handled as part of the router middleware stack or the lambdaHandler middleware stack. Handled errors in the later will trigger the after middleware stack of the former.Shared middlewares, connected to the router middleware stack, can only be run before the lambdaHandler middleware stack.pathParameters will automatically be set if not already set ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"http-router","url":"/docs/routers/http-router#sample-usage","content":"import middy from '@middy/core' import httpRouterHandler from '@middy/http-router' import validatorMiddleware from '@middy/validator' const getHandler = middy() .use(validatorMiddleware({eventSchema: {...} })) .handler((event, context) => { return { statusCode: 200, body: '{...}' } }) const postHandler = middy() .use(validatorMiddleware({eventSchema: {...} })) .handler((event, context) => { return { statusCode: 200, body: '{...}' } }) const routes = [ { method: 'GET', path: '/user/{id}', handler: getHandler }, { method: 'POST', path: '/user', handler: postHandler } ] export const handler = middy() .use(httpHeaderNormalizer()) .handler(httpRouterHandler(routes)) ","version":"Next","tagName":"h2"},{"title":"ws-router","type":0,"sectionRef":"#","url":"/docs/routers/ws-router","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"ws-router","url":"/docs/routers/ws-router#install","content":"To install this middleware you can use NPM: npm install --save @middy/ws-router ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"ws-router","url":"/docs/routers/ws-router#options","content":"routes (array[{routeKey, handler}]) (required): Array of route objects. routeKey (string) (required): AWS formatted route key. ie $connect, $disconnect, $defaulthandler (function) (required): Any handler(event, context, {signal}) function NOTES: Errors should be handled as part of the router middleware stack or the lambdaHandler middleware stack. Handled errors in the later will trigger the after middleware stack of the former.Shared middlewares, connected to the router middleware stack, can only be run before the lambdaHandler middleware stack. ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"ws-router","url":"/docs/routers/ws-router#sample-usage","content":"import middy from '@middy/core' import wsRouterHandler from '@middy/ws-router' import wsResponseMiddleware from '@middy/ws-response' import validatorMiddleware from '@middy/validator' const connectHandler = middy() .use(validatorMiddleware({eventSchema: {...} })) .handler((event, context) => { return 'connected' }) const disconnectHandler = middy() .use(validatorMiddleware({eventSchema: {...} })) .handler((event, context) => { return 'disconnected' }) export const handler = middy() .use(wsResponseMiddleware()) .handler(wsRouterHandler([ { routeKey: '$connect', handler: connectHandler }, { routeKey: '$disconnect', handler: disconnectHandler } ])) ","version":"Next","tagName":"h2"},{"title":"Upgrade 0.x -> 1.x","type":0,"sectionRef":"#","url":"/docs/upgrade/0-1","content":"","keywords":"","version":"Next"},{"title":"Independent packages structure​","type":1,"pageTitle":"Upgrade 0.x -> 1.x","url":"/docs/upgrade/0-1#independent-packages-structure","content":"Version 1.x of Middy features decoupled independent packages published on npm under the @middy namespace. The core middleware engine has been moved to @middy/core and all the other middlewares are moved into their own packages as well. This allows to only install the features that are needed and to keep your Lambda dependencies small. See the list below to check which packages you need based on the middlewares you use: Core middleware functionality -> @middy/corecache -> @middy/cachecors -> @middy/http-corsdoNotWaitForEmptyEventLoop -> @middy/do-not-wait-for-empty-event-loophttpContentNegotiation -> @middy/http-content-negotiationhttpErrorHandler -> @middy/http-error-handlerhttpEventNormalizer -> @middy/http-event-normalizerhttpHeaderNormalizer -> @middy/http-header-normalizerhttpMultipartBodyParser -> @middy/http-json-body-parserhttpPartialResponse -> @middy/http-partial-responsejsonBodyParser -> @middy/http-json-body-parsers3KeyNormalizer -> @middy/s3-key-normalizersecretsManager -> @middy/secrets-managerssm -> @middy/ssmvalidator -> @middy/validatorurlEncodeBodyParser -> @middy/http-urlencode-body-parserwarmup -> @middy/warmup ","version":"Next","tagName":"h2"},{"title":"Header normalization in http-header-normalizer​","type":1,"pageTitle":"Upgrade 0.x -> 1.x","url":"/docs/upgrade/0-1#header-normalization-in-http-header-normalizer","content":"In Middy 0.x the httpHeaderNormalizer middleware normalizes HTTP header names into their own canonical format, for instance Sec-WebSocket-Key (notice the casing). In Middy 1.x this behavior has been changed to provide header names in lowercase format (e.g. sec-webSocket-key). This new behavior is more consistent with what Node.js core http package does and what other famous http frameworks like Express or Fastify do, so this is considered a more intuitive approach. When updating to Middy 1.x, make sure you double check all your references to HTTP headers and switch to the lowercase version to read them. All the middy core modules have been already updated to support the new format, so you should worry only about your userland code. ","version":"Next","tagName":"h2"},{"title":"Node.js 10 and 12 now supported / Node.js 6 and 8 now dropped​","type":1,"pageTitle":"Upgrade 0.x -> 1.x","url":"/docs/upgrade/0-1#nodejs-10-and-12-now-supported--nodejs-6-and-8-now-dropped","content":"Version 1.x of Middy no longer supports Node.js versions 6.x and 8.x as these versions have been dropped by the AWS Lambda runtime itself and not supported anymore by the Node.js community. You are highly encouraged to move to Node.js 12 or 10, which are the new supported versions in Middy 1.x. ","version":"Next","tagName":"h2"},{"title":"validator","type":0,"sectionRef":"#","url":"/docs/middlewares/validator","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"validator","url":"/docs/middlewares/validator#install","content":"To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/validator npm install --save-dev ajv-cmd # Optional: for pre-transpiling ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"validator","url":"/docs/middlewares/validator#options","content":"eventSchema (function) (default undefined): The compiled ajv validator that will be used to validate the input (request.event) of the Lambda handler.contextSchema (function) (default undefined): The compiled ajv validator that will be used to validate the input (request.context) of the Lambda handler. Has additional support for typeof keyword to allow validation of "typeof":"function".responseSchema (function) (default undefined): The compiled ajv validator that will be used to validate the output (request.response) of the Lambda handler.i18nEnabled (boolean) (default true): Option to disable i18n default package.defaultLanguage (string) (default en): When language not found, what language to fallback to.languages (object) (default: {}): Localization overrides NOTES: At least one of eventSchema or responseSchema is required.If you'd like to have the error details as part of the response, it will need to be handled separately. You can access them from request.error.cause, the original response can be found at request.error.response.Important Transpiling schemas & locales on the fly will cause a 50-150ms performance hit during cold start for simple JSON Schemas. Precompiling is highly recommended. ","version":"Next","tagName":"h2"},{"title":"transpileSchema​","type":1,"pageTitle":"validator","url":"/docs/middlewares/validator#transpileschema","content":"Transpile JSON-Schema in to JavaScript. Default ajv plugins used: ajv-i18n, ajv-formats, ajv-formats-draft2019, ajv-keywords, ajv-errors. schema (object) (required): JSON-Schema objectajvOptions (object) (default undefined): Options to pass to ajvclass constructor. Defaults are { strict: true, coerceTypes: 'array', allErrors: true, useDefaults: 'empty', messages: true }. ","version":"Next","tagName":"h2"},{"title":"transpileLocale​","type":1,"pageTitle":"validator","url":"/docs/middlewares/validator#transpilelocale","content":"Transpile Fluent (.ftl) localization file into ajv compatible format. Allows the overriding of the default messages and adds support for multi-language errrorMessages. ftl (string) (required): Contents of an ftl file to be transpiled. ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"validator","url":"/docs/middlewares/validator#sample-usage","content":"Example for event validation: import middy from '@middy/core' import validator from '@middy/validator' import { transpileSchema } from '@middy/validator/transpile' const handler = middy((event, context) => { return {} }) const schema = { type: 'object', required: ['body', 'foo'], properties: { // this will pass validation body: { type: 'string' }, // this won't as it won't be in the event foo: { type: 'string' } } } handler.use( validator({ eventSchema: transpileSchema(schema) }) ) // invokes the handler, note that property foo is missing const event = { body: JSON.stringify({ something: 'somethingelse' }) } handler(event, {}, (err, res) => { t.is(err.message, 'Event object failed validation') }) Example for response validation: import middy from '@middy/core' import validator from '@middy/validator' import { transpileSchema } from '@middy/validator/transpile' const handler = middy((event, context) => { return {} }) const responseSchema = transpileSchema({ type: 'object', required: ['body', 'statusCode'], properties: { body: { type: 'object' }, statusCode: { type: 'number' } } }) handler.use(validator({ responseSchema })) handler({}, {}, (err, response) => { t.not(err, null) t.is(err.message, 'Response object failed validation') expect(response).not.toBe(null) // it doesn't destroy the response so it can be used by other middlewares }) Example for body validation: import middy from '@middy/core' import httpJsonBodyParser from '@middy/http-json-body-parser' import validator from '@middy/validator' import { transpileSchema } from '@middy/validator/transpile' const handler = middy((event, context) => { return {} }) const schema = { type: 'object', required: ['body'], properties: { body: { type: 'object', required: ['name', 'email'], properties: { name: { type: 'string' }, email: { type: 'string', format: 'email' } // schema options https://ajv.js.org/json-schema.html#json-data-type } } } } // to validate the body we need to parse it first handler.use(httpJsonBodyParser()).use( validator({ eventSchema: transpileSchema(schema) }) ) ","version":"Next","tagName":"h2"},{"title":"Pre-transpiling example (recommended)​","type":1,"pageTitle":"validator","url":"/docs/middlewares/validator#pre-transpiling-example-recommended","content":"Run a build script to before running tests & deployment. #!/usr/bin/env bash # This is an example, should be customize to meet ones needs # Powered by `ajv-cmd` # $ ajv --help bundle () { ajv validate ${1} --valid \\ --strict true --coerce-types array --all-errors true --use-defaults empty ajv transpile ${1} \\ --strict true --coerce-types array --all-errors true --use-defaults empty \\ -o ${1%.json}.js } for file in handlers/*/schema.*.json; do bundle $file done locale () { LOCALE=$(basename ${1%.ftl}) ajv ftl ${1} --locale ${LOCALE} -o ${1%.ftl}.js } for file in handlers/*/*.ftl; do locale $file done import middy from '@middy/core' import validator from '@middy/validator' import eventSchema from './schema.event.js' import en from './en.js' import fr from './fr.js' export const handler = middy() .use( validator({ eventSchema, languages: { en, fr } }) ) .handler((event, context) => { return {} }) ","version":"Next","tagName":"h2"},{"title":"Transpile during cold-start​","type":1,"pageTitle":"validator","url":"/docs/middlewares/validator#transpile-during-cold-start","content":"import { readFile } from 'node:fs/promises' import middy from '@middy/core' import validator from '@middy/validator' import { transpileSchema, transpileLocale } from '@middy/validator/transpile' import eventSchema from './schema.event.json' const en = transpileLocale(await readFile('./en.ftl')) const fr = transpileLocale(await readFile('./fr.ftl')) export const handler = middy() .use( validator({ eventSchema: transpileSchema(eventSchema), languages: { en, fr } }) ) .handler((event, context) => { return {} }) ","version":"Next","tagName":"h2"},{"title":"Transpile during cold-start with default messages​","type":1,"pageTitle":"validator","url":"/docs/middlewares/validator#transpile-during-cold-start-with-default-messages","content":"import { readFile } from 'node:fs/promises' import middy from '@middy/core' import validator from '@middy/validator' import { transpileSchema, transpileLocale } from '@middy/validator/transpile' import { en, fr } from 'ajv-ftl-i18n' // `ajv-i18n` can also be used import eventSchema from './schema.event.json' export const handler = middy() .use( validator({ eventSchema: transpileSchema(eventSchema), languages: { en, fr } }) ) .handler((event, context) => { return {} }) ","version":"Next","tagName":"h2"},{"title":"Upgrade 1.x -> 2.x","type":0,"sectionRef":"#","url":"/docs/upgrade/1-2","content":"","keywords":"","version":"Next"},{"title":"Core​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#core","content":"In handler callback(err, response) have been removed for async/await support return response to trigger after middleware stackthrow new Error(...) to trigger onError middleware stack In middleware next(err) has been removed for async/await support throw new Error(...) to trigger onError middleware stackreturn response to short circuit any middleware stack and respond. v1.x currently throws an error when something is returned ","version":"Next","tagName":"h2"},{"title":"Middleware​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#middleware","content":"","version":"Next","tagName":"h2"},{"title":"cache​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#cache","content":"Deprecated. Too generic and had low usage. However, you can use the following if needed: const { createHash } = require('crypto') module.exports = (opts) => { const storage = {} const defaults = { calculateCacheId: async (event) => createHash('md5').update(JSON.stringify(event)).digest('hex'), getValue: async (key) => storage[key], setValue: async (key, value) => { storage[key] = value } } const options = { ...defaults, ...opts } let currentCacheKey const cacheMiddlewareBefore = async (request) => { const cacheKey = await options.calculateCacheId(request.event) const response = await options.getValue(cacheKey) if (response) { return response } request.internal.cacheKey = cacheKey } const cacheMiddlewareAfter = async (request) => { await options.setValue(request.internal.cacheKey, request.response) } return { before: cacheMiddlewareBefore, after: cacheMiddlewareAfter } } ","version":"Next","tagName":"h3"},{"title":"db-manager​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#db-manager","content":"Deprecated. Too generic and had low usage. You can check out middy-rds as a possible alternative or example on building your own replacement. ","version":"Next","tagName":"h3"},{"title":"do-not-wait-for-empty-event-loop​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#do-not-wait-for-empty-event-loop","content":"No change ","version":"Next","tagName":"h3"},{"title":"function-shield​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#function-shield","content":"Deprecated. Only supported up to Node v10. ","version":"Next","tagName":"h3"},{"title":"http-content-negotiation​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#http-content-negotiation","content":"No change ","version":"Next","tagName":"h3"},{"title":"http-cors​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#http-cors","content":"Added new options to support more headers methodsexposeHeadersrequestHeadersrequestMethods ","version":"Next","tagName":"h3"},{"title":"http-error-handler​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#http-error-handler","content":"Added in support to honour httpError.expose. Errors with statusCode >= 500 are no longer applied to response by default. Added new option to catch any non-http and statusCode >= 500 errors fallbackMessage ","version":"Next","tagName":"h3"},{"title":"http-event-normalizer​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#http-event-normalizer","content":"No change ","version":"Next","tagName":"h3"},{"title":"http-header-normalizer​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#http-header-normalizer","content":"No change ","version":"Next","tagName":"h3"},{"title":"http-json-body-parser​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#http-json-body-parser","content":"No change ","version":"Next","tagName":"h3"},{"title":"http-multipart-body-parser​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#http-multipart-body-parser","content":"No change ","version":"Next","tagName":"h3"},{"title":"http-partial-response​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#http-partial-response","content":"No change ","version":"Next","tagName":"h3"},{"title":"http-response-serializer​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#http-response-serializer","content":"No change ","version":"Next","tagName":"h3"},{"title":"http-security-headers​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#http-security-headers","content":"No longer adds statusCode:500 when there is no response. ","version":"Next","tagName":"h3"},{"title":"http-urlencode-body-parser​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#http-urlencode-body-parser","content":"Remove extended option. Only uses qs as the parser, formally enabled by options {extended: true}. ","version":"Next","tagName":"h3"},{"title":"http-urlencode-path-parser​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#http-urlencode-path-parser","content":"No change ","version":"Next","tagName":"h3"},{"title":"input-output-logger​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#input-output-logger","content":"Now additionally logs response from the onError middleware stackSupport for omiting within nested arraysAdd in support for replacer to be passed into JSON.stringify() ","version":"Next","tagName":"h3"},{"title":"rds-signer​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#rds-signer","content":"New middleware to fetch RDS credential used when connecting with IAM roles. This was built into db-manager. ","version":"Next","tagName":"h3"},{"title":"s3-key-normalizer​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#s3-key-normalizer","content":"No change ","version":"Next","tagName":"h3"},{"title":"s3-object-response​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#s3-object-response","content":"New middleware to fetch and respond to S3 Object Get request event. ","version":"Next","tagName":"h3"},{"title":"secrets-manager​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#secrets-manager","content":"Refactored, see documentation ","version":"Next","tagName":"h3"},{"title":"sqs-json-body-parser​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#sqs-json-body-parser","content":"No change ","version":"Next","tagName":"h3"},{"title":"sqs-partial-batch-failure​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#sqs-partial-batch-failure","content":"Replaced option sqs with AwsClient and added in more options for control. ","version":"Next","tagName":"h3"},{"title":"ssm​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#ssm","content":"Refactored, see documentation ","version":"Next","tagName":"h3"},{"title":"sts​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#sts","content":"New middleware to fetch assume role credentials. ","version":"Next","tagName":"h3"},{"title":"validator​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#validator","content":"Upgraded ajv and it's plugins to support JSON Schema Draft 2020-12 specification. Defaults were change because of this. Plugin ajv-keywords removed from being included by default because it's quite a large package and usually only one keyword is used.Plugin ajv-errors removed from included by default because it conflicts with ajv-i18n when dealing with custom messages for multiple languages ","version":"Next","tagName":"h3"},{"title":"warmup​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#warmup","content":"Deprecated. This was a work round for a missing feature in AWS Lambda. AWS added in the ability to use provisioned concurrencyon 2019-12-03, removing the need for this work around. However, you can use the following if needed: middy(lambdaHandler) .before((request) => { if (request.event.source === 'serverless-plugin-warmup') { console.log('Exiting early via warmup Middleware') return 'warmup' } }) ","version":"Next","tagName":"h3"},{"title":"Upgrade 2.x -> 3.x","type":0,"sectionRef":"#","url":"/docs/upgrade/2-3","content":"","keywords":"","version":"Next"},{"title":"Notable changes​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#notable-changes","content":"New WebSocket middlewaresHTTP & WebSocket Routers!Better error handlingTimeout error handlingErrors now use { cause } for better context ","version":"Next","tagName":"h2"},{"title":"Core​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#core","content":"onError middleware stack order reversed to match after [Breaking Change] If you only use @middy/* middlewares no change should be requiredThis change has trickle down effects on middlewares with onError (see below for details)If you're handling errors yourself here are some things to review: Attach near the end so it is triggered first (likely already done)Remove return response, this will short circuit the response and block later middleware from modifying the response lambdaHandler now passes {signal} from AbortController to allow for ending lambda early to handle timeout errorsplugin argument now supports: internal: Allow the use of new Proxy() for smarter triggering in advanced use cases.timeoutEarlyInMillis: When before lambda timeout to trigger early exit. Default 5timeoutEarlyResponse: Function to throw a custom error or return a pre-set value. Default () => { throw new Error('Timeout') } Added .handler() method to allow easier understanding of the execution cycleDeprecate applyMiddleware() and __middlewares [Breaking Change] ","version":"Next","tagName":"h2"},{"title":"Util​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#util","content":"getInternal error now includes cause set to an array of ErrorsCatch when X-Ray is applied outside of handler invocation scopenormalizeHttpResponse now takes request and mutates response [Breaking Change]getCache will return {} instead of undefined when not found [Breaking Change] ","version":"Next","tagName":"h2"},{"title":"Middleware​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#middleware","content":"","version":"Next","tagName":"h2"},{"title":"cloudwatch-metrics​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#cloudwatch-metrics","content":"No change ","version":"Next","tagName":"h3"},{"title":"do-not-wait-for-empty-event-loop​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#do-not-wait-for-empty-event-loop","content":"No change ","version":"Next","tagName":"h3"},{"title":"error-logger​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#error-logger","content":"No change ","version":"Next","tagName":"h3"},{"title":"event-normalizer​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#event-normalizer","content":"Add support for all missing AWS eventsRefactored for performance improvements ","version":"Next","tagName":"h3"},{"title":"http-content-encoding​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#http-content-encoding","content":"[New] Applies brotli, gzip, ands deflate compression to response body ","version":"Next","tagName":"h3"},{"title":"http-content-negotiation​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#http-content-negotiation","content":"Add in defaultToFirstLanguage to allow fallback to a safe language to use ","version":"Next","tagName":"h3"},{"title":"http-cors​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#http-cors","content":"onError will not modify response unless error has been handledSmall refactor for performance improvements ","version":"Next","tagName":"h3"},{"title":"http-error-handler​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#http-error-handler","content":"No longer returns the response to short circuit the middleware stack to allow for easier use now that onError is called in reverse order. ","version":"Next","tagName":"h3"},{"title":"http-event-normalizer​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#http-event-normalizer","content":"Option payloadFormatVersion no longer neededWill now throw error if not an http event [Breaking Change] ","version":"Next","tagName":"h3"},{"title":"http-header-normalizer​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#http-header-normalizer","content":"Modified so that all headers are set to lowercase when canonical:false [Breaking Change] ","version":"Next","tagName":"h3"},{"title":"http-json-body-parser​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#http-json-body-parser","content":"No change ","version":"Next","tagName":"h3"},{"title":"http-multipart-body-parser​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#http-multipart-body-parser","content":"Change default charset from binary/latin1 to utf-8. [Breaking Change] ","version":"Next","tagName":"h3"},{"title":"http-partial-response​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#http-partial-response","content":"No change ","version":"Next","tagName":"h3"},{"title":"http-response-serializer​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#http-response-serializer","content":"Renamed default option to defaultContentType to improve maintainability [Breaking Change]onError will not modify response unless error has been handled ","version":"Next","tagName":"h3"},{"title":"http-router​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#http-router","content":"[New] Allow re-routing of events to different handlers ","version":"Next","tagName":"h3"},{"title":"http-security-headers​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#http-security-headers","content":"onError will not modify response unless error has been handledComplete rewrite of options and inclusion of new HTML only headers [Breaking Change] ","version":"Next","tagName":"h3"},{"title":"http-urlencode-body-parser​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#http-urlencode-body-parser","content":"No change ","version":"Next","tagName":"h3"},{"title":"http-urlencode-path-parser​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#http-urlencode-path-parser","content":"No change ","version":"Next","tagName":"h3"},{"title":"input-output-logger​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#input-output-logger","content":"Add in new option to mask instead of omit a path. ","version":"Next","tagName":"h3"},{"title":"rds-signer​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#rds-signer","content":"Deprecated setToEnv option due to possible security misuse [Breaking Change] ","version":"Next","tagName":"h3"},{"title":"s3-key-normalizer​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#s3-key-normalizer","content":"Deprecated in favour of event-normalizer, v2.x compatible with v3 ","version":"Next","tagName":"h3"},{"title":"s3-object-response​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#s3-object-response","content":"No change ","version":"Next","tagName":"h3"},{"title":"secrets-manager​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#secrets-manager","content":"Deprecated setToEnv option due to possible security misuse [Breaking Change] ","version":"Next","tagName":"h3"},{"title":"service-discovery​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#service-discovery","content":"[New] Allow easy access to discoveryInstances ","version":"Next","tagName":"h3"},{"title":"sqs-json-body-parser​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#sqs-json-body-parser","content":"Deprecated in favour of event-normalizer, v2.x compatible with v3 ","version":"Next","tagName":"h3"},{"title":"sqs-partial-batch-failure​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#sqs-partial-batch-failure","content":"Complete rewrite to take advantage of https://aws.amazon.com/about-aws/whats-new/2021/11/aws-lambda-partial-batch-response-sqs-event-source/, will no longer throw an error if any message fails [Breaking Change] ","version":"Next","tagName":"h3"},{"title":"ssm​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#ssm","content":"Deprecated setToEnv option [Breaking Change] ","version":"Next","tagName":"h3"},{"title":"sts​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#sts","content":"No change ","version":"Next","tagName":"h3"},{"title":"validator​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#validator","content":"Change where errors are stored, from request.error.details to request.error.cause [Breaking Change]Add new options eventSchema, contextSchema, responseSchema. inputSchema and outputSchema become aliases. ","version":"Next","tagName":"h3"},{"title":"warmup​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#warmup","content":"No change ","version":"Next","tagName":"h3"},{"title":"ws-json-body-parser​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#ws-json-body-parser","content":"[New] Parse body from WebSocket event ","version":"Next","tagName":"h3"},{"title":"ws-response​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#ws-response","content":"[New] Post responses to WebSocket API Gateway ","version":"Next","tagName":"h3"},{"title":"ws-router​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#ws-router","content":"[New] Allow re-routing of events to different handlers ","version":"Next","tagName":"h3"},{"title":"Notes​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#notes","content":"If you still need setToEnv you can do something like so: middy(lambdaHandler) .use(/*...*/) .before(async (request) => { const values = await getInternal(['NODE_ENV'], request) process.env.NODE_ENV = values.NODE_ENV }) ","version":"Next","tagName":"h2"},{"title":"Upgrade 3.x -> 4.x","type":0,"sectionRef":"#","url":"/docs/upgrade/3-4","content":"","keywords":"","version":"Next"},{"title":"Notable changes​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#notable-changes","content":"","version":"Next","tagName":"h2"},{"title":"Core​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#core","content":"Remove polyfill for AbortControlerRemove polyfill for timers/promises ","version":"Next","tagName":"h2"},{"title":"Util​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#util","content":"normalizeResponse now will set the statusCode to 200 when casting to a new object or 500 when missing Breaking Change ","version":"Next","tagName":"h2"},{"title":"Middleware​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#middleware","content":"","version":"Next","tagName":"h2"},{"title":"cloudwatch-metrics​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#cloudwatch-metrics","content":"No change ","version":"Next","tagName":"h3"},{"title":"do-not-wait-for-empty-event-loop​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#do-not-wait-for-empty-event-loop","content":"No change ","version":"Next","tagName":"h3"},{"title":"error-logger​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#error-logger","content":"No change ","version":"Next","tagName":"h3"},{"title":"event-normalizer​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#event-normalizer","content":"No change ","version":"Next","tagName":"h3"},{"title":"http-content-encoding​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#http-content-encoding","content":"Removed body as stream support, will be brought back as a new middleware in a future middleware Breaking Change ","version":"Next","tagName":"h3"},{"title":"http-content-negotiation​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#http-content-negotiation","content":"No change ","version":"Next","tagName":"h3"},{"title":"http-cors​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#http-cors","content":"No change ","version":"Next","tagName":"h3"},{"title":"http-error-handler​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#http-error-handler","content":"No change ","version":"Next","tagName":"h3"},{"title":"http-event-normalizer​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#http-event-normalizer","content":"No change ","version":"Next","tagName":"h3"},{"title":"http-header-normalizer​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#http-header-normalizer","content":"No change ","version":"Next","tagName":"h3"},{"title":"http-json-body-parser​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#http-json-body-parser","content":"Deprecate event.rawBody Breaking Change You can add in an inline middleware as a workaround. .before((request) => { request.event.rawBody = request.event.body }) .use(httpJSONBodyParserMiddleware()) See https://github.com/middyjs/middy/issues/945 for discussion and reasoning. ","version":"Next","tagName":"h3"},{"title":"http-multipart-body-parser​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#http-multipart-body-parser","content":"Add new option to set charset ","version":"Next","tagName":"h3"},{"title":"http-partial-response​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#http-partial-response","content":"No change ","version":"Next","tagName":"h3"},{"title":"http-response-serializer​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#http-response-serializer","content":"No change ","version":"Next","tagName":"h3"},{"title":"http-router​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#http-router","content":"No change ","version":"Next","tagName":"h3"},{"title":"http-security-headers​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#http-security-headers","content":"No change ","version":"Next","tagName":"h3"},{"title":"http-urlencode-body-parser​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#http-urlencode-body-parser","content":"Now throws 422 when unable to parse JSON Breaking Change ","version":"Next","tagName":"h3"},{"title":"http-urlencode-path-parser​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#http-urlencode-path-parser","content":"No change ","version":"Next","tagName":"h3"},{"title":"input-output-logger​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#input-output-logger","content":"No change ","version":"Next","tagName":"h3"},{"title":"rds-signer​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#rds-signer","content":"Updated to use AWS SDK v3 Breaking Change ","version":"Next","tagName":"h3"},{"title":"s3-object-response​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#s3-object-response","content":"Updated to use AWS SDK v3 Breaking Change ","version":"Next","tagName":"h3"},{"title":"secrets-manager​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#secrets-manager","content":"Updated to use AWS SDK v3 Breaking Change ","version":"Next","tagName":"h3"},{"title":"service-discovery​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#service-discovery","content":"Updated to use AWS SDK v3 Breaking Change ","version":"Next","tagName":"h3"},{"title":"sqs-partial-batch-failure​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#sqs-partial-batch-failure","content":"No change ","version":"Next","tagName":"h3"},{"title":"ssm​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#ssm","content":"Updated to use AWS SDK v3 Breaking Change ","version":"Next","tagName":"h3"},{"title":"sts​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#sts","content":"Updated to use AWS SDK v3 Breaking Change ","version":"Next","tagName":"h3"},{"title":"validator​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#validator","content":"We've put a lot of work into making this middleware bundle smaller and faster by default, while allowing for opting into more functionality. Deprecate inputSchema and outputSchema options Breaking ChangeDeprecated i18nEnabled Breaking ChangeMust now pass in defaultLanguage localizations to languages Breaking ChangeAdded in ajv-error supportPulled transpileSchema out of middleware to allow for tree shaking and pre-compile option Breaking ChangeAdded in transpileLocale to allow for custom internationalization of error messages including errorMessage How to update use of middleware import validatorMiddleware from '@middy/validator' // 1. Import transpileSchema import { transpileSchema } from '@middy/validator/transpile' export const handler = middy(...) .use(validatorMiddleware({ // 2. Wrap schemas with transpileSchema eventSchema: transpileSchema(eventJsonSchema) })) import validatorMiddleware from '@middy/validator' // 1. Import localizations import { en, fr } from 'ajv-ftl-i18n' export const handler = middy(...) .use(validatorMiddleware({ eventSchema: transpileSchema(eventJsonSchema), // 2. Add localizations in langauges: { en, fr } })) ","version":"Next","tagName":"h3"},{"title":"warmup​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#warmup","content":"No change ","version":"Next","tagName":"h3"},{"title":"ws-json-body-parser​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#ws-json-body-parser","content":"No change ","version":"Next","tagName":"h3"},{"title":"ws-response​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#ws-response","content":"Updated to use AWS SDK v3 Breaking Change ","version":"Next","tagName":"h3"},{"title":"ws-router​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#ws-router","content":"No change ","version":"Next","tagName":"h3"},{"title":"Notes​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#notes","content":"None ","version":"Next","tagName":"h2"},{"title":"Configurable Middlewares","type":0,"sectionRef":"#","url":"/docs/writing-middlewares/configurable-middlewares","content":"Configurable Middlewares In order to make middlewares configurable, they are generally exported as a function that accepts a configuration object. This function should then return the middleware object with before,after, and onError as keys. E.g. // customMiddleware.js const defaults = {} const customMiddleware = (opts) => { const options = { ...defaults, ...opts } const customMiddlewareBefore = async (request) => { const { event, context } = request // ... } const customMiddlewareAfter = async (request) => { const { response } = request // ... request.response = response } const customMiddlewareOnError = async (request) => { if (request.response === undefined) return await customMiddlewareAfter(request) } return { before: customMiddlewareBefore, after: customMiddlewareAfter, onError: customMiddlewareOnError } } export default customMiddleware With this convention in mind, using a middleware will always look like the following example: import middy from '@middy/core' import customMiddleware from 'customMiddleware.js' const lambdaHandler = async (event, context) => { // do stuff return {} } export const handler = middy(lambdaHandler) .use(customMiddleware({ option1: 'foo', option2: 'bar' })) ","keywords":"","version":"Next"},{"title":"Inline Middlewares","type":0,"sectionRef":"#","url":"/docs/writing-middlewares/inline-middlewares","content":"Inline Middlewares Sometimes you want to create handlers that serve a very small need and that are not necessarily re-usable. In such cases, you probably will need to hook only into one of the different phases (before, after or onError). In these cases you can use inline middlewares which are shortcut functions to hook logic into Middy's control flow. Let's see how inline middlewares work with a simple example: import middy from '@middy/core' export const handler = middy((event, context) => { // do stuff }) .before(async (request) => { // do something in the before phase }) .after(async (request) => { // do something in the after phase }) .onError(async (request) => { // do something in the on error phase }) As you can see above, a middy instance also exposes the before, after and onErrormethods to allow you to quickly hook in simple inline middlewares.","keywords":"","version":"Next"},{"title":"Internal Storage","type":0,"sectionRef":"#","url":"/docs/writing-middlewares/internal-storage","content":"Internal Storage The handler also contains an internal object that can be used to store values securely between middlewares that expires when the event ends. To compliment this there is also a cache where middleware can store request promises. During before these promises can be stored into internal then resolved only when needed. This pattern is useful to take advantage of the async nature of node especially when you have multiple middleware that require reaching out the external APIs. Here is a middleware boilerplate using this pattern: import { canPrefetch, getInternal, processCache } from '@middy/util' const defaults = { fetchData: {}, // { internalKey: params } disablePrefetch: false, cacheKey: 'custom', cacheExpiry: -1, setToContext: false } const customMiddleware = (opts = {}) => { const options = { ...defaults, ...opts } const fetch = () => { const values = {} // Start your custom fetch for (const internalKey of Object.keys(options.fetchData)) { values[internalKey] = fetch('...', options.fetchData[internalKey]).then( (res) => res.text() ) } // End your custom fetch return values } if (canPrefetch(options)) { processCache(options, fetch) } const customMiddlewareBefore = async (request) => { const { value } = processCache(options, fetch, request) Object.assign(request.internal, value) if (options.setToContext) { const data = await getInternal(Object.keys(options.fetchData), request) Object.assign(request.context, data) } } return { before: customMiddlewareBefore } } export default customMiddleware ","keywords":"","version":"Next"},{"title":"Custom Middlewares","type":0,"sectionRef":"#","url":"/docs/writing-middlewares/intro","content":"Custom Middlewares A middleware is an object that should contain at least 1 of 3 possible keys: before: a function that is executed in the before phaseafter: a function that is executed in the after phaseonError: a function that is executed in case of errors before, after and onError functions need to have the following signature: const defaults = { // ... } const nameMiddleware = (opts = {}) => { const options = { ...defaults, ...opts } const nameMiddlewareBefore = async (request) => { // ... } const nameMiddlewareAfter = async (request) => { // ... } const nameMiddlewareOnError = async (request) => { // ... } return { before: nameMiddlewareBefore, after: nameMiddlewareAfter, onError: nameMiddlewareOnError } } export default nameMiddleware Where: request: is a reference to the current context and allows access to (and modification of) the current event (request), the response (in the after phase), and error(in case of an error).","keywords":"","version":"Next"},{"title":"Handle Timeouts","type":0,"sectionRef":"#","url":"/docs/writing-middlewares/timeouts","content":"Handle Timeouts When a lambda times out it throws an error that cannot be caught by middy. To work around this middy maintains an AbortController that can be signalled early to allow time to clean up and log the error properly. You can set timeoutEarlyInMillis to 0 to disable this functionality. If you want to override during testing, mock the lambda context to set getRemainingTimeInMillis to a function that returns a very large value (e.g. () => 99999). import middy from '@middy/core' const lambdaHandler = (event, context, {signal}) => { signal.onabort = () => { // cancel events } // ... } export const handler = middy(lambdaHandler, { timeoutEarlyInMillis: 50, timeoutEarlyResponse: () => { return { statusCode: 408 } } }) ","keywords":"","version":"Next"},{"title":"More Examples","type":0,"sectionRef":"#","url":"/docs/writing-middlewares/more-examples","content":"More Examples Check the code for existing middlewares to see more examples on how to write a middleware.","keywords":"","version":"Next"},{"title":"With TypeScript","type":0,"sectionRef":"#","url":"/docs/writing-middlewares/with-typescript","content":"With TypeScript here's an example of how you can write a custom middleware for a Lambda receiving events from API Gateway: import middy from '@middy/core' import { APIGatewayProxyEvent, APIGatewayProxyResult } from 'aws-lambda' const middleware = (): middy.MiddlewareObj<APIGatewayProxyEvent, APIGatewayProxyResult> => { const before: middy.MiddlewareFn<APIGatewayProxyEvent, APIGatewayProxyResult> = async ( request ): Promise<APIGatewayProxyResult> => { // Your middleware logic } const after: middy.MiddlewareFn<APIGatewayProxyEvent, APIGatewayProxyResult> = async ( request ): Promise<void> => { // Your middleware logic } return { before, after } } export default middleware Note: The Middy core team does not use TypeScript often and we can't certainly claim that we are TypeScript experts. We tried our best to come up with type definitions that should give TypeScript users a good experience. There is certainly room for improvement, so we would be more than happy to receive contributions 😊 See devDependencies for each middleware for list of dependencies that may be required with transpiling TypeScript.","keywords":"","version":"Next"}] \ No newline at end of file diff --git a/search-doc-1700079117944.json b/search-doc-1700079117944.json new file mode 100644 index 000000000..5ef9ddaeb --- /dev/null +++ b/search-doc-1700079117944.json @@ -0,0 +1 @@ +{"searchDocs":[{"title":"Connection reuse","type":0,"sectionRef":"#","url":"/docs/best-practices/connection-reuse","content":"Connection reuse Be sure to set the following environment variable when connecting to AWS services: AWS_NODEJS_CONNECTION_REUSE_ENABLED=1 This allows you to reuse the first connection established across lambda invocations. See Reusing Connections with Keep-Alive in Node.js","keywords":"","version":"Next"},{"title":"Bundling Lambda packages","type":0,"sectionRef":"#","url":"/docs/best-practices/bundling","content":"","keywords":"","version":"Next"},{"title":"Compilers​","type":1,"pageTitle":"Bundling Lambda packages","url":"/docs/best-practices/bundling#compilers","content":" ","version":"Next","tagName":"h2"},{"title":"typescript​","type":1,"pageTitle":"Bundling Lambda packages","url":"/docs/best-practices/bundling#typescript","content":" npm i -D typescript node_modules/.bin/tsc tsconfig.json​ { "compilerOptions": { "baseUrl": "./", "esModuleInterop": true, "preserveConstEnums": true, "strictNullChecks": true, "allowJs": false, "target": "es2021", "typeRoots": ["node_modules/@types"], "resolveJsonModule": true, "moduleResolution": "node" } } ","version":"Next","tagName":"h3"},{"title":"Bundlers​","type":1,"pageTitle":"Bundling Lambda packages","url":"/docs/best-practices/bundling#bundlers","content":" ","version":"Next","tagName":"h2"},{"title":"esbuild​","type":1,"pageTitle":"Bundling Lambda packages","url":"/docs/best-practices/bundling#esbuild","content":" npm i -D esbuild # --banner:js hack from https://github.com/evanw/esbuild/pull/2067 node_modules/.bin/esbuild index.js \\ --platform=node --format=esm --target=node18 --bundle --minify \\ --banner:js="import { createRequire } from 'module';const require = createRequire(import.meta.url);" \\ --legal-comments=external --sourcemap=external \\ --allow-overwrite --outfile=index.mjs ","version":"Next","tagName":"h3"},{"title":"rollup​","type":1,"pageTitle":"Bundling Lambda packages","url":"/docs/best-practices/bundling#rollup","content":" npm i -D rollup @rollup/plugin-node-resolve @rollup/plugin-commonjs node_modules/.bin/rollup --config rollup.config.mjs​ import { nodeResolve } from '@rollup/plugin-node-resolve' import commonjs from '@rollup/plugin-commonjs' const plugins = [nodeResolve({ preferBuiltins: true }), commonjs()] export default (input) => ({ input: 'index.js', output: { file: 'index.bundle.rollup.mjs', format: 'es' // cjs, es }, plugins, external: [ // AWS SDK '@aws-sdk/client-apigatewaymanagementapi', // @middy/ws-response '@aws-sdk/client-rds', // @middy/rds-signer '@aws-sdk/client-s3', // @middy/s3-object-response '@aws-sdk/client-secretsmanager', // @middy/sercrets-manager '@aws-sdk/client-servicediscovery', // @middy/service-discovery '@aws-sdk/client-ssm', // @middy/ssm '@aws-sdk/client-sts' // @middy/sts ] }) ","version":"Next","tagName":"h3"},{"title":"swc/pack​","type":1,"pageTitle":"Bundling Lambda packages","url":"/docs/best-practices/bundling#swcpack","content":" npm i -D @swc/cli @swc/core node_modules/.bin/spack caution Incomplete ","version":"Next","tagName":"h3"},{"title":"webpack​","type":1,"pageTitle":"Bundling Lambda packages","url":"/docs/best-practices/bundling#webpack","content":" npm i -D webpack-cli webpack node_modules/.bin/webpack webpack.config.mjs​ import path from 'node:path' import { fileURLToPath } from 'node:url' const __filename = fileURLToPath(import.meta.url) const __dirname = path.dirname(__filename) export default { mode: 'development', entry: './index.js', output: { filename: 'index.bundle.webpack.mjs', path: __dirname }, experiments: { outputModule: true }, externals: [ // NodeJS modules 'events', // @middy/core 'https', // @middy/s3-object-response 'stream', // @middy/http-content-encoding @middy/s3-object-response 'util', // @middy/http-content-encoding 'zlib', // @middy/http-content-encoding // AWS SDK '@aws-sdk/client-apigatewaymanagementapi', // @middy/ws-response '@aws-sdk/client-rds', // @middy/rds-signer '@aws-sdk/client-s3', // @middy/s3-object-response '@aws-sdk/client-secretsmanager', // @middy/sercrets-manager '@aws-sdk/client-servicediscovery', // @middy/service-discovery '@aws-sdk/client-ssm', // @middy/ssm '@aws-sdk/client-sts' // @middy/sts ] } ","version":"Next","tagName":"h3"},{"title":"Transpilers​","type":1,"pageTitle":"Bundling Lambda packages","url":"/docs/best-practices/bundling#transpilers","content":" ","version":"Next","tagName":"h2"},{"title":"babel​","type":1,"pageTitle":"Bundling Lambda packages","url":"/docs/best-practices/bundling#babel","content":" npm i -D @babel/cli @babel/core @babel/preset-env node_modules/.bin/babel index.js --out-file index.transpile.babel.cjs babel.config.json​ { "presets": [ [ "@babel/preset-env", { "targets": { "node": "16" } } ] ] } ","version":"Next","tagName":"h3"},{"title":"esbuild​","type":1,"pageTitle":"Bundling Lambda packages","url":"/docs/best-practices/bundling#esbuild-1","content":" npm i -D esbuild node_modules/.bin/esbuild --platform=node --target=node16 --format=cjs index.js --outfile=index.cjs ","version":"Next","tagName":"h3"},{"title":"swc​","type":1,"pageTitle":"Bundling Lambda packages","url":"/docs/best-practices/bundling#swc","content":" npm i -D @swc/cli @swc/core node_modules/.bin/swc index.js --out-file index.transpile.swc.cjs .swcrc​ { "jsc": { "parser": { "syntax": "ecmascript" }, "target": "es2021" }, "module": { "type": "commonjs" } } ","version":"Next","tagName":"h3"},{"title":"Intro","type":0,"sectionRef":"#","url":"/docs/best-practices/intro","content":"Intro In this section you will find some common tips and tricks to ensure you don't hit any performance or security issues. Did we miss something? Let us know.","keywords":"","version":"Next"},{"title":"Introduction","type":0,"sectionRef":"#","url":"/docs/","content":"","keywords":"","version":"Next"},{"title":"What is middy​","type":1,"pageTitle":"Introduction","url":"/docs/#what-is-middy","content":" Middy is a very simple middleware engine that allows you to simplify your AWS Lambda code when using Node.js. If you have used web frameworks like Express, then you will be familiar with the concepts adopted in Middy and you will be able to get started very quickly. A middleware engine allows you to focus on the strict business logic of your Lambda and then attach additional common elements like authentication, authorization, validation, serialization, etc. in a modular and reusable way by decorating the main business logic. ","version":"Next","tagName":"h2"},{"title":"A quick example​","type":1,"pageTitle":"Introduction","url":"/docs/#a-quick-example","content":" Code is better than 10,000 words, so let's jump into an example. Let's assume you are building a JSON API to process a payment: handler.js // import core import middy from '@middy/core' // esm Node v14+ //const middy = require('@middy/core') // commonjs Node v12+ // import some middlewares import jsonBodyParser from '@middy/http-json-body-parser' import httpErrorHandler from '@middy/http-error-handler' import validator from '@middy/validator' import { transpileSchema } from '@middy/validator/transpile' // This is your common handler, in no way different than what you are used to doing every day in AWS Lambda const lambdaHandler = async (event, context) => { // we don't need to deserialize the body ourself as a middleware will be used to do that const { creditCardNumber, expiryMonth, expiryYear, cvc, nameOnCard, amount } = event.body // do stuff with this data // ... const response = { result: 'success', message: 'payment processed correctly' } return { statusCode: 200, body: JSON.stringify(response) } } // Notice that in the handler you only added base business logic (no deserialization, // validation or error handler), we will add the rest with middlewares const schema = { type: 'object', properties: { body: { type: 'object', properties: { creditCardNumber: { type: 'string', minLength: 12, maxLength: 19, pattern: '\\\\d+' }, expiryMonth: { type: 'integer', minimum: 1, maximum: 12 }, expiryYear: { type: 'integer', minimum: 2017, maximum: 2027 }, cvc: { type: 'string', minLength: 3, maxLength: 4, pattern: '\\\\d+' }, nameOnCard: { type: 'string' }, amount: { type: 'number' } }, required: ['creditCardNumber'] // Insert here all required event properties } } } // Let's "middyfy" our handler, then we will be able to attach middlewares to it export const handler = middy() .use(jsonBodyParser()) // parses the request body when it's a JSON and converts it to an object .use(validator({ eventSchema: transpileSchema(schema) })) // validates the input .use(httpErrorHandler()) // handles common http errors and returns proper responses .handler(lambdaHandler) ","version":"Next","tagName":"h2"},{"title":"Why?​","type":1,"pageTitle":"Introduction","url":"/docs/#why","content":" One of the main strengths of serverless and AWS Lambda is that, from a developer perspective, your focus is mostly shifted toward implementing business logic. Anyway, when you are writing a handler, you still have to deal with some common technical concerns outside business logic, like input parsing and validation, output serialization, error handling, etc. Very often, all this necessary code ends up polluting the pure business logic code in your handlers, making the code harder to read and to maintain. In other contexts, like generic web frameworks (fastify, hapi, express, etc.), this problem has been solved using the middleware pattern. This pattern allows developers to isolate these common technical concerns into"steps" that decorate the main business logic code. Middleware functions are generally written as independent modules and then plugged into the application in a configuration step, thus not polluting the main business logic code that remains clean, readable, and easy to maintain. Since we couldn't find a similar approach for AWS Lambda handlers, we decided to create middy, our own middleware framework for serverless in AWS land. ","version":"Next","tagName":"h2"},{"title":"Small node_modules","type":0,"sectionRef":"#","url":"/docs/best-practices/small-node-modules","content":"Small node_modules Using a bundler is the optimal solution, but can be complex depending on your setup. In this case you should remove excess files from your node_modules directory to ensure it doesn't have anything excess shipped to AWS. We put together a .yarnclean file you can check out and use as part of your CI/CD process: .yarnclean # -- Middy.js -- # Dependencies **/ajv/lib **/ajv/.runkit_examples.js **/ajv-errors/src **/ajv-formats/src **/ajv-formats-draft2019/.github **/ajv-formats-draft2019/.prettierrc.js **/ajv-formats-draft2019/index.test.js **/ajv-i18n/localize/.eslintrc.yml **/json-mask/bin **/json-mask/build **/qs/.github **/qs/dist **/qs/test **/qs/.editorconfig **/qs/.eslintrc **/qs/.nycrc **/qs/CHANGELOG.md # DevDependencies **/@types **/@serverless/event-mocks ## Sub[/Sub] Dependencies **/bowser/src **/bowser/bundled.js **/dicer/bench **/dicer/test **/inherits/inherits_browser.js **/json-schema-traverse/.github **/json-schema-traverse/spec **/fast-deep-equal/es6 **/fast-deep-equal/react.js **/querystring/test **/react-native-get-random-values/android **/react-native-get-random-values/ios **/react-native-get-random-values/index.web.js **/react-native-get-random-values/react-native-get-random-values.podspec **/setprototypeof/test **/tslib **/uri-js/dist/esnext **/url/.zuul.yml **/url/test.js **/uuid/bin # Builds *.ts tsconfig.json *.js.map package-lock.json yarn.lock .travis.yml # Common .bin .cache .editorconfig .eslintignore .eslintrc .eslintrc.yml .gitattributes .npmignore AUTHORS LICENSE *.md *.txt ","keywords":"","version":"Next"},{"title":"Internal Context","type":0,"sectionRef":"#","url":"/docs/best-practices/internal-context","content":"Internal Context Middy is built to be async even at it's core. Middlewares can set promises to internal. This approach allows them to be resolved together just when you need them. import middy from '@middy/core' import {getInternal} from '@middy/util' const lambdaHandler = async (event, context, { signal }) => { } const config = { internal: new Proxy({}, { get: (target, prop, receiver) => { // ... return Reflect.get(...arguments) }, set: (obj, prop, value) => { // ... ie if `prop` changes, trigger something obj[prop] = value return true } }) } export const handler = middy(config) // Incase you want to add values on to internal directly .before((async (request) => { request.internal = { env: process.env.NODE_ENV } })) .use(sts(...)) .use(ssm(...)) .use(rdsSigner(...)) .use(secretsManager(...)) .before(async (request) => { // internal == { key: 'value' } // Map with same name Object.assign(request.context, await getInternal(['key'], request)) // -> context == { key: 'value'} // Map to new name Object.assign(request.context, await getInternal({'newKey':'key'}, request)) // -> context == { newKey: 'value'} // get all the values, only if you really need to, // but you should only request what you need for the handler Object.assign(request.context, await getInternal(true, request)) // -> context == { key: 'value'} }) .handler(lambdaHandler) ","keywords":"","version":"Next"},{"title":"Profiling","type":0,"sectionRef":"#","url":"/docs/best-practices/profiling","content":"","keywords":"","version":"Next"},{"title":"Time​","type":1,"pageTitle":"Profiling","url":"/docs/best-practices/profiling#time","content":" const defaults = { logger: console.log, enabled: true } const timePlugin = (opts = {}) => { const { logger, enabled } = { ...defaults, ...opts } const store = {} const start = (id) => { store[id] = process.hrtime.bigint() } const stop = (id) => { if (!enabled) return logger(id, Number.parseInt((process.hrtime.bigint() - store[id]).toString()) / 1000000, 'ms') } // Only run during cold start const beforePrefetch = () => start('total') const requestStart = () => { if (!store.init) { store.init = store.total stop('init') } else { start('total') } } const beforeMiddleware = start const afterMiddleware = stop const beforeHandler = () => start('handler') const afterHandler = () => stop('handler') const requestEnd = () => stop('total') return { beforePrefetch, requestStart, beforeMiddleware, afterMiddleware, beforeHandler, afterHandler, requestEnd } } export const handler = middy(timePlugin()) .use(eventLogger()) .use(errorLogger()) .use(httpEventNormalizer()) .use(httpHeaderNormalizer()) .use(httpUrlencodePathParametersParser()) .use(httpUrlencodeBodyParser()) .use(httpJsonBodyParser()) .use(httpCors()) .use(httpSecurityHeaders()) .use(validator({eventSchema})) .handler(()=>{}) await handler() This will log out something this: inputOutputLoggerMiddlewareBefore 0.156033 ms httpEventNormalizerMiddlewareBefore 0.073921 ms httpHeaderNormalizerMiddlewareBefore 0.095098 ms httpUrlencodePathParserMiddlewareBefore 0.036255 ms httpUrlencodeBodyParserMiddlewareBefore 0.038809 ms httpJsonBodyParserMiddlewareBefore 0.048383 ms httpContentNegotiationMiddlewareBefore 0.042311 ms validatorMiddlewareBefore 0.083366 ms handler 0.094875 ms validatorMiddlewareAfter 0.083601 ms httpSecurityHeadersMiddlewareAfter 0.19702 ms httpCorsMiddlewareAfter 0.080532 ms inputOutputLoggerMiddlewareAfter 0.066886 ms lambda 66.141835 ms From this everything looks good. Sub 1ms for every middleware and the handler. But wait, that total doesn't look right. You're correct, total includes the initial setup time (or cold start time) for all middlewares. In this case validator is the culprit. The Ajv constructor and compiler do a lot of magic when they first run to get ready for later schema validations. This is why in the validator middleware we now support passing in complied schema and expose the default compiler in case you want to use it in a build step. We hope this feature will help to you in identify slow middlewares and improve your development experience. There is also a beforeRequest hook, but was left out of the example for dramatic effect. Additionally, you'll notice that each middleware shows a descriptive name. This is printing out the function name passed into middy core. If you've looked at the code for some the supported middlewares, you'll see these long descriptive variable names being set, then returned. This is why. ","version":"Next","tagName":"h2"},{"title":"Memory​","type":1,"pageTitle":"Profiling","url":"/docs/best-practices/profiling#memory","content":" import memwatch from '@airbnb/node-memwatch' const defaults = { logger: console.log } const memoryPlugin = (opts = {}) => { const { logger } = { ...defaults, ...opts } const store = {} const start = (id) => { store[id] = new memwatch.HeapDiff() } const stop = (id) => { logger(id, store[id].end()) } const beforePrefetch = () => start('total') const requestStart = () => { store.init = store.total stop('init') } const beforeMiddleware = start const afterMiddleware = stop const beforeHandler = () => start('handler') const afterHandler = () => stop('handler') const requestEnd = () => stop('total') return { beforePrefetch, requestStart, beforeMiddleware, afterMiddleware, beforeHandler, afterHandler, requestEnd } } export const handler = middy(memoryPlugin()) .use(eventLogger()) .use(errorLogger()) .use(httpEventNormalizer()) .use(httpHeaderNormalizer()) .use(httpUrlencodePathParametersParser()) .use(httpUrlencodeBodyParser()) .use(httpJsonBodyParser()) .use(httpCors()) .use(httpSecurityHeaders()) .use(validator({eventSchema})) .handler(()=>{}) await handler() ","version":"Next","tagName":"h2"},{"title":"API Gateway Authorizer","type":0,"sectionRef":"#","url":"/docs/events/api-gateway-authorizer","content":"","keywords":"","version":"Next"},{"title":"Alexa","type":0,"sectionRef":"#","url":"/docs/events/alexa","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"Alexa","url":"/docs/events/alexa#aws-documentation","content":" Using AWS Lambda with Alexa ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"Alexa","url":"/docs/events/alexa#example","content":" import middy from '@middy/core' export const handler = middy() .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"AWS Documentation​","type":1,"pageTitle":"API Gateway Authorizer","url":"/docs/events/api-gateway-authorizer#aws-documentation","content":" Working with AWS Lambda authorizers for HTTP APIsInput to an Amazon API Gateway Lambda authorizer ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"API Gateway Authorizer","url":"/docs/events/api-gateway-authorizer#example","content":" import middy from '@middy/core' export const handler = middy().handler((event, context, { signal }) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"API Gateway (HTTP)","type":0,"sectionRef":"#","url":"/docs/events/api-gateway-http","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"API Gateway (HTTP)","url":"/docs/events/api-gateway-http#aws-documentation","content":" Using AWS Lambda with Amazon API GatewayWorking with HTTP APIs ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"API Gateway (HTTP)","url":"/docs/events/api-gateway-http#example","content":" import middy from '@middy/core' import errorLoggerMiddleware from '@middy/error-logger' import inputOutputLoggerMiddleware from '@middy/input-output-logger' import httpContentNegotiationMiddleware from '@middy/http-content-negotiation' import httpContentEncodingMiddleware from '@middy/http-content-encoding' import httpCorsMiddleware from '@middy/http-cors' import httpErrorHandlerMiddleware from '@middy/http-error-handler' import httpEventNormalizerMiddleware from '@middy/http-event-normalizer' import httpHeaderNormalizerMiddleware from '@middy/http-header-normalizer' import httpJsonBodyParserMiddleware from '@middy/http-json-body-parser' import httpMultipartBodyParserMiddleware from '@middy/http-multipart-body-parser' import httpPartialResponseMiddleware from '@middy/http-partial-response' import httpResponseSerializerMiddleware from '@middy/http-response-serializer' import httpSecurityHeadersMiddleware from '@middy/http-security-headers' import httpUrlencodeBodyParserMiddleware from '@middy/http-urlencode-body-parser' import httpUrlencodePathParametersParserMiddleware from '@middy/http-urlencode-path-parser' import validatorMiddleware from 'validator' import warmupMiddleware from 'warmup' import eventSchema from './eventSchema.json' assert { type: 'json' } import responseSchema from './responseSchema.json' assert { type: 'json' } export const handler = middy({ timeoutEarlyResponse: () => { return { statusCode: 408 } } }) .use(warmupMiddleware()) .use(httpEventNormalizerMiddleware()) .use(httpHeaderNormalizerMiddleware()) .use( httpContentNegotiationMiddleware({ availableLanguages: ['en-CA', 'fr-CA'], availableMediaTypes: ['application/json'] }) ) .use(httpUrlencodePathParametersParserMiddleware()) // Start oneOf .use(httpUrlencodeBodyParserMiddleware()) .use(httpJsonBodyParserMiddleware()) .use(httpMultipartBodyParserMiddleware()) // End oneOf .use(httpSecurityHeadersMiddleware()) .use(httpCorsMiddleware()) .use(httpContentEncodingMiddleware()) .use( httpResponseSerializerMiddleware({ serializers: [ { regex: /^application\\/json$/, serializer: ({ body }) => JSON.stringify(body) } ], default: 'application/json' }) ) .use(httpPartialResponseMiddleware()) .use(validatorMiddleware({ eventSchema, responseSchema })) .use(httpErrorHandlerMiddleware()) .handler((event, context, { signal }) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"AppSync","type":0,"sectionRef":"#","url":"/docs/events/appsync","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"AppSync","url":"/docs/events/appsync#aws-documentation","content":" Using AWS Lambda with AppSync ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"AppSync","url":"/docs/events/appsync#example","content":" import middy from '@middy/core' export const handler = middy().handler((event, context, { signal }) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"API Gateway (WebSocket)","type":0,"sectionRef":"#","url":"/docs/events/api-gateway-ws","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"API Gateway (WebSocket)","url":"/docs/events/api-gateway-ws#aws-documentation","content":" Using AWS Lambda with Amazon API GatewayWorking with WebSocket APIs ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"API Gateway (WebSocket)","url":"/docs/events/api-gateway-ws#example","content":" import middy from '@middy/core' import wsJsonBodyParserMiddleware from '@middy/ws-json-body-parser' import wsResponseMiddleware from '@middy/ws-response' import wsRouterHandler from '@middy/ws-router' import { handler as connectHandler } from './handlers/connect.js' import { handler as disconnectHandler } from './handlers/disconnect.js' import { handler as defaultHandler } from './handlers/default.js' const routes = [ { routeKey: '$connect', handler: connectHandler }, { routeKey: '$disconnect', handler: disconnectHandler }, { routeKey: 'default', handler: defaultHandler } ] export const handler = middy() .use(wsJsonBodyParserMiddleware()) .use(wsResponseMiddleware()) .handler(wsRouterHandler(routes)) ","version":"Next","tagName":"h2"},{"title":"CloudFormation","type":0,"sectionRef":"#","url":"/docs/events/cloud-formation","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"CloudFormation","url":"/docs/events/cloud-formation#aws-documentation","content":" Using AWS Lambda with AWS CloudFormation ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"CloudFormation","url":"/docs/events/cloud-formation#example","content":" import middy from '@middy/core' export const handler = middy() .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"API Gateway (REST)","type":0,"sectionRef":"#","url":"/docs/events/api-gateway-rest","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"API Gateway (REST)","url":"/docs/events/api-gateway-rest#aws-documentation","content":" Using AWS Lambda with Amazon API GatewayWorking with REST APIs ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"API Gateway (REST)","url":"/docs/events/api-gateway-rest#example","content":" import middy from '@middy/core' import errorLoggerMiddleware from '@middy/error-logger' import inputOutputLoggerMiddleware from '@middy/input-output-logger' import httpContentNegotiationMiddleware from '@middy/http-content-negotiation' import httpContentEncodingMiddleware from '@middy/http-content-encoding' import httpCorsMiddleware from '@middy/http-cors' import httpErrorHandlerMiddleware from '@middy/http-error-handler' import httpEventNormalizerMiddleware from '@middy/http-event-normalizer' import httpHeaderNormalizerMiddleware from '@middy/http-header-normalizer' import httpJsonBodyParserMiddleware from '@middy/http-json-body-parser' import httpMultipartBodyParserMiddleware from '@middy/http-multipart-body-parser' import httpPartialResponseMiddleware from '@middy/http-partial-response' import httpResponseSerializerMiddleware from '@middy/http-response-serializer' import httpSecurityHeadersMiddleware from '@middy/http-security-headers' import httpUrlencodeBodyParserMiddleware from '@middy/http-urlencode-body-parser' import httpUrlencodePathParametersParserMiddleware from '@middy/http-urlencode-path-parser' import validatorMiddleware from 'validator' import warmupMiddleware from 'warmup' import eventSchema from './eventSchema.json' assert { type: 'json' } import responseSchema from './responseSchema.json' assert { type: 'json' } export const handler = middy({ timeoutEarlyResponse: () => { return { statusCode: 408 } } }) .use(warmupMiddleware()) .use(httpEventNormalizerMiddleware()) .use(httpHeaderNormalizerMiddleware()) .use( httpContentNegotiationMiddleware({ availableLanguages: ['en-CA', 'fr-CA'], availableMediaTypes: ['application/json'] }) ) .use(httpUrlencodePathParametersParserMiddleware()) // Start oneOf .use(httpUrlencodeBodyParserMiddleware()) .use(httpJsonBodyParserMiddleware()) .use(httpMultipartBodyParserMiddleware()) // End oneOf .use(httpSecurityHeadersMiddleware()) .use(httpCorsMiddleware()) .use(httpContentEncodingMiddleware()) .use( httpResponseSerializerMiddleware({ serializers: [ { regex: /^application\\/json$/, serializer: ({ body }) => JSON.stringify(body) } ], defaultContentType: 'application/json' }) ) .use(httpPartialResponseMiddleware()) .use(validatorMiddleware({ eventSchema, responseSchema })) .use(httpErrorHandlerMiddleware()) .handler((event, context, { signal }) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"Application Load Balancer","type":0,"sectionRef":"#","url":"/docs/events/application-load-balancer","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"Application Load Balancer","url":"/docs/events/application-load-balancer#aws-documentation","content":" Using AWS Lambda with an Application Load Balancer ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"Application Load Balancer","url":"/docs/events/application-load-balancer#example","content":" import middy from '@middy/core' import httpRouterHandler from '@middy/http-router' import errorLoggerMiddleware from '@middy/error-logger' import inputOutputLoggerMiddleware from '@middy/input-output-logger' import httpContentNegotiationMiddleware from '@middy/http-content-negotiation' import httpContentEncodingMiddleware from '@middy/http-content-encoding' import httpCorsMiddleware from '@middy/http-cors' import httpErrorHandlerMiddleware from '@middy/http-error-handler' import httpEventNormalizerMiddleware from '@middy/http-event-normalizer' import httpHeaderNormalizerMiddleware from '@middy/http-header-normalizer' import httpJsonBodyParserMiddleware from '@middy/http-json-body-parser' import httpMultipartBodyParserMiddleware from '@middy/http-multipart-body-parser' import httpPartialResponseMiddleware from '@middy/http-partial-response' import httpResponseSerializerMiddleware from '@middy/http-response-serializer' import httpSecurityHeadersMiddleware from '@middy/http-security-headers' import httpUrlencodeBodyParserMiddleware from '@middy/http-urlencode-body-parser' import httpUrlencodePathParametersParserMiddleware from '@middy/http-urlencode-path-parser' import warmupMiddleware from 'warmup' import { handler as getHandler } from './handlers/get-user.js' import { handler as postHandler } from './handlers/get-user.js' const routes = [ { method: 'GET', path: '/user/{id}', handler: getHandler }, { method: 'POST', path: '/user', handler: postHandler } ] export const handler = middy({ timeoutEarlyResponse: () => { return { statusCode: 408 } } }) .use(warmupMiddleware()) .use(httpEventNormalizerMiddleware()) .use(httpHeaderNormalizerMiddleware()) .use( httpContentNegotiationMiddleware({ availableLanguages: ['en-CA', 'fr-CA'], availableMediaTypes: ['application/json'] }) ) .use(httpUrlencodePathParametersParserMiddleware()) // Start oneOf .use(httpUrlencodeBodyParserMiddleware()) .use(httpJsonBodyParserMiddleware()) .use(httpMultipartBodyParserMiddleware()) // End oneOf .use(httpSecurityHeadersMiddleware()) .use(httpCorsMiddleware()) .use(httpContentEncodingMiddleware()) .use( httpResponseSerializerMiddleware({ serializers: [ { regex: /^application\\/json$/, serializer: ({ body }) => JSON.stringify(body) } ], default: 'application/json' }) ) .use(httpPartialResponseMiddleware()) .use(httpErrorHandlerMiddleware()) .handler(httpRouterHandler(routes)) ","version":"Next","tagName":"h2"},{"title":"CloudTrail","type":0,"sectionRef":"#","url":"/docs/events/cloud-trail","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"CloudTrail","url":"/docs/events/cloud-trail#aws-documentation","content":" Using AWS Lambda with AWS CloudTrail ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"CloudTrail","url":"/docs/events/cloud-trail#example","content":" import middy from '@middy/core' export const handler = middy() .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"Cloud Watch Logs","type":0,"sectionRef":"#","url":"/docs/events/cloud-watch-logs","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"Cloud Watch Logs","url":"/docs/events/cloud-watch-logs#aws-documentation","content":" Using Lambda with CloudWatch Logs ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"Cloud Watch Logs","url":"/docs/events/cloud-watch-logs#example","content":" import middy from '@middy/core' import eventNormalizerMiddleware from '@middy/event-normalizer' export const handler = middy() .use(eventNormalizerMiddleware()) .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"CloudFront Lambda@Edge","type":0,"sectionRef":"#","url":"/docs/events/cloud-front","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"CloudFront Lambda@Edge","url":"/docs/events/cloud-front#aws-documentation","content":" Using AWS Lambda with CloudFront Lambda@Edge ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"CloudFront Lambda@Edge","url":"/docs/events/cloud-front#example","content":" import middy from '@middy/core' export const handler = middy() //.use(cfHeaderNormalizer()) // Let use know if this would have value .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"Code Commit","type":0,"sectionRef":"#","url":"/docs/events/code-commit","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"Code Commit","url":"/docs/events/code-commit#aws-documentation","content":" Using AWS Lambda with AWS CodeCommit ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"Code Commit","url":"/docs/events/code-commit#example","content":" import middy from '@middy/core' export const handler = middy() .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"Config","type":0,"sectionRef":"#","url":"/docs/events/config","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"Config","url":"/docs/events/config#aws-documentation","content":" Using AWS Lambda with AWS Config ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"Config","url":"/docs/events/config#example","content":" import middy from '@middy/core' import eventNormalizerMiddleware from '@middy/event-normalizer' export const handler = middy() .use(eventNormalizerMiddleware()) .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"CodePipeline","type":0,"sectionRef":"#","url":"/docs/events/code-pipeline","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"CodePipeline","url":"/docs/events/code-pipeline#aws-documentation","content":" Using AWS Lambda with AWS CodePipeline ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"CodePipeline","url":"/docs/events/code-pipeline#example","content":" import middy from '@middy/core' import eventNormalizerMiddleware from '@middy/event-normalizer' export const handler = middy() .use(eventNormalizerMiddleware()) .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"DynamoDB","type":0,"sectionRef":"#","url":"/docs/events/dynamodb","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"DynamoDB","url":"/docs/events/dynamodb#aws-documentation","content":" Using AWS Lambda with Amazon DynamoDB ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"DynamoDB","url":"/docs/events/dynamodb#example","content":" import middy from '@middy/core' import eventNormalizerMiddleware from '@middy/event-normalizer' export const handler = middy() .use(eventNormalizerMiddleware()) .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"EC2","type":0,"sectionRef":"#","url":"/docs/events/ec2","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"EC2","url":"/docs/events/ec2#aws-documentation","content":" Using AWS Lambda with Amazon EC2 ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"EC2","url":"/docs/events/ec2#example","content":" import middy from '@middy/core' export const handler = middy() .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"Cognito","type":0,"sectionRef":"#","url":"/docs/events/cognito","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"Cognito","url":"/docs/events/cognito#aws-documentation","content":" Using AWS Lambda with Amazon Cognito ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"Cognito","url":"/docs/events/cognito#example","content":" import middy from '@middy/core' export const handler = middy() .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"DocumentDB","type":0,"sectionRef":"#","url":"/docs/events/documentdb","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"DocumentDB","url":"/docs/events/documentdb#aws-documentation","content":" Using AWS Lambda with Amazon DocumentDB ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"DocumentDB","url":"/docs/events/documentdb#example","content":" import middy from '@middy/core' export const handler = middy().handler((event, context, { signal }) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"Connect","type":0,"sectionRef":"#","url":"/docs/events/connect","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"Connect","url":"/docs/events/connect#aws-documentation","content":" Using Lambda with Amazon Connect ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"Connect","url":"/docs/events/connect#example","content":" import middy from '@middy/core' export const handler = middy() .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"Internet of things (IoT)","type":0,"sectionRef":"#","url":"/docs/events/iot","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"Internet of things (IoT)","url":"/docs/events/iot#aws-documentation","content":" Using AWS Lambda with AWS IoT ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"Internet of things (IoT)","url":"/docs/events/iot#example","content":" import middy from '@middy/core' export const handler = middy() .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"IoT Events","type":0,"sectionRef":"#","url":"/docs/events/iot-events","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"IoT Events","url":"/docs/events/iot-events#aws-documentation","content":" Using AWS Lambda with AWS IoT Events ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"IoT Events","url":"/docs/events/iot-events#example","content":" import middy from '@middy/core' export const handler = middy() .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"EventBridge","type":0,"sectionRef":"#","url":"/docs/events/event-bridge","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"EventBridge","url":"/docs/events/event-bridge#aws-documentation","content":" Using AWS Lambda with Amazon EventBridge (CloudWatch Events) ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"EventBridge","url":"/docs/events/event-bridge#example","content":" import middy from '@middy/core' export const handler = middy().handler((event, context, { signal }) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"Kafka, Managed Streaming (MSK)","type":0,"sectionRef":"#","url":"/docs/events/kafka-managed-streaming","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"Kafka, Managed Streaming (MSK)","url":"/docs/events/kafka-managed-streaming#aws-documentation","content":" Using Lambda with Amazon MSK ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"Kafka, Managed Streaming (MSK)","url":"/docs/events/kafka-managed-streaming#example","content":" import middy from '@middy/core' import eventNormalizerMiddleware from '@middy/event-normalizer' export const handler = middy() .use(eventNormalizerMiddleware()) .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"Kafka, Self-Managed","type":0,"sectionRef":"#","url":"/docs/events/kafka-self-managed","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"Kafka, Self-Managed","url":"/docs/events/kafka-self-managed#aws-documentation","content":" Using Lambda with self-managed Apache Kafka ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"Kafka, Self-Managed","url":"/docs/events/kafka-self-managed#example","content":" import middy from '@middy/core' import eventNormalizerMiddleware from '@middy/event-normalizer' export const handler = middy() .use(eventNormalizerMiddleware()) .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"Function URL","type":0,"sectionRef":"#","url":"/docs/events/function-url","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"Function URL","url":"/docs/events/function-url#aws-documentation","content":" Using AWS Lambda with Amazon API GatewayWorking with HTTP APIs ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"Function URL","url":"/docs/events/function-url#example","content":" import middy from '@middy/core' import errorLoggerMiddleware from '@middy/error-logger' import inputOutputLoggerMiddleware from '@middy/input-output-logger' import httpContentNegotiationMiddleware from '@middy/http-content-negotiation' import httpContentEncodingMiddleware from '@middy/http-content-encoding' import httpCorsMiddleware from '@middy/http-cors' import httpErrorHandlerMiddleware from '@middy/http-error-handler' import httpEventNormalizerMiddleware from '@middy/http-event-normalizer' import httpHeaderNormalizerMiddleware from '@middy/http-header-normalizer' import httpJsonBodyParserMiddleware from '@middy/http-json-body-parser' import httpMultipartBodyParserMiddleware from '@middy/http-multipart-body-parser' import httpPartialResponseMiddleware from '@middy/http-partial-response' import httpResponseSerializerMiddleware from '@middy/http-response-serializer' import httpSecurityHeadersMiddleware from '@middy/http-security-headers' import httpUrlencodeBodyParserMiddleware from '@middy/http-urlencode-body-parser' import httpUrlencodePathParametersParserMiddleware from '@middy/http-urlencode-path-parser' import validatorMiddleware from 'validator' import warmupMiddleware from 'warmup' import eventSchema from './eventSchema.json' assert { type: 'json' } import responseSchema from './responseSchema.json' assert { type: 'json' } export const handler = middy({ timeoutEarlyResponse: () => { return { statusCode: 408 } }, streamifyResponse: true }) .use(warmupMiddleware()) .use(httpEventNormalizerMiddleware()) .use(httpHeaderNormalizerMiddleware()) .use( httpContentNegotiationMiddleware({ availableLanguages: ['en-CA', 'fr-CA'], availableMediaTypes: ['application/json'] }) ) .use(httpUrlencodePathParametersParserMiddleware()) // Start oneOf .use(httpUrlencodeBodyParserMiddleware()) .use(httpJsonBodyParserMiddleware()) .use(httpMultipartBodyParserMiddleware()) // End oneOf .use(httpSecurityHeadersMiddleware()) .use(httpCorsMiddleware()) .use(httpContentEncodingMiddleware()) .use( httpResponseSerializerMiddleware({ serializers: [ { regex: /^application\\/json$/, serializer: ({ body }) => JSON.stringify(body) } ], default: 'application/json' }) ) .use(httpPartialResponseMiddleware()) .use(validatorMiddleware({ eventSchema, responseSchema })) .use(httpErrorHandlerMiddleware()) .handler((event, context, { signal }) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"Kinesis Firehose","type":0,"sectionRef":"#","url":"/docs/events/kinesis-firehose","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"Kinesis Firehose","url":"/docs/events/kinesis-firehose#aws-documentation","content":" Using AWS Lambda with Amazon Kinesis Data Firehose ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"Kinesis Firehose","url":"/docs/events/kinesis-firehose#example","content":" import middy from '@middy/core' import eventNormalizerMiddleware from '@middy/event-normalizer' export const handler = middy() .use(eventNormalizerMiddleware()) .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"MQ","type":0,"sectionRef":"#","url":"/docs/events/mq","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"MQ","url":"/docs/events/mq#aws-documentation","content":" Using Lambda with Amazon MQ ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"MQ","url":"/docs/events/mq#example","content":" import middy from '@middy/core' import eventNormalizerMiddleware from '@middy/event-normalizer' export const handler = middy() .use(eventNormalizerMiddleware()) .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"All AWS Events","type":0,"sectionRef":"#","url":"/docs/events/intro","content":"","keywords":"","version":"Next"},{"title":"Middlewares that can benefit any Lambda​","type":1,"pageTitle":"All AWS Events","url":"/docs/events/intro#middlewares-that-can-benefit-any-lambda","content":" import middy from '@middy/core' import cloudWatchMetricsMiddleware from '@middy/cloudwatch-metrics' import errorLoggerMiddleware from '@middy/error-logger' import inputOutputLoggerMiddleware from '@middy/input-output-logger' import validatorMiddleware from 'validator' import warmupMiddleware from 'warmup' import eventSchema from './eventSchema.json' assert { type: 'json' } import responseSchema from './responseSchema.json' assert { type: 'json' } const handler = middy() .use(warmupMiddleware()) .use(cloudWatchMetricsMiddleware()) .use(inputOutputLoggerMiddleware()) .use(errorLoggerMiddleware()) .use(validatorMiddleware({ eventSchema, responseSchema })) .handler(async (event, context, { signal }) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"Need secrets? We have you covered there too​","type":1,"pageTitle":"All AWS Events","url":"/docs/events/intro#need-secrets-we-have-you-covered-there-too","content":" import middy from '@middy/core' import { getInternal } from '@middy/util' import rdsSignerMiddleware from '@middy/rds-signer' import secretsManagerMiddleware from '@middy/secrets-manager' import ssmMiddleware from '@middy/ssm' import stsMiddleware from '@middy/sts' export const handler = middy() .use( rdsSignerMiddleware({ fetchData: { rdsSigner: { region: process.env.AWS_REGION, hostname: process.env.RDS_HOSTNAME, username: 'iam_role', port: 5555 } } }) ) .use( secretsManagerMiddleware({ fetchData: { secretsManager: '/dev/service_name/key_name' } }) ) .use( ssmMiddleware({ fetchData: { ssm: '/dev/service_name/key_name' } }) ) .use( stsMiddleware({ fetchData: { sts: { RoleArn: '.../role' } } }) ) .before(async (request) => { request.context.secrets = await getInternal(true, request) }) .handler(async (event, context, { signal }) => { // context.secrets = { rdsSigner, secretsManager, ssm, sts } }) ","version":"Next","tagName":"h2"},{"title":"How about configs? We have you covered there as well​","type":1,"pageTitle":"All AWS Events","url":"/docs/events/intro#how-about-configs-we-have-you-covered-there-as-well","content":" import middy from '@middy/core' import { getInternal } from '@middy/util' import appConfigMiddleware from '@middy/appconfig' import s3Middleware from '@middy/s3' import dynamoDBMiddleware from '@middy/dynamodb' import ssmMiddleware from '@middy/ssm' export const handler = middy() .use( appConfigMiddleware({ fetchData: { appConfig: { Application: '...', ClientId: '...', Configuration: '...', Environment: '...' } } }) ) .use( s3Middleware({ fetchData: { s3: { Bucket: '...', Key: '...' } } }) ) .use( dynamoDBMiddleware({ fetchData: { dynamodb: { TableName: '...', Key: { '...' } } } }) ) .use( ssmMiddleware({ fetchData: { ssm: '/dev/service_name/key_name' } }) ) .before(async (request) => { request.context.configs = await getInternal(true, request) }) .handler(async (event, context, { signal }) => { // context.configs = { appConfig, dynamodb, s3, ssm } }) ","version":"Next","tagName":"h2"},{"title":"RDS","type":0,"sectionRef":"#","url":"/docs/events/rds","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"RDS","url":"/docs/events/rds#aws-documentation","content":" Using AWS Lambda with Amazon RDS ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"RDS","url":"/docs/events/rds#example","content":" import middy from '@middy/core' import eventNormalizerMiddleware from '@middy/event-normalizer' export const handler = middy() .use(eventNormalizerMiddleware()) // RDS -> SNS -> Lambda .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"S3 Batch","type":0,"sectionRef":"#","url":"/docs/events/s3-batch","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"S3 Batch","url":"/docs/events/s3-batch#aws-documentation","content":" Using AWS Lambda with Amazon S3 batch operations ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"S3 Batch","url":"/docs/events/s3-batch#example","content":" import middy from '@middy/core' import eventNormalizerMiddleware from '@middy/event-normalizer' export const handler = middy() .use(eventNormalizerMiddleware()) .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"Kinesis Streams","type":0,"sectionRef":"#","url":"/docs/events/kinesis-streams","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"Kinesis Streams","url":"/docs/events/kinesis-streams#aws-documentation","content":" Using AWS Lambda with Amazon Kinesis ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"Kinesis Streams","url":"/docs/events/kinesis-streams#example","content":" import middy from '@middy/core' import eventNormalizerMiddleware from '@middy/event-normalizer' export const handler = middy() .use(eventNormalizerMiddleware()) .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"Lex","type":0,"sectionRef":"#","url":"/docs/events/lex","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"Lex","url":"/docs/events/lex#aws-documentation","content":" Using AWS Lambda with Amazon LexUsing an AWS Lambda function with Amazon Lex V2 ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"Lex","url":"/docs/events/lex#example","content":" import middy from '@middy/core' export const handler = middy() .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"S3 Object","type":0,"sectionRef":"#","url":"/docs/events/s3-object","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"S3 Object","url":"/docs/events/s3-object#aws-documentation","content":" Transforming S3 Objects with S3 Object LambdaTransforming objects with S3 Object Lambda ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"S3 Object","url":"/docs/events/s3-object#example","content":" import middy from '@middy/core' import s3ObjectResponseMiddleware from '@middy/s3-object-response' import {captureAWSv3Client, captureHTTPsGlobal} from 'aws-xray-sdk-core' export const handler = middy() .use(s3ObjectResponseMiddleware({ awsClientCapture: captureAWSv3Client, httpsCapture: captureHTTPsGlobal, bodyType: 'promise' })) .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"S3","type":0,"sectionRef":"#","url":"/docs/events/s3","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"S3","url":"/docs/events/s3#aws-documentation","content":" Using AWS Lambda with Amazon S3 ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"S3","url":"/docs/events/s3#example","content":" import middy from '@middy/core' import eventNormalizerMiddleware from '@middy/event-normalizer' export const handler = middy() .use(eventNormalizerMiddleware()) // S3 -> SNS -> SQS -> Lambda .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"SES","type":0,"sectionRef":"#","url":"/docs/events/ses","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"SES","url":"/docs/events/ses#aws-documentation","content":" Using AWS Lambda with Amazon SES ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"SES","url":"/docs/events/ses#example","content":" import middy from '@middy/core' export const handler = middy() .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"SNS","type":0,"sectionRef":"#","url":"/docs/events/sns","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"SNS","url":"/docs/events/sns#aws-documentation","content":" Using AWS Lambda with Amazon SNS ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"SNS","url":"/docs/events/sns#example","content":" import middy from '@middy/core' import eventNormalizerMiddleware from '@middy/event-normalizer' export const handler = middy() .use(eventNormalizerMiddleware()) .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"Secrets Manager","type":0,"sectionRef":"#","url":"/docs/events/secrets-manager","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"Secrets Manager","url":"/docs/events/secrets-manager#aws-documentation","content":" Using AWS Lambda with Secrets Manager ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"Secrets Manager","url":"/docs/events/secrets-manager#example","content":" import middy from '@middy/core' export const handler = middy() .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"WorkMail","type":0,"sectionRef":"#","url":"/docs/events/workmail","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"WorkMail","url":"/docs/events/workmail#aws-documentation","content":" Configuring AWS Lambda for Amazon WorkMail ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"WorkMail","url":"/docs/events/workmail#example","content":" import middy from '@middy/core' export const handler = middy() .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"FAQ","type":0,"sectionRef":"#","url":"/docs/faq","content":"","keywords":"","version":"Next"},{"title":"My lambda keep timing out without responding, what do I do?​","type":1,"pageTitle":"FAQ","url":"/docs/faq#my-lambda-keep-timing-out-without-responding-what-do-i-do","content":" Likely your event loop is not empty. This happens when you have a database connect still open for example. Checkout @middy/do-not-wait-for-empty-event-loop. ","version":"Next","tagName":"h3"},{"title":"Apollo Server","type":0,"sectionRef":"#","url":"/docs/integrations/apollo-server","content":"Apollo Server caution This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub. import middy from '@middy/core' import { ApolloServer, gql } from 'apollo-server-lambda' import { buildFederatedSchema } from '@apollo/federation' import { resolvers } from './graphql/resolvers.js' import { graphqlFileToStr } from './graphql/schema.js' const graphQL = new ApolloServer({ schema: buildFederatedSchema({ typeDefs: gql(graphqlFileToStr), resolvers }) }) // Do not use: `@middy/http-json-body-parser` it is already handled within apollo export const handler = middy().handler(graphQL.createHandler()) ","keywords":"","version":"Next"},{"title":"SQS","type":0,"sectionRef":"#","url":"/docs/events/sqs","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"SQS","url":"/docs/events/sqs#aws-documentation","content":" Using AWS Lambda with Amazon SQS ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"SQS","url":"/docs/events/sqs#example","content":" import middy from '@middy/core' import eventNormalizerMiddleware from '@middy/event-normalizer' import sqsPartialBatchFailure from '@middy/sqs-partial-batch-failure' export const handler = middy() .use(eventNormalizerMiddleware()) .use(sqsPartialBatchFailure()) .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"Integrations","type":0,"sectionRef":"#","url":"/docs/integrations/intro","content":"Integrations caution This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","keywords":"","version":"Next"},{"title":"Pino","type":0,"sectionRef":"#","url":"/docs/integrations/pino","content":"Pino caution This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","keywords":"","version":"Next"},{"title":"Serverless Framework","type":0,"sectionRef":"#","url":"/docs/integrations/serverless-framework","content":"Serverless Framework caution This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub. TODO comment about serverless-warmup","keywords":"","version":"Next"},{"title":"Serverless Stack","type":0,"sectionRef":"#","url":"/docs/integrations/serverless-stack","content":"Serverless Stack caution This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","keywords":"","version":"Next"},{"title":"VPC Lattice","type":0,"sectionRef":"#","url":"/docs/events/vpc-lattice","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"VPC Lattice","url":"/docs/events/vpc-lattice#aws-documentation","content":" Using AWS Lambda with Amazon VPC Lattice ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"VPC Lattice","url":"/docs/events/vpc-lattice#example","content":" import middy from '@middy/core' import errorLoggerMiddleware from '@middy/error-logger' import inputOutputLoggerMiddleware from '@middy/input-output-logger' import httpContentNegotiationMiddleware from '@middy/http-content-negotiation' import httpContentEncodingMiddleware from '@middy/http-content-encoding' import httpCorsMiddleware from '@middy/http-cors' import httpErrorHandlerMiddleware from '@middy/http-error-handler' import httpEventNormalizerMiddleware from '@middy/http-event-normalizer' // required import httpHeaderNormalizerMiddleware from '@middy/http-header-normalizer' import httpJsonBodyParserMiddleware from '@middy/http-json-body-parser' import httpMultipartBodyParserMiddleware from '@middy/http-multipart-body-parser' import httpPartialResponseMiddleware from '@middy/http-partial-response' import httpResponseSerializerMiddleware from '@middy/http-response-serializer' import httpSecurityHeadersMiddleware from '@middy/http-security-headers' import httpUrlencodeBodyParserMiddleware from '@middy/http-urlencode-body-parser' import httpUrlencodePathParametersParserMiddleware from '@middy/http-urlencode-path-parser' import validatorMiddleware from 'validator' import warmupMiddleware from 'warmup' import eventSchema from './eventSchema.json' assert { type: 'json' } import responseSchema from './responseSchema.json' assert { type: 'json' } export const handler = middy({ timeoutEarlyResponse: () => { return { statusCode: 408 } } }) .use(warmupMiddleware()) .use(httpEventNormalizerMiddleware()) .use(httpHeaderNormalizerMiddleware()) .use( httpContentNegotiationMiddleware({ availableLanguages: ['en-CA', 'fr-CA'], availableMediaTypes: ['application/json'] }) ) .use(httpUrlencodePathParametersParserMiddleware()) // Start oneOf .use(httpUrlencodeBodyParserMiddleware()) .use(httpJsonBodyParserMiddleware()) .use(httpMultipartBodyParserMiddleware()) // End oneOf .use(httpSecurityHeadersMiddleware()) .use(httpCorsMiddleware()) .use(httpContentEncodingMiddleware()) .use( httpResponseSerializerMiddleware({ serializers: [ { regex: /^application\\/json$/, serializer: ({ body }) => JSON.stringify(body) } ], default: 'application/json' }) ) .use(httpPartialResponseMiddleware()) .use(validatorMiddleware({ eventSchema, responseSchema })) .use(httpErrorHandlerMiddleware()) .handler((event, context, { signal }) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"AWS Relational Database Service (RDS)","type":0,"sectionRef":"#","url":"/docs/integrations/RDS","content":"AWS Relational Database Service (RDS) caution This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub. First, you need to pass in a password. In order from most secure to least: RDS.Signer, SecretsManager, SSM using SecureString.SSM can be considered equally secure to SecretsManager if you have your own password rotation system. Additionally, you will want to verify the RDS certificate and the domain of your connection. You can use this sudo code to get you started: import tls from 'tls' // https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html const ca = `-----BEGIN CERTIFICATE----- ...` connectionOptions = { ..., ssl: { rejectUnauthorized: true, ca, checkServerIdentity: (host, cert) => { const error = tls.checkServerIdentity(host, cert) if ( error && !cert.subject.CN.endsWith('.rds.amazonaws.com') ) { return error } } } } Corresponding RDS.ParameterGroups values should be set to enforce TLS connections.","keywords":"","version":"Next"},{"title":"Contributing","type":0,"sectionRef":"#","url":"/docs/intro/contributing","content":"Contributing In the spirit of Open Source Software, everyone is very welcome to contribute to this repository. Feel free to raise issues or to submit Pull Requests. Before contributing to the project, make sure to have a look at our Code of Conduct.","keywords":"","version":"Next"},{"title":"Handling Errors","type":0,"sectionRef":"#","url":"/docs/intro/handling-errors","content":"Handling Errors But, what happens when there is an error? When there is an error, the regular control flow is stopped and the execution is moved back to all the middlewares that implemented a special phase called onError, following the same order as after. Every onError middleware can decide to handle the error and create a proper response or to delegate the error to the next middleware. When a middleware handles the error and creates a response, the execution is still propagated to all the other error middlewares and they have a chance to update or replace the response as needed. At the end of the error middlewares sequence, the response is returned to the user. If no middleware manages the error, the Lambda execution fails reporting the unmanaged error. // Initialize response request.response = request.response ?? {} // Add to response request.response.add = 'more' // Override an error request.error = new Error('...') // handle the error return request.response ","keywords":"","version":"Next"},{"title":"Getting started","type":0,"sectionRef":"#","url":"/docs/intro/getting-started","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"Getting started","url":"/docs/intro/getting-started#install","content":" To install middy, you can use NPM: npmYarnpnpm npm install --save @middy/core If you are using TypeScript, you will also want to make sure that you have installed the @types/aws-lambda peer-dependency: npmYarnpnpm npm install --save-dev @types/aws-lambda ","version":"Next","tagName":"h2"},{"title":"Usage​","type":1,"pageTitle":"Getting started","url":"/docs/intro/getting-started#usage","content":" As you will see in the next example, using middy is very simple and requires just few steps: Write your Lambda handlers as usual, focusing mostly on implementing the bare business logic for them.Import middy and all the middlewares you want to use.Wrap your handler in the middy() factory function. This will return a new enhanced instance of your original handler, to which you will be able to attach the middlewares you need.Attach all the middlewares you need using the function .use(somemiddleware()) ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"Getting started","url":"/docs/intro/getting-started#example","content":" import middy from '@middy/core' import middleware1 from 'sample-middleware1' import middleware2 from 'sample-middleware2' import middleware3 from 'sample-middleware3' const lambdaHandler = (event, context) => { /* your business logic */ } export const handler = middy() .use(middleware1()) .use(middleware2()) .use(middleware3()) .handler(lambdaHandler) .use() takes a single middleware or an array of middlewares, so you can attach multiple middlewares in a single call: import middy from '@middy/core' import middleware1 from 'sample-middleware1' import middleware2 from 'sample-middleware2' import middleware3 from 'sample-middleware3' const lambdaHandler = (event, context) => { /* your business logic */ } export const handler = middy() .use([middleware1(), middleware2(), middleware3()]) .handler(lambdaHandler) You can also attach inline middlewares by using the functions .before, .after and .onError. For a more detailed use case and examples check the Writing a middleware section. ","version":"Next","tagName":"h2"},{"title":"Hooks","type":0,"sectionRef":"#","url":"/docs/intro/hooks","content":"Hooks Middy provides hooks into it's core to allow for monitoring, setup, and cleaning that may not be possible within a middleware. In order of execution beforePrefetch(): Triggered once before middlewares are attached and prefetches are executed.requestStart(): Triggered on every request before the first middleware.beforeMiddleware/afterMiddleware(fctName): Triggered before/after every before, after, and onError middleware function. The function name is passed in, this is why all middlewares use a verbose naming pattern.beforeHandler/afterHandler(): Triggered before/after the handler.requestEnd(request): Triggered right before the response is returned, including thrown errors. See Profiling for example usage.","keywords":"","version":"Next"},{"title":"Early return","type":0,"sectionRef":"#","url":"/docs/intro/early-interrupt","content":"Early return Some middlewares might need to stop the whole execution flow and return a response immediately. If you want to do this you can invoke return response in your middleware. Note: this will totally stop the execution of successive middlewares in any phase (before, after, onError) and returns an early response (or an error) directly at the Lambda level. If your middlewares do a specific task on every request like output serialization, error handling or clean, these won't be invoked in this case. They will have to be handled before the return. In this example, we can use this capability for building a sample caching middleware: // some function that calculates the cache id based on the current event const calculateCacheId = (event) => { /* ... */ } const storage = {} // middleware const cacheMiddleware = (options) => { let cacheKey const cacheMiddlewareBefore = async (request) => { cacheKey = options.calculateCacheId(request.event) if (options.storage.hasOwnProperty(cacheKey)) { // exits early and returns the value from the cache if it's already there return options.storage[cacheKey] } } const cacheMiddlewareAfter = async (request) => { // stores the calculated response in the cache options.storage[cacheKey] = request.response } return { before: cacheMiddlewareBefore, after: cacheMiddlewareAfter } } // sample usage const lambdaHandler = (event, context) => { /* ... */ } export const handler = middy() .use( cacheMiddleware({ calculateCacheId, storage }) ) .handler(lambdaHandler) ","keywords":"","version":"Next"},{"title":"History","type":0,"sectionRef":"#","url":"/docs/intro/history","content":"","keywords":"","version":"Next"},{"title":"A brief history of Middy​","type":1,"pageTitle":"History","url":"/docs/intro/history#a-brief-history-of-middy","content":" Middy was started in the early days of AWS Lambda (~2016) and it was initially only used to remove duplication in a big serverless project with tons of lambdas. Only in August 2017 Middy's source code was released on GitHub making it an open source project.2017-08-03: First commit2017-09-04: v0.2.1 First release2020-04-25: v1.0.0 Released2020 Review by @lmammino2020 Review by @willfarrell2021: v2.0.0 Coming soon2021-04-01: v2.0.0 Released2021-02-02: 2021 Review from @lmammino2022-05-12: v3.0.0 Released2022-11-24: v4.0.0 Released2023-08-22: JSAwardsIE 2023 Most valued JavaScript open source project2023-11-??: v5.0.0 Released2024-11-??: v6.0.0 Released Fun Fact: The adding of the emoji-icon was the 2nd commit to the project. ","version":"Next","tagName":"h2"},{"title":"Powertools for AWS Lambda","type":0,"sectionRef":"#","url":"/docs/integrations/lambda-powertools","content":"","keywords":"","version":"Next"},{"title":"Intro​","type":1,"pageTitle":"Powertools for AWS Lambda","url":"/docs/integrations/lambda-powertools#intro","content":" Powertools is a collection of utilities that can be used independently or together to help you build production-ready serverless applications. Currently, Powertools provides the following utilities that are compatible with Middy: Logger - Structured logging made easier with a middleware to capture key fields from the Lambda context, cold starts, and more. Compatible with Amazon CloudWatch, Datadog, and more.Tracer - An opinionated wrapper around AWS X-Ray SDK for Node.js with a middleware to automatically capture traces for function invocations, HTTP requests, and AWS SDK calls, and more.Metrics - Create Amazon CloudWatch custom metrics asynchronously with a middleware that takes care of capturing cold starts, and flushes metrics to CloudWatch in EMF-formatted batches.Idempotency - Middleware to make your Lambda functions idempotent and prevent duplicate execution based on payload content. ","version":"Next","tagName":"h2"},{"title":"Logger​","type":1,"pageTitle":"Powertools for AWS Lambda","url":"/docs/integrations/lambda-powertools#logger","content":" Key features: Capturing key fields from the Lambda context, cold starts, and structure logging output as JSON.Logging Lambda invocation events when instructed (disabled by default).Printing all the logs only for a percentage of invocations via log sampling (disabled by default).Appending additional keys to structured logs at any point in time.Providing a custom log formatter (Bring Your Own Formatter) to output logs in a structure compatible with your organization’s Logging RFC. ","version":"Next","tagName":"h2"},{"title":"Install​","type":1,"pageTitle":"Powertools for AWS Lambda","url":"/docs/integrations/lambda-powertools#install","content":" npmYarnpnpm npm install --save @aws-lambda-powertools/logger ","version":"Next","tagName":"h3"},{"title":"Options​","type":1,"pageTitle":"Powertools for AWS Lambda","url":"/docs/integrations/lambda-powertools#options","content":" Class constructor accepts the following options, which are all optional: logLevel (string|LogLevel): Log level to use. Defaults to INFO, but you can use any of the following values: SILENT, DEBUG, INFO, WARN, ERROR, CRITICAL.serviceName (string): Service name to use that will be used in all log statements. Defaults to service_undefined.sampleRateValue (number): number between 0.0 and 1 to determine the sample rate for debug logging. Defaults to 0 (no debub logging). Middleware accepts the following options: logger (Logger) (required): An instance of the Logger class.option (object) (optional): An object with the following keys: logEvent (boolean) (optional): Whether to log the Lambda invocation event. Defaults to false.clearState (boolean) (optional): Whether to clear the logger state after each invocation. Defaults to false. ","version":"Next","tagName":"h3"},{"title":"Sample usage​","type":1,"pageTitle":"Powertools for AWS Lambda","url":"/docs/integrations/lambda-powertools#sample-usage","content":" import middy from '@middy/core'; import { Logger, injectLambdaContext } from '@aws-lambda-powertools/logger'; const logger = new Logger({ serviceName: 'serverlessAirline' }); const lambdaHandler = async (_event, _context) => { logger.info('This is an INFO log with some context', { foo: { bar: 'baz' } }); }; export const handler = middy(lambdaHandler) .use(injectLambdaContext(logger)); The above code will output the following log: { "cold_start": true, "function_arn": "arn:aws:lambda:eu-west-1:123456789012:function:shopping-cart-api-lambda-prod-eu-west-1", "function_memory_size": 128, "function_request_id": "c6af9ac6-7b61-11e6-9a41-93e812345678", "function_name": "shopping-cart-api-lambda-prod-eu-west-1", "level": "INFO", "message": "This is an INFO log with some context", "foo": { "bar": "baz" }, "service": "serverlessAirline", "timestamp": "2021-12-12T21:21:08.921Z", "xray_trace_id": "abcdef123456abcdef123456abcdef123456" } As you can see, the log entry includes several fields that are automatically captured by the Logger utility, and that can help you better understand the context of the log entry. For example, the cold_start field indicates whether the Lambda function was cold started or not, and the xray_trace_id field contains the AWS X-Ray trace ID for the Lambda invocation. This is useful when you're troubleshooting a problem and want to correlate the logs with the traces. The Logger utility also allows you to append arbitary keys to the log entry at both the global level, at the invocation level, and at the single log level. For example, there might be some keys that you want to include in all log entries, such as the environment key to differentiate between the prod and dev environments, or in other cases you might want to include some keys only for a specific log entry, such as the customer_id key to identify the customer that triggered the Lambda invocation. Additionally, you can also configure Logger to log the Lambda invocation event, which can be useful when you're troubleshooting a problem and want to see the event that triggered the Lambda invocation. Finally, Logger allows you to define a custom log formatter to output logs in a different JSON structure from the default one. This is useful when you want to output logs in a structure that is compatible with your organization's requirements. ","version":"Next","tagName":"h3"},{"title":"Tracer​","type":1,"pageTitle":"Powertools for AWS Lambda","url":"/docs/integrations/lambda-powertools#tracer","content":" Key features: Auto-capturing cold start and service name as annotations, and responses or full exceptions as metadata.Automatically tracing HTTP(S) clients and generating segments for each request.Supporting tracing functions via decorators, middleware, and manual instrumentation.Supporting tracing AWS SDK v2 and v3 via AWS X-Ray SDK for Node.js.Auto-disable tracing when not running in the Lambda environment. ","version":"Next","tagName":"h2"},{"title":"Install​","type":1,"pageTitle":"Powertools for AWS Lambda","url":"/docs/integrations/lambda-powertools#install-1","content":" npmYarnpnpm npm install --save @aws-lambda-powertools/tracer ","version":"Next","tagName":"h3"},{"title":"Options​","type":1,"pageTitle":"Powertools for AWS Lambda","url":"/docs/integrations/lambda-powertools#options-1","content":" Class constructor accepts the following options, which are all optional: serviceName (string): Service name to use that will be used in all log statements. Defaults to service_undefined.enabled (boolean): Whether to enable tracing. Defaults to true.captureHTTPsRequests (boolean): Whether to capture outgoing HTTP(S) requests as segment metadata. Defaults to true. Middleware accepts the following options: tracer (Tracer) (required): An instance of the Tracer class.option (object) (optional): An object with the following keys: captureResponse (boolean) (optional): Whether to capture the Lambda invocation result as segment metadata. Defaults to true. ","version":"Next","tagName":"h3"},{"title":"Sample usage​","type":1,"pageTitle":"Powertools for AWS Lambda","url":"/docs/integrations/lambda-powertools#sample-usage-1","content":" import middy from '@middy/core'; import { Tracer, captureLambdaHandler } from '@aws-lambda-powertools/tracer'; import { SecretsManagerClient } from '@aws-sdk/client-secrets-manager'; const tracer = new Tracer({ serviceName: 'serverlessAirline' }); const client = tracer.captureAWSv3Client( new SecretsManagerClient({}) ); const lambdaHandler = async (_event, _context) => { tracer.putAnnotation('successfulBooking', true); }; export const handler = middy(lambdaHandler) .use(captureLambdaHandler(tracer)); The above code instructs the Tracer utility to create a custom segment named ## index.handler and to add an annotation to it with the key successfulBooking and the value true. The segment name is automatically generated based on the handler name, and the ## prefix is used to indicate that this is a custom segment. The Tracer utility also automatically captures the cold start and service name as annotations, and the Lambda invocation result or any error thrown as metadata. The segment data will be automatically sent to AWS X-Ray when the Lambda function completes its execution. Tracer also automatically captures and traces any outgoing HTTP(S) requests made by the Lambda function. For example, if your function makes a request to a custom API, the Tracer utility will automatically create a segment for that request which will appear in your trace data and service map. Additionally, it will also capture any AWS SDK calls made by the function, and do the same for them. ","version":"Next","tagName":"h3"},{"title":"Metrics​","type":1,"pageTitle":"Powertools for AWS Lambda","url":"/docs/integrations/lambda-powertools#metrics","content":" Key features: Aggregating up to 100 metrics using a single CloudWatch EMF object.Validating your metrics against common metric definitions mistakes (for example, metric unit, values, max dimensions, max metrics).Metrics are created asynchronously by the CloudWatch service. You do not need any custom stacks, and there is no impact to Lambda function latency.Creating a one-off metric with different dimensions. If you're new to Amazon CloudWatch, there are a few terms like Namespace, Dimensions, Unit, etc, that you must be aware of before you start using the Metrics utility. To learn more about these terms, see the documentation on PowerTools Metrics. ","version":"Next","tagName":"h2"},{"title":"Install​","type":1,"pageTitle":"Powertools for AWS Lambda","url":"/docs/integrations/lambda-powertools#install-2","content":" npmYarnpnpm npm install --save @aws-lambda-powertools/metrics ","version":"Next","tagName":"h3"},{"title":"Options​","type":1,"pageTitle":"Powertools for AWS Lambda","url":"/docs/integrations/lambda-powertools#options-2","content":" Class constructor accepts the following options, which are all optional: serviceName (string): Service name to use that will be used in all log statements. Defaults to service_undefined.defaultNamespace (string): Default namespace to use for all metrics. Defaults to default_namespace. Middleware accepts the following options: metrics (Metric) (required): An instance of the Metrics class.option (object) (optional): An object with the following keys: throwOnEmptyMetrics (boolean) (optional): Whether to throw an error if no metrics were added. Defaults to false.captureColdStartMetric (boolean) (optional): Whether to capture the cold start metric. Defaults to true. ","version":"Next","tagName":"h3"},{"title":"Sample usage​","type":1,"pageTitle":"Powertools for AWS Lambda","url":"/docs/integrations/lambda-powertools#sample-usage-2","content":" import middy from '@middy/core'; import { Metrics, MetricUnits, logMetrics } from '@aws-lambda-powertools/metrics'; const metrics = new Metrics({ namespace: 'serverlessAirline', serviceName: 'orders' }); const lambdaHandler = async (_event: unknown, _context: unknown): Promise<void> => { metrics.addMetric('successfulBooking', MetricUnits.Count, 1); }; export const handler = middy(lambdaHandler) .use(logMetrics(metrics)); The above code will output a CloudWatch EMF object similar to the following: { "successfulBooking": 1.0, "_aws": { "Timestamp": 1592234975665, "CloudWatchMetrics": [{ "Namespace": "successfulBooking", "Dimensions": [ [ "service" ] ], "Metrics": [{ "Name": "successfulBooking", "Unit": "Count" }] }], "service": "orders" } } This EMF object will be sent to CloudWatch asynchronously by the CloudWatch service. You do not need any custom stacks, and there is no impact to Lambda function latency. The Metrics utility supports high-resolution metrics as well as multi-value metrics. It also allows you to add default dimensions that are used in all the metrics emitted by your application or create a one-off metric with different dimensions. ","version":"Next","tagName":"h3"},{"title":"Idempotency​","type":1,"pageTitle":"Powertools for AWS Lambda","url":"/docs/integrations/lambda-powertools#idempotency","content":" Key features: Prevent Lambda handler from executing more than once on the same event payload during a time windowEnsure Lambda handler returns the same result when called with the same payloadSelect a subset of the event as the idempotency key using JMESPath expressionsSet a time window in which records with the same payload should be considered duplicatesExpires in-progress executions if the Lambda function times out halfway through The property of idempotency means that an operation does not cause additional side effects if it is called more than once with the same input parameters. Idempotent operations will return the same result when they are called multiple times with the same parameters. This makes idempotent operations safe to retry. ","version":"Next","tagName":"h2"},{"title":"Install​","type":1,"pageTitle":"Powertools for AWS Lambda","url":"/docs/integrations/lambda-powertools#install-3","content":" npmYarnpnpm npm install --save @aws-lambda-powertools/idempotency @aws-sdk/client-dynamodb @aws-sdk/lib-dynamodb ","version":"Next","tagName":"h3"},{"title":"Options​","type":1,"pageTitle":"Powertools for AWS Lambda","url":"/docs/integrations/lambda-powertools#options-3","content":" Middleware accepts the following options: persistenceStore (BasePersistenceLayer): Class used to interact with a persistence store.config (IdempotencyConfig) (optional): Configuration object to customize the default behavior of the idempotency feature. ","version":"Next","tagName":"h3"},{"title":"Sample usage​","type":1,"pageTitle":"Powertools for AWS Lambda","url":"/docs/integrations/lambda-powertools#sample-usage-3","content":" import middy from '@middy/core'; import { randomUUID } from 'node:crypto'; import { makeHandlerIdempotent } from '@aws-lambda-powertools/idempotency/middleware'; import { DynamoDBPersistenceLayer } from '@aws-lambda-powertools/idempotency/dynamodb'; const persistenceStore = new DynamoDBPersistenceLayer({ tableName: 'idempotencyTableName', }); const createSubscriptionPayment = async ( event ) => { // ... create payment return { id: randomUUID(), productId: event.productId, }; }; export const handler = middy( async (event, _context) => { try { const payment = await createSubscriptionPayment(event); return { paymentId: payment.id, message: 'success', statusCode: 200, }; } catch (error) { throw new Error('Error creating payment'); } } ).use( makeHandlerIdempotent({ persistenceStore, }) ); ","version":"Next","tagName":"h3"},{"title":"Best practices​","type":1,"pageTitle":"Powertools for AWS Lambda","url":"/docs/integrations/lambda-powertools#best-practices","content":" ","version":"Next","tagName":"h2"},{"title":"Using multiple utilities​","type":1,"pageTitle":"Powertools for AWS Lambda","url":"/docs/integrations/lambda-powertools#using-multiple-utilities","content":" You can use multiple Powertools utilities in your Lambda function by chaining the respective middlewares together. When doing so the Powertools team recommends that you place the Tracer middleware at the top of the middleware chain, followed by the Logger and any other middlewares. This is because the Tracer middleware will create a new segment for each Lambda invocation, and the Logger might want to log the event that triggered the Lambda invocation. With this placement you will be able to have a segment that closely matches the actual duration of your Lambda function, and you will be able to see the event that triggered the function invocation before it's potentially modified by other middlewares. export const handler = middy(() => { /* ... */ }) .use(captureLambdaHandler(tracer)) .use(injectLambdaContext(logger, { logEvent: true })) .use(logMetrics(metrics, { captureColdStartMetric: true })); ","version":"Next","tagName":"h3"},{"title":"Cleaning up on early returns​","type":1,"pageTitle":"Powertools for AWS Lambda","url":"/docs/integrations/lambda-powertools#cleaning-up-on-early-returns","content":" As discussed in the early return section, some middlewares might need to stop the whole execution flow and return a response immediately. In this case, if you are writing your own middleware that will work with the Powertools utilities, you must make sure to clean up the utilities before returning. For example, if you are using the Tracer utility, you must make sure to call the close method so that the Tracer can properly close the current segment and send it to X-Ray. Likewise, if you are using the Metrics utility, it's a good practice to call the clearMetrics method so that the Metrics utility can emit the metrics that were stored in the buffer and avoid you losing any data. Following the example described in the linked section, you can clean up all the utilities by doing the following: import { cleanupMiddlewares } from '@aws-lambda-powertools/commons'; // some function that calculates the cache id based on the current event const calculateCacheId = (event) => { /* ... */ } const storage = {} // middleware const cacheMiddleware = (options) => { let cacheKey const cacheMiddlewareBefore = async (request) => { cacheKey = options.calculateCacheId(request.event) if (options.storage.hasOwnProperty(cacheKey)) { // clean up the Powertools utilities before returning cleanupMiddlewares() // exits early and returns the value from the cache if it's already there return options.storage[cacheKey] } } const cacheMiddlewareAfter = async (request) => { // stores the calculated response in the cache options.storage[cacheKey] = request.response } return { before: cacheMiddlewareBefore, after: cacheMiddlewareAfter } } // sample usage const handler = middy((event, context) => { /* ... */ }) .use(captureLambdaHandler(tracer)) .use(injectLambdaContext(logger, { logEvent: true })) .use(logMetrics(metrics, { captureColdStartMetric: true })) .use( cacheMiddleware({ calculateCacheId, storage }) ); ","version":"Next","tagName":"h3"},{"title":"Sponsoring","type":0,"sectionRef":"#","url":"/docs/intro/sponsoring","content":"Sponsoring If Middy is adding value to your project or organization and you would like to support its long term maintenance, becoming a sponsor is a great way to do that. GitHub Sponsors","keywords":"","version":"Next"},{"title":"How it works","type":0,"sectionRef":"#","url":"/docs/intro/how-it-works","content":"","keywords":"","version":"Next"},{"title":"Execution order​","type":1,"pageTitle":"How it works","url":"/docs/intro/how-it-works#execution-order","content":" Middlewares have two phases: before and after. The before phase, happens before the handler is executed. In this code the response is not created yet, so you will have access only to the request. The after phase, happens after the handler is executed. In this code you will have access to both the request and the response. If you have three middlewares attached (as in the image above), this is the expected order of execution: middleware1 (before)middleware2 (before)middleware3 (before)handlermiddleware3 (after)middleware2 (after)middleware1 (after) Notice that in the after phase, middlewares are executed in inverted order, this way the first handler attached is the one with the highest priority as it will be the first able to change the request and last able to modify the response before it gets sent to the user. ","version":"Next","tagName":"h2"},{"title":"Influence","type":0,"sectionRef":"#","url":"/docs/intro/influence","content":"Influence Middy has been one of the first projects to encourage the adoption of middlewares to simplify code reuse and best practices within the context of Lambda. Since middy started to gain popularity in the Node.js ecosystem, we have seen some independent projects taking the same ideas to other ecosystems: .Net port Voxel.MiddyNet @vgaltesGoLang port Vesper Do you have a similar project? Let us know.","keywords":"","version":"Next"},{"title":"Release Cycle","type":0,"sectionRef":"#","url":"/docs/intro/release-cycle","content":"Release Cycle Each major release has a two (2) month Alpha period, one (1) month Beta, before a full release and becomes Stable. Each release goes into Maintenance after nine (9) months, as the next release enters Alpha. This time period is chosen for alignment with AWS Lambda nodejs runtime releases. All Node.js Long-Term Support (LTS) releases that have AWS Lambda runtimes are supported. Version\tStatus\tAlpha Release\tStable Release\tEnd-of-Lifev6\tScoping\t2024-??-??\t2024-10-29\t2026-04-30 v5\tStable\t2023-06-01\t2023-10-24\t2025-04-30 v4\tDeprecated\t2022-10-17\t2022-11-24\t2023-09-11 v3\tDeprecated\t2022-01-04\t2022-05-12\t2022-12-31 v2\tDeprecated\t2021-01-24\t2021-04-01\t2022-05-12 v1\tDeprecated\t2018-05-20\t2020-04-25\t2021-04-01 v0\tDeprecated\t2017-08-03\t2017-09-04\t2020-04-25 Dates are subject to change. If your organization requires a longer maintenance period of Middy, please reach out.","keywords":"","version":"Next"},{"title":"Utilities","type":0,"sectionRef":"#","url":"/docs/intro/utilities","content":"Utilities caution This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","keywords":"","version":"Next"},{"title":"Testing","type":0,"sectionRef":"#","url":"/docs/intro/testing","content":"Testing caution This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub. As of Middy v3, by default it will trigger an Abort signal shortly before a lambda times out to allow your handler to safely stop up and middleware to clean before the lambda terminates. When writing tests for lambda handlers wrapped with middy you'll need to account for this. There are a few approaches: Set middy(handler, { timeoutEarlyInMillis: 0 }) to alternatively disable the creation of the AbortController.Set middy(handler, { timeoutEarlyResponse: () => {} }) to disable the timeout error from being thrown using a no-op.Set context.getRemainingTimeInMillis = falsy to disable the creation of the AbortController. When using Middy cache and cacheExpiry in unit tests for functions in your code, it is important to conditionally disable them for test cases by setting both Middy options fields as follows: { cache: false, cacheExpiry: 0, ... } Failing to do so may make the tests end with unfinished worker processes. Although they may still succeed, this can cause issues and timeout errors, namely in CI/CD environments. An example of a message generated by Jest unit tests and which signals the need for this is as follows: A worker process has failed to exit gracefully and has been force exited. This is likely caused by tests leaking due to improper teardown. Try running with --detectOpenHandles to find leaks. Active timers can also cause this, ensure that .unref() was called on them. ","keywords":"","version":"Next"},{"title":"Streamify Response","type":0,"sectionRef":"#","url":"/docs/intro/streamify-response","content":"","keywords":"","version":"Next"},{"title":"Lambda Function URL Example​","type":1,"pageTitle":"Streamify Response","url":"/docs/intro/streamify-response#lambda-function-url-example","content":" import middy from '@middy/core' import { createReadableStream } from '@datastream/core' const lambdaHandler = (event, context) => { return { statusCode: 200, headers: { 'Content-Type': 'text/csv' }, body: createReadableStream('...') // or string } } export const handler = middy({ streamifyResponse: true }).handler(lambdaHandler) ","version":"Next","tagName":"h2"},{"title":"Lambda InvokeWithResponseStream Example​","type":1,"pageTitle":"Streamify Response","url":"/docs/intro/streamify-response#lambda-invokewithresponsestream-example","content":" import middy from '@middy/core' import { createReadableStream } from '@datastream/core' const lambdaHandler = (event, context) => { return createReadableStream('...') // or string } export const handler = middy({ streamifyResponse: true }).handler(lambdaHandler) ","version":"Next","tagName":"h2"},{"title":"Requesting Lambda​","type":1,"pageTitle":"Streamify Response","url":"/docs/intro/streamify-response#requesting-lambda","content":" import { LambdaClient, InvokeWithResponseStreamCommand } from '@aws-sdk/client-lambda' const lambda = new LambdaClient() const res = await lambda.send( new InvokeWithResponseStreamCommand({ FunctionName: 'function-name', Payload: JSON.stringify({...}) }) ) const decoder = new TextDecoder('utf-8') let body = '' for await (const chunk of res.EventStream) { if (chunk?.PayloadChunk?.Payload) { body += decoder.decode(Buffer.from(chunk.PayloadChunk.Payload)) } } ","version":"Next","tagName":"h3"},{"title":"appconfig","type":0,"sectionRef":"#","url":"/docs/middlewares/appconfig","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"appconfig","url":"/docs/middlewares/appconfig#install","content":" To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/appconfig npm install --save-dev @aws-sdk/client-appconfigdata ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"appconfig","url":"/docs/middlewares/appconfig#options","content":" AwsClient (object) (default AppConfigClient): AppConfigClient class constructor (i.e. that has been instrumented with AWS XRay). Must be from @aws-sdk/client-appconfig.awsClientOptions (object) (default undefined): Options to pass to AppConfigClient class constructor.awsClientAssumeRole (string) (default undefined): Internal key where secrets are stored. See @middy/sts on to set this.awsClientCapture (function) (default undefined): Enable XRay by passing captureAWSv3Client from aws-xray-sdk in.fetchData (object) (required): Mapping of internal key name to API request parameters.disablePrefetch (boolean) (default false): On cold start requests will trigger early if they can. Setting awsClientAssumeRole disables prefetch.cacheKey (string) (default appconfig): Cache key for the fetched data responses. Must be unique across all middleware.cacheExpiry (number) (default -1): How long fetch data responses should be cached for. -1: cache forever, 0: never cache, n: cache for n ms.setToContext (boolean) (default false): Store credentials to request.context. NOTES: Lambda is required to have IAM permission for appconfig:StartConfigurationSession and appconfig:GetLatestConfiguration ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"appconfig","url":"/docs/middlewares/appconfig#sample-usage","content":" import middy from '@middy/core' import appConfig from '@middy/appconfig' const handler = middy() .use( appConfig({ fetchData: { config: { Application: '...', ClientId: '...', Configuration: '...', Environment: '...' } } }) ) .handler((event, context) => { const response = { statusCode: 200, headers: {}, body: JSON.stringify({ message: 'hello world' }) } return response }) ","version":"Next","tagName":"h2"},{"title":"Bundling​","type":1,"pageTitle":"appconfig","url":"/docs/middlewares/appconfig#bundling","content":" To exclude @aws-sdk add @aws-sdk/client-appconfig to the exclude list. ","version":"Next","tagName":"h2"},{"title":"Usage with TypeScript​","type":1,"pageTitle":"appconfig","url":"/docs/middlewares/appconfig#usage-with-typescript","content":" Data in AppConfig can be stored as arbitrary structured data. It's not possible to know in advance what shape the fetched data will have, so by default the fetched parameters will have type unknown. You can provide some type hints by leveraging the appConfigReq utility function. This function allows you to specify what's the expected type that will be fetched for every AppConfig request. The idea is that, for every request specified in the fetchData option, rather than just providing the parameter path as a string, you can wrap it in a appConfigReq<ParamType>(config) call. Internally, appConfigReq is a function that will return config as received, but it allows you to use generics to provide type hints for the expected type for that parameter. This way TypeScript can understand how to treat the additional data attached to the context and stored in the internal storage. The following example illustrates how to use appConfigReq: import middy from '@middy/core' import appConfig, { appConfigReq } from '@middy/appconfig' const lambdaHandler = (event, context) => { return { statusCode: 200, headers: {}, body: JSON.stringify({ message: 'hello world' }) } }) export const handler = middy() .use( appConfig({ fetchData: { config: { Application: '...', ClientId: '...', Configuration: '...', Environment: '...' } } }) ) .before(async (request) => { const data = await getInternal('config', request) // data.config.field1 (string) // data.config.field2 (string) // data.config.field3 (number) }) .handler(lambdaHandler) ","version":"Next","tagName":"h2"},{"title":"Use with TypeScript","type":0,"sectionRef":"#","url":"/docs/intro/typescript","content":"Use with TypeScript Middy can be used with TypeScript with typings built in in every official package. Here's an example of how you might be using Middy with TypeScript for a Lambda receiving events from API Gateway and fetching secrets from Secrets Manager: import middy from '@middy/core' import secretsManager from '@middy/secrets-manager' import { APIGatewayProxyEvent, APIGatewayProxyResult } from 'aws-lambda' export const handler = middy<APIGatewayProxyEvent, APIGatewayProxyResult>() .use( secretsManager({ fetchData: { apiToken: 'dev/api_token' }, awsClientOptions: { region: 'us-east-1' }, setToContext: true }) ) .handler(async (req, context) => { // The context type gets augmented here by the secretsManager middleware. // This is just an example, obviously don't ever log your secret in real life! console.log(context.apiToken) return { statusCode: 200, body: JSON.stringify({ message: `Hello from ${event.path}`, req }), } }) Note that when using TypeScript, you should use what we call the Middleware-first, Handler-last approach, which means that you should always call the handler method last, after you have attached all the middlewares you need. This approach makes sure that, as you attach middlewares, the type system understands how the event and the context arguments are augmented by the various middlewares and inside your handler code you can have a nice type-checking and auto-completion experience. You can also write custom middlewares with TypeScript.","keywords":"","version":"Next"},{"title":"cloudwatch-metrics","type":0,"sectionRef":"#","url":"/docs/middlewares/cloudwatch-metrics","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"cloudwatch-metrics","url":"/docs/middlewares/cloudwatch-metrics#install","content":" To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/cloudwatch-metrics ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"cloudwatch-metrics","url":"/docs/middlewares/cloudwatch-metrics#options","content":" namespace (string) (optional): Defaults to aws-embedded-metrics. Sets the CloudWatch namespace that extracted metrics should be published to.dimensions (Record<String, String> | Record<String, String>[]) (optional): Explicitly overrides all dimensions. This will remove the default dimensions. You can provide an empty array to record all metrics without dimensions. For dimensions defaults and configuration see the aws-embedded-metrics docs. ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"cloudwatch-metrics","url":"/docs/middlewares/cloudwatch-metrics#sample-usage","content":" const middy = require('@middy/core') const cloudwatchMetrics = require('@middy/cloudwatch-metrics') const lambdaHandler = (event, context) => { context.metrics.putMetric('ProcessingLatency', 100, 'Milliseconds') context.metrics.setProperty( 'RequestId', '422b1569-16f6-4a03-b8f0-fe3fd9b100f8' ) } export const handler = middy() .use( cloudwatchMetrics({ namespace: 'myAppliction', dimensions: [{ Action: 'Buy' }] }) ) .handler(lambdaHandler) ","version":"Next","tagName":"h2"},{"title":"dynamodb","type":0,"sectionRef":"#","url":"/docs/middlewares/dynamodb","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"dynamodb","url":"/docs/middlewares/dynamodb#install","content":" To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/dynamodb npm install --save-dev @aws-sdk/client-dynamodb @aws-sdk/util-dynamodb ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"dynamodb","url":"/docs/middlewares/dynamodb#options","content":" AwsClient (object) (default DynamoDBClient): DynamoDBClient class constructor (i.e. that has been instrumented with AWS XRay). Must be from @aws-sdk/client-dynamodb.awsClientOptions (object) (default undefined): Options to pass to DynamoDBClient class constructor.awsClientAssumeRole (string) (default undefined): Internal key where secrets are stored. See @middy/sts on to set this.awsClientCapture (function) (default undefined): Enable XRay by passing captureAWSv3Client from aws-xray-sdk in.fetchData (object) (required): Mapping of internal key name to API request parameters.disablePrefetch (boolean) (default false): On cold start requests will trigger early if they can. Setting awsClientAssumeRole disables prefetch.cacheKey (string) (default dynamodb): Cache key for the fetched data responses. Must be unique across all middleware.cacheExpiry (number) (default -1): How long fetch data responses should be cached for. -1: cache forever, 0: never cache, n: cache for n ms.setToContext (boolean) (default false): Store credentials to request.context. NOTES: Lambda is required to have IAM permission for dynamodb:BatchGetItemCommand ","version":"Next","tagName":"h2"},{"title":"do-not-wait-for-empty-event-loop","type":0,"sectionRef":"#","url":"/docs/middlewares/do-not-wait-for-empty-event-loop","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"do-not-wait-for-empty-event-loop","url":"/docs/middlewares/do-not-wait-for-empty-event-loop#install","content":" To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/do-not-wait-for-empty-event-loop ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"do-not-wait-for-empty-event-loop","url":"/docs/middlewares/do-not-wait-for-empty-event-loop#options","content":" By default the middleware sets the callbackWaitsForEmptyEventLoop property to false only in the before phase, meaning you can override it in handler to true if needed. You can set it in all steps with the options: runOnBefore (defaults to true) - sets property before running your handlerrunOnAfter (defaults to false)runOnError (defaults to false) ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"do-not-wait-for-empty-event-loop","url":"/docs/middlewares/do-not-wait-for-empty-event-loop#sample-usage","content":" import middy from '@middy/core' import doNotWaitForEmptyEventLoop from '@middy/do-not-wait-for-empty-event-loop' const lambdaHandler = (event, context) => { return {} } export const handler = middy() .use(doNotWaitForEmptyEventLoop({ runOnError: true })) .handler(lambdaHandler) ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"dynamodb","url":"/docs/middlewares/dynamodb#sample-usage","content":" import middy from '@middy/core' import dynamodb from '@middy/dynamodb' const lambdaHandler = (event, context) => { const response = { statusCode: 200, headers: {}, body: JSON.stringify({ message: 'hello world' }) } return response } export const handler = middy() .use( dynamodb({ fetchData: { config: { TableName: '...', Key: { pk: '0000' } } } }) ) .handler(lambdaHandler) ","version":"Next","tagName":"h2"},{"title":"Bundling​","type":1,"pageTitle":"dynamodb","url":"/docs/middlewares/dynamodb#bundling","content":" To exclude @aws-sdk add @aws-sdk/client-dynamodb to the exclude list. ","version":"Next","tagName":"h2"},{"title":"Usage with TypeScript​","type":1,"pageTitle":"dynamodb","url":"/docs/middlewares/dynamodb#usage-with-typescript","content":" Data in DynamoDB can be stored as arbitrary structured data. It's not possible to know in advance what shape the fetched data will have, so by default the fetched parameters will have type Record<string, NativeAttributeValue>. You can provide some type hints by leveraging the dynamoDbReq utility function. This function allows you to specify what's the expected type that will be fetched for every DynamoDB request. The idea is that, for every request specified in the fetchData option, rather than just providing the parameter configuration as an object, you can wrap it in a dynamoDbReq<ParamType>(config) call. Internally, dynamoDbReq is a function that will return config as received, but it allows you to use generics to provide type hints for the expected fetched value type for that request. This way TypeScript can understand how to treat the additional data attached to the context and stored in the internal storage. The following example illustrates how to use dynamoDbReq: import middy from '@middy/core' import dynamodb, { dynamoDbReq } from '@middy/dynamodb' const handler = middy((event, context) => { const response = { statusCode: 200, headers: {}, body: JSON.stringify({ message: 'hello world' }) } return response }) handler.use( dynamodb({ fetchData: { config: dynamoDbReq<{field1: string, field2: string, field3: number}>({ TableName: '...' Key: { pk: '0000' } }) } }) ) .before(async (request) => { const data = await getInternal('config', request) // data.config.field1 (string) // data.config.field2 (string) // data.config.field3 (number) }) ","version":"Next","tagName":"h2"},{"title":"error-logger","type":0,"sectionRef":"#","url":"/docs/middlewares/error-logger","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"error-logger","url":"/docs/middlewares/error-logger#install","content":" To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/error-logger ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"error-logger","url":"/docs/middlewares/error-logger#options","content":" logger property: a function (default (request) => console.error(request.error)) that is used to define the logging logic. It receives the Error object as first and only parameter. ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"error-logger","url":"/docs/middlewares/error-logger#sample-usage","content":" import middy from '@middy/core' import errorLogger from '@middy/error-logger' const lambdaHandler = (event, context) => { // your handler logic } export const handler = middy().use(errorLogger()).handler(lambdaHandler) ","version":"Next","tagName":"h2"},{"title":"event-normalizer","type":0,"sectionRef":"#","url":"/docs/middlewares/event-normalizer","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"event-normalizer","url":"/docs/middlewares/event-normalizer#install","content":" To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/event-normalizer ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"event-normalizer","url":"/docs/middlewares/event-normalizer#options","content":" wrapNumbers (boolean) (default undefined): Whether to return numbers as a string instead of converting them to native JavaScript numbers. This allows for the safe round-trip transport of numbers of arbitrary size. For DynamoDB Events only. ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"event-normalizer","url":"/docs/middlewares/event-normalizer#sample-usage","content":" import middy from '@middy/core' import eventNormalizer from '@middy/event-normalizer' const lambdaHandler = (event, context) => { const { Records } = event for (const record of Records) { // ... } } export const handler = middy().use(eventNormalizer()).handler(lambdaHandler) ","version":"Next","tagName":"h2"},{"title":"http-content-negotiation","type":0,"sectionRef":"#","url":"/docs/middlewares/http-content-negotiation","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"http-content-negotiation","url":"/docs/middlewares/http-content-negotiation#install","content":" To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/http-content-negotiation ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"http-content-negotiation","url":"/docs/middlewares/http-content-negotiation#options","content":" parseCharsets (defaults to true) - Allows enabling/disabling the charsets parsingavailableCharsets (defaults to undefined) - Allows defining the list of charsets supported by the Lambda functionparseEncodings (defaults to true) - Allows enabling/disabling the encodings parsingavailableEncodings (defaults to undefined) - Allows defining the list of encodings supported by the Lambda functionparseLanguages (defaults to true) - Allows enabling/disabling the languages parsingavailableLanguages (defaults to undefined) - Allows defining the list of languages supported by the Lambda functionparseMediaTypes (defaults to true) - Allows enabling/disabling the media types parsingavailableMediaTypes (defaults to undefined) - Allows defining the list of media types supported by the Lambda functionfailOnMismatch (defaults to true) - If set to true it will throw an HTTP NotAcceptable (406) exception when the negotiation fails for one of the headers (e.g. none of the languages requested are supported by the app) ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"http-content-negotiation","url":"/docs/middlewares/http-content-negotiation#sample-usage","content":" import middy from '@middy/core' import httpContentNegotiation from '@middy/http-content-negotiation' import httpHeaderNormalizer from '@middy/http-header-normalizer' import httpErrorHandler from '@middy/http-error-handler' const lambdaHandler = (event, context) => { let message, body switch (context.preferredLanguage) { case 'it-it': message = 'Ciao Mondo' break case 'fr-fr': message = 'Bonjour le monde' break default: message = 'Hello world' } switch (context.preferredMediaType) { case 'application/xml': body = `<message>${message}</message>` break case 'application/yaml': body = `---\\nmessage: ${message}` break case 'application/json': body = JSON.stringify({ message }) break default: body = message } return { statusCode: 200, body } } export const handler = middy() .use(httpHeaderNormalizer()) .use( httpContentNegotiation({ parseCharsets: false, parseEncodings: false, availableLanguages: ['it-it', 'fr-fr', 'en'], availableMediaTypes: [ 'application/xml', 'application/yaml', 'application/json', 'text/plain' ] }) ) .use(httpErrorHandler()) .handler(lambdaHandler) ","version":"Next","tagName":"h2"},{"title":"http-error-handler","type":0,"sectionRef":"#","url":"/docs/middlewares/http-error-handler","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"http-error-handler","url":"/docs/middlewares/http-error-handler#install","content":" To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/http-error-handler ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"http-error-handler","url":"/docs/middlewares/http-error-handler#options","content":" logger (defaults to console.error) - a logging function that is invoked with the current error as an argument. You can pass false if you don't want the logging to happen.fallbackMessage (default undefined) - When non-http errors (those without statusCode) occur you can set a fallback message to be used. These will be returned with a 500 status code. ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"http-error-handler","url":"/docs/middlewares/http-error-handler#sample-usage","content":" import middy from '@middy/core' import httpErrorHandler from '@middy/http-error-handler' const lambdaHandler = (event, context) => { throw new createError.UnprocessableEntity() } export const handler = middy().use(httpErrorHandler()).handler(lambdaHandler) // when Lambda runs the handler... handler({}, {}, (_, response) => { t.deepEqual(response, { statusCode: 422, body: 'Unprocessable Entity' }) }) ","version":"Next","tagName":"h2"},{"title":"http-event-normalizer","type":0,"sectionRef":"#","url":"/docs/middlewares/http-event-normalizer","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"http-event-normalizer","url":"/docs/middlewares/http-event-normalizer#install","content":" To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/http-event-normalizer ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"http-event-normalizer","url":"/docs/middlewares/http-event-normalizer#sample-usage","content":" import middy from '@middy/core' import httpEventNormalizer from '@middy/http-event-normalizer' const lambdaHander = (event, context) => { console.log(`Hello user ${event.pathParameters.userId}`) // might produce `Hello user undefined`, but not an error return {} } export const handler = middy().use(httpEventNormalizer()).handler(lambdaHander) ","version":"Next","tagName":"h2"},{"title":"http-header-normalizer","type":0,"sectionRef":"#","url":"/docs/middlewares/http-header-normalizer","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"http-header-normalizer","url":"/docs/middlewares/http-header-normalizer#install","content":" To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/http-header-normalizer ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"http-header-normalizer","url":"/docs/middlewares/http-header-normalizer#options","content":" canonical (bool) (optional): if true, modifies the headers to canonical format, otherwise the headers are normalized to lowercase (default false)defaultHeaders (object) (optional): Default headers to used if any are missing. i.e. Content-Type (default {})normalizeHeaderKey (function) (optional): a function that accepts an header name as a parameter and returns its canonical representation. ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"http-header-normalizer","url":"/docs/middlewares/http-header-normalizer#sample-usage","content":" import middy from '@middy/core' import httpHeaderNormalizer from '@middy/http-header-normalizer' const lambdaHandler = (event, context) => { return {} } export const handler = middy() .use(httpHeaderNormalizer()) .handler(lambdaHandler) ","version":"Next","tagName":"h2"},{"title":"http-cors","type":0,"sectionRef":"#","url":"/docs/middlewares/http-cors","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"http-cors","url":"/docs/middlewares/http-cors#install","content":" To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/http-cors ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"http-cors","url":"/docs/middlewares/http-cors#options","content":" credentials (bool) (optional): if true, sets Access-Control-Allow-Credentials (default false)disableBeforePreflightResponse (bool) (optional): if false, replies automatically to cors preflight requests. Set to true if handling the response in a custom way (default true)headers (string) (optional): value to put in Access-Control-Allow-Headers (default: false)methods (string) (optional): value to put in Access-Control-Allow-Methods (default: false)getOrigin (function(incomingOrigin:string, options)) (optional): take full control of the generating the returned origin. Defaults to using the origin or origins option.origin (string) (optional): origin to put in the header (default: "*")origins (array) (optional): An array of allowed origins. The incoming origin is matched against the list and is returned if present.exposeHeaders (string) (optional): value to put in Access-Control-Expose-Headers (default: false)maxAge (string) (optional): value to put in Access-Control-Max-Age header (default: null)requestHeaders (string) (optional): value to put in Access-Control-Request-Headers (default: false)requestMethods (string) (optional): value to put in Access-Control-Request-Methods (default: false)cacheControl (string) (optional): value to put in Cache-Control header on pre-flight (OPTIONS) requests (default: null) import middy from '@middy/core' import httpErrorHandler from '@middy/http-error-handler' import cors from '@middy/http-cors' const lambdaHandler = (event, context) => { throw new createError.UnprocessableEntity() } export const handler = middy() .use(httpErrorHandler()) .use(cors()) .handler(lambdaHandler) // when Lambda runs the handler... handler({}, {}, (_, response) => { t.is(response.headers['Access-Control-Allow-Origin'], '*') t.deepEqual(response, { statusCode: 422, body: 'Unprocessable Entity' }) }) ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"http-cors","url":"/docs/middlewares/http-cors#sample-usage","content":" import middy from '@middy/core' import cors from '@middy/http-cors' const lambdaHandler = (event, context) => { return {} } export const handler = middy().use(cors()).handler(lambdaHandler) // when Lambda runs the handler... handler({}, {}, (_, response) => { t.is(response.headers['Access-Control-Allow-Origin'], '*') }) ","version":"Next","tagName":"h2"},{"title":"http-json-body-parser","type":0,"sectionRef":"#","url":"/docs/middlewares/http-json-body-parser","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"http-json-body-parser","url":"/docs/middlewares/http-json-body-parser#install","content":" To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/http-json-body-parser ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"http-json-body-parser","url":"/docs/middlewares/http-json-body-parser#options","content":" reviver (function) (optional): A reviver parameter may be passed which will be used JSON.parseing the body.disableContentTypeError (boolean) (optional): Skip throwing 415 when Content-Type is invalid. Default: true, will default to false in next major version. ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"http-json-body-parser","url":"/docs/middlewares/http-json-body-parser#sample-usage","content":" import middy from '@middy/core' import httpHeaderNormalizer from '@middy/http-header-normalizer' import httpJsonBodyParser from '@middy/http-json-body-parser' const lambdaHandler = (event, context) => { return {} } export const handler = middy() .use(httpHeaderNormalizer()) .use(httpJsonBodyParser()) .handler(lambdaHandler) // invokes the handler const event = { headers: { 'Content-Type': 'application/json' // It is important that the request has the proper content type. }, body: JSON.stringify({ foo: 'bar' }) } handler(event, {}, (_, body) => { t.is(body, { foo: 'bar' }) }) ","version":"Next","tagName":"h2"},{"title":"http-content-encoding","type":0,"sectionRef":"#","url":"/docs/middlewares/http-content-encoding","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"http-content-encoding","url":"/docs/middlewares/http-content-encoding#install","content":" To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/http-content-encoding ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"http-content-encoding","url":"/docs/middlewares/http-content-encoding#options","content":" br (object) (default {}): zlib.createBrotliCompress brotliOptionsgzip (object) (default {}): zlib.createGzip gzipOptionsdeflate (object) (default {}): zlib.createDeflate deflateOptionsoverridePreferredEncoding (array[string]) (optional): Override the preferred encoding order, most browsers prefer gzip over br, even though br has higher compression. Default: [] NOTES: Important For br encoding NodeJS defaults to 11. Levels 10 & 11 have been shown to have lower performance for the level of compression they apply. Testing is recommended to ensure the right balance of compression & performance. ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"http-content-encoding","url":"/docs/middlewares/http-content-encoding#sample-usage","content":" import middy from '@middy/core' import httpContentNegotiation from '@middy/http-content-negotiation' import httpContentEncoding from '@middy/http-content-encoding' import { constants } from 'node:zlib' export const handler = middy() .use(httpContentNegotiation()) .use(httpContentEncoding({ br: { params: { [constants.BROTLI_PARAM_MODE]: constants.BROTLI_MODE_TEXT, // adjusted for UTF-8 text [constants.BROTLI_PARAM_QUALITY]: 7 } }, overridePreferredEncoding: ['br', 'gzip', 'deflate'] }) .handler((event, context) => { return { statusCode: 200, body: '{...}' } }) ","version":"Next","tagName":"h2"},{"title":"Using streams​","type":1,"pageTitle":"http-content-encoding","url":"/docs/middlewares/http-content-encoding#using-streams","content":" import middy from '@middy/core' import httpContentNegotiation from '@middy/http-content-negotiation' import httpContentEncoding from '@middy/http-content-encoding' import { constants } from 'node:zlib' import { createReadableStream } from '@datastream/core' const lambdaHandler = (event, context) => { return { statusCode: 200, body: createReadableStream('{...}') } } export const handler = middy({ streamifyResponse: true }) .use(httpContentNegotiation()) .use(httpContentEncoding({ br: { params: { [constants.BROTLI_PARAM_MODE]: constants.BROTLI_MODE_TEXT, // adjusted for UTF-8 text [constants.BROTLI_PARAM_QUALITY]: 7 } }, overridePreferredEncoding: ['br', 'gzip', 'deflate'] }) .handler(lambdaHandler) ","version":"Next","tagName":"h3"},{"title":"http-multipart-body-parser","type":0,"sectionRef":"#","url":"/docs/middlewares/http-multipart-body-parser","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"http-multipart-body-parser","url":"/docs/middlewares/http-multipart-body-parser#install","content":" To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/http-multipart-body-parser ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"http-multipart-body-parser","url":"/docs/middlewares/http-multipart-body-parser#options","content":" busboy (object) (optional): defaults to {} and it can be used to pass extraparameters to the internal busboy instance at creation time. Checkout the official documentation for more information on the supported options.charset (string) (default utf8): it can be used to change default charset.disableContentTypeError (boolean) (optional): Skip throwing 415 when Content-Type is invalid. Default: true, will default to false in next major version. Note: this middleware will buffer all the data as it is processed internally by busboy, so, if you are using this approach to parse significantly big volumes of data, keep in mind that all the data will be allocated in memory. This is somewhat inevitable with Lambdas (as the data is already encoded into the JSON in memory as Base64), but it's good to keep this in mind and evaluate the impact on you application. If you really have to deal with big files, then you might also want to consider to allowing your users to directly upload files to S3 ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"http-multipart-body-parser","url":"/docs/middlewares/http-multipart-body-parser#sample-usage","content":" import middy from '@middy/core' import httpHeaderNormalizer from '@middy/http-header-normalizer' import httpMultipartBodyParser from '@middy/http-multipart-body-parser' const lambdaHandler = (event, context) => { return {} } export const handler = middy() .use(httpHeaderNormalizer()) .use(httpMultipartBodyParser()) .handler(lambdaHandler) // invokes the handler const event = { headers: { 'Content-Type': 'multipart/form-data; boundary=----WebKitFormBoundaryppsQEwf2BVJeCe0M' }, body: 'LS0tLS0tV2ViS2l0Rm9ybUJvdW5kYXJ5cHBzUUV3ZjJCVkplQ2UwTQ0KQ29udGVudC1EaXNwb3NpdGlvbjogZm9ybS1kYXRhOyBuYW1lPSJmb28iDQoNCmJhcg0KLS0tLS0tV2ViS2l0Rm9ybUJvdW5kYXJ5cHBzUUV3ZjJCVkplQ2UwTS0t', isBase64Encoded: true } handler(event, {}, (_, body) => { t.is(body, { foo: 'bar' }) }) ","version":"Next","tagName":"h2"},{"title":"http-partial-response","type":0,"sectionRef":"#","url":"/docs/middlewares/http-partial-response","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"http-partial-response","url":"/docs/middlewares/http-partial-response#install","content":" To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/http-partial-response ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"http-partial-response","url":"/docs/middlewares/http-partial-response#options","content":" filteringKeyName (string) (optional): defaults to fields the querystring key that will be used to filter the response. ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"http-partial-response","url":"/docs/middlewares/http-partial-response#sample-usage","content":" import middy from '@middy/core' import httpPartialResponse from '@middy/http-partial-response' const lambdaHandler = (event, context) => { const response = { statusCode: 200, body: { firstname: 'John', lastname: 'Doe', gender: 'male', age: 30, address: { street: 'Avenue des Champs-Élysées', city: 'Paris' } } } return response } export const handler = middy().use(httpPartialResponse()).handler(lambdaHandler) const event = { queryStringParameters: { fields: 'firstname,lastname' } } handler(event, {}, (_, response) => { expect(response.body).toEqual({ firstname: 'John', lastname: 'Doe' }) }) ","version":"Next","tagName":"h2"},{"title":"http-security-headers","type":0,"sectionRef":"#","url":"/docs/middlewares/http-security-headers","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"http-security-headers","url":"/docs/middlewares/http-security-headers#install","content":" To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/http-security-headers ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"http-security-headers","url":"/docs/middlewares/http-security-headers#options","content":" dnsPrefetchControl controls browser DNS prefetchingexpectCt for handling Certificate Transparency (Future Feature)frameguard to prevent clickjackinghidePoweredBy to remove the Server/X-Powered-By headerhsts for HTTP Strict Transport SecurityieNoOpen sets X-Download-Options for IE8+noSniff to keep clients from sniffing the MIME typereferrerPolicy to hide the Referer headerxssFilter adds some small XSS protections ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"http-security-headers","url":"/docs/middlewares/http-security-headers#sample-usage","content":" import middy from '@middy/core' import httpSecurityHeaders from '@middy/http-security-headers' const lambdaHandler = (event, context) => { return {} } export const handler = middy().use(httpSecurityHeaders()).handler(lambdaHandler) ","version":"Next","tagName":"h2"},{"title":"http-urlencode-body-parser","type":0,"sectionRef":"#","url":"/docs/middlewares/http-urlencode-body-parser","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"http-urlencode-body-parser","url":"/docs/middlewares/http-urlencode-body-parser#install","content":" To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/http-urlencode-body-parser ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"http-urlencode-body-parser","url":"/docs/middlewares/http-urlencode-body-parser#options","content":" disableContentTypeError (boolean) (optional): Skip throwing 415 when Content-Type is invalid. Default: true, will default to false in next major version. ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"http-urlencode-body-parser","url":"/docs/middlewares/http-urlencode-body-parser#sample-usage","content":" import middy from '@middy/core' import httpHeaderNormalizer from '@middy/http-header-normalizer' import httpUrlEncodeBodyParser from '@middy/http-urlencode-body-parser' const lambdaHandler = (event, context) => { return event.body // propagates the body as response } export const handler = middy() .use(httpHeaderNormalizer()) .use(httpUrlEncodeBodyParser()) .handler(lambdaHandler) // When Lambda runs the handler with a sample event... const event = { headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, body: 'frappucino=muffin&goat%5B%5D=scone&pond=moose' } handler(event, {}, (_, body) => { t.deepEqual(body, { frappucino: 'muffin', 'goat[]': 'scone', pond: 'moose' }) }) ","version":"Next","tagName":"h2"},{"title":"http-response-serializer","type":0,"sectionRef":"#","url":"/docs/middlewares/http-response-serializer","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"http-response-serializer","url":"/docs/middlewares/http-response-serializer#install","content":" To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/http-response-serializer ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"http-response-serializer","url":"/docs/middlewares/http-response-serializer#options","content":" defaultContentType (optional): used if the request and handler don't specify what type is wanted. ","version":"Next","tagName":"h2"},{"title":"Configuration​","type":1,"pageTitle":"http-response-serializer","url":"/docs/middlewares/http-response-serializer#configuration","content":" The middleware is configured by defining some serializers. { serializers: [ { regex: /^application\\/xml$/, serializer: ({ body }) => `<message>${body}</message>`, }, { regex: /^application\\/json$/, serializer: ({ body }) => JSON.stringify(body) }, { regex: /^text\\/plain$/, serializer: ({ body }) => body } ], defaultContentType: 'application/json' } ","version":"Next","tagName":"h2"},{"title":"Serializer Functions​","type":1,"pageTitle":"http-response-serializer","url":"/docs/middlewares/http-response-serializer#serializer-functions","content":" When a matching serializer is found, the Content-Type header is set and the serializer function is run. The function is passed the entire response object, and should return either a string or an object. If a string is returned, the body attribute of the response is updated. If an object with a body attribute is returned, the entire response object is replaced. This is useful if you want to manipulate headers or add additional attributes in the Lambda response. ","version":"Next","tagName":"h2"},{"title":"Content Type Negotiation​","type":1,"pageTitle":"http-response-serializer","url":"/docs/middlewares/http-response-serializer#content-type-negotiation","content":" The header is not the only way the middleware decides which serializer to execute. The content type is determined in the following order: context.requiredContentType -- allows the handler to override everything elseThe Accept header via acceptcontext.preferredContentType -- allows the handler to override the default, but lets the request ask firstdefaultContentType middleware configuration All options allow for multiple types to be specified in your order of preference, and the first matching serializer will be executed. When planning to use Accept, an external input, it is recommended to validate that it is an expected value. ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"http-response-serializer","url":"/docs/middlewares/http-response-serializer#sample-usage","content":" import middy from '@middy/core' import httpResponseSerializer from '@middy/http-response-serializer' const lambdaHandler = (event, context) => { const body = 'Hello World' return { statusCode: 200, body } } export const handler = middy() .use( httpResponseSerializer({ serializers: [ { regex: /^application\\/xml$/, serializer: ({ body }) => `<message>${body}</message>` }, { regex: /^application\\/json$/, serializer: ({ body }) => JSON.stringify(body) }, { regex: /^text\\/plain$/, serializer: ({ body }) => body } ], defaultContentType: 'application/json' }) ) .handler(lambdaHandler) const event = { headers: { Accept: 'application/xml;q=0.9, text/x-dvi; q=0.8, text/x-c' } } handler(event, {}, (_, response) => { t.is(response.body, '<message>Hello World</message>') }) ","version":"Next","tagName":"h2"},{"title":"http-urlencode-path-parser","type":0,"sectionRef":"#","url":"/docs/middlewares/http-urlencode-path-parser","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"http-urlencode-path-parser","url":"/docs/middlewares/http-urlencode-path-parser#install","content":" To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/http-urlencode-path-parser ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"http-urlencode-path-parser","url":"/docs/middlewares/http-urlencode-path-parser#options","content":" None ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"http-urlencode-path-parser","url":"/docs/middlewares/http-urlencode-path-parser#sample-usage","content":" import middy from '@middy/core' import httpUrlEncodePathParser from '@middy/http-urlencode-path-parser' const handler = middy((event, context) => { return event.body // propagates the body as response }) handler.use(httpUrlEncodePathParser()) // When Lambda runs the handler with a sample event... const event = { pathParameters: { name: encodeURIComponent('Mîddy') } } handler(event, {}, (_, body) => { t.deepEqual(body, { name: 'Mîddy' }) }) ","version":"Next","tagName":"h2"},{"title":"input-output-logger","type":0,"sectionRef":"#","url":"/docs/middlewares/input-output-logger","content":"","keywords":"","version":"Next"},{"title":"Official middlewares","type":0,"sectionRef":"#","url":"/docs/middlewares/intro","content":"","keywords":"","version":"Next"},{"title":"Misc​","type":1,"pageTitle":"Official middlewares","url":"/docs/middlewares/intro#misc","content":" cloudwatch-metrics: Hydrates lambda's context.metrics property with an instance of AWS MetricLoggerdo-not-wait-for-empty-event-loop: Sets callbackWaitsForEmptyEventLoop property to falseerror-logger: Logs errorsinput-output-logger: Logs request and responsewarmup: Used to pre-warm a lambda function ","version":"Next","tagName":"h2"},{"title":"Request Transformation​","type":1,"pageTitle":"Official middlewares","url":"/docs/middlewares/intro#request-transformation","content":" event-normalizer: Middleware for iterating through an AWS event records, parsing and normalizing nested events.http-content-negotiation: Parses Accept-* headers and provides utilities for content negotiation (charset, encoding, language and media type) for HTTP requestshttp-event-normalizer: Normalizes HTTP events by adding an empty object for queryStringParameters, multiValueQueryStringParameters or pathParameters if they are missing.http-header-normalizer: Normalizes HTTP header names to their canonical formathttp-json-body-parser: Automatically parses HTTP requests with JSON body and converts the body into an object. Also handles gracefully broken JSON if used in combination ofhttpErrorHandler.http-multipart-body-parser: Automatically parses HTTP requests with content type multipart/form-data and converts the body into an object.http-urlencode-body-parser: Automatically parses HTTP requests with URL encoded body (typically the result of a form submit).http-urlencode-path-parser: Automatically parses HTTP requests with URL encoded path.validator: Automatically validates incoming events and outgoing responses against custom schemas.ws-json-body-parser: Automatically parses WebSocket requests with JSON message and converts the message into an object. ","version":"Next","tagName":"h2"},{"title":"Response Transformation​","type":1,"pageTitle":"Official middlewares","url":"/docs/middlewares/intro#response-transformation","content":" http-content-encoding: Sets HTTP Content-Encoding header on response and compresses response bodyhttp-cors: Sets HTTP CORS headers on responsehttp-error-handler: Creates a proper HTTP response for errors that are created with the http-errors module and represents proper HTTP errors.http-security-headers: Applies best practice security headers to responses. It's a simplified port of HelmetJS.http-partial-response: Filter response objects attributes based on query string parameters.http-response-serializer: HTTP response serializer.sqs-partial-batch-failure: Handles partially failed SQS batches.ws-response: Forwards response to WebSocket endpoint. ","version":"Next","tagName":"h2"},{"title":"Fetch Data​","type":1,"pageTitle":"Official middlewares","url":"/docs/middlewares/intro#fetch-data","content":" appconfig: Fetch JSON configurations from AppConfig.dynamodb: Fetch configurations from DynamoDB.rds-signer: Fetches token for connecting to RDS with IAM users.s3: Fetch JSON configurations from S3.s3-object-response: Gets and write S3 object response.secrets-manager: Fetches parameters from AWS Secrets Manager.service-discovery: Fetches Service Discovery instances to be used when connecting to other AWS services.ssm: Fetches parameters from AWS Systems Manager Parameter Store.sts: Fetches credentials to assumes IAM roles for connection to other AWS services. ","version":"Next","tagName":"h2"},{"title":"rds-signer","type":0,"sectionRef":"#","url":"/docs/middlewares/rds-signer","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"rds-signer","url":"/docs/middlewares/rds-signer#install","content":" To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/rds-signer npm install --save-dev @aws-sdk/rds-signer ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"rds-signer","url":"/docs/middlewares/rds-signer#options","content":" AwsClient (object) (default Signer): Signer class constructor (i.e. that has been instrumented with AWS XRay). Must be from @aws-sdk/rds-signer.awsClientOptions (object) (optional): Options to pass to Signer class constructor.fetchData (object) (required): Mapping of internal key name to API request parameters.disablePrefetch (boolean) (default false): On cold start requests will trigger early if they can. Setting awsClientAssumeRole disables prefetch.cacheKey (string) (default rds-signer): Cache key for the fetched data responses. Must be unique across all middleware.cacheExpiry (number) (default -1): How long fetch data responses should be cached for. -1: cache forever, 0: never cache, n: cache for n ms.setToContext (boolean) (default false): Store role tokens to request.context. NOTES: Lambda is required to have IAM permission for rds-db:connect with a resource like arn:aws:rds-db:#{AWS::Region}:#{AWS::AccountId}:dbuser:${database_resource}/${iam_role} ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"rds-signer","url":"/docs/middlewares/rds-signer#sample-usage","content":" import middy from '@middy/core' import rdsSigner from '@middy/rds-signer' const lambdaHandler = (event, context) => { const response = { statusCode: 200, headers: {}, body: JSON.stringify({ message: 'hello world' }) } return response } export const handler = middy() .use( rdsSigner({ fetchData: { rdsToken: { region: 'ca-central-1', hostname: '***.rds.amazonaws.com', username: 'iam_role', port: 5432 } } }) ) .handler(lambdaHandler) ","version":"Next","tagName":"h2"},{"title":"Bundling​","type":1,"pageTitle":"rds-signer","url":"/docs/middlewares/rds-signer#bundling","content":" To exclude @aws-sdk add @aws-sdk/rds-signer to the exclude list. ","version":"Next","tagName":"h2"},{"title":"Install​","type":1,"pageTitle":"input-output-logger","url":"/docs/middlewares/input-output-logger#install","content":" To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/input-output-logger ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"input-output-logger","url":"/docs/middlewares/input-output-logger#options","content":" logger function (default console.log): logging function that accepts an objectawsContext boolean (default false): Include AWS Lambda context object to the loggeromitPaths string[] (default []): property accepts an array of paths that will be used to remove particular fields import the logged objects. This could serve as a simple way to redact sensitive data from logs (default []). Examples: name, user.name, users.[].namemask string: String to replace omitted values with. Example: ***omitted***replacer function: stringify replacer function ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"input-output-logger","url":"/docs/middlewares/input-output-logger#sample-usage","content":" import middy from '@middy/core' import inputOutputLogger from '@middy/input-output-logger' const lambdaHandler = (event, context) => { const response = { statusCode: 200, headers: {}, body: JSON.stringify({ message: 'hello world' }) } return response } export const handler = middy().use(inputOutputLogger()).handler(lambdaHandler) import middy from '@middy/core' import inputOutputLogger from '@middy/input-output-logger' import pino from 'pino' const logger = pino() const lambdaHandler = (event, context) => { // ... return response } export const handler = middy() .use( inputOutputLogger({ logger: (request) => { const child = logger.child(request.context) child.info(request.event ?? request.response) }, awsContext: true }) ) .handler(lambdaHandler) ","version":"Next","tagName":"h2"},{"title":"s3","type":0,"sectionRef":"#","url":"/docs/middlewares/s3","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"s3","url":"/docs/middlewares/s3#install","content":" To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/s3 npm install --save-dev @aws-sdk/client-s3 ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"s3","url":"/docs/middlewares/s3#options","content":" AwsClient (object) (default S3Client): S3Client class constructor (i.e. that has been instrumented with AWS XRay). Must be from @aws-sdk/client-appconfig.awsClientOptions (object) (default undefined): Options to pass to S3Client class constructor.awsClientAssumeRole (string) (default undefined): Internal key where secrets are stored. See @middy/sts on to set this.awsClientCapture (function) (default undefined): Enable XRay by passing captureAWSv3Client from aws-xray-sdk in.fetchData (object) (required): Mapping of internal key name to API request parameters.disablePrefetch (boolean) (default false): On cold start requests will trigger early if they can. Setting awsClientAssumeRole disables prefetch.cacheKey (string) (default s3): Cache key for the fetched data responses. Must be unique across all middleware.cacheExpiry (number) (default -1): How long fetch data responses should be cached for. -1: cache forever, 0: never cache, n: cache for n ms.setToContext (boolean) (default false): Store credentials to request.context. NOTES: Lambda is required to have IAM permission for s3:GetObjectIf the file is stored without ContentType, you can set it on the response using ResponseContentType as part of the input ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"s3","url":"/docs/middlewares/s3#sample-usage","content":" import middy from '@middy/core' import s3 from '@middy/s3' const lambdaHandler = (event, context) => { console.log(context.config) const response = { statusCode: 200, headers: {}, body: JSON.stringify({ message: 'hello world' }) } return response } export const handler = middy() .use( s3({ fetchData: { config: { Bucket: '...', Key: '...' } }, setToContext: true }) ) .handler(lambdaHandler) ","version":"Next","tagName":"h2"},{"title":"Bundling​","type":1,"pageTitle":"s3","url":"/docs/middlewares/s3#bundling","content":" To exclude @aws-sdk add @aws-sdk/client-s3 to the exclude list. ","version":"Next","tagName":"h2"},{"title":"Usage with TypeScript​","type":1,"pageTitle":"s3","url":"/docs/middlewares/s3#usage-with-typescript","content":" Data in an S3 object can be stored as arbitrary structured data. It's not possible to know in advance what shape the fetched data will have, so by default the fetched parameters will have type unknown. You can provide some type hints by leveraging the s3Req utility function. This function allows you to specify what's the expected type that will be fetched for every S3 request. The idea is that, for every request specified in the fetchData option, rather than just providing the parameter configuration as an object, you can wrap it in a s3Req<ParamType>(config) call. Internally, s3Req is a function that will return config as received, but it allows you to use generics to provide type hints for the expected fetched value type for that request. This way TypeScript can understand how to treat the additional data attached to the context and stored in the internal storage. The following example illustrates how to use s3Req: import middy from '@middy/core' import s3, { s3Req } from '@middy/s3' const handler = middy((event, context) => { console.log(context.config) const response = { statusCode: 200, headers: {}, body: JSON.stringify({ message: 'hello world' }) } return response }) handler.use( s3({ fetchData: { config: s3Req<{field1: string, field2: string, field3: number}>({ Bucket: '...', Key: '...' } }), setToContext: true }) ) .before(async (request) => { const data = await getInternal('config', request) // data.config.field1 (string) // data.config.field2 (string) // data.config.field3 (number) }) ","version":"Next","tagName":"h2"},{"title":"sqs-partial-batch-failure","type":0,"sectionRef":"#","url":"/docs/middlewares/sqs-partial-batch-failure","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"sqs-partial-batch-failure","url":"/docs/middlewares/sqs-partial-batch-failure#install","content":" To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/sqs-partial-batch-failure # Required for types only npm install --save-dev @aws-sdk/client-sqs ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"sqs-partial-batch-failure","url":"/docs/middlewares/sqs-partial-batch-failure#options","content":" logger (function) (optional): A function that will be called when a record fails to be processed. Default: console.error ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"sqs-partial-batch-failure","url":"/docs/middlewares/sqs-partial-batch-failure#sample-usage","content":" import middy from '@middy/core' import sqsBatch from '@middy/sqs-partial-batch-failure' const lambdaHandler = (event, context) => { const recordPromises = event.Records.map(async (record, index) => { /* Custom message processing logic */ return record }) return Promise.allSettled(recordPromises) } export const handler = middy().use(sqsBatch()).handler(lambdaHandler) ","version":"Next","tagName":"h2"},{"title":"Important​","type":1,"pageTitle":"sqs-partial-batch-failure","url":"/docs/middlewares/sqs-partial-batch-failure#important","content":" The value ReportBatchItemFailures must be added to your Lambda's FunctionResponseTypes in the EventSourceMapping. See Reporting batch item failures and Lambda EventSourceMapping ","version":"Next","tagName":"h2"},{"title":"s3-object-response","type":0,"sectionRef":"#","url":"/docs/middlewares/s3-object-response","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"s3-object-response","url":"/docs/middlewares/s3-object-response#install","content":" To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/s3-object-response npm install --save-dev @aws-sdk/client-s3 ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"s3-object-response","url":"/docs/middlewares/s3-object-response#options","content":" AwsClient (object) (default S3Client): S3Client class constructor (i.e. that has been instrumented with AWS XRay). Must be from @aws-sdk/client-s3.awsClientOptions (object) (optional): Options to pass to S3Client class constructor.awsClientCapture (function) (optional): Enable XRay by passing captureAWSv3Client from aws-xray-sdk in.disablePrefetch (boolean) (default false): On cold start requests will trigger early if they can. Setting awsClientAssumeRole disables prefetch. NOTES: The response from the handler must match the allowed parameters for S3.writeGetObjectResponse, excluding RequestRoute and RequestToken.XRay doesn't support tracing of fetch, you will need a workaround, see https://github.com/aws/aws-xray-sdk-node/issues/531#issuecomment-1378562164Lambda is required to have IAM permission for s3-object-lambda:WriteGetObjectResponse ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"s3-object-response","url":"/docs/middlewares/s3-object-response#sample-usage","content":" ","version":"Next","tagName":"h2"},{"title":"Stream​","type":1,"pageTitle":"s3-object-response","url":"/docs/middlewares/s3-object-response#stream","content":" import zlib from 'zlib' import middy from '@middy/core' import s3ObjectResponse from '@middy/s3-object-response' const lambdaHandler = (event, context) => { const readStream = await context.s3ObjectFetch.then(res => res.body) const transformStream = zlib.createBrotliCompress() return { Body: readStream.pipe(transformStream) } } export const handler = middy().use(s3ObjectResponse()).handler(lambdaHandler) ","version":"Next","tagName":"h3"},{"title":"JSON​","type":1,"pageTitle":"s3-object-response","url":"/docs/middlewares/s3-object-response#json","content":" import zlib from 'zlib' import middy from '@middy/core' import s3ObjectResponse from '@middy/s3-object-response' const lambdaHandler = async (event, context) => { let body = await context.s3ObjectFetch.then((res) => res.json()) // change body return { Body: JSON.stringify(body) } } export const handler = middy().use(s3ObjectResponse()).handler(lambdaHandler) ","version":"Next","tagName":"h3"},{"title":"service-discovery","type":0,"sectionRef":"#","url":"/docs/middlewares/service-discovery","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"service-discovery","url":"/docs/middlewares/service-discovery#install","content":" To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/service-discovery npm install --save-dev @aws-sdk/client-servicediscovery ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"service-discovery","url":"/docs/middlewares/service-discovery#options","content":" AwsClient (object) (default ServiceDiscoveryClient): ServiceDiscoveryClient class constructor (i.e. that has been instrumented with AWS XRay). Must be from @aws-sdk/client-servicediscovery.awsClientOptions (object) (default undefined): Options to pass to ServiceDiscoveryClient class constructor.awsClientAssumeRole (string) (default undefined): Internal key where secrets are stored. See @middy/sts on to set this.awsClientCapture (function) (default undefined): Enable XRay by passing captureAWSv3Client from aws-xray-sdk in.fetchData (object) (required): Mapping of internal key name to API request parameters.disablePrefetch (boolean) (default false): On cold start requests will trigger early if they can. Setting awsClientAssumeRole disables prefetch.cacheKey (string) (default sts): Cache key for the fetched data responses. Must be unique across all middleware.cacheExpiry (number) (default -1): How long fetch data responses should be cached for. -1: cache forever, 0: never cache, n: cache for n ms.setToContext (boolean) (default false): Store credentials to request.context. NOTES: Lambda is required to have IAM permission for servicediscovery:DiscoverInstances ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"service-discovery","url":"/docs/middlewares/service-discovery#sample-usage","content":" import middy from '@middy/core' import serviceDiscovery from '@middy/service-discovery' const lambdaHandler = (event, context) => { const response = { statusCode: 200, headers: {}, body: JSON.stringify({ message: 'hello world' }) } return response } export const handler = middy() .use( serviceDiscovery({ fetchData: { instances: { NamespaceName: '...', ServiceName: '...' } } }) ) .handler(lambdaHandler) ","version":"Next","tagName":"h2"},{"title":"Bundling​","type":1,"pageTitle":"service-discovery","url":"/docs/middlewares/service-discovery#bundling","content":" To exclude @aws-sdk add @aws-sdk/client-servicediscovery to the exclude list. ","version":"Next","tagName":"h2"},{"title":"Bundling​","type":1,"pageTitle":"s3-object-response","url":"/docs/middlewares/s3-object-response#bundling","content":" To exclude @aws-sdk add @aws-sdk/client-s3 to the exclude list. ","version":"Next","tagName":"h2"},{"title":"secrets-manager","type":0,"sectionRef":"#","url":"/docs/middlewares/secrets-manager","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"secrets-manager","url":"/docs/middlewares/secrets-manager#install","content":" To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/secrets-manager npm install --save-dev @aws-sdk/client-secrets-manager ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"secrets-manager","url":"/docs/middlewares/secrets-manager#options","content":" AwsClient (object) (default SecretsManagerClient): SecretsManagerClient class constructor (i.e. that has been instrumented with AWS XRay). Must be from @aws-sdk/client-secrets-manager.awsClientOptions (object) (optional): Options to pass to SecretsManagerClient class constructor.awsClientAssumeRole (string) (optional): Internal key where secrets are stored. See @middy/sts on to set this.awsClientCapture (function) (optional): Enable XRay by passing captureAWSv3Client from aws-xray-sdk in.fetchData (object) (required): Mapping of internal key name to API request parameter SecretId.fetchRotationDate (boolean|object) (default false): Boolean to apply to all or mapping of internal key name to boolean. This indicates what secrets should fetch and cached based on NextRotationDate/LastRotationDate/LastChangedDate. cacheExpiry of -1 will use NextRotationDate, while any other value will be added to the LastRotationDate or LastChangedDate, whichever is more recent. If secrets have different rotation schedules, use multiple instances of this middleware.disablePrefetch (boolean) (default false): On cold start requests will trigger early if they can. Setting awsClientAssumeRole disables prefetch.cacheKey (string) (default secrets-manager): Cache key for the fetched data responses. Must be unique across all middleware.cacheExpiry (number) (default -1): How long fetch data responses should be cached for. -1: cache forever, 0: never cache, n: cache for n ms.setToContext (boolean) (default false): Store secrets to request.context. NOTES: Lambda is required to have IAM permission for secretsmanager:GetSecretValue. If using fetchRotationDate add secretsmanager:DescribeSecret in as well. ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"secrets-manager","url":"/docs/middlewares/secrets-manager#sample-usage","content":" import middy from '@middy/core' import secretsManager from '@middy/secrets-manager' const lambdaHandler = (event, context) => { return {} } export const handler = middy() .use( secretsManager({ fetchData: { apiToken: 'dev/api_token' }, awsClientOptions: { region: 'us-east-1' }, setToContext: true }) ) .handler(lambdaHandler) // Before running the function handler, the middleware will fetch from Secrets Manager handler(event, context, (_, response) => { // assuming the dev/api_token has two keys, 'Username' and 'Password' t.is(context.apiToken.Username, 'username') t.is(context.apiToken.Password, 'password') }) ","version":"Next","tagName":"h2"},{"title":"Bundling​","type":1,"pageTitle":"secrets-manager","url":"/docs/middlewares/secrets-manager#bundling","content":" To exclude @aws-sdk add @aws-sdk/client-secrets-manager to the exclude list. ","version":"Next","tagName":"h2"},{"title":"Usage with TypeScript​","type":1,"pageTitle":"secrets-manager","url":"/docs/middlewares/secrets-manager#usage-with-typescript","content":" Data stored in SecretsManager can be stored as arbitrary structured data. It's not possible to know in advance what shape the fetched data will have, so by default the fetched secrets will have type unknown. You can provide some type hints by leveraging the secret utility function. This function allows you to specify what's the expected type that will be fetched for every SecretsManager request. The idea is that, for every request specified in the fetchData option, rather than just providing the parameter configuration as an object, you can wrap it in a secret<ParamType>(key) call. Internally, secret is a function that will return key as received, but it allows you to use generics to provide type hints for the expected fetched value type for that request. This way TypeScript can understand how to treat the additional data attached to the context and stored in the internal storage. The following example illustrates how to use secret: import middy from '@middy/core' import secretsManager, { secret } from '@middy/secrets-manager' const lambdaHandler = (event, context) => { console.log(context.config) const response = { statusCode: 200, headers: {}, body: JSON.stringify({ message: 'hello world' }) } return response } export const handler = middy() .use( secretsManager({ fetchData: { someSecret: secret<{User: string, Password: string}>('someHiddenSecret') }), setToContext: true }) ) .before(async (request) => { const data = await getInternal('someSecret', request) // data.someSecret.User (string) // data.someSecret.Password (string) // or, since we have `setToContext: true` // request.context.someSecret.User (string) // request.context.someSecret.Password (string) }) .handler(lambdaHandler) ","version":"Next","tagName":"h2"},{"title":"Third-party middlewares","type":0,"sectionRef":"#","url":"/docs/middlewares/third-party","content":"","keywords":"","version":"Next"},{"title":"Version 2.x - 4.x​","type":1,"pageTitle":"Third-party middlewares","url":"/docs/middlewares/third-party#version-2x---4x","content":" dazn-lambda-powertools: A collection of middlewares, AWS clients and helper libraries that make working with lambda easier.middy-ajv: AJV validator optimized for performancemiddy-console-logger: Middleware for filtering logs printed over console logging methods. If the level of the console logging method is equal or bigger than configured level, the log is printed, Otherwise, it is ignored.middy-event-loop-tracer: Middleware for dumping active tasks with their stacktraces in the event queue just before AWS Lambda function timeouts. So you can understand what was going on in the function when timeout happens.middy-idempotent: idempotency middleware for middymiddy-invocation: Middleware for accessing current AWS Lambda invocation event and context from anywhere without need to passing event and context as arguments through your code.- middy-lesslog: Middleware for lesslog, a teeny-tiny and severless-ready logging utilitymiddy-jsonapi: JSONAPI middleware for middymiddy-lesslog: Middleware for lesslog, a teeny-tiny and severless-ready logging utilitymiddy-profiler: Middleware for profiling CPU on AWS Lambda during invocation and shows what methods/modules consume what percent of CPU timemiddy-rds: Creates RDS connection using knex or pgmiddy-recaptcha: reCAPTCHA validation middlewaremiddy-sparks-joi: Joi validator@iress/middy-http-path-router: Routes AWS API Gateway events to handlers based on static and dynamic paths ","version":"Next","tagName":"h2"},{"title":"Version 2.x - 3.x​","type":1,"pageTitle":"Third-party middlewares","url":"/docs/middlewares/third-party#version-2x---3x","content":" aws-lambda-powertools-typescript: A suite of utilities for AWS Lambda Functions that makes structured logging, creating custom metrics asynchronously and tracing with AWS X-Ray easier logger: Structured logging made easier, and a middleware to enrich log items with key details of the Lambda contextmetrics: Custom Metrics created asynchronously via CloudWatch Embedded Metric Format (EMF)parameters: The Parameters utility provides high-level functions to retrieve one or multiple parameter values from AWS Systems Manager Parameter Store, AWS Secrets Manager, AWS AppConfig, Amazon DynamoDB, or your own parameter store.tracer: Utilities to trace Lambda function handlers, and both synchronous and asynchronous functions ","version":"Next","tagName":"h2"},{"title":"Version 1.x​","type":1,"pageTitle":"Third-party middlewares","url":"/docs/middlewares/third-party#version-1x","content":" middy-redis: Redis connection middlewaremiddy-extractor: Extracts data from events using expressions@keboola/middy-error-logger: middleware that catches thrown exceptions and rejected promises and logs them comprehensibly to the console@keboola/middy-event-validator: Joi powered event validation middlewaremiddy-reroute: provides complex redirect, rewrite and proxying capabilities by simply placing a rules file into your S3 bucketmiddytohof: Convert Middy middleware plugins to higher-order functions returning lambda handlerswrap-ware: A middleware wrapper which works with promises / asyncmiddy-middleware-warmup: A middy plugin to help keep your Lambdas warm during Winter@sharecover-co/middy-aws-xray-tracing: AWS X-Ray Tracing Middleware@sharecover-co/middy-http-response-serializer: This middleware serializes the response to JSON and wraps it in a 200 HTTP response@seedrs/middyjs-middleware: Collection of useful middlewaresmiddy-autoproxyresponse: A middleware that lets you return simple JavaScript objects from Lambda function handlers and converts them into LAMBDA_PROXY responsesjwt-auth: JSON web token authorization middleware based on express-jwtmiddy-mongoose-connector: MongoDB connection middleware for mongoose.js@ematipico/middy-request-response: a middleware that creates a pair of request/response objects@marcosantonocito/middy-cognito-permission: Authorization and roles permission management for the Middy framework that works with Amazon Cognitomiddy-env: Fetch, validate and type cast environment variablessqs-json-body-parser: Parse the SQS body to JSONmiddy-lesslog: Middleware for lesslog, a teeny-tiny and severless-ready logging utility ","version":"Next","tagName":"h2"},{"title":"ssm","type":0,"sectionRef":"#","url":"/docs/middlewares/ssm","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"ssm","url":"/docs/middlewares/ssm#install","content":" To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/ssm npm install --save-dev @aws-sdk/client-ssm ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"ssm","url":"/docs/middlewares/ssm#options","content":" AwsClient (object) (default SSMClient): SSMClient class constructor (i.e. that has been instrumented with AWS X-Ray). Must be from @aws-sdk/client-ssm.awsClientOptions (object) (optional): Options to pass to SSMClient class constructor.awsClientAssumeRole (string) (optional): Internal key where role tokens are stored. See @middy/sts on to set this.awsClientCapture (function) (optional): Enable AWS X-Ray by passing captureAWSv3Client from aws-xray-sdk in.fetchData (object) (required): Mapping of internal key name to API request parameter Names/Path. SecureString are automatically decrypted.disablePrefetch (boolean) (default false): On cold start requests will trigger early if they can. Setting awsClientAssumeRole disables prefetch.cacheKey (string) (default ssm): Cache key for the fetched data responses. Must be unique across all middleware.cacheExpiry (number) (default -1): How long fetch data responses should be cached for. -1: cache forever, 0: never cache, n: cache for n ms.setToContext (boolean) (default false): Store role tokens to request.context. NOTES: Lambda is required to have IAM permission for ssm:GetParameters and/or ssm:GetParametersByPath depending on what you're requesting, along with kms:Decrypt.SSM has throughput limitations. Switching to Advanced Parameter type or increasing maxRetries and retryDelayOptions.base in awsClientOptions may be required. ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"ssm","url":"/docs/middlewares/ssm#sample-usage","content":" import middy from '@middy/core' import ssm from '@middy/ssm' const lambdaHandler = (event, context) => { return {} } let globalDefaults = {} export const handler = middy() .use( ssm({ fetchData: { accessToken: '/dev/service_name/access_token', // single value dbParams: '/dev/service_name/database/', // object of values, key for each path defaults: '/dev/defaults' }, setToContext: true }) ) .before((request) => { globalDefaults = request.context.defaults.global }) .handler(lambdaHandler) import middy from '@middy/core' import { getInternal } from '@middy/util' import ssm from '@middy/ssm' const lambdaHandler = (event, context) => { return {} } let globalDefaults = {} export const handler = middy() .use( ssm({ fetchData: { defaults: '/dev/defaults' }, cacheKey: 'ssm-defaults' }) ) .use( ssm({ fetchData: { accessToken: '/dev/service_name/access_token', // single value dbParams: '/dev/service_name/database/' // object of values, key for each path }, cacheExpiry: 15 * 60 * 1000, cacheKey: 'ssm-secrets' }) ) // ... other middleware that fetch .before(async (request) => { const data = await getInternal( ['accessToken', 'dbParams', 'defaults'], request ) Object.assign(request.context, data) }) .handler(lambdaHandler) ","version":"Next","tagName":"h2"},{"title":"Bundling​","type":1,"pageTitle":"ssm","url":"/docs/middlewares/ssm#bundling","content":" To exclude @aws-sdk add @aws-sdk/client-ssm to the exclude list. ","version":"Next","tagName":"h2"},{"title":"Usage with TypeScript​","type":1,"pageTitle":"ssm","url":"/docs/middlewares/ssm#usage-with-typescript","content":" Data in SSM can be stored as arbitrary JSON values. It's not possible to know in advance what shape the fetched SSM parameters will have, so by default the fetched parameters will have type unknown. You can provide some type hints by leveraging the ssmParam utility function. This function allows you to specify what's the expected type that will be fetched for every parameter. The idea is that, for every parameter specified in the fetchData option, rather than just providing the parameter path as a string, you can wrap it in a ssmParam<ParamType>(parameterPath) call. Internally, ssmParam is a function that will return parameterPath as received, but it allows you to use generics to provide type hints for the expected type for that parameter. This way TypeScript can understand how to treat the additional data attached to the context and stored in the internal storage. The following example illustrates how to use ssmParam: import middy from '@middy/core' import { getInternal } from '@middy/util' import ssm, { ssmParam } from '@middy/ssm' const lambdaHandler = (event, context) => { return {} } let globalDefaults = {} export const handler = middy() .use( ssm({ fetchData: { accessToken: ssmParam<string>('/dev/service_name/access_token'), // single value (will be typed as string) dbParams: ssmParam<{ user: string; pass: string }>( '/dev/service_name/database/' ) // object of values (typed as {user: string, pass: string}) }, cacheExpiry: 15 * 60 * 1000, cacheKey: 'ssm-secrets' }) ) // ... other middleware that fetch .before(async (request) => { const data = await getInternal(['accessToken', 'dbParams'], request) // data.accessToken (string) // data.dbParams ({user: string, pass: string}) }) .handler(lambdaHandler) ","version":"Next","tagName":"h2"},{"title":"sts","type":0,"sectionRef":"#","url":"/docs/middlewares/sts","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"sts","url":"/docs/middlewares/sts#install","content":" To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/sts npm install --save-dev @aws-sdk/client-sts ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"sts","url":"/docs/middlewares/sts#options","content":" AwsClient (object) (default STSClient): STSClient class constructor (i.e. that has been instrumented with AWS XRay). Must be from @aws-sdk/client-sts.awsClientOptions (object) (optional): Options to pass to STSClient class constructor.awsClientCapture (function) (optional): Enable XRay by passing captureAWSv3Client from aws-xray-sdk in.fetchData (object) (required): Mapping of internal key name to API request parameters.disablePrefetch (boolean) (default false): On cold start requests will trigger early if they can. Setting awsClientAssumeRole disables prefetch.cacheKey (string) (default sts): Cache key for the fetched data responses. Must be unique across all middleware.cacheExpiry (number) (default -1): How long fetch data responses should be cached for. -1: cache forever, 0: never cache, n: cache for n ms.setToContext (boolean) (default false): Store credentials to request.context. NOTES: Lambda is required to have IAM permission for sts:AssumeRolesetToContext are included for legacy support and should be avoided for performance and security reasons. See main documentation for best practices. ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"sts","url":"/docs/middlewares/sts#sample-usage","content":" import middy from '@middy/core' import sts from '@middy/sts' const lambdaHandler = (event, context) => { const response = { statusCode: 200, headers: {}, body: JSON.stringify({ message: 'hello world' }) } return response } export const handler = middy() .use( sts({ fetchData: { assumeRole: { RoleArn: '...', RoleSessionName: '' // optional } } }) ) .handler(lambdaHandler) ","version":"Next","tagName":"h2"},{"title":"Bundling​","type":1,"pageTitle":"sts","url":"/docs/middlewares/sts#bundling","content":" To exclude @aws-sdk add @aws-sdk/client-sts to the exclude list. ","version":"Next","tagName":"h2"},{"title":"warmup","type":0,"sectionRef":"#","url":"/docs/middlewares/warmup","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"warmup","url":"/docs/middlewares/warmup#install","content":" To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/warmup ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"warmup","url":"/docs/middlewares/warmup#options","content":" isWarmingUp: a function that accepts the event object as a parameter and returns true if the current event is a warmup event and false if it's a regular execution. The default function will check if the event object has a source property set to serverless-plugin-warmup. ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"warmup","url":"/docs/middlewares/warmup#sample-usage","content":" const middy = require('@middy/core') const warmup = require('@middy/warmup') const lambdaHandler = (event, context, cb) => { /* ... */ } const isWarmingUp = (event) => event.isWarmingUp === true export const handler = middy() .use(warmup({ isWarmingUp })) .handler(lambdaHandler) ","version":"Next","tagName":"h2"},{"title":"ws-json-body-parser","type":0,"sectionRef":"#","url":"/docs/middlewares/ws-json-body-parser","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"ws-json-body-parser","url":"/docs/middlewares/ws-json-body-parser#install","content":" To install this middleware you can use NPM: npm install --save @middy/ws-json-body-parser ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"ws-json-body-parser","url":"/docs/middlewares/ws-json-body-parser#options","content":" reviver (function) (default undefined): A reviver parameter may be passed which will be used JSON.parseing the body. ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"ws-json-body-parser","url":"/docs/middlewares/ws-json-body-parser#sample-usage","content":" import middy from '@middy/core' import wsJsonBodyParserMiddleware from '@middy/ws-json-body-parser' import wsResponseMiddleware from '@middy/ws-response' const lambdaHandler = (event) => { return event.body.message } export const handler = middy() .use(wsJsonBodyParserMiddleware()) .use(wsResponseMiddleware()) .handler(lambdaHandler) ","version":"Next","tagName":"h2"},{"title":"ws-response","type":0,"sectionRef":"#","url":"/docs/middlewares/ws-response","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"ws-response","url":"/docs/middlewares/ws-response#install","content":" To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/ws-response npm install --save-dev @aws-sdk/client-apigatewaymanagementapi ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"ws-response","url":"/docs/middlewares/ws-response#options","content":" AwsClient (object) (default ApiGatewayManagementApiClient): ApiGatewayManagementApi class constructor (i.e. that has been instrumented with AWS XRay). Must be from @aws-sdk/client-apigatewaymanagementapi.awsClientOptions (object) (default undefined): Options to pass to ApiGatewayManagementApiClient class constructor.awsClientAssumeRole (string) (default undefined): Internal key where secrets are stored. See @middy/sts on to set this.awsClientCapture (function) (default undefined): Enable XRay by passing captureAWSv3Client from aws-xray-sdk in.disablePrefetch (boolean) (default false): On cold start requests will trigger early if they can. Setting awsClientAssumeRole disables prefetch. NOTES: Lambda is required to have IAM permission for execute-api:ManageConnectionsIf awsClientOptions.endpoint is not set it will be set using event.requestContext.{domainName,stage}If response does not contain ConnectId, it will be set from event.requestContext.connectionId ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"ws-response","url":"/docs/middlewares/ws-response#sample-usage","content":" ","version":"Next","tagName":"h2"},{"title":"API Gateway​","type":1,"pageTitle":"ws-response","url":"/docs/middlewares/ws-response#api-gateway","content":" import middy from '@middy/core' import wsResponse from '@middy/ws-response' export const handler = middy((event, context) => { return 'message' }) handler.use(wsResponse()) ","version":"Next","tagName":"h3"},{"title":"General​","type":1,"pageTitle":"ws-response","url":"/docs/middlewares/ws-response#general","content":" import middy from '@middy/core' import wsResponse from '@middy/ws-response' const lambdaHandler = (event, context) => { return { ConnectionId: '...', Data: 'message' } } export const handler = middy() .use( wsResponse({ awsClientOptions: { endpoint: '...' } }) ) .handler(lambdaHandler) ","version":"Next","tagName":"h3"},{"title":"Bundling​","type":1,"pageTitle":"ws-response","url":"/docs/middlewares/ws-response#bundling","content":" To exclude @aws-sdk add @aws-sdk/client-apigatewaymanagementapi to the exclude list. ","version":"Next","tagName":"h2"},{"title":"ws-router","type":0,"sectionRef":"#","url":"/docs/routers/ws-router","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"ws-router","url":"/docs/routers/ws-router#install","content":" To install this middleware you can use NPM: npm install --save @middy/ws-router ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"ws-router","url":"/docs/routers/ws-router#options","content":" routes (array[{routeKey, handler}]) (required): Array of route objects. routeKey (string) (required): AWS formatted route key. ie $connect, $disconnect, $defaulthandler (function) (required): Any handler(event, context, {signal}) function NOTES: Errors should be handled as part of the router middleware stack or the lambdaHandler middleware stack. Handled errors in the later will trigger the after middleware stack of the former.Shared middlewares, connected to the router middleware stack, can only be run before the lambdaHandler middleware stack. ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"ws-router","url":"/docs/routers/ws-router#sample-usage","content":" import middy from '@middy/core' import wsRouterHandler from '@middy/ws-router' import wsResponseMiddleware from '@middy/ws-response' import validatorMiddleware from '@middy/validator' const connectHandler = middy() .use(validatorMiddleware({eventSchema: {...} })) .handler((event, context) => { return 'connected' }) const disconnectHandler = middy() .use(validatorMiddleware({eventSchema: {...} })) .handler((event, context) => { return 'disconnected' }) const routes = [ { routeKey: '$connect', handler: connectHandler }, { routeKey: '$disconnect', handler: disconnectHandler } ] export const handler = middy() .use(wsResponseMiddleware()) .handler(wsRouterHandler(routes)) ","version":"Next","tagName":"h2"},{"title":"http-router","type":0,"sectionRef":"#","url":"/docs/routers/http-router","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"http-router","url":"/docs/routers/http-router#install","content":" To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/http-router ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"http-router","url":"/docs/routers/http-router#options","content":" routes (array[{method, path, handler}]) (required): Array of route objects. method (string) (required): One of GET, POST, PUT, PATCH, DELETE, OPTIONS and ANY that will match to any method passed inpath (string) (required): AWS formatted path starting with /. Variable: /{id}/, Wildcard: /{proxy+}handler (function) (required): Any handler(event, context) function NOTES: When using API Gateway it may be required to prefix routes[].path with /{stage} depending on your use case.Errors should be handled as part of the router middleware stack or the lambdaHandler middleware stack. Handled errors in the later will trigger the after middleware stack of the former.Shared middlewares, connected to the router middleware stack, can only be run before the lambdaHandler middleware stack.pathParameters will automatically be set if not already set ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"http-router","url":"/docs/routers/http-router#sample-usage","content":" import middy from '@middy/core' import httpRouterHandler from '@middy/http-router' import validatorMiddleware from '@middy/validator' const getHandler = middy() .use(validatorMiddleware({eventSchema: {...} })) .handler((event, context) => { return { statusCode: 200, body: '{...}' } }) const postHandler = middy() .use(validatorMiddleware({eventSchema: {...} })) .handler((event, context) => { return { statusCode: 200, body: '{...}' } }) const routes = [ { method: 'GET', path: '/user/{id}', handler: getHandler }, { method: 'POST', path: '/user', handler: postHandler } ] export const handler = middy() .use(httpHeaderNormalizer()) .handler(httpRouterHandler(routes)) ","version":"Next","tagName":"h2"},{"title":"Upgrade 0.x -> 1.x","type":0,"sectionRef":"#","url":"/docs/upgrade/0-1","content":"","keywords":"","version":"Next"},{"title":"Independent packages structure​","type":1,"pageTitle":"Upgrade 0.x -> 1.x","url":"/docs/upgrade/0-1#independent-packages-structure","content":" Version 1.x of Middy features decoupled independent packages published on npm under the @middy namespace. The core middleware engine has been moved to @middy/core and all the other middlewares are moved into their own packages as well. This allows to only install the features that are needed and to keep your Lambda dependencies small. See the list below to check which packages you need based on the middlewares you use: Core middleware functionality -> @middy/corecache -> @middy/cachecors -> @middy/http-corsdoNotWaitForEmptyEventLoop -> @middy/do-not-wait-for-empty-event-loophttpContentNegotiation -> @middy/http-content-negotiationhttpErrorHandler -> @middy/http-error-handlerhttpEventNormalizer -> @middy/http-event-normalizerhttpHeaderNormalizer -> @middy/http-header-normalizerhttpMultipartBodyParser -> @middy/http-json-body-parserhttpPartialResponse -> @middy/http-partial-responsejsonBodyParser -> @middy/http-json-body-parsers3KeyNormalizer -> @middy/s3-key-normalizersecretsManager -> @middy/secrets-managerssm -> @middy/ssmvalidator -> @middy/validatorurlEncodeBodyParser -> @middy/http-urlencode-body-parserwarmup -> @middy/warmup ","version":"Next","tagName":"h2"},{"title":"Header normalization in http-header-normalizer​","type":1,"pageTitle":"Upgrade 0.x -> 1.x","url":"/docs/upgrade/0-1#header-normalization-in-http-header-normalizer","content":" In Middy 0.x the httpHeaderNormalizer middleware normalizes HTTP header names into their own canonical format, for instance Sec-WebSocket-Key (notice the casing). In Middy 1.x this behavior has been changed to provide header names in lowercase format (e.g. sec-webSocket-key). This new behavior is more consistent with what Node.js core http package does and what other famous http frameworks like Express or Fastify do, so this is considered a more intuitive approach. When updating to Middy 1.x, make sure you double check all your references to HTTP headers and switch to the lowercase version to read them. All the middy core modules have been already updated to support the new format, so you should worry only about your userland code. ","version":"Next","tagName":"h2"},{"title":"Node.js 10 and 12 now supported / Node.js 6 and 8 now dropped​","type":1,"pageTitle":"Upgrade 0.x -> 1.x","url":"/docs/upgrade/0-1#nodejs-10-and-12-now-supported--nodejs-6-and-8-now-dropped","content":" Version 1.x of Middy no longer supports Node.js versions 6.x and 8.x as these versions have been dropped by the AWS Lambda runtime itself and not supported anymore by the Node.js community. You are highly encouraged to move to Node.js 12 or 10, which are the new supported versions in Middy 1.x. ","version":"Next","tagName":"h2"},{"title":"validator","type":0,"sectionRef":"#","url":"/docs/middlewares/validator","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"validator","url":"/docs/middlewares/validator#install","content":" To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/validator npm install --save-dev ajv-cmd # Optional: for pre-transpiling ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"validator","url":"/docs/middlewares/validator#options","content":" eventSchema (function) (default undefined): The compiled ajv validator that will be used to validate the input (request.event) of the Lambda handler.contextSchema (function) (default undefined): The compiled ajv validator that will be used to validate the input (request.context) of the Lambda handler. Has additional support for typeof keyword to allow validation of "typeof":"function".responseSchema (function) (default undefined): The compiled ajv validator that will be used to validate the output (request.response) of the Lambda handler.i18nEnabled (boolean) (default true): Option to disable i18n default package.defaultLanguage (string) (default en): When language not found, what language to fallback to.languages (object) (default: {}): Localization overrides NOTES: At least one of eventSchema or responseSchema is required.If you'd like to have the error details as part of the response, it will need to be handled separately. You can access them from request.error.cause.data, the original response can be found at request.error.response.Important Transpiling schemas & locales on the fly will cause a 50-150ms performance hit during cold start for simple JSON Schemas. Precompiling is highly recommended. ","version":"Next","tagName":"h2"},{"title":"transpileSchema​","type":1,"pageTitle":"validator","url":"/docs/middlewares/validator#transpileschema","content":" Transpile JSON-Schema in to JavaScript. Default ajv plugins used: ajv-i18n, ajv-formats, ajv-formats-draft2019, ajv-keywords, ajv-errors. schema (object) (required): JSON-Schema objectajvOptions (object) (default undefined): Options to pass to ajvclass constructor. Defaults are { strict: true, coerceTypes: 'array', allErrors: true, useDefaults: 'empty', messages: true }. ","version":"Next","tagName":"h2"},{"title":"transpileLocale​","type":1,"pageTitle":"validator","url":"/docs/middlewares/validator#transpilelocale","content":" Transpile Fluent (.ftl) localization file into ajv compatible format. Allows the overriding of the default messages and adds support for multi-language errrorMessages. ftl (string) (required): Contents of an ftl file to be transpiled. ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"validator","url":"/docs/middlewares/validator#sample-usage","content":" Example for event validation: import middy from '@middy/core' import validator from '@middy/validator' import { transpileSchema } from '@middy/validator/transpile' const lambdaHandler = (event, context) => { return {} } const schema = { type: 'object', required: ['body', 'foo'], properties: { // this will pass validation body: { type: 'string' }, // this won't as it won't be in the event foo: { type: 'string' } } } export const handler = middy() .use( validator({ eventSchema: transpileSchema(schema) }) ) .handler(lambdaHandler) // invokes the handler, note that property foo is missing const event = { body: JSON.stringify({ something: 'somethingelse' }) } handler(event, {}, (err, res) => { t.is(err.message, 'Event object failed validation') }) Example for response validation: import middy from '@middy/core' import validator from '@middy/validator' import { transpileSchema } from '@middy/validator/transpile' const lambdaHandler = (event, context) => { return {} } const responseSchema = transpileSchema({ type: 'object', required: ['body', 'statusCode'], properties: { body: { type: 'object' }, statusCode: { type: 'number' } } }) export const handler = middy() .use(validator({ responseSchema })) .handler(lambdaHandler) // handler({}, {}, (err, response) => { t.not(err, null) t.is(err.message, 'Response object failed validation') expect(response).not.toBe(null) // it doesn't destroy the response so it can be used by other middlewares }) Example for body validation: import middy from '@middy/core' import httpJsonBodyParser from '@middy/http-json-body-parser' import validator from '@middy/validator' import { transpileSchema } from '@middy/validator/transpile' const lambdaHandler = (event, context) => { return {} } const eventSchema = { type: 'object', required: ['body'], properties: { body: { type: 'object', required: ['name', 'email'], properties: { name: { type: 'string' }, email: { type: 'string', format: 'email' } // schema options https://ajv.js.org/json-schema.html#json-data-type } } } } export const handler = middy() // to validate the body we need to parse it first .use(httpJsonBodyParser()) .use( validator({ eventSchema: transpileSchema(eventSchema) }) ) .handler(lambdaHandler) ","version":"Next","tagName":"h2"},{"title":"Pre-transpiling example (recommended)​","type":1,"pageTitle":"validator","url":"/docs/middlewares/validator#pre-transpiling-example-recommended","content":" Run a build script to before running tests & deployment. #!/usr/bin/env bash # This is an example, should be customize to meet ones needs # Powered by `ajv-cmd` # $ ajv --help bundle () { ajv validate ${1} --valid \\ --strict true --coerce-types array --all-errors true --use-defaults empty ajv transpile ${1} \\ --strict true --coerce-types array --all-errors true --use-defaults empty \\ -o ${1%.json}.js } for file in handlers/*/schema.*.json; do bundle $file done locale () { LOCALE=$(basename ${1%.ftl}) ajv ftl ${1} --locale ${LOCALE} -o ${1%.ftl}.js } for file in handlers/*/*.ftl; do locale $file done import middy from '@middy/core' import validator from '@middy/validator' import eventSchema from './schema.event.js' import en from './en.js' import fr from './fr.js' const lambdaHandler = (event, context) => { return {} } export const handler = middy() .use( validator({ eventSchema, languages: { en, fr } }) ) .handler(lambdaHandler) ","version":"Next","tagName":"h2"},{"title":"Transpile during cold-start​","type":1,"pageTitle":"validator","url":"/docs/middlewares/validator#transpile-during-cold-start","content":" import { readFile } from 'node:fs/promises' import middy from '@middy/core' import validator from '@middy/validator' import { transpileSchema, transpileLocale } from '@middy/validator/transpile' import eventSchema from './schema.event.json' const lambdaHandler = (event, context) => { return {} } const en = transpileLocale(await readFile('./en.ftl')) const fr = transpileLocale(await readFile('./fr.ftl')) export const handler = middy() .use( validator({ eventSchema: transpileSchema(eventSchema), languages: { en, fr } }) ) .handler(lambdaHandler) ","version":"Next","tagName":"h2"},{"title":"Transpile during cold-start with default messages​","type":1,"pageTitle":"validator","url":"/docs/middlewares/validator#transpile-during-cold-start-with-default-messages","content":" import { readFile } from 'node:fs/promises' import middy from '@middy/core' import validator from '@middy/validator' import { transpileSchema, transpileLocale } from '@middy/validator/transpile' import { en, fr } from 'ajv-ftl-i18n' // `ajv-i18n` can also be used import eventSchema from './schema.event.json' const lambdaHandler = (event, context) => { return {} } export const handler = middy() .use( validator({ eventSchema: transpileSchema(eventSchema), languages: { en, fr } }) ) .handler(lambdaHandler) ","version":"Next","tagName":"h2"},{"title":"Upgrade 1.x -> 2.x","type":0,"sectionRef":"#","url":"/docs/upgrade/1-2","content":"","keywords":"","version":"Next"},{"title":"Core​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#core","content":" In handler callback(err, response) have been removed for async/await support return response to trigger after middleware stackthrow new Error(...) to trigger onError middleware stack In middleware next(err) has been removed for async/await support throw new Error(...) to trigger onError middleware stackreturn response to short circuit any middleware stack and respond. v1.x currently throws an error when something is returned ","version":"Next","tagName":"h2"},{"title":"Middleware​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#middleware","content":" ","version":"Next","tagName":"h2"},{"title":"cache​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#cache","content":" Deprecated. Too generic and had low usage. However, you can use the following if needed: const { createHash } = require('crypto') module.exports = (opts) => { const storage = {} const defaults = { calculateCacheId: async (event) => createHash('md5').update(JSON.stringify(event)).digest('hex'), getValue: async (key) => storage[key], setValue: async (key, value) => { storage[key] = value } } const options = { ...defaults, ...opts } let currentCacheKey const cacheMiddlewareBefore = async (request) => { const cacheKey = await options.calculateCacheId(request.event) const response = await options.getValue(cacheKey) if (response) { return response } request.internal.cacheKey = cacheKey } const cacheMiddlewareAfter = async (request) => { await options.setValue(request.internal.cacheKey, request.response) } return { before: cacheMiddlewareBefore, after: cacheMiddlewareAfter } } ","version":"Next","tagName":"h3"},{"title":"Upgrade 2.x -> 3.x","type":0,"sectionRef":"#","url":"/docs/upgrade/2-3","content":"","keywords":"","version":"Next"},{"title":"Notable changes​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#notable-changes","content":" New WebSocket middlewaresHTTP & WebSocket Routers!Better error handlingTimeout error handlingErrors now use { cause } for better context ","version":"Next","tagName":"h2"},{"title":"Core​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#core","content":" onError middleware stack order reversed to match after [Breaking Change] If you only use @middy/* middlewares no change should be requiredThis change has trickle down effects on middlewares with onError (see below for details)If you're handling errors yourself here are some things to review: Attach near the end so it is triggered first (likely already done)Remove return response, this will short circuit the response and block later middleware from modifying the response lambdaHandler now passes {signal} from AbortController to allow for ending lambda early to handle timeout errorsplugin argument now supports: internal: Allow the use of new Proxy() for smarter triggering in advanced use cases.timeoutEarlyInMillis: When before lambda timeout to trigger early exit. Default 5timeoutEarlyResponse: Function to throw a custom error or return a pre-set value. Default () => { throw new Error('Timeout') } Added .handler() method to allow easier understanding of the execution cycleDeprecate applyMiddleware() and __middlewares [Breaking Change] ","version":"Next","tagName":"h2"},{"title":"Util​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#util","content":" getInternal error now includes cause set to an array of ErrorsCatch when X-Ray is applied outside of handler invocation scopenormalizeHttpResponse now takes request and mutates response [Breaking Change]getCache will return {} instead of undefined when not found [Breaking Change] ","version":"Next","tagName":"h2"},{"title":"Middleware​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#middleware","content":" ","version":"Next","tagName":"h2"},{"title":"cloudwatch-metrics​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#cloudwatch-metrics","content":" No change ","version":"Next","tagName":"h3"},{"title":"do-not-wait-for-empty-event-loop​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#do-not-wait-for-empty-event-loop","content":" No change ","version":"Next","tagName":"h3"},{"title":"error-logger​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#error-logger","content":" No change ","version":"Next","tagName":"h3"},{"title":"event-normalizer​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#event-normalizer","content":" Add support for all missing AWS eventsRefactored for performance improvements ","version":"Next","tagName":"h3"},{"title":"http-content-encoding​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#http-content-encoding","content":" [New] Applies brotli, gzip, ands deflate compression to response body ","version":"Next","tagName":"h3"},{"title":"http-content-negotiation​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#http-content-negotiation","content":" Add in defaultToFirstLanguage to allow fallback to a safe language to use ","version":"Next","tagName":"h3"},{"title":"http-cors​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#http-cors","content":" onError will not modify response unless error has been handledSmall refactor for performance improvements ","version":"Next","tagName":"h3"},{"title":"http-error-handler​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#http-error-handler","content":" No longer returns the response to short circuit the middleware stack to allow for easier use now that onError is called in reverse order. ","version":"Next","tagName":"h3"},{"title":"http-event-normalizer​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#http-event-normalizer","content":" Option payloadFormatVersion no longer neededWill now throw error if not an http event [Breaking Change] ","version":"Next","tagName":"h3"},{"title":"http-header-normalizer​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#http-header-normalizer","content":" Modified so that all headers are set to lowercase when canonical:false [Breaking Change] ","version":"Next","tagName":"h3"},{"title":"http-json-body-parser​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#http-json-body-parser","content":" No change ","version":"Next","tagName":"h3"},{"title":"http-multipart-body-parser​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#http-multipart-body-parser","content":" Change default charset from binary/latin1 to utf-8. [Breaking Change] ","version":"Next","tagName":"h3"},{"title":"http-partial-response​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#http-partial-response","content":" No change ","version":"Next","tagName":"h3"},{"title":"http-response-serializer​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#http-response-serializer","content":" Renamed default option to defaultContentType to improve maintainability [Breaking Change]onError will not modify response unless error has been handled ","version":"Next","tagName":"h3"},{"title":"http-router​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#http-router","content":" [New] Allow re-routing of events to different handlers ","version":"Next","tagName":"h3"},{"title":"http-security-headers​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#http-security-headers","content":" onError will not modify response unless error has been handledComplete rewrite of options and inclusion of new HTML only headers [Breaking Change] ","version":"Next","tagName":"h3"},{"title":"http-urlencode-body-parser​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#http-urlencode-body-parser","content":" No change ","version":"Next","tagName":"h3"},{"title":"http-urlencode-path-parser​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#http-urlencode-path-parser","content":" No change ","version":"Next","tagName":"h3"},{"title":"input-output-logger​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#input-output-logger","content":" Add in new option to mask instead of omit a path. ","version":"Next","tagName":"h3"},{"title":"rds-signer​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#rds-signer","content":" Deprecated setToEnv option due to possible security misuse [Breaking Change] ","version":"Next","tagName":"h3"},{"title":"s3-key-normalizer​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#s3-key-normalizer","content":" Deprecated in favour of event-normalizer, v2.x compatible with v3 ","version":"Next","tagName":"h3"},{"title":"s3-object-response​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#s3-object-response","content":" No change ","version":"Next","tagName":"h3"},{"title":"secrets-manager​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#secrets-manager","content":" Deprecated setToEnv option due to possible security misuse [Breaking Change] ","version":"Next","tagName":"h3"},{"title":"service-discovery​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#service-discovery","content":" [New] Allow easy access to discoveryInstances ","version":"Next","tagName":"h3"},{"title":"sqs-json-body-parser​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#sqs-json-body-parser","content":" Deprecated in favour of event-normalizer, v2.x compatible with v3 ","version":"Next","tagName":"h3"},{"title":"sqs-partial-batch-failure​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#sqs-partial-batch-failure","content":" Complete rewrite to take advantage of https://aws.amazon.com/about-aws/whats-new/2021/11/aws-lambda-partial-batch-response-sqs-event-source/, will no longer throw an error if any message fails [Breaking Change] ","version":"Next","tagName":"h3"},{"title":"ssm​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#ssm","content":" Deprecated setToEnv option [Breaking Change] ","version":"Next","tagName":"h3"},{"title":"sts​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#sts","content":" No change ","version":"Next","tagName":"h3"},{"title":"validator​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#validator","content":" Change where errors are stored, from request.error.details to request.error.cause [Breaking Change]Add new options eventSchema, contextSchema, responseSchema. inputSchema and outputSchema become aliases. ","version":"Next","tagName":"h3"},{"title":"warmup​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#warmup","content":" No change ","version":"Next","tagName":"h3"},{"title":"ws-json-body-parser​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#ws-json-body-parser","content":" [New] Parse body from WebSocket event ","version":"Next","tagName":"h3"},{"title":"ws-response​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#ws-response","content":" [New] Post responses to WebSocket API Gateway ","version":"Next","tagName":"h3"},{"title":"ws-router​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#ws-router","content":" [New] Allow re-routing of events to different handlers ","version":"Next","tagName":"h3"},{"title":"Notes​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#notes","content":" If you still need setToEnv you can do something like so: middy(lambdaHandler) .use(/*...*/) .before(async (request) => { const values = await getInternal(['NODE_ENV'], request) process.env.NODE_ENV = values.NODE_ENV }) ","version":"Next","tagName":"h2"},{"title":"Upgrade 4.x -> 5.x","type":0,"sectionRef":"#","url":"/docs/upgrade/4-5","content":"","keywords":"","version":"Next"},{"title":"Notable changes​","type":1,"pageTitle":"Upgrade 4.x -> 5.x","url":"/docs/upgrade/4-5#notable-changes","content":" Middy no longer support Common JS modules.Update to use TypeScript v5 along with a refactor to most packagesUpdate all errors to be consistent new Error('message', { cause: { package:'@middy/***', data:*** } })If using multiple http-*-body-parsers on the same endpoint you'll need to set disableContentTypeError:true ","version":"Next","tagName":"h2"},{"title":"Core​","type":1,"pageTitle":"Upgrade 4.x -> 5.x","url":"/docs/upgrade/4-5#core","content":" Updated plugin.timeoutEarlyResponse(...) to throw new error with name TimeoutError to match new AbortSignal.timeout(). ","version":"Next","tagName":"h2"},{"title":"Util​","type":1,"pageTitle":"Upgrade 4.x -> 5.x","url":"/docs/upgrade/4-5#util","content":" No change ","version":"Next","tagName":"h2"},{"title":"Middleware​","type":1,"pageTitle":"Upgrade 4.x -> 5.x","url":"/docs/upgrade/4-5#middleware","content":" ","version":"Next","tagName":"h2"},{"title":"appconfig​","type":1,"pageTitle":"Upgrade 4.x -> 5.x","url":"/docs/upgrade/4-5#appconfig","content":" Update SDK to use newer appconfigdata client Breaking Change ","version":"Next","tagName":"h2"},{"title":"cloudwatch-metrics​","type":1,"pageTitle":"Upgrade 4.x -> 5.x","url":"/docs/upgrade/4-5#cloudwatch-metrics","content":" No change ","version":"Next","tagName":"h3"},{"title":"do-not-wait-for-empty-event-loop​","type":1,"pageTitle":"Upgrade 4.x -> 5.x","url":"/docs/upgrade/4-5#do-not-wait-for-empty-event-loop","content":" No change ","version":"Next","tagName":"h3"},{"title":"error-logger​","type":1,"pageTitle":"Upgrade 4.x -> 5.x","url":"/docs/upgrade/4-5#error-logger","content":" Change logger to have request passed in instead of request.error by default to allow access request.context and request.event Breaking Change ","version":"Next","tagName":"h3"},{"title":"event-normalizer​","type":1,"pageTitle":"Upgrade 4.x -> 5.x","url":"/docs/upgrade/4-5#event-normalizer","content":" No change ","version":"Next","tagName":"h3"},{"title":"http-content-encoding​","type":1,"pageTitle":"Upgrade 4.x -> 5.x","url":"/docs/upgrade/4-5#http-content-encoding","content":" Use preferredLanguage from context instead of event (See http-content-negotiation). Breaking Change ","version":"Next","tagName":"h3"},{"title":"http-content-negotiation​","type":1,"pageTitle":"Upgrade 4.x -> 5.x","url":"/docs/upgrade/4-5#http-content-negotiation","content":" Moved preferred* from event to context Breaking Change ","version":"Next","tagName":"h3"},{"title":"http-cors​","type":1,"pageTitle":"Upgrade 4.x -> 5.x","url":"/docs/upgrade/4-5#http-cors","content":" No change ","version":"Next","tagName":"h3"},{"title":"http-error-handler​","type":1,"pageTitle":"Upgrade 4.x -> 5.x","url":"/docs/upgrade/4-5#http-error-handler","content":" Will return 500 for all unhandled errors thrown Breaking Change ","version":"Next","tagName":"h3"},{"title":"http-event-normalizer​","type":1,"pageTitle":"Upgrade 4.x -> 5.x","url":"/docs/upgrade/4-5#http-event-normalizer","content":" Will no longer throw an error when HTTP type can't be determined Breaking Change ","version":"Next","tagName":"h3"},{"title":"http-header-normalizer​","type":1,"pageTitle":"Upgrade 4.x -> 5.x","url":"/docs/upgrade/4-5#http-header-normalizer","content":" No change ","version":"Next","tagName":"h3"},{"title":"http-json-body-parser​","type":1,"pageTitle":"Upgrade 4.x -> 5.x","url":"/docs/upgrade/4-5#http-json-body-parser","content":" Change disableContentTypeError to false by default Breaking Change ","version":"Next","tagName":"h3"},{"title":"http-multipart-body-parser​","type":1,"pageTitle":"Upgrade 4.x -> 5.x","url":"/docs/upgrade/4-5#http-multipart-body-parser","content":" Change disableContentTypeError to false by default Breaking Change ","version":"Next","tagName":"h3"},{"title":"http-partial-response​","type":1,"pageTitle":"Upgrade 4.x -> 5.x","url":"/docs/upgrade/4-5#http-partial-response","content":" No change ","version":"Next","tagName":"h3"},{"title":"http-response-serializer​","type":1,"pageTitle":"Upgrade 4.x -> 5.x","url":"/docs/upgrade/4-5#http-response-serializer","content":" No change ","version":"Next","tagName":"h3"},{"title":"http-router​","type":1,"pageTitle":"Upgrade 4.x -> 5.x","url":"/docs/upgrade/4-5#http-router","content":" No change ","version":"Next","tagName":"h3"},{"title":"http-security-headers​","type":1,"pageTitle":"Upgrade 4.x -> 5.x","url":"/docs/upgrade/4-5#http-security-headers","content":" No change ","version":"Next","tagName":"h3"},{"title":"http-urlencode-body-parser​","type":1,"pageTitle":"Upgrade 4.x -> 5.x","url":"/docs/upgrade/4-5#http-urlencode-body-parser","content":" Change disableContentTypeError to false by default Breaking Change ","version":"Next","tagName":"h3"},{"title":"http-urlencode-path-parser​","type":1,"pageTitle":"Upgrade 4.x -> 5.x","url":"/docs/upgrade/4-5#http-urlencode-path-parser","content":" No change ","version":"Next","tagName":"h3"},{"title":"input-output-logger​","type":1,"pageTitle":"Upgrade 4.x -> 5.x","url":"/docs/upgrade/4-5#input-output-logger","content":" Updated to use structuredClone ","version":"Next","tagName":"h3"},{"title":"rds-signer​","type":1,"pageTitle":"Upgrade 4.x -> 5.x","url":"/docs/upgrade/4-5#rds-signer","content":" No change ","version":"Next","tagName":"h3"},{"title":"s3-object-response​","type":1,"pageTitle":"Upgrade 4.x -> 5.x","url":"/docs/upgrade/4-5#s3-object-response","content":" Refactored to use fetch over https. context now returns s3ObjectFetch to allow more control over how it's used. Breaking Change ","version":"Next","tagName":"h3"},{"title":"secrets-manager​","type":1,"pageTitle":"Upgrade 4.x -> 5.x","url":"/docs/upgrade/4-5#secrets-manager","content":" No change ","version":"Next","tagName":"h3"},{"title":"service-discovery​","type":1,"pageTitle":"Upgrade 4.x -> 5.x","url":"/docs/upgrade/4-5#service-discovery","content":" No change ","version":"Next","tagName":"h3"},{"title":"sqs-partial-batch-failure​","type":1,"pageTitle":"Upgrade 4.x -> 5.x","url":"/docs/upgrade/4-5#sqs-partial-batch-failure","content":" Will now catch unhandled errors and set all messages to failed, preventing infinite loops Breaking Change ","version":"Next","tagName":"h3"},{"title":"ssm​","type":1,"pageTitle":"Upgrade 4.x -> 5.x","url":"/docs/upgrade/4-5#ssm","content":" No change ","version":"Next","tagName":"h3"},{"title":"sts​","type":1,"pageTitle":"Upgrade 4.x -> 5.x","url":"/docs/upgrade/4-5#sts","content":" No change ","version":"Next","tagName":"h3"},{"title":"validator​","type":1,"pageTitle":"Upgrade 4.x -> 5.x","url":"/docs/upgrade/4-5#validator","content":" Use preferredLanguage from context instead of event (See http-content-negotiation).ajv-cmd is no longer a required dependency, if you're pre-transpiling you'll need to run npm i ajv-cmd. ","version":"Next","tagName":"h3"},{"title":"warmup​","type":1,"pageTitle":"Upgrade 4.x -> 5.x","url":"/docs/upgrade/4-5#warmup","content":" No change ","version":"Next","tagName":"h3"},{"title":"ws-json-body-parser​","type":1,"pageTitle":"Upgrade 4.x -> 5.x","url":"/docs/upgrade/4-5#ws-json-body-parser","content":" Remove inclusion of rawBody from event Breaking Change ","version":"Next","tagName":"h3"},{"title":"ws-response​","type":1,"pageTitle":"Upgrade 4.x -> 5.x","url":"/docs/upgrade/4-5#ws-response","content":" No change ","version":"Next","tagName":"h3"},{"title":"ws-router​","type":1,"pageTitle":"Upgrade 4.x -> 5.x","url":"/docs/upgrade/4-5#ws-router","content":" No change ","version":"Next","tagName":"h3"},{"title":"Notes​","type":1,"pageTitle":"Upgrade 4.x -> 5.x","url":"/docs/upgrade/4-5#notes","content":" None ","version":"Next","tagName":"h2"},{"title":"Upgrade 3.x -> 4.x","type":0,"sectionRef":"#","url":"/docs/upgrade/3-4","content":"","keywords":"","version":"Next"},{"title":"Notable changes​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#notable-changes","content":" Middy now uses AWS SDK v3 by default. ","version":"Next","tagName":"h2"},{"title":"Core​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#core","content":" Remove polyfill for AbortControlerRemove polyfill for timers/promises ","version":"Next","tagName":"h2"},{"title":"Util​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#util","content":" normalizeResponse now will set the statusCode to 200 when casting to a new object or 500 when missing Breaking Change ","version":"Next","tagName":"h2"},{"title":"Middleware​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#middleware","content":" ","version":"Next","tagName":"h2"},{"title":"cloudwatch-metrics​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#cloudwatch-metrics","content":" No change ","version":"Next","tagName":"h3"},{"title":"do-not-wait-for-empty-event-loop​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#do-not-wait-for-empty-event-loop","content":" No change ","version":"Next","tagName":"h3"},{"title":"error-logger​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#error-logger","content":" No change ","version":"Next","tagName":"h3"},{"title":"event-normalizer​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#event-normalizer","content":" No change ","version":"Next","tagName":"h3"},{"title":"http-content-encoding​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#http-content-encoding","content":" Removed body as stream support, will be brought back as a new middleware in a future middleware Breaking Change ","version":"Next","tagName":"h3"},{"title":"http-content-negotiation​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#http-content-negotiation","content":" No change ","version":"Next","tagName":"h3"},{"title":"http-cors​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#http-cors","content":" No change ","version":"Next","tagName":"h3"},{"title":"http-error-handler​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#http-error-handler","content":" No change ","version":"Next","tagName":"h3"},{"title":"http-event-normalizer​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#http-event-normalizer","content":" No change ","version":"Next","tagName":"h3"},{"title":"http-header-normalizer​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#http-header-normalizer","content":" No change ","version":"Next","tagName":"h3"},{"title":"http-json-body-parser​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#http-json-body-parser","content":" Deprecate event.rawBody Breaking Change You can add in an inline middleware as a workaround. .before((request) => { request.event.rawBody = request.event.body }) .use(httpJSONBodyParserMiddleware()) See https://github.com/middyjs/middy/issues/945 for discussion and reasoning. ","version":"Next","tagName":"h3"},{"title":"http-multipart-body-parser​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#http-multipart-body-parser","content":" Add new option to set charset ","version":"Next","tagName":"h3"},{"title":"http-partial-response​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#http-partial-response","content":" No change ","version":"Next","tagName":"h3"},{"title":"http-response-serializer​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#http-response-serializer","content":" No change ","version":"Next","tagName":"h3"},{"title":"http-router​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#http-router","content":" No change ","version":"Next","tagName":"h3"},{"title":"http-security-headers​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#http-security-headers","content":" No change ","version":"Next","tagName":"h3"},{"title":"http-urlencode-body-parser​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#http-urlencode-body-parser","content":" Now throws 422 when unable to parse JSON Breaking Change ","version":"Next","tagName":"h3"},{"title":"http-urlencode-path-parser​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#http-urlencode-path-parser","content":" No change ","version":"Next","tagName":"h3"},{"title":"input-output-logger​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#input-output-logger","content":" No change ","version":"Next","tagName":"h3"},{"title":"rds-signer​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#rds-signer","content":" Updated to use AWS SDK v3 Breaking Change ","version":"Next","tagName":"h3"},{"title":"s3-object-response​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#s3-object-response","content":" Updated to use AWS SDK v3 Breaking Change ","version":"Next","tagName":"h3"},{"title":"secrets-manager​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#secrets-manager","content":" Updated to use AWS SDK v3 Breaking Change ","version":"Next","tagName":"h3"},{"title":"service-discovery​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#service-discovery","content":" Updated to use AWS SDK v3 Breaking Change ","version":"Next","tagName":"h3"},{"title":"sqs-partial-batch-failure​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#sqs-partial-batch-failure","content":" No change ","version":"Next","tagName":"h3"},{"title":"ssm​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#ssm","content":" Updated to use AWS SDK v3 Breaking Change ","version":"Next","tagName":"h3"},{"title":"sts​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#sts","content":" Updated to use AWS SDK v3 Breaking Change ","version":"Next","tagName":"h3"},{"title":"validator​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#validator","content":" We've put a lot of work into making this middleware bundle smaller and faster by default, while allowing for opting into more functionality. Deprecate inputSchema and outputSchema options Breaking ChangeDeprecated i18nEnabled Breaking ChangeMust now pass in defaultLanguage localizations to languages Breaking ChangeAdded in ajv-error supportPulled transpileSchema out of middleware to allow for tree shaking and pre-compile option Breaking ChangeAdded in transpileLocale to allow for custom internationalization of error messages including errorMessage How to update use of middleware import validatorMiddleware from '@middy/validator' // 1. Import transpileSchema import { transpileSchema } from '@middy/validator/transpile' export const handler = middy(...) .use(validatorMiddleware({ // 2. Wrap schemas with transpileSchema eventSchema: transpileSchema(eventJsonSchema) })) import validatorMiddleware from '@middy/validator' // 1. Import localizations import { en, fr } from 'ajv-ftl-i18n' export const handler = middy(...) .use(validatorMiddleware({ eventSchema: transpileSchema(eventJsonSchema), // 2. Add localizations in langauges: { en, fr } })) ","version":"Next","tagName":"h3"},{"title":"warmup​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#warmup","content":" No change ","version":"Next","tagName":"h3"},{"title":"ws-json-body-parser​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#ws-json-body-parser","content":" No change ","version":"Next","tagName":"h3"},{"title":"ws-response​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#ws-response","content":" Updated to use AWS SDK v3 Breaking Change ","version":"Next","tagName":"h3"},{"title":"ws-router​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#ws-router","content":" No change ","version":"Next","tagName":"h3"},{"title":"Notes​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#notes","content":" None ","version":"Next","tagName":"h2"},{"title":"Configurable Middlewares","type":0,"sectionRef":"#","url":"/docs/writing-middlewares/configurable-middlewares","content":"Configurable Middlewares In order to make middlewares configurable, they are generally exported as a function that accepts a configuration object. This function should then return the middleware object with before,after, and onError as keys. E.g. // customMiddleware.js const defaults = {} const customMiddleware = (opts) => { const options = { ...defaults, ...opts } const customMiddlewareBefore = async (request) => { const { event, context } = request // ... } const customMiddlewareAfter = async (request) => { const { response } = request // ... request.response = response } const customMiddlewareOnError = async (request) => { if (request.response === undefined) return await customMiddlewareAfter(request) } return { before: customMiddlewareBefore, after: customMiddlewareAfter, onError: customMiddlewareOnError } } export default customMiddleware With this convention in mind, using a middleware will always look like the following example: import middy from '@middy/core' import customMiddleware from 'customMiddleware.js' const lambdaHandler = async (event, context) => { // do stuff return {} } export const handler = middy() .use( customMiddleware({ option1: 'foo', option2: 'bar' }) ) .handler(lambdaHandler) ","keywords":"","version":"Next"},{"title":"db-manager​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#db-manager","content":" Deprecated. Too generic and had low usage. You can check out middy-rds as a possible alternative or example on building your own replacement. ","version":"Next","tagName":"h3"},{"title":"do-not-wait-for-empty-event-loop​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#do-not-wait-for-empty-event-loop","content":" No change ","version":"Next","tagName":"h3"},{"title":"function-shield​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#function-shield","content":" Deprecated. Only supported up to Node v10. ","version":"Next","tagName":"h3"},{"title":"http-content-negotiation​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#http-content-negotiation","content":" No change ","version":"Next","tagName":"h3"},{"title":"http-cors​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#http-cors","content":" Added new options to support more headers methodsexposeHeadersrequestHeadersrequestMethods ","version":"Next","tagName":"h3"},{"title":"http-error-handler​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#http-error-handler","content":" Added in support to honour httpError.expose. Errors with statusCode >= 500 are no longer applied to response by default. Added new option to catch any non-http and statusCode >= 500 errors fallbackMessage ","version":"Next","tagName":"h3"},{"title":"http-event-normalizer​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#http-event-normalizer","content":" No change ","version":"Next","tagName":"h3"},{"title":"http-header-normalizer​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#http-header-normalizer","content":" No change ","version":"Next","tagName":"h3"},{"title":"http-json-body-parser​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#http-json-body-parser","content":" No change ","version":"Next","tagName":"h3"},{"title":"http-multipart-body-parser​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#http-multipart-body-parser","content":" No change ","version":"Next","tagName":"h3"},{"title":"http-partial-response​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#http-partial-response","content":" No change ","version":"Next","tagName":"h3"},{"title":"http-response-serializer​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#http-response-serializer","content":" No change ","version":"Next","tagName":"h3"},{"title":"http-security-headers​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#http-security-headers","content":" No longer adds statusCode:500 when there is no response. ","version":"Next","tagName":"h3"},{"title":"http-urlencode-body-parser​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#http-urlencode-body-parser","content":" Remove extended option. Only uses qs as the parser, formally enabled by options {extended: true}. ","version":"Next","tagName":"h3"},{"title":"http-urlencode-path-parser​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#http-urlencode-path-parser","content":" No change ","version":"Next","tagName":"h3"},{"title":"input-output-logger​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#input-output-logger","content":" Now additionally logs response from the onError middleware stackSupport for omiting within nested arraysAdd in support for replacer to be passed into JSON.stringify() ","version":"Next","tagName":"h3"},{"title":"rds-signer​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#rds-signer","content":" New middleware to fetch RDS credential used when connecting with IAM roles. This was built into db-manager. ","version":"Next","tagName":"h3"},{"title":"s3-key-normalizer​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#s3-key-normalizer","content":" No change ","version":"Next","tagName":"h3"},{"title":"s3-object-response​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#s3-object-response","content":" New middleware to fetch and respond to S3 Object Get request event. ","version":"Next","tagName":"h3"},{"title":"secrets-manager​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#secrets-manager","content":" Refactored, see documentation ","version":"Next","tagName":"h3"},{"title":"sqs-json-body-parser​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#sqs-json-body-parser","content":" No change ","version":"Next","tagName":"h3"},{"title":"sqs-partial-batch-failure​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#sqs-partial-batch-failure","content":" Replaced option sqs with AwsClient and added in more options for control. ","version":"Next","tagName":"h3"},{"title":"ssm​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#ssm","content":" Refactored, see documentation ","version":"Next","tagName":"h3"},{"title":"sts​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#sts","content":" New middleware to fetch assume role credentials. ","version":"Next","tagName":"h3"},{"title":"validator​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#validator","content":" Upgraded ajv and it's plugins to support JSON Schema Draft 2020-12 specification. Defaults were change because of this. Plugin ajv-keywords removed from being included by default because it's quite a large package and usually only one keyword is used.Plugin ajv-errors removed from included by default because it conflicts with ajv-i18n when dealing with custom messages for multiple languages ","version":"Next","tagName":"h3"},{"title":"warmup​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#warmup","content":" Deprecated. This was a work round for a missing feature in AWS Lambda. AWS added in the ability to use provisioned concurrencyon 2019-12-03, removing the need for this work around. However, you can use the following if needed: middy(lambdaHandler).before((request) => { if (request.event.source === 'serverless-plugin-warmup') { console.log('Exiting early via warmup Middleware') return 'warmup' } }) ","version":"Next","tagName":"h3"},{"title":"More Examples","type":0,"sectionRef":"#","url":"/docs/writing-middlewares/more-examples","content":"More Examples Check the code for existing middlewares to see more examples on how to write a middleware.","keywords":"","version":"Next"},{"title":"Inline Middlewares","type":0,"sectionRef":"#","url":"/docs/writing-middlewares/inline-middlewares","content":"Inline Middlewares Sometimes you want to create handlers that serve a very small need and that are not necessarily re-usable. In such cases, you probably will need to hook only into one of the different phases (before, after or onError). In these cases you can use inline middlewares which are shortcut functions to hook logic into Middy's control flow. Let's see how inline middlewares work with a simple example: import middy from '@middy/core' const lambdaHandler = (event, context) => { // do stuff } export const handler = middy() .before(async (request) => { // do something in the before phase }) .after(async (request) => { // do something in the after phase }) .onError(async (request) => { // do something in the on error phase }) .handler(lambdaHandler) As you can see above, a middy instance also exposes the before, after and onErrormethods to allow you to quickly hook in simple inline middlewares.","keywords":"","version":"Next"},{"title":"Custom Middlewares","type":0,"sectionRef":"#","url":"/docs/writing-middlewares/intro","content":"Custom Middlewares A middleware is an object that should contain at least 1 of 3 possible keys: before: a function that is executed in the before phaseafter: a function that is executed in the after phaseonError: a function that is executed in case of errors before, after and onError functions need to have the following signature: const defaults = { // ... } const nameMiddleware = (opts = {}) => { const options = { ...defaults, ...opts } const nameMiddlewareBefore = async (request) => { // ... } const nameMiddlewareAfter = async (request) => { // ... } const nameMiddlewareOnError = async (request) => { // ... } return { before: nameMiddlewareBefore, after: nameMiddlewareAfter, onError: nameMiddlewareOnError } } export default nameMiddleware Where: request: is a reference to the current context and allows access to (and modification of) the current event (request), the response (in the after phase), and error(in case of an error).","keywords":"","version":"Next"},{"title":"Handle Timeouts","type":0,"sectionRef":"#","url":"/docs/writing-middlewares/timeouts","content":"Handle Timeouts When a lambda times out it throws an error that cannot be caught by middy. To work around this middy maintains an AbortController that can be signalled early to allow time to clean up and log the error properly. You can set timeoutEarlyInMillis to 0 to disable this functionality. If you want to override during testing, mock the lambda context to set getRemainingTimeInMillis to a function that returns a very large value (e.g. () => 99999). import middy from '@middy/core' const lambdaHandler = (event, context, { signal }) => { signal.onabort = () => { // cancel events } // ... } export const handler = middy({ timeoutEarlyInMillis: 50, timeoutEarlyResponse: () => { return { statusCode: 408 } } }).handler(lambdaHandler) ","keywords":"","version":"Next"},{"title":"With TypeScript","type":0,"sectionRef":"#","url":"/docs/writing-middlewares/with-typescript","content":"With TypeScript here's an example of how you can write a custom middleware for a Lambda receiving events from API Gateway: import middy from '@middy/core' import { APIGatewayProxyEvent, APIGatewayProxyResult } from 'aws-lambda' const middleware = (): middy.MiddlewareObj<APIGatewayProxyEvent, APIGatewayProxyResult> => { const before: middy.MiddlewareFn<APIGatewayProxyEvent, APIGatewayProxyResult> = async ( request ): Promise<APIGatewayProxyResult> => { // Your middleware logic } const after: middy.MiddlewareFn<APIGatewayProxyEvent, APIGatewayProxyResult> = async ( request ): Promise<void> => { // Your middleware logic } return { before, after } } export default middleware Note: The Middy core team does not use TypeScript often and we can't certainly claim that we are TypeScript experts. We tried our best to come up with type definitions that should give TypeScript users a good experience. There is certainly room for improvement, so we would be more than happy to receive contributions 😊 See devDependencies for each middleware for list of dependencies that may be required with transpiling TypeScript.","keywords":"","version":"Next"},{"title":"Internal Storage","type":0,"sectionRef":"#","url":"/docs/writing-middlewares/internal-storage","content":"Internal Storage The handler also contains an internal object that can be used to store values securely between middlewares that expires when the event ends. To compliment this there is also a cache where middleware can store request promises. During before these promises can be stored into internal then resolved only when needed. This pattern is useful to take advantage of the async nature of node especially when you have multiple middleware that require reaching out the external APIs. Here is a middleware boilerplate using this pattern: import { canPrefetch, getInternal, processCache } from '@middy/util' const defaults = { fetchData: {}, // { internalKey: params } disablePrefetch: false, cacheKey: 'custom', cacheExpiry: -1, setToContext: false } const customMiddleware = (opts = {}) => { const options = { ...defaults, ...opts } const fetch = () => { const values = {} // Start your custom fetch for (const internalKey of Object.keys(options.fetchData)) { values[internalKey] = fetch('...', options.fetchData[internalKey]).then( (res) => res.text() ) } // End your custom fetch return values } if (canPrefetch(options)) { processCache(options, fetch) } const customMiddlewareBefore = async (request) => { const { value } = processCache(options, fetch, request) Object.assign(request.internal, value) if (options.setToContext) { const data = await getInternal(Object.keys(options.fetchData), request) Object.assign(request.context, data) } } return { before: customMiddlewareBefore } } export default customMiddleware ","keywords":"","version":"Next"}],"options":{"id":"default"}} \ No newline at end of file diff --git a/search-doc.json b/search-doc.json index 5e3ca38ee..5ef9ddaeb 100644 --- a/search-doc.json +++ b/search-doc.json @@ -1 +1 @@ -[{"title":"Connection reuse","type":0,"sectionRef":"#","url":"/docs/best-practices/connection-reuse","content":"Connection reuse Be sure to set the following environment variable when connecting to AWS services: AWS_NODEJS_CONNECTION_REUSE_ENABLED=1 This allows you to reuse the first connection established across lambda invocations. See Reusing Connections with Keep-Alive in Node.js","keywords":"","version":"Next"},{"title":"Intro","type":0,"sectionRef":"#","url":"/docs/best-practices/intro","content":"Intro In this section you will find some common tips and tricks to ensure you don't hit any performance or security issues. Did we miss something? Let us know.","keywords":"","version":"Next"},{"title":"Internal Context","type":0,"sectionRef":"#","url":"/docs/best-practices/internal-context","content":"Internal Context Middy is built to be async even at it's core. Middlewares can set promises to internal. This approach allows them to be resolved together just when you need them. import middy from '@middy/core' import {getInternal} from '@middy/util' const config = { internal: new Proxy({}, { get: (target, prop, receiver) => { // ... return Reflect.get(...arguments) }, set: (obj, prop, value) => { // ... ie if `prop` changes, trigger something obj[prop] = value return true } }) } export const handler = middy() // Incase you want to add values on to internal directly .before((async (request) => { request.internal = { env: process.env.NODE_ENV } })) .use(sts(...)) .use(ssm(...)) .use(rdsSigner(...)) .use(secretsManager(...)) .before(async (request) => { // internal == { key: 'value' } // Map with same name Object.assign(request.context, await getInternal(['key'], request)) // -> context == { key: 'value'} // Map to new name Object.assign(request.context, await getInternal({'newKey':'key'}, request)) // -> context == { newKey: 'value'} // get all the values, only if you really need to, // but you should only request what you need for the handler Object.assign(request.context, await getInternal(true, request)) // -> context == { key: 'value'} }) .handler(async (event, context, { signal }) => { }) ","keywords":"","version":"Next"},{"title":"Introduction","type":0,"sectionRef":"#","url":"/docs/","content":"","keywords":"","version":"Next"},{"title":"What is middy​","type":1,"pageTitle":"Introduction","url":"/docs/#what-is-middy","content":"Middy is a very simple middleware engine that allows you to simplify your AWS Lambda code when using Node.js. If you have used web frameworks like Express, then you will be familiar with the concepts adopted in Middy and you will be able to get started very quickly. A middleware engine allows you to focus on the strict business logic of your Lambda and then attach additional common elements like authentication, authorization, validation, serialization, etc. in a modular and reusable way by decorating the main business logic. ","version":"Next","tagName":"h2"},{"title":"A quick example​","type":1,"pageTitle":"Introduction","url":"/docs/#a-quick-example","content":"Code is better than 10,000 words, so let's jump into an example. Let's assume you are building a JSON API to process a payment: handler.js // import core import middy from '@middy/core' // esm Node v14+ //const middy = require('@middy/core') // commonjs Node v12+ // import some middlewares import jsonBodyParser from '@middy/http-json-body-parser' import httpErrorHandler from '@middy/http-error-handler' import validator from '@middy/validator' import { transpileSchema } from '@middy/validator/transpile' // This is your common handler, in no way different than what you are used to doing every day in AWS Lambda const lambdaHandler = async (event, context) => { // we don't need to deserialize the body ourself as a middleware will be used to do that const { creditCardNumber, expiryMonth, expiryYear, cvc, nameOnCard, amount } = event.body // do stuff with this data // ... const response = { result: 'success', message: 'payment processed correctly' } return { statusCode: 200, body: JSON.stringify(response) } } // Notice that in the handler you only added base business logic (no deserialization, // validation or error handler), we will add the rest with middlewares const schema = { type: 'object', properties: { body: { type: 'object', properties: { creditCardNumber: { type: 'string', minLength: 12, maxLength: 19, pattern: '\\\\d+' }, expiryMonth: { type: 'integer', minimum: 1, maximum: 12 }, expiryYear: { type: 'integer', minimum: 2017, maximum: 2027 }, cvc: { type: 'string', minLength: 3, maxLength: 4, pattern: '\\\\d+' }, nameOnCard: { type: 'string' }, amount: { type: 'number' } }, required: ['creditCardNumber'] // Insert here all required event properties } } } // Let's "middyfy" our handler, then we will be able to attach middlewares to it const handler = middy() .use(jsonBodyParser()) // parses the request body when it's a JSON and converts it to an object .use(validator({ eventSchema: transpileSchema(schema) })) // validates the input .use(httpErrorHandler()) // handles common http errors and returns proper responses .handler(lambdaHandler) ","version":"Next","tagName":"h2"},{"title":"Why?​","type":1,"pageTitle":"Introduction","url":"/docs/#why","content":"One of the main strengths of serverless and AWS Lambda is that, from a developer perspective, your focus is mostly shifted toward implementing business logic. Anyway, when you are writing a handler, you still have to deal with some common technical concerns outside business logic, like input parsing and validation, output serialization, error handling, etc. Very often, all this necessary code ends up polluting the pure business logic code in your handlers, making the code harder to read and to maintain. In other contexts, like generic web frameworks (fastify, hapi, express, etc.), this problem has been solved using the middleware pattern. This pattern allows developers to isolate these common technical concerns into"steps" that decorate the main business logic code. Middleware functions are generally written as independent modules and then plugged into the application in a configuration step, thus not polluting the main business logic code that remains clean, readable, and easy to maintain. Since we couldn't find a similar approach for AWS Lambda handlers, we decided to create middy, our own middleware framework for serverless in AWS land. ","version":"Next","tagName":"h2"},{"title":"Small node_modules","type":0,"sectionRef":"#","url":"/docs/best-practices/small-node-modules","content":"Small node_modules Using a bundler is the optimal solution, but can be complex depending on your setup. In this case you should remove excess files from your node_modules directory to ensure it doesn't have anything excess shipped to AWS. We put together a .yarnclean file you can check out and use as part of your CI/CD process: .yarnclean # -- Middy.js -- # Dependencies **/ajv/lib **/ajv/.runkit_examples.js **/ajv-errors/src **/ajv-formats/src **/ajv-formats-draft2019/.github **/ajv-formats-draft2019/.prettierrc.js **/ajv-formats-draft2019/index.test.js **/ajv-i18n/localize/.eslintrc.yml **/json-mask/bin **/json-mask/build **/qs/.github **/qs/dist **/qs/test **/qs/.editorconfig **/qs/.eslintrc **/qs/.nycrc **/qs/CHANGELOG.md # DevDependencies **/@types **/@serverless/event-mocks ## Sub[/Sub] Dependencies **/bowser/src **/bowser/bundled.js **/dicer/bench **/dicer/test **/inherits/inherits_browser.js **/json-schema-traverse/.github **/json-schema-traverse/spec **/fast-deep-equal/es6 **/fast-deep-equal/react.js **/querystring/test **/react-native-get-random-values/android **/react-native-get-random-values/ios **/react-native-get-random-values/index.web.js **/react-native-get-random-values/react-native-get-random-values.podspec **/setprototypeof/test **/tslib **/uri-js/dist/esnext **/url/.zuul.yml **/url/test.js **/uuid/bin # Builds *.ts tsconfig.json *.js.map package-lock.json yarn.lock .travis.yml # Common .bin .cache .editorconfig .eslintignore .eslintrc .eslintrc.yml .gitattributes .npmignore AUTHORS LICENSE *.md *.txt ","keywords":"","version":"Next"},{"title":"Bundling Lambda packages","type":0,"sectionRef":"#","url":"/docs/best-practices/bundling","content":"","keywords":"","version":"Next"},{"title":"Compilers​","type":1,"pageTitle":"Bundling Lambda packages","url":"/docs/best-practices/bundling#compilers","content":"","version":"Next","tagName":"h2"},{"title":"typescript​","type":1,"pageTitle":"Bundling Lambda packages","url":"/docs/best-practices/bundling#typescript","content":"npm i -D typescript node_modules/.bin/tsc tsconfig.json​ { "compilerOptions": { "baseUrl": "./", "esModuleInterop": true, "preserveConstEnums": true, "strictNullChecks": true, "allowJs": false, "target": "es2021", "typeRoots": ["node_modules/@types"], "resolveJsonModule": true, "moduleResolution": "node" } } ","version":"Next","tagName":"h3"},{"title":"Bundlers​","type":1,"pageTitle":"Bundling Lambda packages","url":"/docs/best-practices/bundling#bundlers","content":"","version":"Next","tagName":"h2"},{"title":"esbuild​","type":1,"pageTitle":"Bundling Lambda packages","url":"/docs/best-practices/bundling#esbuild","content":"npm i -D esbuild # --banner:js hack from https://github.com/evanw/esbuild/pull/2067 node_modules/.bin/esbuild index.js \\ --platform=node --format=esm --target=node18 --bundle --minify \\ --banner:js="import { createRequire } from 'module';const require = createRequire(import.meta.url);" \\ --legal-comments=external --sourcemap=external \\ --allow-overwrite --outfile=index.mjs ","version":"Next","tagName":"h3"},{"title":"rollup​","type":1,"pageTitle":"Bundling Lambda packages","url":"/docs/best-practices/bundling#rollup","content":"npm i -D rollup @rollup/plugin-node-resolve @rollup/plugin-commonjs node_modules/.bin/rollup --config rollup.config.mjs​ import { nodeResolve } from '@rollup/plugin-node-resolve' import commonjs from '@rollup/plugin-commonjs' const plugins = [nodeResolve({ preferBuiltins: true }), commonjs()] export default (input) => ({ input: 'index.js', output: { file: 'index.bundle.rollup.mjs', format: 'es' // cjs, es }, plugins, external: [ // AWS SDK '@aws-sdk/client-apigatewaymanagementapi', // @middy/ws-response '@aws-sdk/client-rds', // @middy/rds-signer '@aws-sdk/client-s3', // @middy/s3-object-response '@aws-sdk/client-secretsmanager', // @middy/sercrets-manager '@aws-sdk/client-servicediscovery', // @middy/service-discovery '@aws-sdk/client-ssm', // @middy/ssm '@aws-sdk/client-sts' // @middy/sts ] }) ","version":"Next","tagName":"h3"},{"title":"swc/pack​","type":1,"pageTitle":"Bundling Lambda packages","url":"/docs/best-practices/bundling#swcpack","content":"npm i -D @swc/cli @swc/core node_modules/.bin/spack caution Incomplete ","version":"Next","tagName":"h3"},{"title":"webpack​","type":1,"pageTitle":"Bundling Lambda packages","url":"/docs/best-practices/bundling#webpack","content":"npm i -D webpack-cli webpack node_modules/.bin/webpack webpack.config.mjs​ import path from 'node:path' import { fileURLToPath } from 'node:url' const __filename = fileURLToPath(import.meta.url) const __dirname = path.dirname(__filename) export default { mode: 'development', entry: './index.js', output: { filename: 'index.bundle.webpack.mjs', path: __dirname }, experiments: { outputModule: true }, externals: [ // NodeJS modules 'events', // @middy/core 'https', // @middy/s3-object-response 'stream', // @middy/http-content-encoding @middy/s3-object-response 'util', // @middy/http-content-encoding 'zlib', // @middy/http-content-encoding // AWS SDK '@aws-sdk/client-apigatewaymanagementapi', // @middy/ws-response '@aws-sdk/client-rds', // @middy/rds-signer '@aws-sdk/client-s3', // @middy/s3-object-response '@aws-sdk/client-secretsmanager', // @middy/sercrets-manager '@aws-sdk/client-servicediscovery', // @middy/service-discovery '@aws-sdk/client-ssm', // @middy/ssm '@aws-sdk/client-sts' // @middy/sts ] } ","version":"Next","tagName":"h3"},{"title":"Transpilers​","type":1,"pageTitle":"Bundling Lambda packages","url":"/docs/best-practices/bundling#transpilers","content":"","version":"Next","tagName":"h2"},{"title":"babel​","type":1,"pageTitle":"Bundling Lambda packages","url":"/docs/best-practices/bundling#babel","content":"npm i -D @babel/cli @babel/core @babel/preset-env node_modules/.bin/babel index.js --out-file index.transpile.babel.cjs babel.config.json​ { "presets": [ [ "@babel/preset-env", { "targets": { "node": "16" } } ] ] } ","version":"Next","tagName":"h3"},{"title":"esbuild​","type":1,"pageTitle":"Bundling Lambda packages","url":"/docs/best-practices/bundling#esbuild-1","content":"npm i -D esbuild node_modules/.bin/esbuild --platform=node --target=node16 --format=cjs index.js --outfile=index.cjs ","version":"Next","tagName":"h3"},{"title":"swc​","type":1,"pageTitle":"Bundling Lambda packages","url":"/docs/best-practices/bundling#swc","content":"npm i -D @swc/cli @swc/core node_modules/.bin/swc index.js --out-file index.transpile.swc.cjs .swcrc​ { "jsc": { "parser": { "syntax": "ecmascript" }, "target": "es2021" }, "module": { "type": "commonjs" } } ","version":"Next","tagName":"h3"},{"title":"Profiling","type":0,"sectionRef":"#","url":"/docs/best-practices/profiling","content":"","keywords":"","version":"Next"},{"title":"Time​","type":1,"pageTitle":"Profiling","url":"/docs/best-practices/profiling#time","content":" const defaults = { logger: console.log, enabled: true } const timePlugin = (opts = {}) => { const { logger, enabled } = { ...defaults, ...opts } const store = {} const start = (id) => { store[id] = process.hrtime.bigint() } const stop = (id) => { if (!enabled) return logger(id, Number.parseInt((process.hrtime.bigint() - store[id]).toString()) / 1000000, 'ms') } // Only run during cold start const beforePrefetch = () => start('total') const requestStart = () => { if (!store.init) { store.init = store.total stop('init') } else { start('total') } } const beforeMiddleware = start const afterMiddleware = stop const beforeHandler = () => start('handler') const afterHandler = () => stop('handler') const requestEnd = () => stop('total') return { beforePrefetch, requestStart, beforeMiddleware, afterMiddleware, beforeHandler, afterHandler, requestEnd } } export const handler = middy(timePlugin()) .use(eventLogger()) .use(errorLogger()) .use(httpEventNormalizer()) .use(httpHeaderNormalizer()) .use(httpUrlencodePathParametersParser()) .use(httpUrlencodeBodyParser()) .use(httpJsonBodyParser()) .use(httpCors()) .use(httpSecurityHeaders()) .use(validator({eventSchema})) .handler(()=>{}) await handler() This will log out something this: inputOutputLoggerMiddlewareBefore 0.156033 ms httpEventNormalizerMiddlewareBefore 0.073921 ms httpHeaderNormalizerMiddlewareBefore 0.095098 ms httpUrlencodePathParserMiddlewareBefore 0.036255 ms httpUrlencodeBodyParserMiddlewareBefore 0.038809 ms httpJsonBodyParserMiddlewareBefore 0.048383 ms httpContentNegotiationMiddlewareBefore 0.042311 ms validatorMiddlewareBefore 0.083366 ms handler 0.094875 ms validatorMiddlewareAfter 0.083601 ms httpSecurityHeadersMiddlewareAfter 0.19702 ms httpCorsMiddlewareAfter 0.080532 ms inputOutputLoggerMiddlewareAfter 0.066886 ms lambda 66.141835 ms From this everything looks good. Sub 1ms for every middleware and the handler. But wait, that total doesn't look right. You're correct, total includes the initial setup time (or cold start time) for all middlewares. In this case validator is the culprit. The Ajv constructor and compiler do a lot of magic when they first run to get ready for later schema validations. This is why in the validator middleware we now support passing in complied schema and expose the default compiler in case you want to use it in a build step. We hope this feature will help to you in identify slow middlewares and improve your development experience. There is also a beforeRequest hook, but was left out of the example for dramatic effect. Additionally, you'll notice that each middleware shows a descriptive name. This is printing out the function name passed into middy core. If you've looked at the code for some the supported middlewares, you'll see these long descriptive variable names being set, then returned. This is why. ","version":"Next","tagName":"h2"},{"title":"Memory​","type":1,"pageTitle":"Profiling","url":"/docs/best-practices/profiling#memory","content":"import memwatch from '@airbnb/node-memwatch' const defaults = { logger: console.log } const memoryPlugin = (opts = {}) => { const { logger } = { ...defaults, ...opts } const store = {} const start = (id) => { store[id] = new memwatch.HeapDiff() } const stop = (id) => { logger(id, store[id].end()) } const beforePrefetch = () => start('total') const requestStart = () => { store.init = store.total stop('init') } const beforeMiddleware = start const afterMiddleware = stop const beforeHandler = () => start('handler') const afterHandler = () => stop('handler') const requestEnd = () => stop('total') return { beforePrefetch, requestStart, beforeMiddleware, afterMiddleware, beforeHandler, afterHandler, requestEnd } } export const handler = middy(memoryPlugin()) .use(eventLogger()) .use(errorLogger()) .use(httpEventNormalizer()) .use(httpHeaderNormalizer()) .use(httpUrlencodePathParametersParser()) .use(httpUrlencodeBodyParser()) .use(httpJsonBodyParser()) .use(httpCors()) .use(httpSecurityHeaders()) .use(validator({eventSchema})) .handler(()=>{}) await handler() ","version":"Next","tagName":"h2"},{"title":"API Gateway Authorizer","type":0,"sectionRef":"#","url":"/docs/events/api-gateway-authorizer","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"API Gateway Authorizer","url":"/docs/events/api-gateway-authorizer#aws-documentation","content":"Working with AWS Lambda authorizers for HTTP APIsInput to an Amazon API Gateway Lambda authorizer ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"API Gateway Authorizer","url":"/docs/events/api-gateway-authorizer#example","content":"import middy from '@middy/core' export const handler = middy().handler((event, context, { signal }) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"Alexa","type":0,"sectionRef":"#","url":"/docs/events/alexa","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"Alexa","url":"/docs/events/alexa#aws-documentation","content":"Using AWS Lambda with Alexa ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"Alexa","url":"/docs/events/alexa#example","content":"import middy from '@middy/core' export const handler = middy() .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"API Gateway (WebSocket)","type":0,"sectionRef":"#","url":"/docs/events/api-gateway-ws","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"API Gateway (WebSocket)","url":"/docs/events/api-gateway-ws#aws-documentation","content":"Using AWS Lambda with Amazon API GatewayWorking with WebSocket APIs ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"API Gateway (WebSocket)","url":"/docs/events/api-gateway-ws#example","content":"import middy from '@middy/core' import wsJsonBodyParserMiddleware from '@middy/ws-json-body-parser' import wsResponseMiddleware from '@middy/ws-response' import wsRouterHandler from '@middy/ws-router' import { handler as connectHandler } from './handlers/connect.js' import { handler as disconnectHandler } from './handlers/disconnect.js' import { handler as defaultHandler } from './handlers/default.js' const routes = [ { routeKey: '$connect', handler: connectHandler }, { routeKey: '$disconnect', handler: disconnectHandler }, { routeKey: 'default', handler: defaultHandler } ] export const handler = middy() .use(wsJsonBodyParserMiddleware()) .use(wsResponseMiddleware()) .handler(wsRouterHandler(routes)) ","version":"Next","tagName":"h2"},{"title":"API Gateway (HTTP)","type":0,"sectionRef":"#","url":"/docs/events/api-gateway-http","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"API Gateway (HTTP)","url":"/docs/events/api-gateway-http#aws-documentation","content":"Using AWS Lambda with Amazon API GatewayWorking with HTTP APIs ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"API Gateway (HTTP)","url":"/docs/events/api-gateway-http#example","content":"import middy from '@middy/core' import errorLoggerMiddleware from '@middy/error-logger' import inputOutputLoggerMiddleware from '@middy/input-output-logger' import httpContentNegotiationMiddleware from '@middy/http-content-negotiation' import httpContentEncodingMiddleware from '@middy/http-content-encoding' import httpCorsMiddleware from '@middy/http-cors' import httpErrorHandlerMiddleware from '@middy/http-error-handler' import httpEventNormalizerMiddleware from '@middy/http-event-normalizer' import httpHeaderNormalizerMiddleware from '@middy/http-header-normalizer' import httpJsonBodyParserMiddleware from '@middy/http-json-body-parser' import httpMultipartBodyParserMiddleware from '@middy/http-multipart-body-parser' import httpPartialResponseMiddleware from '@middy/http-partial-response' import httpResponseSerializerMiddleware from '@middy/http-response-serializer' import httpSecurityHeadersMiddleware from '@middy/http-security-headers' import httpUrlencodeBodyParserMiddleware from '@middy/http-urlencode-body-parser' import httpUrlencodePathParametersParserMiddleware from '@middy/http-urlencode-path-parser' import validatorMiddleware from 'validator' import warmupMiddleware from 'warmup' import eventSchema from './eventSchema.json' assert { type: 'json' } import responseSchema from './responseSchema.json' assert { type: 'json' } export const handler = middy({ timeoutEarlyResponse: () => { return { statusCode: 408 } } }) .use(warmupMiddleware()) .use(httpEventNormalizerMiddleware()) .use(httpHeaderNormalizerMiddleware()) .use( httpContentNegotiationMiddleware({ availableLanguages: ['en-CA', 'fr-CA'], availableMediaTypes: ['application/json'] }) ) .use(httpUrlencodePathParametersParserMiddleware()) // Start oneOf .use(httpUrlencodeBodyParserMiddleware()) .use(httpJsonBodyParserMiddleware()) .use(httpMultipartBodyParserMiddleware()) // End oneOf .use(httpSecurityHeadersMiddleware()) .use(httpCorsMiddleware()) .use(httpContentEncodingMiddleware()) .use( httpResponseSerializerMiddleware({ serializers: [ { regex: /^application\\/json$/, serializer: ({ body }) => JSON.stringify(body) } ], default: 'application/json' }) ) .use(httpPartialResponseMiddleware()) .use(validatorMiddleware({ eventSchema, responseSchema })) .use(httpErrorHandlerMiddleware()) .handler((event, context, { signal }) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"Application Load Balancer","type":0,"sectionRef":"#","url":"/docs/events/application-load-balancer","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"Application Load Balancer","url":"/docs/events/application-load-balancer#aws-documentation","content":"Using AWS Lambda with an Application Load Balancer ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"Application Load Balancer","url":"/docs/events/application-load-balancer#example","content":"import middy from '@middy/core' import httpRouterHandler from '@middy/http-router' import errorLoggerMiddleware from '@middy/error-logger' import inputOutputLoggerMiddleware from '@middy/input-output-logger' import httpContentNegotiationMiddleware from '@middy/http-content-negotiation' import httpContentEncodingMiddleware from '@middy/http-content-encoding' import httpCorsMiddleware from '@middy/http-cors' import httpErrorHandlerMiddleware from '@middy/http-error-handler' import httpEventNormalizerMiddleware from '@middy/http-event-normalizer' import httpHeaderNormalizerMiddleware from '@middy/http-header-normalizer' import httpJsonBodyParserMiddleware from '@middy/http-json-body-parser' import httpMultipartBodyParserMiddleware from '@middy/http-multipart-body-parser' import httpPartialResponseMiddleware from '@middy/http-partial-response' import httpResponseSerializerMiddleware from '@middy/http-response-serializer' import httpSecurityHeadersMiddleware from '@middy/http-security-headers' import httpUrlencodeBodyParserMiddleware from '@middy/http-urlencode-body-parser' import httpUrlencodePathParametersParserMiddleware from '@middy/http-urlencode-path-parser' import warmupMiddleware from 'warmup' import { handler as getHandler } from './handlers/get-user.js' import { handler as postHandler } from './handlers/get-user.js' const routes = [ { method: 'GET', path: '/user/{id}', handler: getHandler }, { method: 'POST', path: '/user', handler: postHandler } ] export const handler = middy({ timeoutEarlyResponse: () => { return { statusCode: 408 } } }) .use(warmupMiddleware()) .use(httpEventNormalizerMiddleware()) .use(httpHeaderNormalizerMiddleware()) .use( httpContentNegotiationMiddleware({ availableLanguages: ['en-CA', 'fr-CA'], availableMediaTypes: ['application/json'] }) ) .use(httpUrlencodePathParametersParserMiddleware()) // Start oneOf .use(httpUrlencodeBodyParserMiddleware()) .use(httpJsonBodyParserMiddleware()) .use(httpMultipartBodyParserMiddleware()) // End oneOf .use(httpSecurityHeadersMiddleware()) .use(httpCorsMiddleware()) .use(httpContentEncodingMiddleware()) .use( httpResponseSerializerMiddleware({ serializers: [ { regex: /^application\\/json$/, serializer: ({ body }) => JSON.stringify(body) } ], default: 'application/json' }) ) .use(httpPartialResponseMiddleware()) .use(httpErrorHandlerMiddleware()) .handler(httpRouterHandler(routes)) ","version":"Next","tagName":"h2"},{"title":"AppSync","type":0,"sectionRef":"#","url":"/docs/events/appsync","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"AppSync","url":"/docs/events/appsync#aws-documentation","content":"Using AWS Lambda with AppSync ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"AppSync","url":"/docs/events/appsync#example","content":"import middy from '@middy/core' export const handler = middy().handler((event, context, { signal }) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"API Gateway (REST)","type":0,"sectionRef":"#","url":"/docs/events/api-gateway-rest","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"API Gateway (REST)","url":"/docs/events/api-gateway-rest#aws-documentation","content":"Using AWS Lambda with Amazon API GatewayWorking with REST APIs ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"API Gateway (REST)","url":"/docs/events/api-gateway-rest#example","content":"import middy from '@middy/core' import errorLoggerMiddleware from '@middy/error-logger' import inputOutputLoggerMiddleware from '@middy/input-output-logger' import httpContentNegotiationMiddleware from '@middy/http-content-negotiation' import httpContentEncodingMiddleware from '@middy/http-content-encoding' import httpCorsMiddleware from '@middy/http-cors' import httpErrorHandlerMiddleware from '@middy/http-error-handler' import httpEventNormalizerMiddleware from '@middy/http-event-normalizer' import httpHeaderNormalizerMiddleware from '@middy/http-header-normalizer' import httpJsonBodyParserMiddleware from '@middy/http-json-body-parser' import httpMultipartBodyParserMiddleware from '@middy/http-multipart-body-parser' import httpPartialResponseMiddleware from '@middy/http-partial-response' import httpResponseSerializerMiddleware from '@middy/http-response-serializer' import httpSecurityHeadersMiddleware from '@middy/http-security-headers' import httpUrlencodeBodyParserMiddleware from '@middy/http-urlencode-body-parser' import httpUrlencodePathParametersParserMiddleware from '@middy/http-urlencode-path-parser' import validatorMiddleware from 'validator' import warmupMiddleware from 'warmup' import eventSchema from './eventSchema.json' assert { type: 'json' } import responseSchema from './responseSchema.json' assert { type: 'json' } export const handler = middy({ timeoutEarlyResponse: () => { return { statusCode: 408 } } }) .use(warmupMiddleware()) .use(httpEventNormalizerMiddleware()) .use(httpHeaderNormalizerMiddleware()) .use( httpContentNegotiationMiddleware({ availableLanguages: ['en-CA', 'fr-CA'], availableMediaTypes: ['application/json'] }) ) .use(httpUrlencodePathParametersParserMiddleware()) // Start oneOf .use(httpUrlencodeBodyParserMiddleware()) .use(httpJsonBodyParserMiddleware()) .use(httpMultipartBodyParserMiddleware()) // End oneOf .use(httpSecurityHeadersMiddleware()) .use(httpCorsMiddleware()) .use(httpContentEncodingMiddleware()) .use( httpResponseSerializerMiddleware({ serializers: [ { regex: /^application\\/json$/, serializer: ({ body }) => JSON.stringify(body) } ], defaultContentType: 'application/json' }) ) .use(httpPartialResponseMiddleware()) .use(validatorMiddleware({ eventSchema, responseSchema })) .use(httpErrorHandlerMiddleware()) .handler((event, context, { signal }) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"CloudFront Lambda@Edge","type":0,"sectionRef":"#","url":"/docs/events/cloud-front","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"CloudFront Lambda@Edge","url":"/docs/events/cloud-front#aws-documentation","content":"Using AWS Lambda with CloudFront Lambda@Edge ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"CloudFront Lambda@Edge","url":"/docs/events/cloud-front#example","content":"import middy from '@middy/core' export const handler = middy() //.use(cfHeaderNormalizer()) // Let use know if this would have value .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"CloudFormation","type":0,"sectionRef":"#","url":"/docs/events/cloud-formation","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"CloudFormation","url":"/docs/events/cloud-formation#aws-documentation","content":"Using AWS Lambda with AWS CloudFormation ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"CloudFormation","url":"/docs/events/cloud-formation#example","content":"import middy from '@middy/core' export const handler = middy() .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"CloudTrail","type":0,"sectionRef":"#","url":"/docs/events/cloud-trail","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"CloudTrail","url":"/docs/events/cloud-trail#aws-documentation","content":"Using AWS Lambda with AWS CloudTrail ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"CloudTrail","url":"/docs/events/cloud-trail#example","content":"import middy from '@middy/core' export const handler = middy() .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"CodePipeline","type":0,"sectionRef":"#","url":"/docs/events/code-pipeline","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"CodePipeline","url":"/docs/events/code-pipeline#aws-documentation","content":"Using AWS Lambda with AWS CodePipeline ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"CodePipeline","url":"/docs/events/code-pipeline#example","content":"import middy from '@middy/core' import eventNormalizerMiddleware from '@middy/event-normalizer' export const handler = middy() .use(eventNormalizerMiddleware()) .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"Cognito","type":0,"sectionRef":"#","url":"/docs/events/cognito","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"Cognito","url":"/docs/events/cognito#aws-documentation","content":"Using AWS Lambda with Amazon Cognito ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"Cognito","url":"/docs/events/cognito#example","content":"import middy from '@middy/core' export const handler = middy() .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"Code Commit","type":0,"sectionRef":"#","url":"/docs/events/code-commit","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"Code Commit","url":"/docs/events/code-commit#aws-documentation","content":"Using AWS Lambda with AWS CodeCommit ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"Code Commit","url":"/docs/events/code-commit#example","content":"import middy from '@middy/core' export const handler = middy() .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"Cloud Watch Logs","type":0,"sectionRef":"#","url":"/docs/events/cloud-watch-logs","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"Cloud Watch Logs","url":"/docs/events/cloud-watch-logs#aws-documentation","content":"Using Lambda with CloudWatch Logs ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"Cloud Watch Logs","url":"/docs/events/cloud-watch-logs#example","content":"import middy from '@middy/core' import eventNormalizerMiddleware from '@middy/event-normalizer' export const handler = middy() .use(eventNormalizerMiddleware()) .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"DocumentDB","type":0,"sectionRef":"#","url":"/docs/events/documentdb","content":"","keywords":"","version":"Next"},{"title":"Connect","type":0,"sectionRef":"#","url":"/docs/events/connect","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"Connect","url":"/docs/events/connect#aws-documentation","content":"Using Lambda with Amazon Connect ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"Connect","url":"/docs/events/connect#example","content":"import middy from '@middy/core' export const handler = middy() .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"AWS Documentation​","type":1,"pageTitle":"DocumentDB","url":"/docs/events/documentdb#aws-documentation","content":"Using AWS Lambda with Amazon DocumentDB ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"DocumentDB","url":"/docs/events/documentdb#example","content":"import middy from '@middy/core' export const handler = middy().handler((event, context, { signal }) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"Config","type":0,"sectionRef":"#","url":"/docs/events/config","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"Config","url":"/docs/events/config#aws-documentation","content":"Using AWS Lambda with AWS Config ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"Config","url":"/docs/events/config#example","content":"import middy from '@middy/core' import eventNormalizerMiddleware from '@middy/event-normalizer' export const handler = middy() .use(eventNormalizerMiddleware()) .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"EventBridge","type":0,"sectionRef":"#","url":"/docs/events/event-bridge","content":"","keywords":"","version":"Next"},{"title":"EC2","type":0,"sectionRef":"#","url":"/docs/events/ec2","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"EC2","url":"/docs/events/ec2#aws-documentation","content":"Using AWS Lambda with Amazon EC2 ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"EC2","url":"/docs/events/ec2#example","content":"import middy from '@middy/core' export const handler = middy() .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"AWS Documentation​","type":1,"pageTitle":"EventBridge","url":"/docs/events/event-bridge#aws-documentation","content":"Using AWS Lambda with Amazon EventBridge (CloudWatch Events) ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"EventBridge","url":"/docs/events/event-bridge#example","content":"import middy from '@middy/core' export const handler = middy().handler((event, context, { signal }) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"DynamoDB","type":0,"sectionRef":"#","url":"/docs/events/dynamodb","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"DynamoDB","url":"/docs/events/dynamodb#aws-documentation","content":"Using AWS Lambda with Amazon DynamoDB ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"DynamoDB","url":"/docs/events/dynamodb#example","content":"import middy from '@middy/core' import eventNormalizerMiddleware from '@middy/event-normalizer' export const handler = middy() .use(eventNormalizerMiddleware()) .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"Internet of things (IoT)","type":0,"sectionRef":"#","url":"/docs/events/iot","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"Internet of things (IoT)","url":"/docs/events/iot#aws-documentation","content":"Using AWS Lambda with AWS IoT ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"Internet of things (IoT)","url":"/docs/events/iot#example","content":"import middy from '@middy/core' export const handler = middy() .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"IoT Events","type":0,"sectionRef":"#","url":"/docs/events/iot-events","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"IoT Events","url":"/docs/events/iot-events#aws-documentation","content":"Using AWS Lambda with AWS IoT Events ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"IoT Events","url":"/docs/events/iot-events#example","content":"import middy from '@middy/core' export const handler = middy() .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"Function URL","type":0,"sectionRef":"#","url":"/docs/events/function-url","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"Function URL","url":"/docs/events/function-url#aws-documentation","content":"Using AWS Lambda with Amazon API GatewayWorking with HTTP APIs ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"Function URL","url":"/docs/events/function-url#example","content":"import middy from '@middy/core' import errorLoggerMiddleware from '@middy/error-logger' import inputOutputLoggerMiddleware from '@middy/input-output-logger' import httpContentNegotiationMiddleware from '@middy/http-content-negotiation' import httpContentEncodingMiddleware from '@middy/http-content-encoding' import httpCorsMiddleware from '@middy/http-cors' import httpErrorHandlerMiddleware from '@middy/http-error-handler' import httpEventNormalizerMiddleware from '@middy/http-event-normalizer' import httpHeaderNormalizerMiddleware from '@middy/http-header-normalizer' import httpJsonBodyParserMiddleware from '@middy/http-json-body-parser' import httpMultipartBodyParserMiddleware from '@middy/http-multipart-body-parser' import httpPartialResponseMiddleware from '@middy/http-partial-response' import httpResponseSerializerMiddleware from '@middy/http-response-serializer' import httpSecurityHeadersMiddleware from '@middy/http-security-headers' import httpUrlencodeBodyParserMiddleware from '@middy/http-urlencode-body-parser' import httpUrlencodePathParametersParserMiddleware from '@middy/http-urlencode-path-parser' import validatorMiddleware from 'validator' import warmupMiddleware from 'warmup' import eventSchema from './eventSchema.json' assert { type: 'json' } import responseSchema from './responseSchema.json' assert { type: 'json' } export const handler = middy({ timeoutEarlyResponse: () => { return { statusCode: 408 } }, streamifyResponse: true }) .use(warmupMiddleware()) .use(httpEventNormalizerMiddleware()) .use(httpHeaderNormalizerMiddleware()) .use( httpContentNegotiationMiddleware({ availableLanguages: ['en-CA', 'fr-CA'], availableMediaTypes: ['application/json'] }) ) .use(httpUrlencodePathParametersParserMiddleware()) // Start oneOf .use(httpUrlencodeBodyParserMiddleware()) .use(httpJsonBodyParserMiddleware()) .use(httpMultipartBodyParserMiddleware()) // End oneOf .use(httpSecurityHeadersMiddleware()) .use(httpCorsMiddleware()) .use(httpContentEncodingMiddleware()) .use( httpResponseSerializerMiddleware({ serializers: [ { regex: /^application\\/json$/, serializer: ({ body }) => JSON.stringify(body) } ], default: 'application/json' }) ) .use(httpPartialResponseMiddleware()) .use(validatorMiddleware({ eventSchema, responseSchema })) .use(httpErrorHandlerMiddleware()) .handler((event, context, { signal }) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"Kafka, Managed Streaming (MSK)","type":0,"sectionRef":"#","url":"/docs/events/kafka-managed-streaming","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"Kafka, Managed Streaming (MSK)","url":"/docs/events/kafka-managed-streaming#aws-documentation","content":"Using Lambda with Amazon MSK ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"Kafka, Managed Streaming (MSK)","url":"/docs/events/kafka-managed-streaming#example","content":"import middy from '@middy/core' import eventNormalizerMiddleware from '@middy/event-normalizer' export const handler = middy() .use(eventNormalizerMiddleware()) .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"Kafka, Self-Managed","type":0,"sectionRef":"#","url":"/docs/events/kafka-self-managed","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"Kafka, Self-Managed","url":"/docs/events/kafka-self-managed#aws-documentation","content":"Using Lambda with self-managed Apache Kafka ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"Kafka, Self-Managed","url":"/docs/events/kafka-self-managed#example","content":"import middy from '@middy/core' import eventNormalizerMiddleware from '@middy/event-normalizer' export const handler = middy() .use(eventNormalizerMiddleware()) .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"Kinesis Firehose","type":0,"sectionRef":"#","url":"/docs/events/kinesis-firehose","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"Kinesis Firehose","url":"/docs/events/kinesis-firehose#aws-documentation","content":"Using AWS Lambda with Amazon Kinesis Data Firehose ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"Kinesis Firehose","url":"/docs/events/kinesis-firehose#example","content":"import middy from '@middy/core' import eventNormalizerMiddleware from '@middy/event-normalizer' export const handler = middy() .use(eventNormalizerMiddleware()) .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"All AWS Events","type":0,"sectionRef":"#","url":"/docs/events/intro","content":"","keywords":"","version":"Next"},{"title":"Middlewares that can benefit any Lambda​","type":1,"pageTitle":"All AWS Events","url":"/docs/events/intro#middlewares-that-can-benefit-any-lambda","content":"import middy from '@middy/core' import cloudWatchMetricsMiddleware from '@middy/cloudwatch-metrics' import errorLoggerMiddleware from '@middy/error-logger' import inputOutputLoggerMiddleware from '@middy/input-output-logger' import validatorMiddleware from 'validator' import warmupMiddleware from 'warmup' import eventSchema from './eventSchema.json' assert { type: 'json' } import responseSchema from './responseSchema.json' assert { type: 'json' } const handler = middy() .use(warmupMiddleware()) .use(cloudWatchMetricsMiddleware()) .use(inputOutputLoggerMiddleware()) .use(errorLoggerMiddleware()) .use(validatorMiddleware({ eventSchema, responseSchema })) .handler(async (event, context, { signal }) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"Need secrets? We have you covered there too​","type":1,"pageTitle":"All AWS Events","url":"/docs/events/intro#need-secrets-we-have-you-covered-there-too","content":"import middy from '@middy/core' import { getInternal } from '@middy/util' import rdsSignerMiddleware from '@middy/rds-signer' import secretsManagerMiddleware from '@middy/secrets-manager' import ssmMiddleware from '@middy/ssm' import stsMiddleware from '@middy/sts' export const handler = middy() .use( rdsSignerMiddleware({ fetchData: { rdsSigner: { region: process.env.AWS_REGION, hostname: process.env.RDS_HOSTNAME, username: 'iam_role', database: 'database', port: 5555 } } }) ) .use( secretsManagerMiddleware({ fetchData: { secretsManager: '/dev/service_name/key_name' } }) ) .use( ssmMiddleware({ fetchData: { ssm: '/dev/service_name/key_name' } }) ) .use( stsMiddleware({ fetchData: { sts: { RoleArn: '.../role' } } }) ) .before(async (request) => { request.context.secrets = await getInternal(true, request) }) .handler(async (event, context, { signal }) => { // context.secrets = { rdsSigner, secretsManager, ssm, sts } }) ","version":"Next","tagName":"h2"},{"title":"How about configs? We have you covered there as well​","type":1,"pageTitle":"All AWS Events","url":"/docs/events/intro#how-about-configs-we-have-you-covered-there-as-well","content":"import middy from '@middy/core' import { getInternal } from '@middy/util' import appConfigMiddleware from '@middy/appconfig' import s3Middleware from '@middy/s3' import dynamoDBMiddleware from '@middy/dynamodb' import ssmMiddleware from '@middy/ssm' export const handler = middy() .use( appConfigMiddleware({ fetchData: { appConfig: { Application: '...', ClientId: '...', Configuration: '...', Environment: '...' } } }) ) .use( s3Middleware({ fetchData: { s3: { Bucket: '...', Key: '...' } } }) ) .use( dynamoDBMiddleware({ fetchData: { dynamodb: { TableName: '...', Key: { '...' } } } }) ) .use( ssmMiddleware({ fetchData: { ssm: '/dev/service_name/key_name' } }) ) .before(async (request) => { request.context.configs = await getInternal(true, request) }) .handler(async (event, context, { signal }) => { // context.configs = { appConfig, dynamodb, s3, ssm } }) ","version":"Next","tagName":"h2"},{"title":"Lex","type":0,"sectionRef":"#","url":"/docs/events/lex","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"Lex","url":"/docs/events/lex#aws-documentation","content":"Using AWS Lambda with Amazon LexUsing an AWS Lambda function with Amazon Lex V2 ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"Lex","url":"/docs/events/lex#example","content":"import middy from '@middy/core' export const handler = middy() .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"MQ","type":0,"sectionRef":"#","url":"/docs/events/mq","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"MQ","url":"/docs/events/mq#aws-documentation","content":"Using Lambda with Amazon MQ ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"MQ","url":"/docs/events/mq#example","content":"import middy from '@middy/core' import eventNormalizerMiddleware from '@middy/event-normalizer' export const handler = middy() .use(eventNormalizerMiddleware()) .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"S3","type":0,"sectionRef":"#","url":"/docs/events/s3","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"S3","url":"/docs/events/s3#aws-documentation","content":"Using AWS Lambda with Amazon S3 ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"S3","url":"/docs/events/s3#example","content":"import middy from '@middy/core' import eventNormalizerMiddleware from '@middy/event-normalizer' export const handler = middy() .use(eventNormalizerMiddleware()) // S3 -> SNS -> SQS -> Lambda .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"RDS","type":0,"sectionRef":"#","url":"/docs/events/rds","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"RDS","url":"/docs/events/rds#aws-documentation","content":"Using AWS Lambda with Amazon RDS ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"RDS","url":"/docs/events/rds#example","content":"import middy from '@middy/core' import eventNormalizerMiddleware from '@middy/event-normalizer' export const handler = middy() .use(eventNormalizerMiddleware()) // RDS -> SNS -> Lambda .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"S3 Batch","type":0,"sectionRef":"#","url":"/docs/events/s3-batch","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"S3 Batch","url":"/docs/events/s3-batch#aws-documentation","content":"Using AWS Lambda with Amazon S3 batch operations ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"S3 Batch","url":"/docs/events/s3-batch#example","content":"import middy from '@middy/core' import eventNormalizerMiddleware from '@middy/event-normalizer' export const handler = middy() .use(eventNormalizerMiddleware()) .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"Kinesis Streams","type":0,"sectionRef":"#","url":"/docs/events/kinesis-streams","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"Kinesis Streams","url":"/docs/events/kinesis-streams#aws-documentation","content":"Using AWS Lambda with Amazon Kinesis ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"Kinesis Streams","url":"/docs/events/kinesis-streams#example","content":"import middy from '@middy/core' import eventNormalizerMiddleware from '@middy/event-normalizer' export const handler = middy() .use(eventNormalizerMiddleware()) .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"Secrets Manager","type":0,"sectionRef":"#","url":"/docs/events/secrets-manager","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"Secrets Manager","url":"/docs/events/secrets-manager#aws-documentation","content":"Using AWS Lambda with Secrets Manager ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"Secrets Manager","url":"/docs/events/secrets-manager#example","content":"import middy from '@middy/core' export const handler = middy() .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"S3 Object","type":0,"sectionRef":"#","url":"/docs/events/s3-object","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"S3 Object","url":"/docs/events/s3-object#aws-documentation","content":"Transforming S3 Objects with S3 Object LambdaTransforming objects with S3 Object Lambda ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"S3 Object","url":"/docs/events/s3-object#example","content":"import middy from '@middy/core' import s3ObjectResponseMiddleware from '@middy/s3-object-response' import {captureAWSv3Client, captureHTTPsGlobal} from 'aws-xray-sdk-core' export const handler = middy() .use(s3ObjectResponseMiddleware({ awsClientCapture: captureAWSv3Client, httpsCapture: captureHTTPsGlobal, bodyType: 'promise' })) .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"SES","type":0,"sectionRef":"#","url":"/docs/events/ses","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"SES","url":"/docs/events/ses#aws-documentation","content":"Using AWS Lambda with Amazon SES ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"SES","url":"/docs/events/ses#example","content":"import middy from '@middy/core' export const handler = middy() .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"SNS","type":0,"sectionRef":"#","url":"/docs/events/sns","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"SNS","url":"/docs/events/sns#aws-documentation","content":"Using AWS Lambda with Amazon SNS ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"SNS","url":"/docs/events/sns#example","content":"import middy from '@middy/core' import eventNormalizerMiddleware from '@middy/event-normalizer' export const handler = middy() .use(eventNormalizerMiddleware()) .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"FAQ","type":0,"sectionRef":"#","url":"/docs/faq","content":"","keywords":"","version":"Next"},{"title":"My lambda keep timing out without responding, what do I do?​","type":1,"pageTitle":"FAQ","url":"/docs/faq#my-lambda-keep-timing-out-without-responding-what-do-i-do","content":"Likely your event loop is not empty. This happens when you have a database connect still open for example. Checkout @middy/do-not-wait-for-empty-event-loop. ","version":"Next","tagName":"h3"},{"title":"SQS","type":0,"sectionRef":"#","url":"/docs/events/sqs","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"SQS","url":"/docs/events/sqs#aws-documentation","content":"Using AWS Lambda with Amazon SQS ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"SQS","url":"/docs/events/sqs#example","content":"import middy from '@middy/core' import eventNormalizerMiddleware from '@middy/event-normalizer' import sqsPartialBatchFailure from '@middy/sqs-partial-batch-failure' export const handler = middy() .use(eventNormalizerMiddleware()) .use(sqsPartialBatchFailure()) .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"WorkMail","type":0,"sectionRef":"#","url":"/docs/events/workmail","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"WorkMail","url":"/docs/events/workmail#aws-documentation","content":"Configuring AWS Lambda for Amazon WorkMail ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"WorkMail","url":"/docs/events/workmail#example","content":"import middy from '@middy/core' export const handler = middy() .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"Integrations","type":0,"sectionRef":"#","url":"/docs/integrations/intro","content":"Integrations caution This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","keywords":"","version":"Next"},{"title":"VPC Lattice","type":0,"sectionRef":"#","url":"/docs/events/vpc-lattice","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"VPC Lattice","url":"/docs/events/vpc-lattice#aws-documentation","content":"Using AWS Lambda with Amazon VPC Lattice ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"VPC Lattice","url":"/docs/events/vpc-lattice#example","content":"import middy from '@middy/core' import errorLoggerMiddleware from '@middy/error-logger' import inputOutputLoggerMiddleware from '@middy/input-output-logger' import httpContentNegotiationMiddleware from '@middy/http-content-negotiation' import httpContentEncodingMiddleware from '@middy/http-content-encoding' import httpCorsMiddleware from '@middy/http-cors' import httpErrorHandlerMiddleware from '@middy/http-error-handler' import httpEventNormalizerMiddleware from '@middy/http-event-normalizer' // required import httpHeaderNormalizerMiddleware from '@middy/http-header-normalizer' import httpJsonBodyParserMiddleware from '@middy/http-json-body-parser' import httpMultipartBodyParserMiddleware from '@middy/http-multipart-body-parser' import httpPartialResponseMiddleware from '@middy/http-partial-response' import httpResponseSerializerMiddleware from '@middy/http-response-serializer' import httpSecurityHeadersMiddleware from '@middy/http-security-headers' import httpUrlencodeBodyParserMiddleware from '@middy/http-urlencode-body-parser' import httpUrlencodePathParametersParserMiddleware from '@middy/http-urlencode-path-parser' import validatorMiddleware from 'validator' import warmupMiddleware from 'warmup' import eventSchema from './eventSchema.json' assert { type: 'json' } import responseSchema from './responseSchema.json' assert { type: 'json' } export const handler = middy({ timeoutEarlyResponse: () => { return { statusCode: 408 } } }) .use(warmupMiddleware()) .use(httpEventNormalizerMiddleware()) .use(httpHeaderNormalizerMiddleware()) .use( httpContentNegotiationMiddleware({ availableLanguages: ['en-CA', 'fr-CA'], availableMediaTypes: ['application/json'] }) ) .use(httpUrlencodePathParametersParserMiddleware()) // Start oneOf .use(httpUrlencodeBodyParserMiddleware()) .use(httpJsonBodyParserMiddleware()) .use(httpMultipartBodyParserMiddleware()) // End oneOf .use(httpSecurityHeadersMiddleware()) .use(httpCorsMiddleware()) .use(httpContentEncodingMiddleware()) .use( httpResponseSerializerMiddleware({ serializers: [ { regex: /^application\\/json$/, serializer: ({ body }) => JSON.stringify(body) } ], default: 'application/json' }) ) .use(httpPartialResponseMiddleware()) .use(validatorMiddleware({ eventSchema, responseSchema })) .use(httpErrorHandlerMiddleware()) .handler((event, context, { signal }) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"Pino","type":0,"sectionRef":"#","url":"/docs/integrations/pino","content":"Pino caution This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","keywords":"","version":"Next"},{"title":"Apollo Server","type":0,"sectionRef":"#","url":"/docs/integrations/apollo-server","content":"Apollo Server caution This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub. import middy from '@middy/core' import { ApolloServer, gql } from 'apollo-server-lambda' import { buildFederatedSchema } from '@apollo/federation' import { resolvers } from './graphql/resolvers.js' import { graphqlFileToStr } from './graphql/schema.js' const graphQL = new ApolloServer({ schema: buildFederatedSchema({ typeDefs: gql(graphqlFileToStr), resolvers }) }) // Do not use: `@middy/http-json-body-parser` it is already handled within apollo export const handler = middy(graphQL.createHandler()) ","keywords":"","version":"Next"},{"title":"Serverless Framework","type":0,"sectionRef":"#","url":"/docs/integrations/serverless-framework","content":"Serverless Framework caution This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub. TODO comment about serverless-warmup","keywords":"","version":"Next"},{"title":"Serverless Stack","type":0,"sectionRef":"#","url":"/docs/integrations/serverless-stack","content":"Serverless Stack caution This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","keywords":"","version":"Next"},{"title":"AWS Relational Database Service (RDS)","type":0,"sectionRef":"#","url":"/docs/integrations/RDS","content":"AWS Relational Database Service (RDS) caution This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub. First, you need to pass in a password. In order from most secure to least: RDS.Signer, SecretsManager, SSM using SecureString.SSM can be considered equally secure to SecretsManager if you have your own password rotation system. Additionally, you will want to verify the RDS certificate and the domain of your connection. You can use this sudo code to get you started: import tls from 'tls' // https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html const ca = `-----BEGIN CERTIFICATE----- ...` connectionOptions = { ..., ssl: { rejectUnauthorized: true, ca, checkServerIdentity: (host, cert) => { const error = tls.checkServerIdentity(host, cert) if ( error && !cert.subject.CN.endsWith('.rds.amazonaws.com') ) { return error } } } } Corresponding RDS.ParameterGroups values should be set to enforce TLS connections.","keywords":"","version":"Next"},{"title":"Contributing","type":0,"sectionRef":"#","url":"/docs/intro/contributing","content":"Contributing In the spirit of Open Source Software, everyone is very welcome to contribute to this repository. Feel free to raise issues or to submit Pull Requests. Before contributing to the project, make sure to have a look at our Code of Conduct.","keywords":"","version":"Next"},{"title":"Early return","type":0,"sectionRef":"#","url":"/docs/intro/early-interrupt","content":"Early return Some middlewares might need to stop the whole execution flow and return a response immediately. If you want to do this you can invoke return response in your middleware. Note: this will totally stop the execution of successive middlewares in any phase (before, after, onError) and returns an early response (or an error) directly at the Lambda level. If your middlewares do a specific task on every request like output serialization, error handling or clean, these won't be invoked in this case. They will have to be handled before the return. In this example, we can use this capability for building a sample caching middleware: // some function that calculates the cache id based on the current event const calculateCacheId = (event) => { /* ... */ } const storage = {} // middleware const cacheMiddleware = (options) => { let cacheKey const cacheMiddlewareBefore = async (request) => { cacheKey = options.calculateCacheId(request.event) if (options.storage.hasOwnProperty(cacheKey)) { // exits early and returns the value from the cache if it's already there return options.storage[cacheKey] } } const cacheMiddlewareAfter = async (request) => { // stores the calculated response in the cache options.storage[cacheKey] = request.response } return { before: cacheMiddlewareBefore, after: cacheMiddlewareAfter } } // sample usage const handler = middy((event, context) => { /* ... */ }).use( cacheMiddleware({ calculateCacheId, storage }) ) ","keywords":"","version":"Next"},{"title":"Getting started","type":0,"sectionRef":"#","url":"/docs/intro/getting-started","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"Getting started","url":"/docs/intro/getting-started#install","content":"To install middy, you can use NPM: npmYarnpnpm npm install --save @middy/core If you are using TypeScript, you will also want to make sure that you have installed the @types/aws-lambda peer-dependency: npmYarnpnpm npm install --save-dev @types/aws-lambda ","version":"Next","tagName":"h2"},{"title":"Usage​","type":1,"pageTitle":"Getting started","url":"/docs/intro/getting-started#usage","content":"As you will see in the next example, using middy is very simple and requires just few steps: Write your Lambda handlers as usual, focusing mostly on implementing the bare business logic for them.Import middy and all the middlewares you want to use.Wrap your handler in the middy() factory function. This will return a new enhanced instance of your original handler, to which you will be able to attach the middlewares you need.Attach all the middlewares you need using the function .use(somemiddleware()) ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"Getting started","url":"/docs/intro/getting-started#example","content":"import middy from '@middy/core' import middleware1 from 'sample-middleware1' import middleware2 from 'sample-middleware2' import middleware3 from 'sample-middleware3' const lambdaHandler = (event, context) => { /* your business logic */ } export const handler = middy(lambdaHandler) handler .use(middleware1()) .use(middleware2()) .use(middleware3()) .use() takes a single middleware or an array of middlewares, so you can attach multiple middlewares in a single call: import middy from "@middy/core" import middleware1 from "sample-middleware1" import middleware2 from "sample-middleware2" import middleware3 from "sample-middleware3" const middlewares = [middleware1(), middleware2(), middleware3()] const lambdaHandler = (event, context) => { /* your business logic */ }; export const handler = middy(lambdaHandler) handler.use(middlewares) You can also attach inline middlewares by using the functions .before, .after and .onError. For a more detailed use case and examples check the Writing a middleware section. ","version":"Next","tagName":"h2"},{"title":"History","type":0,"sectionRef":"#","url":"/docs/intro/history","content":"","keywords":"","version":"Next"},{"title":"A brief history of Middy​","type":1,"pageTitle":"History","url":"/docs/intro/history#a-brief-history-of-middy","content":"Middy was started in the early days of AWS Lambda (~2016) and it was initially only used to remove duplication in a big serverless project with tons of lambdas. Only in August 2017 Middy's source code was released on GitHub making it an open source project.2017-08-03: First commit2017-09-04: v0.2.1 First release2020-04-25: v1.0.0 Released2020 Review by @lmammino2020 Review by @willfarrell2021: v2.0.0 Coming soon2021-04-01: v2.0.0 Released2021-02-02: 2021 Review from @lmammino2022-05-12: v3.0.0 Released2022-11-24: v4.0.0 Released Fun Fact: The adding of the emoji-icon was the 2nd commit to the project. ","version":"Next","tagName":"h2"},{"title":"Handling Errors","type":0,"sectionRef":"#","url":"/docs/intro/handling-errors","content":"Handling Errors But, what happens when there is an error? When there is an error, the regular control flow is stopped and the execution is moved back to all the middlewares that implemented a special phase called onError, following the same order as after. Every onError middleware can decide to handle the error and create a proper response or to delegate the error to the next middleware. When a middleware handles the error and creates a response, the execution is still propagated to all the other error middlewares and they have a chance to update or replace the response as needed. At the end of the error middlewares sequence, the response is returned to the user. If no middleware manages the error, the Lambda execution fails reporting the unmanaged error. // Initialize response request.response = request.response ?? {} // Add to response request.response.add = 'more' // Override an error request.error = new Error('...') // handle the error return request.response ","keywords":"","version":"Next"},{"title":"Hooks","type":0,"sectionRef":"#","url":"/docs/intro/hooks","content":"Hooks Middy provides hooks into it's core to allow for monitoring, setup, and cleaning that may not be possible within a middleware. In order of execution beforePrefetch(): Triggered once before middlewares are attached and prefetches are executed.requestStart(): Triggered on every request before the first middleware.beforeMiddleware/afterMiddleware(fctName): Triggered before/after every before, after, and onError middleware function. The function name is passed in, this is why all middlewares use a verbose naming pattern.beforeHandler/afterHandler(): Triggered before/after the handler.requestEnd(request): Triggered right before the response is returned, including thrown errors. See Profiling for example usage.","keywords":"","version":"Next"},{"title":"How it works","type":0,"sectionRef":"#","url":"/docs/intro/how-it-works","content":"","keywords":"","version":"Next"},{"title":"Execution order​","type":1,"pageTitle":"How it works","url":"/docs/intro/how-it-works#execution-order","content":"Middlewares have two phases: before and after. The before phase, happens before the handler is executed. In this code the response is not created yet, so you will have access only to the request. The after phase, happens after the handler is executed. In this code you will have access to both the request and the response. If you have three middlewares attached (as in the image above), this is the expected order of execution: middleware1 (before)middleware2 (before)middleware3 (before)handlermiddleware3 (after)middleware2 (after)middleware1 (after) Notice that in the after phase, middlewares are executed in inverted order, this way the first handler attached is the one with the highest priority as it will be the first able to change the request and last able to modify the response before it gets sent to the user. ","version":"Next","tagName":"h2"},{"title":"Influence","type":0,"sectionRef":"#","url":"/docs/intro/influence","content":"Influence Middy has been one of the first projects to encourage the adoption of middlewares to simplify code reuse and best practices within the context of Lambda. Since middy started to gain popularity in the Node.js ecosystem, we have seen some independent projects taking the same ideas to other ecosystems: .Net port Voxel.MiddyNet @vgaltesGoLang port Vesper Do you have a similar project? Let us know.","keywords":"","version":"Next"},{"title":"Sponsoring","type":0,"sectionRef":"#","url":"/docs/intro/sponsoring","content":"Sponsoring If Middy is adding value to your project or organization and you would like to support its long term maintenance, becoming a sponsor is a great way to do that. GitHub Sponsors","keywords":"","version":"Next"},{"title":"Release Cycle","type":0,"sectionRef":"#","url":"/docs/intro/release-cycle","content":"Release Cycle Each major release has a two (2) month Alpha period, one (1) month Beta, before a full release and becomes Stable. Each release goes into Maintenance after nine (9) months, as the next release enters Alpha. This time period is chosen for alignment with AWS Lambda nodejs runtime releases. All Node.js Long-Term Support (LTS) releases that have AWS Lambda runtimes are supported. Version\tStatus\tAlpha Release\tStable Release\tEnd-of-Lifev5\tScoping\t2023-06-01\t2023-09-01\t2025-04-30 v4\tStable\t2022-10-17\t2022-11-24\t2023-09-11 v3\tDeprecated\t2022-01-04\t2022-05-12\t2022-12-31 v2\tDeprecated\t2021-01-24\t2021-04-01\t2022-05-12 v1\tDeprecated\t2018-05-20\t2020-04-25\t2021-04-01 v0\tDeprecated\t2017-08-03\t2017-09-04\t2020-04-25 Dates are subject to change. If your organization requires a longer maintenance period of Middy, please reach out.","keywords":"","version":"Next"},{"title":"Testing","type":0,"sectionRef":"#","url":"/docs/intro/testing","content":"Testing caution This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub. As of Middy v3, by default it will trigger an Abort signal shortly before a lambda times out to allow your handler to safely stop up and middleware to clean before the lambda terminates. When writing tests for lambda handlers wrapped with middy you'll need to account for this. There are a few approaches: Set middy(handler, { timeoutEarlyInMillis: 0 }) to alternatively disable the creation of the AbortController.Set middy(handler, { timeoutEarlyResponse: () => {} }) to disable the timeout error from being thrown using a no-op.Set context.getRemainingTimeInMillis = falsy to disable the creation of the AbortController. When using Middy cache and cacheExpiry in unit tests for functions in your code, it is important to conditionally disable them for test cases by setting both Middy options fields as follows: { cache: false, cacheExpiry: 0, ... } Failing to do so may make the tests end with unfinished worker processes. Although they may still succeed, this can cause issues and timeout errors, namely in CI/CD environments. An example of a message generated by Jest unit tests and which signals the need for this is as follows: A worker process has failed to exit gracefully and has been force exited. This is likely caused by tests leaking due to improper teardown. Try running with --detectOpenHandles to find leaks. Active timers can also cause this, ensure that .unref() was called on them. ","keywords":"","version":"Next"},{"title":"Use with TypeScript","type":0,"sectionRef":"#","url":"/docs/intro/typescript","content":"Use with TypeScript Middy can be used with TypeScript with typings built in in every official package. Here's an example of how you might be using Middy with TypeScript for a Lambda receiving events from API Gateway: import middy from '@middy/core' import { APIGatewayProxyEvent, APIGatewayProxyResult } from 'aws-lambda' async function lambdaHandler (event: APIGatewayProxyEvent): Promise<APIGatewayProxyResult> { // the returned response will be checked against the type `APIGatewayProxyResult` return { statusCode: 200, body: `Hello from ${event.path}` } } let handler = middy(lambdaHandler) .use(someMiddleware) .use(someOtherMiddleware) export default handler You can also write custom middlewares with TypeScript.","keywords":"","version":"Next"},{"title":"Powertools for AWS Lambda","type":0,"sectionRef":"#","url":"/docs/integrations/lambda-powertools","content":"","keywords":"","version":"Next"},{"title":"Intro​","type":1,"pageTitle":"Powertools for AWS Lambda","url":"/docs/integrations/lambda-powertools#intro","content":"Powertools is a collection of utilities that can be used independently or together to help you build production-ready serverless applications. Currently, Powertools provides the following utilities that are compatible with Middy: Logger - Structured logging made easier with a middleware to capture key fields from the Lambda context, cold starts, and more. Compatible with Amazon CloudWatch, Datadog, and more.Tracer - An opinionated wrapper around AWS X-Ray SDK for Node.js with a middleware to automatically capture traces for function invocations, HTTP requests, and AWS SDK calls, and more.Metrics - Create Amazon CloudWatch custom metrics asynchronously with a middleware that takes care of capturing cold starts, and flushes metrics to CloudWatch in EMF-formatted batches.Idempotency - Middleware to make your Lambda functions idempotent and prevent duplicate execution based on payload content. ","version":"Next","tagName":"h2"},{"title":"Logger​","type":1,"pageTitle":"Powertools for AWS Lambda","url":"/docs/integrations/lambda-powertools#logger","content":"Key features: Capturing key fields from the Lambda context, cold starts, and structure logging output as JSON.Logging Lambda invocation events when instructed (disabled by default).Printing all the logs only for a percentage of invocations via log sampling (disabled by default).Appending additional keys to structured logs at any point in time.Providing a custom log formatter (Bring Your Own Formatter) to output logs in a structure compatible with your organization’s Logging RFC. ","version":"Next","tagName":"h2"},{"title":"Install​","type":1,"pageTitle":"Powertools for AWS Lambda","url":"/docs/integrations/lambda-powertools#install","content":"npmYarnpnpm npm install --save @aws-lambda-powertools/logger ","version":"Next","tagName":"h3"},{"title":"Options​","type":1,"pageTitle":"Powertools for AWS Lambda","url":"/docs/integrations/lambda-powertools#options","content":"Class constructor accepts the following options, which are all optional: logLevel (string|LogLevel): Log level to use. Defaults to INFO, but you can use any of the following values: SILENT, DEBUG, INFO, WARN, ERROR, CRITICAL.serviceName (string): Service name to use that will be used in all log statements. Defaults to service_undefined.sampleRateValue (number): number between 0.0 and 1 to determine the sample rate for debug logging. Defaults to 0 (no debub logging). Middleware accepts the following options: logger (Logger) (required): An instance of the Logger class.option (object) (optional): An object with the following keys: logEvent (boolean) (optional): Whether to log the Lambda invocation event. Defaults to false.clearState (boolean) (optional): Whether to clear the logger state after each invocation. Defaults to false. ","version":"Next","tagName":"h3"},{"title":"Sample usage​","type":1,"pageTitle":"Powertools for AWS Lambda","url":"/docs/integrations/lambda-powertools#sample-usage","content":"import middy from '@middy/core'; import { Logger, injectLambdaContext } from '@aws-lambda-powertools/logger'; const logger = new Logger({ serviceName: 'serverlessAirline' }); const lambdaHandler = async (_event, _context) => { logger.info('This is an INFO log with some context', { foo: { bar: 'baz' } }); }; export const handler = middy(lambdaHandler) .use(injectLambdaContext(logger)); The above code will output the following log: { "cold_start": true, "function_arn": "arn:aws:lambda:eu-west-1:123456789012:function:shopping-cart-api-lambda-prod-eu-west-1", "function_memory_size": 128, "function_request_id": "c6af9ac6-7b61-11e6-9a41-93e812345678", "function_name": "shopping-cart-api-lambda-prod-eu-west-1", "level": "INFO", "message": "This is an INFO log with some context", "foo": { "bar": "baz" }, "service": "serverlessAirline", "timestamp": "2021-12-12T21:21:08.921Z", "xray_trace_id": "abcdef123456abcdef123456abcdef123456" } As you can see, the log entry includes several fields that are automatically captured by the Logger utility, and that can help you better understand the context of the log entry. For example, the cold_start field indicates whether the Lambda function was cold started or not, and the xray_trace_id field contains the AWS X-Ray trace ID for the Lambda invocation. This is useful when you're troubleshooting a problem and want to correlate the logs with the traces. The Logger utility also allows you to append arbitary keys to the log entry at both the global level, at the invocation level, and at the single log level. For example, there might be some keys that you want to include in all log entries, such as the environment key to differentiate between the prod and dev environments, or in other cases you might want to include some keys only for a specific log entry, such as the customer_id key to identify the customer that triggered the Lambda invocation. Additionally, you can also configure Logger to log the Lambda invocation event, which can be useful when you're troubleshooting a problem and want to see the event that triggered the Lambda invocation. Finally, Logger allows you to define a custom log formatter to output logs in a different JSON structure from the default one. This is useful when you want to output logs in a structure that is compatible with your organization's requirements. ","version":"Next","tagName":"h3"},{"title":"Tracer​","type":1,"pageTitle":"Powertools for AWS Lambda","url":"/docs/integrations/lambda-powertools#tracer","content":"Key features: Auto-capturing cold start and service name as annotations, and responses or full exceptions as metadata.Automatically tracing HTTP(S) clients and generating segments for each request.Supporting tracing functions via decorators, middleware, and manual instrumentation.Supporting tracing AWS SDK v2 and v3 via AWS X-Ray SDK for Node.js.Auto-disable tracing when not running in the Lambda environment. ","version":"Next","tagName":"h2"},{"title":"Install​","type":1,"pageTitle":"Powertools for AWS Lambda","url":"/docs/integrations/lambda-powertools#install-1","content":"npmYarnpnpm npm install --save @aws-lambda-powertools/tracer ","version":"Next","tagName":"h3"},{"title":"Options​","type":1,"pageTitle":"Powertools for AWS Lambda","url":"/docs/integrations/lambda-powertools#options-1","content":"Class constructor accepts the following options, which are all optional: serviceName (string): Service name to use that will be used in all log statements. Defaults to service_undefined.enabled (boolean): Whether to enable tracing. Defaults to true.captureHTTPsRequests (boolean): Whether to capture outgoing HTTP(S) requests as segment metadata. Defaults to true. Middleware accepts the following options: tracer (Tracer) (required): An instance of the Tracer class.option (object) (optional): An object with the following keys: captureResponse (boolean) (optional): Whether to capture the Lambda invocation result as segment metadata. Defaults to true. ","version":"Next","tagName":"h3"},{"title":"Sample usage​","type":1,"pageTitle":"Powertools for AWS Lambda","url":"/docs/integrations/lambda-powertools#sample-usage-1","content":"import middy from '@middy/core'; import { Tracer, captureLambdaHandler } from '@aws-lambda-powertools/tracer'; import { SecretsManagerClient } from '@aws-sdk/client-secrets-manager'; const tracer = new Tracer({ serviceName: 'serverlessAirline' }); const client = tracer.captureAWSv3Client( new SecretsManagerClient({}) ); const lambdaHandler = async (_event, _context) => { tracer.putAnnotation('successfulBooking', true); }; export const handler = middy(lambdaHandler) .use(captureLambdaHandler(tracer)); The above code instructs the Tracer utility to create a custom segment named ## index.handler and to add an annotation to it with the key successfulBooking and the value true. The segment name is automatically generated based on the handler name, and the ## prefix is used to indicate that this is a custom segment. The Tracer utility also automatically captures the cold start and service name as annotations, and the Lambda invocation result or any error thrown as metadata. The segment data will be automatically sent to AWS X-Ray when the Lambda function completes its execution. Tracer also automatically captures and traces any outgoing HTTP(S) requests made by the Lambda function. For example, if your function makes a request to a custom API, the Tracer utility will automatically create a segment for that request which will appear in your trace data and service map. Additionally, it will also capture any AWS SDK calls made by the function, and do the same for them. ","version":"Next","tagName":"h3"},{"title":"Metrics​","type":1,"pageTitle":"Powertools for AWS Lambda","url":"/docs/integrations/lambda-powertools#metrics","content":"Key features: Aggregating up to 100 metrics using a single CloudWatch EMF object.Validating your metrics against common metric definitions mistakes (for example, metric unit, values, max dimensions, max metrics).Metrics are created asynchronously by the CloudWatch service. You do not need any custom stacks, and there is no impact to Lambda function latency.Creating a one-off metric with different dimensions. If you're new to Amazon CloudWatch, there are a few terms like Namespace, Dimensions, Unit, etc, that you must be aware of before you start using the Metrics utility. To learn more about these terms, see the documentation on PowerTools Metrics. ","version":"Next","tagName":"h2"},{"title":"Install​","type":1,"pageTitle":"Powertools for AWS Lambda","url":"/docs/integrations/lambda-powertools#install-2","content":"npmYarnpnpm npm install --save @aws-lambda-powertools/metrics ","version":"Next","tagName":"h3"},{"title":"Options​","type":1,"pageTitle":"Powertools for AWS Lambda","url":"/docs/integrations/lambda-powertools#options-2","content":"Class constructor accepts the following options, which are all optional: serviceName (string): Service name to use that will be used in all log statements. Defaults to service_undefined.defaultNamespace (string): Default namespace to use for all metrics. Defaults to default_namespace. Middleware accepts the following options: metrics (Metric) (required): An instance of the Metrics class.option (object) (optional): An object with the following keys: throwOnEmptyMetrics (boolean) (optional): Whether to throw an error if no metrics were added. Defaults to false.captureColdStartMetric (boolean) (optional): Whether to capture the cold start metric. Defaults to true. ","version":"Next","tagName":"h3"},{"title":"Sample usage​","type":1,"pageTitle":"Powertools for AWS Lambda","url":"/docs/integrations/lambda-powertools#sample-usage-2","content":"import middy from '@middy/core'; import { Metrics, MetricUnits, logMetrics } from '@aws-lambda-powertools/metrics'; const metrics = new Metrics({ namespace: 'serverlessAirline', serviceName: 'orders' }); const lambdaHandler = async (_event: unknown, _context: unknown): Promise<void> => { metrics.addMetric('successfulBooking', MetricUnits.Count, 1); }; export const handler = middy(lambdaHandler) .use(logMetrics(metrics)); The above code will output a CloudWatch EMF object similar to the following: { "successfulBooking": 1.0, "_aws": { "Timestamp": 1592234975665, "CloudWatchMetrics": [{ "Namespace": "successfulBooking", "Dimensions": [ [ "service" ] ], "Metrics": [{ "Name": "successfulBooking", "Unit": "Count" }] }], "service": "orders" } } This EMF object will be sent to CloudWatch asynchronously by the CloudWatch service. You do not need any custom stacks, and there is no impact to Lambda function latency. The Metrics utility supports high-resolution metrics as well as multi-value metrics. It also allows you to add default dimensions that are used in all the metrics emitted by your application or create a one-off metric with different dimensions. ","version":"Next","tagName":"h3"},{"title":"Idempotency​","type":1,"pageTitle":"Powertools for AWS Lambda","url":"/docs/integrations/lambda-powertools#idempotency","content":"Key features: Prevent Lambda handler from executing more than once on the same event payload during a time windowEnsure Lambda handler returns the same result when called with the same payloadSelect a subset of the event as the idempotency key using JMESPath expressionsSet a time window in which records with the same payload should be considered duplicatesExpires in-progress executions if the Lambda function times out halfway through The property of idempotency means that an operation does not cause additional side effects if it is called more than once with the same input parameters. Idempotent operations will return the same result when they are called multiple times with the same parameters. This makes idempotent operations safe to retry. ","version":"Next","tagName":"h2"},{"title":"Install​","type":1,"pageTitle":"Powertools for AWS Lambda","url":"/docs/integrations/lambda-powertools#install-3","content":"npmYarnpnpm npm install --save @aws-lambda-powertools/idempotency @aws-sdk/client-dynamodb @aws-sdk/lib-dynamodb ","version":"Next","tagName":"h3"},{"title":"Options​","type":1,"pageTitle":"Powertools for AWS Lambda","url":"/docs/integrations/lambda-powertools#options-3","content":"Middleware accepts the following options: persistenceStore (BasePersistenceLayer): Class used to interact with a persistence store.config (IdempotencyConfig) (optional): Configuration object to customize the default behavior of the idempotency feature. ","version":"Next","tagName":"h3"},{"title":"Sample usage​","type":1,"pageTitle":"Powertools for AWS Lambda","url":"/docs/integrations/lambda-powertools#sample-usage-3","content":"import middy from '@middy/core'; import { randomUUID } from 'node:crypto'; import { makeHandlerIdempotent } from '@aws-lambda-powertools/idempotency/middleware'; import { DynamoDBPersistenceLayer } from '@aws-lambda-powertools/idempotency/dynamodb'; const persistenceStore = new DynamoDBPersistenceLayer({ tableName: 'idempotencyTableName', }); const createSubscriptionPayment = async ( event ) => { // ... create payment return { id: randomUUID(), productId: event.productId, }; }; export const handler = middy( async (event, _context) => { try { const payment = await createSubscriptionPayment(event); return { paymentId: payment.id, message: 'success', statusCode: 200, }; } catch (error) { throw new Error('Error creating payment'); } } ).use( makeHandlerIdempotent({ persistenceStore, }) ); ","version":"Next","tagName":"h3"},{"title":"Best practices​","type":1,"pageTitle":"Powertools for AWS Lambda","url":"/docs/integrations/lambda-powertools#best-practices","content":"","version":"Next","tagName":"h2"},{"title":"Using multiple utilities​","type":1,"pageTitle":"Powertools for AWS Lambda","url":"/docs/integrations/lambda-powertools#using-multiple-utilities","content":"You can use multiple Powertools utilities in your Lambda function by chaining the respective middlewares together. When doing so the Powertools team recommends that you place the Tracer middleware at the top of the middleware chain, followed by the Logger and any other middlewares. This is because the Tracer middleware will create a new segment for each Lambda invocation, and the Logger might want to log the event that triggered the Lambda invocation. With this placement you will be able to have a segment that closely matches the actual duration of your Lambda function, and you will be able to see the event that triggered the function invocation before it's potentially modified by other middlewares. export const handler = middy(() => { /* ... */ }) .use(captureLambdaHandler(tracer)) .use(injectLambdaContext(logger, { logEvent: true })) .use(logMetrics(metrics, { captureColdStartMetric: true })); ","version":"Next","tagName":"h3"},{"title":"Cleaning up on early returns​","type":1,"pageTitle":"Powertools for AWS Lambda","url":"/docs/integrations/lambda-powertools#cleaning-up-on-early-returns","content":"As discussed in the early return section, some middlewares might need to stop the whole execution flow and return a response immediately. In this case, if you are writing your own middleware that will work with the Powertools utilities, you must make sure to clean up the utilities before returning. For example, if you are using the Tracer utility, you must make sure to call the close method so that the Tracer can properly close the current segment and send it to X-Ray. Likewise, if you are using the Metrics utility, it's a good practice to call the clearMetrics method so that the Metrics utility can emit the metrics that were stored in the buffer and avoid you losing any data. Following the example described in the linked section, you can clean up all the utilities by doing the following: import { cleanupMiddlewares } from '@aws-lambda-powertools/commons'; // some function that calculates the cache id based on the current event const calculateCacheId = (event) => { /* ... */ } const storage = {} // middleware const cacheMiddleware = (options) => { let cacheKey const cacheMiddlewareBefore = async (request) => { cacheKey = options.calculateCacheId(request.event) if (options.storage.hasOwnProperty(cacheKey)) { // clean up the Powertools utilities before returning cleanupMiddlewares() // exits early and returns the value from the cache if it's already there return options.storage[cacheKey] } } const cacheMiddlewareAfter = async (request) => { // stores the calculated response in the cache options.storage[cacheKey] = request.response } return { before: cacheMiddlewareBefore, after: cacheMiddlewareAfter } } // sample usage const handler = middy((event, context) => { /* ... */ }) .use(captureLambdaHandler(tracer)) .use(injectLambdaContext(logger, { logEvent: true })) .use(logMetrics(metrics, { captureColdStartMetric: true })) .use( cacheMiddleware({ calculateCacheId, storage }) ); ","version":"Next","tagName":"h3"},{"title":"Utilities","type":0,"sectionRef":"#","url":"/docs/intro/utilities","content":"Utilities caution This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","keywords":"","version":"Next"},{"title":"Streamify Response","type":0,"sectionRef":"#","url":"/docs/intro/streamify-response","content":"","keywords":"","version":"Next"},{"title":"Lambda Function URL Example​","type":1,"pageTitle":"Streamify Response","url":"/docs/intro/streamify-response#lambda-function-url-example","content":"import middy from '@middy/core' import { createReadableStream } from '@datastream/core' export const handler = middy({ streamifyResponse: true }).handler( (event, context) => { return { statusCode: 200, headers: { 'Content-Type': 'text/csv' }, body: createReadableStream('...') // or string } } ) ","version":"Next","tagName":"h2"},{"title":"Lambda InvokeWithResponseStream Example​","type":1,"pageTitle":"Streamify Response","url":"/docs/intro/streamify-response#lambda-invokewithresponsestream-example","content":"import middy from '@middy/core' import { createReadableStream } from '@datastream/core' export const handler = middy({ streamifyResponse: true }).handler( (event, context) => { return createReadableStream('...') // or string } ) ","version":"Next","tagName":"h2"},{"title":"Requesting Lambda​","type":1,"pageTitle":"Streamify Response","url":"/docs/intro/streamify-response#requesting-lambda","content":"import { LambdaClient, InvokeWithResponseStreamCommand } from '@aws-sdk/client-lambda' const lambda = new LambdaClient() const res = await lambda.send( new InvokeWithResponseStreamCommand({ FunctionName: 'function-name', Payload: JSON.stringify({...}) }) ) const decoder = new TextDecoder('utf-8') let body = '' for await (const chunk of res.EventStream) { if (chunk?.PayloadChunk?.Payload) { body += decoder.decode(Buffer.from(chunk.PayloadChunk.Payload)) } } ","version":"Next","tagName":"h3"},{"title":"appconfig","type":0,"sectionRef":"#","url":"/docs/middlewares/appconfig","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"appconfig","url":"/docs/middlewares/appconfig#install","content":"To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/appconfig npm install --save-dev @aws-sdk/client-appconfig ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"appconfig","url":"/docs/middlewares/appconfig#options","content":"AwsClient (object) (default AppConfigClient): AppConfigClient class constructor (i.e. that has been instrumented with AWS XRay). Must be from @aws-sdk/client-appconfig.awsClientOptions (object) (default undefined): Options to pass to AppConfigClient class constructor.awsClientAssumeRole (string) (default undefined): Internal key where secrets are stored. See @middy/sts on to set this.awsClientCapture (function) (default undefined): Enable XRay by passing captureAWSv3Client from aws-xray-sdk in.fetchData (object) (required): Mapping of internal key name to API request parameters.disablePrefetch (boolean) (default false): On cold start requests will trigger early if they can. Setting awsClientAssumeRole disables prefetch.cacheKey (string) (default appconfig): Cache key for the fetched data responses. Must be unique across all middleware.cacheExpiry (number) (default -1): How long fetch data responses should be cached for. -1: cache forever, 0: never cache, n: cache for n ms.setToContext (boolean) (default false): Store credentials to request.context. NOTES: Lambda is required to have IAM permission for appconfig:GetConfiguration ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"appconfig","url":"/docs/middlewares/appconfig#sample-usage","content":"import middy from '@middy/core' import appConfig from '@middy/appconfig' const handler = middy((event, context) => { const response = { statusCode: 200, headers: {}, body: JSON.stringify({ message: 'hello world' }) } return response }) handler.use( appConfig({ fetchData: { config: { Application: '...', ClientId: '...', Configuration: '...', Environment: '...' } } }) ) ","version":"Next","tagName":"h2"},{"title":"Bundling​","type":1,"pageTitle":"appconfig","url":"/docs/middlewares/appconfig#bundling","content":"To exclude @aws-sdk add @aws-sdk/client-appconfig to the exclude list. ","version":"Next","tagName":"h2"},{"title":"dynamodb","type":0,"sectionRef":"#","url":"/docs/middlewares/dynamodb","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"dynamodb","url":"/docs/middlewares/dynamodb#install","content":"To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/dynamodb npm install --save-dev @aws-sdk/client-dynamodb @aws-sdk/util-dynamodb ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"dynamodb","url":"/docs/middlewares/dynamodb#options","content":"AwsClient (object) (default DynamoDBClient): DynamoDBClient class constructor (i.e. that has been instrumented with AWS XRay). Must be from @aws-sdk/client-dynamodb.awsClientOptions (object) (default undefined): Options to pass to DynamoDBClient class constructor.awsClientAssumeRole (string) (default undefined): Internal key where secrets are stored. See @middy/sts on to set this.awsClientCapture (function) (default undefined): Enable XRay by passing captureAWSv3Client from aws-xray-sdk in.fetchData (object) (required): Mapping of internal key name to API request parameters.disablePrefetch (boolean) (default false): On cold start requests will trigger early if they can. Setting awsClientAssumeRole disables prefetch.cacheKey (string) (default dynamodb): Cache key for the fetched data responses. Must be unique across all middleware.cacheExpiry (number) (default -1): How long fetch data responses should be cached for. -1: cache forever, 0: never cache, n: cache for n ms.setToContext (boolean) (default false): Store credentials to request.context. NOTES: Lambda is required to have IAM permission for dynamodb:BatchGetItemCommand ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"dynamodb","url":"/docs/middlewares/dynamodb#sample-usage","content":"import middy from '@middy/core' import dynamodb from '@middy/dynamodb' const handler = middy((event, context) => { const response = { statusCode: 200, headers: {}, body: JSON.stringify({ message: 'hello world' }) } return response }) handler.use( dynamodb({ fetchData: { config: { TableName: '...' Key: { pk: '0000' } } } }) ) ","version":"Next","tagName":"h2"},{"title":"Bundling​","type":1,"pageTitle":"dynamodb","url":"/docs/middlewares/dynamodb#bundling","content":"To exclude @aws-sdk add @aws-sdk/client-dynamodb to the exclude list. ","version":"Next","tagName":"h2"},{"title":"cloudwatch-metrics","type":0,"sectionRef":"#","url":"/docs/middlewares/cloudwatch-metrics","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"cloudwatch-metrics","url":"/docs/middlewares/cloudwatch-metrics#install","content":"To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/cloudwatch-metrics ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"cloudwatch-metrics","url":"/docs/middlewares/cloudwatch-metrics#options","content":"namespace (string) (optional): Defaults to aws-embedded-metrics. Sets the CloudWatch namespace that extracted metrics should be published to.dimensions (Record<String, String> | Record<String, String>[]) (optional): Explicitly overrides all dimensions. This will remove the default dimensions. You can provide an empty array to record all metrics without dimensions. For dimensions defaults and configuration see the aws-embedded-metrics docs. ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"cloudwatch-metrics","url":"/docs/middlewares/cloudwatch-metrics#sample-usage","content":"const middy = require('@middy/core') const cloudwatchMetrics = require('@middy/cloudwatch-metrics') const handler = middy((event, context) => { context.metrics.putMetric('ProcessingLatency', 100, 'Milliseconds') context.metrics.setProperty( 'RequestId', '422b1569-16f6-4a03-b8f0-fe3fd9b100f8' ) }) handler.use( cloudwatchMetrics({ namespace: 'myAppliction', dimensions: [{ Action: 'Buy' }] }) ) ","version":"Next","tagName":"h2"},{"title":"do-not-wait-for-empty-event-loop","type":0,"sectionRef":"#","url":"/docs/middlewares/do-not-wait-for-empty-event-loop","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"do-not-wait-for-empty-event-loop","url":"/docs/middlewares/do-not-wait-for-empty-event-loop#install","content":"To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/do-not-wait-for-empty-event-loop ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"do-not-wait-for-empty-event-loop","url":"/docs/middlewares/do-not-wait-for-empty-event-loop#options","content":"By default the middleware sets the callbackWaitsForEmptyEventLoop property to false only in the before phase, meaning you can override it in handler to true if needed. You can set it in all steps with the options: runOnBefore (defaults to true) - sets property before running your handlerrunOnAfter (defaults to false)runOnError (defaults to false) ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"do-not-wait-for-empty-event-loop","url":"/docs/middlewares/do-not-wait-for-empty-event-loop#sample-usage","content":"import middy from '@middy/core' import doNotWaitForEmptyEventLoop from '@middy/do-not-wait-for-empty-event-loop' const handler = middy((event, context) => { return {} }) handler.use(doNotWaitForEmptyEventLoop({runOnError: true})) // When Lambda runs the handler it gets context with // callbackWaitsForEmptyEventLoop property set to false handler(event, context, (_, response) => { t.is(context.callbackWaitsForEmptyEventLoop,false) }) ","version":"Next","tagName":"h2"},{"title":"error-logger","type":0,"sectionRef":"#","url":"/docs/middlewares/error-logger","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"error-logger","url":"/docs/middlewares/error-logger#install","content":"To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/error-logger ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"error-logger","url":"/docs/middlewares/error-logger#options","content":"logger property: a function (default console.error) that is used to define the logging logic. It receives the Error object as first and only parameter. ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"error-logger","url":"/docs/middlewares/error-logger#sample-usage","content":"import middy from '@middy/core' import errorLogger from '@middy/error-logger' const handler = middy((event, context) => { // your handler logic }) handler .use(errorLogger()) ","version":"Next","tagName":"h2"},{"title":"http-content-encoding","type":0,"sectionRef":"#","url":"/docs/middlewares/http-content-encoding","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"http-content-encoding","url":"/docs/middlewares/http-content-encoding#install","content":"To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/http-content-encoding ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"http-content-encoding","url":"/docs/middlewares/http-content-encoding#options","content":"br (object) (default {}): zlib.createBrotliCompress brotliOptionsgzip (object) (default {}): zlib.createGzip gzipOptionsdeflate (object) (default {}): zlib.createDeflate deflateOptionsoverridePreferredEncoding (array[string]) (optional): Override the preferred encoding order, most browsers prefer gzip over br, even though br has higher compression. Default: [] NOTES: Important For br encoding NodeJS defaults to 11. Levels 10 & 11 have been shown to have lower performance for the level of compression they apply. Testing is recommended to ensure the right balance of compression & performance. ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"http-content-encoding","url":"/docs/middlewares/http-content-encoding#sample-usage","content":"import middy from '@middy/core' import httpContentNegotiation from '@middy/http-content-negotiation' import httpContentEncoding from '@middy/http-content-encoding' import { constants } from 'node:zlib' export const handler = middy() .use(httpContentNegotiation()) .use(httpContentEncoding({ br: { params: { [constants.BROTLI_PARAM_MODE]: constants.BROTLI_MODE_TEXT, // adjusted for UTF-8 text [constants.BROTLI_PARAM_QUALITY]: 7 } }, overridePreferredEncoding: ['br', 'gzip', 'deflate'] }) .handler((event, context) => { return { statusCode: 200, body: '{...}' } }) ","version":"Next","tagName":"h2"},{"title":"Using streams​","type":1,"pageTitle":"http-content-encoding","url":"/docs/middlewares/http-content-encoding#using-streams","content":"import middy from '@middy/core' import httpContentNegotiation from '@middy/http-content-negotiation' import httpContentEncoding from '@middy/http-content-encoding' import { constants } from 'node:zlib' import { createReadableStream } from '@datastream/core' export const handler = middy({ streamifyResponse: true }) .use(httpContentNegotiation()) .use(httpContentEncoding({ br: { params: { [constants.BROTLI_PARAM_MODE]: constants.BROTLI_MODE_TEXT, // adjusted for UTF-8 text [constants.BROTLI_PARAM_QUALITY]: 7 } }, overridePreferredEncoding: ['br', 'gzip', 'deflate'] }) .handler((event, context) => { return { statusCode: 200, body: createReadableStream('{...}') } }) ","version":"Next","tagName":"h3"},{"title":"event-normalizer","type":0,"sectionRef":"#","url":"/docs/middlewares/event-normalizer","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"event-normalizer","url":"/docs/middlewares/event-normalizer#install","content":"To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/event-normalizer ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"event-normalizer","url":"/docs/middlewares/event-normalizer#options","content":"wrapNumbers (boolean) (default undefined): Whether to return numbers as a string instead of converting them to native JavaScript numbers. This allows for the safe round-trip transport of numbers of arbitrary size. For DynamoDB Events only. ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"event-normalizer","url":"/docs/middlewares/event-normalizer#sample-usage","content":"import middy from '@middy/core' import eventNormalizer from '@middy/event-normalizer' const lambdaHandler = (event, context) => { const { Records } = event for (const record of Records) { // ... } } const handler = middy(lambdaHandler).use(eventNormalizer()) ","version":"Next","tagName":"h2"},{"title":"http-content-negotiation","type":0,"sectionRef":"#","url":"/docs/middlewares/http-content-negotiation","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"http-content-negotiation","url":"/docs/middlewares/http-content-negotiation#install","content":"To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/http-content-negotiation ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"http-content-negotiation","url":"/docs/middlewares/http-content-negotiation#options","content":"parseCharsets (defaults to true) - Allows enabling/disabling the charsets parsingavailableCharsets (defaults to undefined) - Allows defining the list of charsets supported by the Lambda functionparseEncodings (defaults to true) - Allows enabling/disabling the encodings parsingavailableEncodings (defaults to undefined) - Allows defining the list of encodings supported by the Lambda functionparseLanguages (defaults to true) - Allows enabling/disabling the languages parsingavailableLanguages (defaults to undefined) - Allows defining the list of languages supported by the Lambda functionparseMediaTypes (defaults to true) - Allows enabling/disabling the media types parsingavailableMediaTypes (defaults to undefined) - Allows defining the list of media types supported by the Lambda functionfailOnMismatch (defaults to true) - If set to true it will throw an HTTP NotAcceptable (406) exception when the negotiation fails for one of the headers (e.g. none of the languages requested are supported by the app) ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"http-content-negotiation","url":"/docs/middlewares/http-content-negotiation#sample-usage","content":"import middy from '@middy/core' import httpContentNegotiation from '@middy/http-content-negotiation' import httpHeaderNormalizer from '@middy/http-header-normalizer' import httpErrorHandler from '@middy/http-error-handler' export const handler = middy((event, context) => { let message, body switch (event.preferredLanguage) { case 'it-it': message = 'Ciao Mondo' break case 'fr-fr': message = 'Bonjour le monde' break default: message = 'Hello world' } switch (event.preferredMediaType) { case 'application/xml': body = `<message>${message}</message>` break case 'application/yaml': body = `---\\nmessage: ${message}` break case 'application/json': body = JSON.stringify({ message }) break default: body = message } return { statusCode: 200, body } }) handler .use(httpHeaderNormalizer()) .use(httpContentNegotiation({ parseCharsets: false, parseEncodings: false, availableLanguages: ['it-it', 'fr-fr', 'en'], availableMediaTypes: ['application/xml', 'application/yaml', 'application/json', 'text/plain'] })) .use(httpErrorHandler()) ","version":"Next","tagName":"h2"},{"title":"http-cors","type":0,"sectionRef":"#","url":"/docs/middlewares/http-cors","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"http-cors","url":"/docs/middlewares/http-cors#install","content":"To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/http-cors ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"http-cors","url":"/docs/middlewares/http-cors#options","content":"credentials (bool) (optional): if true, sets Access-Control-Allow-Credentials (default false)disableBeforePreflightResponse (bool) (optional): if false, replies automatically to cors preflight requests. Set to true if handling the response in a custom way (default true)headers (string) (optional): value to put in Access-Control-Allow-Headers (default: false)methods (string) (optional): value to put in Access-Control-Allow-Methods (default: false)getOrigin (function(incomingOrigin:string, options)) (optional): take full control of the generating the returned origin. Defaults to using the origin or origins option.origin (string) (optional): origin to put in the header (default: "*")origins (array) (optional): An array of allowed origins. The incoming origin is matched against the list and is returned if present.exposeHeaders (string) (optional): value to put in Access-Control-Expose-Headers (default: false)maxAge (string) (optional): value to put in Access-Control-Max-Age header (default: null)requestHeaders (string) (optional): value to put in Access-Control-Request-Headers (default: false)requestMethods (string) (optional): value to put in Access-Control-Request-Methods (default: false)cacheControl (string) (optional): value to put in Cache-Control header on pre-flight (OPTIONS) requests (default: null) import middy from '@middy/core' import httpErrorHandler from '@middy/http-error-handler' import cors from '@middy/http-cors' const handler = middy((event, context) => { throw new createError.UnprocessableEntity() }) handler.use(httpErrorHandler()).use(cors()) // when Lambda runs the handler... handler({}, {}, (_, response) => { t.is(response.headers['Access-Control-Allow-Origin'], '*') t.deepEqual(response, { statusCode: 422, body: 'Unprocessable Entity' }) }) ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"http-cors","url":"/docs/middlewares/http-cors#sample-usage","content":"import middy from '@middy/core' import cors from '@middy/http-cors' const handler = middy((event, context) => { return {} }) handler.use(cors()) // when Lambda runs the handler... handler({}, {}, (_, response) => { t.is(response.headers['Access-Control-Allow-Origin'], '*') }) ","version":"Next","tagName":"h2"},{"title":"http-event-normalizer","type":0,"sectionRef":"#","url":"/docs/middlewares/http-event-normalizer","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"http-event-normalizer","url":"/docs/middlewares/http-event-normalizer#install","content":"To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/http-event-normalizer ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"http-event-normalizer","url":"/docs/middlewares/http-event-normalizer#sample-usage","content":"import middy from '@middy/core' import httpEventNormalizer from '@middy/http-event-normalizer' const handler = middy((event, context) => { console.log(`Hello user ${event.pathParameters.userId}`) // might produce `Hello user undefined`, but not an error return {} }) handler.use(httpEventNormalizer()) ","version":"Next","tagName":"h2"},{"title":"http-header-normalizer","type":0,"sectionRef":"#","url":"/docs/middlewares/http-header-normalizer","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"http-header-normalizer","url":"/docs/middlewares/http-header-normalizer#install","content":"To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/http-header-normalizer ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"http-header-normalizer","url":"/docs/middlewares/http-header-normalizer#options","content":"canonical (bool) (optional): if true, modifies the headers to canonical format, otherwise the headers are normalized to lowercase (default false)defaultHeaders (object) (optional): Default headers to used if any are missing. i.e. Content-Type (default {})normalizeHeaderKey (function) (optional): a function that accepts an header name as a parameter and returns its canonical representation. ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"http-header-normalizer","url":"/docs/middlewares/http-header-normalizer#sample-usage","content":"import middy from '@middy/core' import httpHeaderNormalizer from '@middy/http-header-normalizer' const handler = middy() .use(httpHeaderNormalizer()) .handler((event, context) => { return {} }) ","version":"Next","tagName":"h2"},{"title":"http-error-handler","type":0,"sectionRef":"#","url":"/docs/middlewares/http-error-handler","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"http-error-handler","url":"/docs/middlewares/http-error-handler#install","content":"To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/http-error-handler ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"http-error-handler","url":"/docs/middlewares/http-error-handler#options","content":"logger (defaults to console.error) - a logging function that is invoked with the current error as an argument. You can pass false if you don't want the logging to happen.fallbackMessage (default to null) - When non-http errors (those without `statusCode) occur you can catch them by setting a fallback message to be used. These will be returned with a 500 status code. ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"http-error-handler","url":"/docs/middlewares/http-error-handler#sample-usage","content":"import middy from '@middy/core' import httpErrorHandler from '@middy/http-error-handler' const handler = middy((event, context) => { throw new createError.UnprocessableEntity() }) handler .use(httpErrorHandler()) // when Lambda runs the handler... handler({}, {}, (_, response) => { t.deepEqual(response,{ statusCode: 422, body: 'Unprocessable Entity' }) }) ","version":"Next","tagName":"h2"},{"title":"http-json-body-parser","type":0,"sectionRef":"#","url":"/docs/middlewares/http-json-body-parser","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"http-json-body-parser","url":"/docs/middlewares/http-json-body-parser#install","content":"To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/http-json-body-parser ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"http-json-body-parser","url":"/docs/middlewares/http-json-body-parser#options","content":"reviver (function) (optional): A reviver parameter may be passed which will be used JSON.parseing the body.disableContentTypeError (boolean) (optional): Skip throwing 415 when Content-Type is invalid. Default: true, will default to false in next major version. ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"http-json-body-parser","url":"/docs/middlewares/http-json-body-parser#sample-usage","content":"import middy from '@middy/core' import httpHeaderNormalizer from '@middy/http-header-normalizer' import httpJsonBodyParser from '@middy/http-json-body-parser' const handler = middy((event, context) => { return {} }) handler.use(httpHeaderNormalizer()).use(httpJsonBodyParser()) // invokes the handler const event = { headers: { 'Content-Type': 'application/json' // It is important that the request has the proper content type. }, body: JSON.stringify({ foo: 'bar' }) } handler(event, {}, (_, body) => { t.is(body, { foo: 'bar' }) }) ","version":"Next","tagName":"h2"},{"title":"http-multipart-body-parser","type":0,"sectionRef":"#","url":"/docs/middlewares/http-multipart-body-parser","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"http-multipart-body-parser","url":"/docs/middlewares/http-multipart-body-parser#install","content":"To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/http-multipart-body-parser ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"http-multipart-body-parser","url":"/docs/middlewares/http-multipart-body-parser#options","content":"busboy (object) (optional): defaults to {} and it can be used to pass extraparameters to the internal busboy instance at creation time. Checkout the official documentation for more information on the supported options.charset (string) (default utf8): it can be used to change default charset.disableContentTypeError (boolean) (optional): Skip throwing 415 when Content-Type is invalid. Default: true, will default to false in next major version. Note: this middleware will buffer all the data as it is processed internally by busboy, so, if you are using this approach to parse significantly big volumes of data, keep in mind that all the data will be allocated in memory. This is somewhat inevitable with Lambdas (as the data is already encoded into the JSON in memory as Base64), but it's good to keep this in mind and evaluate the impact on you application. If you really have to deal with big files, then you might also want to consider to allowing your users to directly upload files to S3 ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"http-multipart-body-parser","url":"/docs/middlewares/http-multipart-body-parser#sample-usage","content":"import middy from '@middy/core' import httpHeaderNormalizer from '@middy/http-header-normalizer' import httpMultipartBodyParser from '@middy/http-multipart-body-parser' const handler = middy((event, context) => { return {} }) handler.use(httpHeaderNormalizer()).use(httpMultipartBodyParser()) // invokes the handler const event = { headers: { 'Content-Type': 'multipart/form-data; boundary=----WebKitFormBoundaryppsQEwf2BVJeCe0M' }, body: 'LS0tLS0tV2ViS2l0Rm9ybUJvdW5kYXJ5cHBzUUV3ZjJCVkplQ2UwTQ0KQ29udGVudC1EaXNwb3NpdGlvbjogZm9ybS1kYXRhOyBuYW1lPSJmb28iDQoNCmJhcg0KLS0tLS0tV2ViS2l0Rm9ybUJvdW5kYXJ5cHBzUUV3ZjJCVkplQ2UwTS0t', isBase64Encoded: true } handler(event, {}, (_, body) => { t.is(body, { foo: 'bar' }) }) ","version":"Next","tagName":"h2"},{"title":"http-security-headers","type":0,"sectionRef":"#","url":"/docs/middlewares/http-security-headers","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"http-security-headers","url":"/docs/middlewares/http-security-headers#install","content":"To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/http-security-headers ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"http-security-headers","url":"/docs/middlewares/http-security-headers#options","content":"dnsPrefetchControl controls browser DNS prefetchingexpectCt for handling Certificate Transparency (Future Feature)frameguard to prevent clickjackinghidePoweredBy to remove the Server/X-Powered-By headerhsts for HTTP Strict Transport SecurityieNoOpen sets X-Download-Options for IE8+noSniff to keep clients from sniffing the MIME typereferrerPolicy to hide the Referer headerxssFilter adds some small XSS protections ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"http-security-headers","url":"/docs/middlewares/http-security-headers#sample-usage","content":"import middy from '@middy/core' import httpSecurityHeaders from '@middy/http-security-headers' const handler = middy((event, context) => { return {} }) handler .use(httpSecurityHeaders()) ","version":"Next","tagName":"h2"},{"title":"http-partial-response","type":0,"sectionRef":"#","url":"/docs/middlewares/http-partial-response","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"http-partial-response","url":"/docs/middlewares/http-partial-response#install","content":"To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/http-partial-response ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"http-partial-response","url":"/docs/middlewares/http-partial-response#options","content":"filteringKeyName (string) (optional): defaults to fields the querystring key that will be used to filter the response. ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"http-partial-response","url":"/docs/middlewares/http-partial-response#sample-usage","content":"import middy from '@middy/core' import httpPartialResponse from '@middy/http-partial-response' const handler = middy((event, context) => { const response = { statusCode: 200, body: { firstname: 'John', lastname: 'Doe', gender: 'male', age: 30, address: { street: 'Avenue des Champs-Élysées', city: 'Paris' } } } return response }) handler.use(httpPartialResponse()) const event = { queryStringParameters: { fields: 'firstname,lastname' } } handler(event, {}, (_, response) => { expect(response.body).toEqual({ firstname: 'John', lastname: 'Doe' }) }) ","version":"Next","tagName":"h2"},{"title":"http-response-serializer","type":0,"sectionRef":"#","url":"/docs/middlewares/http-response-serializer","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"http-response-serializer","url":"/docs/middlewares/http-response-serializer#install","content":"To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/http-response-serializer ","version":"Next","tagName":"h2"},{"title":"Configuration​","type":1,"pageTitle":"http-response-serializer","url":"/docs/middlewares/http-response-serializer#configuration","content":"The middleware is configured by defining some serializers. { serializers: [ { regex: /^application\\/xml$/, serializer: ({ body }) => `<message>${body}</message>`, }, { regex: /^application\\/json$/, serializer: ({ body }) => JSON.stringify(body) }, { regex: /^text\\/plain$/, serializer: ({ body }) => body } ], default: 'application/json' } The default (optional) option is used if the request and handler don't specify what type is wanted. ","version":"Next","tagName":"h2"},{"title":"Serializer Functions​","type":1,"pageTitle":"http-response-serializer","url":"/docs/middlewares/http-response-serializer#serializer-functions","content":"When a matching serializer is found, the Content-Type header is set and the serializer function is run. The function is passed the entire response object, and should return either a string or an object. If a string is returned, the body attribute of the response is updated. If an object with a body attribute is returned, the entire response object is replaced. This is useful if you want to manipulate headers or add additional attributes in the Lambda response. ","version":"Next","tagName":"h2"},{"title":"Content Type Negotiation​","type":1,"pageTitle":"http-response-serializer","url":"/docs/middlewares/http-response-serializer#content-type-negotiation","content":"The header is not the only way the middleware decides which serializer to execute. The content type is determined in the following order: event.requiredContentType -- allows the handler to override everything elseThe Accept header via acceptevent.preferredContentType -- allows the handler to override the default, but lets the request ask firstdefault middleware configuration All options allow for multiple types to be specified in your order of preference, and the first matching serializer will be executed. When planning to use Accept, an external input, it is recommended to validate that it is an expected value. ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"http-response-serializer","url":"/docs/middlewares/http-response-serializer#sample-usage","content":"import middy from '@middy/core' import httpResponseSerializer from '@middy/http-response-serializer' const handler = middy((event, context) => { const body = 'Hello World' return { statusCode: 200, body } }) handler .use(httpResponseSerializer({ serializers: [ { regex: /^application\\/xml$/, serializer: ({ body }) => `<message>${body}</message>`, }, { regex: /^application\\/json$/, serializer: ({ body }) => JSON.stringify(body) }, { regex: /^text\\/plain$/, serializer: ({ body }) => body } ], defaultContentType: 'application/json' })) const event = { headers: { 'Accept': 'application/xml;q=0.9, text/x-dvi; q=0.8, text/x-c' } } handler(event, {}, (_, response) => { t.is(response.body,'<message>Hello World</message>') }) ","version":"Next","tagName":"h2"},{"title":"http-urlencode-path-parser","type":0,"sectionRef":"#","url":"/docs/middlewares/http-urlencode-path-parser","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"http-urlencode-path-parser","url":"/docs/middlewares/http-urlencode-path-parser#install","content":"To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/http-urlencode-path-parser ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"http-urlencode-path-parser","url":"/docs/middlewares/http-urlencode-path-parser#options","content":"None ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"http-urlencode-path-parser","url":"/docs/middlewares/http-urlencode-path-parser#sample-usage","content":"import middy from '@middy/core' import httpUrlEncodePathParser from '@middy/http-urlencode-path-parser' const handler = middy((event, context) => { return event.body // propagates the body as response }) handler.use(httpUrlEncodePathParser()) // When Lambda runs the handler with a sample event... const event = { pathParameters: { name: encodeURIComponent('Mîddy') } } handler(event, {}, (_, body) => { t.deepEqual(body, { name: 'Mîddy' }) }) ","version":"Next","tagName":"h2"},{"title":"http-urlencode-body-parser","type":0,"sectionRef":"#","url":"/docs/middlewares/http-urlencode-body-parser","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"http-urlencode-body-parser","url":"/docs/middlewares/http-urlencode-body-parser#install","content":"To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/http-urlencode-body-parser ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"http-urlencode-body-parser","url":"/docs/middlewares/http-urlencode-body-parser#options","content":"disableContentTypeError (boolean) (optional): Skip throwing 415 when Content-Type is invalid. Default: true, will default to false in next major version. ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"http-urlencode-body-parser","url":"/docs/middlewares/http-urlencode-body-parser#sample-usage","content":"import middy from '@middy/core' import httpHeaderNormalizer from '@middy/http-header-normalizer' import httpUrlEncodeBodyParser from '@middy/http-urlencode-body-parser' const handler = middy((event, context) => { return event.body // propagates the body as response }) handler.use(httpHeaderNormalizer()).use(httpUrlEncodeBodyParser()) // When Lambda runs the handler with a sample event... const event = { headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, body: 'frappucino=muffin&goat%5B%5D=scone&pond=moose' } handler(event, {}, (_, body) => { t.deepEqual(body, { frappucino: 'muffin', 'goat[]': 'scone', pond: 'moose' }) }) ","version":"Next","tagName":"h2"},{"title":"input-output-logger","type":0,"sectionRef":"#","url":"/docs/middlewares/input-output-logger","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"input-output-logger","url":"/docs/middlewares/input-output-logger#install","content":"To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/input-output-logger ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"input-output-logger","url":"/docs/middlewares/input-output-logger#options","content":"logger function (default console.log): logging function that accepts an objectawsContext boolean (default false): Include AWS Lambda context object to the loggeromitPaths string[] (default []): property accepts an array of paths that will be used to remove particular fields import the logged objects. This could serve as a simple way to redact sensitive data from logs (default []). Examples: name, user.name, users.[].namemask string: String to replace omitted values with. Example: ***omitted***replacer function: stringify replacer function ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"input-output-logger","url":"/docs/middlewares/input-output-logger#sample-usage","content":"import middy from '@middy/core' import inputOutputLogger from '@middy/input-output-logger' const handler = middy((event, context) => { const response = { statusCode: 200, headers: {}, body: JSON.stringify({ message: 'hello world' }) } return response }) handler.use(inputOutputLogger()) import middy from '@middy/core' import inputOutputLogger from '@middy/input-output-logger' import pino from 'pino' const logger = pino() const handler = middy((event, context) => { // ... return response }) handler.use( inputOutputLogger({ logger: (request) => { const child = logger.child(request.context) child.info(request.event ?? request.response) }, awsContext: true }) ) ","version":"Next","tagName":"h2"},{"title":"Official middlewares","type":0,"sectionRef":"#","url":"/docs/middlewares/intro","content":"","keywords":"","version":"Next"},{"title":"Misc​","type":1,"pageTitle":"Official middlewares","url":"/docs/middlewares/intro#misc","content":"cloudwatch-metrics: Hydrates lambda's context.metrics property with an instance of AWS MetricLoggerdo-not-wait-for-empty-event-loop: Sets callbackWaitsForEmptyEventLoop property to falseerror-logger: Logs errorsinput-output-logger: Logs request and responsewarmup: Used to pre-warm a lambda function ","version":"Next","tagName":"h2"},{"title":"Request Transformation​","type":1,"pageTitle":"Official middlewares","url":"/docs/middlewares/intro#request-transformation","content":"event-normalizer: Middleware for iterating through an AWS event records, parsing and normalizing nested events.http-content-negotiation: Parses Accept-* headers and provides utilities for content negotiation (charset, encoding, language and media type) for HTTP requestshttp-event-normalizer: Normalizes HTTP events by adding an empty object for queryStringParameters, multiValueQueryStringParameters or pathParameters if they are missing.http-header-normalizer: Normalizes HTTP header names to their canonical formathttp-json-body-parser: Automatically parses HTTP requests with JSON body and converts the body into an object. Also handles gracefully broken JSON if used in combination ofhttpErrorHandler.http-multipart-body-parser: Automatically parses HTTP requests with content type multipart/form-data and converts the body into an object.http-urlencode-body-parser: Automatically parses HTTP requests with URL encoded body (typically the result of a form submit).http-urlencode-path-parser: Automatically parses HTTP requests with URL encoded path.validator: Automatically validates incoming events and outgoing responses against custom schemas.ws-json-body-parser: Automatically parses WebSocket requests with JSON message and converts the message into an object. ","version":"Next","tagName":"h2"},{"title":"Response Transformation​","type":1,"pageTitle":"Official middlewares","url":"/docs/middlewares/intro#response-transformation","content":"http-content-encoding: Sets HTTP Content-Encoding header on response and compresses response bodyhttp-cors: Sets HTTP CORS headers on responsehttp-error-handler: Creates a proper HTTP response for errors that are created with the http-errors module and represents proper HTTP errors.http-security-headers: Applies best practice security headers to responses. It's a simplified port of HelmetJS.http-partial-response: Filter response objects attributes based on query string parameters.http-response-serializer: HTTP response serializer.sqs-partial-batch-failure: Handles partially failed SQS batches.ws-response: Forwards response to WebSocket endpoint. ","version":"Next","tagName":"h2"},{"title":"Fetch Data​","type":1,"pageTitle":"Official middlewares","url":"/docs/middlewares/intro#fetch-data","content":"appconfig: Fetch JSON configurations from AppConfig.dynamodb: Fetch configurations from DynamoDB.rds-signer: Fetches token for connecting to RDS with IAM users.s3: Fetch JSON configurations from S3.s3-object-response: Gets and write S3 object response.secrets-manager: Fetches parameters from AWS Secrets Manager.service-discovery: Fetches Service Discovery instances to be used when connecting to other AWS services.ssm: Fetches parameters from AWS Systems Manager Parameter Store.sts: Fetches credentials to assumes IAM roles for connection to other AWS services. ","version":"Next","tagName":"h2"},{"title":"rds-signer","type":0,"sectionRef":"#","url":"/docs/middlewares/rds-signer","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"rds-signer","url":"/docs/middlewares/rds-signer#install","content":"To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/rds-signer npm install --save-dev @aws-sdk/rds-signer ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"rds-signer","url":"/docs/middlewares/rds-signer#options","content":"AwsClient (object) (default Signer): Signer class constructor (i.e. that has been instrumented with AWS XRay). Must be from @aws-sdk/rds-signer.awsClientOptions (object) (optional): Options to pass to Signer class constructor.fetchData (object) (required): Mapping of internal key name to API request parameters.disablePrefetch (boolean) (default false): On cold start requests will trigger early if they can. Setting awsClientAssumeRole disables prefetch.cacheKey (string) (default rds-signer): Cache key for the fetched data responses. Must be unique across all middleware.cacheExpiry (number) (default -1): How long fetch data responses should be cached for. -1: cache forever, 0: never cache, n: cache for n ms.setToContext (boolean) (default false): Store role tokens to request.context. NOTES: Lambda is required to have IAM permission for rds-db:connect with a resource like arn:aws:rds-db:#{AWS::Region}:#{AWS::AccountId}:dbuser:${database_resource}/${iam_role} ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"rds-signer","url":"/docs/middlewares/rds-signer#sample-usage","content":"import middy from '@middy/core' import rdsSigner from '@middy/rds-signer' const handler = middy((event, context) => { const response = { statusCode: 200, headers: {}, body: JSON.stringify({ message: 'hello world' }) } return response }) handler.use( rdsSigner({ fetchData: { rdsToken: { region: 'ca-central-1', hostname: '***.rds.amazonaws.com', username: 'iam_role', database: 'postgres', port: 5432 } } }) ) ","version":"Next","tagName":"h2"},{"title":"Bundling​","type":1,"pageTitle":"rds-signer","url":"/docs/middlewares/rds-signer#bundling","content":"To exclude @aws-sdk add @aws-sdk/rds-signer to the exclude list. ","version":"Next","tagName":"h2"},{"title":"s3-object-response","type":0,"sectionRef":"#","url":"/docs/middlewares/s3-object-response","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"s3-object-response","url":"/docs/middlewares/s3-object-response#install","content":"To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/s3-object-response npm install --save-dev @aws-sdk/client-s3 ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"s3-object-response","url":"/docs/middlewares/s3-object-response#options","content":"bodyType (string) (required): How to pass in the s3 object through the handler. Can be stream or promise.AwsClient (object) (default S3Client): S3Client class constructor (i.e. that has been instrumented with AWS XRay). Must be from @aws-sdk/client-s3.awsClientOptions (object) (optional): Options to pass to S3Client class constructor.awsClientCapture (function) (optional): Enable XRay by passing captureAWSv3Client from aws-xray-sdk in.httpsCapture (function) (optional): Enable XRay by passing captureHTTPsGlobal from aws-xray-sdk in.disablePrefetch (boolean) (default false): On cold start requests will trigger early if they can. Setting awsClientAssumeRole disables prefetch. NOTES: The response from the handler must match the allowed parameters for S3.writeGetObjectResponse, excluding RequestRoute and RequestToken.Lambda is required to have IAM permission for s3-object-lambda:WriteGetObjectResponse ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"s3-object-response","url":"/docs/middlewares/s3-object-response#sample-usage","content":"","version":"Next","tagName":"h2"},{"title":"Stream​","type":1,"pageTitle":"s3-object-response","url":"/docs/middlewares/s3-object-response#stream","content":"import zlib from 'zlib' import middy from '@middy/core' import s3ObjectResponse from '@middy/s3-object-response' const handler = middy((event, context) => { const readStream = context.s3Object const transformStream = zlib.createBrotliCompress() return { Body: readStream.pipe(transformStream) } }) handler.use( s3ObjectResponse({ bodyType: 'stream' }) ) ","version":"Next","tagName":"h3"},{"title":"Promise​","type":1,"pageTitle":"s3-object-response","url":"/docs/middlewares/s3-object-response#promise","content":"import zlib from 'zlib' import middy from '@middy/core' import s3ObjectResponse from '@middy/s3-object-response' const handler = middy(async (event, context) => { let body = await context.s3Object // change body return { Body: JSON.stringify(body) } }) handler.use( s3ObjectResponse({ bodyType: 'promise' }) ) ","version":"Next","tagName":"h3"},{"title":"Bundling​","type":1,"pageTitle":"s3-object-response","url":"/docs/middlewares/s3-object-response#bundling","content":"To exclude @aws-sdk add @aws-sdk/client-s3 to the exclude list. ","version":"Next","tagName":"h2"},{"title":"secrets-manager","type":0,"sectionRef":"#","url":"/docs/middlewares/secrets-manager","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"secrets-manager","url":"/docs/middlewares/secrets-manager#install","content":"To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/secrets-manager npm install --save-dev @aws-sdk/client-secrets-manager ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"secrets-manager","url":"/docs/middlewares/secrets-manager#options","content":"AwsClient (object) (default SecretsManagerClient): SecretsManagerClient class constructor (i.e. that has been instrumented with AWS XRay). Must be from @aws-sdk/client-secrets-manager.awsClientOptions (object) (optional): Options to pass to SecretsManagerClient class constructor.awsClientAssumeRole (string) (optional): Internal key where secrets are stored. See @middy/sts on to set this.awsClientCapture (function) (optional): Enable XRay by passing captureAWSv3Client from aws-xray-sdk in.fetchData (object) (required): Mapping of internal key name to API request parameter SecretId.fetchRotationDate (boolean|object) (default false): Boolean to apply to all or mapping of internal key name to boolean. This indicates what secrets should fetch and cached based on NextRotationDate/LastRotationDate/LastChangedDate. cacheExpiry of -1 will use NextRotationDate, while any other value will be added to the LastRotationDate or LastChangedDate, whichever is more recent. If secrets have different rotation schedules, use multiple instances of this middleware.disablePrefetch (boolean) (default false): On cold start requests will trigger early if they can. Setting awsClientAssumeRole disables prefetch.cacheKey (string) (default secrets-manager): Cache key for the fetched data responses. Must be unique across all middleware.cacheExpiry (number) (default -1): How long fetch data responses should be cached for. -1: cache forever, 0: never cache, n: cache for n ms.setToContext (boolean) (default false): Store secrets to request.context. NOTES: Lambda is required to have IAM permission for secretsmanager:GetSecretValue. If using fetchRotationDate add secretsmanager:DescribeSecret in as well. ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"secrets-manager","url":"/docs/middlewares/secrets-manager#sample-usage","content":"import middy from '@middy/core' import secretsManager from '@middy/secrets-manager' const handler = middy((event, context) => { return {} }) handler.use( secretsManager({ fetchData: { apiToken: 'dev/api_token' }, awsClientOptions: { region: 'us-east-1' }, setToContext: true }) ) // Before running the function handler, the middleware will fetch from Secrets Manager handler(event, context, (_, response) => { // assuming the dev/api_token has two keys, 'Username' and 'Password' t.is(context.apiToken.Username, 'username') t.is(context.apiToken.Password, 'password') }) ","version":"Next","tagName":"h2"},{"title":"Bundling​","type":1,"pageTitle":"secrets-manager","url":"/docs/middlewares/secrets-manager#bundling","content":"To exclude @aws-sdk add @aws-sdk/client-secrets-manager to the exclude list. ","version":"Next","tagName":"h2"},{"title":"s3","type":0,"sectionRef":"#","url":"/docs/middlewares/s3","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"s3","url":"/docs/middlewares/s3#install","content":"To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/s3 npm install --save-dev @aws-sdk/client-s3 ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"s3","url":"/docs/middlewares/s3#options","content":"AwsClient (object) (default S3Client): S3Client class constructor (i.e. that has been instrumented with AWS XRay). Must be from @aws-sdk/client-appconfig.awsClientOptions (object) (default undefined): Options to pass to S3Client class constructor.awsClientAssumeRole (string) (default undefined): Internal key where secrets are stored. See @middy/sts on to set this.awsClientCapture (function) (default undefined): Enable XRay by passing captureAWSv3Client from aws-xray-sdk in.fetchData (object) (required): Mapping of internal key name to API request parameters.disablePrefetch (boolean) (default false): On cold start requests will trigger early if they can. Setting awsClientAssumeRole disables prefetch.cacheKey (string) (default s3): Cache key for the fetched data responses. Must be unique across all middleware.cacheExpiry (number) (default -1): How long fetch data responses should be cached for. -1: cache forever, 0: never cache, n: cache for n ms.setToContext (boolean) (default false): Store credentials to request.context. NOTES: Lambda is required to have IAM permission for s3:GetObjectIf the file is stored without ContentType, you can set it on the response using ResponseContentType as part of the input ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"s3","url":"/docs/middlewares/s3#sample-usage","content":"import middy from '@middy/core' import s3 from '@middy/s3' const handler = middy((event, context) => { console.log(context.config) const response = { statusCode: 200, headers: {}, body: JSON.stringify({ message: 'hello world' }) } return response }) handler.use( s3({ fetchData: { config: { Bucket: '...', Key: '...' } }, setToContext: true }) ) ","version":"Next","tagName":"h2"},{"title":"Bundling​","type":1,"pageTitle":"s3","url":"/docs/middlewares/s3#bundling","content":"To exclude @aws-sdk add @aws-sdk/client-s3 to the exclude list. ","version":"Next","tagName":"h2"},{"title":"service-discovery","type":0,"sectionRef":"#","url":"/docs/middlewares/service-discovery","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"service-discovery","url":"/docs/middlewares/service-discovery#install","content":"To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/service-discovery npm install --save-dev @aws-sdk/client-servicediscovery ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"service-discovery","url":"/docs/middlewares/service-discovery#options","content":"AwsClient (object) (default ServiceDiscoveryClient): ServiceDiscoveryClient class constructor (i.e. that has been instrumented with AWS XRay). Must be from @aws-sdk/client-servicediscovery.awsClientOptions (object) (default undefined): Options to pass to ServiceDiscoveryClient class constructor.awsClientAssumeRole (string) (default undefined): Internal key where secrets are stored. See @middy/sts on to set this.awsClientCapture (function) (default undefined): Enable XRay by passing captureAWSv3Client from aws-xray-sdk in.fetchData (object) (required): Mapping of internal key name to API request parameters.disablePrefetch (boolean) (default false): On cold start requests will trigger early if they can. Setting awsClientAssumeRole disables prefetch.cacheKey (string) (default sts): Cache key for the fetched data responses. Must be unique across all middleware.cacheExpiry (number) (default -1): How long fetch data responses should be cached for. -1: cache forever, 0: never cache, n: cache for n ms.setToContext (boolean) (default false): Store credentials to request.context. NOTES: Lambda is required to have IAM permission for servicediscovery:DiscoverInstances ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"service-discovery","url":"/docs/middlewares/service-discovery#sample-usage","content":"import middy from '@middy/core' import serviceDiscovery from '@middy/service-discovery' const handler = middy((event, context) => { const response = { statusCode: 200, headers: {}, body: JSON.stringify({ message: 'hello world' }) } return response }) handler.use( serviceDiscovery({ fetchData: { instances: { NamespaceName: '...', ServiceName: '...' } } }) ) ","version":"Next","tagName":"h2"},{"title":"Bundling​","type":1,"pageTitle":"service-discovery","url":"/docs/middlewares/service-discovery#bundling","content":"To exclude @aws-sdk add @aws-sdk/client-servicediscovery to the exclude list. ","version":"Next","tagName":"h2"},{"title":"sqs-partial-batch-failure","type":0,"sectionRef":"#","url":"/docs/middlewares/sqs-partial-batch-failure","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"sqs-partial-batch-failure","url":"/docs/middlewares/sqs-partial-batch-failure#install","content":"To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/sqs-partial-batch-failure # Required for types only npm install --save-dev @aws-sdk/client-sqs ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"sqs-partial-batch-failure","url":"/docs/middlewares/sqs-partial-batch-failure#options","content":"logger (function) (optional): A function that will be called when a record fails to be processed. Default: console.error ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"sqs-partial-batch-failure","url":"/docs/middlewares/sqs-partial-batch-failure#sample-usage","content":"import middy from '@middy/core' import sqsBatch from '@middy/sqs-partial-batch-failure' const lambdaHandler = (event, context) => { const recordPromises = event.Records.map(async (record, index) => { /* Custom message processing logic */ return record }) return Promise.allSettled(recordPromises) } export const handler = middy(lambdaHandler).use(sqsBatch()) ","version":"Next","tagName":"h2"},{"title":"Important​","type":1,"pageTitle":"sqs-partial-batch-failure","url":"/docs/middlewares/sqs-partial-batch-failure#important","content":"The value ReportBatchItemFailures must be added to your Lambda's FunctionResponseTypes in the EventSourceMapping. See Reporting batch item failures and Lambda EventSourceMapping When being used with @middy/validator, ensure errors are caught and handled properly to avoid infinite loops. ","version":"Next","tagName":"h2"},{"title":"sts","type":0,"sectionRef":"#","url":"/docs/middlewares/sts","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"sts","url":"/docs/middlewares/sts#install","content":"To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/sts npm install --save-dev @aws-sdk/client-sts ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"sts","url":"/docs/middlewares/sts#options","content":"AwsClient (object) (default STSClient): STSClient class constructor (i.e. that has been instrumented with AWS XRay). Must be from @aws-sdk/client-sts.awsClientOptions (object) (optional): Options to pass to STSClient class constructor.awsClientCapture (function) (optional): Enable XRay by passing captureAWSv3Client from aws-xray-sdk in.fetchData (object) (required): Mapping of internal key name to API request parameters.disablePrefetch (boolean) (default false): On cold start requests will trigger early if they can. Setting awsClientAssumeRole disables prefetch.cacheKey (string) (default sts): Cache key for the fetched data responses. Must be unique across all middleware.cacheExpiry (number) (default -1): How long fetch data responses should be cached for. -1: cache forever, 0: never cache, n: cache for n ms.setToContext (boolean) (default false): Store credentials to request.context. NOTES: Lambda is required to have IAM permission for sts:AssumeRolesetToContext are included for legacy support and should be avoided for performance and security reasons. See main documentation for best practices. ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"sts","url":"/docs/middlewares/sts#sample-usage","content":"import middy from '@middy/core' import sts from '@middy/sts' const handler = middy((event, context) => { const response = { statusCode: 200, headers: {}, body: JSON.stringify({ message: 'hello world' }) } return response }) handler.use( sts({ fetchData: { assumeRole: { RoleArn: '...', RoleSessionName: '' // optional } } }) ) ","version":"Next","tagName":"h2"},{"title":"Bundling​","type":1,"pageTitle":"sts","url":"/docs/middlewares/sts#bundling","content":"To exclude @aws-sdk add @aws-sdk/client-sts to the exclude list. ","version":"Next","tagName":"h2"},{"title":"Third-party middlewares","type":0,"sectionRef":"#","url":"/docs/middlewares/third-party","content":"","keywords":"","version":"Next"},{"title":"Version 2.x - 4.x​","type":1,"pageTitle":"Third-party middlewares","url":"/docs/middlewares/third-party#version-2x---4x","content":"dazn-lambda-powertools: A collection of middlewares, AWS clients and helper libraries that make working with lambda easier.middy-ajv: AJV validator optimized for performancemiddy-console-logger: Middleware for filtering logs printed over console logging methods. If the level of the console logging method is equal or bigger than configured level, the log is printed, Otherwise, it is ignored.middy-event-loop-tracer: Middleware for dumping active tasks with their stacktraces in the event queue just before AWS Lambda function timeouts. So you can understand what was going on in the function when timeout happens.middy-idempotent: idempotency middleware for middymiddy-invocation: Middleware for accessing current AWS Lambda invocation event and context from anywhere without need to passing event and context as arguments through your code.- middy-lesslog: Middleware for lesslog, a teeny-tiny and severless-ready logging utilitymiddy-jsonapi: JSONAPI middleware for middymiddy-lesslog: Middleware for lesslog, a teeny-tiny and severless-ready logging utilitymiddy-profiler: Middleware for profiling CPU on AWS Lambda during invocation and shows what methods/modules consume what percent of CPU timemiddy-rds: Creates RDS connection using knex or pgmiddy-recaptcha: reCAPTCHA validation middlewaremiddy-sparks-joi: Joi validator@iress/middy-http-path-router: Routes AWS API Gateway events to handlers based on static and dynamic paths ","version":"Next","tagName":"h2"},{"title":"Version 2.x - 3.x​","type":1,"pageTitle":"Third-party middlewares","url":"/docs/middlewares/third-party#version-2x---3x","content":"aws-lambda-powertools-typescript: A suite of utilities for AWS Lambda Functions that makes structured logging, creating custom metrics asynchronously and tracing with AWS X-Ray easier logger: Structured logging made easier, and a middleware to enrich log items with key details of the Lambda contextmetrics: Custom Metrics created asynchronously via CloudWatch Embedded Metric Format (EMF)parameters: The Parameters utility provides high-level functions to retrieve one or multiple parameter values from AWS Systems Manager Parameter Store, AWS Secrets Manager, AWS AppConfig, Amazon DynamoDB, or your own parameter store.tracer: Utilities to trace Lambda function handlers, and both synchronous and asynchronous functions ","version":"Next","tagName":"h2"},{"title":"Version 1.x​","type":1,"pageTitle":"Third-party middlewares","url":"/docs/middlewares/third-party#version-1x","content":"middy-redis: Redis connection middlewaremiddy-extractor: Extracts data from events using expressions@keboola/middy-error-logger: middleware that catches thrown exceptions and rejected promises and logs them comprehensibly to the console@keboola/middy-event-validator: Joi powered event validation middlewaremiddy-reroute: provides complex redirect, rewrite and proxying capabilities by simply placing a rules file into your S3 bucketmiddytohof: Convert Middy middleware plugins to higher-order functions returning lambda handlerswrap-ware: A middleware wrapper which works with promises / asyncmiddy-middleware-warmup: A middy plugin to help keep your Lambdas warm during Winter@sharecover-co/middy-aws-xray-tracing: AWS X-Ray Tracing Middleware@sharecover-co/middy-http-response-serializer: This middleware serializes the response to JSON and wraps it in a 200 HTTP response@seedrs/middyjs-middleware: Collection of useful middlewaresmiddy-autoproxyresponse: A middleware that lets you return simple JavaScript objects from Lambda function handlers and converts them into LAMBDA_PROXY responsesjwt-auth: JSON web token authorization middleware based on express-jwtmiddy-mongoose-connector: MongoDB connection middleware for mongoose.js@ematipico/middy-request-response: a middleware that creates a pair of request/response objects@marcosantonocito/middy-cognito-permission: Authorization and roles permission management for the Middy framework that works with Amazon Cognitomiddy-env: Fetch, validate and type cast environment variablessqs-json-body-parser: Parse the SQS body to JSONmiddy-lesslog: Middleware for lesslog, a teeny-tiny and severless-ready logging utility ","version":"Next","tagName":"h2"},{"title":"ssm","type":0,"sectionRef":"#","url":"/docs/middlewares/ssm","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"ssm","url":"/docs/middlewares/ssm#install","content":"To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/ssm npm install --save-dev @aws-sdk/client-ssm ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"ssm","url":"/docs/middlewares/ssm#options","content":"AwsClient (object) (default SSMClient): SSMClient class constructor (i.e. that has been instrumented with AWS X-Ray). Must be from @aws-sdk/client-ssm.awsClientOptions (object) (optional): Options to pass to SSMClient class constructor.awsClientAssumeRole (string) (optional): Internal key where role tokens are stored. See @middy/sts on to set this.awsClientCapture (function) (optional): Enable AWS X-Ray by passing captureAWSv3Client from aws-xray-sdk in.fetchData (object) (required): Mapping of internal key name to API request parameter Names/Path. SecureString are automatically decrypted.disablePrefetch (boolean) (default false): On cold start requests will trigger early if they can. Setting awsClientAssumeRole disables prefetch.cacheKey (string) (default ssm): Cache key for the fetched data responses. Must be unique across all middleware.cacheExpiry (number) (default -1): How long fetch data responses should be cached for. -1: cache forever, 0: never cache, n: cache for n ms.setToContext (boolean) (default false): Store role tokens to request.context. NOTES: Lambda is required to have IAM permission for ssm:GetParameters and/or ssm:GetParametersByPath depending on what you're requesting, along with kms:Decrypt.SSM has throughput limitations. Switching to Advanced Parameter type or increasing maxRetries and retryDelayOptions.base in awsClientOptions may be required. ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"ssm","url":"/docs/middlewares/ssm#sample-usage","content":"import middy from '@middy/core' import ssm from '@middy/ssm' const handler = middy((event, context) => { return {} }) let globalDefaults = {} handler .use( ssm({ fetchData: { accessToken: '/dev/service_name/access_token', // single value dbParams: '/dev/service_name/database/', // object of values, key for each path defaults: '/dev/defaults' }, setToContext: true }) ) .before((request) => { globalDefaults = request.context.defaults.global }) import middy from '@middy/core' import { getInternal } from '@middy/util' import ssm from '@middy/ssm' const handler = middy((event, context) => { return {} }) let globalDefaults = {} handler .use( ssm({ fetchData: { defaults: '/dev/defaults' }, cacheKey: 'ssm-defaults' }) ) .use( ssm({ fetchData: { accessToken: '/dev/service_name/access_token', // single value dbParams: '/dev/service_name/database/' // object of values, key for each path }, cacheExpiry: 15 * 60 * 1000, cacheKey: 'ssm-secrets' }) ) // ... other middleware that fetch .before(async (request) => { const data = await getInternal( ['accessToken', 'dbParams', 'defaults'], request ) Object.assign(request.context, data) }) ","version":"Next","tagName":"h2"},{"title":"Bundling​","type":1,"pageTitle":"ssm","url":"/docs/middlewares/ssm#bundling","content":"To exclude @aws-sdk add @aws-sdk/client-ssm to the exclude list. ","version":"Next","tagName":"h2"},{"title":"warmup","type":0,"sectionRef":"#","url":"/docs/middlewares/warmup","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"warmup","url":"/docs/middlewares/warmup#install","content":"To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/warmup ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"warmup","url":"/docs/middlewares/warmup#options","content":"isWarmingUp: a function that accepts the event object as a parameter and returns true if the current event is a warmup event and false if it's a regular execution. The default function will check if the event object has a source property set to serverless-plugin-warmup. ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"warmup","url":"/docs/middlewares/warmup#sample-usage","content":"const middy = require('@middy/core') const warmup = require('@middy/warmup') const isWarmingUp = (event) => event.isWarmingUp === true const originalHandler = (event, context, cb) => { /* ... */ } const handler = middy(originalHandler) .use(warmup({ isWarmingUp })) ","version":"Next","tagName":"h2"},{"title":"ws-json-body-parser","type":0,"sectionRef":"#","url":"/docs/middlewares/ws-json-body-parser","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"ws-json-body-parser","url":"/docs/middlewares/ws-json-body-parser#install","content":"To install this middleware you can use NPM: npm install --save @middy/ws-json-body-parser ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"ws-json-body-parser","url":"/docs/middlewares/ws-json-body-parser#options","content":"reviver (function) (default undefined): A reviver parameter may be passed which will be used JSON.parseing the body. ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"ws-json-body-parser","url":"/docs/middlewares/ws-json-body-parser#sample-usage","content":"import middy from '@middy/core' import wsJsonBodyParserMiddleware from '@middy/ws-json-body-parser' import wsResponseMiddleware from '@middy/ws-response' export const handler = middy() .use(wsJsonBodyParserMiddleware()) .use(wsResponseMiddleware()) .handler((event) => { return event.body.message }) ","version":"Next","tagName":"h2"},{"title":"ws-response","type":0,"sectionRef":"#","url":"/docs/middlewares/ws-response","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"ws-response","url":"/docs/middlewares/ws-response#install","content":"To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/ws-response npm install --save-dev @aws-sdk/client-apigatewaymanagementapi ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"ws-response","url":"/docs/middlewares/ws-response#options","content":"AwsClient (object) (default ApiGatewayManagementApiClient): ApiGatewayManagementApi class constructor (i.e. that has been instrumented with AWS XRay). Must be from @aws-sdk/client-apigatewaymanagementapi.awsClientOptions (object) (default undefined): Options to pass to ApiGatewayManagementApiClient class constructor.awsClientAssumeRole (string) (default undefined): Internal key where secrets are stored. See @middy/sts on to set this.awsClientCapture (function) (default undefined): Enable XRay by passing captureAWSv3Client from aws-xray-sdk in.disablePrefetch (boolean) (default false): On cold start requests will trigger early if they can. Setting awsClientAssumeRole disables prefetch. NOTES: Lambda is required to have IAM permission for execute-api:ManageConnectionsIf awsClientOptions.endpoint is not set it will be set using event.requestContext.{domainName,stage}If response does not contain ConnectId, it will be set from event.requestContext.connectionId ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"ws-response","url":"/docs/middlewares/ws-response#sample-usage","content":"","version":"Next","tagName":"h2"},{"title":"API Gateway​","type":1,"pageTitle":"ws-response","url":"/docs/middlewares/ws-response#api-gateway","content":"import middy from '@middy/core' import wsResponse from '@middy/ws-response' export const handler = middy((event, context) => { return 'message' }) handler.use(wsResponse()) ","version":"Next","tagName":"h3"},{"title":"General​","type":1,"pageTitle":"ws-response","url":"/docs/middlewares/ws-response#general","content":"import middy from '@middy/core' import wsResponse from '@middy/ws-response' export const handler = middy((event, context) => { return { ConnectionId: '...', Data: 'message' } }) handler.use( wsResponse({ awsClientOptions: { endpoint: '...' } }) ) ","version":"Next","tagName":"h3"},{"title":"Bundling​","type":1,"pageTitle":"ws-response","url":"/docs/middlewares/ws-response#bundling","content":"To exclude @aws-sdk add @aws-sdk/client-apigatewaymanagementapi to the exclude list. ","version":"Next","tagName":"h2"},{"title":"http-router","type":0,"sectionRef":"#","url":"/docs/routers/http-router","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"http-router","url":"/docs/routers/http-router#install","content":"To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/http-router ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"http-router","url":"/docs/routers/http-router#options","content":"routes (array[{method, path, handler}]) (required): Array of route objects. method (string) (required): One of GET, POST, PUT, PATCH, DELETE, OPTIONS and ANY that will match to any method passed inpath (string) (required): AWS formatted path starting with /. Variable: /{id}/, Wildcard: /{proxy+}handler (function) (required): Any handler(event, context) function NOTES: When using API Gateway it may be required to prefix routes[].path with /{stage} depending on your use case.Errors should be handled as part of the router middleware stack or the lambdaHandler middleware stack. Handled errors in the later will trigger the after middleware stack of the former.Shared middlewares, connected to the router middleware stack, can only be run before the lambdaHandler middleware stack.pathParameters will automatically be set if not already set ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"http-router","url":"/docs/routers/http-router#sample-usage","content":"import middy from '@middy/core' import httpRouterHandler from '@middy/http-router' import validatorMiddleware from '@middy/validator' const getHandler = middy() .use(validatorMiddleware({eventSchema: {...} })) .handler((event, context) => { return { statusCode: 200, body: '{...}' } }) const postHandler = middy() .use(validatorMiddleware({eventSchema: {...} })) .handler((event, context) => { return { statusCode: 200, body: '{...}' } }) const routes = [ { method: 'GET', path: '/user/{id}', handler: getHandler }, { method: 'POST', path: '/user', handler: postHandler } ] export const handler = middy() .use(httpHeaderNormalizer()) .handler(httpRouterHandler(routes)) ","version":"Next","tagName":"h2"},{"title":"ws-router","type":0,"sectionRef":"#","url":"/docs/routers/ws-router","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"ws-router","url":"/docs/routers/ws-router#install","content":"To install this middleware you can use NPM: npm install --save @middy/ws-router ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"ws-router","url":"/docs/routers/ws-router#options","content":"routes (array[{routeKey, handler}]) (required): Array of route objects. routeKey (string) (required): AWS formatted route key. ie $connect, $disconnect, $defaulthandler (function) (required): Any handler(event, context, {signal}) function NOTES: Errors should be handled as part of the router middleware stack or the lambdaHandler middleware stack. Handled errors in the later will trigger the after middleware stack of the former.Shared middlewares, connected to the router middleware stack, can only be run before the lambdaHandler middleware stack. ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"ws-router","url":"/docs/routers/ws-router#sample-usage","content":"import middy from '@middy/core' import wsRouterHandler from '@middy/ws-router' import wsResponseMiddleware from '@middy/ws-response' import validatorMiddleware from '@middy/validator' const connectHandler = middy() .use(validatorMiddleware({eventSchema: {...} })) .handler((event, context) => { return 'connected' }) const disconnectHandler = middy() .use(validatorMiddleware({eventSchema: {...} })) .handler((event, context) => { return 'disconnected' }) export const handler = middy() .use(wsResponseMiddleware()) .handler(wsRouterHandler([ { routeKey: '$connect', handler: connectHandler }, { routeKey: '$disconnect', handler: disconnectHandler } ])) ","version":"Next","tagName":"h2"},{"title":"Upgrade 0.x -> 1.x","type":0,"sectionRef":"#","url":"/docs/upgrade/0-1","content":"","keywords":"","version":"Next"},{"title":"Independent packages structure​","type":1,"pageTitle":"Upgrade 0.x -> 1.x","url":"/docs/upgrade/0-1#independent-packages-structure","content":"Version 1.x of Middy features decoupled independent packages published on npm under the @middy namespace. The core middleware engine has been moved to @middy/core and all the other middlewares are moved into their own packages as well. This allows to only install the features that are needed and to keep your Lambda dependencies small. See the list below to check which packages you need based on the middlewares you use: Core middleware functionality -> @middy/corecache -> @middy/cachecors -> @middy/http-corsdoNotWaitForEmptyEventLoop -> @middy/do-not-wait-for-empty-event-loophttpContentNegotiation -> @middy/http-content-negotiationhttpErrorHandler -> @middy/http-error-handlerhttpEventNormalizer -> @middy/http-event-normalizerhttpHeaderNormalizer -> @middy/http-header-normalizerhttpMultipartBodyParser -> @middy/http-json-body-parserhttpPartialResponse -> @middy/http-partial-responsejsonBodyParser -> @middy/http-json-body-parsers3KeyNormalizer -> @middy/s3-key-normalizersecretsManager -> @middy/secrets-managerssm -> @middy/ssmvalidator -> @middy/validatorurlEncodeBodyParser -> @middy/http-urlencode-body-parserwarmup -> @middy/warmup ","version":"Next","tagName":"h2"},{"title":"Header normalization in http-header-normalizer​","type":1,"pageTitle":"Upgrade 0.x -> 1.x","url":"/docs/upgrade/0-1#header-normalization-in-http-header-normalizer","content":"In Middy 0.x the httpHeaderNormalizer middleware normalizes HTTP header names into their own canonical format, for instance Sec-WebSocket-Key (notice the casing). In Middy 1.x this behavior has been changed to provide header names in lowercase format (e.g. sec-webSocket-key). This new behavior is more consistent with what Node.js core http package does and what other famous http frameworks like Express or Fastify do, so this is considered a more intuitive approach. When updating to Middy 1.x, make sure you double check all your references to HTTP headers and switch to the lowercase version to read them. All the middy core modules have been already updated to support the new format, so you should worry only about your userland code. ","version":"Next","tagName":"h2"},{"title":"Node.js 10 and 12 now supported / Node.js 6 and 8 now dropped​","type":1,"pageTitle":"Upgrade 0.x -> 1.x","url":"/docs/upgrade/0-1#nodejs-10-and-12-now-supported--nodejs-6-and-8-now-dropped","content":"Version 1.x of Middy no longer supports Node.js versions 6.x and 8.x as these versions have been dropped by the AWS Lambda runtime itself and not supported anymore by the Node.js community. You are highly encouraged to move to Node.js 12 or 10, which are the new supported versions in Middy 1.x. ","version":"Next","tagName":"h2"},{"title":"validator","type":0,"sectionRef":"#","url":"/docs/middlewares/validator","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"validator","url":"/docs/middlewares/validator#install","content":"To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/validator npm install --save-dev ajv-cmd # Optional: for pre-transpiling ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"validator","url":"/docs/middlewares/validator#options","content":"eventSchema (function) (default undefined): The compiled ajv validator that will be used to validate the input (request.event) of the Lambda handler.contextSchema (function) (default undefined): The compiled ajv validator that will be used to validate the input (request.context) of the Lambda handler. Has additional support for typeof keyword to allow validation of "typeof":"function".responseSchema (function) (default undefined): The compiled ajv validator that will be used to validate the output (request.response) of the Lambda handler.i18nEnabled (boolean) (default true): Option to disable i18n default package.defaultLanguage (string) (default en): When language not found, what language to fallback to.languages (object) (default: {}): Localization overrides NOTES: At least one of eventSchema or responseSchema is required.If you'd like to have the error details as part of the response, it will need to be handled separately. You can access them from request.error.cause, the original response can be found at request.error.response.Important Transpiling schemas & locales on the fly will cause a 50-150ms performance hit during cold start for simple JSON Schemas. Precompiling is highly recommended. ","version":"Next","tagName":"h2"},{"title":"transpileSchema​","type":1,"pageTitle":"validator","url":"/docs/middlewares/validator#transpileschema","content":"Transpile JSON-Schema in to JavaScript. Default ajv plugins used: ajv-i18n, ajv-formats, ajv-formats-draft2019, ajv-keywords, ajv-errors. schema (object) (required): JSON-Schema objectajvOptions (object) (default undefined): Options to pass to ajvclass constructor. Defaults are { strict: true, coerceTypes: 'array', allErrors: true, useDefaults: 'empty', messages: true }. ","version":"Next","tagName":"h2"},{"title":"transpileLocale​","type":1,"pageTitle":"validator","url":"/docs/middlewares/validator#transpilelocale","content":"Transpile Fluent (.ftl) localization file into ajv compatible format. Allows the overriding of the default messages and adds support for multi-language errrorMessages. ftl (string) (required): Contents of an ftl file to be transpiled. ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"validator","url":"/docs/middlewares/validator#sample-usage","content":"Example for event validation: import middy from '@middy/core' import validator from '@middy/validator' import { transpileSchema } from '@middy/validator/transpile' const handler = middy((event, context) => { return {} }) const schema = { type: 'object', required: ['body', 'foo'], properties: { // this will pass validation body: { type: 'string' }, // this won't as it won't be in the event foo: { type: 'string' } } } handler.use( validator({ eventSchema: transpileSchema(schema) }) ) // invokes the handler, note that property foo is missing const event = { body: JSON.stringify({ something: 'somethingelse' }) } handler(event, {}, (err, res) => { t.is(err.message, 'Event object failed validation') }) Example for response validation: import middy from '@middy/core' import validator from '@middy/validator' import { transpileSchema } from '@middy/validator/transpile' const handler = middy((event, context) => { return {} }) const responseSchema = transpileSchema({ type: 'object', required: ['body', 'statusCode'], properties: { body: { type: 'object' }, statusCode: { type: 'number' } } }) handler.use(validator({ responseSchema })) handler({}, {}, (err, response) => { t.not(err, null) t.is(err.message, 'Response object failed validation') expect(response).not.toBe(null) // it doesn't destroy the response so it can be used by other middlewares }) Example for body validation: import middy from '@middy/core' import httpJsonBodyParser from '@middy/http-json-body-parser' import validator from '@middy/validator' import { transpileSchema } from '@middy/validator/transpile' const handler = middy((event, context) => { return {} }) const schema = { type: 'object', required: ['body'], properties: { body: { type: 'object', required: ['name', 'email'], properties: { name: { type: 'string' }, email: { type: 'string', format: 'email' } // schema options https://ajv.js.org/json-schema.html#json-data-type } } } } // to validate the body we need to parse it first handler.use(httpJsonBodyParser()).use( validator({ eventSchema: transpileSchema(schema) }) ) ","version":"Next","tagName":"h2"},{"title":"Pre-transpiling example (recommended)​","type":1,"pageTitle":"validator","url":"/docs/middlewares/validator#pre-transpiling-example-recommended","content":"Run a build script to before running tests & deployment. #!/usr/bin/env bash # This is an example, should be customize to meet ones needs # Powered by `ajv-cmd` # $ ajv --help bundle () { ajv validate ${1} --valid \\ --strict true --coerce-types array --all-errors true --use-defaults empty ajv transpile ${1} \\ --strict true --coerce-types array --all-errors true --use-defaults empty \\ -o ${1%.json}.js } for file in handlers/*/schema.*.json; do bundle $file done locale () { LOCALE=$(basename ${1%.ftl}) ajv ftl ${1} --locale ${LOCALE} -o ${1%.ftl}.js } for file in handlers/*/*.ftl; do locale $file done import middy from '@middy/core' import validator from '@middy/validator' import eventSchema from './schema.event.js' import en from './en.js' import fr from './fr.js' export const handler = middy() .use( validator({ eventSchema, languages: { en, fr } }) ) .handler((event, context) => { return {} }) ","version":"Next","tagName":"h2"},{"title":"Transpile during cold-start​","type":1,"pageTitle":"validator","url":"/docs/middlewares/validator#transpile-during-cold-start","content":"import { readFile } from 'node:fs/promises' import middy from '@middy/core' import validator from '@middy/validator' import { transpileSchema, transpileLocale } from '@middy/validator/transpile' import eventSchema from './schema.event.json' const en = transpileLocale(await readFile('./en.ftl')) const fr = transpileLocale(await readFile('./fr.ftl')) export const handler = middy() .use( validator({ eventSchema: transpileSchema(eventSchema), languages: { en, fr } }) ) .handler((event, context) => { return {} }) ","version":"Next","tagName":"h2"},{"title":"Transpile during cold-start with default messages​","type":1,"pageTitle":"validator","url":"/docs/middlewares/validator#transpile-during-cold-start-with-default-messages","content":"import { readFile } from 'node:fs/promises' import middy from '@middy/core' import validator from '@middy/validator' import { transpileSchema, transpileLocale } from '@middy/validator/transpile' import { en, fr } from 'ajv-ftl-i18n' // `ajv-i18n` can also be used import eventSchema from './schema.event.json' export const handler = middy() .use( validator({ eventSchema: transpileSchema(eventSchema), languages: { en, fr } }) ) .handler((event, context) => { return {} }) ","version":"Next","tagName":"h2"},{"title":"Upgrade 1.x -> 2.x","type":0,"sectionRef":"#","url":"/docs/upgrade/1-2","content":"","keywords":"","version":"Next"},{"title":"Core​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#core","content":"In handler callback(err, response) have been removed for async/await support return response to trigger after middleware stackthrow new Error(...) to trigger onError middleware stack In middleware next(err) has been removed for async/await support throw new Error(...) to trigger onError middleware stackreturn response to short circuit any middleware stack and respond. v1.x currently throws an error when something is returned ","version":"Next","tagName":"h2"},{"title":"Middleware​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#middleware","content":"","version":"Next","tagName":"h2"},{"title":"cache​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#cache","content":"Deprecated. Too generic and had low usage. However, you can use the following if needed: const { createHash } = require('crypto') module.exports = (opts) => { const storage = {} const defaults = { calculateCacheId: async (event) => createHash('md5').update(JSON.stringify(event)).digest('hex'), getValue: async (key) => storage[key], setValue: async (key, value) => { storage[key] = value } } const options = { ...defaults, ...opts } let currentCacheKey const cacheMiddlewareBefore = async (request) => { const cacheKey = await options.calculateCacheId(request.event) const response = await options.getValue(cacheKey) if (response) { return response } request.internal.cacheKey = cacheKey } const cacheMiddlewareAfter = async (request) => { await options.setValue(request.internal.cacheKey, request.response) } return { before: cacheMiddlewareBefore, after: cacheMiddlewareAfter } } ","version":"Next","tagName":"h3"},{"title":"db-manager​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#db-manager","content":"Deprecated. Too generic and had low usage. You can check out middy-rds as a possible alternative or example on building your own replacement. ","version":"Next","tagName":"h3"},{"title":"do-not-wait-for-empty-event-loop​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#do-not-wait-for-empty-event-loop","content":"No change ","version":"Next","tagName":"h3"},{"title":"function-shield​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#function-shield","content":"Deprecated. Only supported up to Node v10. ","version":"Next","tagName":"h3"},{"title":"http-content-negotiation​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#http-content-negotiation","content":"No change ","version":"Next","tagName":"h3"},{"title":"http-cors​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#http-cors","content":"Added new options to support more headers methodsexposeHeadersrequestHeadersrequestMethods ","version":"Next","tagName":"h3"},{"title":"http-error-handler​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#http-error-handler","content":"Added in support to honour httpError.expose. Errors with statusCode >= 500 are no longer applied to response by default. Added new option to catch any non-http and statusCode >= 500 errors fallbackMessage ","version":"Next","tagName":"h3"},{"title":"http-event-normalizer​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#http-event-normalizer","content":"No change ","version":"Next","tagName":"h3"},{"title":"http-header-normalizer​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#http-header-normalizer","content":"No change ","version":"Next","tagName":"h3"},{"title":"http-json-body-parser​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#http-json-body-parser","content":"No change ","version":"Next","tagName":"h3"},{"title":"http-multipart-body-parser​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#http-multipart-body-parser","content":"No change ","version":"Next","tagName":"h3"},{"title":"http-partial-response​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#http-partial-response","content":"No change ","version":"Next","tagName":"h3"},{"title":"http-response-serializer​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#http-response-serializer","content":"No change ","version":"Next","tagName":"h3"},{"title":"http-security-headers​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#http-security-headers","content":"No longer adds statusCode:500 when there is no response. ","version":"Next","tagName":"h3"},{"title":"http-urlencode-body-parser​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#http-urlencode-body-parser","content":"Remove extended option. Only uses qs as the parser, formally enabled by options {extended: true}. ","version":"Next","tagName":"h3"},{"title":"http-urlencode-path-parser​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#http-urlencode-path-parser","content":"No change ","version":"Next","tagName":"h3"},{"title":"input-output-logger​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#input-output-logger","content":"Now additionally logs response from the onError middleware stackSupport for omiting within nested arraysAdd in support for replacer to be passed into JSON.stringify() ","version":"Next","tagName":"h3"},{"title":"rds-signer​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#rds-signer","content":"New middleware to fetch RDS credential used when connecting with IAM roles. This was built into db-manager. ","version":"Next","tagName":"h3"},{"title":"s3-key-normalizer​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#s3-key-normalizer","content":"No change ","version":"Next","tagName":"h3"},{"title":"s3-object-response​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#s3-object-response","content":"New middleware to fetch and respond to S3 Object Get request event. ","version":"Next","tagName":"h3"},{"title":"secrets-manager​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#secrets-manager","content":"Refactored, see documentation ","version":"Next","tagName":"h3"},{"title":"sqs-json-body-parser​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#sqs-json-body-parser","content":"No change ","version":"Next","tagName":"h3"},{"title":"sqs-partial-batch-failure​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#sqs-partial-batch-failure","content":"Replaced option sqs with AwsClient and added in more options for control. ","version":"Next","tagName":"h3"},{"title":"ssm​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#ssm","content":"Refactored, see documentation ","version":"Next","tagName":"h3"},{"title":"sts​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#sts","content":"New middleware to fetch assume role credentials. ","version":"Next","tagName":"h3"},{"title":"validator​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#validator","content":"Upgraded ajv and it's plugins to support JSON Schema Draft 2020-12 specification. Defaults were change because of this. Plugin ajv-keywords removed from being included by default because it's quite a large package and usually only one keyword is used.Plugin ajv-errors removed from included by default because it conflicts with ajv-i18n when dealing with custom messages for multiple languages ","version":"Next","tagName":"h3"},{"title":"warmup​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#warmup","content":"Deprecated. This was a work round for a missing feature in AWS Lambda. AWS added in the ability to use provisioned concurrencyon 2019-12-03, removing the need for this work around. However, you can use the following if needed: middy(lambdaHandler) .before((request) => { if (request.event.source === 'serverless-plugin-warmup') { console.log('Exiting early via warmup Middleware') return 'warmup' } }) ","version":"Next","tagName":"h3"},{"title":"Upgrade 2.x -> 3.x","type":0,"sectionRef":"#","url":"/docs/upgrade/2-3","content":"","keywords":"","version":"Next"},{"title":"Notable changes​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#notable-changes","content":"New WebSocket middlewaresHTTP & WebSocket Routers!Better error handlingTimeout error handlingErrors now use { cause } for better context ","version":"Next","tagName":"h2"},{"title":"Core​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#core","content":"onError middleware stack order reversed to match after [Breaking Change] If you only use @middy/* middlewares no change should be requiredThis change has trickle down effects on middlewares with onError (see below for details)If you're handling errors yourself here are some things to review: Attach near the end so it is triggered first (likely already done)Remove return response, this will short circuit the response and block later middleware from modifying the response lambdaHandler now passes {signal} from AbortController to allow for ending lambda early to handle timeout errorsplugin argument now supports: internal: Allow the use of new Proxy() for smarter triggering in advanced use cases.timeoutEarlyInMillis: When before lambda timeout to trigger early exit. Default 5timeoutEarlyResponse: Function to throw a custom error or return a pre-set value. Default () => { throw new Error('Timeout') } Added .handler() method to allow easier understanding of the execution cycleDeprecate applyMiddleware() and __middlewares [Breaking Change] ","version":"Next","tagName":"h2"},{"title":"Util​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#util","content":"getInternal error now includes cause set to an array of ErrorsCatch when X-Ray is applied outside of handler invocation scopenormalizeHttpResponse now takes request and mutates response [Breaking Change]getCache will return {} instead of undefined when not found [Breaking Change] ","version":"Next","tagName":"h2"},{"title":"Middleware​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#middleware","content":"","version":"Next","tagName":"h2"},{"title":"cloudwatch-metrics​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#cloudwatch-metrics","content":"No change ","version":"Next","tagName":"h3"},{"title":"do-not-wait-for-empty-event-loop​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#do-not-wait-for-empty-event-loop","content":"No change ","version":"Next","tagName":"h3"},{"title":"error-logger​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#error-logger","content":"No change ","version":"Next","tagName":"h3"},{"title":"event-normalizer​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#event-normalizer","content":"Add support for all missing AWS eventsRefactored for performance improvements ","version":"Next","tagName":"h3"},{"title":"http-content-encoding​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#http-content-encoding","content":"[New] Applies brotli, gzip, ands deflate compression to response body ","version":"Next","tagName":"h3"},{"title":"http-content-negotiation​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#http-content-negotiation","content":"Add in defaultToFirstLanguage to allow fallback to a safe language to use ","version":"Next","tagName":"h3"},{"title":"http-cors​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#http-cors","content":"onError will not modify response unless error has been handledSmall refactor for performance improvements ","version":"Next","tagName":"h3"},{"title":"http-error-handler​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#http-error-handler","content":"No longer returns the response to short circuit the middleware stack to allow for easier use now that onError is called in reverse order. ","version":"Next","tagName":"h3"},{"title":"http-event-normalizer​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#http-event-normalizer","content":"Option payloadFormatVersion no longer neededWill now throw error if not an http event [Breaking Change] ","version":"Next","tagName":"h3"},{"title":"http-header-normalizer​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#http-header-normalizer","content":"Modified so that all headers are set to lowercase when canonical:false [Breaking Change] ","version":"Next","tagName":"h3"},{"title":"http-json-body-parser​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#http-json-body-parser","content":"No change ","version":"Next","tagName":"h3"},{"title":"http-multipart-body-parser​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#http-multipart-body-parser","content":"Change default charset from binary/latin1 to utf-8. [Breaking Change] ","version":"Next","tagName":"h3"},{"title":"http-partial-response​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#http-partial-response","content":"No change ","version":"Next","tagName":"h3"},{"title":"http-response-serializer​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#http-response-serializer","content":"Renamed default option to defaultContentType to improve maintainability [Breaking Change]onError will not modify response unless error has been handled ","version":"Next","tagName":"h3"},{"title":"http-router​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#http-router","content":"[New] Allow re-routing of events to different handlers ","version":"Next","tagName":"h3"},{"title":"http-security-headers​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#http-security-headers","content":"onError will not modify response unless error has been handledComplete rewrite of options and inclusion of new HTML only headers [Breaking Change] ","version":"Next","tagName":"h3"},{"title":"http-urlencode-body-parser​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#http-urlencode-body-parser","content":"No change ","version":"Next","tagName":"h3"},{"title":"http-urlencode-path-parser​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#http-urlencode-path-parser","content":"No change ","version":"Next","tagName":"h3"},{"title":"input-output-logger​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#input-output-logger","content":"Add in new option to mask instead of omit a path. ","version":"Next","tagName":"h3"},{"title":"rds-signer​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#rds-signer","content":"Deprecated setToEnv option due to possible security misuse [Breaking Change] ","version":"Next","tagName":"h3"},{"title":"s3-key-normalizer​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#s3-key-normalizer","content":"Deprecated in favour of event-normalizer, v2.x compatible with v3 ","version":"Next","tagName":"h3"},{"title":"s3-object-response​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#s3-object-response","content":"No change ","version":"Next","tagName":"h3"},{"title":"secrets-manager​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#secrets-manager","content":"Deprecated setToEnv option due to possible security misuse [Breaking Change] ","version":"Next","tagName":"h3"},{"title":"service-discovery​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#service-discovery","content":"[New] Allow easy access to discoveryInstances ","version":"Next","tagName":"h3"},{"title":"sqs-json-body-parser​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#sqs-json-body-parser","content":"Deprecated in favour of event-normalizer, v2.x compatible with v3 ","version":"Next","tagName":"h3"},{"title":"sqs-partial-batch-failure​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#sqs-partial-batch-failure","content":"Complete rewrite to take advantage of https://aws.amazon.com/about-aws/whats-new/2021/11/aws-lambda-partial-batch-response-sqs-event-source/, will no longer throw an error if any message fails [Breaking Change] ","version":"Next","tagName":"h3"},{"title":"ssm​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#ssm","content":"Deprecated setToEnv option [Breaking Change] ","version":"Next","tagName":"h3"},{"title":"sts​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#sts","content":"No change ","version":"Next","tagName":"h3"},{"title":"validator​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#validator","content":"Change where errors are stored, from request.error.details to request.error.cause [Breaking Change]Add new options eventSchema, contextSchema, responseSchema. inputSchema and outputSchema become aliases. ","version":"Next","tagName":"h3"},{"title":"warmup​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#warmup","content":"No change ","version":"Next","tagName":"h3"},{"title":"ws-json-body-parser​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#ws-json-body-parser","content":"[New] Parse body from WebSocket event ","version":"Next","tagName":"h3"},{"title":"ws-response​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#ws-response","content":"[New] Post responses to WebSocket API Gateway ","version":"Next","tagName":"h3"},{"title":"ws-router​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#ws-router","content":"[New] Allow re-routing of events to different handlers ","version":"Next","tagName":"h3"},{"title":"Notes​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#notes","content":"If you still need setToEnv you can do something like so: middy(lambdaHandler) .use(/*...*/) .before(async (request) => { const values = await getInternal(['NODE_ENV'], request) process.env.NODE_ENV = values.NODE_ENV }) ","version":"Next","tagName":"h2"},{"title":"Upgrade 3.x -> 4.x","type":0,"sectionRef":"#","url":"/docs/upgrade/3-4","content":"","keywords":"","version":"Next"},{"title":"Notable changes​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#notable-changes","content":"","version":"Next","tagName":"h2"},{"title":"Core​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#core","content":"Remove polyfill for AbortControlerRemove polyfill for timers/promises ","version":"Next","tagName":"h2"},{"title":"Util​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#util","content":"normalizeResponse now will set the statusCode to 200 when casting to a new object or 500 when missing Breaking Change ","version":"Next","tagName":"h2"},{"title":"Middleware​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#middleware","content":"","version":"Next","tagName":"h2"},{"title":"cloudwatch-metrics​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#cloudwatch-metrics","content":"No change ","version":"Next","tagName":"h3"},{"title":"do-not-wait-for-empty-event-loop​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#do-not-wait-for-empty-event-loop","content":"No change ","version":"Next","tagName":"h3"},{"title":"error-logger​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#error-logger","content":"No change ","version":"Next","tagName":"h3"},{"title":"event-normalizer​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#event-normalizer","content":"No change ","version":"Next","tagName":"h3"},{"title":"http-content-encoding​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#http-content-encoding","content":"Removed body as stream support, will be brought back as a new middleware in a future middleware Breaking Change ","version":"Next","tagName":"h3"},{"title":"http-content-negotiation​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#http-content-negotiation","content":"No change ","version":"Next","tagName":"h3"},{"title":"http-cors​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#http-cors","content":"No change ","version":"Next","tagName":"h3"},{"title":"http-error-handler​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#http-error-handler","content":"No change ","version":"Next","tagName":"h3"},{"title":"http-event-normalizer​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#http-event-normalizer","content":"No change ","version":"Next","tagName":"h3"},{"title":"http-header-normalizer​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#http-header-normalizer","content":"No change ","version":"Next","tagName":"h3"},{"title":"http-json-body-parser​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#http-json-body-parser","content":"Deprecate event.rawBody Breaking Change You can add in an inline middleware as a workaround. .before((request) => { request.event.rawBody = request.event.body }) .use(httpJSONBodyParserMiddleware()) See https://github.com/middyjs/middy/issues/945 for discussion and reasoning. ","version":"Next","tagName":"h3"},{"title":"http-multipart-body-parser​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#http-multipart-body-parser","content":"Add new option to set charset ","version":"Next","tagName":"h3"},{"title":"http-partial-response​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#http-partial-response","content":"No change ","version":"Next","tagName":"h3"},{"title":"http-response-serializer​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#http-response-serializer","content":"No change ","version":"Next","tagName":"h3"},{"title":"http-router​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#http-router","content":"No change ","version":"Next","tagName":"h3"},{"title":"http-security-headers​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#http-security-headers","content":"No change ","version":"Next","tagName":"h3"},{"title":"http-urlencode-body-parser​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#http-urlencode-body-parser","content":"Now throws 422 when unable to parse JSON Breaking Change ","version":"Next","tagName":"h3"},{"title":"http-urlencode-path-parser​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#http-urlencode-path-parser","content":"No change ","version":"Next","tagName":"h3"},{"title":"input-output-logger​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#input-output-logger","content":"No change ","version":"Next","tagName":"h3"},{"title":"rds-signer​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#rds-signer","content":"Updated to use AWS SDK v3 Breaking Change ","version":"Next","tagName":"h3"},{"title":"s3-object-response​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#s3-object-response","content":"Updated to use AWS SDK v3 Breaking Change ","version":"Next","tagName":"h3"},{"title":"secrets-manager​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#secrets-manager","content":"Updated to use AWS SDK v3 Breaking Change ","version":"Next","tagName":"h3"},{"title":"service-discovery​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#service-discovery","content":"Updated to use AWS SDK v3 Breaking Change ","version":"Next","tagName":"h3"},{"title":"sqs-partial-batch-failure​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#sqs-partial-batch-failure","content":"No change ","version":"Next","tagName":"h3"},{"title":"ssm​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#ssm","content":"Updated to use AWS SDK v3 Breaking Change ","version":"Next","tagName":"h3"},{"title":"sts​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#sts","content":"Updated to use AWS SDK v3 Breaking Change ","version":"Next","tagName":"h3"},{"title":"validator​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#validator","content":"We've put a lot of work into making this middleware bundle smaller and faster by default, while allowing for opting into more functionality. Deprecate inputSchema and outputSchema options Breaking ChangeDeprecated i18nEnabled Breaking ChangeMust now pass in defaultLanguage localizations to languages Breaking ChangeAdded in ajv-error supportPulled transpileSchema out of middleware to allow for tree shaking and pre-compile option Breaking ChangeAdded in transpileLocale to allow for custom internationalization of error messages including errorMessage How to update use of middleware import validatorMiddleware from '@middy/validator' // 1. Import transpileSchema import { transpileSchema } from '@middy/validator/transpile' export const handler = middy(...) .use(validatorMiddleware({ // 2. Wrap schemas with transpileSchema eventSchema: transpileSchema(eventJsonSchema) })) import validatorMiddleware from '@middy/validator' // 1. Import localizations import { en, fr } from 'ajv-ftl-i18n' export const handler = middy(...) .use(validatorMiddleware({ eventSchema: transpileSchema(eventJsonSchema), // 2. Add localizations in langauges: { en, fr } })) ","version":"Next","tagName":"h3"},{"title":"warmup​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#warmup","content":"No change ","version":"Next","tagName":"h3"},{"title":"ws-json-body-parser​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#ws-json-body-parser","content":"No change ","version":"Next","tagName":"h3"},{"title":"ws-response​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#ws-response","content":"Updated to use AWS SDK v3 Breaking Change ","version":"Next","tagName":"h3"},{"title":"ws-router​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#ws-router","content":"No change ","version":"Next","tagName":"h3"},{"title":"Notes​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#notes","content":"None ","version":"Next","tagName":"h2"},{"title":"Configurable Middlewares","type":0,"sectionRef":"#","url":"/docs/writing-middlewares/configurable-middlewares","content":"Configurable Middlewares In order to make middlewares configurable, they are generally exported as a function that accepts a configuration object. This function should then return the middleware object with before,after, and onError as keys. E.g. // customMiddleware.js const defaults = {} const customMiddleware = (opts) => { const options = { ...defaults, ...opts } const customMiddlewareBefore = async (request) => { const { event, context } = request // ... } const customMiddlewareAfter = async (request) => { const { response } = request // ... request.response = response } const customMiddlewareOnError = async (request) => { if (request.response === undefined) return await customMiddlewareAfter(request) } return { before: customMiddlewareBefore, after: customMiddlewareAfter, onError: customMiddlewareOnError } } export default customMiddleware With this convention in mind, using a middleware will always look like the following example: import middy from '@middy/core' import customMiddleware from 'customMiddleware.js' const lambdaHandler = async (event, context) => { // do stuff return {} } export const handler = middy(lambdaHandler) .use(customMiddleware({ option1: 'foo', option2: 'bar' })) ","keywords":"","version":"Next"},{"title":"Inline Middlewares","type":0,"sectionRef":"#","url":"/docs/writing-middlewares/inline-middlewares","content":"Inline Middlewares Sometimes you want to create handlers that serve a very small need and that are not necessarily re-usable. In such cases, you probably will need to hook only into one of the different phases (before, after or onError). In these cases you can use inline middlewares which are shortcut functions to hook logic into Middy's control flow. Let's see how inline middlewares work with a simple example: import middy from '@middy/core' export const handler = middy((event, context) => { // do stuff }) .before(async (request) => { // do something in the before phase }) .after(async (request) => { // do something in the after phase }) .onError(async (request) => { // do something in the on error phase }) As you can see above, a middy instance also exposes the before, after and onErrormethods to allow you to quickly hook in simple inline middlewares.","keywords":"","version":"Next"},{"title":"Internal Storage","type":0,"sectionRef":"#","url":"/docs/writing-middlewares/internal-storage","content":"Internal Storage The handler also contains an internal object that can be used to store values securely between middlewares that expires when the event ends. To compliment this there is also a cache where middleware can store request promises. During before these promises can be stored into internal then resolved only when needed. This pattern is useful to take advantage of the async nature of node especially when you have multiple middleware that require reaching out the external APIs. Here is a middleware boilerplate using this pattern: import { canPrefetch, getInternal, processCache } from '@middy/util' const defaults = { fetchData: {}, // { internalKey: params } disablePrefetch: false, cacheKey: 'custom', cacheExpiry: -1, setToContext: false } const customMiddleware = (opts = {}) => { const options = { ...defaults, ...opts } const fetch = () => { const values = {} // Start your custom fetch for (const internalKey of Object.keys(options.fetchData)) { values[internalKey] = fetch('...', options.fetchData[internalKey]).then( (res) => res.text() ) } // End your custom fetch return values } if (canPrefetch(options)) { processCache(options, fetch) } const customMiddlewareBefore = async (request) => { const { value } = processCache(options, fetch, request) Object.assign(request.internal, value) if (options.setToContext) { const data = await getInternal(Object.keys(options.fetchData), request) Object.assign(request.context, data) } } return { before: customMiddlewareBefore } } export default customMiddleware ","keywords":"","version":"Next"},{"title":"Custom Middlewares","type":0,"sectionRef":"#","url":"/docs/writing-middlewares/intro","content":"Custom Middlewares A middleware is an object that should contain at least 1 of 3 possible keys: before: a function that is executed in the before phaseafter: a function that is executed in the after phaseonError: a function that is executed in case of errors before, after and onError functions need to have the following signature: const defaults = { // ... } const nameMiddleware = (opts = {}) => { const options = { ...defaults, ...opts } const nameMiddlewareBefore = async (request) => { // ... } const nameMiddlewareAfter = async (request) => { // ... } const nameMiddlewareOnError = async (request) => { // ... } return { before: nameMiddlewareBefore, after: nameMiddlewareAfter, onError: nameMiddlewareOnError } } export default nameMiddleware Where: request: is a reference to the current context and allows access to (and modification of) the current event (request), the response (in the after phase), and error(in case of an error).","keywords":"","version":"Next"},{"title":"Handle Timeouts","type":0,"sectionRef":"#","url":"/docs/writing-middlewares/timeouts","content":"Handle Timeouts When a lambda times out it throws an error that cannot be caught by middy. To work around this middy maintains an AbortController that can be signalled early to allow time to clean up and log the error properly. You can set timeoutEarlyInMillis to 0 to disable this functionality. If you want to override during testing, mock the lambda context to set getRemainingTimeInMillis to a function that returns a very large value (e.g. () => 99999). import middy from '@middy/core' const lambdaHandler = (event, context, {signal}) => { signal.onabort = () => { // cancel events } // ... } export const handler = middy(lambdaHandler, { timeoutEarlyInMillis: 50, timeoutEarlyResponse: () => { return { statusCode: 408 } } }) ","keywords":"","version":"Next"},{"title":"More Examples","type":0,"sectionRef":"#","url":"/docs/writing-middlewares/more-examples","content":"More Examples Check the code for existing middlewares to see more examples on how to write a middleware.","keywords":"","version":"Next"},{"title":"With TypeScript","type":0,"sectionRef":"#","url":"/docs/writing-middlewares/with-typescript","content":"With TypeScript here's an example of how you can write a custom middleware for a Lambda receiving events from API Gateway: import middy from '@middy/core' import { APIGatewayProxyEvent, APIGatewayProxyResult } from 'aws-lambda' const middleware = (): middy.MiddlewareObj<APIGatewayProxyEvent, APIGatewayProxyResult> => { const before: middy.MiddlewareFn<APIGatewayProxyEvent, APIGatewayProxyResult> = async ( request ): Promise<APIGatewayProxyResult> => { // Your middleware logic } const after: middy.MiddlewareFn<APIGatewayProxyEvent, APIGatewayProxyResult> = async ( request ): Promise<void> => { // Your middleware logic } return { before, after } } export default middleware Note: The Middy core team does not use TypeScript often and we can't certainly claim that we are TypeScript experts. We tried our best to come up with type definitions that should give TypeScript users a good experience. There is certainly room for improvement, so we would be more than happy to receive contributions 😊 See devDependencies for each middleware for list of dependencies that may be required with transpiling TypeScript.","keywords":"","version":"Next"}] \ No newline at end of file +{"searchDocs":[{"title":"Connection reuse","type":0,"sectionRef":"#","url":"/docs/best-practices/connection-reuse","content":"Connection reuse Be sure to set the following environment variable when connecting to AWS services: AWS_NODEJS_CONNECTION_REUSE_ENABLED=1 This allows you to reuse the first connection established across lambda invocations. See Reusing Connections with Keep-Alive in Node.js","keywords":"","version":"Next"},{"title":"Bundling Lambda packages","type":0,"sectionRef":"#","url":"/docs/best-practices/bundling","content":"","keywords":"","version":"Next"},{"title":"Compilers​","type":1,"pageTitle":"Bundling Lambda packages","url":"/docs/best-practices/bundling#compilers","content":" ","version":"Next","tagName":"h2"},{"title":"typescript​","type":1,"pageTitle":"Bundling Lambda packages","url":"/docs/best-practices/bundling#typescript","content":" npm i -D typescript node_modules/.bin/tsc tsconfig.json​ { "compilerOptions": { "baseUrl": "./", "esModuleInterop": true, "preserveConstEnums": true, "strictNullChecks": true, "allowJs": false, "target": "es2021", "typeRoots": ["node_modules/@types"], "resolveJsonModule": true, "moduleResolution": "node" } } ","version":"Next","tagName":"h3"},{"title":"Bundlers​","type":1,"pageTitle":"Bundling Lambda packages","url":"/docs/best-practices/bundling#bundlers","content":" ","version":"Next","tagName":"h2"},{"title":"esbuild​","type":1,"pageTitle":"Bundling Lambda packages","url":"/docs/best-practices/bundling#esbuild","content":" npm i -D esbuild # --banner:js hack from https://github.com/evanw/esbuild/pull/2067 node_modules/.bin/esbuild index.js \\ --platform=node --format=esm --target=node18 --bundle --minify \\ --banner:js="import { createRequire } from 'module';const require = createRequire(import.meta.url);" \\ --legal-comments=external --sourcemap=external \\ --allow-overwrite --outfile=index.mjs ","version":"Next","tagName":"h3"},{"title":"rollup​","type":1,"pageTitle":"Bundling Lambda packages","url":"/docs/best-practices/bundling#rollup","content":" npm i -D rollup @rollup/plugin-node-resolve @rollup/plugin-commonjs node_modules/.bin/rollup --config rollup.config.mjs​ import { nodeResolve } from '@rollup/plugin-node-resolve' import commonjs from '@rollup/plugin-commonjs' const plugins = [nodeResolve({ preferBuiltins: true }), commonjs()] export default (input) => ({ input: 'index.js', output: { file: 'index.bundle.rollup.mjs', format: 'es' // cjs, es }, plugins, external: [ // AWS SDK '@aws-sdk/client-apigatewaymanagementapi', // @middy/ws-response '@aws-sdk/client-rds', // @middy/rds-signer '@aws-sdk/client-s3', // @middy/s3-object-response '@aws-sdk/client-secretsmanager', // @middy/sercrets-manager '@aws-sdk/client-servicediscovery', // @middy/service-discovery '@aws-sdk/client-ssm', // @middy/ssm '@aws-sdk/client-sts' // @middy/sts ] }) ","version":"Next","tagName":"h3"},{"title":"swc/pack​","type":1,"pageTitle":"Bundling Lambda packages","url":"/docs/best-practices/bundling#swcpack","content":" npm i -D @swc/cli @swc/core node_modules/.bin/spack caution Incomplete ","version":"Next","tagName":"h3"},{"title":"webpack​","type":1,"pageTitle":"Bundling Lambda packages","url":"/docs/best-practices/bundling#webpack","content":" npm i -D webpack-cli webpack node_modules/.bin/webpack webpack.config.mjs​ import path from 'node:path' import { fileURLToPath } from 'node:url' const __filename = fileURLToPath(import.meta.url) const __dirname = path.dirname(__filename) export default { mode: 'development', entry: './index.js', output: { filename: 'index.bundle.webpack.mjs', path: __dirname }, experiments: { outputModule: true }, externals: [ // NodeJS modules 'events', // @middy/core 'https', // @middy/s3-object-response 'stream', // @middy/http-content-encoding @middy/s3-object-response 'util', // @middy/http-content-encoding 'zlib', // @middy/http-content-encoding // AWS SDK '@aws-sdk/client-apigatewaymanagementapi', // @middy/ws-response '@aws-sdk/client-rds', // @middy/rds-signer '@aws-sdk/client-s3', // @middy/s3-object-response '@aws-sdk/client-secretsmanager', // @middy/sercrets-manager '@aws-sdk/client-servicediscovery', // @middy/service-discovery '@aws-sdk/client-ssm', // @middy/ssm '@aws-sdk/client-sts' // @middy/sts ] } ","version":"Next","tagName":"h3"},{"title":"Transpilers​","type":1,"pageTitle":"Bundling Lambda packages","url":"/docs/best-practices/bundling#transpilers","content":" ","version":"Next","tagName":"h2"},{"title":"babel​","type":1,"pageTitle":"Bundling Lambda packages","url":"/docs/best-practices/bundling#babel","content":" npm i -D @babel/cli @babel/core @babel/preset-env node_modules/.bin/babel index.js --out-file index.transpile.babel.cjs babel.config.json​ { "presets": [ [ "@babel/preset-env", { "targets": { "node": "16" } } ] ] } ","version":"Next","tagName":"h3"},{"title":"esbuild​","type":1,"pageTitle":"Bundling Lambda packages","url":"/docs/best-practices/bundling#esbuild-1","content":" npm i -D esbuild node_modules/.bin/esbuild --platform=node --target=node16 --format=cjs index.js --outfile=index.cjs ","version":"Next","tagName":"h3"},{"title":"swc​","type":1,"pageTitle":"Bundling Lambda packages","url":"/docs/best-practices/bundling#swc","content":" npm i -D @swc/cli @swc/core node_modules/.bin/swc index.js --out-file index.transpile.swc.cjs .swcrc​ { "jsc": { "parser": { "syntax": "ecmascript" }, "target": "es2021" }, "module": { "type": "commonjs" } } ","version":"Next","tagName":"h3"},{"title":"Intro","type":0,"sectionRef":"#","url":"/docs/best-practices/intro","content":"Intro In this section you will find some common tips and tricks to ensure you don't hit any performance or security issues. Did we miss something? Let us know.","keywords":"","version":"Next"},{"title":"Introduction","type":0,"sectionRef":"#","url":"/docs/","content":"","keywords":"","version":"Next"},{"title":"What is middy​","type":1,"pageTitle":"Introduction","url":"/docs/#what-is-middy","content":" Middy is a very simple middleware engine that allows you to simplify your AWS Lambda code when using Node.js. If you have used web frameworks like Express, then you will be familiar with the concepts adopted in Middy and you will be able to get started very quickly. A middleware engine allows you to focus on the strict business logic of your Lambda and then attach additional common elements like authentication, authorization, validation, serialization, etc. in a modular and reusable way by decorating the main business logic. ","version":"Next","tagName":"h2"},{"title":"A quick example​","type":1,"pageTitle":"Introduction","url":"/docs/#a-quick-example","content":" Code is better than 10,000 words, so let's jump into an example. Let's assume you are building a JSON API to process a payment: handler.js // import core import middy from '@middy/core' // esm Node v14+ //const middy = require('@middy/core') // commonjs Node v12+ // import some middlewares import jsonBodyParser from '@middy/http-json-body-parser' import httpErrorHandler from '@middy/http-error-handler' import validator from '@middy/validator' import { transpileSchema } from '@middy/validator/transpile' // This is your common handler, in no way different than what you are used to doing every day in AWS Lambda const lambdaHandler = async (event, context) => { // we don't need to deserialize the body ourself as a middleware will be used to do that const { creditCardNumber, expiryMonth, expiryYear, cvc, nameOnCard, amount } = event.body // do stuff with this data // ... const response = { result: 'success', message: 'payment processed correctly' } return { statusCode: 200, body: JSON.stringify(response) } } // Notice that in the handler you only added base business logic (no deserialization, // validation or error handler), we will add the rest with middlewares const schema = { type: 'object', properties: { body: { type: 'object', properties: { creditCardNumber: { type: 'string', minLength: 12, maxLength: 19, pattern: '\\\\d+' }, expiryMonth: { type: 'integer', minimum: 1, maximum: 12 }, expiryYear: { type: 'integer', minimum: 2017, maximum: 2027 }, cvc: { type: 'string', minLength: 3, maxLength: 4, pattern: '\\\\d+' }, nameOnCard: { type: 'string' }, amount: { type: 'number' } }, required: ['creditCardNumber'] // Insert here all required event properties } } } // Let's "middyfy" our handler, then we will be able to attach middlewares to it export const handler = middy() .use(jsonBodyParser()) // parses the request body when it's a JSON and converts it to an object .use(validator({ eventSchema: transpileSchema(schema) })) // validates the input .use(httpErrorHandler()) // handles common http errors and returns proper responses .handler(lambdaHandler) ","version":"Next","tagName":"h2"},{"title":"Why?​","type":1,"pageTitle":"Introduction","url":"/docs/#why","content":" One of the main strengths of serverless and AWS Lambda is that, from a developer perspective, your focus is mostly shifted toward implementing business logic. Anyway, when you are writing a handler, you still have to deal with some common technical concerns outside business logic, like input parsing and validation, output serialization, error handling, etc. Very often, all this necessary code ends up polluting the pure business logic code in your handlers, making the code harder to read and to maintain. In other contexts, like generic web frameworks (fastify, hapi, express, etc.), this problem has been solved using the middleware pattern. This pattern allows developers to isolate these common technical concerns into"steps" that decorate the main business logic code. Middleware functions are generally written as independent modules and then plugged into the application in a configuration step, thus not polluting the main business logic code that remains clean, readable, and easy to maintain. Since we couldn't find a similar approach for AWS Lambda handlers, we decided to create middy, our own middleware framework for serverless in AWS land. ","version":"Next","tagName":"h2"},{"title":"Small node_modules","type":0,"sectionRef":"#","url":"/docs/best-practices/small-node-modules","content":"Small node_modules Using a bundler is the optimal solution, but can be complex depending on your setup. In this case you should remove excess files from your node_modules directory to ensure it doesn't have anything excess shipped to AWS. We put together a .yarnclean file you can check out and use as part of your CI/CD process: .yarnclean # -- Middy.js -- # Dependencies **/ajv/lib **/ajv/.runkit_examples.js **/ajv-errors/src **/ajv-formats/src **/ajv-formats-draft2019/.github **/ajv-formats-draft2019/.prettierrc.js **/ajv-formats-draft2019/index.test.js **/ajv-i18n/localize/.eslintrc.yml **/json-mask/bin **/json-mask/build **/qs/.github **/qs/dist **/qs/test **/qs/.editorconfig **/qs/.eslintrc **/qs/.nycrc **/qs/CHANGELOG.md # DevDependencies **/@types **/@serverless/event-mocks ## Sub[/Sub] Dependencies **/bowser/src **/bowser/bundled.js **/dicer/bench **/dicer/test **/inherits/inherits_browser.js **/json-schema-traverse/.github **/json-schema-traverse/spec **/fast-deep-equal/es6 **/fast-deep-equal/react.js **/querystring/test **/react-native-get-random-values/android **/react-native-get-random-values/ios **/react-native-get-random-values/index.web.js **/react-native-get-random-values/react-native-get-random-values.podspec **/setprototypeof/test **/tslib **/uri-js/dist/esnext **/url/.zuul.yml **/url/test.js **/uuid/bin # Builds *.ts tsconfig.json *.js.map package-lock.json yarn.lock .travis.yml # Common .bin .cache .editorconfig .eslintignore .eslintrc .eslintrc.yml .gitattributes .npmignore AUTHORS LICENSE *.md *.txt ","keywords":"","version":"Next"},{"title":"Internal Context","type":0,"sectionRef":"#","url":"/docs/best-practices/internal-context","content":"Internal Context Middy is built to be async even at it's core. Middlewares can set promises to internal. This approach allows them to be resolved together just when you need them. import middy from '@middy/core' import {getInternal} from '@middy/util' const lambdaHandler = async (event, context, { signal }) => { } const config = { internal: new Proxy({}, { get: (target, prop, receiver) => { // ... return Reflect.get(...arguments) }, set: (obj, prop, value) => { // ... ie if `prop` changes, trigger something obj[prop] = value return true } }) } export const handler = middy(config) // Incase you want to add values on to internal directly .before((async (request) => { request.internal = { env: process.env.NODE_ENV } })) .use(sts(...)) .use(ssm(...)) .use(rdsSigner(...)) .use(secretsManager(...)) .before(async (request) => { // internal == { key: 'value' } // Map with same name Object.assign(request.context, await getInternal(['key'], request)) // -> context == { key: 'value'} // Map to new name Object.assign(request.context, await getInternal({'newKey':'key'}, request)) // -> context == { newKey: 'value'} // get all the values, only if you really need to, // but you should only request what you need for the handler Object.assign(request.context, await getInternal(true, request)) // -> context == { key: 'value'} }) .handler(lambdaHandler) ","keywords":"","version":"Next"},{"title":"Profiling","type":0,"sectionRef":"#","url":"/docs/best-practices/profiling","content":"","keywords":"","version":"Next"},{"title":"Time​","type":1,"pageTitle":"Profiling","url":"/docs/best-practices/profiling#time","content":" const defaults = { logger: console.log, enabled: true } const timePlugin = (opts = {}) => { const { logger, enabled } = { ...defaults, ...opts } const store = {} const start = (id) => { store[id] = process.hrtime.bigint() } const stop = (id) => { if (!enabled) return logger(id, Number.parseInt((process.hrtime.bigint() - store[id]).toString()) / 1000000, 'ms') } // Only run during cold start const beforePrefetch = () => start('total') const requestStart = () => { if (!store.init) { store.init = store.total stop('init') } else { start('total') } } const beforeMiddleware = start const afterMiddleware = stop const beforeHandler = () => start('handler') const afterHandler = () => stop('handler') const requestEnd = () => stop('total') return { beforePrefetch, requestStart, beforeMiddleware, afterMiddleware, beforeHandler, afterHandler, requestEnd } } export const handler = middy(timePlugin()) .use(eventLogger()) .use(errorLogger()) .use(httpEventNormalizer()) .use(httpHeaderNormalizer()) .use(httpUrlencodePathParametersParser()) .use(httpUrlencodeBodyParser()) .use(httpJsonBodyParser()) .use(httpCors()) .use(httpSecurityHeaders()) .use(validator({eventSchema})) .handler(()=>{}) await handler() This will log out something this: inputOutputLoggerMiddlewareBefore 0.156033 ms httpEventNormalizerMiddlewareBefore 0.073921 ms httpHeaderNormalizerMiddlewareBefore 0.095098 ms httpUrlencodePathParserMiddlewareBefore 0.036255 ms httpUrlencodeBodyParserMiddlewareBefore 0.038809 ms httpJsonBodyParserMiddlewareBefore 0.048383 ms httpContentNegotiationMiddlewareBefore 0.042311 ms validatorMiddlewareBefore 0.083366 ms handler 0.094875 ms validatorMiddlewareAfter 0.083601 ms httpSecurityHeadersMiddlewareAfter 0.19702 ms httpCorsMiddlewareAfter 0.080532 ms inputOutputLoggerMiddlewareAfter 0.066886 ms lambda 66.141835 ms From this everything looks good. Sub 1ms for every middleware and the handler. But wait, that total doesn't look right. You're correct, total includes the initial setup time (or cold start time) for all middlewares. In this case validator is the culprit. The Ajv constructor and compiler do a lot of magic when they first run to get ready for later schema validations. This is why in the validator middleware we now support passing in complied schema and expose the default compiler in case you want to use it in a build step. We hope this feature will help to you in identify slow middlewares and improve your development experience. There is also a beforeRequest hook, but was left out of the example for dramatic effect. Additionally, you'll notice that each middleware shows a descriptive name. This is printing out the function name passed into middy core. If you've looked at the code for some the supported middlewares, you'll see these long descriptive variable names being set, then returned. This is why. ","version":"Next","tagName":"h2"},{"title":"Memory​","type":1,"pageTitle":"Profiling","url":"/docs/best-practices/profiling#memory","content":" import memwatch from '@airbnb/node-memwatch' const defaults = { logger: console.log } const memoryPlugin = (opts = {}) => { const { logger } = { ...defaults, ...opts } const store = {} const start = (id) => { store[id] = new memwatch.HeapDiff() } const stop = (id) => { logger(id, store[id].end()) } const beforePrefetch = () => start('total') const requestStart = () => { store.init = store.total stop('init') } const beforeMiddleware = start const afterMiddleware = stop const beforeHandler = () => start('handler') const afterHandler = () => stop('handler') const requestEnd = () => stop('total') return { beforePrefetch, requestStart, beforeMiddleware, afterMiddleware, beforeHandler, afterHandler, requestEnd } } export const handler = middy(memoryPlugin()) .use(eventLogger()) .use(errorLogger()) .use(httpEventNormalizer()) .use(httpHeaderNormalizer()) .use(httpUrlencodePathParametersParser()) .use(httpUrlencodeBodyParser()) .use(httpJsonBodyParser()) .use(httpCors()) .use(httpSecurityHeaders()) .use(validator({eventSchema})) .handler(()=>{}) await handler() ","version":"Next","tagName":"h2"},{"title":"API Gateway Authorizer","type":0,"sectionRef":"#","url":"/docs/events/api-gateway-authorizer","content":"","keywords":"","version":"Next"},{"title":"Alexa","type":0,"sectionRef":"#","url":"/docs/events/alexa","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"Alexa","url":"/docs/events/alexa#aws-documentation","content":" Using AWS Lambda with Alexa ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"Alexa","url":"/docs/events/alexa#example","content":" import middy from '@middy/core' export const handler = middy() .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"AWS Documentation​","type":1,"pageTitle":"API Gateway Authorizer","url":"/docs/events/api-gateway-authorizer#aws-documentation","content":" Working with AWS Lambda authorizers for HTTP APIsInput to an Amazon API Gateway Lambda authorizer ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"API Gateway Authorizer","url":"/docs/events/api-gateway-authorizer#example","content":" import middy from '@middy/core' export const handler = middy().handler((event, context, { signal }) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"API Gateway (HTTP)","type":0,"sectionRef":"#","url":"/docs/events/api-gateway-http","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"API Gateway (HTTP)","url":"/docs/events/api-gateway-http#aws-documentation","content":" Using AWS Lambda with Amazon API GatewayWorking with HTTP APIs ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"API Gateway (HTTP)","url":"/docs/events/api-gateway-http#example","content":" import middy from '@middy/core' import errorLoggerMiddleware from '@middy/error-logger' import inputOutputLoggerMiddleware from '@middy/input-output-logger' import httpContentNegotiationMiddleware from '@middy/http-content-negotiation' import httpContentEncodingMiddleware from '@middy/http-content-encoding' import httpCorsMiddleware from '@middy/http-cors' import httpErrorHandlerMiddleware from '@middy/http-error-handler' import httpEventNormalizerMiddleware from '@middy/http-event-normalizer' import httpHeaderNormalizerMiddleware from '@middy/http-header-normalizer' import httpJsonBodyParserMiddleware from '@middy/http-json-body-parser' import httpMultipartBodyParserMiddleware from '@middy/http-multipart-body-parser' import httpPartialResponseMiddleware from '@middy/http-partial-response' import httpResponseSerializerMiddleware from '@middy/http-response-serializer' import httpSecurityHeadersMiddleware from '@middy/http-security-headers' import httpUrlencodeBodyParserMiddleware from '@middy/http-urlencode-body-parser' import httpUrlencodePathParametersParserMiddleware from '@middy/http-urlencode-path-parser' import validatorMiddleware from 'validator' import warmupMiddleware from 'warmup' import eventSchema from './eventSchema.json' assert { type: 'json' } import responseSchema from './responseSchema.json' assert { type: 'json' } export const handler = middy({ timeoutEarlyResponse: () => { return { statusCode: 408 } } }) .use(warmupMiddleware()) .use(httpEventNormalizerMiddleware()) .use(httpHeaderNormalizerMiddleware()) .use( httpContentNegotiationMiddleware({ availableLanguages: ['en-CA', 'fr-CA'], availableMediaTypes: ['application/json'] }) ) .use(httpUrlencodePathParametersParserMiddleware()) // Start oneOf .use(httpUrlencodeBodyParserMiddleware()) .use(httpJsonBodyParserMiddleware()) .use(httpMultipartBodyParserMiddleware()) // End oneOf .use(httpSecurityHeadersMiddleware()) .use(httpCorsMiddleware()) .use(httpContentEncodingMiddleware()) .use( httpResponseSerializerMiddleware({ serializers: [ { regex: /^application\\/json$/, serializer: ({ body }) => JSON.stringify(body) } ], default: 'application/json' }) ) .use(httpPartialResponseMiddleware()) .use(validatorMiddleware({ eventSchema, responseSchema })) .use(httpErrorHandlerMiddleware()) .handler((event, context, { signal }) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"AppSync","type":0,"sectionRef":"#","url":"/docs/events/appsync","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"AppSync","url":"/docs/events/appsync#aws-documentation","content":" Using AWS Lambda with AppSync ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"AppSync","url":"/docs/events/appsync#example","content":" import middy from '@middy/core' export const handler = middy().handler((event, context, { signal }) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"API Gateway (WebSocket)","type":0,"sectionRef":"#","url":"/docs/events/api-gateway-ws","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"API Gateway (WebSocket)","url":"/docs/events/api-gateway-ws#aws-documentation","content":" Using AWS Lambda with Amazon API GatewayWorking with WebSocket APIs ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"API Gateway (WebSocket)","url":"/docs/events/api-gateway-ws#example","content":" import middy from '@middy/core' import wsJsonBodyParserMiddleware from '@middy/ws-json-body-parser' import wsResponseMiddleware from '@middy/ws-response' import wsRouterHandler from '@middy/ws-router' import { handler as connectHandler } from './handlers/connect.js' import { handler as disconnectHandler } from './handlers/disconnect.js' import { handler as defaultHandler } from './handlers/default.js' const routes = [ { routeKey: '$connect', handler: connectHandler }, { routeKey: '$disconnect', handler: disconnectHandler }, { routeKey: 'default', handler: defaultHandler } ] export const handler = middy() .use(wsJsonBodyParserMiddleware()) .use(wsResponseMiddleware()) .handler(wsRouterHandler(routes)) ","version":"Next","tagName":"h2"},{"title":"CloudFormation","type":0,"sectionRef":"#","url":"/docs/events/cloud-formation","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"CloudFormation","url":"/docs/events/cloud-formation#aws-documentation","content":" Using AWS Lambda with AWS CloudFormation ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"CloudFormation","url":"/docs/events/cloud-formation#example","content":" import middy from '@middy/core' export const handler = middy() .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"API Gateway (REST)","type":0,"sectionRef":"#","url":"/docs/events/api-gateway-rest","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"API Gateway (REST)","url":"/docs/events/api-gateway-rest#aws-documentation","content":" Using AWS Lambda with Amazon API GatewayWorking with REST APIs ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"API Gateway (REST)","url":"/docs/events/api-gateway-rest#example","content":" import middy from '@middy/core' import errorLoggerMiddleware from '@middy/error-logger' import inputOutputLoggerMiddleware from '@middy/input-output-logger' import httpContentNegotiationMiddleware from '@middy/http-content-negotiation' import httpContentEncodingMiddleware from '@middy/http-content-encoding' import httpCorsMiddleware from '@middy/http-cors' import httpErrorHandlerMiddleware from '@middy/http-error-handler' import httpEventNormalizerMiddleware from '@middy/http-event-normalizer' import httpHeaderNormalizerMiddleware from '@middy/http-header-normalizer' import httpJsonBodyParserMiddleware from '@middy/http-json-body-parser' import httpMultipartBodyParserMiddleware from '@middy/http-multipart-body-parser' import httpPartialResponseMiddleware from '@middy/http-partial-response' import httpResponseSerializerMiddleware from '@middy/http-response-serializer' import httpSecurityHeadersMiddleware from '@middy/http-security-headers' import httpUrlencodeBodyParserMiddleware from '@middy/http-urlencode-body-parser' import httpUrlencodePathParametersParserMiddleware from '@middy/http-urlencode-path-parser' import validatorMiddleware from 'validator' import warmupMiddleware from 'warmup' import eventSchema from './eventSchema.json' assert { type: 'json' } import responseSchema from './responseSchema.json' assert { type: 'json' } export const handler = middy({ timeoutEarlyResponse: () => { return { statusCode: 408 } } }) .use(warmupMiddleware()) .use(httpEventNormalizerMiddleware()) .use(httpHeaderNormalizerMiddleware()) .use( httpContentNegotiationMiddleware({ availableLanguages: ['en-CA', 'fr-CA'], availableMediaTypes: ['application/json'] }) ) .use(httpUrlencodePathParametersParserMiddleware()) // Start oneOf .use(httpUrlencodeBodyParserMiddleware()) .use(httpJsonBodyParserMiddleware()) .use(httpMultipartBodyParserMiddleware()) // End oneOf .use(httpSecurityHeadersMiddleware()) .use(httpCorsMiddleware()) .use(httpContentEncodingMiddleware()) .use( httpResponseSerializerMiddleware({ serializers: [ { regex: /^application\\/json$/, serializer: ({ body }) => JSON.stringify(body) } ], defaultContentType: 'application/json' }) ) .use(httpPartialResponseMiddleware()) .use(validatorMiddleware({ eventSchema, responseSchema })) .use(httpErrorHandlerMiddleware()) .handler((event, context, { signal }) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"Application Load Balancer","type":0,"sectionRef":"#","url":"/docs/events/application-load-balancer","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"Application Load Balancer","url":"/docs/events/application-load-balancer#aws-documentation","content":" Using AWS Lambda with an Application Load Balancer ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"Application Load Balancer","url":"/docs/events/application-load-balancer#example","content":" import middy from '@middy/core' import httpRouterHandler from '@middy/http-router' import errorLoggerMiddleware from '@middy/error-logger' import inputOutputLoggerMiddleware from '@middy/input-output-logger' import httpContentNegotiationMiddleware from '@middy/http-content-negotiation' import httpContentEncodingMiddleware from '@middy/http-content-encoding' import httpCorsMiddleware from '@middy/http-cors' import httpErrorHandlerMiddleware from '@middy/http-error-handler' import httpEventNormalizerMiddleware from '@middy/http-event-normalizer' import httpHeaderNormalizerMiddleware from '@middy/http-header-normalizer' import httpJsonBodyParserMiddleware from '@middy/http-json-body-parser' import httpMultipartBodyParserMiddleware from '@middy/http-multipart-body-parser' import httpPartialResponseMiddleware from '@middy/http-partial-response' import httpResponseSerializerMiddleware from '@middy/http-response-serializer' import httpSecurityHeadersMiddleware from '@middy/http-security-headers' import httpUrlencodeBodyParserMiddleware from '@middy/http-urlencode-body-parser' import httpUrlencodePathParametersParserMiddleware from '@middy/http-urlencode-path-parser' import warmupMiddleware from 'warmup' import { handler as getHandler } from './handlers/get-user.js' import { handler as postHandler } from './handlers/get-user.js' const routes = [ { method: 'GET', path: '/user/{id}', handler: getHandler }, { method: 'POST', path: '/user', handler: postHandler } ] export const handler = middy({ timeoutEarlyResponse: () => { return { statusCode: 408 } } }) .use(warmupMiddleware()) .use(httpEventNormalizerMiddleware()) .use(httpHeaderNormalizerMiddleware()) .use( httpContentNegotiationMiddleware({ availableLanguages: ['en-CA', 'fr-CA'], availableMediaTypes: ['application/json'] }) ) .use(httpUrlencodePathParametersParserMiddleware()) // Start oneOf .use(httpUrlencodeBodyParserMiddleware()) .use(httpJsonBodyParserMiddleware()) .use(httpMultipartBodyParserMiddleware()) // End oneOf .use(httpSecurityHeadersMiddleware()) .use(httpCorsMiddleware()) .use(httpContentEncodingMiddleware()) .use( httpResponseSerializerMiddleware({ serializers: [ { regex: /^application\\/json$/, serializer: ({ body }) => JSON.stringify(body) } ], default: 'application/json' }) ) .use(httpPartialResponseMiddleware()) .use(httpErrorHandlerMiddleware()) .handler(httpRouterHandler(routes)) ","version":"Next","tagName":"h2"},{"title":"CloudTrail","type":0,"sectionRef":"#","url":"/docs/events/cloud-trail","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"CloudTrail","url":"/docs/events/cloud-trail#aws-documentation","content":" Using AWS Lambda with AWS CloudTrail ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"CloudTrail","url":"/docs/events/cloud-trail#example","content":" import middy from '@middy/core' export const handler = middy() .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"Cloud Watch Logs","type":0,"sectionRef":"#","url":"/docs/events/cloud-watch-logs","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"Cloud Watch Logs","url":"/docs/events/cloud-watch-logs#aws-documentation","content":" Using Lambda with CloudWatch Logs ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"Cloud Watch Logs","url":"/docs/events/cloud-watch-logs#example","content":" import middy from '@middy/core' import eventNormalizerMiddleware from '@middy/event-normalizer' export const handler = middy() .use(eventNormalizerMiddleware()) .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"CloudFront Lambda@Edge","type":0,"sectionRef":"#","url":"/docs/events/cloud-front","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"CloudFront Lambda@Edge","url":"/docs/events/cloud-front#aws-documentation","content":" Using AWS Lambda with CloudFront Lambda@Edge ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"CloudFront Lambda@Edge","url":"/docs/events/cloud-front#example","content":" import middy from '@middy/core' export const handler = middy() //.use(cfHeaderNormalizer()) // Let use know if this would have value .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"Code Commit","type":0,"sectionRef":"#","url":"/docs/events/code-commit","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"Code Commit","url":"/docs/events/code-commit#aws-documentation","content":" Using AWS Lambda with AWS CodeCommit ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"Code Commit","url":"/docs/events/code-commit#example","content":" import middy from '@middy/core' export const handler = middy() .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"Config","type":0,"sectionRef":"#","url":"/docs/events/config","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"Config","url":"/docs/events/config#aws-documentation","content":" Using AWS Lambda with AWS Config ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"Config","url":"/docs/events/config#example","content":" import middy from '@middy/core' import eventNormalizerMiddleware from '@middy/event-normalizer' export const handler = middy() .use(eventNormalizerMiddleware()) .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"CodePipeline","type":0,"sectionRef":"#","url":"/docs/events/code-pipeline","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"CodePipeline","url":"/docs/events/code-pipeline#aws-documentation","content":" Using AWS Lambda with AWS CodePipeline ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"CodePipeline","url":"/docs/events/code-pipeline#example","content":" import middy from '@middy/core' import eventNormalizerMiddleware from '@middy/event-normalizer' export const handler = middy() .use(eventNormalizerMiddleware()) .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"DynamoDB","type":0,"sectionRef":"#","url":"/docs/events/dynamodb","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"DynamoDB","url":"/docs/events/dynamodb#aws-documentation","content":" Using AWS Lambda with Amazon DynamoDB ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"DynamoDB","url":"/docs/events/dynamodb#example","content":" import middy from '@middy/core' import eventNormalizerMiddleware from '@middy/event-normalizer' export const handler = middy() .use(eventNormalizerMiddleware()) .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"EC2","type":0,"sectionRef":"#","url":"/docs/events/ec2","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"EC2","url":"/docs/events/ec2#aws-documentation","content":" Using AWS Lambda with Amazon EC2 ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"EC2","url":"/docs/events/ec2#example","content":" import middy from '@middy/core' export const handler = middy() .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"Cognito","type":0,"sectionRef":"#","url":"/docs/events/cognito","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"Cognito","url":"/docs/events/cognito#aws-documentation","content":" Using AWS Lambda with Amazon Cognito ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"Cognito","url":"/docs/events/cognito#example","content":" import middy from '@middy/core' export const handler = middy() .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"DocumentDB","type":0,"sectionRef":"#","url":"/docs/events/documentdb","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"DocumentDB","url":"/docs/events/documentdb#aws-documentation","content":" Using AWS Lambda with Amazon DocumentDB ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"DocumentDB","url":"/docs/events/documentdb#example","content":" import middy from '@middy/core' export const handler = middy().handler((event, context, { signal }) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"Connect","type":0,"sectionRef":"#","url":"/docs/events/connect","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"Connect","url":"/docs/events/connect#aws-documentation","content":" Using Lambda with Amazon Connect ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"Connect","url":"/docs/events/connect#example","content":" import middy from '@middy/core' export const handler = middy() .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"Internet of things (IoT)","type":0,"sectionRef":"#","url":"/docs/events/iot","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"Internet of things (IoT)","url":"/docs/events/iot#aws-documentation","content":" Using AWS Lambda with AWS IoT ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"Internet of things (IoT)","url":"/docs/events/iot#example","content":" import middy from '@middy/core' export const handler = middy() .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"IoT Events","type":0,"sectionRef":"#","url":"/docs/events/iot-events","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"IoT Events","url":"/docs/events/iot-events#aws-documentation","content":" Using AWS Lambda with AWS IoT Events ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"IoT Events","url":"/docs/events/iot-events#example","content":" import middy from '@middy/core' export const handler = middy() .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"EventBridge","type":0,"sectionRef":"#","url":"/docs/events/event-bridge","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"EventBridge","url":"/docs/events/event-bridge#aws-documentation","content":" Using AWS Lambda with Amazon EventBridge (CloudWatch Events) ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"EventBridge","url":"/docs/events/event-bridge#example","content":" import middy from '@middy/core' export const handler = middy().handler((event, context, { signal }) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"Kafka, Managed Streaming (MSK)","type":0,"sectionRef":"#","url":"/docs/events/kafka-managed-streaming","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"Kafka, Managed Streaming (MSK)","url":"/docs/events/kafka-managed-streaming#aws-documentation","content":" Using Lambda with Amazon MSK ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"Kafka, Managed Streaming (MSK)","url":"/docs/events/kafka-managed-streaming#example","content":" import middy from '@middy/core' import eventNormalizerMiddleware from '@middy/event-normalizer' export const handler = middy() .use(eventNormalizerMiddleware()) .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"Kafka, Self-Managed","type":0,"sectionRef":"#","url":"/docs/events/kafka-self-managed","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"Kafka, Self-Managed","url":"/docs/events/kafka-self-managed#aws-documentation","content":" Using Lambda with self-managed Apache Kafka ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"Kafka, Self-Managed","url":"/docs/events/kafka-self-managed#example","content":" import middy from '@middy/core' import eventNormalizerMiddleware from '@middy/event-normalizer' export const handler = middy() .use(eventNormalizerMiddleware()) .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"Function URL","type":0,"sectionRef":"#","url":"/docs/events/function-url","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"Function URL","url":"/docs/events/function-url#aws-documentation","content":" Using AWS Lambda with Amazon API GatewayWorking with HTTP APIs ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"Function URL","url":"/docs/events/function-url#example","content":" import middy from '@middy/core' import errorLoggerMiddleware from '@middy/error-logger' import inputOutputLoggerMiddleware from '@middy/input-output-logger' import httpContentNegotiationMiddleware from '@middy/http-content-negotiation' import httpContentEncodingMiddleware from '@middy/http-content-encoding' import httpCorsMiddleware from '@middy/http-cors' import httpErrorHandlerMiddleware from '@middy/http-error-handler' import httpEventNormalizerMiddleware from '@middy/http-event-normalizer' import httpHeaderNormalizerMiddleware from '@middy/http-header-normalizer' import httpJsonBodyParserMiddleware from '@middy/http-json-body-parser' import httpMultipartBodyParserMiddleware from '@middy/http-multipart-body-parser' import httpPartialResponseMiddleware from '@middy/http-partial-response' import httpResponseSerializerMiddleware from '@middy/http-response-serializer' import httpSecurityHeadersMiddleware from '@middy/http-security-headers' import httpUrlencodeBodyParserMiddleware from '@middy/http-urlencode-body-parser' import httpUrlencodePathParametersParserMiddleware from '@middy/http-urlencode-path-parser' import validatorMiddleware from 'validator' import warmupMiddleware from 'warmup' import eventSchema from './eventSchema.json' assert { type: 'json' } import responseSchema from './responseSchema.json' assert { type: 'json' } export const handler = middy({ timeoutEarlyResponse: () => { return { statusCode: 408 } }, streamifyResponse: true }) .use(warmupMiddleware()) .use(httpEventNormalizerMiddleware()) .use(httpHeaderNormalizerMiddleware()) .use( httpContentNegotiationMiddleware({ availableLanguages: ['en-CA', 'fr-CA'], availableMediaTypes: ['application/json'] }) ) .use(httpUrlencodePathParametersParserMiddleware()) // Start oneOf .use(httpUrlencodeBodyParserMiddleware()) .use(httpJsonBodyParserMiddleware()) .use(httpMultipartBodyParserMiddleware()) // End oneOf .use(httpSecurityHeadersMiddleware()) .use(httpCorsMiddleware()) .use(httpContentEncodingMiddleware()) .use( httpResponseSerializerMiddleware({ serializers: [ { regex: /^application\\/json$/, serializer: ({ body }) => JSON.stringify(body) } ], default: 'application/json' }) ) .use(httpPartialResponseMiddleware()) .use(validatorMiddleware({ eventSchema, responseSchema })) .use(httpErrorHandlerMiddleware()) .handler((event, context, { signal }) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"Kinesis Firehose","type":0,"sectionRef":"#","url":"/docs/events/kinesis-firehose","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"Kinesis Firehose","url":"/docs/events/kinesis-firehose#aws-documentation","content":" Using AWS Lambda with Amazon Kinesis Data Firehose ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"Kinesis Firehose","url":"/docs/events/kinesis-firehose#example","content":" import middy from '@middy/core' import eventNormalizerMiddleware from '@middy/event-normalizer' export const handler = middy() .use(eventNormalizerMiddleware()) .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"MQ","type":0,"sectionRef":"#","url":"/docs/events/mq","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"MQ","url":"/docs/events/mq#aws-documentation","content":" Using Lambda with Amazon MQ ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"MQ","url":"/docs/events/mq#example","content":" import middy from '@middy/core' import eventNormalizerMiddleware from '@middy/event-normalizer' export const handler = middy() .use(eventNormalizerMiddleware()) .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"All AWS Events","type":0,"sectionRef":"#","url":"/docs/events/intro","content":"","keywords":"","version":"Next"},{"title":"Middlewares that can benefit any Lambda​","type":1,"pageTitle":"All AWS Events","url":"/docs/events/intro#middlewares-that-can-benefit-any-lambda","content":" import middy from '@middy/core' import cloudWatchMetricsMiddleware from '@middy/cloudwatch-metrics' import errorLoggerMiddleware from '@middy/error-logger' import inputOutputLoggerMiddleware from '@middy/input-output-logger' import validatorMiddleware from 'validator' import warmupMiddleware from 'warmup' import eventSchema from './eventSchema.json' assert { type: 'json' } import responseSchema from './responseSchema.json' assert { type: 'json' } const handler = middy() .use(warmupMiddleware()) .use(cloudWatchMetricsMiddleware()) .use(inputOutputLoggerMiddleware()) .use(errorLoggerMiddleware()) .use(validatorMiddleware({ eventSchema, responseSchema })) .handler(async (event, context, { signal }) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"Need secrets? We have you covered there too​","type":1,"pageTitle":"All AWS Events","url":"/docs/events/intro#need-secrets-we-have-you-covered-there-too","content":" import middy from '@middy/core' import { getInternal } from '@middy/util' import rdsSignerMiddleware from '@middy/rds-signer' import secretsManagerMiddleware from '@middy/secrets-manager' import ssmMiddleware from '@middy/ssm' import stsMiddleware from '@middy/sts' export const handler = middy() .use( rdsSignerMiddleware({ fetchData: { rdsSigner: { region: process.env.AWS_REGION, hostname: process.env.RDS_HOSTNAME, username: 'iam_role', port: 5555 } } }) ) .use( secretsManagerMiddleware({ fetchData: { secretsManager: '/dev/service_name/key_name' } }) ) .use( ssmMiddleware({ fetchData: { ssm: '/dev/service_name/key_name' } }) ) .use( stsMiddleware({ fetchData: { sts: { RoleArn: '.../role' } } }) ) .before(async (request) => { request.context.secrets = await getInternal(true, request) }) .handler(async (event, context, { signal }) => { // context.secrets = { rdsSigner, secretsManager, ssm, sts } }) ","version":"Next","tagName":"h2"},{"title":"How about configs? We have you covered there as well​","type":1,"pageTitle":"All AWS Events","url":"/docs/events/intro#how-about-configs-we-have-you-covered-there-as-well","content":" import middy from '@middy/core' import { getInternal } from '@middy/util' import appConfigMiddleware from '@middy/appconfig' import s3Middleware from '@middy/s3' import dynamoDBMiddleware from '@middy/dynamodb' import ssmMiddleware from '@middy/ssm' export const handler = middy() .use( appConfigMiddleware({ fetchData: { appConfig: { Application: '...', ClientId: '...', Configuration: '...', Environment: '...' } } }) ) .use( s3Middleware({ fetchData: { s3: { Bucket: '...', Key: '...' } } }) ) .use( dynamoDBMiddleware({ fetchData: { dynamodb: { TableName: '...', Key: { '...' } } } }) ) .use( ssmMiddleware({ fetchData: { ssm: '/dev/service_name/key_name' } }) ) .before(async (request) => { request.context.configs = await getInternal(true, request) }) .handler(async (event, context, { signal }) => { // context.configs = { appConfig, dynamodb, s3, ssm } }) ","version":"Next","tagName":"h2"},{"title":"RDS","type":0,"sectionRef":"#","url":"/docs/events/rds","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"RDS","url":"/docs/events/rds#aws-documentation","content":" Using AWS Lambda with Amazon RDS ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"RDS","url":"/docs/events/rds#example","content":" import middy from '@middy/core' import eventNormalizerMiddleware from '@middy/event-normalizer' export const handler = middy() .use(eventNormalizerMiddleware()) // RDS -> SNS -> Lambda .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"S3 Batch","type":0,"sectionRef":"#","url":"/docs/events/s3-batch","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"S3 Batch","url":"/docs/events/s3-batch#aws-documentation","content":" Using AWS Lambda with Amazon S3 batch operations ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"S3 Batch","url":"/docs/events/s3-batch#example","content":" import middy from '@middy/core' import eventNormalizerMiddleware from '@middy/event-normalizer' export const handler = middy() .use(eventNormalizerMiddleware()) .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"Kinesis Streams","type":0,"sectionRef":"#","url":"/docs/events/kinesis-streams","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"Kinesis Streams","url":"/docs/events/kinesis-streams#aws-documentation","content":" Using AWS Lambda with Amazon Kinesis ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"Kinesis Streams","url":"/docs/events/kinesis-streams#example","content":" import middy from '@middy/core' import eventNormalizerMiddleware from '@middy/event-normalizer' export const handler = middy() .use(eventNormalizerMiddleware()) .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"Lex","type":0,"sectionRef":"#","url":"/docs/events/lex","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"Lex","url":"/docs/events/lex#aws-documentation","content":" Using AWS Lambda with Amazon LexUsing an AWS Lambda function with Amazon Lex V2 ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"Lex","url":"/docs/events/lex#example","content":" import middy from '@middy/core' export const handler = middy() .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"S3 Object","type":0,"sectionRef":"#","url":"/docs/events/s3-object","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"S3 Object","url":"/docs/events/s3-object#aws-documentation","content":" Transforming S3 Objects with S3 Object LambdaTransforming objects with S3 Object Lambda ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"S3 Object","url":"/docs/events/s3-object#example","content":" import middy from '@middy/core' import s3ObjectResponseMiddleware from '@middy/s3-object-response' import {captureAWSv3Client, captureHTTPsGlobal} from 'aws-xray-sdk-core' export const handler = middy() .use(s3ObjectResponseMiddleware({ awsClientCapture: captureAWSv3Client, httpsCapture: captureHTTPsGlobal, bodyType: 'promise' })) .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"S3","type":0,"sectionRef":"#","url":"/docs/events/s3","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"S3","url":"/docs/events/s3#aws-documentation","content":" Using AWS Lambda with Amazon S3 ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"S3","url":"/docs/events/s3#example","content":" import middy from '@middy/core' import eventNormalizerMiddleware from '@middy/event-normalizer' export const handler = middy() .use(eventNormalizerMiddleware()) // S3 -> SNS -> SQS -> Lambda .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"SES","type":0,"sectionRef":"#","url":"/docs/events/ses","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"SES","url":"/docs/events/ses#aws-documentation","content":" Using AWS Lambda with Amazon SES ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"SES","url":"/docs/events/ses#example","content":" import middy from '@middy/core' export const handler = middy() .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"SNS","type":0,"sectionRef":"#","url":"/docs/events/sns","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"SNS","url":"/docs/events/sns#aws-documentation","content":" Using AWS Lambda with Amazon SNS ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"SNS","url":"/docs/events/sns#example","content":" import middy from '@middy/core' import eventNormalizerMiddleware from '@middy/event-normalizer' export const handler = middy() .use(eventNormalizerMiddleware()) .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"Secrets Manager","type":0,"sectionRef":"#","url":"/docs/events/secrets-manager","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"Secrets Manager","url":"/docs/events/secrets-manager#aws-documentation","content":" Using AWS Lambda with Secrets Manager ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"Secrets Manager","url":"/docs/events/secrets-manager#example","content":" import middy from '@middy/core' export const handler = middy() .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"WorkMail","type":0,"sectionRef":"#","url":"/docs/events/workmail","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"WorkMail","url":"/docs/events/workmail#aws-documentation","content":" Configuring AWS Lambda for Amazon WorkMail ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"WorkMail","url":"/docs/events/workmail#example","content":" import middy from '@middy/core' export const handler = middy() .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"FAQ","type":0,"sectionRef":"#","url":"/docs/faq","content":"","keywords":"","version":"Next"},{"title":"My lambda keep timing out without responding, what do I do?​","type":1,"pageTitle":"FAQ","url":"/docs/faq#my-lambda-keep-timing-out-without-responding-what-do-i-do","content":" Likely your event loop is not empty. This happens when you have a database connect still open for example. Checkout @middy/do-not-wait-for-empty-event-loop. ","version":"Next","tagName":"h3"},{"title":"Apollo Server","type":0,"sectionRef":"#","url":"/docs/integrations/apollo-server","content":"Apollo Server caution This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub. import middy from '@middy/core' import { ApolloServer, gql } from 'apollo-server-lambda' import { buildFederatedSchema } from '@apollo/federation' import { resolvers } from './graphql/resolvers.js' import { graphqlFileToStr } from './graphql/schema.js' const graphQL = new ApolloServer({ schema: buildFederatedSchema({ typeDefs: gql(graphqlFileToStr), resolvers }) }) // Do not use: `@middy/http-json-body-parser` it is already handled within apollo export const handler = middy().handler(graphQL.createHandler()) ","keywords":"","version":"Next"},{"title":"SQS","type":0,"sectionRef":"#","url":"/docs/events/sqs","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"SQS","url":"/docs/events/sqs#aws-documentation","content":" Using AWS Lambda with Amazon SQS ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"SQS","url":"/docs/events/sqs#example","content":" import middy from '@middy/core' import eventNormalizerMiddleware from '@middy/event-normalizer' import sqsPartialBatchFailure from '@middy/sqs-partial-batch-failure' export const handler = middy() .use(eventNormalizerMiddleware()) .use(sqsPartialBatchFailure()) .handler((event, context, {signal}) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"Integrations","type":0,"sectionRef":"#","url":"/docs/integrations/intro","content":"Integrations caution This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","keywords":"","version":"Next"},{"title":"Pino","type":0,"sectionRef":"#","url":"/docs/integrations/pino","content":"Pino caution This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","keywords":"","version":"Next"},{"title":"Serverless Framework","type":0,"sectionRef":"#","url":"/docs/integrations/serverless-framework","content":"Serverless Framework caution This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub. TODO comment about serverless-warmup","keywords":"","version":"Next"},{"title":"Serverless Stack","type":0,"sectionRef":"#","url":"/docs/integrations/serverless-stack","content":"Serverless Stack caution This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","keywords":"","version":"Next"},{"title":"VPC Lattice","type":0,"sectionRef":"#","url":"/docs/events/vpc-lattice","content":"","keywords":"","version":"Next"},{"title":"AWS Documentation​","type":1,"pageTitle":"VPC Lattice","url":"/docs/events/vpc-lattice#aws-documentation","content":" Using AWS Lambda with Amazon VPC Lattice ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"VPC Lattice","url":"/docs/events/vpc-lattice#example","content":" import middy from '@middy/core' import errorLoggerMiddleware from '@middy/error-logger' import inputOutputLoggerMiddleware from '@middy/input-output-logger' import httpContentNegotiationMiddleware from '@middy/http-content-negotiation' import httpContentEncodingMiddleware from '@middy/http-content-encoding' import httpCorsMiddleware from '@middy/http-cors' import httpErrorHandlerMiddleware from '@middy/http-error-handler' import httpEventNormalizerMiddleware from '@middy/http-event-normalizer' // required import httpHeaderNormalizerMiddleware from '@middy/http-header-normalizer' import httpJsonBodyParserMiddleware from '@middy/http-json-body-parser' import httpMultipartBodyParserMiddleware from '@middy/http-multipart-body-parser' import httpPartialResponseMiddleware from '@middy/http-partial-response' import httpResponseSerializerMiddleware from '@middy/http-response-serializer' import httpSecurityHeadersMiddleware from '@middy/http-security-headers' import httpUrlencodeBodyParserMiddleware from '@middy/http-urlencode-body-parser' import httpUrlencodePathParametersParserMiddleware from '@middy/http-urlencode-path-parser' import validatorMiddleware from 'validator' import warmupMiddleware from 'warmup' import eventSchema from './eventSchema.json' assert { type: 'json' } import responseSchema from './responseSchema.json' assert { type: 'json' } export const handler = middy({ timeoutEarlyResponse: () => { return { statusCode: 408 } } }) .use(warmupMiddleware()) .use(httpEventNormalizerMiddleware()) .use(httpHeaderNormalizerMiddleware()) .use( httpContentNegotiationMiddleware({ availableLanguages: ['en-CA', 'fr-CA'], availableMediaTypes: ['application/json'] }) ) .use(httpUrlencodePathParametersParserMiddleware()) // Start oneOf .use(httpUrlencodeBodyParserMiddleware()) .use(httpJsonBodyParserMiddleware()) .use(httpMultipartBodyParserMiddleware()) // End oneOf .use(httpSecurityHeadersMiddleware()) .use(httpCorsMiddleware()) .use(httpContentEncodingMiddleware()) .use( httpResponseSerializerMiddleware({ serializers: [ { regex: /^application\\/json$/, serializer: ({ body }) => JSON.stringify(body) } ], default: 'application/json' }) ) .use(httpPartialResponseMiddleware()) .use(validatorMiddleware({ eventSchema, responseSchema })) .use(httpErrorHandlerMiddleware()) .handler((event, context, { signal }) => { // ... }) ","version":"Next","tagName":"h2"},{"title":"AWS Relational Database Service (RDS)","type":0,"sectionRef":"#","url":"/docs/integrations/RDS","content":"AWS Relational Database Service (RDS) caution This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub. First, you need to pass in a password. In order from most secure to least: RDS.Signer, SecretsManager, SSM using SecureString.SSM can be considered equally secure to SecretsManager if you have your own password rotation system. Additionally, you will want to verify the RDS certificate and the domain of your connection. You can use this sudo code to get you started: import tls from 'tls' // https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html const ca = `-----BEGIN CERTIFICATE----- ...` connectionOptions = { ..., ssl: { rejectUnauthorized: true, ca, checkServerIdentity: (host, cert) => { const error = tls.checkServerIdentity(host, cert) if ( error && !cert.subject.CN.endsWith('.rds.amazonaws.com') ) { return error } } } } Corresponding RDS.ParameterGroups values should be set to enforce TLS connections.","keywords":"","version":"Next"},{"title":"Contributing","type":0,"sectionRef":"#","url":"/docs/intro/contributing","content":"Contributing In the spirit of Open Source Software, everyone is very welcome to contribute to this repository. Feel free to raise issues or to submit Pull Requests. Before contributing to the project, make sure to have a look at our Code of Conduct.","keywords":"","version":"Next"},{"title":"Handling Errors","type":0,"sectionRef":"#","url":"/docs/intro/handling-errors","content":"Handling Errors But, what happens when there is an error? When there is an error, the regular control flow is stopped and the execution is moved back to all the middlewares that implemented a special phase called onError, following the same order as after. Every onError middleware can decide to handle the error and create a proper response or to delegate the error to the next middleware. When a middleware handles the error and creates a response, the execution is still propagated to all the other error middlewares and they have a chance to update or replace the response as needed. At the end of the error middlewares sequence, the response is returned to the user. If no middleware manages the error, the Lambda execution fails reporting the unmanaged error. // Initialize response request.response = request.response ?? {} // Add to response request.response.add = 'more' // Override an error request.error = new Error('...') // handle the error return request.response ","keywords":"","version":"Next"},{"title":"Getting started","type":0,"sectionRef":"#","url":"/docs/intro/getting-started","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"Getting started","url":"/docs/intro/getting-started#install","content":" To install middy, you can use NPM: npmYarnpnpm npm install --save @middy/core If you are using TypeScript, you will also want to make sure that you have installed the @types/aws-lambda peer-dependency: npmYarnpnpm npm install --save-dev @types/aws-lambda ","version":"Next","tagName":"h2"},{"title":"Usage​","type":1,"pageTitle":"Getting started","url":"/docs/intro/getting-started#usage","content":" As you will see in the next example, using middy is very simple and requires just few steps: Write your Lambda handlers as usual, focusing mostly on implementing the bare business logic for them.Import middy and all the middlewares you want to use.Wrap your handler in the middy() factory function. This will return a new enhanced instance of your original handler, to which you will be able to attach the middlewares you need.Attach all the middlewares you need using the function .use(somemiddleware()) ","version":"Next","tagName":"h2"},{"title":"Example​","type":1,"pageTitle":"Getting started","url":"/docs/intro/getting-started#example","content":" import middy from '@middy/core' import middleware1 from 'sample-middleware1' import middleware2 from 'sample-middleware2' import middleware3 from 'sample-middleware3' const lambdaHandler = (event, context) => { /* your business logic */ } export const handler = middy() .use(middleware1()) .use(middleware2()) .use(middleware3()) .handler(lambdaHandler) .use() takes a single middleware or an array of middlewares, so you can attach multiple middlewares in a single call: import middy from '@middy/core' import middleware1 from 'sample-middleware1' import middleware2 from 'sample-middleware2' import middleware3 from 'sample-middleware3' const lambdaHandler = (event, context) => { /* your business logic */ } export const handler = middy() .use([middleware1(), middleware2(), middleware3()]) .handler(lambdaHandler) You can also attach inline middlewares by using the functions .before, .after and .onError. For a more detailed use case and examples check the Writing a middleware section. ","version":"Next","tagName":"h2"},{"title":"Hooks","type":0,"sectionRef":"#","url":"/docs/intro/hooks","content":"Hooks Middy provides hooks into it's core to allow for monitoring, setup, and cleaning that may not be possible within a middleware. In order of execution beforePrefetch(): Triggered once before middlewares are attached and prefetches are executed.requestStart(): Triggered on every request before the first middleware.beforeMiddleware/afterMiddleware(fctName): Triggered before/after every before, after, and onError middleware function. The function name is passed in, this is why all middlewares use a verbose naming pattern.beforeHandler/afterHandler(): Triggered before/after the handler.requestEnd(request): Triggered right before the response is returned, including thrown errors. See Profiling for example usage.","keywords":"","version":"Next"},{"title":"Early return","type":0,"sectionRef":"#","url":"/docs/intro/early-interrupt","content":"Early return Some middlewares might need to stop the whole execution flow and return a response immediately. If you want to do this you can invoke return response in your middleware. Note: this will totally stop the execution of successive middlewares in any phase (before, after, onError) and returns an early response (or an error) directly at the Lambda level. If your middlewares do a specific task on every request like output serialization, error handling or clean, these won't be invoked in this case. They will have to be handled before the return. In this example, we can use this capability for building a sample caching middleware: // some function that calculates the cache id based on the current event const calculateCacheId = (event) => { /* ... */ } const storage = {} // middleware const cacheMiddleware = (options) => { let cacheKey const cacheMiddlewareBefore = async (request) => { cacheKey = options.calculateCacheId(request.event) if (options.storage.hasOwnProperty(cacheKey)) { // exits early and returns the value from the cache if it's already there return options.storage[cacheKey] } } const cacheMiddlewareAfter = async (request) => { // stores the calculated response in the cache options.storage[cacheKey] = request.response } return { before: cacheMiddlewareBefore, after: cacheMiddlewareAfter } } // sample usage const lambdaHandler = (event, context) => { /* ... */ } export const handler = middy() .use( cacheMiddleware({ calculateCacheId, storage }) ) .handler(lambdaHandler) ","keywords":"","version":"Next"},{"title":"History","type":0,"sectionRef":"#","url":"/docs/intro/history","content":"","keywords":"","version":"Next"},{"title":"A brief history of Middy​","type":1,"pageTitle":"History","url":"/docs/intro/history#a-brief-history-of-middy","content":" Middy was started in the early days of AWS Lambda (~2016) and it was initially only used to remove duplication in a big serverless project with tons of lambdas. Only in August 2017 Middy's source code was released on GitHub making it an open source project.2017-08-03: First commit2017-09-04: v0.2.1 First release2020-04-25: v1.0.0 Released2020 Review by @lmammino2020 Review by @willfarrell2021: v2.0.0 Coming soon2021-04-01: v2.0.0 Released2021-02-02: 2021 Review from @lmammino2022-05-12: v3.0.0 Released2022-11-24: v4.0.0 Released2023-08-22: JSAwardsIE 2023 Most valued JavaScript open source project2023-11-??: v5.0.0 Released2024-11-??: v6.0.0 Released Fun Fact: The adding of the emoji-icon was the 2nd commit to the project. ","version":"Next","tagName":"h2"},{"title":"Powertools for AWS Lambda","type":0,"sectionRef":"#","url":"/docs/integrations/lambda-powertools","content":"","keywords":"","version":"Next"},{"title":"Intro​","type":1,"pageTitle":"Powertools for AWS Lambda","url":"/docs/integrations/lambda-powertools#intro","content":" Powertools is a collection of utilities that can be used independently or together to help you build production-ready serverless applications. Currently, Powertools provides the following utilities that are compatible with Middy: Logger - Structured logging made easier with a middleware to capture key fields from the Lambda context, cold starts, and more. Compatible with Amazon CloudWatch, Datadog, and more.Tracer - An opinionated wrapper around AWS X-Ray SDK for Node.js with a middleware to automatically capture traces for function invocations, HTTP requests, and AWS SDK calls, and more.Metrics - Create Amazon CloudWatch custom metrics asynchronously with a middleware that takes care of capturing cold starts, and flushes metrics to CloudWatch in EMF-formatted batches.Idempotency - Middleware to make your Lambda functions idempotent and prevent duplicate execution based on payload content. ","version":"Next","tagName":"h2"},{"title":"Logger​","type":1,"pageTitle":"Powertools for AWS Lambda","url":"/docs/integrations/lambda-powertools#logger","content":" Key features: Capturing key fields from the Lambda context, cold starts, and structure logging output as JSON.Logging Lambda invocation events when instructed (disabled by default).Printing all the logs only for a percentage of invocations via log sampling (disabled by default).Appending additional keys to structured logs at any point in time.Providing a custom log formatter (Bring Your Own Formatter) to output logs in a structure compatible with your organization’s Logging RFC. ","version":"Next","tagName":"h2"},{"title":"Install​","type":1,"pageTitle":"Powertools for AWS Lambda","url":"/docs/integrations/lambda-powertools#install","content":" npmYarnpnpm npm install --save @aws-lambda-powertools/logger ","version":"Next","tagName":"h3"},{"title":"Options​","type":1,"pageTitle":"Powertools for AWS Lambda","url":"/docs/integrations/lambda-powertools#options","content":" Class constructor accepts the following options, which are all optional: logLevel (string|LogLevel): Log level to use. Defaults to INFO, but you can use any of the following values: SILENT, DEBUG, INFO, WARN, ERROR, CRITICAL.serviceName (string): Service name to use that will be used in all log statements. Defaults to service_undefined.sampleRateValue (number): number between 0.0 and 1 to determine the sample rate for debug logging. Defaults to 0 (no debub logging). Middleware accepts the following options: logger (Logger) (required): An instance of the Logger class.option (object) (optional): An object with the following keys: logEvent (boolean) (optional): Whether to log the Lambda invocation event. Defaults to false.clearState (boolean) (optional): Whether to clear the logger state after each invocation. Defaults to false. ","version":"Next","tagName":"h3"},{"title":"Sample usage​","type":1,"pageTitle":"Powertools for AWS Lambda","url":"/docs/integrations/lambda-powertools#sample-usage","content":" import middy from '@middy/core'; import { Logger, injectLambdaContext } from '@aws-lambda-powertools/logger'; const logger = new Logger({ serviceName: 'serverlessAirline' }); const lambdaHandler = async (_event, _context) => { logger.info('This is an INFO log with some context', { foo: { bar: 'baz' } }); }; export const handler = middy(lambdaHandler) .use(injectLambdaContext(logger)); The above code will output the following log: { "cold_start": true, "function_arn": "arn:aws:lambda:eu-west-1:123456789012:function:shopping-cart-api-lambda-prod-eu-west-1", "function_memory_size": 128, "function_request_id": "c6af9ac6-7b61-11e6-9a41-93e812345678", "function_name": "shopping-cart-api-lambda-prod-eu-west-1", "level": "INFO", "message": "This is an INFO log with some context", "foo": { "bar": "baz" }, "service": "serverlessAirline", "timestamp": "2021-12-12T21:21:08.921Z", "xray_trace_id": "abcdef123456abcdef123456abcdef123456" } As you can see, the log entry includes several fields that are automatically captured by the Logger utility, and that can help you better understand the context of the log entry. For example, the cold_start field indicates whether the Lambda function was cold started or not, and the xray_trace_id field contains the AWS X-Ray trace ID for the Lambda invocation. This is useful when you're troubleshooting a problem and want to correlate the logs with the traces. The Logger utility also allows you to append arbitary keys to the log entry at both the global level, at the invocation level, and at the single log level. For example, there might be some keys that you want to include in all log entries, such as the environment key to differentiate between the prod and dev environments, or in other cases you might want to include some keys only for a specific log entry, such as the customer_id key to identify the customer that triggered the Lambda invocation. Additionally, you can also configure Logger to log the Lambda invocation event, which can be useful when you're troubleshooting a problem and want to see the event that triggered the Lambda invocation. Finally, Logger allows you to define a custom log formatter to output logs in a different JSON structure from the default one. This is useful when you want to output logs in a structure that is compatible with your organization's requirements. ","version":"Next","tagName":"h3"},{"title":"Tracer​","type":1,"pageTitle":"Powertools for AWS Lambda","url":"/docs/integrations/lambda-powertools#tracer","content":" Key features: Auto-capturing cold start and service name as annotations, and responses or full exceptions as metadata.Automatically tracing HTTP(S) clients and generating segments for each request.Supporting tracing functions via decorators, middleware, and manual instrumentation.Supporting tracing AWS SDK v2 and v3 via AWS X-Ray SDK for Node.js.Auto-disable tracing when not running in the Lambda environment. ","version":"Next","tagName":"h2"},{"title":"Install​","type":1,"pageTitle":"Powertools for AWS Lambda","url":"/docs/integrations/lambda-powertools#install-1","content":" npmYarnpnpm npm install --save @aws-lambda-powertools/tracer ","version":"Next","tagName":"h3"},{"title":"Options​","type":1,"pageTitle":"Powertools for AWS Lambda","url":"/docs/integrations/lambda-powertools#options-1","content":" Class constructor accepts the following options, which are all optional: serviceName (string): Service name to use that will be used in all log statements. Defaults to service_undefined.enabled (boolean): Whether to enable tracing. Defaults to true.captureHTTPsRequests (boolean): Whether to capture outgoing HTTP(S) requests as segment metadata. Defaults to true. Middleware accepts the following options: tracer (Tracer) (required): An instance of the Tracer class.option (object) (optional): An object with the following keys: captureResponse (boolean) (optional): Whether to capture the Lambda invocation result as segment metadata. Defaults to true. ","version":"Next","tagName":"h3"},{"title":"Sample usage​","type":1,"pageTitle":"Powertools for AWS Lambda","url":"/docs/integrations/lambda-powertools#sample-usage-1","content":" import middy from '@middy/core'; import { Tracer, captureLambdaHandler } from '@aws-lambda-powertools/tracer'; import { SecretsManagerClient } from '@aws-sdk/client-secrets-manager'; const tracer = new Tracer({ serviceName: 'serverlessAirline' }); const client = tracer.captureAWSv3Client( new SecretsManagerClient({}) ); const lambdaHandler = async (_event, _context) => { tracer.putAnnotation('successfulBooking', true); }; export const handler = middy(lambdaHandler) .use(captureLambdaHandler(tracer)); The above code instructs the Tracer utility to create a custom segment named ## index.handler and to add an annotation to it with the key successfulBooking and the value true. The segment name is automatically generated based on the handler name, and the ## prefix is used to indicate that this is a custom segment. The Tracer utility also automatically captures the cold start and service name as annotations, and the Lambda invocation result or any error thrown as metadata. The segment data will be automatically sent to AWS X-Ray when the Lambda function completes its execution. Tracer also automatically captures and traces any outgoing HTTP(S) requests made by the Lambda function. For example, if your function makes a request to a custom API, the Tracer utility will automatically create a segment for that request which will appear in your trace data and service map. Additionally, it will also capture any AWS SDK calls made by the function, and do the same for them. ","version":"Next","tagName":"h3"},{"title":"Metrics​","type":1,"pageTitle":"Powertools for AWS Lambda","url":"/docs/integrations/lambda-powertools#metrics","content":" Key features: Aggregating up to 100 metrics using a single CloudWatch EMF object.Validating your metrics against common metric definitions mistakes (for example, metric unit, values, max dimensions, max metrics).Metrics are created asynchronously by the CloudWatch service. You do not need any custom stacks, and there is no impact to Lambda function latency.Creating a one-off metric with different dimensions. If you're new to Amazon CloudWatch, there are a few terms like Namespace, Dimensions, Unit, etc, that you must be aware of before you start using the Metrics utility. To learn more about these terms, see the documentation on PowerTools Metrics. ","version":"Next","tagName":"h2"},{"title":"Install​","type":1,"pageTitle":"Powertools for AWS Lambda","url":"/docs/integrations/lambda-powertools#install-2","content":" npmYarnpnpm npm install --save @aws-lambda-powertools/metrics ","version":"Next","tagName":"h3"},{"title":"Options​","type":1,"pageTitle":"Powertools for AWS Lambda","url":"/docs/integrations/lambda-powertools#options-2","content":" Class constructor accepts the following options, which are all optional: serviceName (string): Service name to use that will be used in all log statements. Defaults to service_undefined.defaultNamespace (string): Default namespace to use for all metrics. Defaults to default_namespace. Middleware accepts the following options: metrics (Metric) (required): An instance of the Metrics class.option (object) (optional): An object with the following keys: throwOnEmptyMetrics (boolean) (optional): Whether to throw an error if no metrics were added. Defaults to false.captureColdStartMetric (boolean) (optional): Whether to capture the cold start metric. Defaults to true. ","version":"Next","tagName":"h3"},{"title":"Sample usage​","type":1,"pageTitle":"Powertools for AWS Lambda","url":"/docs/integrations/lambda-powertools#sample-usage-2","content":" import middy from '@middy/core'; import { Metrics, MetricUnits, logMetrics } from '@aws-lambda-powertools/metrics'; const metrics = new Metrics({ namespace: 'serverlessAirline', serviceName: 'orders' }); const lambdaHandler = async (_event: unknown, _context: unknown): Promise<void> => { metrics.addMetric('successfulBooking', MetricUnits.Count, 1); }; export const handler = middy(lambdaHandler) .use(logMetrics(metrics)); The above code will output a CloudWatch EMF object similar to the following: { "successfulBooking": 1.0, "_aws": { "Timestamp": 1592234975665, "CloudWatchMetrics": [{ "Namespace": "successfulBooking", "Dimensions": [ [ "service" ] ], "Metrics": [{ "Name": "successfulBooking", "Unit": "Count" }] }], "service": "orders" } } This EMF object will be sent to CloudWatch asynchronously by the CloudWatch service. You do not need any custom stacks, and there is no impact to Lambda function latency. The Metrics utility supports high-resolution metrics as well as multi-value metrics. It also allows you to add default dimensions that are used in all the metrics emitted by your application or create a one-off metric with different dimensions. ","version":"Next","tagName":"h3"},{"title":"Idempotency​","type":1,"pageTitle":"Powertools for AWS Lambda","url":"/docs/integrations/lambda-powertools#idempotency","content":" Key features: Prevent Lambda handler from executing more than once on the same event payload during a time windowEnsure Lambda handler returns the same result when called with the same payloadSelect a subset of the event as the idempotency key using JMESPath expressionsSet a time window in which records with the same payload should be considered duplicatesExpires in-progress executions if the Lambda function times out halfway through The property of idempotency means that an operation does not cause additional side effects if it is called more than once with the same input parameters. Idempotent operations will return the same result when they are called multiple times with the same parameters. This makes idempotent operations safe to retry. ","version":"Next","tagName":"h2"},{"title":"Install​","type":1,"pageTitle":"Powertools for AWS Lambda","url":"/docs/integrations/lambda-powertools#install-3","content":" npmYarnpnpm npm install --save @aws-lambda-powertools/idempotency @aws-sdk/client-dynamodb @aws-sdk/lib-dynamodb ","version":"Next","tagName":"h3"},{"title":"Options​","type":1,"pageTitle":"Powertools for AWS Lambda","url":"/docs/integrations/lambda-powertools#options-3","content":" Middleware accepts the following options: persistenceStore (BasePersistenceLayer): Class used to interact with a persistence store.config (IdempotencyConfig) (optional): Configuration object to customize the default behavior of the idempotency feature. ","version":"Next","tagName":"h3"},{"title":"Sample usage​","type":1,"pageTitle":"Powertools for AWS Lambda","url":"/docs/integrations/lambda-powertools#sample-usage-3","content":" import middy from '@middy/core'; import { randomUUID } from 'node:crypto'; import { makeHandlerIdempotent } from '@aws-lambda-powertools/idempotency/middleware'; import { DynamoDBPersistenceLayer } from '@aws-lambda-powertools/idempotency/dynamodb'; const persistenceStore = new DynamoDBPersistenceLayer({ tableName: 'idempotencyTableName', }); const createSubscriptionPayment = async ( event ) => { // ... create payment return { id: randomUUID(), productId: event.productId, }; }; export const handler = middy( async (event, _context) => { try { const payment = await createSubscriptionPayment(event); return { paymentId: payment.id, message: 'success', statusCode: 200, }; } catch (error) { throw new Error('Error creating payment'); } } ).use( makeHandlerIdempotent({ persistenceStore, }) ); ","version":"Next","tagName":"h3"},{"title":"Best practices​","type":1,"pageTitle":"Powertools for AWS Lambda","url":"/docs/integrations/lambda-powertools#best-practices","content":" ","version":"Next","tagName":"h2"},{"title":"Using multiple utilities​","type":1,"pageTitle":"Powertools for AWS Lambda","url":"/docs/integrations/lambda-powertools#using-multiple-utilities","content":" You can use multiple Powertools utilities in your Lambda function by chaining the respective middlewares together. When doing so the Powertools team recommends that you place the Tracer middleware at the top of the middleware chain, followed by the Logger and any other middlewares. This is because the Tracer middleware will create a new segment for each Lambda invocation, and the Logger might want to log the event that triggered the Lambda invocation. With this placement you will be able to have a segment that closely matches the actual duration of your Lambda function, and you will be able to see the event that triggered the function invocation before it's potentially modified by other middlewares. export const handler = middy(() => { /* ... */ }) .use(captureLambdaHandler(tracer)) .use(injectLambdaContext(logger, { logEvent: true })) .use(logMetrics(metrics, { captureColdStartMetric: true })); ","version":"Next","tagName":"h3"},{"title":"Cleaning up on early returns​","type":1,"pageTitle":"Powertools for AWS Lambda","url":"/docs/integrations/lambda-powertools#cleaning-up-on-early-returns","content":" As discussed in the early return section, some middlewares might need to stop the whole execution flow and return a response immediately. In this case, if you are writing your own middleware that will work with the Powertools utilities, you must make sure to clean up the utilities before returning. For example, if you are using the Tracer utility, you must make sure to call the close method so that the Tracer can properly close the current segment and send it to X-Ray. Likewise, if you are using the Metrics utility, it's a good practice to call the clearMetrics method so that the Metrics utility can emit the metrics that were stored in the buffer and avoid you losing any data. Following the example described in the linked section, you can clean up all the utilities by doing the following: import { cleanupMiddlewares } from '@aws-lambda-powertools/commons'; // some function that calculates the cache id based on the current event const calculateCacheId = (event) => { /* ... */ } const storage = {} // middleware const cacheMiddleware = (options) => { let cacheKey const cacheMiddlewareBefore = async (request) => { cacheKey = options.calculateCacheId(request.event) if (options.storage.hasOwnProperty(cacheKey)) { // clean up the Powertools utilities before returning cleanupMiddlewares() // exits early and returns the value from the cache if it's already there return options.storage[cacheKey] } } const cacheMiddlewareAfter = async (request) => { // stores the calculated response in the cache options.storage[cacheKey] = request.response } return { before: cacheMiddlewareBefore, after: cacheMiddlewareAfter } } // sample usage const handler = middy((event, context) => { /* ... */ }) .use(captureLambdaHandler(tracer)) .use(injectLambdaContext(logger, { logEvent: true })) .use(logMetrics(metrics, { captureColdStartMetric: true })) .use( cacheMiddleware({ calculateCacheId, storage }) ); ","version":"Next","tagName":"h3"},{"title":"Sponsoring","type":0,"sectionRef":"#","url":"/docs/intro/sponsoring","content":"Sponsoring If Middy is adding value to your project or organization and you would like to support its long term maintenance, becoming a sponsor is a great way to do that. GitHub Sponsors","keywords":"","version":"Next"},{"title":"How it works","type":0,"sectionRef":"#","url":"/docs/intro/how-it-works","content":"","keywords":"","version":"Next"},{"title":"Execution order​","type":1,"pageTitle":"How it works","url":"/docs/intro/how-it-works#execution-order","content":" Middlewares have two phases: before and after. The before phase, happens before the handler is executed. In this code the response is not created yet, so you will have access only to the request. The after phase, happens after the handler is executed. In this code you will have access to both the request and the response. If you have three middlewares attached (as in the image above), this is the expected order of execution: middleware1 (before)middleware2 (before)middleware3 (before)handlermiddleware3 (after)middleware2 (after)middleware1 (after) Notice that in the after phase, middlewares are executed in inverted order, this way the first handler attached is the one with the highest priority as it will be the first able to change the request and last able to modify the response before it gets sent to the user. ","version":"Next","tagName":"h2"},{"title":"Influence","type":0,"sectionRef":"#","url":"/docs/intro/influence","content":"Influence Middy has been one of the first projects to encourage the adoption of middlewares to simplify code reuse and best practices within the context of Lambda. Since middy started to gain popularity in the Node.js ecosystem, we have seen some independent projects taking the same ideas to other ecosystems: .Net port Voxel.MiddyNet @vgaltesGoLang port Vesper Do you have a similar project? Let us know.","keywords":"","version":"Next"},{"title":"Release Cycle","type":0,"sectionRef":"#","url":"/docs/intro/release-cycle","content":"Release Cycle Each major release has a two (2) month Alpha period, one (1) month Beta, before a full release and becomes Stable. Each release goes into Maintenance after nine (9) months, as the next release enters Alpha. This time period is chosen for alignment with AWS Lambda nodejs runtime releases. All Node.js Long-Term Support (LTS) releases that have AWS Lambda runtimes are supported. Version\tStatus\tAlpha Release\tStable Release\tEnd-of-Lifev6\tScoping\t2024-??-??\t2024-10-29\t2026-04-30 v5\tStable\t2023-06-01\t2023-10-24\t2025-04-30 v4\tDeprecated\t2022-10-17\t2022-11-24\t2023-09-11 v3\tDeprecated\t2022-01-04\t2022-05-12\t2022-12-31 v2\tDeprecated\t2021-01-24\t2021-04-01\t2022-05-12 v1\tDeprecated\t2018-05-20\t2020-04-25\t2021-04-01 v0\tDeprecated\t2017-08-03\t2017-09-04\t2020-04-25 Dates are subject to change. If your organization requires a longer maintenance period of Middy, please reach out.","keywords":"","version":"Next"},{"title":"Utilities","type":0,"sectionRef":"#","url":"/docs/intro/utilities","content":"Utilities caution This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub.","keywords":"","version":"Next"},{"title":"Testing","type":0,"sectionRef":"#","url":"/docs/intro/testing","content":"Testing caution This page is a work in progress. If you want to help us to make this page better, please consider contributing on GitHub. As of Middy v3, by default it will trigger an Abort signal shortly before a lambda times out to allow your handler to safely stop up and middleware to clean before the lambda terminates. When writing tests for lambda handlers wrapped with middy you'll need to account for this. There are a few approaches: Set middy(handler, { timeoutEarlyInMillis: 0 }) to alternatively disable the creation of the AbortController.Set middy(handler, { timeoutEarlyResponse: () => {} }) to disable the timeout error from being thrown using a no-op.Set context.getRemainingTimeInMillis = falsy to disable the creation of the AbortController. When using Middy cache and cacheExpiry in unit tests for functions in your code, it is important to conditionally disable them for test cases by setting both Middy options fields as follows: { cache: false, cacheExpiry: 0, ... } Failing to do so may make the tests end with unfinished worker processes. Although they may still succeed, this can cause issues and timeout errors, namely in CI/CD environments. An example of a message generated by Jest unit tests and which signals the need for this is as follows: A worker process has failed to exit gracefully and has been force exited. This is likely caused by tests leaking due to improper teardown. Try running with --detectOpenHandles to find leaks. Active timers can also cause this, ensure that .unref() was called on them. ","keywords":"","version":"Next"},{"title":"Streamify Response","type":0,"sectionRef":"#","url":"/docs/intro/streamify-response","content":"","keywords":"","version":"Next"},{"title":"Lambda Function URL Example​","type":1,"pageTitle":"Streamify Response","url":"/docs/intro/streamify-response#lambda-function-url-example","content":" import middy from '@middy/core' import { createReadableStream } from '@datastream/core' const lambdaHandler = (event, context) => { return { statusCode: 200, headers: { 'Content-Type': 'text/csv' }, body: createReadableStream('...') // or string } } export const handler = middy({ streamifyResponse: true }).handler(lambdaHandler) ","version":"Next","tagName":"h2"},{"title":"Lambda InvokeWithResponseStream Example​","type":1,"pageTitle":"Streamify Response","url":"/docs/intro/streamify-response#lambda-invokewithresponsestream-example","content":" import middy from '@middy/core' import { createReadableStream } from '@datastream/core' const lambdaHandler = (event, context) => { return createReadableStream('...') // or string } export const handler = middy({ streamifyResponse: true }).handler(lambdaHandler) ","version":"Next","tagName":"h2"},{"title":"Requesting Lambda​","type":1,"pageTitle":"Streamify Response","url":"/docs/intro/streamify-response#requesting-lambda","content":" import { LambdaClient, InvokeWithResponseStreamCommand } from '@aws-sdk/client-lambda' const lambda = new LambdaClient() const res = await lambda.send( new InvokeWithResponseStreamCommand({ FunctionName: 'function-name', Payload: JSON.stringify({...}) }) ) const decoder = new TextDecoder('utf-8') let body = '' for await (const chunk of res.EventStream) { if (chunk?.PayloadChunk?.Payload) { body += decoder.decode(Buffer.from(chunk.PayloadChunk.Payload)) } } ","version":"Next","tagName":"h3"},{"title":"appconfig","type":0,"sectionRef":"#","url":"/docs/middlewares/appconfig","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"appconfig","url":"/docs/middlewares/appconfig#install","content":" To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/appconfig npm install --save-dev @aws-sdk/client-appconfigdata ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"appconfig","url":"/docs/middlewares/appconfig#options","content":" AwsClient (object) (default AppConfigClient): AppConfigClient class constructor (i.e. that has been instrumented with AWS XRay). Must be from @aws-sdk/client-appconfig.awsClientOptions (object) (default undefined): Options to pass to AppConfigClient class constructor.awsClientAssumeRole (string) (default undefined): Internal key where secrets are stored. See @middy/sts on to set this.awsClientCapture (function) (default undefined): Enable XRay by passing captureAWSv3Client from aws-xray-sdk in.fetchData (object) (required): Mapping of internal key name to API request parameters.disablePrefetch (boolean) (default false): On cold start requests will trigger early if they can. Setting awsClientAssumeRole disables prefetch.cacheKey (string) (default appconfig): Cache key for the fetched data responses. Must be unique across all middleware.cacheExpiry (number) (default -1): How long fetch data responses should be cached for. -1: cache forever, 0: never cache, n: cache for n ms.setToContext (boolean) (default false): Store credentials to request.context. NOTES: Lambda is required to have IAM permission for appconfig:StartConfigurationSession and appconfig:GetLatestConfiguration ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"appconfig","url":"/docs/middlewares/appconfig#sample-usage","content":" import middy from '@middy/core' import appConfig from '@middy/appconfig' const handler = middy() .use( appConfig({ fetchData: { config: { Application: '...', ClientId: '...', Configuration: '...', Environment: '...' } } }) ) .handler((event, context) => { const response = { statusCode: 200, headers: {}, body: JSON.stringify({ message: 'hello world' }) } return response }) ","version":"Next","tagName":"h2"},{"title":"Bundling​","type":1,"pageTitle":"appconfig","url":"/docs/middlewares/appconfig#bundling","content":" To exclude @aws-sdk add @aws-sdk/client-appconfig to the exclude list. ","version":"Next","tagName":"h2"},{"title":"Usage with TypeScript​","type":1,"pageTitle":"appconfig","url":"/docs/middlewares/appconfig#usage-with-typescript","content":" Data in AppConfig can be stored as arbitrary structured data. It's not possible to know in advance what shape the fetched data will have, so by default the fetched parameters will have type unknown. You can provide some type hints by leveraging the appConfigReq utility function. This function allows you to specify what's the expected type that will be fetched for every AppConfig request. The idea is that, for every request specified in the fetchData option, rather than just providing the parameter path as a string, you can wrap it in a appConfigReq<ParamType>(config) call. Internally, appConfigReq is a function that will return config as received, but it allows you to use generics to provide type hints for the expected type for that parameter. This way TypeScript can understand how to treat the additional data attached to the context and stored in the internal storage. The following example illustrates how to use appConfigReq: import middy from '@middy/core' import appConfig, { appConfigReq } from '@middy/appconfig' const lambdaHandler = (event, context) => { return { statusCode: 200, headers: {}, body: JSON.stringify({ message: 'hello world' }) } }) export const handler = middy() .use( appConfig({ fetchData: { config: { Application: '...', ClientId: '...', Configuration: '...', Environment: '...' } } }) ) .before(async (request) => { const data = await getInternal('config', request) // data.config.field1 (string) // data.config.field2 (string) // data.config.field3 (number) }) .handler(lambdaHandler) ","version":"Next","tagName":"h2"},{"title":"Use with TypeScript","type":0,"sectionRef":"#","url":"/docs/intro/typescript","content":"Use with TypeScript Middy can be used with TypeScript with typings built in in every official package. Here's an example of how you might be using Middy with TypeScript for a Lambda receiving events from API Gateway and fetching secrets from Secrets Manager: import middy from '@middy/core' import secretsManager from '@middy/secrets-manager' import { APIGatewayProxyEvent, APIGatewayProxyResult } from 'aws-lambda' export const handler = middy<APIGatewayProxyEvent, APIGatewayProxyResult>() .use( secretsManager({ fetchData: { apiToken: 'dev/api_token' }, awsClientOptions: { region: 'us-east-1' }, setToContext: true }) ) .handler(async (req, context) => { // The context type gets augmented here by the secretsManager middleware. // This is just an example, obviously don't ever log your secret in real life! console.log(context.apiToken) return { statusCode: 200, body: JSON.stringify({ message: `Hello from ${event.path}`, req }), } }) Note that when using TypeScript, you should use what we call the Middleware-first, Handler-last approach, which means that you should always call the handler method last, after you have attached all the middlewares you need. This approach makes sure that, as you attach middlewares, the type system understands how the event and the context arguments are augmented by the various middlewares and inside your handler code you can have a nice type-checking and auto-completion experience. You can also write custom middlewares with TypeScript.","keywords":"","version":"Next"},{"title":"cloudwatch-metrics","type":0,"sectionRef":"#","url":"/docs/middlewares/cloudwatch-metrics","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"cloudwatch-metrics","url":"/docs/middlewares/cloudwatch-metrics#install","content":" To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/cloudwatch-metrics ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"cloudwatch-metrics","url":"/docs/middlewares/cloudwatch-metrics#options","content":" namespace (string) (optional): Defaults to aws-embedded-metrics. Sets the CloudWatch namespace that extracted metrics should be published to.dimensions (Record<String, String> | Record<String, String>[]) (optional): Explicitly overrides all dimensions. This will remove the default dimensions. You can provide an empty array to record all metrics without dimensions. For dimensions defaults and configuration see the aws-embedded-metrics docs. ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"cloudwatch-metrics","url":"/docs/middlewares/cloudwatch-metrics#sample-usage","content":" const middy = require('@middy/core') const cloudwatchMetrics = require('@middy/cloudwatch-metrics') const lambdaHandler = (event, context) => { context.metrics.putMetric('ProcessingLatency', 100, 'Milliseconds') context.metrics.setProperty( 'RequestId', '422b1569-16f6-4a03-b8f0-fe3fd9b100f8' ) } export const handler = middy() .use( cloudwatchMetrics({ namespace: 'myAppliction', dimensions: [{ Action: 'Buy' }] }) ) .handler(lambdaHandler) ","version":"Next","tagName":"h2"},{"title":"dynamodb","type":0,"sectionRef":"#","url":"/docs/middlewares/dynamodb","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"dynamodb","url":"/docs/middlewares/dynamodb#install","content":" To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/dynamodb npm install --save-dev @aws-sdk/client-dynamodb @aws-sdk/util-dynamodb ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"dynamodb","url":"/docs/middlewares/dynamodb#options","content":" AwsClient (object) (default DynamoDBClient): DynamoDBClient class constructor (i.e. that has been instrumented with AWS XRay). Must be from @aws-sdk/client-dynamodb.awsClientOptions (object) (default undefined): Options to pass to DynamoDBClient class constructor.awsClientAssumeRole (string) (default undefined): Internal key where secrets are stored. See @middy/sts on to set this.awsClientCapture (function) (default undefined): Enable XRay by passing captureAWSv3Client from aws-xray-sdk in.fetchData (object) (required): Mapping of internal key name to API request parameters.disablePrefetch (boolean) (default false): On cold start requests will trigger early if they can. Setting awsClientAssumeRole disables prefetch.cacheKey (string) (default dynamodb): Cache key for the fetched data responses. Must be unique across all middleware.cacheExpiry (number) (default -1): How long fetch data responses should be cached for. -1: cache forever, 0: never cache, n: cache for n ms.setToContext (boolean) (default false): Store credentials to request.context. NOTES: Lambda is required to have IAM permission for dynamodb:BatchGetItemCommand ","version":"Next","tagName":"h2"},{"title":"do-not-wait-for-empty-event-loop","type":0,"sectionRef":"#","url":"/docs/middlewares/do-not-wait-for-empty-event-loop","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"do-not-wait-for-empty-event-loop","url":"/docs/middlewares/do-not-wait-for-empty-event-loop#install","content":" To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/do-not-wait-for-empty-event-loop ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"do-not-wait-for-empty-event-loop","url":"/docs/middlewares/do-not-wait-for-empty-event-loop#options","content":" By default the middleware sets the callbackWaitsForEmptyEventLoop property to false only in the before phase, meaning you can override it in handler to true if needed. You can set it in all steps with the options: runOnBefore (defaults to true) - sets property before running your handlerrunOnAfter (defaults to false)runOnError (defaults to false) ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"do-not-wait-for-empty-event-loop","url":"/docs/middlewares/do-not-wait-for-empty-event-loop#sample-usage","content":" import middy from '@middy/core' import doNotWaitForEmptyEventLoop from '@middy/do-not-wait-for-empty-event-loop' const lambdaHandler = (event, context) => { return {} } export const handler = middy() .use(doNotWaitForEmptyEventLoop({ runOnError: true })) .handler(lambdaHandler) ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"dynamodb","url":"/docs/middlewares/dynamodb#sample-usage","content":" import middy from '@middy/core' import dynamodb from '@middy/dynamodb' const lambdaHandler = (event, context) => { const response = { statusCode: 200, headers: {}, body: JSON.stringify({ message: 'hello world' }) } return response } export const handler = middy() .use( dynamodb({ fetchData: { config: { TableName: '...', Key: { pk: '0000' } } } }) ) .handler(lambdaHandler) ","version":"Next","tagName":"h2"},{"title":"Bundling​","type":1,"pageTitle":"dynamodb","url":"/docs/middlewares/dynamodb#bundling","content":" To exclude @aws-sdk add @aws-sdk/client-dynamodb to the exclude list. ","version":"Next","tagName":"h2"},{"title":"Usage with TypeScript​","type":1,"pageTitle":"dynamodb","url":"/docs/middlewares/dynamodb#usage-with-typescript","content":" Data in DynamoDB can be stored as arbitrary structured data. It's not possible to know in advance what shape the fetched data will have, so by default the fetched parameters will have type Record<string, NativeAttributeValue>. You can provide some type hints by leveraging the dynamoDbReq utility function. This function allows you to specify what's the expected type that will be fetched for every DynamoDB request. The idea is that, for every request specified in the fetchData option, rather than just providing the parameter configuration as an object, you can wrap it in a dynamoDbReq<ParamType>(config) call. Internally, dynamoDbReq is a function that will return config as received, but it allows you to use generics to provide type hints for the expected fetched value type for that request. This way TypeScript can understand how to treat the additional data attached to the context and stored in the internal storage. The following example illustrates how to use dynamoDbReq: import middy from '@middy/core' import dynamodb, { dynamoDbReq } from '@middy/dynamodb' const handler = middy((event, context) => { const response = { statusCode: 200, headers: {}, body: JSON.stringify({ message: 'hello world' }) } return response }) handler.use( dynamodb({ fetchData: { config: dynamoDbReq<{field1: string, field2: string, field3: number}>({ TableName: '...' Key: { pk: '0000' } }) } }) ) .before(async (request) => { const data = await getInternal('config', request) // data.config.field1 (string) // data.config.field2 (string) // data.config.field3 (number) }) ","version":"Next","tagName":"h2"},{"title":"error-logger","type":0,"sectionRef":"#","url":"/docs/middlewares/error-logger","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"error-logger","url":"/docs/middlewares/error-logger#install","content":" To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/error-logger ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"error-logger","url":"/docs/middlewares/error-logger#options","content":" logger property: a function (default (request) => console.error(request.error)) that is used to define the logging logic. It receives the Error object as first and only parameter. ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"error-logger","url":"/docs/middlewares/error-logger#sample-usage","content":" import middy from '@middy/core' import errorLogger from '@middy/error-logger' const lambdaHandler = (event, context) => { // your handler logic } export const handler = middy().use(errorLogger()).handler(lambdaHandler) ","version":"Next","tagName":"h2"},{"title":"event-normalizer","type":0,"sectionRef":"#","url":"/docs/middlewares/event-normalizer","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"event-normalizer","url":"/docs/middlewares/event-normalizer#install","content":" To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/event-normalizer ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"event-normalizer","url":"/docs/middlewares/event-normalizer#options","content":" wrapNumbers (boolean) (default undefined): Whether to return numbers as a string instead of converting them to native JavaScript numbers. This allows for the safe round-trip transport of numbers of arbitrary size. For DynamoDB Events only. ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"event-normalizer","url":"/docs/middlewares/event-normalizer#sample-usage","content":" import middy from '@middy/core' import eventNormalizer from '@middy/event-normalizer' const lambdaHandler = (event, context) => { const { Records } = event for (const record of Records) { // ... } } export const handler = middy().use(eventNormalizer()).handler(lambdaHandler) ","version":"Next","tagName":"h2"},{"title":"http-content-negotiation","type":0,"sectionRef":"#","url":"/docs/middlewares/http-content-negotiation","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"http-content-negotiation","url":"/docs/middlewares/http-content-negotiation#install","content":" To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/http-content-negotiation ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"http-content-negotiation","url":"/docs/middlewares/http-content-negotiation#options","content":" parseCharsets (defaults to true) - Allows enabling/disabling the charsets parsingavailableCharsets (defaults to undefined) - Allows defining the list of charsets supported by the Lambda functionparseEncodings (defaults to true) - Allows enabling/disabling the encodings parsingavailableEncodings (defaults to undefined) - Allows defining the list of encodings supported by the Lambda functionparseLanguages (defaults to true) - Allows enabling/disabling the languages parsingavailableLanguages (defaults to undefined) - Allows defining the list of languages supported by the Lambda functionparseMediaTypes (defaults to true) - Allows enabling/disabling the media types parsingavailableMediaTypes (defaults to undefined) - Allows defining the list of media types supported by the Lambda functionfailOnMismatch (defaults to true) - If set to true it will throw an HTTP NotAcceptable (406) exception when the negotiation fails for one of the headers (e.g. none of the languages requested are supported by the app) ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"http-content-negotiation","url":"/docs/middlewares/http-content-negotiation#sample-usage","content":" import middy from '@middy/core' import httpContentNegotiation from '@middy/http-content-negotiation' import httpHeaderNormalizer from '@middy/http-header-normalizer' import httpErrorHandler from '@middy/http-error-handler' const lambdaHandler = (event, context) => { let message, body switch (context.preferredLanguage) { case 'it-it': message = 'Ciao Mondo' break case 'fr-fr': message = 'Bonjour le monde' break default: message = 'Hello world' } switch (context.preferredMediaType) { case 'application/xml': body = `<message>${message}</message>` break case 'application/yaml': body = `---\\nmessage: ${message}` break case 'application/json': body = JSON.stringify({ message }) break default: body = message } return { statusCode: 200, body } } export const handler = middy() .use(httpHeaderNormalizer()) .use( httpContentNegotiation({ parseCharsets: false, parseEncodings: false, availableLanguages: ['it-it', 'fr-fr', 'en'], availableMediaTypes: [ 'application/xml', 'application/yaml', 'application/json', 'text/plain' ] }) ) .use(httpErrorHandler()) .handler(lambdaHandler) ","version":"Next","tagName":"h2"},{"title":"http-error-handler","type":0,"sectionRef":"#","url":"/docs/middlewares/http-error-handler","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"http-error-handler","url":"/docs/middlewares/http-error-handler#install","content":" To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/http-error-handler ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"http-error-handler","url":"/docs/middlewares/http-error-handler#options","content":" logger (defaults to console.error) - a logging function that is invoked with the current error as an argument. You can pass false if you don't want the logging to happen.fallbackMessage (default undefined) - When non-http errors (those without statusCode) occur you can set a fallback message to be used. These will be returned with a 500 status code. ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"http-error-handler","url":"/docs/middlewares/http-error-handler#sample-usage","content":" import middy from '@middy/core' import httpErrorHandler from '@middy/http-error-handler' const lambdaHandler = (event, context) => { throw new createError.UnprocessableEntity() } export const handler = middy().use(httpErrorHandler()).handler(lambdaHandler) // when Lambda runs the handler... handler({}, {}, (_, response) => { t.deepEqual(response, { statusCode: 422, body: 'Unprocessable Entity' }) }) ","version":"Next","tagName":"h2"},{"title":"http-event-normalizer","type":0,"sectionRef":"#","url":"/docs/middlewares/http-event-normalizer","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"http-event-normalizer","url":"/docs/middlewares/http-event-normalizer#install","content":" To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/http-event-normalizer ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"http-event-normalizer","url":"/docs/middlewares/http-event-normalizer#sample-usage","content":" import middy from '@middy/core' import httpEventNormalizer from '@middy/http-event-normalizer' const lambdaHander = (event, context) => { console.log(`Hello user ${event.pathParameters.userId}`) // might produce `Hello user undefined`, but not an error return {} } export const handler = middy().use(httpEventNormalizer()).handler(lambdaHander) ","version":"Next","tagName":"h2"},{"title":"http-header-normalizer","type":0,"sectionRef":"#","url":"/docs/middlewares/http-header-normalizer","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"http-header-normalizer","url":"/docs/middlewares/http-header-normalizer#install","content":" To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/http-header-normalizer ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"http-header-normalizer","url":"/docs/middlewares/http-header-normalizer#options","content":" canonical (bool) (optional): if true, modifies the headers to canonical format, otherwise the headers are normalized to lowercase (default false)defaultHeaders (object) (optional): Default headers to used if any are missing. i.e. Content-Type (default {})normalizeHeaderKey (function) (optional): a function that accepts an header name as a parameter and returns its canonical representation. ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"http-header-normalizer","url":"/docs/middlewares/http-header-normalizer#sample-usage","content":" import middy from '@middy/core' import httpHeaderNormalizer from '@middy/http-header-normalizer' const lambdaHandler = (event, context) => { return {} } export const handler = middy() .use(httpHeaderNormalizer()) .handler(lambdaHandler) ","version":"Next","tagName":"h2"},{"title":"http-cors","type":0,"sectionRef":"#","url":"/docs/middlewares/http-cors","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"http-cors","url":"/docs/middlewares/http-cors#install","content":" To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/http-cors ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"http-cors","url":"/docs/middlewares/http-cors#options","content":" credentials (bool) (optional): if true, sets Access-Control-Allow-Credentials (default false)disableBeforePreflightResponse (bool) (optional): if false, replies automatically to cors preflight requests. Set to true if handling the response in a custom way (default true)headers (string) (optional): value to put in Access-Control-Allow-Headers (default: false)methods (string) (optional): value to put in Access-Control-Allow-Methods (default: false)getOrigin (function(incomingOrigin:string, options)) (optional): take full control of the generating the returned origin. Defaults to using the origin or origins option.origin (string) (optional): origin to put in the header (default: "*")origins (array) (optional): An array of allowed origins. The incoming origin is matched against the list and is returned if present.exposeHeaders (string) (optional): value to put in Access-Control-Expose-Headers (default: false)maxAge (string) (optional): value to put in Access-Control-Max-Age header (default: null)requestHeaders (string) (optional): value to put in Access-Control-Request-Headers (default: false)requestMethods (string) (optional): value to put in Access-Control-Request-Methods (default: false)cacheControl (string) (optional): value to put in Cache-Control header on pre-flight (OPTIONS) requests (default: null) import middy from '@middy/core' import httpErrorHandler from '@middy/http-error-handler' import cors from '@middy/http-cors' const lambdaHandler = (event, context) => { throw new createError.UnprocessableEntity() } export const handler = middy() .use(httpErrorHandler()) .use(cors()) .handler(lambdaHandler) // when Lambda runs the handler... handler({}, {}, (_, response) => { t.is(response.headers['Access-Control-Allow-Origin'], '*') t.deepEqual(response, { statusCode: 422, body: 'Unprocessable Entity' }) }) ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"http-cors","url":"/docs/middlewares/http-cors#sample-usage","content":" import middy from '@middy/core' import cors from '@middy/http-cors' const lambdaHandler = (event, context) => { return {} } export const handler = middy().use(cors()).handler(lambdaHandler) // when Lambda runs the handler... handler({}, {}, (_, response) => { t.is(response.headers['Access-Control-Allow-Origin'], '*') }) ","version":"Next","tagName":"h2"},{"title":"http-json-body-parser","type":0,"sectionRef":"#","url":"/docs/middlewares/http-json-body-parser","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"http-json-body-parser","url":"/docs/middlewares/http-json-body-parser#install","content":" To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/http-json-body-parser ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"http-json-body-parser","url":"/docs/middlewares/http-json-body-parser#options","content":" reviver (function) (optional): A reviver parameter may be passed which will be used JSON.parseing the body.disableContentTypeError (boolean) (optional): Skip throwing 415 when Content-Type is invalid. Default: true, will default to false in next major version. ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"http-json-body-parser","url":"/docs/middlewares/http-json-body-parser#sample-usage","content":" import middy from '@middy/core' import httpHeaderNormalizer from '@middy/http-header-normalizer' import httpJsonBodyParser from '@middy/http-json-body-parser' const lambdaHandler = (event, context) => { return {} } export const handler = middy() .use(httpHeaderNormalizer()) .use(httpJsonBodyParser()) .handler(lambdaHandler) // invokes the handler const event = { headers: { 'Content-Type': 'application/json' // It is important that the request has the proper content type. }, body: JSON.stringify({ foo: 'bar' }) } handler(event, {}, (_, body) => { t.is(body, { foo: 'bar' }) }) ","version":"Next","tagName":"h2"},{"title":"http-content-encoding","type":0,"sectionRef":"#","url":"/docs/middlewares/http-content-encoding","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"http-content-encoding","url":"/docs/middlewares/http-content-encoding#install","content":" To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/http-content-encoding ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"http-content-encoding","url":"/docs/middlewares/http-content-encoding#options","content":" br (object) (default {}): zlib.createBrotliCompress brotliOptionsgzip (object) (default {}): zlib.createGzip gzipOptionsdeflate (object) (default {}): zlib.createDeflate deflateOptionsoverridePreferredEncoding (array[string]) (optional): Override the preferred encoding order, most browsers prefer gzip over br, even though br has higher compression. Default: [] NOTES: Important For br encoding NodeJS defaults to 11. Levels 10 & 11 have been shown to have lower performance for the level of compression they apply. Testing is recommended to ensure the right balance of compression & performance. ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"http-content-encoding","url":"/docs/middlewares/http-content-encoding#sample-usage","content":" import middy from '@middy/core' import httpContentNegotiation from '@middy/http-content-negotiation' import httpContentEncoding from '@middy/http-content-encoding' import { constants } from 'node:zlib' export const handler = middy() .use(httpContentNegotiation()) .use(httpContentEncoding({ br: { params: { [constants.BROTLI_PARAM_MODE]: constants.BROTLI_MODE_TEXT, // adjusted for UTF-8 text [constants.BROTLI_PARAM_QUALITY]: 7 } }, overridePreferredEncoding: ['br', 'gzip', 'deflate'] }) .handler((event, context) => { return { statusCode: 200, body: '{...}' } }) ","version":"Next","tagName":"h2"},{"title":"Using streams​","type":1,"pageTitle":"http-content-encoding","url":"/docs/middlewares/http-content-encoding#using-streams","content":" import middy from '@middy/core' import httpContentNegotiation from '@middy/http-content-negotiation' import httpContentEncoding from '@middy/http-content-encoding' import { constants } from 'node:zlib' import { createReadableStream } from '@datastream/core' const lambdaHandler = (event, context) => { return { statusCode: 200, body: createReadableStream('{...}') } } export const handler = middy({ streamifyResponse: true }) .use(httpContentNegotiation()) .use(httpContentEncoding({ br: { params: { [constants.BROTLI_PARAM_MODE]: constants.BROTLI_MODE_TEXT, // adjusted for UTF-8 text [constants.BROTLI_PARAM_QUALITY]: 7 } }, overridePreferredEncoding: ['br', 'gzip', 'deflate'] }) .handler(lambdaHandler) ","version":"Next","tagName":"h3"},{"title":"http-multipart-body-parser","type":0,"sectionRef":"#","url":"/docs/middlewares/http-multipart-body-parser","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"http-multipart-body-parser","url":"/docs/middlewares/http-multipart-body-parser#install","content":" To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/http-multipart-body-parser ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"http-multipart-body-parser","url":"/docs/middlewares/http-multipart-body-parser#options","content":" busboy (object) (optional): defaults to {} and it can be used to pass extraparameters to the internal busboy instance at creation time. Checkout the official documentation for more information on the supported options.charset (string) (default utf8): it can be used to change default charset.disableContentTypeError (boolean) (optional): Skip throwing 415 when Content-Type is invalid. Default: true, will default to false in next major version. Note: this middleware will buffer all the data as it is processed internally by busboy, so, if you are using this approach to parse significantly big volumes of data, keep in mind that all the data will be allocated in memory. This is somewhat inevitable with Lambdas (as the data is already encoded into the JSON in memory as Base64), but it's good to keep this in mind and evaluate the impact on you application. If you really have to deal with big files, then you might also want to consider to allowing your users to directly upload files to S3 ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"http-multipart-body-parser","url":"/docs/middlewares/http-multipart-body-parser#sample-usage","content":" import middy from '@middy/core' import httpHeaderNormalizer from '@middy/http-header-normalizer' import httpMultipartBodyParser from '@middy/http-multipart-body-parser' const lambdaHandler = (event, context) => { return {} } export const handler = middy() .use(httpHeaderNormalizer()) .use(httpMultipartBodyParser()) .handler(lambdaHandler) // invokes the handler const event = { headers: { 'Content-Type': 'multipart/form-data; boundary=----WebKitFormBoundaryppsQEwf2BVJeCe0M' }, body: 'LS0tLS0tV2ViS2l0Rm9ybUJvdW5kYXJ5cHBzUUV3ZjJCVkplQ2UwTQ0KQ29udGVudC1EaXNwb3NpdGlvbjogZm9ybS1kYXRhOyBuYW1lPSJmb28iDQoNCmJhcg0KLS0tLS0tV2ViS2l0Rm9ybUJvdW5kYXJ5cHBzUUV3ZjJCVkplQ2UwTS0t', isBase64Encoded: true } handler(event, {}, (_, body) => { t.is(body, { foo: 'bar' }) }) ","version":"Next","tagName":"h2"},{"title":"http-partial-response","type":0,"sectionRef":"#","url":"/docs/middlewares/http-partial-response","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"http-partial-response","url":"/docs/middlewares/http-partial-response#install","content":" To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/http-partial-response ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"http-partial-response","url":"/docs/middlewares/http-partial-response#options","content":" filteringKeyName (string) (optional): defaults to fields the querystring key that will be used to filter the response. ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"http-partial-response","url":"/docs/middlewares/http-partial-response#sample-usage","content":" import middy from '@middy/core' import httpPartialResponse from '@middy/http-partial-response' const lambdaHandler = (event, context) => { const response = { statusCode: 200, body: { firstname: 'John', lastname: 'Doe', gender: 'male', age: 30, address: { street: 'Avenue des Champs-Élysées', city: 'Paris' } } } return response } export const handler = middy().use(httpPartialResponse()).handler(lambdaHandler) const event = { queryStringParameters: { fields: 'firstname,lastname' } } handler(event, {}, (_, response) => { expect(response.body).toEqual({ firstname: 'John', lastname: 'Doe' }) }) ","version":"Next","tagName":"h2"},{"title":"http-security-headers","type":0,"sectionRef":"#","url":"/docs/middlewares/http-security-headers","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"http-security-headers","url":"/docs/middlewares/http-security-headers#install","content":" To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/http-security-headers ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"http-security-headers","url":"/docs/middlewares/http-security-headers#options","content":" dnsPrefetchControl controls browser DNS prefetchingexpectCt for handling Certificate Transparency (Future Feature)frameguard to prevent clickjackinghidePoweredBy to remove the Server/X-Powered-By headerhsts for HTTP Strict Transport SecurityieNoOpen sets X-Download-Options for IE8+noSniff to keep clients from sniffing the MIME typereferrerPolicy to hide the Referer headerxssFilter adds some small XSS protections ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"http-security-headers","url":"/docs/middlewares/http-security-headers#sample-usage","content":" import middy from '@middy/core' import httpSecurityHeaders from '@middy/http-security-headers' const lambdaHandler = (event, context) => { return {} } export const handler = middy().use(httpSecurityHeaders()).handler(lambdaHandler) ","version":"Next","tagName":"h2"},{"title":"http-urlencode-body-parser","type":0,"sectionRef":"#","url":"/docs/middlewares/http-urlencode-body-parser","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"http-urlencode-body-parser","url":"/docs/middlewares/http-urlencode-body-parser#install","content":" To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/http-urlencode-body-parser ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"http-urlencode-body-parser","url":"/docs/middlewares/http-urlencode-body-parser#options","content":" disableContentTypeError (boolean) (optional): Skip throwing 415 when Content-Type is invalid. Default: true, will default to false in next major version. ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"http-urlencode-body-parser","url":"/docs/middlewares/http-urlencode-body-parser#sample-usage","content":" import middy from '@middy/core' import httpHeaderNormalizer from '@middy/http-header-normalizer' import httpUrlEncodeBodyParser from '@middy/http-urlencode-body-parser' const lambdaHandler = (event, context) => { return event.body // propagates the body as response } export const handler = middy() .use(httpHeaderNormalizer()) .use(httpUrlEncodeBodyParser()) .handler(lambdaHandler) // When Lambda runs the handler with a sample event... const event = { headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, body: 'frappucino=muffin&goat%5B%5D=scone&pond=moose' } handler(event, {}, (_, body) => { t.deepEqual(body, { frappucino: 'muffin', 'goat[]': 'scone', pond: 'moose' }) }) ","version":"Next","tagName":"h2"},{"title":"http-response-serializer","type":0,"sectionRef":"#","url":"/docs/middlewares/http-response-serializer","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"http-response-serializer","url":"/docs/middlewares/http-response-serializer#install","content":" To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/http-response-serializer ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"http-response-serializer","url":"/docs/middlewares/http-response-serializer#options","content":" defaultContentType (optional): used if the request and handler don't specify what type is wanted. ","version":"Next","tagName":"h2"},{"title":"Configuration​","type":1,"pageTitle":"http-response-serializer","url":"/docs/middlewares/http-response-serializer#configuration","content":" The middleware is configured by defining some serializers. { serializers: [ { regex: /^application\\/xml$/, serializer: ({ body }) => `<message>${body}</message>`, }, { regex: /^application\\/json$/, serializer: ({ body }) => JSON.stringify(body) }, { regex: /^text\\/plain$/, serializer: ({ body }) => body } ], defaultContentType: 'application/json' } ","version":"Next","tagName":"h2"},{"title":"Serializer Functions​","type":1,"pageTitle":"http-response-serializer","url":"/docs/middlewares/http-response-serializer#serializer-functions","content":" When a matching serializer is found, the Content-Type header is set and the serializer function is run. The function is passed the entire response object, and should return either a string or an object. If a string is returned, the body attribute of the response is updated. If an object with a body attribute is returned, the entire response object is replaced. This is useful if you want to manipulate headers or add additional attributes in the Lambda response. ","version":"Next","tagName":"h2"},{"title":"Content Type Negotiation​","type":1,"pageTitle":"http-response-serializer","url":"/docs/middlewares/http-response-serializer#content-type-negotiation","content":" The header is not the only way the middleware decides which serializer to execute. The content type is determined in the following order: context.requiredContentType -- allows the handler to override everything elseThe Accept header via acceptcontext.preferredContentType -- allows the handler to override the default, but lets the request ask firstdefaultContentType middleware configuration All options allow for multiple types to be specified in your order of preference, and the first matching serializer will be executed. When planning to use Accept, an external input, it is recommended to validate that it is an expected value. ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"http-response-serializer","url":"/docs/middlewares/http-response-serializer#sample-usage","content":" import middy from '@middy/core' import httpResponseSerializer from '@middy/http-response-serializer' const lambdaHandler = (event, context) => { const body = 'Hello World' return { statusCode: 200, body } } export const handler = middy() .use( httpResponseSerializer({ serializers: [ { regex: /^application\\/xml$/, serializer: ({ body }) => `<message>${body}</message>` }, { regex: /^application\\/json$/, serializer: ({ body }) => JSON.stringify(body) }, { regex: /^text\\/plain$/, serializer: ({ body }) => body } ], defaultContentType: 'application/json' }) ) .handler(lambdaHandler) const event = { headers: { Accept: 'application/xml;q=0.9, text/x-dvi; q=0.8, text/x-c' } } handler(event, {}, (_, response) => { t.is(response.body, '<message>Hello World</message>') }) ","version":"Next","tagName":"h2"},{"title":"http-urlencode-path-parser","type":0,"sectionRef":"#","url":"/docs/middlewares/http-urlencode-path-parser","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"http-urlencode-path-parser","url":"/docs/middlewares/http-urlencode-path-parser#install","content":" To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/http-urlencode-path-parser ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"http-urlencode-path-parser","url":"/docs/middlewares/http-urlencode-path-parser#options","content":" None ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"http-urlencode-path-parser","url":"/docs/middlewares/http-urlencode-path-parser#sample-usage","content":" import middy from '@middy/core' import httpUrlEncodePathParser from '@middy/http-urlencode-path-parser' const handler = middy((event, context) => { return event.body // propagates the body as response }) handler.use(httpUrlEncodePathParser()) // When Lambda runs the handler with a sample event... const event = { pathParameters: { name: encodeURIComponent('Mîddy') } } handler(event, {}, (_, body) => { t.deepEqual(body, { name: 'Mîddy' }) }) ","version":"Next","tagName":"h2"},{"title":"input-output-logger","type":0,"sectionRef":"#","url":"/docs/middlewares/input-output-logger","content":"","keywords":"","version":"Next"},{"title":"Official middlewares","type":0,"sectionRef":"#","url":"/docs/middlewares/intro","content":"","keywords":"","version":"Next"},{"title":"Misc​","type":1,"pageTitle":"Official middlewares","url":"/docs/middlewares/intro#misc","content":" cloudwatch-metrics: Hydrates lambda's context.metrics property with an instance of AWS MetricLoggerdo-not-wait-for-empty-event-loop: Sets callbackWaitsForEmptyEventLoop property to falseerror-logger: Logs errorsinput-output-logger: Logs request and responsewarmup: Used to pre-warm a lambda function ","version":"Next","tagName":"h2"},{"title":"Request Transformation​","type":1,"pageTitle":"Official middlewares","url":"/docs/middlewares/intro#request-transformation","content":" event-normalizer: Middleware for iterating through an AWS event records, parsing and normalizing nested events.http-content-negotiation: Parses Accept-* headers and provides utilities for content negotiation (charset, encoding, language and media type) for HTTP requestshttp-event-normalizer: Normalizes HTTP events by adding an empty object for queryStringParameters, multiValueQueryStringParameters or pathParameters if they are missing.http-header-normalizer: Normalizes HTTP header names to their canonical formathttp-json-body-parser: Automatically parses HTTP requests with JSON body and converts the body into an object. Also handles gracefully broken JSON if used in combination ofhttpErrorHandler.http-multipart-body-parser: Automatically parses HTTP requests with content type multipart/form-data and converts the body into an object.http-urlencode-body-parser: Automatically parses HTTP requests with URL encoded body (typically the result of a form submit).http-urlencode-path-parser: Automatically parses HTTP requests with URL encoded path.validator: Automatically validates incoming events and outgoing responses against custom schemas.ws-json-body-parser: Automatically parses WebSocket requests with JSON message and converts the message into an object. ","version":"Next","tagName":"h2"},{"title":"Response Transformation​","type":1,"pageTitle":"Official middlewares","url":"/docs/middlewares/intro#response-transformation","content":" http-content-encoding: Sets HTTP Content-Encoding header on response and compresses response bodyhttp-cors: Sets HTTP CORS headers on responsehttp-error-handler: Creates a proper HTTP response for errors that are created with the http-errors module and represents proper HTTP errors.http-security-headers: Applies best practice security headers to responses. It's a simplified port of HelmetJS.http-partial-response: Filter response objects attributes based on query string parameters.http-response-serializer: HTTP response serializer.sqs-partial-batch-failure: Handles partially failed SQS batches.ws-response: Forwards response to WebSocket endpoint. ","version":"Next","tagName":"h2"},{"title":"Fetch Data​","type":1,"pageTitle":"Official middlewares","url":"/docs/middlewares/intro#fetch-data","content":" appconfig: Fetch JSON configurations from AppConfig.dynamodb: Fetch configurations from DynamoDB.rds-signer: Fetches token for connecting to RDS with IAM users.s3: Fetch JSON configurations from S3.s3-object-response: Gets and write S3 object response.secrets-manager: Fetches parameters from AWS Secrets Manager.service-discovery: Fetches Service Discovery instances to be used when connecting to other AWS services.ssm: Fetches parameters from AWS Systems Manager Parameter Store.sts: Fetches credentials to assumes IAM roles for connection to other AWS services. ","version":"Next","tagName":"h2"},{"title":"rds-signer","type":0,"sectionRef":"#","url":"/docs/middlewares/rds-signer","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"rds-signer","url":"/docs/middlewares/rds-signer#install","content":" To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/rds-signer npm install --save-dev @aws-sdk/rds-signer ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"rds-signer","url":"/docs/middlewares/rds-signer#options","content":" AwsClient (object) (default Signer): Signer class constructor (i.e. that has been instrumented with AWS XRay). Must be from @aws-sdk/rds-signer.awsClientOptions (object) (optional): Options to pass to Signer class constructor.fetchData (object) (required): Mapping of internal key name to API request parameters.disablePrefetch (boolean) (default false): On cold start requests will trigger early if they can. Setting awsClientAssumeRole disables prefetch.cacheKey (string) (default rds-signer): Cache key for the fetched data responses. Must be unique across all middleware.cacheExpiry (number) (default -1): How long fetch data responses should be cached for. -1: cache forever, 0: never cache, n: cache for n ms.setToContext (boolean) (default false): Store role tokens to request.context. NOTES: Lambda is required to have IAM permission for rds-db:connect with a resource like arn:aws:rds-db:#{AWS::Region}:#{AWS::AccountId}:dbuser:${database_resource}/${iam_role} ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"rds-signer","url":"/docs/middlewares/rds-signer#sample-usage","content":" import middy from '@middy/core' import rdsSigner from '@middy/rds-signer' const lambdaHandler = (event, context) => { const response = { statusCode: 200, headers: {}, body: JSON.stringify({ message: 'hello world' }) } return response } export const handler = middy() .use( rdsSigner({ fetchData: { rdsToken: { region: 'ca-central-1', hostname: '***.rds.amazonaws.com', username: 'iam_role', port: 5432 } } }) ) .handler(lambdaHandler) ","version":"Next","tagName":"h2"},{"title":"Bundling​","type":1,"pageTitle":"rds-signer","url":"/docs/middlewares/rds-signer#bundling","content":" To exclude @aws-sdk add @aws-sdk/rds-signer to the exclude list. ","version":"Next","tagName":"h2"},{"title":"Install​","type":1,"pageTitle":"input-output-logger","url":"/docs/middlewares/input-output-logger#install","content":" To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/input-output-logger ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"input-output-logger","url":"/docs/middlewares/input-output-logger#options","content":" logger function (default console.log): logging function that accepts an objectawsContext boolean (default false): Include AWS Lambda context object to the loggeromitPaths string[] (default []): property accepts an array of paths that will be used to remove particular fields import the logged objects. This could serve as a simple way to redact sensitive data from logs (default []). Examples: name, user.name, users.[].namemask string: String to replace omitted values with. Example: ***omitted***replacer function: stringify replacer function ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"input-output-logger","url":"/docs/middlewares/input-output-logger#sample-usage","content":" import middy from '@middy/core' import inputOutputLogger from '@middy/input-output-logger' const lambdaHandler = (event, context) => { const response = { statusCode: 200, headers: {}, body: JSON.stringify({ message: 'hello world' }) } return response } export const handler = middy().use(inputOutputLogger()).handler(lambdaHandler) import middy from '@middy/core' import inputOutputLogger from '@middy/input-output-logger' import pino from 'pino' const logger = pino() const lambdaHandler = (event, context) => { // ... return response } export const handler = middy() .use( inputOutputLogger({ logger: (request) => { const child = logger.child(request.context) child.info(request.event ?? request.response) }, awsContext: true }) ) .handler(lambdaHandler) ","version":"Next","tagName":"h2"},{"title":"s3","type":0,"sectionRef":"#","url":"/docs/middlewares/s3","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"s3","url":"/docs/middlewares/s3#install","content":" To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/s3 npm install --save-dev @aws-sdk/client-s3 ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"s3","url":"/docs/middlewares/s3#options","content":" AwsClient (object) (default S3Client): S3Client class constructor (i.e. that has been instrumented with AWS XRay). Must be from @aws-sdk/client-appconfig.awsClientOptions (object) (default undefined): Options to pass to S3Client class constructor.awsClientAssumeRole (string) (default undefined): Internal key where secrets are stored. See @middy/sts on to set this.awsClientCapture (function) (default undefined): Enable XRay by passing captureAWSv3Client from aws-xray-sdk in.fetchData (object) (required): Mapping of internal key name to API request parameters.disablePrefetch (boolean) (default false): On cold start requests will trigger early if they can. Setting awsClientAssumeRole disables prefetch.cacheKey (string) (default s3): Cache key for the fetched data responses. Must be unique across all middleware.cacheExpiry (number) (default -1): How long fetch data responses should be cached for. -1: cache forever, 0: never cache, n: cache for n ms.setToContext (boolean) (default false): Store credentials to request.context. NOTES: Lambda is required to have IAM permission for s3:GetObjectIf the file is stored without ContentType, you can set it on the response using ResponseContentType as part of the input ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"s3","url":"/docs/middlewares/s3#sample-usage","content":" import middy from '@middy/core' import s3 from '@middy/s3' const lambdaHandler = (event, context) => { console.log(context.config) const response = { statusCode: 200, headers: {}, body: JSON.stringify({ message: 'hello world' }) } return response } export const handler = middy() .use( s3({ fetchData: { config: { Bucket: '...', Key: '...' } }, setToContext: true }) ) .handler(lambdaHandler) ","version":"Next","tagName":"h2"},{"title":"Bundling​","type":1,"pageTitle":"s3","url":"/docs/middlewares/s3#bundling","content":" To exclude @aws-sdk add @aws-sdk/client-s3 to the exclude list. ","version":"Next","tagName":"h2"},{"title":"Usage with TypeScript​","type":1,"pageTitle":"s3","url":"/docs/middlewares/s3#usage-with-typescript","content":" Data in an S3 object can be stored as arbitrary structured data. It's not possible to know in advance what shape the fetched data will have, so by default the fetched parameters will have type unknown. You can provide some type hints by leveraging the s3Req utility function. This function allows you to specify what's the expected type that will be fetched for every S3 request. The idea is that, for every request specified in the fetchData option, rather than just providing the parameter configuration as an object, you can wrap it in a s3Req<ParamType>(config) call. Internally, s3Req is a function that will return config as received, but it allows you to use generics to provide type hints for the expected fetched value type for that request. This way TypeScript can understand how to treat the additional data attached to the context and stored in the internal storage. The following example illustrates how to use s3Req: import middy from '@middy/core' import s3, { s3Req } from '@middy/s3' const handler = middy((event, context) => { console.log(context.config) const response = { statusCode: 200, headers: {}, body: JSON.stringify({ message: 'hello world' }) } return response }) handler.use( s3({ fetchData: { config: s3Req<{field1: string, field2: string, field3: number}>({ Bucket: '...', Key: '...' } }), setToContext: true }) ) .before(async (request) => { const data = await getInternal('config', request) // data.config.field1 (string) // data.config.field2 (string) // data.config.field3 (number) }) ","version":"Next","tagName":"h2"},{"title":"sqs-partial-batch-failure","type":0,"sectionRef":"#","url":"/docs/middlewares/sqs-partial-batch-failure","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"sqs-partial-batch-failure","url":"/docs/middlewares/sqs-partial-batch-failure#install","content":" To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/sqs-partial-batch-failure # Required for types only npm install --save-dev @aws-sdk/client-sqs ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"sqs-partial-batch-failure","url":"/docs/middlewares/sqs-partial-batch-failure#options","content":" logger (function) (optional): A function that will be called when a record fails to be processed. Default: console.error ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"sqs-partial-batch-failure","url":"/docs/middlewares/sqs-partial-batch-failure#sample-usage","content":" import middy from '@middy/core' import sqsBatch from '@middy/sqs-partial-batch-failure' const lambdaHandler = (event, context) => { const recordPromises = event.Records.map(async (record, index) => { /* Custom message processing logic */ return record }) return Promise.allSettled(recordPromises) } export const handler = middy().use(sqsBatch()).handler(lambdaHandler) ","version":"Next","tagName":"h2"},{"title":"Important​","type":1,"pageTitle":"sqs-partial-batch-failure","url":"/docs/middlewares/sqs-partial-batch-failure#important","content":" The value ReportBatchItemFailures must be added to your Lambda's FunctionResponseTypes in the EventSourceMapping. See Reporting batch item failures and Lambda EventSourceMapping ","version":"Next","tagName":"h2"},{"title":"s3-object-response","type":0,"sectionRef":"#","url":"/docs/middlewares/s3-object-response","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"s3-object-response","url":"/docs/middlewares/s3-object-response#install","content":" To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/s3-object-response npm install --save-dev @aws-sdk/client-s3 ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"s3-object-response","url":"/docs/middlewares/s3-object-response#options","content":" AwsClient (object) (default S3Client): S3Client class constructor (i.e. that has been instrumented with AWS XRay). Must be from @aws-sdk/client-s3.awsClientOptions (object) (optional): Options to pass to S3Client class constructor.awsClientCapture (function) (optional): Enable XRay by passing captureAWSv3Client from aws-xray-sdk in.disablePrefetch (boolean) (default false): On cold start requests will trigger early if they can. Setting awsClientAssumeRole disables prefetch. NOTES: The response from the handler must match the allowed parameters for S3.writeGetObjectResponse, excluding RequestRoute and RequestToken.XRay doesn't support tracing of fetch, you will need a workaround, see https://github.com/aws/aws-xray-sdk-node/issues/531#issuecomment-1378562164Lambda is required to have IAM permission for s3-object-lambda:WriteGetObjectResponse ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"s3-object-response","url":"/docs/middlewares/s3-object-response#sample-usage","content":" ","version":"Next","tagName":"h2"},{"title":"Stream​","type":1,"pageTitle":"s3-object-response","url":"/docs/middlewares/s3-object-response#stream","content":" import zlib from 'zlib' import middy from '@middy/core' import s3ObjectResponse from '@middy/s3-object-response' const lambdaHandler = (event, context) => { const readStream = await context.s3ObjectFetch.then(res => res.body) const transformStream = zlib.createBrotliCompress() return { Body: readStream.pipe(transformStream) } } export const handler = middy().use(s3ObjectResponse()).handler(lambdaHandler) ","version":"Next","tagName":"h3"},{"title":"JSON​","type":1,"pageTitle":"s3-object-response","url":"/docs/middlewares/s3-object-response#json","content":" import zlib from 'zlib' import middy from '@middy/core' import s3ObjectResponse from '@middy/s3-object-response' const lambdaHandler = async (event, context) => { let body = await context.s3ObjectFetch.then((res) => res.json()) // change body return { Body: JSON.stringify(body) } } export const handler = middy().use(s3ObjectResponse()).handler(lambdaHandler) ","version":"Next","tagName":"h3"},{"title":"service-discovery","type":0,"sectionRef":"#","url":"/docs/middlewares/service-discovery","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"service-discovery","url":"/docs/middlewares/service-discovery#install","content":" To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/service-discovery npm install --save-dev @aws-sdk/client-servicediscovery ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"service-discovery","url":"/docs/middlewares/service-discovery#options","content":" AwsClient (object) (default ServiceDiscoveryClient): ServiceDiscoveryClient class constructor (i.e. that has been instrumented with AWS XRay). Must be from @aws-sdk/client-servicediscovery.awsClientOptions (object) (default undefined): Options to pass to ServiceDiscoveryClient class constructor.awsClientAssumeRole (string) (default undefined): Internal key where secrets are stored. See @middy/sts on to set this.awsClientCapture (function) (default undefined): Enable XRay by passing captureAWSv3Client from aws-xray-sdk in.fetchData (object) (required): Mapping of internal key name to API request parameters.disablePrefetch (boolean) (default false): On cold start requests will trigger early if they can. Setting awsClientAssumeRole disables prefetch.cacheKey (string) (default sts): Cache key for the fetched data responses. Must be unique across all middleware.cacheExpiry (number) (default -1): How long fetch data responses should be cached for. -1: cache forever, 0: never cache, n: cache for n ms.setToContext (boolean) (default false): Store credentials to request.context. NOTES: Lambda is required to have IAM permission for servicediscovery:DiscoverInstances ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"service-discovery","url":"/docs/middlewares/service-discovery#sample-usage","content":" import middy from '@middy/core' import serviceDiscovery from '@middy/service-discovery' const lambdaHandler = (event, context) => { const response = { statusCode: 200, headers: {}, body: JSON.stringify({ message: 'hello world' }) } return response } export const handler = middy() .use( serviceDiscovery({ fetchData: { instances: { NamespaceName: '...', ServiceName: '...' } } }) ) .handler(lambdaHandler) ","version":"Next","tagName":"h2"},{"title":"Bundling​","type":1,"pageTitle":"service-discovery","url":"/docs/middlewares/service-discovery#bundling","content":" To exclude @aws-sdk add @aws-sdk/client-servicediscovery to the exclude list. ","version":"Next","tagName":"h2"},{"title":"Bundling​","type":1,"pageTitle":"s3-object-response","url":"/docs/middlewares/s3-object-response#bundling","content":" To exclude @aws-sdk add @aws-sdk/client-s3 to the exclude list. ","version":"Next","tagName":"h2"},{"title":"secrets-manager","type":0,"sectionRef":"#","url":"/docs/middlewares/secrets-manager","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"secrets-manager","url":"/docs/middlewares/secrets-manager#install","content":" To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/secrets-manager npm install --save-dev @aws-sdk/client-secrets-manager ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"secrets-manager","url":"/docs/middlewares/secrets-manager#options","content":" AwsClient (object) (default SecretsManagerClient): SecretsManagerClient class constructor (i.e. that has been instrumented with AWS XRay). Must be from @aws-sdk/client-secrets-manager.awsClientOptions (object) (optional): Options to pass to SecretsManagerClient class constructor.awsClientAssumeRole (string) (optional): Internal key where secrets are stored. See @middy/sts on to set this.awsClientCapture (function) (optional): Enable XRay by passing captureAWSv3Client from aws-xray-sdk in.fetchData (object) (required): Mapping of internal key name to API request parameter SecretId.fetchRotationDate (boolean|object) (default false): Boolean to apply to all or mapping of internal key name to boolean. This indicates what secrets should fetch and cached based on NextRotationDate/LastRotationDate/LastChangedDate. cacheExpiry of -1 will use NextRotationDate, while any other value will be added to the LastRotationDate or LastChangedDate, whichever is more recent. If secrets have different rotation schedules, use multiple instances of this middleware.disablePrefetch (boolean) (default false): On cold start requests will trigger early if they can. Setting awsClientAssumeRole disables prefetch.cacheKey (string) (default secrets-manager): Cache key for the fetched data responses. Must be unique across all middleware.cacheExpiry (number) (default -1): How long fetch data responses should be cached for. -1: cache forever, 0: never cache, n: cache for n ms.setToContext (boolean) (default false): Store secrets to request.context. NOTES: Lambda is required to have IAM permission for secretsmanager:GetSecretValue. If using fetchRotationDate add secretsmanager:DescribeSecret in as well. ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"secrets-manager","url":"/docs/middlewares/secrets-manager#sample-usage","content":" import middy from '@middy/core' import secretsManager from '@middy/secrets-manager' const lambdaHandler = (event, context) => { return {} } export const handler = middy() .use( secretsManager({ fetchData: { apiToken: 'dev/api_token' }, awsClientOptions: { region: 'us-east-1' }, setToContext: true }) ) .handler(lambdaHandler) // Before running the function handler, the middleware will fetch from Secrets Manager handler(event, context, (_, response) => { // assuming the dev/api_token has two keys, 'Username' and 'Password' t.is(context.apiToken.Username, 'username') t.is(context.apiToken.Password, 'password') }) ","version":"Next","tagName":"h2"},{"title":"Bundling​","type":1,"pageTitle":"secrets-manager","url":"/docs/middlewares/secrets-manager#bundling","content":" To exclude @aws-sdk add @aws-sdk/client-secrets-manager to the exclude list. ","version":"Next","tagName":"h2"},{"title":"Usage with TypeScript​","type":1,"pageTitle":"secrets-manager","url":"/docs/middlewares/secrets-manager#usage-with-typescript","content":" Data stored in SecretsManager can be stored as arbitrary structured data. It's not possible to know in advance what shape the fetched data will have, so by default the fetched secrets will have type unknown. You can provide some type hints by leveraging the secret utility function. This function allows you to specify what's the expected type that will be fetched for every SecretsManager request. The idea is that, for every request specified in the fetchData option, rather than just providing the parameter configuration as an object, you can wrap it in a secret<ParamType>(key) call. Internally, secret is a function that will return key as received, but it allows you to use generics to provide type hints for the expected fetched value type for that request. This way TypeScript can understand how to treat the additional data attached to the context and stored in the internal storage. The following example illustrates how to use secret: import middy from '@middy/core' import secretsManager, { secret } from '@middy/secrets-manager' const lambdaHandler = (event, context) => { console.log(context.config) const response = { statusCode: 200, headers: {}, body: JSON.stringify({ message: 'hello world' }) } return response } export const handler = middy() .use( secretsManager({ fetchData: { someSecret: secret<{User: string, Password: string}>('someHiddenSecret') }), setToContext: true }) ) .before(async (request) => { const data = await getInternal('someSecret', request) // data.someSecret.User (string) // data.someSecret.Password (string) // or, since we have `setToContext: true` // request.context.someSecret.User (string) // request.context.someSecret.Password (string) }) .handler(lambdaHandler) ","version":"Next","tagName":"h2"},{"title":"Third-party middlewares","type":0,"sectionRef":"#","url":"/docs/middlewares/third-party","content":"","keywords":"","version":"Next"},{"title":"Version 2.x - 4.x​","type":1,"pageTitle":"Third-party middlewares","url":"/docs/middlewares/third-party#version-2x---4x","content":" dazn-lambda-powertools: A collection of middlewares, AWS clients and helper libraries that make working with lambda easier.middy-ajv: AJV validator optimized for performancemiddy-console-logger: Middleware for filtering logs printed over console logging methods. If the level of the console logging method is equal or bigger than configured level, the log is printed, Otherwise, it is ignored.middy-event-loop-tracer: Middleware for dumping active tasks with their stacktraces in the event queue just before AWS Lambda function timeouts. So you can understand what was going on in the function when timeout happens.middy-idempotent: idempotency middleware for middymiddy-invocation: Middleware for accessing current AWS Lambda invocation event and context from anywhere without need to passing event and context as arguments through your code.- middy-lesslog: Middleware for lesslog, a teeny-tiny and severless-ready logging utilitymiddy-jsonapi: JSONAPI middleware for middymiddy-lesslog: Middleware for lesslog, a teeny-tiny and severless-ready logging utilitymiddy-profiler: Middleware for profiling CPU on AWS Lambda during invocation and shows what methods/modules consume what percent of CPU timemiddy-rds: Creates RDS connection using knex or pgmiddy-recaptcha: reCAPTCHA validation middlewaremiddy-sparks-joi: Joi validator@iress/middy-http-path-router: Routes AWS API Gateway events to handlers based on static and dynamic paths ","version":"Next","tagName":"h2"},{"title":"Version 2.x - 3.x​","type":1,"pageTitle":"Third-party middlewares","url":"/docs/middlewares/third-party#version-2x---3x","content":" aws-lambda-powertools-typescript: A suite of utilities for AWS Lambda Functions that makes structured logging, creating custom metrics asynchronously and tracing with AWS X-Ray easier logger: Structured logging made easier, and a middleware to enrich log items with key details of the Lambda contextmetrics: Custom Metrics created asynchronously via CloudWatch Embedded Metric Format (EMF)parameters: The Parameters utility provides high-level functions to retrieve one or multiple parameter values from AWS Systems Manager Parameter Store, AWS Secrets Manager, AWS AppConfig, Amazon DynamoDB, or your own parameter store.tracer: Utilities to trace Lambda function handlers, and both synchronous and asynchronous functions ","version":"Next","tagName":"h2"},{"title":"Version 1.x​","type":1,"pageTitle":"Third-party middlewares","url":"/docs/middlewares/third-party#version-1x","content":" middy-redis: Redis connection middlewaremiddy-extractor: Extracts data from events using expressions@keboola/middy-error-logger: middleware that catches thrown exceptions and rejected promises and logs them comprehensibly to the console@keboola/middy-event-validator: Joi powered event validation middlewaremiddy-reroute: provides complex redirect, rewrite and proxying capabilities by simply placing a rules file into your S3 bucketmiddytohof: Convert Middy middleware plugins to higher-order functions returning lambda handlerswrap-ware: A middleware wrapper which works with promises / asyncmiddy-middleware-warmup: A middy plugin to help keep your Lambdas warm during Winter@sharecover-co/middy-aws-xray-tracing: AWS X-Ray Tracing Middleware@sharecover-co/middy-http-response-serializer: This middleware serializes the response to JSON and wraps it in a 200 HTTP response@seedrs/middyjs-middleware: Collection of useful middlewaresmiddy-autoproxyresponse: A middleware that lets you return simple JavaScript objects from Lambda function handlers and converts them into LAMBDA_PROXY responsesjwt-auth: JSON web token authorization middleware based on express-jwtmiddy-mongoose-connector: MongoDB connection middleware for mongoose.js@ematipico/middy-request-response: a middleware that creates a pair of request/response objects@marcosantonocito/middy-cognito-permission: Authorization and roles permission management for the Middy framework that works with Amazon Cognitomiddy-env: Fetch, validate and type cast environment variablessqs-json-body-parser: Parse the SQS body to JSONmiddy-lesslog: Middleware for lesslog, a teeny-tiny and severless-ready logging utility ","version":"Next","tagName":"h2"},{"title":"ssm","type":0,"sectionRef":"#","url":"/docs/middlewares/ssm","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"ssm","url":"/docs/middlewares/ssm#install","content":" To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/ssm npm install --save-dev @aws-sdk/client-ssm ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"ssm","url":"/docs/middlewares/ssm#options","content":" AwsClient (object) (default SSMClient): SSMClient class constructor (i.e. that has been instrumented with AWS X-Ray). Must be from @aws-sdk/client-ssm.awsClientOptions (object) (optional): Options to pass to SSMClient class constructor.awsClientAssumeRole (string) (optional): Internal key where role tokens are stored. See @middy/sts on to set this.awsClientCapture (function) (optional): Enable AWS X-Ray by passing captureAWSv3Client from aws-xray-sdk in.fetchData (object) (required): Mapping of internal key name to API request parameter Names/Path. SecureString are automatically decrypted.disablePrefetch (boolean) (default false): On cold start requests will trigger early if they can. Setting awsClientAssumeRole disables prefetch.cacheKey (string) (default ssm): Cache key for the fetched data responses. Must be unique across all middleware.cacheExpiry (number) (default -1): How long fetch data responses should be cached for. -1: cache forever, 0: never cache, n: cache for n ms.setToContext (boolean) (default false): Store role tokens to request.context. NOTES: Lambda is required to have IAM permission for ssm:GetParameters and/or ssm:GetParametersByPath depending on what you're requesting, along with kms:Decrypt.SSM has throughput limitations. Switching to Advanced Parameter type or increasing maxRetries and retryDelayOptions.base in awsClientOptions may be required. ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"ssm","url":"/docs/middlewares/ssm#sample-usage","content":" import middy from '@middy/core' import ssm from '@middy/ssm' const lambdaHandler = (event, context) => { return {} } let globalDefaults = {} export const handler = middy() .use( ssm({ fetchData: { accessToken: '/dev/service_name/access_token', // single value dbParams: '/dev/service_name/database/', // object of values, key for each path defaults: '/dev/defaults' }, setToContext: true }) ) .before((request) => { globalDefaults = request.context.defaults.global }) .handler(lambdaHandler) import middy from '@middy/core' import { getInternal } from '@middy/util' import ssm from '@middy/ssm' const lambdaHandler = (event, context) => { return {} } let globalDefaults = {} export const handler = middy() .use( ssm({ fetchData: { defaults: '/dev/defaults' }, cacheKey: 'ssm-defaults' }) ) .use( ssm({ fetchData: { accessToken: '/dev/service_name/access_token', // single value dbParams: '/dev/service_name/database/' // object of values, key for each path }, cacheExpiry: 15 * 60 * 1000, cacheKey: 'ssm-secrets' }) ) // ... other middleware that fetch .before(async (request) => { const data = await getInternal( ['accessToken', 'dbParams', 'defaults'], request ) Object.assign(request.context, data) }) .handler(lambdaHandler) ","version":"Next","tagName":"h2"},{"title":"Bundling​","type":1,"pageTitle":"ssm","url":"/docs/middlewares/ssm#bundling","content":" To exclude @aws-sdk add @aws-sdk/client-ssm to the exclude list. ","version":"Next","tagName":"h2"},{"title":"Usage with TypeScript​","type":1,"pageTitle":"ssm","url":"/docs/middlewares/ssm#usage-with-typescript","content":" Data in SSM can be stored as arbitrary JSON values. It's not possible to know in advance what shape the fetched SSM parameters will have, so by default the fetched parameters will have type unknown. You can provide some type hints by leveraging the ssmParam utility function. This function allows you to specify what's the expected type that will be fetched for every parameter. The idea is that, for every parameter specified in the fetchData option, rather than just providing the parameter path as a string, you can wrap it in a ssmParam<ParamType>(parameterPath) call. Internally, ssmParam is a function that will return parameterPath as received, but it allows you to use generics to provide type hints for the expected type for that parameter. This way TypeScript can understand how to treat the additional data attached to the context and stored in the internal storage. The following example illustrates how to use ssmParam: import middy from '@middy/core' import { getInternal } from '@middy/util' import ssm, { ssmParam } from '@middy/ssm' const lambdaHandler = (event, context) => { return {} } let globalDefaults = {} export const handler = middy() .use( ssm({ fetchData: { accessToken: ssmParam<string>('/dev/service_name/access_token'), // single value (will be typed as string) dbParams: ssmParam<{ user: string; pass: string }>( '/dev/service_name/database/' ) // object of values (typed as {user: string, pass: string}) }, cacheExpiry: 15 * 60 * 1000, cacheKey: 'ssm-secrets' }) ) // ... other middleware that fetch .before(async (request) => { const data = await getInternal(['accessToken', 'dbParams'], request) // data.accessToken (string) // data.dbParams ({user: string, pass: string}) }) .handler(lambdaHandler) ","version":"Next","tagName":"h2"},{"title":"sts","type":0,"sectionRef":"#","url":"/docs/middlewares/sts","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"sts","url":"/docs/middlewares/sts#install","content":" To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/sts npm install --save-dev @aws-sdk/client-sts ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"sts","url":"/docs/middlewares/sts#options","content":" AwsClient (object) (default STSClient): STSClient class constructor (i.e. that has been instrumented with AWS XRay). Must be from @aws-sdk/client-sts.awsClientOptions (object) (optional): Options to pass to STSClient class constructor.awsClientCapture (function) (optional): Enable XRay by passing captureAWSv3Client from aws-xray-sdk in.fetchData (object) (required): Mapping of internal key name to API request parameters.disablePrefetch (boolean) (default false): On cold start requests will trigger early if they can. Setting awsClientAssumeRole disables prefetch.cacheKey (string) (default sts): Cache key for the fetched data responses. Must be unique across all middleware.cacheExpiry (number) (default -1): How long fetch data responses should be cached for. -1: cache forever, 0: never cache, n: cache for n ms.setToContext (boolean) (default false): Store credentials to request.context. NOTES: Lambda is required to have IAM permission for sts:AssumeRolesetToContext are included for legacy support and should be avoided for performance and security reasons. See main documentation for best practices. ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"sts","url":"/docs/middlewares/sts#sample-usage","content":" import middy from '@middy/core' import sts from '@middy/sts' const lambdaHandler = (event, context) => { const response = { statusCode: 200, headers: {}, body: JSON.stringify({ message: 'hello world' }) } return response } export const handler = middy() .use( sts({ fetchData: { assumeRole: { RoleArn: '...', RoleSessionName: '' // optional } } }) ) .handler(lambdaHandler) ","version":"Next","tagName":"h2"},{"title":"Bundling​","type":1,"pageTitle":"sts","url":"/docs/middlewares/sts#bundling","content":" To exclude @aws-sdk add @aws-sdk/client-sts to the exclude list. ","version":"Next","tagName":"h2"},{"title":"warmup","type":0,"sectionRef":"#","url":"/docs/middlewares/warmup","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"warmup","url":"/docs/middlewares/warmup#install","content":" To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/warmup ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"warmup","url":"/docs/middlewares/warmup#options","content":" isWarmingUp: a function that accepts the event object as a parameter and returns true if the current event is a warmup event and false if it's a regular execution. The default function will check if the event object has a source property set to serverless-plugin-warmup. ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"warmup","url":"/docs/middlewares/warmup#sample-usage","content":" const middy = require('@middy/core') const warmup = require('@middy/warmup') const lambdaHandler = (event, context, cb) => { /* ... */ } const isWarmingUp = (event) => event.isWarmingUp === true export const handler = middy() .use(warmup({ isWarmingUp })) .handler(lambdaHandler) ","version":"Next","tagName":"h2"},{"title":"ws-json-body-parser","type":0,"sectionRef":"#","url":"/docs/middlewares/ws-json-body-parser","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"ws-json-body-parser","url":"/docs/middlewares/ws-json-body-parser#install","content":" To install this middleware you can use NPM: npm install --save @middy/ws-json-body-parser ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"ws-json-body-parser","url":"/docs/middlewares/ws-json-body-parser#options","content":" reviver (function) (default undefined): A reviver parameter may be passed which will be used JSON.parseing the body. ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"ws-json-body-parser","url":"/docs/middlewares/ws-json-body-parser#sample-usage","content":" import middy from '@middy/core' import wsJsonBodyParserMiddleware from '@middy/ws-json-body-parser' import wsResponseMiddleware from '@middy/ws-response' const lambdaHandler = (event) => { return event.body.message } export const handler = middy() .use(wsJsonBodyParserMiddleware()) .use(wsResponseMiddleware()) .handler(lambdaHandler) ","version":"Next","tagName":"h2"},{"title":"ws-response","type":0,"sectionRef":"#","url":"/docs/middlewares/ws-response","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"ws-response","url":"/docs/middlewares/ws-response#install","content":" To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/ws-response npm install --save-dev @aws-sdk/client-apigatewaymanagementapi ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"ws-response","url":"/docs/middlewares/ws-response#options","content":" AwsClient (object) (default ApiGatewayManagementApiClient): ApiGatewayManagementApi class constructor (i.e. that has been instrumented with AWS XRay). Must be from @aws-sdk/client-apigatewaymanagementapi.awsClientOptions (object) (default undefined): Options to pass to ApiGatewayManagementApiClient class constructor.awsClientAssumeRole (string) (default undefined): Internal key where secrets are stored. See @middy/sts on to set this.awsClientCapture (function) (default undefined): Enable XRay by passing captureAWSv3Client from aws-xray-sdk in.disablePrefetch (boolean) (default false): On cold start requests will trigger early if they can. Setting awsClientAssumeRole disables prefetch. NOTES: Lambda is required to have IAM permission for execute-api:ManageConnectionsIf awsClientOptions.endpoint is not set it will be set using event.requestContext.{domainName,stage}If response does not contain ConnectId, it will be set from event.requestContext.connectionId ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"ws-response","url":"/docs/middlewares/ws-response#sample-usage","content":" ","version":"Next","tagName":"h2"},{"title":"API Gateway​","type":1,"pageTitle":"ws-response","url":"/docs/middlewares/ws-response#api-gateway","content":" import middy from '@middy/core' import wsResponse from '@middy/ws-response' export const handler = middy((event, context) => { return 'message' }) handler.use(wsResponse()) ","version":"Next","tagName":"h3"},{"title":"General​","type":1,"pageTitle":"ws-response","url":"/docs/middlewares/ws-response#general","content":" import middy from '@middy/core' import wsResponse from '@middy/ws-response' const lambdaHandler = (event, context) => { return { ConnectionId: '...', Data: 'message' } } export const handler = middy() .use( wsResponse({ awsClientOptions: { endpoint: '...' } }) ) .handler(lambdaHandler) ","version":"Next","tagName":"h3"},{"title":"Bundling​","type":1,"pageTitle":"ws-response","url":"/docs/middlewares/ws-response#bundling","content":" To exclude @aws-sdk add @aws-sdk/client-apigatewaymanagementapi to the exclude list. ","version":"Next","tagName":"h2"},{"title":"ws-router","type":0,"sectionRef":"#","url":"/docs/routers/ws-router","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"ws-router","url":"/docs/routers/ws-router#install","content":" To install this middleware you can use NPM: npm install --save @middy/ws-router ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"ws-router","url":"/docs/routers/ws-router#options","content":" routes (array[{routeKey, handler}]) (required): Array of route objects. routeKey (string) (required): AWS formatted route key. ie $connect, $disconnect, $defaulthandler (function) (required): Any handler(event, context, {signal}) function NOTES: Errors should be handled as part of the router middleware stack or the lambdaHandler middleware stack. Handled errors in the later will trigger the after middleware stack of the former.Shared middlewares, connected to the router middleware stack, can only be run before the lambdaHandler middleware stack. ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"ws-router","url":"/docs/routers/ws-router#sample-usage","content":" import middy from '@middy/core' import wsRouterHandler from '@middy/ws-router' import wsResponseMiddleware from '@middy/ws-response' import validatorMiddleware from '@middy/validator' const connectHandler = middy() .use(validatorMiddleware({eventSchema: {...} })) .handler((event, context) => { return 'connected' }) const disconnectHandler = middy() .use(validatorMiddleware({eventSchema: {...} })) .handler((event, context) => { return 'disconnected' }) const routes = [ { routeKey: '$connect', handler: connectHandler }, { routeKey: '$disconnect', handler: disconnectHandler } ] export const handler = middy() .use(wsResponseMiddleware()) .handler(wsRouterHandler(routes)) ","version":"Next","tagName":"h2"},{"title":"http-router","type":0,"sectionRef":"#","url":"/docs/routers/http-router","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"http-router","url":"/docs/routers/http-router#install","content":" To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/http-router ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"http-router","url":"/docs/routers/http-router#options","content":" routes (array[{method, path, handler}]) (required): Array of route objects. method (string) (required): One of GET, POST, PUT, PATCH, DELETE, OPTIONS and ANY that will match to any method passed inpath (string) (required): AWS formatted path starting with /. Variable: /{id}/, Wildcard: /{proxy+}handler (function) (required): Any handler(event, context) function NOTES: When using API Gateway it may be required to prefix routes[].path with /{stage} depending on your use case.Errors should be handled as part of the router middleware stack or the lambdaHandler middleware stack. Handled errors in the later will trigger the after middleware stack of the former.Shared middlewares, connected to the router middleware stack, can only be run before the lambdaHandler middleware stack.pathParameters will automatically be set if not already set ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"http-router","url":"/docs/routers/http-router#sample-usage","content":" import middy from '@middy/core' import httpRouterHandler from '@middy/http-router' import validatorMiddleware from '@middy/validator' const getHandler = middy() .use(validatorMiddleware({eventSchema: {...} })) .handler((event, context) => { return { statusCode: 200, body: '{...}' } }) const postHandler = middy() .use(validatorMiddleware({eventSchema: {...} })) .handler((event, context) => { return { statusCode: 200, body: '{...}' } }) const routes = [ { method: 'GET', path: '/user/{id}', handler: getHandler }, { method: 'POST', path: '/user', handler: postHandler } ] export const handler = middy() .use(httpHeaderNormalizer()) .handler(httpRouterHandler(routes)) ","version":"Next","tagName":"h2"},{"title":"Upgrade 0.x -> 1.x","type":0,"sectionRef":"#","url":"/docs/upgrade/0-1","content":"","keywords":"","version":"Next"},{"title":"Independent packages structure​","type":1,"pageTitle":"Upgrade 0.x -> 1.x","url":"/docs/upgrade/0-1#independent-packages-structure","content":" Version 1.x of Middy features decoupled independent packages published on npm under the @middy namespace. The core middleware engine has been moved to @middy/core and all the other middlewares are moved into their own packages as well. This allows to only install the features that are needed and to keep your Lambda dependencies small. See the list below to check which packages you need based on the middlewares you use: Core middleware functionality -> @middy/corecache -> @middy/cachecors -> @middy/http-corsdoNotWaitForEmptyEventLoop -> @middy/do-not-wait-for-empty-event-loophttpContentNegotiation -> @middy/http-content-negotiationhttpErrorHandler -> @middy/http-error-handlerhttpEventNormalizer -> @middy/http-event-normalizerhttpHeaderNormalizer -> @middy/http-header-normalizerhttpMultipartBodyParser -> @middy/http-json-body-parserhttpPartialResponse -> @middy/http-partial-responsejsonBodyParser -> @middy/http-json-body-parsers3KeyNormalizer -> @middy/s3-key-normalizersecretsManager -> @middy/secrets-managerssm -> @middy/ssmvalidator -> @middy/validatorurlEncodeBodyParser -> @middy/http-urlencode-body-parserwarmup -> @middy/warmup ","version":"Next","tagName":"h2"},{"title":"Header normalization in http-header-normalizer​","type":1,"pageTitle":"Upgrade 0.x -> 1.x","url":"/docs/upgrade/0-1#header-normalization-in-http-header-normalizer","content":" In Middy 0.x the httpHeaderNormalizer middleware normalizes HTTP header names into their own canonical format, for instance Sec-WebSocket-Key (notice the casing). In Middy 1.x this behavior has been changed to provide header names in lowercase format (e.g. sec-webSocket-key). This new behavior is more consistent with what Node.js core http package does and what other famous http frameworks like Express or Fastify do, so this is considered a more intuitive approach. When updating to Middy 1.x, make sure you double check all your references to HTTP headers and switch to the lowercase version to read them. All the middy core modules have been already updated to support the new format, so you should worry only about your userland code. ","version":"Next","tagName":"h2"},{"title":"Node.js 10 and 12 now supported / Node.js 6 and 8 now dropped​","type":1,"pageTitle":"Upgrade 0.x -> 1.x","url":"/docs/upgrade/0-1#nodejs-10-and-12-now-supported--nodejs-6-and-8-now-dropped","content":" Version 1.x of Middy no longer supports Node.js versions 6.x and 8.x as these versions have been dropped by the AWS Lambda runtime itself and not supported anymore by the Node.js community. You are highly encouraged to move to Node.js 12 or 10, which are the new supported versions in Middy 1.x. ","version":"Next","tagName":"h2"},{"title":"validator","type":0,"sectionRef":"#","url":"/docs/middlewares/validator","content":"","keywords":"","version":"Next"},{"title":"Install​","type":1,"pageTitle":"validator","url":"/docs/middlewares/validator#install","content":" To install this middleware you can use NPM: npmYarnpnpm npm install --save @middy/validator npm install --save-dev ajv-cmd # Optional: for pre-transpiling ","version":"Next","tagName":"h2"},{"title":"Options​","type":1,"pageTitle":"validator","url":"/docs/middlewares/validator#options","content":" eventSchema (function) (default undefined): The compiled ajv validator that will be used to validate the input (request.event) of the Lambda handler.contextSchema (function) (default undefined): The compiled ajv validator that will be used to validate the input (request.context) of the Lambda handler. Has additional support for typeof keyword to allow validation of "typeof":"function".responseSchema (function) (default undefined): The compiled ajv validator that will be used to validate the output (request.response) of the Lambda handler.i18nEnabled (boolean) (default true): Option to disable i18n default package.defaultLanguage (string) (default en): When language not found, what language to fallback to.languages (object) (default: {}): Localization overrides NOTES: At least one of eventSchema or responseSchema is required.If you'd like to have the error details as part of the response, it will need to be handled separately. You can access them from request.error.cause.data, the original response can be found at request.error.response.Important Transpiling schemas & locales on the fly will cause a 50-150ms performance hit during cold start for simple JSON Schemas. Precompiling is highly recommended. ","version":"Next","tagName":"h2"},{"title":"transpileSchema​","type":1,"pageTitle":"validator","url":"/docs/middlewares/validator#transpileschema","content":" Transpile JSON-Schema in to JavaScript. Default ajv plugins used: ajv-i18n, ajv-formats, ajv-formats-draft2019, ajv-keywords, ajv-errors. schema (object) (required): JSON-Schema objectajvOptions (object) (default undefined): Options to pass to ajvclass constructor. Defaults are { strict: true, coerceTypes: 'array', allErrors: true, useDefaults: 'empty', messages: true }. ","version":"Next","tagName":"h2"},{"title":"transpileLocale​","type":1,"pageTitle":"validator","url":"/docs/middlewares/validator#transpilelocale","content":" Transpile Fluent (.ftl) localization file into ajv compatible format. Allows the overriding of the default messages and adds support for multi-language errrorMessages. ftl (string) (required): Contents of an ftl file to be transpiled. ","version":"Next","tagName":"h2"},{"title":"Sample usage​","type":1,"pageTitle":"validator","url":"/docs/middlewares/validator#sample-usage","content":" Example for event validation: import middy from '@middy/core' import validator from '@middy/validator' import { transpileSchema } from '@middy/validator/transpile' const lambdaHandler = (event, context) => { return {} } const schema = { type: 'object', required: ['body', 'foo'], properties: { // this will pass validation body: { type: 'string' }, // this won't as it won't be in the event foo: { type: 'string' } } } export const handler = middy() .use( validator({ eventSchema: transpileSchema(schema) }) ) .handler(lambdaHandler) // invokes the handler, note that property foo is missing const event = { body: JSON.stringify({ something: 'somethingelse' }) } handler(event, {}, (err, res) => { t.is(err.message, 'Event object failed validation') }) Example for response validation: import middy from '@middy/core' import validator from '@middy/validator' import { transpileSchema } from '@middy/validator/transpile' const lambdaHandler = (event, context) => { return {} } const responseSchema = transpileSchema({ type: 'object', required: ['body', 'statusCode'], properties: { body: { type: 'object' }, statusCode: { type: 'number' } } }) export const handler = middy() .use(validator({ responseSchema })) .handler(lambdaHandler) // handler({}, {}, (err, response) => { t.not(err, null) t.is(err.message, 'Response object failed validation') expect(response).not.toBe(null) // it doesn't destroy the response so it can be used by other middlewares }) Example for body validation: import middy from '@middy/core' import httpJsonBodyParser from '@middy/http-json-body-parser' import validator from '@middy/validator' import { transpileSchema } from '@middy/validator/transpile' const lambdaHandler = (event, context) => { return {} } const eventSchema = { type: 'object', required: ['body'], properties: { body: { type: 'object', required: ['name', 'email'], properties: { name: { type: 'string' }, email: { type: 'string', format: 'email' } // schema options https://ajv.js.org/json-schema.html#json-data-type } } } } export const handler = middy() // to validate the body we need to parse it first .use(httpJsonBodyParser()) .use( validator({ eventSchema: transpileSchema(eventSchema) }) ) .handler(lambdaHandler) ","version":"Next","tagName":"h2"},{"title":"Pre-transpiling example (recommended)​","type":1,"pageTitle":"validator","url":"/docs/middlewares/validator#pre-transpiling-example-recommended","content":" Run a build script to before running tests & deployment. #!/usr/bin/env bash # This is an example, should be customize to meet ones needs # Powered by `ajv-cmd` # $ ajv --help bundle () { ajv validate ${1} --valid \\ --strict true --coerce-types array --all-errors true --use-defaults empty ajv transpile ${1} \\ --strict true --coerce-types array --all-errors true --use-defaults empty \\ -o ${1%.json}.js } for file in handlers/*/schema.*.json; do bundle $file done locale () { LOCALE=$(basename ${1%.ftl}) ajv ftl ${1} --locale ${LOCALE} -o ${1%.ftl}.js } for file in handlers/*/*.ftl; do locale $file done import middy from '@middy/core' import validator from '@middy/validator' import eventSchema from './schema.event.js' import en from './en.js' import fr from './fr.js' const lambdaHandler = (event, context) => { return {} } export const handler = middy() .use( validator({ eventSchema, languages: { en, fr } }) ) .handler(lambdaHandler) ","version":"Next","tagName":"h2"},{"title":"Transpile during cold-start​","type":1,"pageTitle":"validator","url":"/docs/middlewares/validator#transpile-during-cold-start","content":" import { readFile } from 'node:fs/promises' import middy from '@middy/core' import validator from '@middy/validator' import { transpileSchema, transpileLocale } from '@middy/validator/transpile' import eventSchema from './schema.event.json' const lambdaHandler = (event, context) => { return {} } const en = transpileLocale(await readFile('./en.ftl')) const fr = transpileLocale(await readFile('./fr.ftl')) export const handler = middy() .use( validator({ eventSchema: transpileSchema(eventSchema), languages: { en, fr } }) ) .handler(lambdaHandler) ","version":"Next","tagName":"h2"},{"title":"Transpile during cold-start with default messages​","type":1,"pageTitle":"validator","url":"/docs/middlewares/validator#transpile-during-cold-start-with-default-messages","content":" import { readFile } from 'node:fs/promises' import middy from '@middy/core' import validator from '@middy/validator' import { transpileSchema, transpileLocale } from '@middy/validator/transpile' import { en, fr } from 'ajv-ftl-i18n' // `ajv-i18n` can also be used import eventSchema from './schema.event.json' const lambdaHandler = (event, context) => { return {} } export const handler = middy() .use( validator({ eventSchema: transpileSchema(eventSchema), languages: { en, fr } }) ) .handler(lambdaHandler) ","version":"Next","tagName":"h2"},{"title":"Upgrade 1.x -> 2.x","type":0,"sectionRef":"#","url":"/docs/upgrade/1-2","content":"","keywords":"","version":"Next"},{"title":"Core​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#core","content":" In handler callback(err, response) have been removed for async/await support return response to trigger after middleware stackthrow new Error(...) to trigger onError middleware stack In middleware next(err) has been removed for async/await support throw new Error(...) to trigger onError middleware stackreturn response to short circuit any middleware stack and respond. v1.x currently throws an error when something is returned ","version":"Next","tagName":"h2"},{"title":"Middleware​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#middleware","content":" ","version":"Next","tagName":"h2"},{"title":"cache​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#cache","content":" Deprecated. Too generic and had low usage. However, you can use the following if needed: const { createHash } = require('crypto') module.exports = (opts) => { const storage = {} const defaults = { calculateCacheId: async (event) => createHash('md5').update(JSON.stringify(event)).digest('hex'), getValue: async (key) => storage[key], setValue: async (key, value) => { storage[key] = value } } const options = { ...defaults, ...opts } let currentCacheKey const cacheMiddlewareBefore = async (request) => { const cacheKey = await options.calculateCacheId(request.event) const response = await options.getValue(cacheKey) if (response) { return response } request.internal.cacheKey = cacheKey } const cacheMiddlewareAfter = async (request) => { await options.setValue(request.internal.cacheKey, request.response) } return { before: cacheMiddlewareBefore, after: cacheMiddlewareAfter } } ","version":"Next","tagName":"h3"},{"title":"Upgrade 2.x -> 3.x","type":0,"sectionRef":"#","url":"/docs/upgrade/2-3","content":"","keywords":"","version":"Next"},{"title":"Notable changes​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#notable-changes","content":" New WebSocket middlewaresHTTP & WebSocket Routers!Better error handlingTimeout error handlingErrors now use { cause } for better context ","version":"Next","tagName":"h2"},{"title":"Core​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#core","content":" onError middleware stack order reversed to match after [Breaking Change] If you only use @middy/* middlewares no change should be requiredThis change has trickle down effects on middlewares with onError (see below for details)If you're handling errors yourself here are some things to review: Attach near the end so it is triggered first (likely already done)Remove return response, this will short circuit the response and block later middleware from modifying the response lambdaHandler now passes {signal} from AbortController to allow for ending lambda early to handle timeout errorsplugin argument now supports: internal: Allow the use of new Proxy() for smarter triggering in advanced use cases.timeoutEarlyInMillis: When before lambda timeout to trigger early exit. Default 5timeoutEarlyResponse: Function to throw a custom error or return a pre-set value. Default () => { throw new Error('Timeout') } Added .handler() method to allow easier understanding of the execution cycleDeprecate applyMiddleware() and __middlewares [Breaking Change] ","version":"Next","tagName":"h2"},{"title":"Util​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#util","content":" getInternal error now includes cause set to an array of ErrorsCatch when X-Ray is applied outside of handler invocation scopenormalizeHttpResponse now takes request and mutates response [Breaking Change]getCache will return {} instead of undefined when not found [Breaking Change] ","version":"Next","tagName":"h2"},{"title":"Middleware​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#middleware","content":" ","version":"Next","tagName":"h2"},{"title":"cloudwatch-metrics​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#cloudwatch-metrics","content":" No change ","version":"Next","tagName":"h3"},{"title":"do-not-wait-for-empty-event-loop​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#do-not-wait-for-empty-event-loop","content":" No change ","version":"Next","tagName":"h3"},{"title":"error-logger​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#error-logger","content":" No change ","version":"Next","tagName":"h3"},{"title":"event-normalizer​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#event-normalizer","content":" Add support for all missing AWS eventsRefactored for performance improvements ","version":"Next","tagName":"h3"},{"title":"http-content-encoding​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#http-content-encoding","content":" [New] Applies brotli, gzip, ands deflate compression to response body ","version":"Next","tagName":"h3"},{"title":"http-content-negotiation​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#http-content-negotiation","content":" Add in defaultToFirstLanguage to allow fallback to a safe language to use ","version":"Next","tagName":"h3"},{"title":"http-cors​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#http-cors","content":" onError will not modify response unless error has been handledSmall refactor for performance improvements ","version":"Next","tagName":"h3"},{"title":"http-error-handler​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#http-error-handler","content":" No longer returns the response to short circuit the middleware stack to allow for easier use now that onError is called in reverse order. ","version":"Next","tagName":"h3"},{"title":"http-event-normalizer​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#http-event-normalizer","content":" Option payloadFormatVersion no longer neededWill now throw error if not an http event [Breaking Change] ","version":"Next","tagName":"h3"},{"title":"http-header-normalizer​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#http-header-normalizer","content":" Modified so that all headers are set to lowercase when canonical:false [Breaking Change] ","version":"Next","tagName":"h3"},{"title":"http-json-body-parser​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#http-json-body-parser","content":" No change ","version":"Next","tagName":"h3"},{"title":"http-multipart-body-parser​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#http-multipart-body-parser","content":" Change default charset from binary/latin1 to utf-8. [Breaking Change] ","version":"Next","tagName":"h3"},{"title":"http-partial-response​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#http-partial-response","content":" No change ","version":"Next","tagName":"h3"},{"title":"http-response-serializer​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#http-response-serializer","content":" Renamed default option to defaultContentType to improve maintainability [Breaking Change]onError will not modify response unless error has been handled ","version":"Next","tagName":"h3"},{"title":"http-router​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#http-router","content":" [New] Allow re-routing of events to different handlers ","version":"Next","tagName":"h3"},{"title":"http-security-headers​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#http-security-headers","content":" onError will not modify response unless error has been handledComplete rewrite of options and inclusion of new HTML only headers [Breaking Change] ","version":"Next","tagName":"h3"},{"title":"http-urlencode-body-parser​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#http-urlencode-body-parser","content":" No change ","version":"Next","tagName":"h3"},{"title":"http-urlencode-path-parser​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#http-urlencode-path-parser","content":" No change ","version":"Next","tagName":"h3"},{"title":"input-output-logger​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#input-output-logger","content":" Add in new option to mask instead of omit a path. ","version":"Next","tagName":"h3"},{"title":"rds-signer​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#rds-signer","content":" Deprecated setToEnv option due to possible security misuse [Breaking Change] ","version":"Next","tagName":"h3"},{"title":"s3-key-normalizer​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#s3-key-normalizer","content":" Deprecated in favour of event-normalizer, v2.x compatible with v3 ","version":"Next","tagName":"h3"},{"title":"s3-object-response​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#s3-object-response","content":" No change ","version":"Next","tagName":"h3"},{"title":"secrets-manager​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#secrets-manager","content":" Deprecated setToEnv option due to possible security misuse [Breaking Change] ","version":"Next","tagName":"h3"},{"title":"service-discovery​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#service-discovery","content":" [New] Allow easy access to discoveryInstances ","version":"Next","tagName":"h3"},{"title":"sqs-json-body-parser​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#sqs-json-body-parser","content":" Deprecated in favour of event-normalizer, v2.x compatible with v3 ","version":"Next","tagName":"h3"},{"title":"sqs-partial-batch-failure​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#sqs-partial-batch-failure","content":" Complete rewrite to take advantage of https://aws.amazon.com/about-aws/whats-new/2021/11/aws-lambda-partial-batch-response-sqs-event-source/, will no longer throw an error if any message fails [Breaking Change] ","version":"Next","tagName":"h3"},{"title":"ssm​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#ssm","content":" Deprecated setToEnv option [Breaking Change] ","version":"Next","tagName":"h3"},{"title":"sts​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#sts","content":" No change ","version":"Next","tagName":"h3"},{"title":"validator​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#validator","content":" Change where errors are stored, from request.error.details to request.error.cause [Breaking Change]Add new options eventSchema, contextSchema, responseSchema. inputSchema and outputSchema become aliases. ","version":"Next","tagName":"h3"},{"title":"warmup​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#warmup","content":" No change ","version":"Next","tagName":"h3"},{"title":"ws-json-body-parser​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#ws-json-body-parser","content":" [New] Parse body from WebSocket event ","version":"Next","tagName":"h3"},{"title":"ws-response​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#ws-response","content":" [New] Post responses to WebSocket API Gateway ","version":"Next","tagName":"h3"},{"title":"ws-router​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#ws-router","content":" [New] Allow re-routing of events to different handlers ","version":"Next","tagName":"h3"},{"title":"Notes​","type":1,"pageTitle":"Upgrade 2.x -> 3.x","url":"/docs/upgrade/2-3#notes","content":" If you still need setToEnv you can do something like so: middy(lambdaHandler) .use(/*...*/) .before(async (request) => { const values = await getInternal(['NODE_ENV'], request) process.env.NODE_ENV = values.NODE_ENV }) ","version":"Next","tagName":"h2"},{"title":"Upgrade 4.x -> 5.x","type":0,"sectionRef":"#","url":"/docs/upgrade/4-5","content":"","keywords":"","version":"Next"},{"title":"Notable changes​","type":1,"pageTitle":"Upgrade 4.x -> 5.x","url":"/docs/upgrade/4-5#notable-changes","content":" Middy no longer support Common JS modules.Update to use TypeScript v5 along with a refactor to most packagesUpdate all errors to be consistent new Error('message', { cause: { package:'@middy/***', data:*** } })If using multiple http-*-body-parsers on the same endpoint you'll need to set disableContentTypeError:true ","version":"Next","tagName":"h2"},{"title":"Core​","type":1,"pageTitle":"Upgrade 4.x -> 5.x","url":"/docs/upgrade/4-5#core","content":" Updated plugin.timeoutEarlyResponse(...) to throw new error with name TimeoutError to match new AbortSignal.timeout(). ","version":"Next","tagName":"h2"},{"title":"Util​","type":1,"pageTitle":"Upgrade 4.x -> 5.x","url":"/docs/upgrade/4-5#util","content":" No change ","version":"Next","tagName":"h2"},{"title":"Middleware​","type":1,"pageTitle":"Upgrade 4.x -> 5.x","url":"/docs/upgrade/4-5#middleware","content":" ","version":"Next","tagName":"h2"},{"title":"appconfig​","type":1,"pageTitle":"Upgrade 4.x -> 5.x","url":"/docs/upgrade/4-5#appconfig","content":" Update SDK to use newer appconfigdata client Breaking Change ","version":"Next","tagName":"h2"},{"title":"cloudwatch-metrics​","type":1,"pageTitle":"Upgrade 4.x -> 5.x","url":"/docs/upgrade/4-5#cloudwatch-metrics","content":" No change ","version":"Next","tagName":"h3"},{"title":"do-not-wait-for-empty-event-loop​","type":1,"pageTitle":"Upgrade 4.x -> 5.x","url":"/docs/upgrade/4-5#do-not-wait-for-empty-event-loop","content":" No change ","version":"Next","tagName":"h3"},{"title":"error-logger​","type":1,"pageTitle":"Upgrade 4.x -> 5.x","url":"/docs/upgrade/4-5#error-logger","content":" Change logger to have request passed in instead of request.error by default to allow access request.context and request.event Breaking Change ","version":"Next","tagName":"h3"},{"title":"event-normalizer​","type":1,"pageTitle":"Upgrade 4.x -> 5.x","url":"/docs/upgrade/4-5#event-normalizer","content":" No change ","version":"Next","tagName":"h3"},{"title":"http-content-encoding​","type":1,"pageTitle":"Upgrade 4.x -> 5.x","url":"/docs/upgrade/4-5#http-content-encoding","content":" Use preferredLanguage from context instead of event (See http-content-negotiation). Breaking Change ","version":"Next","tagName":"h3"},{"title":"http-content-negotiation​","type":1,"pageTitle":"Upgrade 4.x -> 5.x","url":"/docs/upgrade/4-5#http-content-negotiation","content":" Moved preferred* from event to context Breaking Change ","version":"Next","tagName":"h3"},{"title":"http-cors​","type":1,"pageTitle":"Upgrade 4.x -> 5.x","url":"/docs/upgrade/4-5#http-cors","content":" No change ","version":"Next","tagName":"h3"},{"title":"http-error-handler​","type":1,"pageTitle":"Upgrade 4.x -> 5.x","url":"/docs/upgrade/4-5#http-error-handler","content":" Will return 500 for all unhandled errors thrown Breaking Change ","version":"Next","tagName":"h3"},{"title":"http-event-normalizer​","type":1,"pageTitle":"Upgrade 4.x -> 5.x","url":"/docs/upgrade/4-5#http-event-normalizer","content":" Will no longer throw an error when HTTP type can't be determined Breaking Change ","version":"Next","tagName":"h3"},{"title":"http-header-normalizer​","type":1,"pageTitle":"Upgrade 4.x -> 5.x","url":"/docs/upgrade/4-5#http-header-normalizer","content":" No change ","version":"Next","tagName":"h3"},{"title":"http-json-body-parser​","type":1,"pageTitle":"Upgrade 4.x -> 5.x","url":"/docs/upgrade/4-5#http-json-body-parser","content":" Change disableContentTypeError to false by default Breaking Change ","version":"Next","tagName":"h3"},{"title":"http-multipart-body-parser​","type":1,"pageTitle":"Upgrade 4.x -> 5.x","url":"/docs/upgrade/4-5#http-multipart-body-parser","content":" Change disableContentTypeError to false by default Breaking Change ","version":"Next","tagName":"h3"},{"title":"http-partial-response​","type":1,"pageTitle":"Upgrade 4.x -> 5.x","url":"/docs/upgrade/4-5#http-partial-response","content":" No change ","version":"Next","tagName":"h3"},{"title":"http-response-serializer​","type":1,"pageTitle":"Upgrade 4.x -> 5.x","url":"/docs/upgrade/4-5#http-response-serializer","content":" No change ","version":"Next","tagName":"h3"},{"title":"http-router​","type":1,"pageTitle":"Upgrade 4.x -> 5.x","url":"/docs/upgrade/4-5#http-router","content":" No change ","version":"Next","tagName":"h3"},{"title":"http-security-headers​","type":1,"pageTitle":"Upgrade 4.x -> 5.x","url":"/docs/upgrade/4-5#http-security-headers","content":" No change ","version":"Next","tagName":"h3"},{"title":"http-urlencode-body-parser​","type":1,"pageTitle":"Upgrade 4.x -> 5.x","url":"/docs/upgrade/4-5#http-urlencode-body-parser","content":" Change disableContentTypeError to false by default Breaking Change ","version":"Next","tagName":"h3"},{"title":"http-urlencode-path-parser​","type":1,"pageTitle":"Upgrade 4.x -> 5.x","url":"/docs/upgrade/4-5#http-urlencode-path-parser","content":" No change ","version":"Next","tagName":"h3"},{"title":"input-output-logger​","type":1,"pageTitle":"Upgrade 4.x -> 5.x","url":"/docs/upgrade/4-5#input-output-logger","content":" Updated to use structuredClone ","version":"Next","tagName":"h3"},{"title":"rds-signer​","type":1,"pageTitle":"Upgrade 4.x -> 5.x","url":"/docs/upgrade/4-5#rds-signer","content":" No change ","version":"Next","tagName":"h3"},{"title":"s3-object-response​","type":1,"pageTitle":"Upgrade 4.x -> 5.x","url":"/docs/upgrade/4-5#s3-object-response","content":" Refactored to use fetch over https. context now returns s3ObjectFetch to allow more control over how it's used. Breaking Change ","version":"Next","tagName":"h3"},{"title":"secrets-manager​","type":1,"pageTitle":"Upgrade 4.x -> 5.x","url":"/docs/upgrade/4-5#secrets-manager","content":" No change ","version":"Next","tagName":"h3"},{"title":"service-discovery​","type":1,"pageTitle":"Upgrade 4.x -> 5.x","url":"/docs/upgrade/4-5#service-discovery","content":" No change ","version":"Next","tagName":"h3"},{"title":"sqs-partial-batch-failure​","type":1,"pageTitle":"Upgrade 4.x -> 5.x","url":"/docs/upgrade/4-5#sqs-partial-batch-failure","content":" Will now catch unhandled errors and set all messages to failed, preventing infinite loops Breaking Change ","version":"Next","tagName":"h3"},{"title":"ssm​","type":1,"pageTitle":"Upgrade 4.x -> 5.x","url":"/docs/upgrade/4-5#ssm","content":" No change ","version":"Next","tagName":"h3"},{"title":"sts​","type":1,"pageTitle":"Upgrade 4.x -> 5.x","url":"/docs/upgrade/4-5#sts","content":" No change ","version":"Next","tagName":"h3"},{"title":"validator​","type":1,"pageTitle":"Upgrade 4.x -> 5.x","url":"/docs/upgrade/4-5#validator","content":" Use preferredLanguage from context instead of event (See http-content-negotiation).ajv-cmd is no longer a required dependency, if you're pre-transpiling you'll need to run npm i ajv-cmd. ","version":"Next","tagName":"h3"},{"title":"warmup​","type":1,"pageTitle":"Upgrade 4.x -> 5.x","url":"/docs/upgrade/4-5#warmup","content":" No change ","version":"Next","tagName":"h3"},{"title":"ws-json-body-parser​","type":1,"pageTitle":"Upgrade 4.x -> 5.x","url":"/docs/upgrade/4-5#ws-json-body-parser","content":" Remove inclusion of rawBody from event Breaking Change ","version":"Next","tagName":"h3"},{"title":"ws-response​","type":1,"pageTitle":"Upgrade 4.x -> 5.x","url":"/docs/upgrade/4-5#ws-response","content":" No change ","version":"Next","tagName":"h3"},{"title":"ws-router​","type":1,"pageTitle":"Upgrade 4.x -> 5.x","url":"/docs/upgrade/4-5#ws-router","content":" No change ","version":"Next","tagName":"h3"},{"title":"Notes​","type":1,"pageTitle":"Upgrade 4.x -> 5.x","url":"/docs/upgrade/4-5#notes","content":" None ","version":"Next","tagName":"h2"},{"title":"Upgrade 3.x -> 4.x","type":0,"sectionRef":"#","url":"/docs/upgrade/3-4","content":"","keywords":"","version":"Next"},{"title":"Notable changes​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#notable-changes","content":" Middy now uses AWS SDK v3 by default. ","version":"Next","tagName":"h2"},{"title":"Core​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#core","content":" Remove polyfill for AbortControlerRemove polyfill for timers/promises ","version":"Next","tagName":"h2"},{"title":"Util​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#util","content":" normalizeResponse now will set the statusCode to 200 when casting to a new object or 500 when missing Breaking Change ","version":"Next","tagName":"h2"},{"title":"Middleware​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#middleware","content":" ","version":"Next","tagName":"h2"},{"title":"cloudwatch-metrics​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#cloudwatch-metrics","content":" No change ","version":"Next","tagName":"h3"},{"title":"do-not-wait-for-empty-event-loop​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#do-not-wait-for-empty-event-loop","content":" No change ","version":"Next","tagName":"h3"},{"title":"error-logger​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#error-logger","content":" No change ","version":"Next","tagName":"h3"},{"title":"event-normalizer​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#event-normalizer","content":" No change ","version":"Next","tagName":"h3"},{"title":"http-content-encoding​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#http-content-encoding","content":" Removed body as stream support, will be brought back as a new middleware in a future middleware Breaking Change ","version":"Next","tagName":"h3"},{"title":"http-content-negotiation​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#http-content-negotiation","content":" No change ","version":"Next","tagName":"h3"},{"title":"http-cors​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#http-cors","content":" No change ","version":"Next","tagName":"h3"},{"title":"http-error-handler​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#http-error-handler","content":" No change ","version":"Next","tagName":"h3"},{"title":"http-event-normalizer​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#http-event-normalizer","content":" No change ","version":"Next","tagName":"h3"},{"title":"http-header-normalizer​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#http-header-normalizer","content":" No change ","version":"Next","tagName":"h3"},{"title":"http-json-body-parser​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#http-json-body-parser","content":" Deprecate event.rawBody Breaking Change You can add in an inline middleware as a workaround. .before((request) => { request.event.rawBody = request.event.body }) .use(httpJSONBodyParserMiddleware()) See https://github.com/middyjs/middy/issues/945 for discussion and reasoning. ","version":"Next","tagName":"h3"},{"title":"http-multipart-body-parser​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#http-multipart-body-parser","content":" Add new option to set charset ","version":"Next","tagName":"h3"},{"title":"http-partial-response​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#http-partial-response","content":" No change ","version":"Next","tagName":"h3"},{"title":"http-response-serializer​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#http-response-serializer","content":" No change ","version":"Next","tagName":"h3"},{"title":"http-router​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#http-router","content":" No change ","version":"Next","tagName":"h3"},{"title":"http-security-headers​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#http-security-headers","content":" No change ","version":"Next","tagName":"h3"},{"title":"http-urlencode-body-parser​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#http-urlencode-body-parser","content":" Now throws 422 when unable to parse JSON Breaking Change ","version":"Next","tagName":"h3"},{"title":"http-urlencode-path-parser​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#http-urlencode-path-parser","content":" No change ","version":"Next","tagName":"h3"},{"title":"input-output-logger​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#input-output-logger","content":" No change ","version":"Next","tagName":"h3"},{"title":"rds-signer​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#rds-signer","content":" Updated to use AWS SDK v3 Breaking Change ","version":"Next","tagName":"h3"},{"title":"s3-object-response​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#s3-object-response","content":" Updated to use AWS SDK v3 Breaking Change ","version":"Next","tagName":"h3"},{"title":"secrets-manager​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#secrets-manager","content":" Updated to use AWS SDK v3 Breaking Change ","version":"Next","tagName":"h3"},{"title":"service-discovery​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#service-discovery","content":" Updated to use AWS SDK v3 Breaking Change ","version":"Next","tagName":"h3"},{"title":"sqs-partial-batch-failure​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#sqs-partial-batch-failure","content":" No change ","version":"Next","tagName":"h3"},{"title":"ssm​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#ssm","content":" Updated to use AWS SDK v3 Breaking Change ","version":"Next","tagName":"h3"},{"title":"sts​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#sts","content":" Updated to use AWS SDK v3 Breaking Change ","version":"Next","tagName":"h3"},{"title":"validator​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#validator","content":" We've put a lot of work into making this middleware bundle smaller and faster by default, while allowing for opting into more functionality. Deprecate inputSchema and outputSchema options Breaking ChangeDeprecated i18nEnabled Breaking ChangeMust now pass in defaultLanguage localizations to languages Breaking ChangeAdded in ajv-error supportPulled transpileSchema out of middleware to allow for tree shaking and pre-compile option Breaking ChangeAdded in transpileLocale to allow for custom internationalization of error messages including errorMessage How to update use of middleware import validatorMiddleware from '@middy/validator' // 1. Import transpileSchema import { transpileSchema } from '@middy/validator/transpile' export const handler = middy(...) .use(validatorMiddleware({ // 2. Wrap schemas with transpileSchema eventSchema: transpileSchema(eventJsonSchema) })) import validatorMiddleware from '@middy/validator' // 1. Import localizations import { en, fr } from 'ajv-ftl-i18n' export const handler = middy(...) .use(validatorMiddleware({ eventSchema: transpileSchema(eventJsonSchema), // 2. Add localizations in langauges: { en, fr } })) ","version":"Next","tagName":"h3"},{"title":"warmup​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#warmup","content":" No change ","version":"Next","tagName":"h3"},{"title":"ws-json-body-parser​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#ws-json-body-parser","content":" No change ","version":"Next","tagName":"h3"},{"title":"ws-response​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#ws-response","content":" Updated to use AWS SDK v3 Breaking Change ","version":"Next","tagName":"h3"},{"title":"ws-router​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#ws-router","content":" No change ","version":"Next","tagName":"h3"},{"title":"Notes​","type":1,"pageTitle":"Upgrade 3.x -> 4.x","url":"/docs/upgrade/3-4#notes","content":" None ","version":"Next","tagName":"h2"},{"title":"Configurable Middlewares","type":0,"sectionRef":"#","url":"/docs/writing-middlewares/configurable-middlewares","content":"Configurable Middlewares In order to make middlewares configurable, they are generally exported as a function that accepts a configuration object. This function should then return the middleware object with before,after, and onError as keys. E.g. // customMiddleware.js const defaults = {} const customMiddleware = (opts) => { const options = { ...defaults, ...opts } const customMiddlewareBefore = async (request) => { const { event, context } = request // ... } const customMiddlewareAfter = async (request) => { const { response } = request // ... request.response = response } const customMiddlewareOnError = async (request) => { if (request.response === undefined) return await customMiddlewareAfter(request) } return { before: customMiddlewareBefore, after: customMiddlewareAfter, onError: customMiddlewareOnError } } export default customMiddleware With this convention in mind, using a middleware will always look like the following example: import middy from '@middy/core' import customMiddleware from 'customMiddleware.js' const lambdaHandler = async (event, context) => { // do stuff return {} } export const handler = middy() .use( customMiddleware({ option1: 'foo', option2: 'bar' }) ) .handler(lambdaHandler) ","keywords":"","version":"Next"},{"title":"db-manager​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#db-manager","content":" Deprecated. Too generic and had low usage. You can check out middy-rds as a possible alternative or example on building your own replacement. ","version":"Next","tagName":"h3"},{"title":"do-not-wait-for-empty-event-loop​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#do-not-wait-for-empty-event-loop","content":" No change ","version":"Next","tagName":"h3"},{"title":"function-shield​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#function-shield","content":" Deprecated. Only supported up to Node v10. ","version":"Next","tagName":"h3"},{"title":"http-content-negotiation​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#http-content-negotiation","content":" No change ","version":"Next","tagName":"h3"},{"title":"http-cors​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#http-cors","content":" Added new options to support more headers methodsexposeHeadersrequestHeadersrequestMethods ","version":"Next","tagName":"h3"},{"title":"http-error-handler​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#http-error-handler","content":" Added in support to honour httpError.expose. Errors with statusCode >= 500 are no longer applied to response by default. Added new option to catch any non-http and statusCode >= 500 errors fallbackMessage ","version":"Next","tagName":"h3"},{"title":"http-event-normalizer​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#http-event-normalizer","content":" No change ","version":"Next","tagName":"h3"},{"title":"http-header-normalizer​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#http-header-normalizer","content":" No change ","version":"Next","tagName":"h3"},{"title":"http-json-body-parser​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#http-json-body-parser","content":" No change ","version":"Next","tagName":"h3"},{"title":"http-multipart-body-parser​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#http-multipart-body-parser","content":" No change ","version":"Next","tagName":"h3"},{"title":"http-partial-response​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#http-partial-response","content":" No change ","version":"Next","tagName":"h3"},{"title":"http-response-serializer​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#http-response-serializer","content":" No change ","version":"Next","tagName":"h3"},{"title":"http-security-headers​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#http-security-headers","content":" No longer adds statusCode:500 when there is no response. ","version":"Next","tagName":"h3"},{"title":"http-urlencode-body-parser​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#http-urlencode-body-parser","content":" Remove extended option. Only uses qs as the parser, formally enabled by options {extended: true}. ","version":"Next","tagName":"h3"},{"title":"http-urlencode-path-parser​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#http-urlencode-path-parser","content":" No change ","version":"Next","tagName":"h3"},{"title":"input-output-logger​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#input-output-logger","content":" Now additionally logs response from the onError middleware stackSupport for omiting within nested arraysAdd in support for replacer to be passed into JSON.stringify() ","version":"Next","tagName":"h3"},{"title":"rds-signer​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#rds-signer","content":" New middleware to fetch RDS credential used when connecting with IAM roles. This was built into db-manager. ","version":"Next","tagName":"h3"},{"title":"s3-key-normalizer​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#s3-key-normalizer","content":" No change ","version":"Next","tagName":"h3"},{"title":"s3-object-response​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#s3-object-response","content":" New middleware to fetch and respond to S3 Object Get request event. ","version":"Next","tagName":"h3"},{"title":"secrets-manager​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#secrets-manager","content":" Refactored, see documentation ","version":"Next","tagName":"h3"},{"title":"sqs-json-body-parser​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#sqs-json-body-parser","content":" No change ","version":"Next","tagName":"h3"},{"title":"sqs-partial-batch-failure​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#sqs-partial-batch-failure","content":" Replaced option sqs with AwsClient and added in more options for control. ","version":"Next","tagName":"h3"},{"title":"ssm​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#ssm","content":" Refactored, see documentation ","version":"Next","tagName":"h3"},{"title":"sts​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#sts","content":" New middleware to fetch assume role credentials. ","version":"Next","tagName":"h3"},{"title":"validator​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#validator","content":" Upgraded ajv and it's plugins to support JSON Schema Draft 2020-12 specification. Defaults were change because of this. Plugin ajv-keywords removed from being included by default because it's quite a large package and usually only one keyword is used.Plugin ajv-errors removed from included by default because it conflicts with ajv-i18n when dealing with custom messages for multiple languages ","version":"Next","tagName":"h3"},{"title":"warmup​","type":1,"pageTitle":"Upgrade 1.x -> 2.x","url":"/docs/upgrade/1-2#warmup","content":" Deprecated. This was a work round for a missing feature in AWS Lambda. AWS added in the ability to use provisioned concurrencyon 2019-12-03, removing the need for this work around. However, you can use the following if needed: middy(lambdaHandler).before((request) => { if (request.event.source === 'serverless-plugin-warmup') { console.log('Exiting early via warmup Middleware') return 'warmup' } }) ","version":"Next","tagName":"h3"},{"title":"More Examples","type":0,"sectionRef":"#","url":"/docs/writing-middlewares/more-examples","content":"More Examples Check the code for existing middlewares to see more examples on how to write a middleware.","keywords":"","version":"Next"},{"title":"Inline Middlewares","type":0,"sectionRef":"#","url":"/docs/writing-middlewares/inline-middlewares","content":"Inline Middlewares Sometimes you want to create handlers that serve a very small need and that are not necessarily re-usable. In such cases, you probably will need to hook only into one of the different phases (before, after or onError). In these cases you can use inline middlewares which are shortcut functions to hook logic into Middy's control flow. Let's see how inline middlewares work with a simple example: import middy from '@middy/core' const lambdaHandler = (event, context) => { // do stuff } export const handler = middy() .before(async (request) => { // do something in the before phase }) .after(async (request) => { // do something in the after phase }) .onError(async (request) => { // do something in the on error phase }) .handler(lambdaHandler) As you can see above, a middy instance also exposes the before, after and onErrormethods to allow you to quickly hook in simple inline middlewares.","keywords":"","version":"Next"},{"title":"Custom Middlewares","type":0,"sectionRef":"#","url":"/docs/writing-middlewares/intro","content":"Custom Middlewares A middleware is an object that should contain at least 1 of 3 possible keys: before: a function that is executed in the before phaseafter: a function that is executed in the after phaseonError: a function that is executed in case of errors before, after and onError functions need to have the following signature: const defaults = { // ... } const nameMiddleware = (opts = {}) => { const options = { ...defaults, ...opts } const nameMiddlewareBefore = async (request) => { // ... } const nameMiddlewareAfter = async (request) => { // ... } const nameMiddlewareOnError = async (request) => { // ... } return { before: nameMiddlewareBefore, after: nameMiddlewareAfter, onError: nameMiddlewareOnError } } export default nameMiddleware Where: request: is a reference to the current context and allows access to (and modification of) the current event (request), the response (in the after phase), and error(in case of an error).","keywords":"","version":"Next"},{"title":"Handle Timeouts","type":0,"sectionRef":"#","url":"/docs/writing-middlewares/timeouts","content":"Handle Timeouts When a lambda times out it throws an error that cannot be caught by middy. To work around this middy maintains an AbortController that can be signalled early to allow time to clean up and log the error properly. You can set timeoutEarlyInMillis to 0 to disable this functionality. If you want to override during testing, mock the lambda context to set getRemainingTimeInMillis to a function that returns a very large value (e.g. () => 99999). import middy from '@middy/core' const lambdaHandler = (event, context, { signal }) => { signal.onabort = () => { // cancel events } // ... } export const handler = middy({ timeoutEarlyInMillis: 50, timeoutEarlyResponse: () => { return { statusCode: 408 } } }).handler(lambdaHandler) ","keywords":"","version":"Next"},{"title":"With TypeScript","type":0,"sectionRef":"#","url":"/docs/writing-middlewares/with-typescript","content":"With TypeScript here's an example of how you can write a custom middleware for a Lambda receiving events from API Gateway: import middy from '@middy/core' import { APIGatewayProxyEvent, APIGatewayProxyResult } from 'aws-lambda' const middleware = (): middy.MiddlewareObj<APIGatewayProxyEvent, APIGatewayProxyResult> => { const before: middy.MiddlewareFn<APIGatewayProxyEvent, APIGatewayProxyResult> = async ( request ): Promise<APIGatewayProxyResult> => { // Your middleware logic } const after: middy.MiddlewareFn<APIGatewayProxyEvent, APIGatewayProxyResult> = async ( request ): Promise<void> => { // Your middleware logic } return { before, after } } export default middleware Note: The Middy core team does not use TypeScript often and we can't certainly claim that we are TypeScript experts. We tried our best to come up with type definitions that should give TypeScript users a good experience. There is certainly room for improvement, so we would be more than happy to receive contributions 😊 See devDependencies for each middleware for list of dependencies that may be required with transpiling TypeScript.","keywords":"","version":"Next"},{"title":"Internal Storage","type":0,"sectionRef":"#","url":"/docs/writing-middlewares/internal-storage","content":"Internal Storage The handler also contains an internal object that can be used to store values securely between middlewares that expires when the event ends. To compliment this there is also a cache where middleware can store request promises. During before these promises can be stored into internal then resolved only when needed. This pattern is useful to take advantage of the async nature of node especially when you have multiple middleware that require reaching out the external APIs. Here is a middleware boilerplate using this pattern: import { canPrefetch, getInternal, processCache } from '@middy/util' const defaults = { fetchData: {}, // { internalKey: params } disablePrefetch: false, cacheKey: 'custom', cacheExpiry: -1, setToContext: false } const customMiddleware = (opts = {}) => { const options = { ...defaults, ...opts } const fetch = () => { const values = {} // Start your custom fetch for (const internalKey of Object.keys(options.fetchData)) { values[internalKey] = fetch('...', options.fetchData[internalKey]).then( (res) => res.text() ) } // End your custom fetch return values } if (canPrefetch(options)) { processCache(options, fetch) } const customMiddlewareBefore = async (request) => { const { value } = processCache(options, fetch, request) Object.assign(request.internal, value) if (options.setToContext) { const data = await getInternal(Object.keys(options.fetchData), request) Object.assign(request.context, data) } } return { before: customMiddlewareBefore } } export default customMiddleware ","keywords":"","version":"Next"}],"options":{"id":"default"}} \ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml index a0df33cf2..db31ee483 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -1 +1 @@ -https://middy.js.org/markdown-pageweekly0.5https://middy.js.org/docs/weekly0.5https://middy.js.org/docs/best-practices/bundlingweekly0.5https://middy.js.org/docs/best-practices/connection-reuseweekly0.5https://middy.js.org/docs/best-practices/internal-contextweekly0.5https://middy.js.org/docs/best-practices/introweekly0.5https://middy.js.org/docs/best-practices/profilingweekly0.5https://middy.js.org/docs/best-practices/small-node-modulesweekly0.5https://middy.js.org/docs/category/aws-event-examplesweekly0.5https://middy.js.org/docs/category/best-practicesweekly0.5https://middy.js.org/docs/category/integrationsweekly0.5https://middy.js.org/docs/category/intro-to-middyweekly0.5https://middy.js.org/docs/category/middlewaresweekly0.5https://middy.js.org/docs/category/routersweekly0.5https://middy.js.org/docs/category/upgradeweekly0.5https://middy.js.org/docs/category/writing-middlewaresweekly0.5https://middy.js.org/docs/events/alexaweekly0.5https://middy.js.org/docs/events/api-gateway-authorizerweekly0.5https://middy.js.org/docs/events/api-gateway-httpweekly0.5https://middy.js.org/docs/events/api-gateway-restweekly0.5https://middy.js.org/docs/events/api-gateway-wsweekly0.5https://middy.js.org/docs/events/application-load-balancerweekly0.5https://middy.js.org/docs/events/appsyncweekly0.5https://middy.js.org/docs/events/cloud-formationweekly0.5https://middy.js.org/docs/events/cloud-frontweekly0.5https://middy.js.org/docs/events/cloud-trailweekly0.5https://middy.js.org/docs/events/cloud-watch-logsweekly0.5https://middy.js.org/docs/events/code-commitweekly0.5https://middy.js.org/docs/events/code-pipelineweekly0.5https://middy.js.org/docs/events/cognitoweekly0.5https://middy.js.org/docs/events/configweekly0.5https://middy.js.org/docs/events/connectweekly0.5https://middy.js.org/docs/events/documentdbweekly0.5https://middy.js.org/docs/events/dynamodbweekly0.5https://middy.js.org/docs/events/ec2weekly0.5https://middy.js.org/docs/events/event-bridgeweekly0.5https://middy.js.org/docs/events/function-urlweekly0.5https://middy.js.org/docs/events/introweekly0.5https://middy.js.org/docs/events/iotweekly0.5https://middy.js.org/docs/events/iot-eventsweekly0.5https://middy.js.org/docs/events/kafka-managed-streamingweekly0.5https://middy.js.org/docs/events/kafka-self-managedweekly0.5https://middy.js.org/docs/events/kinesis-firehoseweekly0.5https://middy.js.org/docs/events/kinesis-streamsweekly0.5https://middy.js.org/docs/events/lexweekly0.5https://middy.js.org/docs/events/mqweekly0.5https://middy.js.org/docs/events/rdsweekly0.5https://middy.js.org/docs/events/s3weekly0.5https://middy.js.org/docs/events/s3-batchweekly0.5https://middy.js.org/docs/events/s3-objectweekly0.5https://middy.js.org/docs/events/secrets-managerweekly0.5https://middy.js.org/docs/events/sesweekly0.5https://middy.js.org/docs/events/snsweekly0.5https://middy.js.org/docs/events/sqsweekly0.5https://middy.js.org/docs/events/vpc-latticeweekly0.5https://middy.js.org/docs/events/workmailweekly0.5https://middy.js.org/docs/faqweekly0.5https://middy.js.org/docs/integrations/apollo-serverweekly0.5https://middy.js.org/docs/integrations/introweekly0.5https://middy.js.org/docs/integrations/lambda-powertoolsweekly0.5https://middy.js.org/docs/integrations/pinoweekly0.5https://middy.js.org/docs/integrations/RDSweekly0.5https://middy.js.org/docs/integrations/serverless-frameworkweekly0.5https://middy.js.org/docs/integrations/serverless-stackweekly0.5https://middy.js.org/docs/intro/contributingweekly0.5https://middy.js.org/docs/intro/early-interruptweekly0.5https://middy.js.org/docs/intro/getting-startedweekly0.5https://middy.js.org/docs/intro/handling-errorsweekly0.5https://middy.js.org/docs/intro/historyweekly0.5https://middy.js.org/docs/intro/hooksweekly0.5https://middy.js.org/docs/intro/how-it-worksweekly0.5https://middy.js.org/docs/intro/influenceweekly0.5https://middy.js.org/docs/intro/release-cycleweekly0.5https://middy.js.org/docs/intro/sponsoringweekly0.5https://middy.js.org/docs/intro/streamify-responseweekly0.5https://middy.js.org/docs/intro/testingweekly0.5https://middy.js.org/docs/intro/typescriptweekly0.5https://middy.js.org/docs/intro/utilitiesweekly0.5https://middy.js.org/docs/middlewares/appconfigweekly0.5https://middy.js.org/docs/middlewares/cloudwatch-metricsweekly0.5https://middy.js.org/docs/middlewares/do-not-wait-for-empty-event-loopweekly0.5https://middy.js.org/docs/middlewares/dynamodbweekly0.5https://middy.js.org/docs/middlewares/error-loggerweekly0.5https://middy.js.org/docs/middlewares/event-normalizerweekly0.5https://middy.js.org/docs/middlewares/http-content-encodingweekly0.5https://middy.js.org/docs/middlewares/http-content-negotiationweekly0.5https://middy.js.org/docs/middlewares/http-corsweekly0.5https://middy.js.org/docs/middlewares/http-error-handlerweekly0.5https://middy.js.org/docs/middlewares/http-event-normalizerweekly0.5https://middy.js.org/docs/middlewares/http-header-normalizerweekly0.5https://middy.js.org/docs/middlewares/http-json-body-parserweekly0.5https://middy.js.org/docs/middlewares/http-multipart-body-parserweekly0.5https://middy.js.org/docs/middlewares/http-partial-responseweekly0.5https://middy.js.org/docs/middlewares/http-response-serializerweekly0.5https://middy.js.org/docs/middlewares/http-security-headersweekly0.5https://middy.js.org/docs/middlewares/http-urlencode-body-parserweekly0.5https://middy.js.org/docs/middlewares/http-urlencode-path-parserweekly0.5https://middy.js.org/docs/middlewares/input-output-loggerweekly0.5https://middy.js.org/docs/middlewares/introweekly0.5https://middy.js.org/docs/middlewares/rds-signerweekly0.5https://middy.js.org/docs/middlewares/s3weekly0.5https://middy.js.org/docs/middlewares/s3-object-responseweekly0.5https://middy.js.org/docs/middlewares/secrets-managerweekly0.5https://middy.js.org/docs/middlewares/service-discoveryweekly0.5https://middy.js.org/docs/middlewares/sqs-partial-batch-failureweekly0.5https://middy.js.org/docs/middlewares/ssmweekly0.5https://middy.js.org/docs/middlewares/stsweekly0.5https://middy.js.org/docs/middlewares/third-partyweekly0.5https://middy.js.org/docs/middlewares/validatorweekly0.5https://middy.js.org/docs/middlewares/warmupweekly0.5https://middy.js.org/docs/middlewares/ws-json-body-parserweekly0.5https://middy.js.org/docs/middlewares/ws-responseweekly0.5https://middy.js.org/docs/routers/http-routerweekly0.5https://middy.js.org/docs/routers/ws-routerweekly0.5https://middy.js.org/docs/upgrade/0-1weekly0.5https://middy.js.org/docs/upgrade/1-2weekly0.5https://middy.js.org/docs/upgrade/2-3weekly0.5https://middy.js.org/docs/upgrade/3-4weekly0.5https://middy.js.org/docs/writing-middlewares/configurable-middlewaresweekly0.5https://middy.js.org/docs/writing-middlewares/inline-middlewaresweekly0.5https://middy.js.org/docs/writing-middlewares/internal-storageweekly0.5https://middy.js.org/docs/writing-middlewares/introweekly0.5https://middy.js.org/docs/writing-middlewares/more-examplesweekly0.5https://middy.js.org/docs/writing-middlewares/timeoutsweekly0.5https://middy.js.org/docs/writing-middlewares/with-typescriptweekly0.5https://middy.js.org/weekly0.5 \ No newline at end of file +https://middy.js.org/markdown-pageweekly0.5https://middy.js.org/docs/weekly0.5https://middy.js.org/docs/best-practices/bundlingweekly0.5https://middy.js.org/docs/best-practices/connection-reuseweekly0.5https://middy.js.org/docs/best-practices/internal-contextweekly0.5https://middy.js.org/docs/best-practices/introweekly0.5https://middy.js.org/docs/best-practices/profilingweekly0.5https://middy.js.org/docs/best-practices/small-node-modulesweekly0.5https://middy.js.org/docs/category/aws-event-examplesweekly0.5https://middy.js.org/docs/category/best-practicesweekly0.5https://middy.js.org/docs/category/integrationsweekly0.5https://middy.js.org/docs/category/intro-to-middyweekly0.5https://middy.js.org/docs/category/middlewaresweekly0.5https://middy.js.org/docs/category/routersweekly0.5https://middy.js.org/docs/category/upgradeweekly0.5https://middy.js.org/docs/category/writing-middlewaresweekly0.5https://middy.js.org/docs/events/alexaweekly0.5https://middy.js.org/docs/events/api-gateway-authorizerweekly0.5https://middy.js.org/docs/events/api-gateway-httpweekly0.5https://middy.js.org/docs/events/api-gateway-restweekly0.5https://middy.js.org/docs/events/api-gateway-wsweekly0.5https://middy.js.org/docs/events/application-load-balancerweekly0.5https://middy.js.org/docs/events/appsyncweekly0.5https://middy.js.org/docs/events/cloud-formationweekly0.5https://middy.js.org/docs/events/cloud-frontweekly0.5https://middy.js.org/docs/events/cloud-trailweekly0.5https://middy.js.org/docs/events/cloud-watch-logsweekly0.5https://middy.js.org/docs/events/code-commitweekly0.5https://middy.js.org/docs/events/code-pipelineweekly0.5https://middy.js.org/docs/events/cognitoweekly0.5https://middy.js.org/docs/events/configweekly0.5https://middy.js.org/docs/events/connectweekly0.5https://middy.js.org/docs/events/documentdbweekly0.5https://middy.js.org/docs/events/dynamodbweekly0.5https://middy.js.org/docs/events/ec2weekly0.5https://middy.js.org/docs/events/event-bridgeweekly0.5https://middy.js.org/docs/events/function-urlweekly0.5https://middy.js.org/docs/events/introweekly0.5https://middy.js.org/docs/events/iotweekly0.5https://middy.js.org/docs/events/iot-eventsweekly0.5https://middy.js.org/docs/events/kafka-managed-streamingweekly0.5https://middy.js.org/docs/events/kafka-self-managedweekly0.5https://middy.js.org/docs/events/kinesis-firehoseweekly0.5https://middy.js.org/docs/events/kinesis-streamsweekly0.5https://middy.js.org/docs/events/lexweekly0.5https://middy.js.org/docs/events/mqweekly0.5https://middy.js.org/docs/events/rdsweekly0.5https://middy.js.org/docs/events/s3weekly0.5https://middy.js.org/docs/events/s3-batchweekly0.5https://middy.js.org/docs/events/s3-objectweekly0.5https://middy.js.org/docs/events/secrets-managerweekly0.5https://middy.js.org/docs/events/sesweekly0.5https://middy.js.org/docs/events/snsweekly0.5https://middy.js.org/docs/events/sqsweekly0.5https://middy.js.org/docs/events/vpc-latticeweekly0.5https://middy.js.org/docs/events/workmailweekly0.5https://middy.js.org/docs/faqweekly0.5https://middy.js.org/docs/integrations/apollo-serverweekly0.5https://middy.js.org/docs/integrations/introweekly0.5https://middy.js.org/docs/integrations/lambda-powertoolsweekly0.5https://middy.js.org/docs/integrations/pinoweekly0.5https://middy.js.org/docs/integrations/RDSweekly0.5https://middy.js.org/docs/integrations/serverless-frameworkweekly0.5https://middy.js.org/docs/integrations/serverless-stackweekly0.5https://middy.js.org/docs/intro/contributingweekly0.5https://middy.js.org/docs/intro/early-interruptweekly0.5https://middy.js.org/docs/intro/getting-startedweekly0.5https://middy.js.org/docs/intro/handling-errorsweekly0.5https://middy.js.org/docs/intro/historyweekly0.5https://middy.js.org/docs/intro/hooksweekly0.5https://middy.js.org/docs/intro/how-it-worksweekly0.5https://middy.js.org/docs/intro/influenceweekly0.5https://middy.js.org/docs/intro/release-cycleweekly0.5https://middy.js.org/docs/intro/sponsoringweekly0.5https://middy.js.org/docs/intro/streamify-responseweekly0.5https://middy.js.org/docs/intro/testingweekly0.5https://middy.js.org/docs/intro/typescriptweekly0.5https://middy.js.org/docs/intro/utilitiesweekly0.5https://middy.js.org/docs/middlewares/appconfigweekly0.5https://middy.js.org/docs/middlewares/cloudwatch-metricsweekly0.5https://middy.js.org/docs/middlewares/do-not-wait-for-empty-event-loopweekly0.5https://middy.js.org/docs/middlewares/dynamodbweekly0.5https://middy.js.org/docs/middlewares/error-loggerweekly0.5https://middy.js.org/docs/middlewares/event-normalizerweekly0.5https://middy.js.org/docs/middlewares/http-content-encodingweekly0.5https://middy.js.org/docs/middlewares/http-content-negotiationweekly0.5https://middy.js.org/docs/middlewares/http-corsweekly0.5https://middy.js.org/docs/middlewares/http-error-handlerweekly0.5https://middy.js.org/docs/middlewares/http-event-normalizerweekly0.5https://middy.js.org/docs/middlewares/http-header-normalizerweekly0.5https://middy.js.org/docs/middlewares/http-json-body-parserweekly0.5https://middy.js.org/docs/middlewares/http-multipart-body-parserweekly0.5https://middy.js.org/docs/middlewares/http-partial-responseweekly0.5https://middy.js.org/docs/middlewares/http-response-serializerweekly0.5https://middy.js.org/docs/middlewares/http-security-headersweekly0.5https://middy.js.org/docs/middlewares/http-urlencode-body-parserweekly0.5https://middy.js.org/docs/middlewares/http-urlencode-path-parserweekly0.5https://middy.js.org/docs/middlewares/input-output-loggerweekly0.5https://middy.js.org/docs/middlewares/introweekly0.5https://middy.js.org/docs/middlewares/rds-signerweekly0.5https://middy.js.org/docs/middlewares/s3weekly0.5https://middy.js.org/docs/middlewares/s3-object-responseweekly0.5https://middy.js.org/docs/middlewares/secrets-managerweekly0.5https://middy.js.org/docs/middlewares/service-discoveryweekly0.5https://middy.js.org/docs/middlewares/sqs-partial-batch-failureweekly0.5https://middy.js.org/docs/middlewares/ssmweekly0.5https://middy.js.org/docs/middlewares/stsweekly0.5https://middy.js.org/docs/middlewares/third-partyweekly0.5https://middy.js.org/docs/middlewares/validatorweekly0.5https://middy.js.org/docs/middlewares/warmupweekly0.5https://middy.js.org/docs/middlewares/ws-json-body-parserweekly0.5https://middy.js.org/docs/middlewares/ws-responseweekly0.5https://middy.js.org/docs/routers/http-routerweekly0.5https://middy.js.org/docs/routers/ws-routerweekly0.5https://middy.js.org/docs/upgrade/0-1weekly0.5https://middy.js.org/docs/upgrade/1-2weekly0.5https://middy.js.org/docs/upgrade/2-3weekly0.5https://middy.js.org/docs/upgrade/3-4weekly0.5https://middy.js.org/docs/upgrade/4-5weekly0.5https://middy.js.org/docs/writing-middlewares/configurable-middlewaresweekly0.5https://middy.js.org/docs/writing-middlewares/inline-middlewaresweekly0.5https://middy.js.org/docs/writing-middlewares/internal-storageweekly0.5https://middy.js.org/docs/writing-middlewares/introweekly0.5https://middy.js.org/docs/writing-middlewares/more-examplesweekly0.5https://middy.js.org/docs/writing-middlewares/timeoutsweekly0.5https://middy.js.org/docs/writing-middlewares/with-typescriptweekly0.5https://middy.js.org/weekly0.5 \ No newline at end of file